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)