別のパスでスクリプトを実行してスクリプトパスを知る方法は?

別のパスでスクリプトを実行してスクリプトパスを知る方法は?

ファイルのあるパスにあるファイルにアクセスするには、スクリプトを実行する必要があります。

例:/home/me/folder/script.shファイルにアクセスするスクリプトがあります/home/me/folder/myfile。ファイルはスクリプトと同じパスにあるため、フルパスではmyfileなく名前のみを使用しました。

しかし、次のように実行すると/tmp/

/tmp$ /home/me/folder/script.sh

それは私に以下を与えます:

myfile: No such file or directory

もしそうなら、スクリプトはファイルがスクリプト自体と同じパスにあるとどうすればいいですか?

ベストアンサー1

すべてのケースはわかりませんが、通常(常にそうではない)シェルが検索するのではなく、パスでスクリプトを実行すると、スクリプトパスはに$PATHあります$0。その後、またはdirname "$0"を使用して${0%/*}パスを取得できます。

おすすめ記事