问答详情
源自:2-5 位置参数变量

shell中的位置参数变量$@ 类型如何理解

shell中的变量类型默认都是字符串型的,那么$@这个变量又是什么类型呢?

提问者:风过不留痕 2017-03-12 22:56

个回答

  • 慕函数0111378
    2017-03-31 23:36:32
    已采纳

    $@和$*都是表示“所有参数”。带""时有如下区别

    "$*" 会变成 "$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循环几次,"$@"是个列表。

    不带""的话,它们俩一样。

  • 向小橙
    2017-03-14 17:54:51

    一样的。 他是通过换行来让用户区分不同的几个参数,实质就是中间包含换行的字符串