我正在编写一个 bash 脚本来调用curl 命令:
#!/bin/bash
while n flag
do
case "${flag}" in
n) name=${OPTARG};;
esac
done
curl -XPOST http://localhost:2468/api/webhook -H 'Content-Type: application/json' --data '{"name":"'"$name"'"}'
但是,这不是解析变量并发送空字符串。当我尝试以下操作时,我得到了相同的结果:
#!/bin/bash
while u:p:n flag
do
case "${flag}" in
u) unrar=${OPTARG};;
p) path=${OPTARG};;
n) name=${OPTARG};;
esac
done
curl -XPOST http://localhost:2468/api/webhook -H 'Content-Type: application/json' --data "{/"name/":/"$name/"}"
答案1
您忘记getopts
读取脚本参数:
while getopts "u:p:n:" flag
do
case "${flag}" in
u) unrar=${OPTARG};;
p) path=${OPTARG};;
n) name=${OPTARG};;
esac
done
另外,如果您想要参数,请不要忘记“n”后面的冒号。没有冒号-n
将作为二进制键是/否。