我有一个bash脚本文件,该文件放在添加到$ PATH的某个目录下,以便可以从任何目录调用该脚本。
在与脚本相同的目录下还有另一个文本文件。我想知道如何在脚本中引用文本文件吗?
例如,如果脚本仅用于输出文本文件的内容,cat textfile
则将不起作用,因为从其他目录调用脚本时,找不到文本文件。
只要没有符号链接(在路径扩展或脚本本身中),这些命令就应该起作用:
MYDIR="$(dirname "$(realpath "$0")")"
MYDIR="$(dirname "$(which "$0")")"
以上任何一个的两步版本:
MYSELF="$(realpath "$0")"
MYDIR="${MYSELF%/*}"
如果到脚本的路径上有符号链接,which
则将提供一个答案,不包括该链接的解析。如果realpath
您的系统上默认未安装,则可以在此处找到它。
[编辑]:似乎与Caleb的建议realpath
相比没有优势,所以最好使用后者。我的计时测试表明它实际上更快。readlink -f
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句