Test命令解析

2021-07-25 11:47:42 字數 2559 閱讀 7199

基本格式:

test expression

expression為test命令構造的表示式。

這裡expression是test命令可以理解的任何有效表示式,該簡化格式將是讀者可能會踫見的最常用格式

返回值:

test命令或者返回0(真) 或者返回1(假).

test可理解的表示式型別分為四類:

表示式判斷

字串比較

數字比較

檔案比較

1)判斷表示式

if test (表示式為真)

if test !表示式為假

test 表示式1 –a 表示式 2 兩個表示式都為真

test 表示式1 –o 表示式2 兩個表示式有乙個為真

2)判斷字串

test –n 字串 字串的長度非零

test –z 字串 字串的長度為零

test 字串1=字串 2 字串相等

test 字串1 !=字串2 字串不等

3)判斷整數

test 整數1 –eq 整數2 整數相等

test 整數 1 –ge 整數2 整數1大於等於整數2

test 整數1 –gt 整數 2 整數1大於整數2

test 整數1 –le 整數 2 整數1小於等於整數2

test 整數1 –lt 整數 2 整數1小於整數2

test 整數1 –ne 整數 2 整數1不等於整數2

4)判斷檔案

test file1 –ef file2 兩個檔案具有同樣的裝置號和i結點號

test file1 –nt file2 檔案1比檔案2 新

test file1 –ot file2 檔案1比檔案2 舊

test –b file 檔案存在並且是塊裝置檔案

test –c file 檔案存在並且是字元裝置檔案

test –d file 檔案存在並且是目錄

test –e file 檔案存在

test –f file 檔案存在並且是正規檔案

test –g file 檔案存在並且是設定了組id

test –g file 檔案存在並且屬於有效組id

test –h file 檔案存在並且是乙個符號鏈結(同-l)

test –k file 檔案存在並且設定了sticky位

test –b file 檔案存在並且是塊裝置檔案

test –l file 檔案存在並且是乙個符號鏈結(同-h)

test –o file 檔案存在並且屬於有效使用者id

test –p file 檔案存在並且是乙個命名管道

test –r file 檔案存在並且可讀

test –s file 檔案存在並且是乙個套接字

test –t fd 檔案描述符是在乙個終端開啟的

test –u file 檔案存在並且設定了它的set-user-id位

test –w file 檔案存在並且可寫

test –x file 檔案存在並且可執行

test *** 可以簡寫成 [ *** ] 的形式。

注意:在使用"["簡寫test時,左中括號後面的空格和右括號前面的空格是必需的,如果沒有空格,shell不可能辨別表示式何時開始何時結束.

也就是說

test option file

可以全部改寫成:

[ option file ]

例如: test –w file

改寫成

[ –w file ]

【示例】

//判斷第乙個引數是否為空字串,不空則列印

if test -n "$1"

then

echo "$1"

fi測試,放到檔案當中

#!/bin/sh

if test -n "$1"

then

echo "$1"

fi執行

chmod +x test.sh

./test.sh www.linuxpig.com

詳解命令 test

test命令是shell環境中測試條件表示式的實用工具。語法 test 選項 選項 b 檔案 如果檔案為乙個塊特殊檔案,則為真 c 檔案 如果檔案為乙個字元特殊檔案,則為真 d 檔案 如果檔案為乙個目錄,則為真 e 檔案 如果檔案存在,則為真 f 檔案 如果檔案為乙個普通檔案,則為真 g 檔案 如果...

詳解命令 test

test命令是shell環境中測試條件表示式的實用工具。語法 test 選項 選項 b 檔案 如果檔案為乙個塊特殊檔案,則為真 c 檔案 如果檔案為乙個字元特殊檔案,則為真 d 檔案 如果檔案為乙個目錄,則為真 e 檔案 如果檔案存在,則為真 f 檔案 如果檔案為乙個普通檔案,則為真 g 檔案 如果...

test命令詳解

shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值 字元和檔案三個方面的測試。引數 說明 eq 等於則為真 ne 不等於則為真 gt 大於則為真 ge 大於等於則為真 lt 小於則為真 le 小於等於則為真例項 num1 100 num2 100 iftest num1 eq n...