【发布时间】:2019-04-09 03:25:59
【问题描述】:
在脚本中,我有一个涉及$@ 的sh -c 命令,但似乎只考虑了$@ 的第一项:
$ set -- --no-resume-playback https://www.facebook.com/TBN/videos/1580372468665943/
$ echo "$@"
--no-resume-playback https://www.facebook.com/TBN/videos/1580372468665943/
$ sh -c "echo $@"
--no-resume-playback
$ sh -c "echo ${@[*]}"
bash: echo ${@[*]}: bad substitution
编辑 1:如果我将 $@ 数组复制到一个变量中,它可以工作:
$ args=("$@")
$ sh -c "echo ${args[*]}"
--no-resume-playback https://www.facebook.com/TBN/videos/1580372468665943/
如何在sh -c 调用中使用$@ 的所有参数?
【问题讨论】:
标签: bash command-line-arguments