1行で複数のコマンドにパラメータを渡す

1行で複数のコマンドにパラメータを渡す

同じファイルから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 && ...

おすすめ記事