English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Shell test コマンド

Shellのtestコマンドは、ある条件が成立するかどうかを確認するために使用されます。それは数値、文字、ファイルの三つの面でテストを行うことができます。

数値テスト

パラメータ 説明
-eq 等しいであれば真
-ne 不一致であれば真
-gt 以上であれば真
-ge 以上であれば真
-lt 以下であれば真
-le 以下であれば真
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '二つの数は等しい!'
else
    echo '二つの数は不一致!'
fi

出力結果:

二つの数は等しい!

コード中の[]は基本的な算術演算を実行します、例えば:

#!/bin/bash
a=5
b=6
result=$[a+b] # 注意:等号の両側にスペースは入れることができません
echo "result が: $result"

結果は:

result が: 11

文字列テスト

パラメータ 説明
= 等しいであれば真
!== 不一致であれば真
-z 文字列 文字の長さが0であれば真
-n 文字列 文字列の長さが0でない場合が真
num1="ru1noob"
num2="w3codebox"
if test $num1 = $num2
then
    echo '2つの文字列が一致しています!'
else
    echo '2つの文字列が異なる!'
fi

出力結果:

2つの文字列が異なる!

ファイルテスト

パラメータ 説明
-e ファイル名 ファイルが存在する場合が真
-r ファイル名 ファイルが存在し、読み取り可能である場合が真
-w ファイル名 ファイルが存在し、書き込み可能である場合が真
-x ファイル名 ファイルが存在し、実行可能である場合が真
-s ファイル名 ファイルが存在し、少なくとも1つの文字がある場合が真
-d ファイル名 ファイルが存在し、ディレクトリである場合が真
-f ファイル名 ファイルが存在し、通常ファイルである場合が真
-c ファイル名 ファイルが存在し、キャラクタ特殊ファイルである場合が真
-b ファイル名 ファイルが存在し、ブロック特殊ファイルである場合が真
cd /bin
if test -e./bash
then
    echo 'ファイルが存在しています'
else
    echo 'ファイルが存在しません'
fi

出力結果:

ファイルが存在しています!

また、Shellは( -a )、または( -o )、非( ! )の3つの論理演算子を使用してテスト条件を結合し、優先順位は:! が最も高い, -a 次に低い, -o 最も低い。例えば:

cd /bin
if test -e./notFile -o -e./bash
then
    echo '少なくとも1つのファイルが存在しています!'
else
    echo '2つのファイルはどちらも存在しません'
fi

出力結果:

少なくとも1つのファイルが存在しています!