0と1でできたブログ

プログラミングなどの個人的なメモ。他の人の参考になれば嬉しいです。

回数を指定して、繰り返しを行うシェルスクリプトを書きました。

お知らせ: 新しくホームページを作りました! これから記事を増やしていくつもりなので, 良かったら見て下さい!! ホームページはこちらになります.

Terminal上などで、コマンドを繰り返したいときには、forを使って繰り返すと思います。 ただ、毎回毎回forの構文を使うのも面倒くさいので、簡単に繰り返しが行えるようなシェルスクリプトを書きました。こんな感じです。

#!/bin/sh

if [ $# -lt 2 ]; then
    echo "繰り返しの回数とコマンドを入力してください."
    echo "e.g. iterate 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

自分の環境ではPATHの通ったフォルダに、iterateという名前で保存してあるので、

$ iterate 3 echo "hello world"

のように打つと、

hello world
hello world
hello world

と言うような出力が得られます。
PATHの通っていないフォルダに保存した場合は、そのフォルダに入って、以下のように 打てば実行出来ます。

$ ./iterate 3 echo "hello world"

PATHの通っているフォルダにおいておけば、他のシェルスクリプト内にも書けるので、便利だと思います。
ちなみに、実行可能権をつけることも忘れずに。

chmod 755 iterate

などとすれば、iterateファイルは、書き込み、読み込み、実行可能になります。 chmodについては、良かったらここを参考にしてください。


記事とは関係ないのですが,webアプリケーション開発の練習で,まとめのまとめサイトを作ってみたので,よろしければ見てみてください. (いろんなまとめのまとめ, 恋愛・結婚の2chまとめサイトのまとめ)