shell程式設計 使用者自定義變數

2021-05-27 05:39:26 字數 1373 閱讀 6391

shell程式設計中變數的一種-使用者自定義變數

$echo hello $uname

結果顯示:hello

$echo hello $

結果顯示:hello there

$echo $uname

結果顯示: (空)

$uname=john

$echo hello $

結果顯示:hello john

可以看出,變數替換時將使用命令列中定義的預設值,但變數的值並沒有因此而改變。另外一種替換的方法是不但使用預設值進行替換,而且將預設值賦給該變數。其形式如下:

$該形式在變數替換後同時把值value符給變數variable。

$echo hello $uname

結果顯示:hello

$echo hello $

結果顯示:hello there

$echo $uname

結果顯示:there

$uname=john

$echo hello $

結果顯示:hello john

$只有變數variable已賦值時,其值才用value替換,否則不進行任何替換,例如:

$erropt=a

$echo $

結果顯示:error tracking is acitive

$erropt=

$echo $

結果顯示: (空)

我們還可以使用錯誤檢查的條件進行變數替換:

$當變數variable已設定時,正常替換。否則訊息message將送到標準錯誤輸出(若此替換出現在shell程式中,那麼該程式將終止)。 例如:

$uname=

$echo $

結果顯示:uname has not been set

$uname=stephanie

$echo $

結果顯示:stephanie

當沒有指定message時,shell將顯示一條預設的訊息,例如:

$uname=

$echo $

結果顯示:sh:uname:parameter null or not set

$expr 4*5

系統將會報錯,因為shell看到"*"將會首先進行檔名替換。正確形式為:

$expr 4 \* 5

結果顯示:20

------------------結果錯誤,可能跟使用的版本有關係--------------------------------

運算次序是先乘除後加減,若要改變運算次序,必須使用"`"號,如:

$int=`expr 5 + 7`

$expr $int/3

結果顯示:4

或者:$expr `expr 5+7`/3

結果顯示:4

shell指令碼 使用者自定義變數

顧名思義,使用者自定義,也就是使用者自己定義的變數,在一定的範圍內,你可以隨意定義,而那個範圍就是使用者變數定義格式。變數格式 變數名,由字母或下劃線打頭,不允許數字開頭,後面由字母 數字或下劃線組成,並且大小寫字母意義不同。變數賦值,在 後邊直接指定變數內容是為變數賦值的最基本方法,注意,兩邊沒有...

mysql 使用者自定義變數

這裡面詳細的介紹了怎麼使用自定義變數 我這裡本是發出一些疑問 set rownum 0 select disease,rn,rownum,rownum rownum 1 as cmt from disease code where rownum 1 結果 disease rn rownum cmt ...

C C 程式設計 使用者自定義型別

include struct vector 表示通過非const引用的方式傳遞v,這樣vector init就可以修改v指向的變數了 void vector init vector v,int s void f vector v,vector rv,vector pv using namespace...