【问题标题】:Sourcing the source files using bash script使用 bash 脚本获取源文件
【发布时间】:2019-09-02 05:17:47
【问题描述】:

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

 macros=$\my_directory

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

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

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

【问题讨论】:

  • 这为您提供了脚本所在的目录,因此很容易在本地找到靠近您的脚本的其他文件,并且不必担心在重新定位脚本时指定正确的路径。例如source $macros/some_script.sh
  • 你的意思是 $BASH_SOURCE 给出了 bash 脚本目录的路径,因此我也可以拥有该目录中的所有文件位置吗?

标签: bash


【解决方案1】:

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

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

关于$BASH_SOURCE,请参阅:https://stackoverflow.com/a/35006505/2146346

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2023-01-14
    • 2013-11-04
    相关资源
    最近更新 更多