一,腳本中的變量
1,1什么是變量
- 在編寫程序是,通常會遇到被操作對象不固定的情況
- 我們需要用一串固定的字符來的表示不固定的值,這就是變量存在的根本意義
- 變量的實現原理就是內存存儲單元的一個符合名稱
1,2 變量的命名規則
變量的名稱中只能包含數字,大小寫字母以及下劃線
變量的名稱只能用大小寫字母及下劃線開頭
同一名稱變量在多此被賦值時為覆蓋動作
在企業代碼規范化中變量的命名規則如下
#簡短全大寫變量名
OPENLAB
#首字母大寫子類變量名
Openlab_Shell
#駝峰類型變量
kubernetes_Api
1,3變量的調用方法
$EASYLEE #表示取$EASYLEE這個變量的值
EASYLEE=1
echo $EASYLEE
#系統彈出
1
[!note]
- 如果我們表示1b
- $EASYLEEb 這個變量調用方式是使用EASYLEEb這串字符變量的值
- ${EASYLEE}b 如果需要在字符串中特別說明那些字符表示變量那些字符不是,需要變量聲明 ${}
- 查看系統中的所有變量可以使用env
- 查看系統中所有變量或函數可以使用set命令或declare
1,4字符的轉義及引用
- 在shel中很多本身有特殊的字符,比如空格井號等等
- 如果在變量賦值或執行命令使用我們只想使用這些符號本身就需要用轉義或引用
- 在shell中反斜杠表示轉義,每個反斜杠只能轉義一個字符
- 在shell中單引號表示強引用,我們可以把它看作批量轉義,在單引號內的所有字符都被視為字符本身
- 在shell中雙引號表示弱引用,其和單引號的區別在于不能引用(`,,!,$)
代碼示例如下
echo \#
#系統輸出
#
#結束echo \# #
#echo \# \#
# #echo"# #"
# #
echo "$5"echo '$5'
$5
1,5變量的類型
從變量的作用范圍劃分,變量分為函數級變量,環境級變量,用戶級變量和系統變量
函數級變量只在函數內生效通常用local來定義
vim test.sh
#在vim
#!/bin/bash
ACTION(){
local a=1
echo $a
}
ACTION()
echo $a
#sh test.sh
1
#第二號顯示為空
環境級變量只在在當前運行的shell中生效,shell關閉變量被釋放
export a=1
vim test.sh
#在vim
#!/bin/bash
echo $a
#:wq
sh test.sh
顯示為空
用戶級變量只有登錄系統的指定用戶,此變量才生效
useradd lee
vim ~lee/.bash_profile
#在vim中
export a=1
#:wq
vim /mnt/test.sh
sh /mnt/test.sh
#系統彈出
1
[!note]
在系統中通常設置系統變量是編輯文件更安全
文件修改完需要用source命令使其生效