Shell變數的擴充套件應用

2021-09-25 06:31:06 字數 2640 閱讀 2633

 問題

本案例要求進一步熟悉shell變數的賦值控制,主要練習或驗證下列內容:

三種引號對賦值的影響

使用read命令從鍵盤讀取變數值

使用export發布全域性變數

 步驟

實現此案例需要按照如下步驟進行。

步驟一:三種引號對變數賦值的影響

1)雙引號的應用

使用雙引號可以界定乙個完整字串,也允許在範圍內通過$呼叫其他變數的值。大多數情況下雙引號可以省略,但包含空格等特殊字元的情況下例外:

[root@svr5 ~]# school=tarena it group

-bash: it: command not found //未界定時賦值失敗

[root@svr5 ~]# school=「tarena it group」 //界定後成功

[root@svr5 ~]# echo katex parse error: expected 'eof', got '#' at position 50: …p [root@svr5 ~]#̲ note="當前的使用者是:user" //呼叫環境變數user

[root@svr5 ~]# echo not

e//查

看賦值結

果當前的

使用者是:

root

2)單引

號的應用

使用單引

號則禁用

擴充套件,位

於範圍內

的特殊字

符均視為

普通字元

。比如,

上述no

te變數

的賦值操

作若改用

單引號,

則note //檢視賦值結果 當前的使用者是:root 2)單引號的應用 使用單引號則禁用擴充套件,位於範圍內的特殊字元均視為普通字元。比如,上述note變數的賦值操作若改用單引號,則

note//

檢視賦值

結果當前

的使用者是

:roo

t2)單

引號的應

用使用單

引號則禁

用擴充套件,

位於範圍

內的特殊

字元均視

為普通字

符。比如

,上述n

ote變

量的賦值

操作若改

用單引號

,則user將原樣輸出,而不會代替為 /root :

[root@svr5 ~]# note=『當前的使用者是:$user』

[root@svr5 ~]# echo not

e當前的

使用者是:

note 當前的使用者是:

note當前

的使用者是

:user //單引號內的 $ 被視為普通字元

3)反撇號或()的

應用使用

反撇號或

()的應用 使用反撇號或

()的應用使

用反撇號

或 sh-3.2# exit //返回原有shell環境

exit

[root@svr5 ~]# bash //開啟bash子程序

[root@svr5 ~]# echo $school //檢視school變數值無結果

[root@svr5 ~]# exit //返回原有shell環境

exit

[root@svr5 ~]#

若希望定義的變數能被子程序使用,可以使用export命令將其發布為全域性變數。使用export發布時,只需指定變數名(可以有多個)即可,也可以通過export命令直接設定新的全域性變數:

[root@svr5 ~]# export school //發布已定義的變數

[root@svr5 ~]# export xx=「1234」 //發布新變數

[root@svr5 ~]# nsd=「network&system direction」

[root@svr5 ~]# export nsd yy=「5678」 //混合式發布

驗證剛剛發布的全域性變數:

[root@svr5 ~]# sh //進入sh子shell環境

sh-3.2# echo $school //檢視全域性變數的值 … …

tarena it group

sh-3.2# echo $nsd

network&system direction

sh-3.2# echo $xx $yy

1234 5678

sh-3.2# exit //返回原有shell環境

exit

[root@svr5 ~]#

若要取消全域性變數的全域性屬性,可結合export命令的 -n 選項;若要取消變數,則應使用unset命令。比如,以下操作可將前面發布的school、xx恢復成區域性變數:

[root@svr5 ~]# export -n school xx //取消全域性變數屬性

[root@svr5 ~]# echo $school $xx //區域性變數school、xx仍可用

tarena it group 1234

[root@svr5 ~]# sh

sh-3.2# echo $school $xx //全域性變數school、xx已不可用

sh-3.2# exit //返回原有shell環境

exit

[root@svr5 ~]#

shell高階篇之變數的擴充套件應用(3)

學習目標 要求進一步熟悉shell變數的賦值控制,主要練習或驗證下列內容 三種引號對賦值的影響 使用read命令從鍵盤讀取變數值 使用export發布全域性變數 步驟 需要按照如下步驟進行。步驟一 三種引號對變數賦值的影響 1 雙引號的應用 使用雙引號可以界定乙個完整字串。root svr5 xx ...

Shell中變數擴充套件操作

假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 可以用 分別替換得到不同的值 刪掉第乙個 及其左邊的字串 dir1 dir2 dir3 my.file.txt 刪掉最後乙個 及其左邊的字串 my.file.txt 刪掉第乙個 及其左邊的字串 file.txt...

變數 shell變數( )

變數型別 執行shell時,會同時存在三種變數 a 區域性變數 在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。b 環境變數 所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要時shell指令碼也可以定義...