LPIC問題:861-864

LPIC練習問題

問題861:シェルスクリプトにおいて、現在のシェルのプロセスIDを示す変数として正しいのは次のうちどれですか?

A) $!
B) $#
C) $$
D) $?

解答解説を開く
正解)C

【解説】
A) 誤りです。$! は最後にバックグラウンドで実行されたコマンドのプロセスIDを示します。
B) 誤りです。$# は引数の数を示します。
C) 正解です。$$ は現在のシェルのプロセスIDを示します。
D) 誤りです。$? は直前に実行したコマンドの終了ステータスを示します。

問題862:次のコマンドを使用して環境変数を一時的に設定する際に適切な選択肢はどれですか?

A) env VAR=value
B) export VAR=value
C) set VAR=value
D) unset VAR=value

解答解説を開く
正解)A

【解説】
A) 正解です。env コマンドは一時的に環境変数を設定します。
B) 誤りです。export は環境変数を永続的に設定します。
C) 誤りです。set はローカル変数の設定に使用されます。
D) 誤りです。unset は変数を削除します。

問題863:以下のコマンドを実行した場合の出力として正しいものはどれですか?
seq 1 4 20

A) 1, 5, 9, 13, 17 を1行に出力
B) 1から20まで1ずつ増加した値を改行して表示
C) 1, 5, 9, 13, 17 を1行ずつ改行して出力
D) エラーが発生し、何も出力されない。

解答解説を開く
正解)C

【解説】
A) 誤りです。seq コマンドはデフォルトで改行して出力します。
B) 誤りです。間隔が4なので1ずつ増加はしません。
C) 正解です。指定された増分(4)に従い、1行ずつ出力します。
D) 誤りです。構文は正しいためエラーは発生しません。

問題864:次のコマンドを実行した結果として正しい出力はどれですか?
VAR="Hello Bash"  
echo "${VAR:6:4}"

A) Hell
B) Bash
C) ello
D) Hello

解答解説を開く
正解)B

【解説】
A) 誤りです。指定した範囲は6から始まる文字列です。
B) 正解です。6文字目から4文字分を抽出するとBashになります。
C) 誤りです。ello は異なるスライス範囲での結果です。
D) 誤りです。スライス全体を表示する場合の出力ではありません。