Shell 通过Case语句调用函数
下面的陈述有效吗?我试图通过Case语句调用函数Shell 通过Case语句调用函数,shell,Shell,下面的陈述有效吗?我试图通过Case语句调用函数 #!/bin/bash function exit { `...` `...` `...`} function start { `...` `...` } `Case $input in` `-book) $(exit) ;;` `-goal) $(start) ;;` `*) break ;;` `esac` 语法正确吗?如果定义了函数: myfunc() { echo 'hi' } 然后可以在case语句中调用该函数,而无需
#!/bin/bash
function exit
{
`...`
`...`
`...`}
function start
{
`...`
`...`
}
`Case $input in`
`-book) $(exit) ;;`
`-goal) $(start) ;;`
`*) break ;;`
`esac`
语法正确吗?如果定义了函数:
myfunc() {
echo 'hi'
}
然后可以在case语句中调用该函数,而无需捕获表达式。您可以像执行任何其他命令一样执行此操作:
case "$param" in
expr) myfunc;;
*) echo 'nope';;
esac
除非您是认真的,否则不需要使用捕获表达式。在您的情况下,您将尝试将函数的输出作为命令本身执行:
$ double_down() {
> echo 'ping google.com'
> }
$ $(double_down)
PING google.com (74.125.226.169): 56 data bytes
有可能,但似乎不太可能,你真的想要这样做。最简单的方法是运行它们,看看它们是否达到了预期效果。如果你以真正的shell脚本的格式粘贴它,这会很有帮助。正如前面的评论所说,为什么不试试,如果脚本不起作用,就调整脚本?