シュルはループをしなくても下記の例のように、ファイル一覧から、ファイル名をパラメーターにして、自分のプログラムに渡して順番に実行することができます。まあ、一番いい方法かどうかは置いといて、やりたいことができるならわるくないとは思います。 #!/bin/bash TD=/tmp/all2mp4-$$ ls -l ~/myfiles/*.anyext | awk '{print "bash ~/myprogram.sh " gsub(/ /,"\\ ",$9)}'> $TD bash $TD sleep 1 rm $TD しかし、ファイル名にスペースが入っている場合、上記のawkからちゃんとファイルを取得することができなかったので、下記に書き直しました。それから、自分のプログラムに渡した場合、スペースを¥(バックスラッシュ)でエスケープしないとちゃんとパラメーターとして渡せない点を注意する必要がありますね。 #!/bin/bash TD=/tmp/all2mp4-$$ ls -l ~/myfiles/*.anyext | awk '{tmp=$1;for (i = 2; i <= 8; i++) tmp=tmp " " $i; gsub(" "," ",$0); gsub(tmp " ","",$0); gsub(" ","\\ ",$0); print "bash ~/myprogram.sh " $0}'> $TD bash $TD sleep 1 rm $TD 【註】$$ 実行されたシェル自身のプロセスIDです。 (日付が一桁のとき、2連スペースになるため、2連スペースを一つスペースに置換する修正しました)