一、特殊變數
1、$#: 命令行參數的個數。
2、$*: 命令行所有參數的內容,在全部參數作為一個字元串處理。
3、$@: 命令行所有參數的內容,在每個參數都作為一個字元串處理。
4、$0: 當前腳本名。
5、$?: 上一條命令的返回值。
6、$$: 當前腳本的進程號。
二、位置參數變數
1、$1, $2, ……$n: 命令行參數1、2、……n。
2、$0:當前腳本名。
三、環境變數
1、$HOME: 當前用戶的家目錄的完整路徑。
2、$PATH: 一組用 ‘:’ 分隔開的目錄,shell 在這些目錄中查找可執行文件
$ echo $HOME /home/user $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
四、特殊字元
特殊字元,用來對字元串或命令行參數進行操作。
1、$: 取變數值的內容,如:$variable。
2、#:取字元或參數的長度,如:${#variable}。
3、%:從後向前刪除匹配的最小值字元,如:${variable%/*}。
4、%%:從後向前刪除匹配的最大值字元,如:${variable%%/*}。
5、/:替換字元串匹配的字元,如:${variable/old/new}。
6、//:替換字元串匹配的所有字元,如:${variable//old/new}。
五、共享變數
1、export: 用於將局部變數提升為全局變數。
#!/bin/bash function func { local var1="hello" echo "var1 is ${var1}" echo "var2 is ${var2}" } export var2="world" func
2、source: 執行腳本,使共享變數在當前 Shell 中生效。
#!/bin/bash var1="hello" export var2="world" echo "var1 is ${var1}" echo "var2 is ${var2}" source test.sh echo "var2 is ${var2}"
六、數組
數組能夠存儲多個值,並通過下標索引來訪問數組元素。
1、定義數組
myArray=(one two three four five)
2、訪問數組
echo ${myArray[0]} echo ${myArray[*]} echo ${#myArray[*]}
3、向數組中添加元素
myArray[5]="six" myArray+=("seven")
4、數組的循環遍歷
for var in ${myArray[*]} do echo ${var} done
七、用戶自定義變數
1、set: 設置變數。
2、read: 讀取用戶輸入的內容到變數中。
read -t 5 -p "Enter name: " name
八、數組變數解釋器(declare)
declare命令可以設置變數的屬性,包括數組元素類型、只讀屬性、可重複賦值、調試屬性等。
1、定義只讀變數
readonly myVar="hello"
2、定義數組元素類型
declare -a myArray # 數字索引數組 declare -A myArray # 帶關聯鍵值的數組
3、定義整數變數
declare -i myInt=10
4、定義調試變數
declare -x myDebugVar="debug info"
九、總結
Shell變數在Linux運維中起著不可替代的作用,掌握了Shell變數的使用方法,對運維人員來說是非常重要的技能。上述涉及到的Shell變數是我們經常使用到的必備技能,靈活掌握這些變數的使用方法,可以有效地提高我們的工作效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/193505.html