string - 如何将很长的案例模式拆分成多行?

标签 string bash split switch-statement

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

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

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

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

最佳答案

来自手册页:

A case command first expands word, and tries to match it against each pattern in turn, using the same matching rules as for path‐name expansion[.]

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

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

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

关于string - 如何将很长的案例模式拆分成多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10884542/

相关文章:

linux - 符号链接(symbolic link)文件的 cscope

linux - 在bash脚本中计算并赋值

linux - bash,搜索 USB 存储设备。输出位置

Windows 终端,拆分 Pane 但新 Pane 与以前的 Pane 位于同一目录中?

c++ - QStringList::split - 将带有数据的长字符串拆分为多个不同的 QString

sql - SQL 中的 String 和 nvarchar(5000) 有什么区别?

java - 按字符串中的值对字符串数组进行排序

c++ - 如何将任意长度的句子拆分为单词并将其存储到变量中

C++ - 带有 std::string 的统一初始值设定项

c# - GUID 的格式是否始终相同?