すべてのディレクトリからスクリプトを呼び出すために、$ PATHに追加されたディレクトリにbashスクリプトファイルがあります。
スクリプトと同じディレクトリに異なるテキストファイルがあります。スクリプトでテキストファイルを参照する方法が疑問に思います。
たとえば、スクリプトがテキストファイルの内容のみを出力する場合、他のディレクトリからスクリプトをcat textfile
呼び出すとテキストファイルが見つからないため機能しません。
ベストアンサー1
パス拡張やスクリプト自体にシンボリックリンクがない限り、次は同じように機能します。
MYDIR="$(dirname "$(realpath "$0")")"
MYDIR="$(dirname "$(which "$0")")"
上記の2段階バージョン:
MYSELF="$(realpath "$0")"
MYDIR="${MYSELF%/*}"
スクリプトにシンボリックリンクがある場合、そのwhich
リンクの解決を含まない答えが提供されます。realpath
システムにデフォルトでインストールされていない場合ここで見つけることができます。。
[編集する]:realpath
特にメリットがないようだからreadlink -f
ケイロップが提案する、後者を使用する方が良いかもしれません。私のタイミングテストでは、実際にはより速いことがわかりました。