From a Bash shell, which of the following commands directly executes the instruction from the file /usr/local/bin/runme.sh without starting a subshell? (Please select TWO answers.)



A.

source /usr/local/bin/runme.sh

B.

. /usr/local/bin/runme.sh

C.

/bin/bash /usr/local/bin/runme.sh

D.

/usr/local/bin/runme.sh

E.

run /usr/local/bin/runme.sh

題解

「source」指令可以在當前shell下執行某個shell script檔案,因此在這shell script檔案執行時若有對變數進行修改,也會影響到原本的shell。

「sh」或是「xsh」(如bash)這樣的shell script檔案執行方式,會產生新的子shell(subshell)來執行。

選項A,正確答案。

選項B,使用「.」來執行shell script檔案,等同於使用「source」來執行shell script檔案,並不會產生新的子shell。為正確答案。

選項C,會產生新的子shell。

選項D,直接執行shell script檔案,會產生新的子shell。

選項E,沒有「run」這種指令。