Alb*_*rto 6 bash shell command-line-arguments
$@和之间有哪些区别$*?例如,我在这里看不到任何区别:
#! /bin/bash
echo with star: $*
echo with at sign: $@
Run Code Online (Sandbox Code Playgroud)
Gil*_*not 14
当它们没有被引用时,$@和之间没有区别$*。两者都等于$1 $2……但不要这样做。
使用双引号,"$@"将每个元素展开为参数:
"$1""$2"…
while"$*"扩展为所有元素合并为一个参数:
"$1c$2c..."
c的第一个字符在哪里IFS。如果您取消设置IFS,c将是一个空格。
你几乎总是想要"$@"。数组也是如此:"${myarray[@]}"