Linuxコマンドラインで作業しているときに、整数値などの特定のものをテストしたい場合や、ファイルが特定のタイプであるかどうかをテストしたい場合があります。組み込みのコマンドラインユーティリティテストがあることを知って喜ぶでしょう これにより、これらの比較とテストのほとんどを実行できます。
このチュートリアルでは、わかりやすい例を使用して、このツールの基本について説明します。ただし、その前に、記事のすべての例がUbuntu16.04LTSでテストされていることを言及する価値があります。
Linuxテストコマンド
すでに述べたように、テストコマンドはチェックと比較を実行するために使用されます。構文は次のとおりです。
test EXPRESSION
そして、このユーティリティについてのマニュアルページの内容は次のとおりです。
test - check file types and compare values
以下は、ツールがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。
注 :テストが提供するコマンドラインオプションの一部は、シェルスクリプト内で使用する場合に最も役立つことに注意してください。
Q1。 2つの文字列を比較する方法は?
単純です。それらの間に等号(=)を使用する必要があります。例:
test howto = forge
より良い方法は、次のように書くことです:
test howto = forge && echo "same"
したがって、文字列が同じである場合は、「同じ」という単語が出力に出力され、そうでない場合は何も出力されません。
同様に、不等式をテストする場合は、次のテンプレートを使用できます。
STRING1 != STRING2
Q2。テストを使用して整数を比較するにはどうすればよいですか?
これも非常に簡単です。「-eq」を使用して比較するだけです。例:
test 5 -eq 7 && echo "same"
このコマンドラインオプションがどのように機能するかを示すスクリーンショットは次のとおりです。
同様に、' -geを使用できます '以上をテストするには、' -gt 'より大きい場合、' -le '以下の場合、' -lt '未満の場合、および' -ne '等しくない。
Q3。 testを使用してファイルをテスト/比較する方法は?
2つのファイルのどちらが新しいかをテストするには、「-nt」を使用します。例:
test file1 -nt file2
システムでテストした方法は次のとおりです。
実行できる他のファイル比較には、2つのファイルのうちどちらが古いか(-ot)、2つのファイルのデバイス番号とiノード番号が同じかどうか(-ef)が含まれます。
>特定のファイルがディレクトリであるかどうかを確認するには、次の方法で-dオプションを使用します。
test-d[ファイル名]
例:
test -d new_dir
以下は、「test」コマンドが提供する他のファイルタイプのテストオプションです。
Q4。 testコマンドはシンボリックリンクをどのように処理しますか?
いくつかの例外がありますが、testコマンドはシンボリックリンクを逆参照します。以下は、manページがこれについて述べていることです:
Except for -h and -L, all FILE-related tests dereference symboliclinks.
ご存じない場合は、-hと-Lの両方で、ファイルが存在し、シンボリックリンクであるかどうかを確認します。したがって、それらの除外は理にかなっていますよね?
テストコマンドには多くのオプションがありますが、大まかに言えば、それらを3〜4つのカテゴリに分類できます。各カテゴリの例を示しました。したがって、これらを試してみてください。完了したら、ユーティリティのマニュアルページにアクセスして詳細を確認してください。