早上好各位,
我必须在课堂作业中这样做,但我不太清楚如何做。
该脚本将要求用户提供两个单独的语句,这两个语句将填充两个变量 L 和 C。我需要检查 L 和 C 是否都在 1 到 3 的范围内。如果 L 或 C 的值低于1 和/或高于 3(超出范围),脚本必须打印警告并要求新值。
printf "Please, enter L and C: "
read L C
while [[ $L -ge 1 -a $L -le 3 ]]; do
while [[ $C -ge 1 -a $C -ge 3 ]]; do
这按预期工作(循环)。有什么办法可以更好地处理这个问题吗?
谢谢,
拉斐尔
答案1
为了可读性,我会做类似的事情:
checkrange() {
if [[ "$1" -le 3 ]] && [[ "$1" -ge 1 ]]; then
return 0
else
return 1
fi
}
L=0
C=0
prompt="Please enter values for L and C >"
while ! ( checkrange "$L" && checkrange "$C" ); do
read -p "$prompt" L C
prompt="Invalid input; please enter new values for L and C >"
done