采购工作手动进行,但从脚本完成时失败

采购工作手动进行,但从脚本完成时失败

使用curl如:

bash <(curl -s https://raw.githubusercontent.com/user/repo/master/script.sh | tr -d '\r')

我执行了一些远程脚本。

远程脚本包括以下两个方面:

1)命令:

wget -P ~/myAddons/ https://raw.githubusercontent.com/user/repo/master/appendix.sh

2)一个source ~/myAddons/appendix.sh命令:

该文件appendix.sh包含一些 Bash 别名。


问题

执行远程脚本后,我尝试使用appendix.sh.没有一个起作用。

只有在手动执行后source ~/myAddons/appendix.sh,别名才起作用。

  • 我检查了至少 3 次,远程脚本的source命令和手动命令是否相同。

问题

为什么直接从远程脚本执行会source ~/myAddons/appendix.sh失败,而手动执行却可以,解决这个问题的正确方法是什么?

答案1

您正在开始一个新的外壳,bash <(...)然后在其中进行采购。这不会影响您运行的原始 shell bash <(...)。您应该source改为进程替换:

source <(...)
# or
. <(...)

相关内容