bashスクリプトとは?初心者でもわかる基本と使い方ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
bashスクリプトとは?初心者でもわかる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢: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スクリプトのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14640viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2443viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1090viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1070viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
959viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
921viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
879viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
862viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
813viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
811viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
738viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
721viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
620viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
618viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
609viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
563viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
539viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
518viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
509viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
487viws

新着記事

インターネット・コンピュータの関連記事