2009-12-10 24 views

回答

17

正如klausbyskov所說,第一種形式要求文件具有其可執行許可位的設置。

但更重要的是,第一種形式在單獨的進程中執行腳本(獨立於啓動它的shell並且無法對其進行更改)。第二種形式使初始shell直接運行文件中的命令(就好像你已經將它們鍵入到shell中一樣,或者就好像它們包含在執行'採購'的腳本中一樣)。

包含FOO=bar; export FOO的腳本在運行第一個變體的shell中不會創建導出的FOO環境變量,但它會在運行第二個變體的shell中創建這樣的變量。

第二種形式(「採購」)是有點像C.

4

第一個需要文件設置+ x標誌。第二個使用。命令又名「來源」,描述爲here

+3

雖然這是真的一個#include,更重要的區別是,「源極」讀出並執行在當前shell實例的文件。執行腳本將啓動腳本執行的shell的新實例(如shebang行中指定的那樣)。 – 2009-12-10 12:56:09

+0

@丹,是的這是正確的,並在我發佈的鏈接中解釋。 – 2009-12-10 13:35:41

+2

這就是'-x' *權限*標誌,而不是bash -x *選項*就是要清楚。 – 2009-12-10 14:54:05

相關問題