Linuxとコマンドラインの基礎

$ name=world
$ echo 'Hello $name'
$ echo "Hello $name"

上のコマンドを順に実行したときの、2つの echo の出力として、正しいものはどれか。

  1. A1つ目は Hello world、2つ目は Hello $name
  2. B1つ目も2つ目も Hello world
  3. C1つ目は Hello $name、2つ目は Hello world
答えと解説を見る

正解:C. 1つ目は Hello $name、2つ目は Hello world

シェルでは、単一引用符('…')で囲んだ部分は書いたとおりの文字列になり、$name のような変数は展開されません。二重引用符("…")の中では変数が展開されるので、2つ目は Hello world になります。二重引用符は、変数の値に空白が含まれていても1つの引数として扱わせるのにも使います。なお、代入の「name=world」では、= の前後に空白を入れることはできません。

  • A. 単一引用符と二重引用符の働きが逆です。変数が展開されるのは二重引用符の中です。
  • B. 単一引用符の中では、変数は展開されません。
  • C. 正しい。単一引用符はそのまま、二重引用符は変数を展開します。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. 上のように、スクリプト s.sh を引数を付けて実行したときの出力として、正しいものはどれか。
  2. シェルスクリプトで、上の if の条件が真になる場合として、正しいものはどれか。
  3. 上の操作の後で、ディレクトリにあるファイルとして、正しいものはどれか。
  4. カレントディレクトリにある実行の権限が付いたスクリプト run.sh を、「run.sh」と入力して実行しようとすると「command not found」になり、「./run.sh」と入力すると実行できた。理由として、正しいものはどれか。
  5. 上のコマンドを順に実行したときの、2つの bash -c の出力の組み合わせとして、正しいものはどれか。