J'aimerais que quelqu'un me signale des erreurs dans mon script. La source d'où j'apprends est tellement boguée que c'est pour ça que ça me déroute.
OBJET DE CE SCRIPT: Il countra les nombres à partir de n'importe quel nombre que l'user entre au numéro 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
ERREUR IL DONNE: index: command introuvable
index = $number
ne peut pas utiliser les espaces autour =
pour l'assignation des variables .. use index=$number
ou ((index = number))
[ $index => 1 ]
Je suppose que vous voulez vérifier si l' index
est supérieur ou égal à 1, utilisez [ $index -ge 1 ]
ou ((index >= 1))
break
est-elle utilisée? il est utilisé pour quitter la boucle if
n'est pas obligatoire read -p
pour append un message à l'user mettre tous set:
#!/bin/bash read -p 'Enter a number: ' number while ((number >= 1)) ; do echo $number ((number--)) done
Le problème est dans le "si" avant
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
Je suppose que vous voulez quelque chose comme:
#!/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
Eh bien, vous pourriez jeter un oeil à
man index
Une version corrigée de votre script fonctionne si vous remplacez le nom de la variable
#!/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