Wie stimme ich eine Summe aus einer Variablen und einer Zahl?

8

Ich habe eine Variable x=7 und möchte sie mit plus eins wiederholen, wie echo ($x+1) , aber ich bekomme:

  

bash: Syntaxfehler nahe unerwartet   Token '$ x + 1'

Wie kann ich das tun?

    
Tom Brito 20.01.2011, 18:04
quelle

8 Antworten

22

Keine Notwendigkeit für expr , POSIX-Shell erlaubt $(( )) für arithmetische Auswertung:

%Vor%

Siehe §2.6.4

    
SiegeX 20.01.2011, 18:06
quelle
3

Versuchen Sie doppelte Klammern:

%Vor%     
miku 20.01.2011 18:07
quelle
3

Sie können auch das Dienstprogramm bc verwenden:

%Vor%     
Mansoor Siddiqui 20.01.2011 20:31
quelle
1

versuche es     echo $ (($ x + 1))

Ich denke, das funktioniert nur bei einer Version von bash, die 3 oder mehr ist.

%Vor%

wäre eine andere Lösung

    
vmpstr 20.01.2011 18:05
quelle
0

Verwenden Sie einfach den Befehl expr :

%Vor%     
chrisaycock 20.01.2011 18:05
quelle
0

Wir verwenden expr dafür:

%Vor%     
orlp 20.01.2011 18:06
quelle
0

Versuchen Sie es so:

%Vor%     
Jason Plank 20.01.2011 18:07
quelle
0
%Vor%

Von man bash :

  

Arithmetische Erweiterung

     

Arithmetische Erweiterung ermöglicht die Auswertung einer Arithmetik        Ausdruck und die Ersetzung des Ergebnisses. Das Format        für arithmetische Expansion ist:

%Vor%      

Der Ausdruck wird so behandelt, als wäre er innerhalb von double        Zitate, aber ein Doppelzitat innerhalb der Klammern ist nicht        speziell behandelt. Alle Token im Ausdruck durchlaufen        Parametererweiterung, String-Erweiterung, Befehlsersetzung,        und Zitat entfernen. Arithmetische Substitutionen können verschachtelt sein.

     

Die Auswertung wird gemäß den aufgeführten Regeln durchgeführt        unten unter ARITHMETISCHE EVALUIERUNG. Wenn Ausdruck ist        Ungültig, bash gibt eine Meldung aus, die auf Fehler und keine Angabe hinweist        Substitution erfolgt.

    
DVK 20.01.2011 18:08
quelle

Tags und Links