書-Linux命令行與shell腳本編程大全(第3版)

image

♂bash shell-終端機輸入

♀bash shell-特殊參數

♂bash shell-取得所有輸入

♀bash shell-移動參數(shift)

♂bash shell-選項

 

 

bash shell-終端機輸入

在終端機輸入的參數稱為'位置參數(positional parameter)',檔名也算,會用數字表示。

$0 : 檔名

$1 : 第一個參數

$2 : 第二個參數

...

$9 : 第9個參數

image

如果輸入字串有空格加上單引號就會被認為是一個參數。例: 'hello world'

image

如果輸入的參數量大於9就要加上大括號。

image

image

bash shell-特殊參數

這個特殊參數就是'$#'可以取得你目前輸入的參數量。

這個例子是如果你沒有輸入兩個參數就不會執行相加的動作,提醒你要輸入兩個。

image

image

你可以這樣使用特殊參數,只不過第三個會有問題,但是你換成驚嘆號後可以用(第一個就很好用了)。

image

image

bash shell-取得所有輸入

$* : 把所有參數當作是一個個體保留

$@ : 把所有參數當作是單個個體保留

記得for裡的要加上雙引號。

image

從這個輸出就可以很清楚知道兩者的差異。

image

bash shell-移動參數(shift)

顧名思義就是把參數$2變成參數$1,但是參數0不會變,移動了參數$1就會被移除,也可以一次移動很多。

image

image

bash shell-選項

就像上一篇我們創用戶用'useradd -c id -m name',-c、-m就是選項、useradd、name就是參數。

image

我們一開始輸入-a在shell中就是選項的意思,雖然也可以不用'-'號,但是我覺得這個是潛規則,然後這個-a是有帶參數的,因為是在-a之後所以可以先用$2取得參數的內容,然後在位移,-c因為我沒有這個選項所以就印出沒有找到,雙'-'號的用義是說之後的輸入全部都是參數。

image

基本上那些命令中的選項、參數應該都是這樣做的。

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()