簡體   English   中英

bash:如果等同於case語句

[英]bash: if equivalent of case statement

我對Bash與其他語言中的case語句有點困惑。 也許最好直接問一個問題。 if語句等效於什么:

   case $filename in
       *_[0-9][0-9] )
          echo "fine";;
       *)
          echo "fail";;
   esac

謝謝

請注意,盡管case版本是POSIX兼容的,但以下版本僅適用於采用ksh擴展名的shell,例如bash。 (POSIX sh除了提供對變量內容而不是文件系統執行fnmatch樣式模式匹配的case以外,不提供其他任何本機機制)。

if [[ $filename = *_[0-9][0-9] ]]; then
      echo "fine"
else
      echo "fail"
fi

有關[[及其與內置[test命令的區別],請參見BashFAQ#31

另請參見POSIX sh規范中的case

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM