同じファイルから1行で複数のコマンドを実行できるようにしたいです。現在私のやり方は次のとおりです。
commandA file && commandB file && perl -ne '...' file
xargs
私の直感によれば、ファイル名引数を一度だけ提供し、同様の方法で両方のコマンドにパイプする方法が必要です。
find file | xargs commandA && xargs commandB && xargs perl -ne '...'
これを試みると、最初のコマンドのみが実行されます。私がしたいことをどのように達成できますか?
ベストアンサー1
これを行うには、ローカル変数を定義できます。
f=file; commandA $f && commandB $f && ...
&&
無条件(で置き換え;
)または並列で(&&
で置き換え)実行することもできます&
。
または、シェル履歴拡張を使用して以前の引数を参照できます。
commandA file && commandB !:1 && ...