このテストコマンドは、Linuxのコマンドラインで使用して、ある要素を別の要素と比較することができますが、論理とプログラムの流れを制御する条件文の一部としてBASHシェルスクリプトでよく使用されます。
基本的な例
ターミナルウィンドウを開くだけで、これらのコマンドを試すことができます。
テスト1 -eq 2 && echo "yes" ||エコー "いいえ"
上記のコマンドは、次のように分解できます。 本質的に、コマンドは1対2を比較しており、それらが一致する場合、エコー「yes」ステートメントが実行されて「yes」と表示され、一致しない場合、「no」と表示されるエコー「no」ステートメントが実行されます。 数値として解析する要素を比較する場合は、次の比較演算子を使用できます。 例 テスト1 -eq 2 && echo "yes" ||エコー "いいえ"
(1は2に等しくないため、画面に「いいえ」と表示されます) テスト1 -ge 2 && echo "yes" ||エコー "いいえ"
(1が2以上でないため、画面に「いいえ」と表示されます) テスト1 -gt 2 && echo "yes" ||エコー "いいえ"
(1が2より大きくないため、画面に「いいえ」と表示されます) テスト1 -le 2 && echo "yes" ||エコー "いいえ"
(1が2以下であるため、画面に「はい」と表示されます) テスト1 -lt 2 && echo "yes" ||エコー "いいえ"
(1が2以下であるため、画面に「はい」と表示されます) テスト1 - 2 &&エコー "はい" ||エコー "いいえ"
(1が2に等しくないため、画面に「はい」と表示されます) 文字列として解析する要素を比較する場合は、次の比較演算子を使用できます。 例 テスト "string1" = "string2" &&エコー "はい" ||エコー "いいえ"
( "string1"は "string2"と等しくないため、画面に「いいえ」と表示されます) テスト "string1"!= "string2" &&エコー "はい" ||エコー "いいえ"
( "string1"は "string2"と等しくないため、画面に「yes」と表示されます) テスト-n "string1" &&エコー "はい" ||エコー "いいえ"
( "string1"の文字列長が0より大きいため、画面に "yes"と表示されます) test -z "string1" && echo "yes" ||エコー "いいえ"
( "string1"の文字列の長さが0より大きいため、画面に "no"が表示されます) ファイルを比較する場合は、次の比較演算子を使用できます。 例 test / path / to / file1 -nt / path / to / file2 && echo "yes"
(file1がfile2より新しい場合は、 "yes"と表示されます) test -e / path / to / file1 && echo "yes"
(file1が存在する場合、 "yes"という単語が表示されます) テスト-O / path / to / file1 && echo "yes"
(あなたがfile1を所有している場合、 "yes"という単語が表示されます) 用語 これまでのところ、すべてが1つのものを別のものと比較していましたが、2つの条件を比較したい場合はどうなりますか? 例えば、ある動物が4本の足を持ち、「ムー」になると、それはおそらく牛です。単に4本の足をチェックしても、牛がいるとは保証されませんが、確かにそれを確認してください。 一度に両方の条件をテストするには、次のステートメントを使用します。 テスト4 -eq 4 -a "moo" = "moo" && echo "それは牛です" ||エコー "それは牛ではない"
ここでの重要な部分は、-aの略です そして . 同じテストをよりよく一般的に実行する方法は次のとおりです。 テスト4 -eq 4 && test "moo" = "ムー" &&エコー "それは牛です" ||エコー "それは牛ではない"
別のテストでは、2つのステートメントを比較し、いずれかが真の場合は文字列を出力します。たとえば、「file1.txt」という名前のファイルが存在するか、「file1.doc」というファイルが存在するかを確認するには、次のコマンドを使用します。 テスト-e file1.txt -o -e file1.doc && echo "file1 exists" ||エコー "file1は存在しません"
ここで重要な部分は、-oの略です または . 同じテストをよりよく一般的に実行する方法は次のとおりです。 テスト-e file1.txt || test -e file1.doc && echo "file1 exists" ||エコー "file1は存在しません" 比較を実行するのに実際には単語testを使用する必要はありません。次のように、ステートメントを角括弧で囲みます。 -e file1.txt && echo "file1 exists" ||エコー "file1は存在しません"
とは基本的にテストと同じ意味です。 これで、次のように複数の条件の比較を改善できます。 4 -eq 4 && "moo" = "moo" && echo "それは牛です" ||エコー "それは牛ではない"-e file1.txt || -e file1.doc && echo "file1 exists" ||エコー "file1は存在しません" ある変数の値を別の変数とプログラムフローをテストできるので、テストコマンドはスクリプトでより便利です。標準のコマンドラインでは、ファイルを使用してファイルが存在するかどうかをテストできます。
数値の比較
テキストの比較
ファイルの比較
複数の条件の比較
テストキーワードの削除
概要