以上兩種執(zhí)行方式都是在子shell中執(zhí)行的,也就是說(shuō)當(dāng)前shell需要啟動(dòng)另外一個(gè)shell,用來(lái)執(zhí)行a.sh內(nèi)的命令
以上兩種執(zhí)行方式是在當(dāng)前shell下執(zhí)行,并不需要建立子shell
source和 . 命令的作用:用來(lái)執(zhí)行一個(gè)腳本
前兩種方式和后兩種方式的另外區(qū)別:如果你在一個(gè)腳本里export $KKK=111 ,如果你用./a.sh執(zhí)行該腳本,執(zhí)行完畢后,你運(yùn)行echo $KKK ,發(fā)現(xiàn)沒(méi)有值,如果你用source來(lái)執(zhí)行 ,然后再echo,就會(huì)發(fā)現(xiàn)KKK=111。因?yàn)檎{(diào)用./a.sh來(lái)執(zhí)行shell是在一個(gè)子shell里運(yùn)行的,所以執(zhí)行后,結(jié)構(gòu)并沒(méi)有反應(yīng)到父shell里,但是source不同它就是在本shell中執(zhí)行的,所以可以看到結(jié)果。
聯(lián)系客服