コマンドのなかには、複数のファイルを引数にとってくれないのがある。 例えば、unzipは複数のファイルを解凍したい場合は次のようにしないといけない。 $ unzip a.zip $ unzip b.zip # NG: unzip a.zip b.zip こういうときはfor .. inを使えばいい。 $ for i in *.zip; do unzip $i; done でも、割と打ちづらいのでシェルスクリプトを書いてみた。これを使うと $ each unizp *.zip と書ける。 オプションだって付けれる。 # overwrite $ each 'unizp -o' *.zip ソースコード #!/bin/sh cmd=$1 shift for file in $@; do $cmd $file done