

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
bashスクリプトとは?
bashスクリプトは Linux などの環境で使われるコマンドを並べて実行する小さなプログラムです。コマンドを自動で連続して実行する力を持ち、日常の作業を楽にしてくれます。
なぜ bash スクリプトを使うのか
同じ作業を何度も繰り返す場合、手で打つよりスクリプトに任せる方が早く正確です。設定ファイルの準備、日次処理、ファイルの整理など幅広い場面で役立ちます。
基本の書き方
最初の一行はシェバンと呼ばれます。ファイルの先頭に
#!/bin/bash
と書くとこのファイルは bash で実行されます。
その後は実行したいコマンドを順番に書くだけです。
作ったファイルに実行権限を与えるには次のコマンドを使います。chmod +x スクリプト名.sh
実行は次のようにします。<span>./スクリプト名.sh
変数と演算
変数は次のように代入します。dir=work
変数を使うときは名前の前に $ をつけます。file=$dir/file$i.txt
繰り返しで使う例です。
サンプルの小さなスクリプト
dir=work
mkdir -p $dir
for i in 1 2 3
do
file=$dir/file$i.txt
touch $file
echo 作成したファイルは $file
done
よく使う構文と注意点
条件分岐には if を使います。例えばファイルの存在を確かめる場合
if [ -e ファイル名 ]; then ... fi
正しく動かすコツはスペースと改行の位置です。コマンドと引数の間には必ずスペースを入れましょう。
実行とデバッグのコツ
スクリプトを修正したら必ず実行前に権限を与え、問題があれば echo で変数の値を出力して確認します。
実務での活用例
日次のバックアップ、ログの整理、同じ操作を複数のファイルに対して適用する処理などを自動化できます。作業時間の短縮だけでなく、人為的なミスを減らす効果もあります。
環境別の注意点
多くの環境で bash が使えますが Windows では WSL を使う場合があります。 macOS でもほぼ同じ書き方で動作しますが、パスの表記方法やファイル権限の扱いに若干の違いがある点に注意しましょう。
サマリ表
| 項目 | 説明 |
|---|---|
| 目的 | 反復作業の自動化 |
| 実行方法 | chmod x で実行権限を付与し ./で実行 |
| 主な構文 | 変数, for ループ, if 条件 |
このように bash スクリプトを使うと日常の作業を自動化できます。初めは小さなスクリプトから始め、徐々に変数や条件、ループへと拡張していくと良いでしょう。中学生でも手順を追えば作れる簡単な例から始めるのがコツです。
bashスクリプトの同意語
- シェルスクリプト
- シェル(Bashを含む)向けに、複数のコマンドを順番に記述したテキストファイル。実行すると書かれた順にコマンドが実行され、自動化を実現します。
- Bash用スクリプト
- Bash シェルで実行することを目的に書かれたスクリプト。制御構造や変数、など Bash 固有の機能を用います。
- Bashシェルスクリプト
- Bash(Bourne Again SHell)で動くスクリプトのこと。Bashの文法と機能を前提に作成します。
- Bashファイル
- Bash 用のスクリプトファイル。拡張子は .sh や .bash などが使われます。
- Bashプログラム
- Bash で書かれた手続き的な処理のまとまり。小さな自動化ツールとして用いられます。
- POSIXシェルスクリプト
- POSIX標準に準拠したシェルスクリプト。Bashに限らず、sh などでも動かせるように書かれることを目指します。
- Unix系シェルスクリプト
- Unix系OSで動くシェル向けのスクリプト全般。Bashだけでなく他のシェルにも対応することがあります。
bashスクリプトの対義語・反対語
- 手動実行
- 人の手で直接実行する作業。bashスクリプトが自動化の代表例であるのに対し、手動実行は自動化の対極です。
- 手作業
- 作業を人の手で進めること。スクリプトに依存せず、手順をそのまま実行します。
- GUIアプリケーション
- コマンドラインではなく、グラフィカルな画面で操作するアプリ。bashスクリプトのコマンドライン・自動化と対照的です。
- 対話的プログラム
- 実行時にユーザーの入力を都度求め、動作を決定するプログラム。bashスクリプトは通常非対話的ですが、対話的なものはその対極になります。
- ノーコード/ローコード作業
- コードを書くことなく作業を自動化するアプローチ。bashスクリプトはコードを書く前提のため、ノーコードの対義語として挙げられます。
- 非自動化作業
- 自動化されていない、手動寄りの作業。bashスクリプトの自動化志向とは反対の性質です。
- リアルタイム/即時反応を伴う操作
- 人の介入や反応をすぐ必要とする操作。bashスクリプトは事前に定義された手順を実行する点で、即時反応型の操作と対照的です。
bashスクリプトの共起語
- シェル
- コマンドを解釈して実行する環境。bashはその一種です。
- シバン
- スクリプトの先頭行「#!/bin/bash」など、どのシェルで実行するかを指定します。
- 環境変数
- 実行環境に影響を与える変数。PATHやHOMEなどが代表的です。
- パス
- 実行可能ファイルを探す場所をまとめた環境変数。PATH は複数のディレクトリをコロンで区切って持ちます。
- 変数
- データを格納する名前付きの入れ物。参照は $var で行います。
- 引数
- スクリプト実行時に渡す値。$1, $2, … で受け取ります。
- パラメータ展開
- 変数の値を文字列の中に展開する機能。例: ${name} のように書きます。
- 変数展開
- 変数の値を文字列に埋め込む基本的な機能。${var} 形式が一般的です。
- コマンド置換
- 別のコマンドの実行結果を文字列として使う機能。$(command) または `command` の形。
- 文字列展開
- 文字列の一部を変数や他の展開で置換する操作。
- 条件分岐
- 条件に応じて処理を分ける構造です。
- if文
- 条件が真なら処理を実行、偽なら別の処理を実行します。
- case文
- 値に応じて複数の分岐を処理します。スイッチのような構文です。
- ループ
- 同じ処理を繰り返すための構造です。
- for文
- 配列や範囲を順に処理します。
- while文
- 条件が成立する間、繰り返します。
- 配列
- 複数の値を順序付きで格納できるデータ構造です。
- 連想配列
- キーと値を対応させる、辞書のようなデータ構造です。
- 関数
- 処理を再利用できるまとまり。再帰も可能です。
- 実行権限
- スクリプトを実行可能にする権限。chmod +x で付与します。
- chmod
- ファイルの権限を変更するコマンド。
- 標準入力
- キーボードなどからの入力を受け取る入口。
- 標準出力
- 画面やファイルなどへ出力する出口。
- リダイレクト
- 出力先や入力元をファイルに切り替える機能。
- パイプ
- 前のコマンドの出力を次のコマンドの入力に渡します。
- ファイル操作
- ファイルの読み書き・削除・コピーなどを扱います。
- ファイル名展開
- ワイルドカードを使って複数ファイルを一括対象にします。
- ワイルドカード
- *.txt のようにファイル名のパターンを指定します。
- 正規表現
- 複雑な文字列検索や置換に使われる表現方法です。
- grep
- テキスト中のパターンを検索します。拡張正規表現も対応します。
- sed
- ストリームエディタ。テキストの置換・削除・挿入を行います。
- awk
- テキストのパターン処理・集計を得意とするツールです。
- printf
- フォーマットを整えて文字列を出力します。echo より柔軟です。
- echo
- 簡易に文字列を出力します。
- date
- 現在日付や時刻を取得・表示します。
- テスト/判定
- 真偽判定や比較を行うコマンドです。
- test
- 条件式の真偽を判定します。
- [ ]
- テスト条件を角括弧で表現します(test の別表現)。
- 比較演算子
- 数値・文字列の比較に使う演算子です。
- 数値比較
- 数値同士の大小比較や等価比較を行います。
- エスケープ
- 特殊文字を文字通り扱うための方法です。
- 引用符
- 文字列中の特殊文字を区切るための記号です。
- ダブルクォート
- 変数展開を有効にする一般的な引用符。
- シングルクォート
- 変数展開を防いで文字列を扱います。
- trap
- 特定のシグナルやエラー時に実行する処理を登録します。
- デバッグ
- スクリプトの挙動を追跡・検証する方法です。
- set -x
- コマンド実行の追跡を有効にします。
- set -e
- コマンドがエラーで停止する設定です。
- set -u
- 未定義の変数をエラーにします。
- set -o pipefail
- パイプライン内のいずれかのコマンドが失敗した場合に失敗扱いにします。
- cronジョブ
- 定期的にスクリプトを実行するためのスケジューリング機能です。
bashスクリプトの関連用語
- bashスクリプト
- bashで実行されるスクリプトのこと。変数・条件分岐・ループなどbashの文法を用いて自動化やツール作成に使います。
- シェルスクリプト
- シェルで動作するスクリプト全般の総称。bash以外のshやzshなどにも対応しますが、ここでは主にbashの文法を指すことが多いです。
- Bash
- GNUが開発したシェルとそのスクリプト言語。拡張機能が豊富で、多くの環境でデフォルトのシェルとして使われています。
- シェバング
- スクリプトの先頭に書く特別な行で、実行時にどの interpreter を使うかを指定します。例: #!/bin/bash
- 実行権限
- スクリプトファイルを実行可能にする権限のこと。chmod などで付与します。
- chmod
- ファイルのアクセス権限を変更するコマンド。実行可能にするにはx権限を付与します。
- 変数
- データを名前で管理する入れ物。スクリプト内で値を再利用するために使います。
- ローカル変数
- 関数内だけで有効な変数。外部からは見えません。
- 環境変数
- シェル全体や子プロセスで共有される変数。スクリプト実行環境にも影響します。
- 変数展開
- 変数の値を別の文字列に埋め込む機能。$変数の形で参照します。
- 引数
- スクリプト実行時に渡すデータ。$1, $2 などで取得します。
- 特殊変数
- $1, $2, $@, $# など、特別な意味を持つ変数群。
- 配列
- 複数の値を1つの変数で管理するデータ構造。添字で要素を取り出します。
- 連想配列
- キーと値のペアで要素を管理する配列。文字列キーを使えます。
- 条件分岐
- 条件に応じて処理を分岐する構文。if や case が代表的です。
- if
- 条件を評価して真なら実行ブロックを、偽なら別ブロックを実行します。
- case
- 複数の条件をパターンごとに分岐します。複数の可能性を一度に扱えます。
- test / [ ]
- 条件を評価して真偽を返すテストコマンド。判定に用いられます。
- 真偽値
- 処理の成否を表す値。一般に0は成功、0以外は失敗とされることが多いです。
- ループ
- 同じ処理を繰り返す構文全般。for, while, until が代表的です。
- for
- 指定した回数やリストの要素ごとに処理を繰り返します。
- while
- 条件が成立する間、繰り返します。
- until
- 条件が成立するまで繰り返します。
- 配列操作
- 配列の要素を参照・追加・削除する操作全般を指します。
- 入出力
- データの受け渡しを標準入出力を通じて行う仕組みです。
- 標準入力
- 外部からデータを受け取るデータ源。
- 標準出力
- データを表示したりファイルに出力したりする出力先。
- 標準エラー出力
- エラーメッセージを出力する専用の出力先。
- リダイレクト
- 出力先をファイルや他のコマンドへ変更する機能。
- 出力のリダイレクト
- > を使って標準出力をファイルに書き出します。
- 追加リダイレクト
- >> を使ってファイルの末尾へ追記します。
- パイプ
- 前のコマンドの出力を後ろのコマンドの入力として渡します。
- コマンド置換
- $(...)
- `...`
- 別のコマンドの出力を現在のコマンドへ埋め込む機能。
- サブシェル
- 括弧で作られる別の実行環境。親シェルとは独立して実行されます。
- 関数
- 再利用可能な処理のまとまり。名前で呼び出して使います。
- 引数付き関数
- 関数に引数を渡して挙動を変えることができます。
- exitコード
- スクリプトの終了ステータス。0 が成功、0以外がエラーを示します。
- デバッグ
- スクリプトの動作を追跡・検証する手法。
- set -e
- エラー時にスクリプトを即座に終了させる設定。
- set -u
- 未定義の変数をエラーとして扱う設定。
- set -x
- 実行されるコマンドを逐次表示してデバッグする設定。
- コメント
- コードの説明を記述する行。# で始まります。
- ヒアドキュメント
- 複数行の文字列をコマンドへ渡す構文。通常 <
- ヒアストリング
- 1 行の文字列をコマンドの標準入力へ渡します。<<<
- ファイル検査
- ファイルの存在・種類・状態を調べる条件表現。例: -f, -d, -e など。
- 数値演算
- $(( ... )) や expr で数値計算を行います。
- 文字列操作
- 長さの取得、切り出し、置換など文字列を操作します。
- ワイルドカード / グロブ
- ファイル名のパターン展開。例: *.txt
- 正規表現
- 特定の文字列パターンを検索する強力なマッチング。bash の =~ 演算子で使えることがあります。
- POSIX準拠 vs Bash拡張
- POSIX準拠の書き方と Bash 独自機能の違い。 portability に影響します。
- shellcheck
- Bash スクリプトの静的解析ツール。文法ミスや潜在的な問題を指摘します。
- cron
- 定期実行をスケジュールするジョブ管理ツール。スクリプトの自動実行に使われます。
- PATH
- コマンドを探す実行パスの集合。PATH に含まれるディレクトリを順番に検索します。
- 変数名の規則
- 変数名は英数字とアンダースコアのみ使用。数字で始めることはできません。
- バックグラウンド実行
- コマンドの末尾に & を付けて、別スレッド的に実行します。
bashスクリプトのおすすめ参考サイト
- 「Linux」のbashスクリプトとは--簡単なスクリプトを作成してみる
- 【Bash】シェルスクリプト入門【初心者】 - Zenn
- シェルスクリプト基本知識 #Bash - Qiita
- bashとは?シェルの概要から他のシェルとの違いまで解説!



















