bash Zeichenketten vergleichen

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
malteklein
Beiträge: 71
Registriert: 08.04.2008 11:46:02

bash Zeichenketten vergleichen

Beitrag von malteklein » 14.06.2008 11:33:12

Ich will schauen ob en String == NULL ist.

Code: Alles auswählen

if [ $STR_1 = "" ];
then
...
if
gehlt leider nicht

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

Re: bash Zeichenketten vergleichen

Beitrag von gms » 14.06.2008 11:35:39

Code: Alles auswählen

if [ "$STR_1" = "" ]
oder besser:

Code: Alles auswählen

if [ -z "$STR_1" ]
Gruß
gms

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

Re: bash Zeichenketten vergleichen

Beitrag von Duff » 14.06.2008 14:18:48

In man test findest du die ganzen Test-Operatoren, wie z.B. -z.
-z ZEICHENKETTE
die Länge von ZEICHENKETTE ist Null
Oh, yeah!

malteklein
Beiträge: 71
Registriert: 08.04.2008 11:46:02

Re: bash Zeichenketten vergleichen

Beitrag von malteklein » 14.06.2008 15:21:24

Danke fuer die Hilfe.

Irgendwie verstehe ich in C++ mehr als in BASH.

malteklein
Beiträge: 71
Registriert: 08.04.2008 11:46:02

Re: bash Zeichenketten vergleichen

Beitrag von malteklein » 14.06.2008 15:27:51

Ich merke gerade dass es immer noch nicht funktioniert:
Ich will ein onlinescript machen. - Wenn die Internetverbindung getrennt wurde, neu einwaehlen.

Code: Alles auswählen

#!/bin/bash

echo "Ist Onlinevervindung aktiv?"

STR_ppp0=$(ifconfig |grep ppp0)
STR_ppp="";


if [ -z "$STR_ppp0" ];
then
        echo "  keine Internetzverbindung mehr..."
        pon dsl-provider
else
        echo "Verbindung ist aktiv"
fi

exit 0




Der Fehler wird daran liegen, dass unter cron keine text-ausgaben funktionieren, also dementsrpechen funktioniert das pipen auch nicht.

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

Re: bash Zeichenketten vergleichen

Beitrag von gms » 14.06.2008 16:02:44

malteklein hat geschrieben: Der Fehler wird daran liegen, dass unter cron keine text-ausgaben funktionieren, also dementsrpechen funktioniert das pipen auch nicht.
warum sollten unter cron keine text-ausgaben funktionieren ? Cron lenkt die Ausgaben, dh. die kommen nicht wie sonst auf Stdout,Stderr raus, aber das ist schon der einzige Unterschied. Auf das Pipen hat das auch keinen Einfluß.

Unnütze Ausgaben sollten in Cron-Scripten aber vermieden werden, Cron fühlt sich sonst veranlaßt diese zu loggen oder an den User per Mail zu verschicken:
malteklein hat geschrieben:

Code: Alles auswählen

#!/bin/bash

echo "Ist Onlinevervindung aktiv?"
die häufigste Ursache für Fehler in Cron-Scripts ist die unterschiedliche Einstellung der PATH Variablen, daher sollte man möglichst die Kommandos mit vollem Pfad aufrufen, z.B so:

Code: Alles auswählen

#!/bin/sh
if ! /sbin/ifconfig | grep ppp0 >/dev/null; then
        echo "  keine Internetzverbindung mehr..."
        /usr/bin/pon dsl-provider
fi
Gruß
gms

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

Re: bash Zeichenketten vergleichen

Beitrag von Duff » 14.06.2008 16:05:24

Und eventuell vorher noch die korrekten Profile-Einstellungen laden.
Oh, yeah!

Antworten