Macのターミナルを使っていて、「また同じ作業を繰り返してる…」と思ったことはありませんか?
そんなときに活躍するのが、シェルスクリプトのfor文です。
ファイルをひとつずつ処理したり、決まった回数だけコマンドを実行したりする「繰り返し処理」を自動化できます。
この記事では、初心者でもすぐにわかるように、Macでのfor文の使い方を丁寧に説明します。
ちょっとしたスクリプトが書けるようになると、作業効率が大幅にアップしますよ!
Macで使う「シェルスクリプト」って何?

シェルスクリプトの基本
MacにはUNIXベースのターミナルが入っています。bashやzshというシェルでコマンドを実行できます。
このシェルに命令をまとめて書いたファイルが「シェルスクリプト」です。
ファイルの拡張子は.sh
にするのが一般的です。実行方法は以下のとおりです:
chmod +x myscript.sh # 実行権限をつける
./myscript.sh # スクリプトを実行
ポイント: シェルスクリプトは「手作業の繰り返し」を自動化するためのファイルです。
for文の基本構文と使い方
基本の書き方(bash・zsh共通)
for 変数名 in 値1 値2 値3
do
実行したいコマンド
done
例その1:文字列の繰り返し
for fruit in apple banana orange
do
echo "I like $fruit"
done
実行結果:
I like apple
I like banana
I like orange
例その2:数字の繰り返し
for i in {1..5}
do
echo "Number $i"
done
実行結果:
Number 1
Number 2
Number 3
Number 4
Number 5
覚えておこう: for文の基本は「変数を使って、値をひとつずつ処理する」ことです。
Macで使えるfor文の実用例3選

その1:複数ファイルの一括リネーム
for file in *.txt
do
mv "$file" "backup_$file"
done
何をするか: 現在のフォルダにある.txt
ファイルすべてにbackup_
をつけて名前を変更します。
その2:複数の画像をリサイズ(ImageMagickが必要)
for img in *.jpg
do
convert "$img" -resize 800x600 "resized_$img"
done
何をするか: すべてのJPEG画像を800×600ピクセルにリサイズします。
注意: ImageMagickというソフトが必要です。brew install imagemagick
でインストールできます。
その3:ネットワークの接続確認を複数回実行
for i in {1..3}
do
echo "接続テスト $i 回目"
ping -c 1 google.com
done
何をするか: google.comに3回連続でpingを送って、ネットワークの状態を確認します。
活用シーン: Macのfor文は、日常のファイル操作やネットワーク確認にとても便利です!
初心者がよくやってしまうミスと対策

シェルの違いに注意(bashとzsh)
macOS Catalina以降のMacは、デフォルトでzsh
を使います。
多くのfor文はbash
と同じように動きますが、たまに違いが出ることがあります。
確認方法: echo $SHELL
でどのシェルを使っているかわかります。
スペースが入ったファイル名の扱い
ファイル名にスペースがあると、正しく処理されないことがあります。必ず**ダブルクォート(”)**で囲みましょう。
# 正しい書き方
for f in *.jpg
do
echo "$f"
done
doneを忘れない
for ...
do
...
done ← これを忘れるとエラーになります!
大切なこと: 小さなミスが動かない原因になります。スクリプトは少しずつテストしながら書きましょう。
まとめ:Macでのfor文をマスターして作業効率アップ!
✅ for
文は、ファイル処理・繰り返し処理・自動化に必須の基本構文
✅ 数字・文字列・ファイル名すべてを繰り返し処理できる
✅ Macのターミナルで誰でもすぐに試せる!
「また同じ作業をしているな…」と感じたら、まずはfor文でスクリプト化できないか考えてみましょう。
たった数行で、あなたの作業はもっとスマートになります!
よくある質問
Q: bashとzshどちらを使えばいいですか?
A: 最新のMacではzshが標準なので、zshで問題ありません。
Q: エラーが出たときはどうすればいいですか?
A: まず構文を確認して、ダブルクォートの付け忘れやdone
の書き忘れがないかチェックしましょう。
Q: もっと複雑なスクリプトを書きたいです
A: if文やwhile文を組み合わせると、さらに高度な処理ができるようになります。
コメント