xargs
ビルドと実行の使い方コマンドリストたとえば、次のようになります。
#1
cmd1 <arg1> && cmd2 <arg1> && cmd3 <arg1>
#2
cmd1 <arg1> ; cmd2 <arg1>
答え1
各入力行に対してサブシェルを起動しますxargs
。
xargs -I {} sh -c 'cmd1 "$1" && cmd2 "$1" && cmd3 "$1"' sh {}
xargs -I {} sh -c 'cmd1 "$1"; cmd2 "$1"' sh {}
このコマンドは、指定されたsh -c
文字列をシェルスクリプトとして実行します。sh -c
パラメータはスクリプト自体の背後にあり、$0
スクリプト$1
内に提供されます。値は$0
通常シェルの名前でなければならず、これがsh
このパラメータに直接渡される理由です(エラーメッセージで使用されます)。
または、
xargs sh -c '
for arg do
cmd1 "$arg" && cmd2 "$arg" && cmd3 "$arg"
done' sh
xargs sh -c '
for arg do
cmd1 "$arg"
cmd2 "$arg"
done' sh
これらのバリアントはできるだけ多くのパラメータを取り、sh -c
スクリプト内のループ内のそのパラメータにコードを適用します。
いつものように、使用するときは、与えられたユーティリティ(ここ)に与えられた引数を適切に分離するようにxargs
注意する必要があります。sh -c