我阅读了这个stackoverflow的问题...
它完成了我大部分想要的功能,但是我需要检查的不仅仅是一个整数,而是在一个变量范围内的整数...
该脚本查找目录中的文件,然后为其分配一个数字...
- 文件1
- 文件2
- 文件3 等等....
用户选择编号,然后脚本执行相应文件的命令......变量$FILELIST是文件总数。
按照上一个stackoverflow示例,我尝试了以下方法...
FILENUM=""
while [[ ! ($FILENUM =~ ^[0-$FILELIST]+$) ]]; do
echo " "
echo "Please enter the file number: "
read -p "1 - $FILELIST" FILENUM < /dev/tty
done
echo "$FILENUM"
然而,这会引发一个语法错误:在while一行中出现了意外的“(”,期望是“do”,我不确定原因,我怀疑$FILELIST必须以某种方式加括号,但是为什么上述代码可行的解释将有助于我理解问题。
谢谢
^[0-$FILELIST]+$
可能不是您想要的。假设$FILELIST
是 100,那么这个正则表达式就是^[0-100]+$
,它只会匹配包含 0 和 1 的数字,而不是介于 0 和 100 之间的数字... - mathematical.coffee