在linux系統中,變數值按變數的生存週期來劃分,可以分為兩類,即永久變數和臨時變數。
如果需要定義永久性變數值,則需要修改配置檔案,以使得變數永久生效;
如果定義臨時變數,則可以使用export命令宣告,所宣告的值在關閉shell時失效。
在linux中設定變數的三種方法:
1,在/ect/profile檔案中定義變數
在這個檔案定義的變數,對linux下的所有使用者有效,並且是「永久性存在的」。是需要root許可權的。修改完,如果想讓立即生效,則用source命令。
2,在當前使用者的.bash_profile檔案中定義
在這個檔案中所定義的變數,只對單使用者有效,也就是說屬於個人使用的變數。在這個檔案中定義的變數,也是屬於永久性變數。
3,直接在命令列執行export定義變數
格式:export 變數名=變數值,比如export ps1=@@@修改命令列提示符的。這種情況下的變數屬於臨時變數,關閉當前shell就失效了,再使用的話,需要再定義一次。
變數的賦值:
方法1:直接賦值
gyz@debian:~/shelltest$ var=2
gyz@debian:~/shelltest$ echo $var
2
方法2:使用let
gyz@debian:~/shelltest$ let var=3
gyz@debian:~/shelltest$ echo $var
3
方法3:for迴圈,這種方法變數的值是最後乙個
gyz@debian:~/shelltest$ for var in 5 7 9
> do
> echo $var
> done57
9gyz@debian:~/shelltest$ echo $var
9
字串賦值:(有空的話,需要加雙引號,也可以用單引號)
gyz@debian:~/shelltest$ str=guoyanzhang
gyz@debian:~/shelltest$ echo $str
guoyanzhang
gyz@debian:~/shelltest$ str=guo yan zhang
bash: yan: 未找到命令
gyz@debian:~/shelltest$ str="guo yan zhang"
gyz@debian:~/shelltest$ echo $str
guo yan zhang
gyz@debian:~/shelltest$ str1='guo yan zhang'
gyz@debian:~/shelltest$ echo $str1
guo yan zhang
如果覺得有些命令有點長,也可以自己改變一下,(單雙引號都可以),比如:
yz@debian:~/shelltest$ lt1='ls -ltr'
gyz@debian:~/shelltest$ $lt1
總用量 36
-rwxr-xr-x 1 gyz gyz 308 3月 12 16:49 comm.sh
-rwxr-xr-x 1 gyz gyz 193 3月 12 16:54 uncomm.sh
-rwxr-xr-x 1 gyz gyz 135 3月 13 13:23 awkk.sh
-rwxr-xr-x 1 gyz gyz 126 3月 13 13:29 ak.sh
-rw-r--r-- 1 gyz gyz 2092 3月 13 14:58 a.txt
-rwxr-xr-x 1 gyz gyz 99 3月 13 15:08 test_echo.sh
-rwxr-xr-x 1 gyz gyz 425 3月 13 15:41 test_s1.sh
-rwxr-xr-x 1 gyz gyz 148 3月 14 14:00 aa_test.sh
-rw-r--r-- 1 gyz gyz 4 3月 14 15:14 var.sh
gyz@debian:~/shelltest$ echo $lt1
ls -ltr
gyz@debian:~/shelltest$ lt2="ls -ltr"
gyz@debian:~/shelltest$ $lt2
總用量 36
-rwxr-xr-x 1 gyz gyz 308 3月 12 16:49 comm.sh
-rwxr-xr-x 1 gyz gyz 193 3月 12 16:54 uncomm.sh
-rwxr-xr-x 1 gyz gyz 135 3月 13 13:23 awkk.sh
-rwxr-xr-x 1 gyz gyz 126 3月 13 13:29 ak.sh
-rw-r--r-- 1 gyz gyz 2092 3月 13 14:58 a.txt
-rwxr-xr-x 1 gyz gyz 99 3月 13 15:08 test_echo.sh
-rwxr-xr-x 1 gyz gyz 425 3月 13 15:41 test_s1.sh
-rwxr-xr-x 1 gyz gyz 148 3月 14 14:00 aa_test.sh
-rw-r--r-- 1 gyz gyz 4 3月 14 15:14 var.sh
gyz@debian:~/shelltest$ echo $lt2
ls -ltr
參考:陳祥琳 編 《linux shell 指令碼程式設計從入門到精通》 shell指令碼學習 初學,定義變數
兩年前有簡單的接觸過shell指令碼,不過還來不及深入了解就換工作了。從現在開始重新學習一下。linux 的 shell 種類眾多,常見的有 在一般情況下,人們並不區分 bourne shell 和 bourne again shell,所以,像 bin sh,它同樣也可以改為 bin bash。告...
shell 變數定義 變數賦值
在 shell 中,當第一次使用某變數名時,實際上就定義了這個變數。建立和設定變數的語法 varname varvalue如果沒有給出變數值,則變數會被賦予乙個空字串。注意,在賦值操作符 的周圍不要有任何空格,像下面這三種寫法會報錯 varname varvalue varname varvalue...
shell 中變數的定義
shell中的變數一般是以字母或者下劃線開頭,後面可以跟任意長度的字元,數字或者下劃線。例如,下面乙個shell變數的定義和賦值 name mingqi 分配變數 echo name 列印變數值 輸出 mingqi 由以上例子可以看出變數的賦值方式為 先寫變數名稱,緊接著是賦值符號,最後是新值。賦值...