1.03.3基礎
標準入力には空白区切りでalpha beta gammaが入る。
これらをechoのコマンドライン引数として渡す。
適切なコマンド列はどれか。
× 不正解
xargsは標準入力を項目へ分割し、指定コマンドの引数として追加して実行する。単純なパイプとはデータの渡し方が異なる。
詳細解説
誤り
printf 'alpha beta gamma' | echoechoは標準入力を読み取らず、引数なしの空行を表示する。
誤り。echoは引数を表示するコマンドで、パイプからのalpha beta gammaを自動的にargvへ変えない。
誤り
echo < printf 'alpha beta gamma'printfというファイルから入力しようとする不正な意図である。
誤り。<は直後のprintfをファイル名として開こうとし、コマンド出力を引数へ変換しない。
誤り
printf 'alpha beta gamma' | tee echoechoというファイルへデータを書き、echoコマンドの引数にしない。
誤り。tee echoはechoというファイルを作る動作で、echoプロセスを起動しない。
正しい
printf 'alpha beta gamma' | xargs echoxargsが入力項目をechoの引数列へ組み立てる。
正しい。xargsが3項目を解析し、echo alpha beta gammaという実行引数を構成する。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'alpha beta gamma' | xargs printf '<%s>\n'期待される結果
<alpha>
<beta>
<gamma>理解のポイント
- xargsはstdin→argv
- 通常pipeはstdin→stdin
- 引用を含む入力は注意
確認時の注意
- 確認環境: GNU findutils xargs / 標準入力
基礎のおさらい
stdinとargv
コマンドは標準入力のbyte streamと、起動時に固定される引数配列を別の入力経路として受け取る。
空白を含む名前
既定xargsは引用・空白規則を持つため、任意パスにはNUL区切りを使う。
問題IDKL-101-477
確認環境GNU findutils xargs / 標準入力
最終技術確認2026-08-13
誤り・権利侵害を報告