動作確認用サンプル LinuCレベル1試験 問題 問4
シェルおよびスクリプト/シェルスクリプトbashのシェルスクリプトにおいて、変数へ値を代入する書き方として正しいものをすべて選べ。
出典:動作確認用サンプル LinuCレベル1試験 問題 問4
- ANAME=value
- BNAME = value
- CNAME="value with space"
- D$NAME=value
正解:A、C
解説
シェル(bash等)では、変数への代入は「変数名=値」の形式で、=の前後にスペースを入れません。値にスペースを含める場合はダブルクォートまたはシングルクォートで囲みます。変数を参照するときにのみ先頭に$を付け、代入時に$を付けると別のコマンドとして解釈されエラーになります。
選択肢ごとの解説
- A正しい。NAME=value は基本的な代入の書き方です。=の前後にスペースを入れないのが規則です。
- B誤り。=の前後にスペースがあると、シェルはNAMEをコマンド名と解釈しようとしてしまい、代入になりません。
- C正しい。値にスペースを含める場合はダブルクォートで囲むことで1つの値として代入できます。
- D誤り。代入時に$を付けると、変数展開後の文字列をコマンドとして実行しようとしてしまい、代入にはなりません($は参照時のみ使います)。