一、特殊變數
Bash提供了許多特殊變數,它們在Bash腳本中非常有用。
1、$0:當前腳本的文件名。
#!/bin/bash
echo "當前腳本文件名:$0"
輸出結果:
當前腳本文件名:test.sh
2、$1、$2、$3…:位置參數,表示腳本執行時傳遞的參數。
#!/bin/bash
echo "第1個參數為:$1"
echo "第2個參數為:$2"
echo "第3個參數為:$3"
執行腳本:./test.sh aa bb cc
輸出結果:
第1個參數為:aa
第2個參數為:bb
第3個參數為:cc
3、$#:參數個數。
#!/bin/bash
echo "參數個數為:$#"
執行腳本:./test.sh aa bb cc
輸出結果:
參數個數為:3
4、$@:所有參數,作為一個字元串使用。
#!/bin/bash
echo "所有參數為:$@"
執行腳本:./test.sh aa bb cc
輸出結果:
所有參數為:aa bb cc
5、$?:上一個命令的退出狀態碼。
#!/bin/bash
ls /root
echo "退出狀態碼為:$?"
輸出結果:
ls: 無法訪問/root: 沒有那個文件或目錄
退出狀態碼為:2
二、環境變數
環境變數是在操作系統中存儲的一個值,可以被許多進程或程序共享。
1、$PATH:環境變數,表示可執行程序的搜索路徑。
#!/bin/bash
echo $PATH
輸出結果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2、$HOME:環境變數,表示當前用戶的主目錄路徑。
#!/bin/bash
echo $HOME
輸出結果:
/home/tom
3、$USER:環境變數,表示當前用戶的用戶名。
#!/bin/bash
echo $USER
輸出結果:
tom
三、自定義變數
自定義變數可以在Bash腳本中自由定義,起到存儲臨時數據的作用。
1、定義變數:
#!/bin/bash
var="hello world"
echo $var
輸出結果:
hello world
2、定義只讀變數:
#!/bin/bash
readonly var="hello world"
var="new world"
執行腳本會報錯:
test.sh: line 3: var: readonly variable
3、刪除變數:
#!/bin/bash
var="hello world"
echo $var
unset var
echo $var
輸出結果:
hello world
四、數組變數
數組變數是一個存儲多個值的命名變數,可以在Bash腳本中使用。
1、定義數組變數:
#!/bin/bash
arr=("apple" "orange" "banana")
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
輸出結果:
apple
orange
banana
2、獲取數組的長度:
#!/bin/bash
arr=("apple" "orange" "banana")
echo ${#arr[@]}
輸出結果:
3
3、獲取數組的所有值:
#!/bin/bash
arr=("apple" "orange" "banana")
echo ${arr[@]}
輸出結果:
apple orange banana
五、全局變數和局部變數
在Bash腳本中,變數作用域分為全局變數和局部變數。
1、全局變數:
#!/bin/bash
var="hello world"
function test() {
echo $var
}
test
輸出結果:
hello world
2、局部變數:
#!/bin/bash
function test() {
var="hello world"
echo $var
}
test
echo $var
執行腳本會報錯:
test.sh: line 7: var: unbound variable
原創文章,作者:HCFF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135512.html