Shell 通过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语句中调用该函数,而无需

下面的陈述有效吗?我试图通过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脚本的格式粘贴它,这会很有帮助。正如前面的评论所说,为什么不试试,如果脚本不起作用,就调整脚本?