引用与$ PATH中的脚本相同目录下的文件

提姆

我有一个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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python,请在与运行文件相同的目录中引用文件

来自分类Dev

从其他目录运行 tcl 脚本,而脚本引用本地文件

来自分类Dev

使用通配符*引用目录中的文件

来自分类Dev

在与python脚本相同的目录中查找文件(txt文件)

来自分类Dev

在nodejs中获取引用脚本文件

来自分类Dev

在与当前脚本相同的目录中运行脚本

来自分类Dev

从工作目录Java引用文件

来自分类Dev

在与Shell脚本相同的目录中创建文件夹

来自分类Dev

在与调用Python模块或脚本相同的目录中运行文件

来自分类Dev

使用php将文件上传到与脚本相同的目录

来自分类Dev

我可以在WinSCP批处理脚本中引用批处理文件目录吗?

来自分类Dev

在Shell脚本中引用变量

来自分类Dev

在脚本块中引用变量

来自分类Dev

在目录外引用

来自分类Dev

变量引用相同的实例

来自分类Dev

在Windows cmd中,如何在当前目录中运行可执行文件(而不是在%PATH%中具有相同名称的可执行文件)而不引用完整路径?

来自分类Dev

Bash脚本并引用SED

来自分类Dev

获取对脚本对象的引用

来自分类Dev

Swift中的强引用和弱引用

来自分类Dev

在C / C ++中引用/解引用

来自分类Dev

在Python中引用值引用的字典

来自分类Dev

在Rust中取消引用向量的引用

来自分类Dev

Swift中的强引用和弱引用

来自分类Dev

在C / C ++中引用/解引用

来自分类Dev

与外部文件的交叉引用

来自分类Dev

Python-引用其他目录中的文件

来自分类Dev

引用资产目录中文件夹中的图像

来自分类Dev

在Flask中父目录上方引用静态文件

来自分类Dev

java.net.URL引用父目录中的文件