shell腳本中的$*,$@和$#
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(my_fun "$@") echo 'the number of parameter in "$*" is '$(my_fun "$*")
執行:./my.sh p1 "p2 p3" p4后返回: the number of parameter in "$@" is 3 the number of parameter in "$*" is 1
$*表示所有這些參數都被雙引號引住。若一個腳本接收兩個參數,$*等於$1$2
$@表示所有這些參數都分別被雙引號引住,若一個腳本接收到兩個參數,$@等價於$1$2
$#表示提供給腳本的參數號
舉例說:
腳本名稱叫test.sh 入參三個: 1 2 3
運行test.sh 1 2 3后
$*為"1 2 3"(一起被引號包住)
$@為"1" "2" "3"(分別被包住)
$#為3(參數數量)