1. 程式人生 > >2.6 訪問 Shell 腳本的參數

2.6 訪問 Shell 腳本的參數

nbsp lin 關於命令行參數 位置 first 補充 font ech 直接

所謂的位置參數(positional parameters)指的也就是Shell腳本的命令行參數(command-line arguments)。在Shell函數裏,它們同時也可以是函數的參數。各參數都由整數來命令。基於歷史的原因,當其超過9,就應該用大括號把數字框起來: echo first arg is $1 echo tenth arg is ${10} 假設你想知道某個用戶正使用的終端是什麽,你當然可以直接使用who命令,然後再輸出中慢慢找。這麽做很麻煩又容易出錯--特別是當系統的用戶很多的時候。你想做的只不過是在 who 的輸出中找到那位用戶,這個時候你可以用 grep 命令來進行查找操作,它會列出第一個參數(所指定的模式)匹配的每一行。我的虛擬機上的用戶較少,以many為例。
[many@avention Desktop]$ who | grep many many :0 2018-09-25 00:26 (:0) many pts/0 2018-09-25 00:26 (:0) [many@avention Desktop]$ 知道如何尋找特定的用戶後,我麽可以將命令房間腳本裏,這段腳本的額第一個參數就是要找的用戶名稱: [many@avention my_sh]$ cat > finduser.sh #建立新的腳本文件
#! /bin/sh who | grep $1 #查看第一個參數所指定你的用戶是否登錄 [many@avention my_sh]$ chmod u+x finduser.sh #為腳本的擁有者設置可執行權限 [many@avention my_sh]$ [many@avention my_sh]$ ./finduser.sh many #測試,尋找 many用戶
many :0 2018-09-25 00:26 (:0) many pts/0 2018-09-25 00:26 (:0) [many@avention my_sh]$ 在shell腳本中,註釋(comment)是以 # 開頭的。為了增加腳本的可讀性,多寫註釋。 關於命令行參數的更多細節,在後續章節中補充。

2.6 訪問 Shell 腳本的參數