0

当我给用户一个输入数字的选项时,我遇到了这个问题,这个数字将被倒数到 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
4

2 回答 2

1

尝试使用现代执行此操作:

#!/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
于 2013-02-18T17:24:55.307 回答
1

像这样移出read循环:

read -p "Enter a number between 1-100: " COUNTER    
until [  $COUNTER -lt 1 ]; do
  echo COUNTER $COUNTER
  let COUNTER-=1
done
于 2013-02-18T17:25:51.597 回答