从 home/bin 运行执行源命令的脚本

从 home/bin 运行执行源命令的脚本

我有一个脚本,例如“script1.sh”,它调用source另一个脚本。我希望将 script1.sh 放在~/bin文件夹中,这样我就可以从任何地方执行它,而不必输入完整路径。

但当然执行它并不会导致source按预期执行。

有没有办法解决?

答案1

查看您对其他脚本的评论,我假设您想要在 script2.sh 中设置环境变量,并使它们在 script1.sh 运行完成后仍然有效。

我认为这个 stackoverflow 问题的最佳答案会给你你想要的东西:

https://stackoverflow.com/questions/16618071/can-i-export-a-variable-to-the-environment-from-a-bash-script-without-sourcing-i#16619261

答案2

查看我自己的脚本,基于$0被调用脚本的完全解析名称有两种变体:

  1. 一般情况:获取当前脚本的目录,并使用它来定位源脚本:

    . $(dirname $0)/sourcedscript
    
  2. 具有适当的命名约定(foobar可以通过编辑foobar-setup脚本来定制脚本:

    . $0-setup
    

相关内容