2016-12-30 49 views
-5

如果我在/ usr/bin目錄中有腳本「shellscript」(它也可以是已安裝程序的腳本)。當我在終端運行命令「shellscript」(從任何地方,家庭或其他目錄),它運行完美,但是當我使用「。shellscript」時,該文件也執行。 我知道我們可以使用「./path/to/ script/shellscript」來運行它,但是如果它位於/ usr/bin中,我們可以使用不帶路徑的直接命令嗎? 運行安全嗎? 我們可以用這種方式運行程序嗎? 我需要解釋。如果是,那爲什麼?如果不是那麼爲什麼?不應該那麼爲什麼?什麼時候可以在bash,ubuntu中用命令「。shellscript」運行shell腳本?

+0

您是否檢查過手冊?我現在即將這樣做。 – melpomene

+5

哦,看看:https://www.gnu.org/software/bash/manual/bashref.html#Bourne-Shell-Builtins說:「'。filename [arguments]' - 從*文件名讀取和執行命令*如果* filename *不包含斜槓,則使用'PATH'變量來查找* filename *。「 – melpomene

回答

1

Bash shell在shellscript. shellscript個案中搜索PATH變量中列出的目錄。主要區別在於,使用.(或等效地source)啓動腳本時,不會創建新的shell進程來解釋腳本。這有時很有用,因爲它允許腳本定義將在調用者中可用的環境變量和函數。有關更多詳細信息,請參閱Bash manual pageinfo bash)。

+0

是否有任何缺點使用。 shell腳本。如果我們已經安裝了一個程序「prog」,並且如果我使用命令「prog」和「。prog」運行它,那麼是否有可能發生的任何威脅或錯誤? –

+0

我爲某些程序執行此操作,它的行爲有所不同?可能是什麼原因?他們之間有什麼不同? –

+0

您能否詳細說明「它允許腳本定義將在調用者中可用的環境變量和函數」。 –

相關問題