假設我要運行一個可以攜帶參數的 script ,運行該指令碼後螢幕會顯示如下的資料:
- 程式的檔名為何?
- 共有幾個參數?
- 若參數的個數小於 2 則告知使用者參數數量太少
- 全部的參數內容為何?
- 第一個參數為何?
- 第二個參數為何
#!/bin/bash
#The program shows the script name,and the parameters....
echo "The script name is ==> $0"
echo "The num of the parameters is ==>$#"
[ $# -lt 2 ] && echo "The num is less than 2. Stop here!" && exit 0
echo "The whole parameter is ==> '$@'"
echo "The 1st parameter is ==>$1"
echo "The 2nd parameter is >$2"
執行指令碼:
[oracle@SOR_SYS~]$ sh parameters.sh opt1 oracle 192.168.50.229 8081
The script name is ==> parameters.sh
The num of the parameters is ==>4
The whole parameter is ==> 'opt1 oracle 192.168.50.229 8081'
The 1st parameter is ==>opt1
The 2nd parameter is >oracle
[oracle@SOR_SYS~]$
- $# :代表後接的參數『個數』,以上表為例這裡顯示為『 4 』;
- $@ :代表『 "$1" "$2" "$3" "$4" 』之意,每個變數是獨立的(用雙引號括起來);
- $* :代表『 "$1c$2c$3c$4" 』,其中
c 為分隔位元組,預設為空白鍵, 所以本例中代表『 "$1 $2 $3 $4" 』之意。