source xxx.sh: 直接在當前 shell 中執(zhí)行該腳本卜高。
sh xxx.sh: 在當前 shell 中新建一個子 shell 執(zhí)行該腳本眶掌。
xxx.sh: 有執(zhí)行權(quán)限時,和 sh xxx.sh
沒有區(qū)別派桩。
比如:
腳本里遇到異常情況伶授,想要退出時,會寫 exit 1
登钥。
如果使用 source xxx.sh
遇到 exit
會直接退出控制臺;使用 sh xxx.sh
就能退出文件回到控制臺娶靡。
就算寫了 export
牧牢,變量的值也會隨著子 shell 的銷毀而銷毀
比如:
腳本里寫了 export
如果使用 source xxx.sh
,腳本中定義的變量值能 echo
;使用 sh xxx.sh
變量值就會丟失塔鳍。