ShellScript の Tips

2024年11月17日 engineering

こんにちは、 @kz_morita です。

ShellScript を書く際のちょっとした Tips を書きます。

Tips

シェルスクリプトを書く時に先頭に必ず書くコードがあります。 以下のようなコードです。

#!/bin/bash

set -eu

DIR=$(cd $(dirname $0);pwd)

順番に説明します。

まずは以下です。

set -eu

これは、set -eset -u を同時に指定しています。

それぞれ以下のような効果があります。

set -e
シェルスクリプトがエラーで終了するようにします。、コマンドがエラーで終了した場合、それ以降のコマンドは実行されません。
set -u
未定義の変数を使おうとするとエラーになります。

これらは基本的に指定しておくと良いと思います。想定していない値で処理が進んでしまうことを防げます。

次に以下の部分です。

DIR=$(cd $(dirname $0);pwd)

こちらは、スクリプトが配置されているディレクトリへ移動し、そのディレクトリのパスを取得しています。

まず、$0 は実行されたシェルスクリプトのパスが格納されています。 dirname で実行中のファイルが格納されているディレクトリ名を取得します。 cd でそのディレクトリに移動します。そして、pwd でそのディレクトリのパスを取得しています。

使い所としては、ShellScript から他のファイルを参照している場合などに便利です。 必ず処理の最初にスクリプトのある場所へ移動しておけば、

$ ./bin/script.sh
$ ./script.sh

などどのようなパスから呼ばれてもかならずシェルスクリプトのあるディレクトリからの相対パスでファイルを参照できます。

まとめ

今回は SehllScript の Tips を書きました。ちょっとした処理の自動化などにまだまだ便利なためよく使っています。 ShellScript を使おうとする方の参考になれば幸いです。

この記事をシェア