シェルスクリプトを実行している絶対パスを取得する
シェルスクリプトで実行しているディレクリ名を取得する場合「dirname ${0}」でディレクトリ名を取得できます。
但し、実行時に相対パスで実行するとディレクトリ名も相対パスとなります。
下記のスクリプトでは、「$0」で実行したコマンド名が取得できます。その値を「dirname」コマンドでディレクトリ名を取得していますので、相対パスで実行した場合は相対パスとなります
$ vi /home/admin/bin/test.sh #!/bin/bash dirname ${0} $ sh bin/test.sh bin
絶対パスで実行しているディレクトリ名を取得するには、「cd」コマンドでシェルスクリプトの実行しているディレクトリに移動してから、「pwd」で絶対パスを実行すれば取得できます
$ vi /home/admin/bin/test.sh #/bin/bash cd `dirname $0` pwd $ sh bin/test.sh bin /home/admin/bin
また、1行でまとめる場合は、以下のようにすれば1行で変数に絶対パスをいれれます
$ vi /home/admin/bin/test.sh #/bin/bash SCRIPT_DIR=$(cd $(dirname $0); pwd) echo $SCRIPT_DIR $ sh bin/test.sh bin /home/admin/bin
ディスカッション
コメント一覧
まだ、コメントがありません