【解説】 A) abc1.txt は正解です。 a → ファイル名の先頭が a に一致しています。 [bc] → 2文字目は b または c にマッチする必要があります。ここでは b に一致しています。 * → 任意の文字列を0文字以上含むことが許されます。ここでは c にマッチしています。 ? → 1文字にマッチします。ここでは 1 にマッチしています。 .txt → 拡張子 .txt がそのまま一致しています。 B) acb12.txt は誤りです。[bc] の範囲により、2文字目は b または c ですが、順序が逆になっているため、マッチしません。 C) ab12.txt が正解です。 [bc] は b にマッチし、* は任意の文字列 1 にマッチし、? は 2 にマッチしています。 D) acc.txt は誤りです。? に相当する文字がなく、条件を満たしていません。
問題254:次のシェルスクリプトの意味を選択してください。
#!/bin/bash
for i in $(seq 1 5); do
echo "Number: $i"
done
A) 1から5までの数を順に表示する。 B) 5から1までの数を順に表示する。 C) 無限ループになる。 D) seq コマンドが存在しないためエラーが発生する。
解答解説を開く
正解) A
【解説】 A) 1から5までの数を順に表示する。 が正解です。 $(seq 1 5) は1から5までの数を生成し、for ループによって順に表示されます。 B) 5から1までの数を順に表示する。 は誤りです。seq 1 5 は1から5までの増加順の数を生成します。 C) 無限ループになる。 は誤りです。このスクリプトは5回実行されて終了します。 D) seq コマンドが存在しないためエラーが発生する。 は誤りです。seq は標準的なコマンドで、正常に動作します。
問題255:次のシェルスクリプトを実行した場合、出力される内容を選択してください。
#!/bin/bash
for i in a b c; do
echo $i
done
A) a B) a b c C) a b c D) abc
解答解説を開く
正解) C
【解説】 A) a は誤りです。ループは一度だけ実行されるわけではなく、3回実行されます。 B) a b c は誤りです。各変数は新しい行に出力されます。 C) a b c が正解です。 for ループにより、各文字が順に変数 i に割り当てられ、1行ずつ表示されます。 D) abc は誤りです。すべての変数が連続して表示されることはありません。
A) Hello, $variable と Hello, World B) Hello, World と Hello, $variable C) $variable と World D) World と $variable
解答解説を開く
正解) A
【解説】 A) Hello, $variable と Hello, World が正解です。 シングルクォーテーションでは変数展開が行われず、そのまま表示されますが、ダブルクォーテーションでは変数展開が行われます。 B) Hello, World と Hello, $variable は誤りです。シングルクォーテーションでは変数展開が行われないため、逆の出力になります。 C) $variable と World は誤りです。Hello が含まれていないため、正しい出力ではありません。 D) World と $variable は誤りです。シングルクォーテーションの方で $variable がそのまま表示されるため、逆の出力です。