shell學習筆記-命令列參數的處理

來源:互聯網
上載者:User

1、shift  移開第一個參數

2、$#    提供傳遞到shell指令碼或函數的參數總數。
while [$# != 0]                以shift逐漸減少$#,迴圈將會終止
do
case $1 in 

esac
shift
done

3、$*, $@
一次表示所有的命令列參數。這兩個參數可用來把命令列參數傳遞給指令碼或者函數所執行的程式。

“$*”將所有的命令列參數視為單個字串,等同於“$1 $2 ...”.
$IFS的第一個字元用來做為分隔字元,以分隔不同的值來建立字串
例如:
IFS="123"
printf "The arguments were %s/n" "$*"
$./aa   a b c
輸出:The arguments were a1b1c

$@
將所有的命令列參數視為單獨的個體也就是單獨的字串。等同於“$1” "$2" ...
printf "The arguments were %s/n" "$@"
$./aa   a b c
輸出:
The arguments were a
The arguments were b
The arguments were c

4、POSIX內建shell變數
#    目前進程的參數個數。
@    傳遞給當前進程的命令列參數,至於雙引號內,會展開為個別的參數。
*    當前進程命令列參數。置於雙引號內,則展開為一單獨參數。
-(連字號)    在引用時給予Shell的選項。
?    前一命令的退出狀態。    echo $?    輸出退出碼。
$    shell進程的進程編號(process ID)。
0    shell程式的名稱。
!    最近一個後台命令的進程編號,以此方式儲存進程編號,可通過wait命令以供稍後使用。
ENV     一旦使用,則僅用於互動式shell中,$ENV的值是可展開的擦書。結果應為要讀取和在啟動時要執行的一個檔案的完整路徑名稱。這是一個XSI必需的變數。
HOME    根(登入)目錄
IFS    內部欄位分隔器;例如作為單詞分隔器的字元列表。一般設為空白格、定位字元(Tab),以及分行符號(newline)。
LANG    當前locale的預設名稱;其他的LC_*變數會覆蓋其值。
PATH    命令的尋找路徑。
PPID    父進程的進程編號。

4、$? 最後一次退出的狀態代碼
0    命令成功退出
>0    重新導向或單詞展開期間失敗
1-125    命令不成功的退出
126        命令找到了,單檔案無法執行
127        命令找不到
128        命令收到訊號而死亡

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.