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

2021-10-03 05:29:12 字數 1484 閱讀 6680

顧名思義,使用者自定義,也就是使用者自己定義的變數,在一定的範圍內,你可以隨意定義,而那個範圍就是使用者變數定義格式。

變數格式:

變數名,由字母或下劃線打頭,不允許數字開頭,後面由字母、數字或下劃線組成,並且大小寫字母意義不同。

變數賦值,在「=」後邊直接指定變數內容是為變數賦值的最基本方法,注意,「=」兩邊沒有空格。

一些常見的錯誤:

[root@linus ~

]# 1=2

bash:1=

2: 未找到命令...

[root@linus ~

]# 1=2

bash:

1: 未找到命令...

[root@linus ~

]# a=

2bash: a: 未找到命令...

[root@linus ~

]# a=

2

在使用變數時,需在變數名前加$。我在學習的時候就有乙個疑問,到底為什麼需要加上$符號。難道是指令碼宣告類似的約定俗成嗎?可是不加的話就會報錯,這就和指令碼宣告不一樣了。

後來我才知道,很多命令無法讀取變數中的資料,所以需要使用$符號進行呼叫,而有些命令可以直接讀取,則不需要加上$符號。刪除命令unset就是乙個例子,不管加還是不加,都不影響其功能。

[root@linus ~

]# unset $a

[root@linus ~

]# unset a

而一些無法讀取的命令,若不加上$符號,將無法讀取其中的資料。

[root@linus ~

]# echo $a

hhh[root@linus ~

]# echo a

a

雖說在規範下可以為所欲為地建立變數,但是,千萬要注意,對於系統提前定義好的環境變數,不要亂對其修改,否則將會影響自己正常使用。

使用env可檢視系統提前定義好的環境變數。

比如說,環境變數lang,是中國字符集,若進行更改,可以導致其喪失功能。

[root@linus ~

]# echo $lang

zh_cn.

utf-

8[root@linus ~

]# asdad

bash: asdad: 未找到命令...

[root@linus ~

]# lang

=hhh

[root@linus ~

]# asdad

bash: asdad: command not found...

對於這種情況,把更改的變數還原即可。

[root@linus ~

]# lang

=zh_cn.

utf-

8[root@linus ~

]# asdad

bash: asdad: 未找到命令...

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

shell程式設計中變數的一種 使用者自定義變數 echo hello uname 結果顯示 hello echo hello 結果顯示 hello there echo uname 結果顯示 空 uname john echo hello 結果顯示 hello john 可以看出,變數替換時將使用...

mysql 使用者自定義變數

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

shell指令碼如何自定義函式

在寫程式時,經常會用到函式,一般開發工具擁有豐富的函式庫。但有時還需要根據自己的需要自定義函式滿足我們的需求。在linux中,寫shell指令碼也一樣,有時會用到自定義函式。函式,最簡單的定義為 將一組命令集或語句形成乙個可用塊,這些塊稱為函式。1 定義函式的格式 sql view plain co...