Bash で文字列を比較する方法 – TecAdmin

in Vlog

(jp) =

文字列の比較は、シェル スクリプト、ユーザー入力、または文字列データを操作する際の一般的なタスクです。 シェルでは、値が別の文字列に存在するかどうかを確認したり、2 つの文字列の長さが同じかどうかを調べたり、単語の先頭または末尾をテストしたり、その他の種類の比較を行う必要がある場合があります。 標準の Unix ツールには、文字列を比較するための多くのオプションが用意されていません。 従来の字句比較 (2 つの単語が同じ長さであるかどうかをチェックし、各文字を個別に比較するなど) は、コードで効率的に実装するのが難しく、Bash のような動的言語にはそれほど価値がありません。

この記事では、Bash で文字列を比較するさまざまな方法と、いくつかの関連コマンドについて説明します。

文字列比較演算子

bash if ステートメントで比較演算子を使用して、2 つの文字列を比較できます。 以下は、bash シェルで文字列を操作するための比較演算子のリストです。

オペレーター 詳細
文字列1 == 文字列2 両方の文字列が等しい場合に true を返します。
string1 != 文字列 両方の文字列が等しくない場合に true を返します。
文字列 =~ 正規表現 string1 を正規表現と比較し、真の一致を返す
-z 文字列 指定された文字列の長さがゼロ (0) の場合は true を返します
-n 文字列 指定された文字列の長さがゼロでない場合は true を返します

ここで、上記の比較演算子について、例を挙げて 1 つずつ説明します。

Bash で 2 つの文字列を比較する (==)

2 つの文字列が等しいかどうかを確認する必要がある場合は、 == オペレーター。 これらの演算子は、左のオペランドと右のオペランドを比較し、両方が一致する場合に true を返します。

例で理解しましょう。 シェル スクリプトで、2 つの変数を文字列で初期化します。 次に、if ステートメントを使用して、== 演算子を使用して両方の文字列が等しいかどうかを比較します。

上記のシェル スクリプトを bash シェルで実行し、結果を確認します。

Output:
Both strings are equal

ここで、両方の変数の値を異なる文字列に変更します。 次に、スクリプトを再度実行して結果を確認します。

2 つの文字列が等しくないことを確認する (!=)

両方の文字列が等しくないかどうかを確認する必要がある場合があります。 あなたが使用することができます != 2 つの文字列が等しくないかどうかをテストする演算子。 例で確認しましょう:

上記のシェル スクリプトを bash シェルで実行し、結果を確認します。

Output:
True, both strings are not equal

文字列を正規表現で比較する

文字列を bash スクリプトの正規表現と比較することもできます。 if ステートメントで正規表現による文字列比較を使用する場合は、常に次のように囲む必要があります。 [[ ]] 引用符。 以下の例は、特定の文字列で始まる文字列が変数に含まれているかどうかを確認するのに役立ちます。

Output:
Yes, the regular expression matches

別の例で確認してみましょう。 このスクリプトでは、ユーザーに数値の入力を求めます。 次に、入力値が数値かどうかを確認します。 0 から 9 までの数字を格納する数値コンテナー。

上記の bash スクリプトを実行し、プロンプトが表示されたら入力します。

First run:
Input a number: 12
Given input is a number

このスクリプトを再度実行しますが、今回は数値以外の値を入力して結果を確認します。

Second run:
Input a number: 1234a
Sorry, input is not a number

文字列が空かどうかを確認する

シェル スクリプトでユーザー入力を受け取るときは、入力文字列が空でないことを確認することが重要です。 あなたが使用することができます -z 戻る 真実 文字列が空の場合。

上記のシェル スクリプトを bash シェルで実行し、ユーザー入力を求めるプロンプトが表示されたら、Enter キーを押します。

First run:
Type anything:
Empty string

上記のスクリプトを再度実行し、プロンプトが表示されたら何か入力します。

Second run:
Type anything: TecAdmin
You type: TecAdmin

結論

このチュートリアルでは、bash スクリプトでの文字列比較について説明しました。 文字列が空かどうかを確認することもできます。 入力値が数値かどうかを確認する例も示します。

関連記事

前の投稿
ラニーニャとエルニーニョ: それらは何であり、違いは何ですか?
次の投稿
フィロデンドロンの黄金の女神 vs レモンライム: 違いはありますか?