一、執(zhí)行方式不同
source命令,也可寫作“.”,是在當前shell環(huán)境下執(zhí)行命令,不需要新開啟一個子shell。而sh/bash和./是新創(chuàng)建一個子shell來執(zhí)行命令。
二、環(huán)境變量影響不同
由于source是在當前shell環(huán)境下執(zhí)行腳本,所以腳本中的環(huán)境變量會影響到當前shell。而sh/bash和./在子shell中執(zhí)行腳本,腳本的環(huán)境變量不會影響到父shell。
三、權(quán)限需求不同
使用source命令執(zhí)行腳本時,腳本無需具有執(zhí)行權(quán)限。但使用sh/bash或者./執(zhí)行腳本時,腳本需要具有執(zhí)行權(quán)限。
延伸閱讀
1.source是什么
source是一種Shell命令,它的功能是在當前bash環(huán)境下讀取并執(zhí)行文件中的命令。該命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。
2.sh/bash是什么
sh和bash都是Unix和Linux系統(tǒng)中的shell,shell是用戶與系統(tǒng)進行交互的一種界面。sh是Bourne shell的簡稱,是早期Unix系統(tǒng)的默認shell;bash則是Bourne Again Shell的簡稱,是sh的擴展,提供了許多額外的功能,比如命令行編輯等。
3../是什么
在Unix和Linux系統(tǒng)中,”./”是一種常用的執(zhí)行可執(zhí)行文件或腳本的方式。”.”代表當前目錄,”/”是目錄分隔符,因此”./”后接文件名表示執(zhí)行當前目錄下的文件。但注意,要用”./”執(zhí)行文件,文件必須具有執(zhí)行權(quán)限。