ありがとうございます。さんの回答をベースに、手元で動くようにしたのが次です。スペース入りファイル名称にも対応しています。個の銅バッジsetする前に目的のディレクトリへcdする必要があるように思います。shiftdone先に結果を変数に格納しておいて、順次表示する形です。変数は、自分は見たことないのですが、これは何を表わす変数なのでしょうか。globの挙動を勘違いしていました。${#@}は$@に格納されている文字列の長さです。${#1}でもいいのだと思うのですが全体の長さを使うほうが個人的には好みでしたので。特有の機能を使って良ければ、配列を使って書けます。限定であれば、一旦ファイルの数を数えて、その後最後のファイルかどうかを判定する方法を思いつきました。スクリプトの実行中にファイルの数が変わりうるときには誤作動するのでご注意ください。1))doneこれらの方法は愚直ですが、それぞれのファイルに対して実行したいコマンドが遅いときでも使えます。ようにコマンドの実行時間が充分短い場合には有効ですが、実行時間が長い場合には使えません。"$dir/[^\]\+$")"でも同様のカウントをすることができましたが、標準のlsの出力だと.bashrcだとか.profileみたいなファイル名は出力されないのでそれらを除外する必要があるように思いました。コマンドを使うのは初めて知りました。除外されていました)。15:23ああ、言われてみれば除外されるディレクトリがあるんでした。いつもテスト環境は~/tmp/に作っているのでその点は意識の外でした。|2ループの中(do)ではなく評価の方(while)にやりたいことを持っていけばシンプルに書けると思います。出力する最後のファイル名に改行が含まれていると誤動作します。オプションを使うと回避できそうです。