Metadata
Title
17.3. シェルスクリプト
Category
general
UUID
14d94878f43344f1a3eeefeb5f48763f
Source URL
https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/shellscript/
Parent URL
https://hwb.ecc.u-tokyo.ac.jp/hwb2023/literacy/email/
Crawl Time
2026-03-23T10:18:41+00:00
Rendered Raw Markdown

17.3. シェルスクリプト

Source: https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/shellscript/ Parent: https://hwb.ecc.u-tokyo.ac.jp/hwb2023/literacy/email/

シェルスクリプトは、シェルに解釈・実行させるスクリプト (プログラム) です。 コマンドは基本的に一つずつ入力し実行させます。一連のコマンドを順に実行したい場合には、シェルスクリプトを書くと、 1度の指示で実行することができます。

シェルスクリプトの例 #

さっそく一つ、実践的な例を紹介してみたいと思います。それは「同じフォルダにある全ての画像を、一斉に 50% のサイズに縮小する」という例です。最近のデジタルカメラで撮った写真はサイズが大きいですから、たとえば人に渡すためにサイズを落としたいと思うことがあるのではないでしょうか?

これを GUI のアプリケーション行うには、一つ一つ写真を開いては縮小という作業を繰り返さないといけません。しかしシェルスクリプトを使えば、たった 1 行のコマンドだけで縮小作業を実現できます。それに使う道具が convert コマンドと for ループです。

convert コマンドは、画像を変換するためのコマンドです。たとえば

convert -resize 50% hoge.jpg hoge2.jpg

とすると hoge.jpg を 50% に縮小した結果が hoge2.jpg に格納されます。hoge2.jpg のところを hoge.jpg にすれば hoge.jpg が上書きされます。ちなみに convert コマンドにはもっとたくさんの機能があります。16.4. convert コマンド を見るなりヘルプを引いて調べるなりしてください。

for a in *.jpg; do convert -resize 50% $a small_$a ; done

と打つと、カレントディレクトリにある全ての jpg ファイルについて、 convert コマンドで 50% 縮小した small_ で始まるファイルを作成することができます。このスクリプトは、次のように読みます。

このようにシェルスクリプトがループを扱えるおかげで、複数の指示を1度に行うことができます。