通过 curl 手动设置 POST 请求的参数

通过 curl 手动设置 POST 请求的参数

我有一个简单的脚本。脚本可以使用特定参数运行。例如:

./my-script.sh --last-name=Smith --first-name=John

脚本中调用curl并发送了POST请求:

curl --data-urlencode last_name=$lastName --data-urlencode first_name=$firstName https://example.com

其中firstNamelastName是从参数解析出来的变量。

问题在于,firstName 或 lastName(但不能同时)可能缺失。如果参数缺失,则不会将相应的参数发送到服务器。

但我不知道如何在脚本中实现这种逻辑。

当然,我可以添加if检查参数是否为空,但我在命令行中可以有很多参数,在这种情况下我会有很多if...

答案1

像这样:假设

arg1=myname
arg2=

然后为了仅包含非空参数,代码:

command="curl "
if [ "$arg1" != "" ]; then
        command="$command --data-urlencode arg1=$arg1"
fi
if [ "$arg2" != "" ]; then
        command="$command --data-urlencode arg2=$arg2"
fi

echo $command

if每个变量都有一个语句。

相关内容