【问题标题】:How can I split very long case patterns across multiple lines?如何将很长的案例模式拆分为多行?
【发布时间】:2012-06-08 17:12:52
【问题描述】:

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

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

我正在寻找拆分成单独的行。 工商管理硕士喜欢:

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

【问题讨论】:

    标签: string bash split switch-statement


    【解决方案1】:

    来自手册页:

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

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

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

    请注意,您必须使用反斜杠转义续行,这与管道符号将自动续行的通常情况不同。除此之外,您可以按照提示符的方式拆分线路。

    【讨论】:

    • 你的回答让我的没必要。支持你的,删除我的。
    猜你喜欢
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多