如何调用该功能

时间:2017-03-18 09:28:40

标签: unix

我试图从命令提示符调用一个函数,但我找不到正确的方法来调用它。

这是我的剧本:

echo "Hello World!" 

test {

    echo "Sample message"
}

我尝试了以下方法:

sh-4.2$ main.sh test                                                                                                                                                     
Hello World!                                                                                                                                                             
./main.sh: line 5: usuage: command not found                                                                                                                             
A helpful message!                                                                                                                                                       
./main.sh: line 8: syntax error near unexpected token `}'                                                                                                                
./main.sh: line 8: `}'                                                                          
sh-4.2$ . main.sh test                                                                                                                                                   
Hello World!                                                                                                                                                             
sh: usuage: command not found                                                                                                                                            
A helpful message!                                                                                                                                                       
sh: ./main.sh: line 8: syntax error near unexpected token `}'                                                                                                            
sh: ./main.sh: line 8: `}'                                                                          
sh-4.2$ . main.sh test()                                                                                                                                                 
sh: syntax error near unexpected token `('  

你可以帮助我。

1 个答案:

答案 0 :(得分:2)

这里有一些问题,test函数的语法是错误的,你需要括号,

test() {
    echo "Sample message"
}

export -f test

export -f语法允许您将函数导出到shell;要从命令行运行它们,您需要在当前shell中获取脚本,

$ . ./main.sh
Hello World!

现在,您可以在从脚本导出函数后直接从命令行调用函数test

$ test
Sample message

NOT 的一个好习惯是函数名称为test,因为它与shell内置的同名。建议使用一些自定义名称。