编写函数来替换常用的案例模式

时间:2015-10-20 23:59:20

标签: bash shell switch-statement

我正在尝试做类似的事情:

fn()
{
    "reusedPattern")
        #do stuff
        ;;
}

并在选择案例中调用

select stuff in ${something[@]}
do
    case $stuff in
       "pattern1")
            #do stuff
            ;;
     ...
       fn
     ...
       *) echo invalid input ;;
done

执行脚本时,bash不喜欢这个函数(给我关于&#34的错误;)"和#34 ;;;")。

什么会起作用?

1 个答案:

答案 0 :(得分:1)

一个函数只能有完整的命令,而不是case语句的片段。

您可以做的是在函数中定义#do stuff部分,并从case命令调用它:

reusedPatternCommands()
{
    #do stuff
    echo "reusedPattern"
}

select stuff in ${something[@]}
do
    case $stuff in
       "pattern1")
            #do stuff
            ;;
     ...
       "reusedPattern")
            reusedPatternCommands
     ...
       *) echo invalid input ;;
done