bash與source等特點和區別

2021-09-20 20:10:49 字數 2940 閱讀 8625

如圖大家可以看到用./方式執行完指令碼後,指令碼內的所有環境變數均不影響當時的shell環境變數,而使用source則完全相反的效果。這樣簡單的測試相信大家對source和.的區別應該清晰明了了吧。其實,linux下執行指令碼的方式還有bash + filename的方式,那麼三者究竟有什麼區別呢?

1、source命令用法:

source filename

作用:

當前bash環境下讀取並執行filename中的命令。該filename檔案可以執行許可權」

注:該命令通常用命令「.」來替代。

如:source .bash_profile

. .bash_profile兩者等效。

source(或點)命令通常用於重新執行剛修改的初始化文件。

source命令(從 c shell 而來)是bash shell的內建命令。

點命令,就是個點符號,(從bourne shell而來)。

2、sh和bash命令用法:

sh filename   bash filename

作用:

開啟新的子shell,讀取並執行filename中的命令。該filename檔案可以「執行許可權」

注:兩者在執行檔案時的不同,是分別用自己的shell來跑檔案。

sh使用「-n」選項進行shell指令碼的語法檢查,使用「-x」選項實現shell指令碼逐條語句的跟蹤,

可以巧妙地利用shell的內建變數增強「-x」選項的輸出資訊等。

3、./的命令用法:

./filename

作用:

開啟乙個子shell來讀取並執行filename中命令。

注:執行乙個shell指令碼時會啟動另乙個命令直譯器.

每個shell指令碼有效地執行在父shell(parent shell)的乙個子程序裡. 這個父shell是指在乙個控制終端或在乙個xterm視窗中給你命令指示符的程序.shell指令碼也可以啟動他自已的子程序. 這些子shell(即子程序)使指令碼並行地,有效率地地同時執行指令碼內的多個子任務.

常用的shell的嵌入命令(內部命令)有如下這些,

1

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退出forwhileuntilcase語句

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 等待直到子程序執行完畢

直接執行enable命令也可以得到所有的內部命令列表。

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的有效期是關閉瀏覽器時,自動失效...