如何将很长的案例模式拆分为多行



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

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

我正在寻找分成单独的行。M.b. 喜欢:

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

从手册页:

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

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

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

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

最新更新