同じコマンドを繰り返すシェルスクリプト
ターミナルでの作業の時に, 同じコマンドを繰り返し処理したいという時があると思います. 例えば, データをとるときなどは, 毎回コマンドを入力するのは面倒ですよね. なので, 引数のコマンドを指定した回数だけ繰り返すシェルスクリプトを作ってしまいましょう.
私は, 以下のコードをiterateという名前で保存してあります. よって, 使い方の説明では, iterateというコマンド名になっています.
#!/bin/sh
if [ $# -lt 2 ]; then
echo "繰り返しの回数とコマンドを入力してください."
echo "e.g. 3 echo \"hello world\""
exit 1
fi
count=1
for arg in "$@"
do
if [ $count -gt 2 ]; then
argstr=$argstr" "$arg
fi
count=`expr $count + 1`
done
for i in `seq 1 1 $1`
do
$2 $argstr
done
上のコードの使い方は, 次のようになります.
$ iterate 3 echo "hello world"
hello world
hello world
hello world
つまり, 使い方は, "iterate 繰り返し回数 コマンド コマンドの引数" のような形式になります.