-1

ディレクトリ (つまり、dir1/dothis.sh) にシェル プログラムがあります。そのディレクトリに cd して ./dothis.sh を実行すると正常に動作します。

新しい名前でそのディレクトリへのlnを作成した場合-dir2および実行dir2/dothis.shを実行しますが、現在の実行パスはdir2が指している新しいディレクトリであると考えています

dothis.sh で - dothis.sh が実際に置かれている場所を見つけるにはどうすればよいですか? 私が抱えている問題は、dir1/dothis.sh がシステムからシステムに再配置される可能性があるため、dir1/dothis.sh がハードコードになる保証がないことです。

4

3 に答える 3

1

bash 組み込みを使用する

#!/bin/bash
echo "Current path: $PWD"
于 2013-01-24T03:26:29.657 に答える
0

これを試して:

#!/bin/bash
echo $0
a=`pwd`
echo $a
b=$a"/"$0
echo `dirname $b`
于 2013-01-24T03:16:29.093 に答える
0

どうですか

dirname $(readlink -f $0)

もしあればシンボリックリンクも解決します...

于 2013-01-24T09:16:59.297 に答える