- $@ $* 沒有" "包圍時,兩者無任何區別,將每個參數看作單獨參數,當參數中使用' '或" "時會將其拆開,作為單獨參數,因此,此種用法,可能曲解參數傳遞的本意
#!/bin/evn bash -u echo "print each parameter from \$*" for p in $* do echo $p done echo "print each parameter from \$@" for p in $@ do echo $p done
可以看到參數中的'd e'被拆開作為兩個參數
- "$@" "$*" 當其被" "包含,"$*" 將所有參數當作整體,"$@" 每個參數獨立,並且保留參數的結構
#!/bin/evn bash -u echo "print each parameter from \"\$*\"" for p in "$*" do echo $p done echo "print each parameter from \"\$@\"" for p in "$@" do echo $p done