2011-03-06 69 views

回答

0

source.採取一個文件作爲參數。該文件中的每行代碼都被執行。所以,我不認爲

. ./ 

會工作。

$ . ./ 
-bash: .: ./: is a directory 
$ echo "echo Hello" > out 
$ . out 
Hello 
$ source out 
Hello 
3

「.//」會嘗試運行一個名爲'?'的程序它將駐留在當前目錄中,並將在當前shell中運行。第一個點代表'運行在當前shell'(而不是產生一個新的)','./'代表'當前目錄'和'?'將意味着一個名爲'?'的可執行文件將不得不存在。

+1

請注意,文件不需要可執行文件來源於'.'。它必須是一個shell腳本(即你不能獲得一個編譯好的可執行文件)。 – sepp2k 2011-03-06 22:21:50

1

在文件名上運行.將運行文件中的命令,就像在shell命令提示符下鍵入它們一樣。與shell腳本不同,文件產生的環境變量(和類似的)更改在運行文件之後仍然存在;當腳本完成時,由shell腳本所做的更改將被還原。

1

.source命令將給定文件讀入當前shell。即基本上給定的文件是通過鍵入. filename運行的shell腳本,但是使用.(或source,這與之等效)不同於通常作爲shell腳本運行文件,因爲它不產生子shell並因此保留變量由腳本導出。所以如果腳本設置並導出變量,腳本完成後它們仍然會被設置。