(gelöst) Brauche Hilfe bei einem bash script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
bombaclaude
Beiträge: 320
Registriert: 01.01.2007 13:19:34

(gelöst) Brauche Hilfe bei einem bash script

Beitrag von bombaclaude » 04.06.2008 18:25:16

Ich lasse ein bash script als cgi mit Apache 2 laufen. Das script funktioniert soweit, allerdings bekomme ich diese Warnung im error.log:
[Wed Jun 04 18:08:57 2008] [error] [client 192.168.8.1] /var/www/testing/cgi-bin/textile.cgi: line 6: [: =: unary operator expected
Das bash sieht in dem Abschnitt so aus:

Code: Alles auswählen

#!/bin/sh
# version 2008/06/04

INCLUDES=/var/www/testing/include

if [ $QUERY_STRING = 'textile' ]
 then
Was soll das bedeuten und was muss ich ändern?
Zuletzt geändert von bombaclaude am 04.06.2008 19:37:05, insgesamt 1-mal geändert.

Benutzeravatar
mragucci
Beiträge: 598
Registriert: 08.09.2004 03:21:24
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Endor
Kontaktdaten:

Re: Brauche Hilfe bei einem bash script

Beitrag von mragucci » 04.06.2008 18:46:29

Verwende einen Vergleichsoperator, keinen Zuweisungsoperator
Ich will im Schlaf sterben - Wie mein Opa...
Und nicht weinend und schreiend wie sein Beifahrer!
-----
https://www.whisperedshouts.de

bombaclaude
Beiträge: 320
Registriert: 01.01.2007 13:19:34

Re: Brauche Hilfe bei einem bash script

Beitrag von bombaclaude » 04.06.2008 19:36:39

Ah, ok danke! :D

newland
Beiträge: 29
Registriert: 29.03.2008 21:16:28

Re: (gelöst) Brauche Hilfe bei einem bash script

Beitrag von newland » 18.06.2008 04:20:03

Kann mir einer ein Buch oder Seite empfehlen wo man bash script oder auch c Script lernen kann zu vertiefung?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Brauche Hilfe bei einem bash script

Beitrag von gms » 18.06.2008 08:56:49

mragucci hat geschrieben:Verwende einen Vergleichsoperator, keinen Zuweisungsoperator
obwohl der Thread als gelöst markiert wurde, muß ich das berichtigen. Hier wurde kein "Zuweisungsoperator" benutzt, sondern ein ganz normaler Stringvergleich nach dem POSIX Standard:
man bash hat geschrieben: string1 == string2
True if the strings are equal. = may be used in place of == for
strict POSIX compliance.
Zu dem oben genannten Fehler kommt es wenn die Variable leer ist, sobald die Variable einen Inhalt bekommt funktioniert diese Schreibweise auch:

Code: Alles auswählen

gms2 ~ # QUERY_STRING=""; if [ $QUERY_STRING = "test" ]; then echo true; else echo false; fi
bash: [: =: unary operator expected
false
gms2 ~ # QUERY_STRING="test"; if [ $QUERY_STRING = "test" ]; then echo true; else echo false; fi
true
gms2 ~ # QUERY_STRING="bla"; if [ $QUERY_STRING = "test" ]; then echo true; else echo false; fi
false
will man obigen Fehler vermeiden, kann man die Variable entweder quoten, oder den "conditional command" ( [[ expression ]] ) verwenden:

Code: Alles auswählen

gms2 ~ # QUERY_STRING=""; if [ "$QUERY_STRING" = "test" ]; then echo true; else echo false; fi
false
gms2 ~ # QUERY_STRING=""; if [[ $QUERY_STRING = "test" ]]; then echo true; else echo false; fi
false
Über den "conditional command" funktioniert dann z.B auch das "Pattern Matching"

Code: Alles auswählen

gms2 ~ # QUERY_STRING="test"; if [[ $QUERY_STRING == t* ]]; then echo true; else echo false; fi
true
gms2 ~ # QUERY_STRING="test"; if [[ $QUERY_STRING = t* ]]; then echo true; else echo false; fi
true
Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: (gelöst) Brauche Hilfe bei einem bash script

Beitrag von Duff » 18.06.2008 11:43:53

Mal wieder was gelernt :-)
Oh, yeah!

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: (gelöst) Brauche Hilfe bei einem bash script

Beitrag von Liffi » 18.06.2008 19:13:28

newland hat geschrieben:Kann mir einer ein Buch oder Seite empfehlen wo man bash script oder auch c Script lernen kann zu vertiefung?
Ich finde Shell Skript Programmierung von Patrick Ditchen ganz brauchbar.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: (gelöst) Brauche Hilfe bei einem bash script

Beitrag von Duff » 18.06.2008 19:32:18

Ich finde die Bücher von http://www.galileocomputing.de/ ganz gut.

Habe z.B. das Buch zur Shell-Programmierung (wovon es jetzt auch eine neue Auflage gibt) gekauft und durchgearbeitet.
Man kann es auch als Nachschlagewerk nutzen.
Oh, yeah!

Antworten