103.4基礎
generate-reportの標準出力をreport.txtへ保存する。
report.txtが存在する場合は、以前の内容を残さず置き換える。
適切なコマンドはどれか。
× 不正解
>は標準出力をファイルへリダイレクトし、既存ファイルを実行前に切り詰める。追記には>>を使う。
詳細解説
正しい
generate-report > report.txt>は標準出力の出力先を開き、既存内容を切り詰めて書き込む。
正解。report.txtを上書き用に開いて標準出力を保存する。
誤り
generate-report >> report.txt既存内容の末尾へ追記するため置き換えにならない。
以前の内容を残して追記する。
誤り
generate-report < report.txtreport.txtを標準入力として渡す逆方向の指定である。
入力方向の指定である。
誤り
generate-report 2> report.txt標準エラーだけを保存し、標準出力は端末へ残る。
標準エラーだけを保存する。
実際に確かめる
一時的な検証環境で実行できる例です。
printf old > /tmp/kp-report.txt; printf new > /tmp/kp-report.txt; cat /tmp/kp-report.txt; rm /tmp/kp-report.txt期待される結果
new理解のポイント
- >は標準出力を上書き
- >>は追記
- リダイレクトはシェルが準備する
確認時の注意
- 確認環境: Bash 5.2
基礎のおさらい
実行前の切り詰め
シェルはコマンド実行前に出力ファイルを開くため、コマンドが後で失敗しても既存内容は失われ得る。
noclobber
Bashのnoclobber設定が有効な場合、既存ファイルへの>を拒否できる。
問題IDKP-103-062
確認環境Bash 5.2
最終技術確認2026-08-12
誤り・権利侵害を報告