Hi,
ungetestet mal ein paar anmerkunen von mir.
d4rkm3n hat geschrieben:hallo,
Code: Alles auswählen
schalter="ps ax | grep wget | sed -n '/^grep/p'"
if [ schalter = wget ]
then
echo true
else
echo false
fi
In der ersten Zeile beleg'st du die Variable schalter mit dem
String "ps ax | grep wget | sed -n '/^grep/p'", das ist doch sicher nicht das was du willst. Zur Kontrolle setze ein echo $schalter ein. Was du willst ist das Ergebnis der Pipe, dazu könntest du
Code: Alles auswählen
schalter=$(ps ax | grep wget | sed -e '/^grep/p')
oder
schalter=`ps ax | grep wget | sed -e '/^grep/p'`
verwenden (zweite Zeile = Backticks (Accentegraph))
Wenn du anstelle von "sed -n" "sed -e" verwendest, geht's. Wobei du dir im klaren sein musst, das die komplette Zeile aus dem ps Output, also incl. der URL die du mit wget gerade aufgerufen hast, in schalter landet.
Also wird das folgende Vergleichen so auch nichts geben, da in schalter wahrscheinlich wesentlich mehr steht als nur der String "wget".
Dein if-Konstrukt ist so auch Kaese, du möchtest wissen ob die Variable schalter den Wert wget enthaelt, dann:
Die Anführungszeichen um die Variablen sind nicht unbedingt noetig, ich verwende sie um damit irreführende Fehlermeldungen zu vermeiden, wenn eine Variable leer ist, dann wirft dir die Shell so was wie "nicht genung Parameter ubergeben", da ich darueber oft fast verzweifelt bin, kommen Variablen jetzt bei mir an der Stelle in Anfuehrungszeichen.
Wenn's nicht hilft, nicht genug war, ... einfach weiter fragen.