Mathias Brodala: Variable im Bash Script prüfen

Beitrag lesen

Hallo Twilo.

ich möchte eine Variable in ein Bachscript testen

#!/bin/bash
declare testvariable=tar.gz

if ${testvariable} == "tar.gz"; then
  ...
fi

Egal welche Art Operatoren du zum Vergleichen verwendest, die Syntax von „if“ ist festgelegt. Soll heißen: ohne die „[]“ um den Ausdruck wirst du weiterhin Fehlermeldungen bekommen.

unter Programmierung der Bourne Again Shell
if ["$1" -eq "" ]

Da sieht man mal, was ein einfacher Vertipper für fatale Folgen haben kann. Du hast den Fehler des Autors natürlich übernommen. Obigem Ausdruck fehlt das Leerzeichen nach der öffnenden eckigen Klammer.

das hatte ich wie folgt abgewandelt
if ["$testvariable" -eq "tar.gz" ]
dann erhalte ich jedoch folgende Fehlermeldung
./Scriptname.sh: line xy: [tar.gz: command not found

Das hier verwundert dann nicht mehr.

Einen schönen Sonntag noch.

Gruß, Mathias

PS: Ich empfehle dieses Tutorial zum Einstieg.

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]