103.4基礎
sortへnames.txtの内容を標準入力として渡す。
sortのファイル引数は使わず、入力リダイレクトを使用する。
適切なコマンドはどれか。
× 不正解
<はファイルをコマンドの標準入力へ接続する。sortはファイル引数がなくても標準入力を処理できる。
詳細解説
誤り
sort > names.txtsortの出力でnames.txtを上書きする方向になる。
names.txtを出力先にして内容を失い得る。
誤り
sort 2< names.txtFD 2は標準エラーの番号で、通常の入力先ではない。
FD 2は入力用FDではない。
正しい
sort < names.txt<によりnames.txtをsortの標準入力へ接続する。
正解。sortがFD 0からnames.txtを読む。
誤り
names.txt | sortnames.txtをコマンドとして実行しようとする。
ファイル名を実行可能コマンドとして扱おうとする。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'bob
alice
' > /tmp/kp-names.txt; sort < /tmp/kp-names.txt; rm /tmp/kp-names.txt期待される結果
alice
bob理解のポイント
- <は標準入力
- FD 0が標準入力
- 出力先は変更しない
確認時の注意
- 確認環境: Bash 5.2 / GNU coreutils 9.x
基礎のおさらい
FD 0
標準入力にはファイル記述子0が割り当てられる。
引数との違い
sort names.txtとsort < names.txtは処理内容が近いが、後者はsortへファイル名を引数として渡さない。
問題IDKP-103-064
確認環境Bash 5.2 / GNU coreutils 9.x
最終技術確認2026-08-12
誤り・権利侵害を報告