シェルの一般的な条件テスト

シェルの一般的な条件テスト

参照および参照用にシェルで一般的に使用される条件テストテーブルを次に示します。

さまざまなテストタイプ

Bashで実行できるテストには次の3つのタイプがあります。

  • テスト文字列
  • テスト番号
  • テストファイル

テスト文字列

状態 意義
$ string1 = $ string2 2つの文字列が等しいかどうか。シェルでは大文字と小文字が区別されるため、Aとaは同じではありません。
$ string1!= $ string2 2つの文字列が異なるかどうか。
-z $ string 文字列文字列が空かどうか。zはゼロの最初の文字で、英語で「ゼロ」を意味します。
-n $ string 文字列が空でないかどうか。nは英語の最初の文字ではありません。これは英語で「not」を意味します。

例:

#!/bin/bash

if [ -z $1 ]
then
    echo "No parameter"
else
    echo "There is at least one parameter"
fi

テスト文字列

状態 意義
$ num1 -eq $ num2 2つの数値が等しいかどうか。これは、文字列を決定するために使用される記号(=)と同じではありません。eqはequalの略語で、英語で「等しい」を意味します。
$ num1 -ne $ num2 2つの数字が異なるかどうか。neはnotequalの略語で、英語で「等しくない」を意味します。
$ num1 -lt $ num2 数値num1がnum2より小さいかどうか。ltはlowerthanの略語で、英語で「lessthan」を意味します。
$ num1 -le $ num2 数値num1がnum2以下であるかどうか。leは、lower or equalの略語で、英語で「以下」を意味します。
$ num1 -gt $ num2 数値num1がnum2より大きいかどうか。gtはgreaterの略語で、英語で「より大きい」を意味します。
$ num1 -ge $ num2 数値num1がnum2以上であるかどうか。Geは、英語で「以上」を意味する「より大きい」または「等しい」の略語です。

例:

#!/bin/bash

if [ $1 -ge 10 ]
then
    echo "You have entered a number greater than 10 or equal to 10"
else
    echo "You have entered a number lower than 10"
fi

テストファイル

状態 意義
-e $ファイル ファイルが存在するかどうか。eはexistの最初の文字で、「exist」を意味します。
-d $ file ファイルがディレクトリかどうか。Linuxのすべてがファイルであるため、ディレクトリも一種のファイルです。dはディレクトリの最初の文字で、「ディレクトリ」を意味します。
-f $ file ファイルがファイルかどうか。fはファイルの最初の文字で、「ファイル」を意味します。
-L $ file ファイルがシンボリックリンクファイルであるかどうか。Lはリンクの最初の文字で、「リンク」を意味します。
-r $ file ファイルが読み取り可能かどうか。rは読み取り可能な最初の文字で、「読み取り可能」を意味します。
-w $ file ファイルが書き込み可能かどうか。wは書き込み可能の最初の文字で、「書き込み可能」を意味します。
-x $ file ファイルが実行可能かどうか。xは実行可能ファイルの最初の文字で、「実行可能」を意味します。
$ file1 -nt $ file2 ファイルfile1がfile2よりも新しいかどうか。ntは、newer thanの略語で、「新しい」を意味します。
$ file1- $ file2から ファイルfile1がfile2より古いかどうか。otは、older thanの略語で、「古い」を意味します。

例:

#!/bin/bash

read -p 'Enter a directory : ' file

if [ -d $file ]
then
    echo "$file is a directory"
else
    echo "$file is not a directory"
fi

—————————————————————————————————————————————————
参照:Linuxコマンドラインとシェルスクリプトプログラミング百科事典/ 43条件が出たとき、シェルは満たされていません

おすすめ

転載: blog.csdn.net/rjszz1314/article/details/104487269