【发布时间】:2018-01-14 14:50:25
【问题描述】:
我需要从 中获取值,如果用户输入了错误的值,那么脚本会告诉他该值不正确并要求他再次输入。
我已经有类似的东西,但它不起作用.. 有什么建议吗?
#!/bin/bash
read -r -p "Type year [value from 2019-2099]" year
if [[ "$year" =~ ^(20[1-9]|[1-9])+$ ]]; then
mkdir -p "/home/$year/"
else
echo "$year - value is not correct. Try again." >&2 && exit 1
fi
【问题讨论】:
-
为什么不检查它是否是一个数字
[0-9]+然后[[ "${year}" -ge 2018 ]] && [[ "${year}" -le 2099 ]]? -
所以它现在可以工作了,但是如何循环执行呢?我的意思是当用户输入错误的值时程序会从头开始?
-
您应该编辑您的问题以包含“循环”部分。我会把它包装成一个函数并在循环中调用它。