我有两个脚本:
/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()
我在做什么可能有什么问题?
答案 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
导致单引号在错误消息的开头结束,覆盖了前导/
。