$ mit oder ohne Anführungszeichen?

Hallo,

folgende Frage wird für euch UNIX-Gurus sicherlich leicht zu beantworten sein:

warum verwendet man hier Anführungszeichen

if ["$success" -eq 0]

hier aber nicht:

if [$yesno != „y“]

ist es so, dass man beim Vergleich von Zahlen (der ja mit -eq stattfindet) die Variable immer in Anführungszeichen einschließen muss - oder hat es einen anderen Grund?

Gruß,
Nina

P.S.: Ich habe derzeit keinen UNIX-Zugriff, deshalb meine Frage.
Ansonsten wäre es sicherlich ein leichtes, das einfach auszuprobieren!

warum verwendet man hier Anführungszeichen

if ["$success" -eq 0]

überflüssig, weil INTEGER - Vergleich (nicht STRING)

hier aber nicht:

if [$yesno != „y“]

Sollte man immer dann in Anführungszeichen setzen, wenn zu erwarten ist, daß die Variable $yesno aus einer Zeichenkette (STRING) bestehen kann, die durch Leerzeichen getrennt ist.
Wenn sie ganz sicher aus nur einem Zeichen / Wort bestehen wird, ist es ohne Anführungszeichen OK.

ist es so, dass man beim Vergleich von Zahlen (der ja mit -eq
stattfindet)

…oder -lt -le -gt usw…

die Variable immer in Anführungszeichen
einschließen muss

Nein, das Gegenteil :wink:

  • oder hat es einen anderen Grund?

STRINGS sollten in Anführungszeichen stehen.
INTEGER können in Anführungszeichen stehen.

-:-
Axel