シェルスクリプト(Shell Script)

シェルスクリプト(Shell Script)図解 S
PR
PR

シェルスクリプト(Shell Script)とは、普段コマンドで打ち込んでいる操作を、あらかじめファイルへ書き並べておき、まとめて実行できるようにしたもののことです。決まった手順の作業を自動化する手段として、サーバーの運用では欠かせない道具になっています。

現実世界に例えると、シェルスクリプトは作業手順書をそのまま渡せる形にしたもののようなものです。毎回同じ順番で同じことをするなら、手順を紙に書いて機械に渡してしまえば、人が一つずつ確認しながら進める必要がなくなります。

シェルスクリプト図解

シェルスクリプト(Shell Script)図解
※画像をクリックすると拡大表示します。

代表的な書き方の種類

種類 特徴 使われる場面
sh 最も基本的で移植しやすい 環境を選ばない処理
bash 機能が豊富で情報も多い Linuxでの一般的な用途
zsh 対話での使い勝手がよい macOSの標準
PowerShell オブジェクトを受け渡せる Windowsでの運用

先頭の一行で実行するものを指定する

書き始めに約束事があります。ファイルの一行目に、どのシェルで解釈させるかを示す記述を置くのが慣習で、これがないと環境によって動きが変わることがあります。加えて、そのファイルに実行の許可を与えておかないと、書いてあっても動かせません。最初につまずきやすい点です。

条件分岐と繰り返しが使える

単なるコマンドの羅列にとどまりません。「ファイルが存在したら処理する」「一覧の件数ぶん繰り返す」といった判断や反復を書けるため、状況に応じた処理が組み立てられます。変数に値を入れて持ち回ることもでき、簡単なプログラムとして十分な表現力を備えています。

既存のコマンドをつなげられる

最大の強みはここにあります。文字を抜き出す、並べ替える、数を数えるといった小さな道具を縦棒でつなぎ、前の結果を次へ渡していく形で処理を組み立てられます。一つひとつは単純でも、組み合わせ方しだいで複雑な集計や変換が短い記述で実現できます。

定時実行との相性がよい

運用での定番の使い方があります。cronという仕組みと組み合わせて、毎晩のバックアップ、古いログの削除、一日の集計といった作業を、決まった時刻に自動で走らせます。人が忘れても確実に実行されるため、手順の抜けによるトラブルを減らす効果があります。

エラーで止める設定を入れる

安全に書くための勘所です。既定では、途中のコマンドが失敗しても後続の処理がそのまま進んでしまうため、中途半端な状態を作ってしまう危険があります。失敗したら即座に中断する、未定義の変数を使ったら止める、といった指定を冒頭に入れておくと事故を防げます。

変数は引用符で囲む

典型的な落とし穴を挙げます。変数をそのまま書くと、中身に空白が含まれていた場合に別々の値として分かれてしまい、意図しないファイルを操作することがあります。空白を含むファイル名は珍しくないため、変数は必ず引用符で囲む習慣を付けておくのが確実です。

大きくなったら別の言語へ

使い分けの目安も知っておきます。数百行を超える、複雑な計算をする、といった段階になると読みづらく壊れやすくなるため、Pythonなどのプログラミング言語へ移すほうが結果的に楽になります。コマンドをつなぐ範囲にとどめる、と決めておくと扱いやすさを保てます。

あわせて知っておきたい用語

  • シェル:
    入力した命令をOSへ伝える橋渡しのプログラムです。
  • コマンド:
    コンピューターへ動作を指示する命令のことです。
  • CLI:
    文字の入力で操作する方式のことです。
  • バッチファイル:
    Windowsで同様の役割を果たすファイルです。

コメント

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