如圖大家可以看到用./方式執行完指令碼後,指令碼內的所有環境變數均不影響當時的shell環境變數,而使用source則完全相反的效果。這樣簡單的測試相信大家對source和.的區別應該清晰明了了吧。其實,linux下執行指令碼的方式還有bash + filename的方式,那麼三者究竟有什麼區別呢?
1、source命令用法:
source filename
作用:
在當前bash環境下讀取並執行filename中的命令。該filename檔案可以無
執行許可權」
注:該命令通常用命令「.」來替代。
如:source .bash_profile2、sh和bash命令用法:. .bash_profile兩者等效。
source(或點)命令通常用於重新執行剛修改的初始化文件。
source命令(從 c shell 而來)是bash shell的內建命令。
點命令,就是個點符號,(從bourne shell而來)。
sh filename bash filename
作用:
開啟新的子shell,讀取並執行filename中的命令。該filename檔案可以sh使用「-n」選項進行shell指令碼的語法檢查,使用「-x」選項實現shell指令碼逐條語句的跟蹤,無
「執行許可權」注:兩者在執行檔案時的不同,是分別用自己的shell來跑檔案。
可以巧妙地利用shell的內建變數增強「-x」選項的輸出資訊等。
3、./的命令用法:
./filename
作用:
開啟乙個子shell來讀取並執行filename中命令。注:執行乙個shell指令碼時會啟動另乙個命令直譯器.
每個shell指令碼有效地執行在父shell(parent shell)的乙個子程序裡. 這個父shell是指在乙個控制終端或在乙個xterm視窗中給你命令指示符的程序.shell指令碼也可以啟動他自已的子程序. 這些子shell(即子程序)使指令碼並行地,有效率地地同時執行指令碼內的多個子任務.常用的shell的嵌入命令(內部命令)有如下這些,
1直接執行enable命令也可以得到所有的內部命令列表。2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
: 空,永遠返回為
true
. 從當前shell中執行操作
break
退出
for
、
while
、
until
或
case
語句
cd
改變到當前目錄
continue
執行迴圈的下一步
echo
反饋資訊到標準輸出
eval
讀取引數,執行結果命令
exec
執行命令,但不在當前shell
exit
退出當前shell
export
匯出變數,使當前shell可利用它
pwd
顯示當前目錄
read
從標準輸入讀取一行文字
readonly
使變數唯讀
return
退出函式並帶有返回值
set
控制各種引數到標準輸出的顯示
shift
命令列引數向左偏移乙個
test
評估條件表示式
times
顯示shell執行過程的使用者和系統時間
trap
當捕獲訊號時執行指定命令
ulimit
顯示或設定shell資源
umask
顯示或設定預設檔案建立模式
unset
從shell記憶體中刪除變數或函式
wait 等待直到子程序執行完畢
TCP與UDP的特點和區別
面向連線的tcp tcp面向連線通訊,所以握手過程會消耗資源,過程為可靠連線,不會丟失資料,適合大資料量交換 面向連線 就是在正式通訊前必須要與對方建立起連線。tcp協議能為應用程式提供可靠的通訊連線,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的資料通訊系統往往使用tc...
Nginx和Apache的特點與區別
一 nginx特點 1 輕量級,採用c進行編寫,同樣的web服務,會占用更少的記憶體及資源。2 抗併發,nginx以epollandkqueue作為開發模型,處理請求是非同步非阻塞的,負載能力比apache高很多,而apache則是阻塞型的。在高併發下nginx能保持低資源低消耗高效能,而apach...
SESSION和COOKIE的特點與區別
cookie儲存在客戶端,相對來說不安全。cookie儲存型別只能是字串。cookie儲存容量大約只能儲存4kb資料 瀏覽器可以禁用快取,也可禁用cookie,cookel功能就將失效 1 cookie過期有效性設定 1 即時性cookie設定 描述 預設cookie的有效期是關閉瀏覽器時,自動失效...