通过Case语句调用Function

时间:2014-07-06 19:18:27

标签: shell

以下陈述是否有效?我试图通过案例陈述来调用函数。

#!/bin/bash

function exit
{
`...`
`...`
`...`}
function start
{
`...`
`...`
}

`Case $input in`

`-book) $(exit) ;;`
`-goal) $(start) ;;`
`*) break ;;`
`esac`

语法是否正确?

1 个答案:

答案 0 :(得分:0)

如果您定义了一个功能:

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

可能,但似乎不太可能,你真的想要这个。