2012-08-03 193 views
0

請參閱我想在我的shell腳本中使用source命令。現在,當我在終端輸入源這表明像從shell腳本中的另一個文件讀取命令?

-bash: source: filename argument required 
source: usage: source filename [arguments] 

現在,當我使用這在我的shell腳本這樣

#!/bin/sh 
source 

,並保存爲test.sh

並運行,然後得到像這

./test.sh: 2: source: not found 

如何解決這個問題?

+1

來源需要參數。你期望它沒有一個做什麼? – knittl 2012-08-03 13:34:20

+0

我知道它,但這裏的問題是源命令沒有找到...如果我給論點仍然不會工作.. – 2012-08-03 13:35:23

+0

在bash或csh中的'源文件'是一個命令,從'file'到當前shell (腳本或交互式會話)。這個更便攜的版本是* dot *命令'。 file'。這在所有常見的unix shell上都受支持。 – 2012-08-03 13:38:09

回答

5

您使用sh運行腳本,而不是使用bashsource不存在於原始sh中,但您可以使用.代替,它意味着同樣的事情。

#!/bin/sh 
. /path/to/other/script 
function_defined_in_other_script 
+0

的確,使用'。文件「來使它在不同的shell中工作。 – 2012-08-03 13:39:35

+0

@HenkLangeveld:'.'在'dash'(Ubuntu上默認的'sh')中不起作用。它的手冊頁也沒有記錄。 – knittl 2012-08-03 13:40:59

+0

'$。 ./test_dot.sh'結果在'這是test_dot.sh,在我的流浪linux框中從短劃線調用。 (文件包含'echo這是test_dot.sh,從$ 0 '調用) – 2012-08-03 13:43:39

相關問題