在 case 语句中使用 zsh 数组

在 case 语句中使用 zsh 数组

我在使用 case 语句返回月份时遇到了麻烦。这感觉太明显了,我不知道为什么它让我这么困惑!

month=(01 02 03 04 05 06 07 08 09 10 11 12)
case ${month[@]} in
   test ${month[@]:8:1} = $(date +%m))
   RPROMPT='September %D{%d %Y} %@'
   ;;
   *)
   RPROMPT='%D{%b %d, %Y} %@'
   ;;
esac

是的。我确实想要月份的全名,而不是三个字母的缩写。

这也是一个很好的复习,因为我已经很多年没有接触过 shell 脚本了。

它返回了该*)案例。

答案1

您需要循环遍历数组并依次将 case 语句应用于每个元素:

for element in "${month[@]}"; do
  case ${element} in

相关内容