我正在尝试做类似的事情:
fn()
{
"reusedPattern")
#do stuff
;;
}
并在选择案例中调用
select stuff in ${something[@]}
do
case $stuff in
"pattern1")
#do stuff
;;
...
fn
...
*) echo invalid input ;;
done
执行脚本时,bash不喜欢这个函数(给我关于&#34的错误;)"和#34 ;;;")。
什么会起作用?
答案 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