概述
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`。混淆使用可能會導致意外結果。