檢查 Bash 中的變數是否為空

Fumbani Banda 2023年1月30日
  1. 使用 -z 選項檢查 Bash 中的變數是否為空
  2. 在 Bash 中使用 -n 選項來檢查變數是否為空
  3. 檢查 Bash 中的變數是否為空 - 與空字串比較
  4. 檢查 Bash 中的變數是否為空 - 使用替換方法檢查
檢查 Bash 中的變數是否為空

本教程說明了使用帶有 -z-n 選項的 test 命令在 bash 中檢查變數是否為空。

使用 -z 選項檢查 Bash 中的變數是否為空

我們使用帶有 -z 選項的 test 命令。 -z 選項檢查字串變數的長度是否為 0

如果字串變數的長度為 0,則測試返回 true,並且指令碼將字串變數為空輸出到標準輸出。如果字串變數的長度不是 0,指令碼會列印出字串變數不為空。

在下面的例子中,greet 變數有一個分配給它的字串。在測試過程中,檢查 greet 變數儲存的字串值的長度是否為 0

由於 greet 變數有字串 Hi,它分配了兩個字元,測試返回 false,並且指令碼在標準輸出中列印 greet 變數不為空。

greet='Hi'

if [ -z "$greet" ]
then
    echo "\$greet is empty"
else
    echo "\$greet is not empty"
fi

輸出:

$greet is not empty

greet 變數在下面的指令碼中被分配給一個空字串。使用 test/[ 命令檢查 greet 變數以檢視其字串值的長度是否為 0

由於 greet 變數被分配給一個空字串,測試返回 true,並且指令碼列印到標準輸出 greet 變數為空。

#!/bin/bash

greet=''

if [ -z "$greet" ]
then
    echo "\$greet is empty"
else
    echo "\$greet is not empty"
fi

輸出:

$greet is empty

在 Bash 中使用 -n 選項來檢查變數是否為空

下面的指令碼使用帶有 -n 選項的 test 命令來檢查字串變數是否為空。 -n 選項檢查字串變數中值的長度是否為非零。

如果變數中字串的長度不為零,則測試返回 true,並列印出該變數不為空。如果字串變數的長度為零,則測試返回 false,並列印出該變數為空。

greet 變數在下面的指令碼中被分配給一個空字串。當使用 test 命令檢查 greet 變數時,如果它儲存的字串的長度不為零,則返回 false,並且指令碼執行 else 部分中的命令。

#!/bin/bash

greet=''

if [ -n "$greet" ]
then
    echo "\$greet is not empty"
else
    echo "\$greet is empty"
fi

輸出:

$greet is empty

greet 變數已分配給 Hi,這是一個在下面的指令碼中包含兩個字元的字串。

檢查 greet 變數中的字串長度是否為非零的測試返回 true,因為 greet 變數被分配給具有兩個字元的字串。該指令碼在標準輸出中列印出 greet 變數不為空。

#!/bin/bash

greet='Hi'

if [ -n "$greet" ]
then
    echo "\$greet is not empty"
else
    echo "\$greet is empty"
fi

輸出:

$greet is not empty

檢查 Bash 中的變數是否為空 - 與空字串比較

我們可以通過將其與""進行比較來檢查該值是否為空。

x="Non-empty variable"
if [[ "$x" == "" ]]; then
    echo "x is empty"
else
    echo "x is not empty"
fi

檢查 Bash 中的變數是否為空 - 與空字串比較

檢查 Bash 中的變數是否為空 - 使用替換方法檢查

如果定義了 x,則表示式被替換為 test,否則為 null

if [ ${x:+test} ]; then
    echo "x is not empty"
else
    echo "x is empty"
fi

檢查 Bash 中的變數是否為空 - 與空字串比較

作者: Fumbani Banda
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

相關文章 - Bash Variable