![从 home/bin 运行执行源命令的脚本](https://linux22.com/image/1533732/%E4%BB%8E%20home%2Fbin%20%E8%BF%90%E8%A1%8C%E6%89%A7%E8%A1%8C%E6%BA%90%E5%91%BD%E4%BB%A4%E7%9A%84%E8%84%9A%E6%9C%AC.png)
我有一个脚本,例如“script1.sh”,它调用source
另一个脚本。我希望将 script1.sh 放在~/bin
文件夹中,这样我就可以从任何地方执行它,而不必输入完整路径。
但当然执行它并不会导致source
按预期执行。
有没有办法解决?
答案1
查看您对其他脚本的评论,我假设您想要在 script2.sh 中设置环境变量,并使它们在 script1.sh 运行完成后仍然有效。
我认为这个 stackoverflow 问题的最佳答案会给你你想要的东西:
答案2
查看我自己的脚本,基于$0
被调用脚本的完全解析名称有两种变体:
一般情况:获取当前脚本的目录,并使用它来定位源脚本:
. $(dirname $0)/sourcedscript
具有适当的命名约定(
foobar
可以通过编辑foobar-setup
脚本来定制脚本:. $0-setup