Der einzige Taschenrechner, den ich kenne, ist bc
. Ich möchte 1
einer Variablen hinzufügen und in eine andere Variable ausgeben.
Ich habe die nextnum
Variable vom Zählen der Zeichenfolge in einer Datei erhalten:
nextnum=`grep -o stringtocount file.tpl.php | wc -w`
Nehmen wir an, der nextnum
Wert ist 1
. Wenn mit hinzugefügt 1
, wird es 2
. Um zu berechnen, laufe ich:
rownum=`$nextnum+1 | bc`
habe aber Fehler bekommen:
1+1: command not found
Ich habe gerade im Berechnungsteil versagt. Ich habe versucht, den Backtick zu ändern, funktioniert aber immer noch nicht. Ich habe keine Ahnung, wie man Variablen berechnet und an eine andere Variable ausgibt.
shell
arithmetic
bc
calculator
Apasajja
quelle
quelle
Antworten:
Die Teilzeichenfolge in
` `
muss ein gültiger Befehl sein:Ist aber vorzuziehen,
$( )
anstatt zu verwenden` `
:Es besteht jedoch keine Notwendigkeit
bc
, die Shell kann ganzzahlige Arithmetik ausführen:Oder noch einfacher in
bash
undksh
:quelle
Sie können auch die eingebaute Arithmetik in bash verwenden:
das wäre etwas schneller.
quelle
Absolut richtig und vervollständigen Sie die vorgeschlagenen Lösungen, um nur zu erwähnen, wie es früher gemacht werden musste, als nur die Bourne-Shell verfügbar war, so gefällt es:
quelle
Ich würde verwenden (wie bereits erwähnt)
rownum=$((nextnum+1))
oder((rownum=nextnum+1))
aber wenn Sie einen Standardbefehl bevorzugen, können Sie den Befehl let verwenden, wie zlet rownum=$nextnum+1
quelle
let
eines „Standardbefehls“ ist sehr irreführend.$((…))
ist eine Standardsyntax (POSIX), währendlet
es sich um eine ksh- (und bash-, zsh-) Erweiterung handelt.