bash入門:おすすめのsetオプション

スポンサーリンク
bash入門:おすすめのsetオプション ノウハウ
bash入門:おすすめのsetオプション
この記事は約4分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、bashにおけるおすすめのsetオプションについてご紹介します。

スポンサーリンク

背景

bashにおけるおすすめのsetオプションについて調査する機会があったので、そのときの内容を備忘として残しました。

この記事のソースは下記のサイトにアップしています。

実行環境について

実行環境は下記の記事を参考にお願いします。

作成ファイル一覧

下記のファイルを作成しました。

        new file:   local/work/04_set_option/04_set_option.sh

04_set_option.sh

#!/usr/bin/env bash

set -euCxo pipefail

which bash

bash --version

動作確認

下記のコマンドを実行します。

make build

make up

make login

cd 04_set_option

chmod +x 04_set_option.sh

./04_set_option.sh

下記の結果が出力されていれば成功です。

root@11afc3607d76:/work/04_set_option# ./04_set_option.sh 
+ which bash
/usr/bin/bash
+ bash --version
GNU bash, version 5.2.15(1)-release (aarch64-unknown-linux-gnu)
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

解説

set -euCxo pipefail

このコマンドは、シェルスクリプト内で使用される set コマンドのオプションを設定しています。各オプションの目的は以下の通りです。

  1. -e オプション:
  • このオプションは、シェルスクリプトが実行中にコマンドの実行結果が0以外(=エラーが発生した場合)であれば、スクリプトの実行を中止するようにします。これにより、エラーが発生したときにそれを無視せずに停止させることができます。
  1. -u オプション:
  • 未定義の変数を使用しようとすると、エラーが発生するようになります。これにより、変数が定義されていない状態での不測のバグを防ぐことができます。
  1. -C オプション:
  • このオプションは、シェルスクリプトが一時ファイルを作成するときに、既に存在するファイルを上書きせずにエラーを発生させるようにします。
  1. -x オプション:
  • このオプションは、各コマンドが実行される前にそのコマンドがどのように解釈されるかを表示するようにします。これにより、スクリプトがどのように実行されているかをトレースすることができます。
  1. -o pipefail オプション:
  • このオプションは、パイプライン中のコマンドのいずれかがエラーで終了した場合に、パイプライン全体をエラーで終了させるようにします。通常、パイプラインの各コマンドは独立して実行され、前のコマンドがエラーでも次のコマンドが実行されるが、このオプションを使用することで、エラーがある場合にはパイプライン全体がエラーとなります。

これらのオプションは、シェルスクリプトをより堅牢にし、エラーを見逃さずに処理するためのものです。

おわりに

今日は、bashにおけるおすすめのsetオプションについてご紹介しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました