raf*_*fak 1 parameters bash shell
在shell脚本中我希望变量p
等于"$@"
,以便以下两行代码产生相同的结果:
for x in "$p"; do echo $x; done
for x in "$@"; do echo $x; done
Run Code Online (Sandbox Code Playgroud)
如果我这样做p=$@
或者p="$@"
这不起作用.当命令行参数的名称中有空格时,我找不到这个问题的简单解决方法(组合p="$@"
和for x in $p
(在$ p周围删除的引号)在没有空格时有效).
"$@"
它的特殊之处在于即使它是一个单引号表达式,它也会扩展为零或更多"单词".你不能用普通参数完成同样的事情,但是(使用稍微不同的语法)它可以用数组变量/参数完成(例如在bash,ksh,zsh中):
array_var=("$@")
for x in "${array_var[@]}"; do printf '<<%s>>\n' "$x"; done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
582 次 |
最近记录: |