在 Bash 脚本中设置变量以包含一系列数字

在 Bash 脚本中设置变量以包含一系列数字

我有一个对话框菜单的 case 语句,并且希望它引用多个数字(一到九),如果选择了从一到九之间的任何数字。

如何让一个单词有多个值?现在

: ${EXAMPLE=9}

但是我怎样才能使它等于多个数字呢?

我到目前为止已经尝试过:

: ${EXAMPLE=1,2,3,4,5,6,7}

: ${EXAMPLE=1-9}

: ${EXAMPLE=1 && 2 && 3}

语境:

我制作了一个菜单对话框,列出了特定区域内的所有文件,并想制作一个如下的案例

case $example in
        **1)**  # but not just 1, it should be 1-9

   echo "blah blah" ;;

esac

答案1

你可以做几件事:

  • 使用范围[1-9]
  • 用于|创建“或”值列表
  • 使用通配符:

例子:

bash-4.3$ var=25
bash-4.3$ case $var in 
> [1-9]) echo "1 to 9";; 
> 25|35|45) echo "25 or 25 or 45" ;;
> 5*) echo "starting with 5";;
> esac
25 or 25 or 45

Case 主要用于模式,因此如果要进行算术评估,最好使用 if 语句,[ 尽管您可以执行类似以下操作[1-5][0-9][0-9]) echo "100 to 599" ;;来查看 item 是否在 100 到 599 范围内(即 var>=100 && var<=599)。请参阅有关 bash 的 case 语句中的算术的更多信息。

相关内容