Linux で文字列が空かどうかをチェックする方法

LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、Linux で文字列を操作する基本的な技術を学びます。シェルスクリプトの条件分岐ロジックにおいて重要なスキルである、test -z コマンドを使用して文字列が空かどうかを効果的にチェックする方法を学びます。さらに、汎用的な echo コマンドを使用して文字列の内容を表示する練習を行い、expr length コマンドで文字列を測定する方法を探索します。これらの実践的な演習を通じて、Linux 環境で文字列を操作および分析する実際の経験を積むことができます。

test -z で文字列の空をテストする

このステップでは、test コマンドと -z オプションを使用して、Linux で文字列が空かどうかをチェックする方法を学びます。これは、シェルスクリプトで文字列を操作する際の基本的な操作です。

test コマンドは、条件式を評価するために使用されます。-z オプションは、具体的には文字列の長さがゼロかどうかをチェックします。文字列が空の場合、テストは真(true)となり、そうでない場合は偽(false)となります。

ターミナルで試してみましょう。まず、空の文字列変数を定義します。シェルスクリプトでは、変数名を入力し、その後に等号 (=) と値を続けて変数を定義します。等号の周りにはスペースを入れないでください。

my_string という名前の空の文字列変数を定義するには、次のコマンドを入力します。

my_string=""

では、test -z コマンドを使用して、my_string が空かどうかをチェックしましょう。test コマンド自体は出力を生成しません。その結果は、スクリプトの流れを制御するために使用されます(これについては後で学びます)。ただし、echo $? を使用して前のコマンドの終了ステータスをチェックすることで、その結果を確認できます。終了ステータスが 0 は成功(真)を示し、ゼロ以外のステータスは失敗(偽)を示します。

my_string が空かどうかをテストするには、次のコマンドを入力します。

test -z "$my_string"

test コマンドを実行した後、その終了ステータスをチェックします。

echo $?

my_string は空なので、test -z コマンドは真と評価され、echo $? コマンドは 0 を出力するはずです。

では、空でない文字列を定義しましょう。

another_string="Hello"

そして、それが空かどうかをテストします。

test -z "$another_string"

終了ステータスをチェックします。

echo $?

今回は、another_string が空でないため、test -z コマンドは偽と評価され、echo $? コマンドは 1 を出力するはずです。

空の文字列をテストする方法を理解することは、さまざまな入力を正しく処理する堅牢なシェルスクリプトを書くために重要です。

echo を使って文字列の内容を表示する

このステップでは、echo コマンドを使って文字列変数の内容を表示する方法を学びます。最初の実験で見たように、echo はテキストをターミナルに出力するために使われます。変数と一緒に使うと、変数に格納されている値を出力します。

前のステップで、another_string という名前の変数を定義し、それに "Hello" という値を割り当てたことを思い出してください。

another_string="Hello"

この変数の内容を表示するには、echo コマンドの後にドル記号 ($) と変数名を続けます。ドル記号は重要です。これはシェルに対して、変数名そのものをリテラル文字列としてではなく、変数の を使いたいことを伝えます。

another_string の内容を表示するには、次のコマンドを入力します。

echo "$another_string"

次のような出力が表示されるはずです。

Hello

また、変数をより長い文字列の中に含めることもできます。これは、メッセージの中に変数の値を埋め込む一般的な方法です。

次のコマンドを入力します。

echo "The value of the string is: $another_string"

次のような出力が表示されるはずです。

The value of the string is: Hello

一般的に、変数名または文字列全体を二重引用符 (") で囲むことが推奨されます。これにより、変数の値に含まれるスペースや特殊文字に関する問題を防ぐことができます。

先ほど定義した空の文字列 my_string を表示してみましょう。

echo "$my_string"

my_string は空なので、このコマンドはただの空白行を出力します。


echo コマンドは、シェルスクリプトで情報を表示したりデバッグしたりするための基本的なツールです。変数の値やコマンドの出力を確認するために頻繁に使うことになります。

expr length で文字列の長さを測定する

このステップでは、expr コマンドと length 演算子を使用して文字列の長さを測定する方法を学びます。expr コマンドは、数学的な演算や文字列操作を含む式を評価するために使用されます。

expr 内の length 演算子は、文字列を引数として受け取り、その文字列の文字数を返します。

前のステップで定義した another_string 変数を使用しましょう。この変数の値は "Hello" です。

another_string="Hello"

another_string の長さを求めるには、expr コマンドの後に length 演算子と変数の値を続けます。変数名の前にドル記号 ($) を使用してその値を取得することを忘れないでください。

次のコマンドを入力します。

expr length "$another_string"

次の出力が表示されるはずです。これは "Hello" の文字数です。

5

では、空の文字列 my_string の長さを求めてみましょう。

my_string=""

次のコマンドを入力します。

expr length "$my_string"

出力は次のようになるはずです。

0

これにより、空の文字列の長さが確かにゼロであることが確認されます。

expr length コマンドは、シェルスクリプトで文字列の文字数を取得する簡単な方法です。これは、入力の長さを検証したり、文字を繰り返し処理したりするなど、さまざまなシナリオで役立ちます。

まとめ

この実験では、Linux で test -z コマンドを使用して文字列が空かどうかをチェックする方法を学びました。このコマンドは、文字列が空の場合に真(終了ステータス 0)と評価され、それ以外の場合は偽(終了ステータス 1)と評価されます。空の文字列変数と空でない文字列変数の両方を定義し、echo $? で終了ステータスを確認することで test -z の出力を検証する練習を行いました。また、echo コマンドを使用して文字列変数の内容を表示する方法と、expr length コマンドを使用して文字列の長さを測定する方法も学びました。これらの基本的な操作は、シェルスクリプトで文字列を扱う上で不可欠です。