Discussion:
if then ohne anweisung
(zu alt für eine Antwort)
Hans Beck
2005-06-01 08:35:13 UTC
Permalink
hallo shell gurus
ich möchte in einer if then else anweisung den if then teil ohne anweisung
durchlaufen. wie gelingt mir das:

if echo "$Test" | fgrep -q "abcd"; then
else
echo "else verzeigung"
fi

also nach der if then abfrage möchte ich ohnen einen command auszuführen
direkt in die else anweisung. das voliegende beispiel meldet immer einen
fehler.

gruss und dank
hans
Thomas Wolf
2005-06-01 08:57:52 UTC
Permalink
Post by Hans Beck
hallo shell gurus
ich möchte in einer if then else anweisung den if then teil ohne anweisung
if echo "$Test" | fgrep -q "abcd"; then
else
echo "else verzeigung"
fi
also nach der if then abfrage möchte ich ohnen einen command auszuführen
direkt in die else anweisung. das voliegende beispiel meldet immer einen
fehler.
Ohne nachgelesen zu haben ob zu recht oder nicht, manche shells moegen
keine leere 'list'. Mach folgendes:

if echo "$Test" | fgrep -q "abcd"; then :
else
echo "else verzeigung"
fi

Das ':' ist ein 'null command', muesste ueberall klappen.

Gruesse
Thomas
Alexander Skwar
2005-06-01 09:00:23 UTC
Permalink
Post by Hans Beck
hallo shell gurus
ich möchte in einer if then else anweisung den if then teil ohne anweisung
durchlaufen.
Geht nicht.
Post by Hans Beck
also nach der if then abfrage möchte ich ohnen einen command auszuführen
direkt in die else anweisung. das voliegende beispiel meldet immer einen
fehler.
Ja.

If true; then
:
else
echo Hier ist false.
fi

Alexander Skwar
--
Moore's Constant:
Everybody sets out to do something, and everybody
does something, but no one does what he sets out to do.
Carsten Neumann
2005-06-01 09:02:49 UTC
Permalink
Post by Hans Beck
if echo "$Test" | fgrep -q "abcd"; then
else
echo "else verzeigung"
fi
Liest Du eigentlich auch die Antworten auf Deine Postings?

Da Du eine ksh benutzt, ist die obige Bedingung "echo | fgrep"
mindestens grober Unfug.

Wenn Du den String direkt mittels [[...]] vergleichst, kannst Du die
Abfrage auch umkehren, d.h. auf Ungleichheit testen. Dadurch sparst Du
Dir in if-then-else-fi den sinnlosen Zweig.

Ansonsten kannst Du natürlich, da nach dem then _immer_ eine Anweisung
stehen _muss_, ein NOP einfügen (Welches Kommando das ist, lasse ich als
Übungsaufgabe :-) aber man kann sich ja auch einen Knopf an die Backe
nähen ...
Post by Hans Beck
also nach der if then abfrage möchte ich ohnen einen command auszuführen
direkt in die else anweisung. das voliegende beispiel meldet immer einen
fehler.
Dein posting style ist genau so schlecht wie Deine Shell Kenntnisse.
Wenn Du jemanden um Hilfe bittest (die Du dann anscheinend nicht
annimmst), solltest Du Dich um halbwegs lesbare und syntaktisch korrekte
Sätze bemühen.

Ciao, Carsten.
Heike C. Zimmerer
2005-06-01 09:09:08 UTC
Permalink
Post by Hans Beck
ich möchte in einer if then else anweisung den if then teil ohne anweisung
Du könntest ":" als Kommando im if-Zweig nehmen. Aber warum
invertierst du nicht einfach das Ergebnis deiner Pipe:

| if ! echo "$Test" | fgrep -q "abcd"; then
| echo "Test fehlgeschlagen"
| fi

Das fände ich weniger von hinten durch die Brust ins Auge, ist aber
sicher Geschmackssache.

Gruß,

Heike
Lars Klemstein
2005-06-01 09:08:35 UTC
Permalink
Post by Hans Beck
ich möchte in einer if then else anweisung den if then teil ohne anweisung
if echo "$Test" | fgrep -q "abcd"; then
else
echo "else verzeigung"
fi
wie wärs stattdessen mit

if ! echo "$Test" | fgrep -q "abcd"
then
echo "else verzeigung"
fi

Gruß,
Lars Klemstein
Patrick Seemann
2005-06-01 18:20:01 UTC
Permalink
Post by Hans Beck
if echo "$Test" | fgrep -q "abcd"; then
else
echo "else verzeigung"
fi
In diesem Fall:

if echo "$Test" | fgrep -qv "abcd"; then
echo "'else' verzeigung"
fi

Gruss, Patrick
--
Sometimes I think we're alone.
Sometimes I think we're not.
In either case,
the thought is staggering.
Henning Hucke
2005-06-02 09:57:48 UTC
Permalink
[...]
ich m=F6chte in einer if then else anweisung den if then teil ohne anweis=
ung
=20
if echo "$Test" | fgrep -q "abcd"; then
else
echo "else verzeigung"
fi
[...]
Wir unterstellen einfach mal stillschweigenderweise, dass Du mit der=20
bash arbeitest.

Warum mit dem Gewehr durch die Brust ins Auge schiessen!?

Was ist an

man -P "less +'/\\! expression'" bash

so schwer zu finden!?

BTW: [X] Du willst Deine Postings korrekt MIME-Deklarieren!

MfG Henning Hucke
--=20
Even the smallest candle burns brighter in the dark.

Loading...