Shell指令碼中$0、$?、$!等的意義。

來源:互聯網
上載者:User

最近在學Linux指令碼程式,這裡來說說Shell指令碼中$0、$?、$!等的意義

變數說明 $$
Shell本身的PID(ProcessID)
$!
Shell最後啟動並執行後台Process的PID
$?
最後啟動並執行命令的結束代碼(傳回值)
$-
使用Set命令設定的Flag一覽
$*
所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
$@
所有參數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。
$#
添加到Shell的參數個數
$0
Shell本身的檔案名稱
$1~$n
添加到Shell的各參數值。$1是第1參數、$2是第2參數…。


指令碼舉例


我們先寫一個簡單的指令碼,執行以後再解釋各個變數的意義
# touch variable
# vi variable
指令碼內容如下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
儲存退出
賦予指令碼執行許可權
# chmod +x variable   
執行指令碼
# ./variable aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb


結果分析


通過顯示結果可以看到:
$# 是傳給指令碼的參數個數
$0 是指令碼本身的名字
$1是傳遞給該shell指令碼的第一個參數
$2是傳遞給該shell指令碼的第二個參數
$@ 是傳給指令碼的所有參數的列表

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.