【发布时间】:2017-09-29 23:32:20
【问题描述】:
我正在尝试完成下面描述中列出的任务,但我不确定如何验证用户的响应,以确保他们不输入字母、分隔符或空格作为用户编号。目前,当我运行脚本时,它会声明“./loop_test.sh: line 12: [: a: integer expression expected”。我从 Youtube、教科书和这里到处查看,但似乎无法弄清楚出了什么问题……有人可以帮我吗?
#!/bin/bash
# Description: This script will ask the user to enter a number between 20
# and 30. If the user enters an invalid number or a non-number, it will ask
# again. The process will repeat until a satisfactory number is entered.
# Option: None
printf "Hello! Select a number between 20-30: "
read user_number
while [ "$user_number" -lt 20 ] || [ "$user_number" -gt 30 ] && [
"$user_number" -ne *[0-9]* ]
do
printf "Sorry, it looks like the input you selected isn't between 20-30\n"
printf "Please select another number: "
read user_number
done
printf "All set! Thanks for following directions!\n"
【问题讨论】:
标签: bash validation scripting user-input delimiter