首頁 > 環境與工具程式 > test

test: 評估條件表達式

test 命令用於在 shell 腳本中構建條件語句。它可以評估各種條件表達式,例如檢查文件類型、比較字符串和數值,並返回真(0)或假(1)。這些返回值可用於 `if` 等控制結構。

概述

test 命令評估給定的表達式,如果結果為真則返回退出狀態 0,如果為假則返回 1。它主要用於 shell 腳本中的條件執行,如 `if` 和 `while` 語句。`[` 命令是 `test` 命令的另一種形式,而 `[[` 在 Bash/Ksh/Zsh 中提供了擴展功能。

主要功能

  • 檢查文件類型和屬性
  • 比較字符串值
  • 比較整數值
  • 邏輯運算 (AND, OR, NOT)

主要選項

test 命令使用各種一元和二元運算符來評估條件表達式。

檢查文件屬性

字符串比較

整數比較

邏輯運算符

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`test` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

使用 test 命令進行各種條件表達式評估的範例。

檢查文件是否存在

if test -e /etc/passwd; then echo "/etc/passwd 文件存在。"; fi

檢查 `/etc/passwd` 文件是否存在。

檢查是否為目錄

if test -d /tmp; then echo "/tmp 是個目錄。"; fi

檢查 `/tmp` 是否為目錄。

字符串比較

MY_VAR="hello"
if test "$MY_VAR" = "hello"; then echo "變量值是 hello。"; fi

檢查變量 `MY_VAR` 的值是否等於 'hello'。

整數比較

COUNT=15
if test "$COUNT" -gt 10; then echo "COUNT 大於 10。"; fi

檢查變量 `COUNT` 的值是否大於 10。

邏輯 AND 運算

touch file.txt
if test -f file.txt -a -s file.txt; then echo "file.txt 存在且非空。"; fi
rm file.txt

檢查 `file.txt` 是否存在且非空。

使用 `[` 代替 test

if [ -f /etc/hosts ]; then echo "/etc/hosts 文件存在。"; fi

`test` 命令可以用 `[` 替代,但需要在末尾加上 `]`。

提示與注意事項

使用 test 命令時的有用提示和注意事項。

主要提示

  • `[` 命令與 `test` 命令相同,但需要在末尾加上 `]`。`[` 和 `]` 被視為單獨的參數,因此必須有空格。
  • `[[` 命令僅在 Bash, Ksh, Zsh 中支持,並提供更強大的功能(如正則表達式、空格處理等)。在 `[[` 內部,即使不引用變量也是安全的。
  • 使用變量時,始終用雙引號括起來是安全的(例如:`test "$VAR" = "value"`)。這可以防止變量為空或包含空格時可能出現的錯誤。
  • 進行整數比較時,請使用 `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le`;進行字符串比較時,請使用 `=`, `!=`, `-z`, `-n`。混淆使用可能會導致意外結果。

相同類別命令