通常,我使用以下命令为在远程计算机上运行的作业提供所有的宏:
macros=$\my_directory
但是我看到有人使用另一种方式来获取所有宏,以便在远程计算机上提交作业。他使用以下命令:
macros=$(dirname $(readlink -f $BASH_SOURCE))
现在,我想知道$ dirname与提供特定宏位置相比有何优势。如果您只是向我解释有关使用$ dirname采购宏的话,那将是很好的
答案 0 :(得分:0)
通过使用dirname
,您可以获得脚本所在的目录,因此很容易在脚本附近本地获取其他文件,而不必担心每次重新定位脚本包时都指定正确的路径
例如,如果脚本中有source $macros/some_script.sh
,则当捆绑包位于/usr/local/bin/
或/bin/
或...
关于$BASH_SOURCE
,请参见:https://stackoverflow.com/a/35006505/2146346