8

xargsを使用して、スクリプトを停止するスクリプトへの引数を入力し、ユーザー入力を待機しています。何かのようなもの:

echo a b c | xargs bash -c 'for a in "$@"; do echo $a; read; done'

しかし、readは無視されます。2番目のスクリプトもパイプからの入力を取得しようとしているようです。私は試しましxargs -pたが、それは良くありません。

4

2 に答える 2

7

オプション-aが に与えられた場合xargs、引数は stdin ではなくファイルから読み込まれます。構文でbash のプロセス置換を使用して、その場でファイル<( ... )を作成できます。

xargs -a <( echo A B C ) bash -c 'for x in "$@"; do echo $x; read; done'

ここで$@は最初の引数 (この場合は 'A') が抜けていることに注意してください。これは、bash -c'A' を$0(通常はスクリプト ファイルの名前を取る) に入れ、 などを提供$@するためです (この場合は 'B' と 'C')。$1$2

于 2012-04-19T07:34:03.267 に答える