シェルスクリプト(/bin/sh)で「case $1/$2」のスラッシュは何をしますか?

シェルスクリプト(/bin/sh)で「case $1/$2」のスラッシュは何をしますか?

確立されたこれアーチウィキの例

#!/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ただし、場合によっては、hibernateまたはhybrid(可能な値)が$2関連する可能性があるため、これは一般的なパターンにすぎません。

おすすめ記事