Bash

採購手動工作,但從腳本完成時失敗

  • January 28, 2018

使用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直接從遠端腳本執行失敗,而手動執行它,以及解決這個問題的正確方法是什麼?

您正在開始一個新的外殼,bash <(...)然後在其中採購。這不會影響您從中執行的原始 shell bash <(...)。您應該source改用流程替換:

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

引用自:https://unix.stackexchange.com/questions/420152