ubuntuusers.de

Bash, arithmetische Operatoren

Status: Gelöst | Ubuntu-Version: Ubuntu 19.10 (Eoan Ermine)
Antworten |

pixel24

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Hallo zusammen,

ich versuche gerade des Bash-Scripting mächtig zu werden und habe ein kleines Verständnisproblem mit den arithmetischen Operatoren wie Sie im Buch stehen (siehe Anhang). Im speziellen mit:

1
var+=n var–=n var*=n var/=n var%=n 	Kurzformen für +, –, *, /, % Kurzform für bspw. Addition var+=n ist gleichwertig zu var=var+n 

Worin liegt nun der Unterschied zwischen:

1
2
a=100
echo $[a+=100]

und

1
2
a=100
echo $[a+100]

also der Unterschied zwischen dem einfach "+" und der Schreibweise "+=" ?

Viele Grüße pixel24

Bilder

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

kaum geschrieben kam ich selbst drauf. Bei += hat die Variable anschließend den Wert 200 während beim einfachen + der Wert der Variable a unverändert - also 100 - ist/bleibt.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13211

pixel24 schrieb:

kaum geschrieben kam ich selbst drauf.

Dann das Thema bitte als "gelöst" markieren.

Wo hast Du denn die Sache mit den eckigen Klammern ($[...]) gefunden? Nach "$[" sucht sich so schlecht und unter Arithmetic Expansion habe ich es nicht gefunden.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11261

Wohnort: München

$[] ist eine alte Syntax für $(()), die nur in Bash und ZSH funktioniert und die man laut https://wiki.bash-hackers.org/scripting/obsolete nicht mehr verwenden sollte.

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

rklm schrieb:

pixel24 schrieb:

kaum geschrieben kam ich selbst drauf.

Dann das Thema bitte als "gelöst" markieren.

Wo hast Du denn die Sache mit den eckigen Klammern ($[...]) gefunden? Nach "$[" sucht sich so schlecht und unter Arithmetic Expansion habe ich es nicht gefunden.

Mache ich. Das steht in der aktuellen Ausgabe von "Shell-Programmierung - Das umfassende Handbuch" vom Rheinwerk-Verlag. Dort werden alle Schreibweise vorgestellt und die mit den eckigen Klammern als "bevorzugt" beschrieben. Mir persönlich gefiel diese auch am besten aber wenn sie veraltet ist werde ich sie nicht mehr verwenden.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13211

pixel24 schrieb:

Das steht in der aktuellen Ausgabe von "Shell-Programmierung - Das umfassende Handbuch" vom Rheinwerk-Verlag. Dort werden alle Schreibweise vorgestellt und die mit den eckigen Klammern als "bevorzugt" beschrieben. Mir persönlich gefiel diese auch am besten aber wenn sie veraltet ist werde ich sie nicht mehr verwenden.

Also, in der bash reference wird sie bei Arithmetic Expansion (siehe früherer Link) nicht erwähnt. Und POSIX ist das vermutlich auch nicht. Von daher würde ich die Finger eher davon lassen. Das wirft natürlich auch ein gewisses Licht auf das Buch...

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11261

Wohnort: München

rklm schrieb:

Also, in der bash reference wird sie bei Arithmetic Expansion (siehe früherer Link) nicht erwähnt. Und POSIX ist das vermutlich auch nicht. Von daher würde ich die Finger eher davon lassen. Das wirft natürlich auch ein gewisses Licht auf das Buch...

Wenn ich https://lists.gnu.org/archive/html/bug-bash/2012-04/msg00034.html richtig verstehe, war das um 1990 herum mal für kurze Zeit in POSIX, bis es ersetzt wurde.

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Nehme die Schreibweise mit der doppelten Klammerung ☺ Danke für den Hinweis

Antworten |