コマンドを毎回手で打つのが面倒、決まった作業を自動化したい、そんなときに活躍するのがシェルスクリプトです。この記事ではシェルスクリプトの基本概念とbashの最初の一歩を解説します。
シェルスクリプトとは何か?
シェルスクリプトとは、コマンドをファイルにまとめて一度に実行できるようにしたプログラムです。Windowsのバッチファイル(.bat)に相当するものです。
最初のスクリプトを作る
nano hello.sh
#!/bin/bash
echo "Hello, World!"
echo "今日: $(date)"
1行目の #!/bin/bash はシェバン(shebang)と呼ばれ「このスクリプトをbashで実行する」という宣言です。必ず先頭に書きます。
実行権限を付けて実行する
chmod +x hello.sh
./hello.sh
基本ルール一覧
| 項目 | 説明 |
|---|---|
| #!/bin/bash | 先頭必須のシェバン |
| # コメント | #以降はコメント(実行されない) |
| echo “文字列” | 文字列を表示する |
| $(コマンド) | コマンドの実行結果を埋め込む |
| chmod +x ファイル名 | 実行権限を付与する |
シェルスクリプトでできること
シェルスクリプトが活躍する場面はとても幅広いです。たとえばバックアップの自動化(特定ディレクトリを毎日圧縮して保存する)、ログファイルの定期的なローテーションや削除、サーバーの死活監視(プロセスが落ちていたら自動で再起動する)、デプロイ作業の自動化(GitからPullしてサービスを再起動するまでを一括実行)などが代表的な用途です。
bashスクリプトの基本構文
変数の使い方
変数は 変数名=値 の形式で定義します(=の前後にスペースを入れてはいけません)。参照するときは $変数名 または ${変数名} と書きます。文字列は引用符で囲みます。ダブルクォート "..." の中では変数が展開され、シングルクォート '...' の中では展開されません。
条件分岐(if文)
bashのif文は if [ 条件 ]; then 処理; fi の形式で書きます。ファイルの存在確認には -f ファイル名、ディレクトリの存在確認には -d ディレクトリ名、数値比較には -eq(等しい)・-lt(より小さい)・-gt(より大きい)を使います。
ループ(for文・while文)
for文は for 変数 in リスト; do 処理; done の形式です。ファイル一覧のループ処理や、連番処理(for i in $(seq 1 10))などによく使います。while文は while [ 条件 ]; do 処理; done の形式で、条件が真の間処理を繰り返します。
スクリプト作成・実行の手順まとめ
| 手順 | コマンド・操作 | 説明 |
|---|---|---|
| 1. ファイルを作成 | nano script.sh | エディタでスクリプトファイルを作成 |
| 2. シェバンを先頭に書く | #!/bin/bash | 必ず1行目に記述する |
| 3. 処理を記述する | — | コマンドや制御構文を記述 |
| 4. 実行権限を付与 | chmod +x script.sh | 一度だけ実行すればよい |
| 5. 実行する | ./script.sh | カレントディレクトリで実行 |
まとめ
- シェルスクリプトはコマンドをファイルにまとめて自動実行する仕組み
- 1行目は必ず
#!/bin/bash(シェバン)で始める chmod +xで実行権限を付けてから./ファイル名で実行する- 変数・if文・for文を組み合わせることで複雑な処理も自動化できる
- バックアップ・監視・デプロイなどサーバー運用の自動化に広く活用される



コメント