Linux運維工程師必備的Bash變量

一、特殊變量

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-hk/n/135512.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HCFF的頭像HCFF
上一篇 2024-10-04 00:13
下一篇 2024-10-04 00:13

相關推薦

發表回復

登錄後才能評論