xargs で複数行のコマンドを実行したい。 出来ない・・・ ls *.txt | xargs -I@ echo @ ; sleep 1 forループならできるんだけど、for ループだとどうしても不便。 xargs でシェルコマンドを作って渡す. xargs だと限界があるので、もうシェルの文字列にして渡すしか、他に選択肢がない。 ls *.txt | xargs -I@ sh -c 'echo @ ; sleep 1' これなら動くんです。動くんです。 xargs が1つ実行するたびに、 sh -c 'echo @ ' の@ の部分にファイルを文字列として入れて渡してくれる。 bash でもいい sh だと機能が少ないので、bashにしてやるという手段も取れる。 ls *.txt | xargs -I@ bash -c 'echo @ ; sleep 1' 条件分岐も もうここまできた