シェルテストコマンド


シェルのテストコマンドは、特定の条件が真であるかどうかを確認するために使用され、値、文字、ファイルをテストできます。


数値テスト

パラメータ 説明
-eq 等しい場合、それは真です
-ね 等しくない場合は True
-gt それより大きい場合、それは真です
-げ
以上の場合は true -lt
未満の場合は真です -ル 以下の場合は true です

デモ例:

num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi

出力結果:

两个数相等!

文字列テスト

パラメータ 説明
= 等しい場合、それは真です
!= 等しくない場合は True
-z 文字列 文字列の長さがゼロの場合は True
-n 文字列 文字列の長さがゼロでない場合は true です

デモ例:

num1="php"
num2="php"
if test num1=num2
then
    echo '两个字符串相等!'
else
    echo '两个字符串不相等!'
fi

出力結果:

两个字符串相等!

ファイルテスト

パラメータ 説明
-e ファイル名 ファイルが存在する場合は True
-r ファイル名 ファイルが存在し、読み取り可能な場合は True
-w ファイル名 ファイルが存在し、書き込み可能な場合は True
-x ファイル名 ファイルが存在し、実行可能であれば True
-s ファイル名 ファイルが存在し、少なくとも 1 つの文字が含まれている場合は True
-d ファイル名 ファイルが存在し、ディレクトリである場合は True
-f ファイル名 ファイルが存在し、通常のファイルである場合は True
-c ファイル名 ファイルが存在し、キャラクタースペシャルファイルである場合は True
-b ファイル名 ファイルが存在し、ブロック特殊ファイルである場合は True です

デモの例:

cd /bin
if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi

出力結果:

文件已存在!

さらに、シェルは (!) ではなく (-a) または (-o) も提供します。テスト条件を接続するために 3 つの論理演算子が使用されます。その優先順位は、「!」が最も高く、「-a」が 2 番目、「-o」が最も低くなります。例:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo '有一个文件存在!'
else
    echo '两个文件都不存在'
fi

出力結果:

有一个文件存在!