Linuxでシェルを配置したディレクトリ名を取得する!(dirname $0)

Linuxでシェルを配置したディレクトリ名を取得します。

シェルを準備する!

dirnameの利用方法を確認するため、以下のシェルを準備します。シェルをどの場所から実行しても、シェルの配置場所にログを出力します。

$ cat bin/test.sh
#!/bin/bash
PGM_NAME=`basename $0`
DIR_NAME=`dirname $0`
echo "PGM_NAME = [$PGM_NAME]"
echo "DIR_NAME = [$DIR_NAME]"
date > $DIR_NAME/${PGM_NAME}.log

シェルを実行してシェルと同じディレクトリにログを出力する!

シェルを実行してシェルと同じディレクトリにログを出力します。

$ pwd
/home/usradmin
$ test.sh
PGM_NAME = [test.sh]
DIR_NAME = [/home/usradmin/bin]
$ ls -l bin
total 8
-rwxr-xr-x. 1 usradmin usradmin 150 Feb 10 05:49 test.sh
-rw-rw-r--. 1 usradmin usradmin  29 Feb 10 05:50 test.sh.log
$ cat bin/test.sh.log
Fri Feb 10 05:50:27 JST 2023

おわりに

シェルの配置場所がどこであっても、シェルを配置したディレクトリを知りたいときに「dirname」コマンドを使用することができます。

関連記事

関連書籍(Amazon)