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