shell學習9 變數的定義

2021-09-12 14:09:13 字數 2797 閱讀 3091

在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 由以上例子可以看出變數的賦值方式為 先寫變數名稱,緊接著是賦值符號,最後是新值。賦值...