# 第三章 GNUとUnixのコマンド
練習問題3.1
bashを使って作業をしている時、次のコマンドRタインを実行しました。結果として適切な説明を選択してください。
$ TEST=date;echo $TEST
A. 現在の時間が表示される
B. 「$TEST」と表示される。
C. 「$date」と表示される
D. 「date」と表示される
E. 誤りがあるのでエラーになる。
(解答)A
(解説)
細かく分類してみる、まず、シェル変数TESTに「date」という値が入ります。セミコロン(;)はコマンドを順に実行します。従って、設問のコマンドは「TEST=date」と「echo $TEST
」を2行に分けて入力した場合と同じ結果になります。
バッククォーテーション(`)内の変数はコマンドとして置き換えられ、実行した結果が展開されます。このため、dateコマンドの実行結果である、現在の日時が表示されます。従って、正解は選択肢Aです。
単一引用符(')の場合は変数が展開されません。もし「echo '$TEST'」なら、「$TEST」と表示されます。二重引用符(")の場合は変数が展開されます。もし、「echo "$TEST"」なら、「date」と表示されます。
(わからない単語解説)
- シェル
OSとユーザーの間のインターフェースとして、ユーザーが入力したコマンドを解釈し、OSのカーネルに伝えて処理を実行させ、その結果をユーザーに表示するプログラムのこと