Linux shell 的 test 命令用法詳解

來源:互聯網
上載者:User

 
基本格式:
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 xxx 可以簡寫成 [  xxx  ] 的形式。

注意:在使用"["簡寫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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.