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

$ X=1
$ bash -c 'echo "[$X]"'
$ export X
$ bash -c 'echo "[$X]"'

上のコマンドを順に実行したときの、2つの bash -c の出力の組み合わせとして、正しいものはどれか。

  1. A[] と [1]
  2. B[1] と [1]
  3. C[] と []
答えと解説を見る

正解:A. [] と [1]

「X=1」と代入しただけの変数はシェル変数で、そのシェルの中でしか使えず、起動した子プロセス(ここでは新しい bash)には渡りません。export を付けると環境変数になり、その後に起動する子プロセスに値が引き継がれます。そのため1つ目は []、2つ目は [1] になります。単一引用符で囲んでいるので、$X は親のシェルではなく、子の bash の中で展開されます。

  • A. 正しい。export するまで、X は子プロセスに渡りません。
  • B. 代入しただけのシェル変数は、子プロセスには引き継がれません。
  • C. export の後に起動した子プロセスには、X の値が引き継がれます。
この分野を解く 分野ページへ

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

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

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

  1. Linuxのパッケージ管理システム(Debian系の apt、Red Hat系の dnf など)の主な働きとして、正しいものはどれか。
  2. systemd を使うLinuxで、サービス license.service に対する「systemctl start license.service」と「systemctl enable license.service」の違いとして、正しいものはどれか。
  3. cron に「30 2 * * 1 /home/alice/backup.sh」と登録した。backup.sh が実行されるタイミングとして、正しいものはどれか。
  4. Linuxのサーバで「ディスクの空きが少ない」という警告が出た。ファイルシステムごとの使用量と空き容量を調べるコマンドと、ディレクトリの中のファイルが使っている容量を合計して調べるコマンドの組み合わせとして、正しいものはどれか。
  5. 手元のPCで ssh-keygen を使って公開鍵認証の鍵の組を作り、サーバ server1 にパスワードなしで ssh で接続できるようにしたい。鍵の置き方として、正しいものはどれか。