当我给用户一个输入数字的选项时,我遇到了这个问题,这个数字将被倒数到 1。我在 echo 行之后迷路了,因为脚本会回显输入的值但不会倒数为 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
当我给用户一个输入数字的选项时,我遇到了这个问题,这个数字将被倒数到 1。我在 echo 行之后迷路了,因为脚本会回显输入的值但不会倒数为 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
尝试使用现代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...
and 更直观,是一个算术命令,如果表达式非零,则返回退出状态 0,如果表达式为零,则返回 1。如果需要副作用(分配),也用作“让”的同义词。见http://mywiki.wooledge.org/ArithmeticExpression像这样移出read
循环:
read -p "Enter a number between 1-100: " COUNTER
until [ $COUNTER -lt 1 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done