2016-06-08 45 views
1

Was ist der Hauptunterschied zwischen $(()) und expr in Unix-ähnlichen Systemen?

+1

@andlrc Das ist überhaupt nicht relevant. – 123

+1

'$ (())' ist für Bash-Arithmetik. Ausdruck ist zum Auswerten von Ausdrücken, das kann arithmetisch oder Zeichenfolgen sein. Wenn Sie in der bash-man-Seite nach '$ (())' und der 'expr'-Manpage schauen, erfahren Sie alles, was beide Befehle können. – 123

+0

Nicht nur Bash-Arithmetik. '$ (())' ist seit der Veröffentlichung im Jahr 1991 in der POSIX-Spezifikation enthalten. –

Antwort

2

$(()) wird fast sicher in der Shell sein, die Sie verwenden. expr kann ein externer Anruf sein

+0

Was ist mit POSIX? – SuckLips

+0

Beide werden von POSIX angegeben. Sie können vielleicht ein Szenario konstruieren, in dem es nützlich ist, einen Befehl anstatt einer integrierten Syntax für Arithmetik zu verwenden, aber im Großen und Ganzen '$ ((...))' 'hat' expr' für alle außer regulären Ausdrücken ersetzt. – chepner

0

expr ist ein Überbleibsel aus den frühen Tagen der Bourne-Shell. Sie sollten expr vermeiden, es sei denn, Sie sind gezwungen, Skripte zu erstellen, die mit älteren Implementierungen kompatibel sein müssen (vor POSIX). (Es ist noch nicht so lange her, dass Solaris sh zum Beispiel in diese Kategorie fällt.)

Verwandte Themen