从外部脚本调用函数

时间:2015-06-18 03:36:11

标签: bash

我有两个脚本:

/home/bin/test.sh

#!/bin/bash
. /home/bin/test_functions.sh
test

/home/bin/test_functions.sh

#!/bin/sh
test()
{
    echo "this is a test"
}

我想从外部脚本调用该函数并在主脚本中执行它。然而,我一直在收到这些错误

'home/bin/test_functions.sh: line 2: syntax error near unexpected token `
'home/bin/test_functions.sh: line 2: `test()

我在做什么可能有什么问题?

1 个答案:

答案 0 :(得分:5)

test_functions.sh似乎是DOS格式,bash在\r\n行结尾处窒息。 Use dos2unix将其转换为UNIX行结尾。

你可以说,因为bash试图输出的是:

/home/bin/test_functions.sh: line 2: syntax error near unexpected token `\r'
/home/bin/test_functions.sh: line 2: `test()\r'

但是回车符\r导致单引号在错误消息的开头结束,覆盖了前导/