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

来源:2-5 位置参数变量

风过不留痕

2017-03-12 22:56

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

写回答 关注

2回答

  • 慕函数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

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

    慕函数011...

    换行是由echo带的,不是变量里的。 echo -e "\c"(-e 开启转意,\c表示不换行),echo ""本身会输出换行。试试下面的代码, #!/bin/bash for i in "$*" do echo "${i}" done for y in "$@" do echo -e "${y}\c" done echo "" echo ""

    2017-03-31 23:05:36

    共 1 条回复 >

shell编程之变量

主要介绍Linux shell编程基础中的变量,熟练使用shell中用户自定义变量

51472 学习 · 76 问题

查看课程

相似问题