Shell中特殊的變數

來源:互聯網
上載者:User

標籤:

$表示當前的進程,當使用echo $$是會輸出當前shell的pid

1 echo $$

 

特殊變數列表
變數 含義
$0 當前指令碼的檔案名稱
$n 傳遞給指令碼或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。
$# 傳遞給指令碼或函數的參數個數。
$* 傳遞給指令碼或函數的所有參數。
[email protected] 傳遞給指令碼或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
$? 上個命令的退出狀態,或函數的傳回值。
$$ 當前Shell進程ID。對於 Shell 指令碼,就是這些指令碼所在的進程ID。

指令檔varlist.sh

1 #!/bin/bash2 3 echo "File name: $0"4 echo "First parameter: $1"5 echo "Second Parameter: $2"6 echo "Quoted Values: [email protected]"7 echo "Quoted Values: $*"8 echo "Total Number of Parameter : $#"

執行varlist.sh hello world結果輸出如下:

$ sh ./varlist.sh hello worldFile name: ./varlist.shFirst parameter: helloSecond Parameter: worldQuoted Values: hello worldQuoted Values: hello worldTotal Number of Parameter : 2

$*與[email protected]的區別:

當使用""是會出對於他們存在差異,"$*" 會將所有的參數作為一個整體,以"$1 $2 … $n"的形式輸出所有參數;"[email protected]" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數。 看下面的例子:

 1 #!/bin/bash 2 #description: use variable 3 #Author: blacksonny 4 #Copyright (c) 5 #Script follows here: 6  7 echo "\$*=" $* 8 echo "\"\$*\"=" "$*" 9 10 echo "\[email protected]=" [email protected]11 echo "\"\[email protected]\"=" "[email protected]"12 13 echo "print each param from \$*"14 for var in $*15 do16     echo "$var"17 done18 19 echo "print each param from \[email protected]"20 for var in [email protected]21 do22     echo "$var"23 done24 25 echo "print each param from \"\$*\""26 for var in "$*"27 do28     echo "$var"29 done30 31 echo "print each param from \"\[email protected]\""32 for var in "[email protected]"33 do34     echo "$var"35 done

輸出結果:

 1 $ sh ./varcompare.sh "a" "b" "c" "d" 2 $*= a b c d 3 "$*"= a b c d 4 [email protected]= a b c d 5 "[email protected]"= a b c d 6 print each param from $* 7 a 8 b 9 c10 d11 print each param from [email protected]12 a13 b14 c15 d16 print each param from "$*"17 a b c d18 print each param from "[email protected]"19 a20 b21 c22 d

退出狀態:

$? 可以擷取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行後的返回結果。
退出狀態是一個數字,一般情況下,大部分命令執行成功會返回 0,失敗返回 1。

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.