問題
本案例要求進一步熟悉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指令碼也可以定義...