【问题标题】:bash case-statement does not match on equal stringbash case-statement 在相等的字符串上不匹配
【发布时间】:2022-07-07 21:56:31
【问题描述】:

我想在提示中为当前操作系统图标设置一个符号,但我似乎无法弄清楚为什么会这样:

#!/bin/bash

RELEASE=$(sed -En 's/.*ID=([[:alnum:]]+)/\1/p' /etc/*-release | tr '[:upper:]' '[:lower:]' | uniq)

case $RElEASE in
    ubuntu)
        PROMPT_SYMBOL=' ' ;;
    *)
        PROMPT_SYMBOL=$RELEASE ;;
esac

echo $PROMPT_SYMBOL

ubuntu) 情况下不匹配。我用test $RELEASE = "ubuntu" 仔细检查了RELEASE 的内容,结果为true。我错过了case-statement 呢?

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    in case 语句修复 case 不是 $RElEASE 而是全部在 Caps $RELEASE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      相关资源
      最近更新 更多