2012-08-03 133 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

相关问题