【超入門】Macでシェルスクリプトのfor文を使いこなす!基本構文から応用までわかりやすく解説

Mac

Macのターミナルを使っていて、「また同じ作業を繰り返してる…」と思ったことはありませんか?

そんなときに活躍するのが、シェルスクリプトのfor文です。

ファイルをひとつずつ処理したり、決まった回数だけコマンドを実行したりする「繰り返し処理」を自動化できます。

この記事では、初心者でもすぐにわかるように、Macでのfor文の使い方を丁寧に説明します。

ちょっとしたスクリプトが書けるようになると、作業効率が大幅にアップしますよ!

スポンサーリンク

Macで使う「シェルスクリプト」って何?

シェルスクリプトの基本

MacにはUNIXベースのターミナルが入っています。bashzshというシェルでコマンドを実行できます。

このシェルに命令をまとめて書いたファイルが「シェルスクリプト」です。

ファイルの拡張子は.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文を組み合わせると、さらに高度な処理ができるようになります。

コメント

タイトルとURLをコピーしました