我想让 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 上:
在 shell 脚本中,调用readlink -f "$0"
以查找脚本的规范路径名,这将解析任何符号链接。调用dirname
它来获取其目录名称。