J'essaie d'ajouter 1 numéro à partir de la ligne de commande, et un numéro comme par défaut. Par exemple: Lorsque l'utilisateur tape le nombre 50, le script ajoute 10 (comme numéro par défaut).
./script 50
The sum of 50+ 10 is 60.
C'est ce que j'ai jusqu'à présent.
echo -n "Please enter a number: "
read number
default = 10
sum = $((default + number)) // this line does not seem to work
echo "The sum of $number and 10 is $sum."
La syntaxe est-elle incorrecte? Je ne sais pas si je suis sur la bonne voie. Suis-je en train d'ajouter des chiffres erronés? Dois-je utiliser awk à la place?
let sum = $default + $number
echo
ing puis l'utilisation deread
directement vous pouvez taper:read -p 'Please enter a number: ' yournumber
Réponses:
Les espaces sont à l'origine des erreurs.
Si vous souhaitez que l'utilisateur saisisse le numéro à l'invite "Entrez un nombre:", vous pouvez utiliser votre script avec quelques corrections comme:
Vérifier:
Si vous souhaitez que l'utilisateur saisisse le nombre comme argument dans le script, vous pouvez utiliser le script ci-dessous:
Vérifier:
la source
Vous ne devriez pas avoir d'espaces entre "default = 10" & "sum = $", aussi & default devrait avoir $ avant eux pour lire les variables.
Le script fonctionne alors comme prévu pour moi, lorsqu'il est écrit comme ci-dessous;
la source
$
intérieur de l'expression arithmétique. Par exemple, essayez ceci:num=5;def=10;echo "sum = $((num + def))"
C'est le moyen le plus rapide de faire ce que vous demandez:
Production:
la source
./script.sh '((PATH=0)+(ANY_OTHER_VARNAME=[ANY INTEGER]))'