如何跨多行分割很长的案例模式?

时间:2012-06-04 16:16:36

标签: string bash split switch-statement

如何在以下bash代码中拆分long valueX字符串?

case "$1" in
    value1|value2|value3|...........more values..................| valueN)
        some_processing "$@"
        ;;
    ...
esac

我正在寻找分成不同的行。 M.B。像:

VAL+=value1
VAL+=value2
....

提前致谢

1 个答案:

答案 0 :(得分:8)

从手册页:

  

case命令首先扩展word,并尝试依次使用与路径名扩展相同的匹配规则将它与每个模式匹配[。]

换句话说,它是一个glob模式,而不是正则表达式。因此,您可以在模式令牌之间使用IFS。例如:

case "$1" in
    value1 | \
    value2 )
        :
    ;;
esac

请注意,必须使用反斜杠转义行继续,这与通常的情况一样,管道符号将自动继续行。除此之外,您可以像在提示时那样分解线。