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」這種指令。