「同じコマンドを毎回手で打つのが面倒…」そんなときに役立つのがシェルスクリプトです。bashシェルスクリプトの基本をゼロから解説します。
シェルスクリプトとは?
シェルスクリプトとは、シェル(bash等)のコマンドをファイルにまとめて自動実行する仕組みです。インフラエンジニアの日常業務で欠かせないスキルです。
基本構造と実行方法

変数の使い方
変数定義の = 前後にスペースを入れないことが最重要です。また変数参照には ${変数名} を使うと確実です。コマンド置換は $(コマンド) で行います。数値演算は $((式)) を使います。
条件分岐(if文)
if [ 条件 ]; then の形式で記述します。[ の後ろと ] の前にスペースが必須です。

ループ(for・while)
for 変数 in リスト; do ~ done の形式でリストを繰り返します。数値の範囲には $(seq 1 5) を使います。while [ 条件 ]; do ~ done は条件が真の間繰り返します。
特殊変数(引数・終了ステータス)

$1〜$9 はスクリプトへの引数、$# は引数の個数、$? は直前のコマンドの終了ステータスです。スクリプト冒頭で引数チェック(if [ $# -lt 1 ])を行う習慣をつけましょう。
安全なスクリプトを書く習慣
スクリプトが複雑になるほど、途中でエラーが起きたときに気づきにくくなります。以下のオプションをスクリプト冒頭に書く習慣をつけましょう。
#!/bin/bash
set -e # エラーが起きたらスクリプトを即終了(続行しない)
set -u # 未定義の変数を使ったらエラーにする
set -o pipefail # パイプの途中でエラーがあっても検知する
# 上の3つをまとめて書くこともできる
set -euo pipefail
特に set -e は重要です。これがないと、途中のコマンドが失敗してもスクリプトがそのまま実行し続け、意図しない動作を引き起こすことがあります。
まとめ
#!/bin/bash(シェバング)は1行目に必須- 変数の
=前後にスペースを入れない if [ 条件 ]の[後ろにスペース必須- 数値比較は
-eq/-lt/-gt、文字列比較は=/!= $?で終了ステータスを確認(0=成功)- 実行前に
chmod +xで権限付与
関連記事
📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。



コメント