• 3. Shell 传递参数
    • $* 与 $@ 区别

    3. Shell 传递参数

    $* 与 $@ 区别


    • 相同点:都是引用所有参数。
    • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 “ * “ 等价于 “1 2 3”(传递了1个参数),而 “@” 等价于 “1” “2” “3”(传递了3个参数)。
    1. # !/bin/bash
    2. # author:Asa
    3. echo "-- \$* 演示 ---"
    4. for i in "$*"; do
    5. echo $i
    6. done
    7. echo "-- \$@ 演示 ---"
    8. for i in "$@"; do
    9. echo $i
    10. done

    执行脚本,输出结果如下所示:

    1. $ chmod +x test.sh
    2. $ ./test.sh 1 2 3
    3. -- $* 演示 ---
    4. 1 2 3
    5. -- $@ 演示 ---
    6. 1
    7. 2
    8. 3