私はbashスクリプトが自分のパスを見つけたいと思います。
process_scanned_text.sh
背景は、それ自体が使用するスクリプトがあるということです。curves
。私はそれをcurves
同じディレクトリに入れましたprocess_scanned_text.sh
。process_scanned_text.sh
私のフォルダにシンボリックリンクを作成しました~/bin
。curves
スクリプトを正しく呼び出す方法がわかりません。にないため、$PATH
パスを指定する必要があります。ドットをパスとして使用することは、私が呼び出すディレクトリを指しているので正しくありませんprocess_scanned_text.sh
。を使用すると、私のフォルダ(シンボリックリンクがある場所)を指しているdirname $0
ため、機能しません。bin
答え1
GNU coreutilsがインストールされているLinuxシステムまたはFreeBSD> = 8.3:
シェルスクリプトから呼び出してreadlink -f "$0"
スクリプトの標準パス名を見つけると、すべてのシンボリックリンクが解決されます。dirname
ディレクトリ名を取得するには、それを呼び出します。