bash - 使用 bash 脚本获取源文件
问题描述
通常我会使用以下命令为在远程机器上运行的作业获取所有宏:
macros=$\my_directory
但我看到有人使用不同的方式来获取所有用于在远程机器中提交作业的宏。他使用这个命令:
macros=$(dirname $(readlink -f $BASH_SOURCE))
现在我想知道 $dirname 与提供特定宏位置相比有何优势。如果您只是向我解释有关使用 $dirname 获取宏的信息,那就太好了
解决方案
通过使用dirname
您可以获得脚本所在的目录,因此很容易在本地找到靠近您的脚本的其他文件,并且不必担心每次重新定位脚本包时都指定正确的路径。
例如,如果您的脚本中有,source $macros/some_script.sh
那么当捆绑包位于/usr/local/bin/
or/bin/
或 ...
关于$BASH_SOURCE
参见:https ://stackoverflow.com/a/35006505/2146346
推荐阅读
- c++11 - 有人能告诉我为什么我收到“检测到堆损坏”错误吗?
- r - 生成带有 have 标记数据的漂亮 kable 样式表
- django - raise TypeError("%s() 得到了一个意外的关键字参数 '%s'"
- javascript - 如果日期不在数组中,如何插入日期
- c# - 异步/等待示例
- laravel - 在同一服务器的子目录中托管多个 laravel 项目
- javascript - 尝试运行 npm install discord.io winston -save 时出错
- excel - 如何将此代码从使用 5 个常量更改为它们的平均值?
- python - 尝试除了不赶上功能?
- vue.js - 我可以使用使用 VueX 的组件,而我的应用程序也使用 VueX 吗?