Ich versuche, 1 Nummer über die Befehlszeile und eine Nummer als Standard hinzuzufügen. Beispiel: Wenn der Benutzer die Nummer 50 eingibt, fügt das Skript 10 hinzu (als Standardnummer).
./script 50
The sum of 50+ 10 is 60.
Das habe ich bisher.
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."
Habe ich die falsche Syntax? Ich bin mir nicht sicher, ob ich auf dem richtigen Weg bin. Füge ich die Zahlen falsch hinzu? Soll ich stattdessen awk verwenden?
let sum = $default + $number
echo
ing und dann die Verwendung vonread
direkt können Sieread -p 'Please enter a number: ' yournumber
Antworten:
Leerzeichen verursachen die Fehler.
Wenn Sie möchten, dass der Benutzer die Nummer eingibt, wenn er als "Bitte geben Sie eine Nummer ein:" aufgefordert wird, können Sie Ihr Skript mit folgenden Korrekturen verwenden:
Prüfen:
Wenn der Benutzer die Nummer als Argument für das Skript eingeben soll, können Sie das folgende Skript verwenden:
Prüfen:
quelle
Sie sollten keine Leerzeichen zwischen "default = 10" und "sum = $" haben, außerdem sollte default & number $ vor sich haben, um aus den Variablen zu lesen.
Das Skript funktioniert dann wie erwartet für mich, wenn es wie folgt geschrieben wird.
quelle
$
. Versuchen Sie dies beispielsweise:num=5;def=10;echo "sum = $((num + def))"
Dies ist der schnellste Weg, um das zu tun, was Sie verlangen:
Ausgabe:
quelle
./script.sh '((PATH=0)+(ANY_OTHER_VARNAME=[ANY INTEGER]))'