我有一个简单的脚本。脚本可以使用特定参数运行。例如:
./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
其中firstName
和lastName
是从参数解析出来的变量。
问题在于,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
每个变量都有一个语句。