标签: bash shell
$@和$*之间有什么区别?当我将"$@"设置为"$*"时,为什么它们具有相同的值但IFS和|不同?
$@
$*
"$@"
"$*"
IFS
|
答案 0 :(得分:5)
$@和$*之间的区别:不带引号(不要这样做!),根本没有:两者都等于$1 $2 ....使用双引号,{{1将每个元素扩展为参数:$@ $1 ...,而$2扩展为合并为一个参数的所有元素:$*(其中c是第一个字符) IFS)。你几乎总是想要$1c$2c...。数组也是如此:$@
$1 $2
$1
$2
$1c$2c...