【发布时间】:2021-03-05 11:23:40
【问题描述】:
我有一个调用 curl 的 bash 脚本,我想仅在满足某些条件时才传递某个参数:
result=$( curl -sS --retry 3 --retry-delay 10 \
# some more stuff
$([[ $b=="b" ]] && echo -F \"foo=bar\") \
"https://www.someurl.org")
由于某种原因,效果就像我只是这样做:
result=$( curl -sS --retry 3 --retry-delay 10 \
# some more stuff
"https://www.someurl.org")
如何找出问题所在?我试过了
result=$( echo -sS --retry 3 --retry-delay 10 \
$([[ $b=="b" ]] && echo -F \"foo=bar\") \
"https://www.someurl.org")
echo result
还有-F "foo=bar" 没事。
但为什么它似乎不影响我的 curl 调用?
【问题讨论】:
-
请添加一个shebang,然后将您的脚本粘贴到shellcheck.net 并尝试实施那里提出的建议。
-
你不应该逃避
",试试"foo=bar"
标签: bash curl syntax command-substitution