shell 脚本 (/bin/sh) 中“case $1/$2”中的斜杠起什么作用

shell 脚本 (/bin/sh) 中“case $1/$2”中的斜杠起什么作用

成立arch wiki 上的示例

#!/bin/sh
case $1/$2 in
  pre/*)
    echo "Going to $2..."
    ;;
  post/*)
    echo "Waking up from $2..."
    ;;
esac

并且无法判断它是逻辑运算符还是其他运算符。

答案1

这里没有什么特别的。的语法case

case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

在问题中的例子中,是由,和word组合构成的。根本没有特殊含义,它只是一个字符。$1/$2/

PS:实际上,用法有点奇怪,因为$2后面的部分是匹配的,*所以 的值$2并不重要。在 Wiki 中描述的上下文中,人们还可以写

#!/bin/sh
case $1 in
  pre)
    echo "Going to $2..."
    ;;
  post)
    echo "Waking up from $2..."
    ;;
esac

suspend但在某些情况下, 、hibernatehybrid( 的可能值)可能是$2相关的,因此这里只是一般模式。

相关内容