当我向用户提供输入数字的选项时,我得到了这个问题,该数字将被计数到1.我在回声线后丢失,因为脚本回显了输入的值,但没有把它减少到1。
#!/bin/bash
COUNTER=100
until [ $COUNTER -lt 1 ]; do
read -p "Enter a number between 1-100: " COUNTER
echo COUNTER $COUNTER
let COUNTER-=1
done
答案 0 :(得分:1)
尝试使用现代bash:
#!/bin/bash
read -p "Enter a number between 1-100: " counter
until ((counter < 1)); do
echo "counter $counter"
((counter--))
done
read
放在for loop
之外,以便成功完成。((...))
比-gt, -lt...
更直观,是一个算术命令,如果表达式非零,则返回退出状态0;如果表达式为零,则返回1。如果需要副作用(赋值),也用作“let”的同义词。请参阅http://mywiki.wooledge.org/ArithmeticExpression 答案 1 :(得分:1)
将read
移出循环,如下所示:
read -p "Enter a number between 1-100: " COUNTER
until [ $COUNTER -lt 1 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done