Linux中變數$#,$@,$0,$1,$2,$*,$$,$?的含義

來源:互聯網
上載者:User

我們先寫一個簡單的指令碼,執行以後再解釋各個變數的意義

 # touch variable# vi variable 指令碼內容如下: #!/bin/shecho "number:$#"

echo "scname:$0"

echo "first :$1"

echo "second:$2"

echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"
儲存退出 賦予指令碼執行許可權 # chmod +x variable 執行指令碼 # ./variable aa bbnumber:2

scname:./variable

first:aa

second:bb

argume:aa bbshow parm list:aa bb

show process id:24544show precomm stat:0
 通過顯示結果可以看到: $# 是傳給指令碼的參數個數

$0 是指令碼本身的名字$1 是傳遞給該shell指令碼的第一個參數$2 是傳遞給該shell指令碼的第二個參數$@ 是傳給指令碼的所有參數的列表$* 是以一個單字串顯示所有向指令碼傳遞的參數,與位置變數不同,參數可超過9個$$ 是指令碼啟動並執行當前進程ID號

$? 是顯示最後命令的退出狀態,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.