GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden Sie $[Ausdr] anstelle von $((Ausdr))?

In dem Abschnitt, der die arithmetische Erweiterung erklärt, deckt das Benutzerhandbuch von Bash zwei verschiedene Möglichkeiten auf, einen Ausdruck auszuwerten, die erste verwendet $(( EXPRESSION )) und der zweite verwendet $[ EXPRESSION ] . Die beiden Wege scheinen ziemlich ähnlich zu sein, da der einzige Unterschied, den ich gefunden habe, folgender ist:

$[ EXPRESSION ] berechnet nur das Ergebnis von EXPRESSION und führt keine Tests durch:

Dennoch bin ich fasziniert, weil dasselbe Dokument die Verwendung von $[ EXPRESSION ] empfiehlt statt $(( EXPRESSION )) .

Bash-Benutzer sollten möglichst versuchen, die Syntax mit eckigen Klammern zu verwenden:

Warum sollten Sie das wollen, wenn weniger Tests durchgeführt werden?

Akzeptierte Antwort:

Duplizierungsfrage (mit Antwort)

https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression

Die Manpage für bash v3.2.48 sagt:

[…] Das Format für die arithmetische Erweiterung ist:

 $((expression)) 

Das alte Format $[Ausdruck] ist veraltet und wird in kommenden Versionen von bash entfernt.

$[…] ist also eine alte Syntax, die nicht mehr verwendet werden sollte

Zusätzlich zu dieser Antwort:

http://manual.cream.org/index.cgi/bash.1#27

Info zu Bash-Versionen:

Hier sind einige Informationen über Bash-Manpages (es ist schwer, Informationen darüber zu finden, auf welche Version sich jede bezieht):

OPs-Link:

http://www.tldp.org/guides.html Bash Guide for Beginners
Version:1.11
Author:Machtelt Garrels,
last update:Dec 2008

sth (74.6k rep) zitiert bash v3.2.48

von https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression)

Hinweis:Weitere Informationen zu [] vs (()) finden Sie hier:http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html

ein Link, den ich gefunden habe:

http://www.gnu.org/software/bash/manual/ zuletzt aktualisiert am 22. August 2012

http://www.gnu.org/software/bash/manual/bash.html#Arithmetic-Expansion


Linux
  1. Verwenden Sie die Erweiterung .sh oder .bash für Bash-Skripte?

  2. Warum sollte eval in Bash vermieden werden und was sollte ich stattdessen verwenden?

  3. Wie parse ich HTTP-Header mit Bash?

  4. Was ist die Verwendung von $ # in Bash

  5. Verwenden Sie .bashrc, ohne sftp zu beschädigen

Verwenden Sie dieses hilfreiche Bash-Skript, wenn Sie Sterne beobachten

Du liebst Diff nicht? Verwenden Sie stattdessen Meld

Bash-Funktion und Verwendung {Variablen, Argumente, Rückgabe}

So verwenden Sie den Bash-Lesebefehl

Linux vs. Mac OS:15 Gründe, warum Sie Linux anstelle von Mac OS verwenden sollten

Was ist Zsch? Sollten Sie es verwenden?