无法执行 Bash 脚本 if / while

无法执行 Bash 脚本 if / while

我希望有人指出我的脚本中的错误。我学习的来源是如此错误,这就是为什么它让我感到困惑。

本脚本的目的:它将计算从用户输入的数字到数字 1 的数字

#!/bin/bash

echo -n Enter a number

read number

if (($number > 0))  ; then

index = $number

while [ $index => 1 ]  ; do

echo $index

((index--))



break
done
fi    

它给出的错误:索引:未找到命令

答案1

  • index = $number=不能在变量赋值时使用空格。使用index=$number((index = number))
  • [ $index => 1 ]我想你想检查是否index大于或等于 1,使用[ $index -ge 1 ]((index >= 1))
  • 为什么break使用该语句?它用于退出循环
  • if声明也不是必需的
  • 您还可以使用read -p选项为用户添加消息

把它们放在一起:

#!/bin/bash

read -p 'Enter a number: ' number

while ((number >= 1)) ; do
    echo $number
    ((number--))
done

答案2

问题出在“如果”之前

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

我猜你想要这样的东西:

#!/bin/bash
echo -n "Enter a number : "
read number
echo $number

if [ $number -gt "0" ]  ; then
  ind="$number"
  while [ $ind -ge "1" ]  ; do
     echo $ind   
    ((ind--))
  done
fi

答案3

那么你可能想看看

man index

如果替换变量名称,则脚本的更正版本可以工作

#!/bin/bash

echo -n Enter a number

read num

   if (($num > 0))  ; then

      ind=$num

      while [ $ind -ge 1 ]  ; do

         echo $ind

         ((ind--))

         break
         done
   fi 

相关内容