首页 > 解决方案 > 使用 bash 脚本获取源文件

问题描述

通常我会使用以下命令为在远程机器上运行的作业获取所有宏:

 macros=$\my_directory

但我看到有人使用不同的方式来获取所有用于在远程机器中提交作业的宏。他使用这个命令:

macros=$(dirname $(readlink -f $BASH_SOURCE))

现在我想知道 $dirname 与提供特定宏位置相比有何优势。如果您只是向我解释有关使用 $dirname 获取宏的信息,那就太好了

标签: bash

解决方案


通过使用dirname您可以获得脚本所在的目录,因此很容易在本地找到靠近您的脚本的其他文件,并且不必担心每次重新定位脚本包时都指定正确的路径。

例如,如果您的脚本中有,source $macros/some_script.sh那么当捆绑包位于/usr/local/bin/or/bin/或 ...

关于$BASH_SOURCE参见:https ://stackoverflow.com/a/35006505/2146346


推荐阅读