この中級コースでは、基本的な Bash スクリプトに再利用可能な関数、制御されたスコープ、クリーンアップ処理、パラメーター展開、配列を加えます。5 つのガイド付きラボで、ロジックの整理、テキスト出力と状態の分離、終了時処理、外部ツールを使わない文字列操作、安全なコレクション処理を実践します。
最後のチャレンジでは、準備済みログの固定配列を管理し、関数内で .backup 名を生成し、存在するファイルをコピーし、欠落を警告し、終了時に一時レポートを削除する log_manager.sh を構築します。
学習内容
- Bash 関数を定義・呼び出しし、関数引数で値を渡す
local変数でスクリプト状態を保護し、意図しないグローバル変更を防ぐ- 関数から状態コードを返し、直後に
$?を取得して結果別に分岐する trapで SIGINT と EXIT に対するクリーンアップ関数を登録する- Bash パラメーター展開で文字列を切り出し、置換し、既定値を設定する
- 配列を宣言し、要素を追加し、全値を展開し、安全な引用で反復する
- 関数内で
.logを.backupに置換してバックアップ名を生成する - クリーンアップ、配列、ファイル検査、関数、警告を 1 つのスクリプトに統合する
このコースの対象者
このコースは、Bash スクリプト基礎を修了し、小規模保守スクリプトをよりモジュール化し予測可能にする中級技術を学びたい方を対象としています。
前提知識: Bash スクリプト、変数、位置引数、条件、ループ、ファイル検査、終了コード、リダイレクト、実行権限、基本ファイルコマンド。
学習環境: Ubuntu ベースの LabEx ターミナル。Bash、編集可能なスクリプト、一時ファイルとシグナルの演習、最後のチャレンジ用の準備済みアプリケーションログ 3 件を使用します。
よくある質問
コースはどのような構成ですか?
最初の 5 つはガイド付きラボです。6 つ目は Cleanup Trap、関数、配列、文字列置換、ループを組み合わせた log_manager.sh を作るチャレンジです。
最後のログ管理ツールは圧縮、削除、本当のローテーションを行いますか?
いいえ。準備済み .log を同じ場所の .backup にコピーし、元ファイルを残します。圧縮、保持、切り詰め、logrotate 設定は行いません。
Trap 演習はどのイベントを処理しますか?
ガイド付きラボでは SIGINT と EXIT に Cleanup を登録し、Ctrl+C と通常終了で一時ファイルを削除します。最後の課題は report.txt を消す EXIT Trap を要求します。
Bash 関数は return で文字列を返せますか?
この演習では返せません。return は制御用の 0〜255 の整数状態を伝え、テキストは echo で出力するかコマンド置換で取得します。


