shell中的变量类型默认都是字符串型的,那么$@这个变量又是什么类型呢?
$@和$*都是表示“所有参数”。带""时有如下区别
"$*" 会变成 "$1 $2 $3 $4......",注意参数间带着空格。
"$@" 会变成 "$1" "$2" "$3"......
for i in "$*" 转化为 for i in "$0 $1 $2 $3 $4......",将用户输入的参数代入,"$*"是一个长字串。
for y in "$@" 转化为 for y in "$1" "$2" "$3"...... , 代入参数后,有几个字串for循环几次,"$@"是个列表。
不带""的话,它们俩一样。
一样的。 他是通过换行来让用户区分不同的几个参数,实质就是中间包含换行的字符串