使用反引号传递Shell参数扩展

时间:2015-07-17 22:57:34

标签: bash shell sh double-quotes backticks

执行此命令会给出预期的输出 - “c d”作为单个参数处理:

% /bin/sh -c 'args="$@"; for a in "$@"; do echo $a; done' -- a b "c d"
a
b
c d

如果相同的参数存储在文件中并由cat传递给脚本,我得到了不需要的输出 - “c d”被处理为2个参数:

% echo a b \"c d\" > foo
% cat foo
a b "c d"
% /bin/sh -c 'args="$@"; for a in "$@"; do echo $a; done' -- `cat foo`
a
b
"c
d"

有没有办法让因为命令执行而传递的参数被处理,因为它是作为字符串传递的?

韩国社交协会

0 个答案:

没有答案