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

Writing function to replace often used case pattern

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

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

并在 select 案例中调用它

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

执行脚本时,bash 不喜欢该函数(给我关于“)”和“;;”的错误)。

什么会起作用?

函数只能有完整的命令,不能是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