case 语句中的管道字符“x|y)”是什么?

case 语句中的管道字符“x|y)”是什么?

在我系统的脚本中/etc/network/if-up.d/avahi-autoipd,我发现这样的语句:

case "$ADDRFAM" in
  inet|NetworkManager) ;;
  *) exit 0
esac

case "$METHOD" in
static|dhcp|NetworkManager) ;;
*) exit 0
esac

管道字符|看起来像逻辑“或”,但我在指南中找不到这条规则。我只能找到|用作命令管道和算术整数的“按位或”。

谁能告诉我这种情况有什么用?

答案1

在 case 语句的模式子句中,|精确地表示or

来自bash手册case

case 命令的语法为:

case word in [ [(] pattern [| pattern]…) command-list ;;]… esac 

'|'用于分隔多个模式,“)”运算符终止一个模式列表。

相关内容