Shell: abfrage ob ein string in einer Datei vorhanden

Blackbenji

Lieutenant
Registriert
Nov. 2009
Beiträge
557
Hallo,

in einem pid file liegen mehrere strings.
ich möchte nun per funktion nachsehen, ob dieser string dort existiert, wenn ja, soll das script abbrechen, wenn nein, soll es weiter gehen.

fnFindTomcatName() {
if [ grep -n $tomcat tomcat.pid ]; then
echo Fehler
else
echo "ok"
fi
}

$tomcat wird vorher per eingabe abgefragt.

grep -n $tomcat tomcat.pid funktioniert jedenfalls in der shell, im script jedoch gibt es die meldung:

function.properties: line 26: [: too many arguments
ok


edit: sorry ich glaub das sollte in die programmierrecke ...
 
Zuletzt bearbeitet:
Du kannst diesen Ausdruck so nicht in der if [ .. ] einsetzen.
Siehe mal in der Dokumentation der Testbedingung nach (also von "[]").
Soweit ich weiß (bin etwas draußen aus der shell-Programmierung) kannst du dort mit $( <Dein Shell-Ausdruck> ) dies verwenden. Einfach mal testen.
z.B.

if [ $(wc -l /etc/file.txt) -gt 2 ]; then
echo "Mehr als zwei Wörter in file.txt..."
fi

Hoffe geholfen zu haben.
 
aus nem script geklaut und nicht getestet:
Code:
if (grep -n $tomcat tomcat.pid > /dev/null);
then
  echo "bla"
else
  echo "blubb"
fi
 
versuch mal das:

grep -qn $tomcat tomcat.pid
if [ $? -eq 0 ]; then
echo "hurra, gefunden"
else
echo "mist, war nichts"
fi

@rumbalotte:

beim Klauen aufpassen, wo man klaut.
Das Beispiel sieht sehr nach der c-shell oder der tc-shell aus
 

Ähnliche Themen

Zurück
Oben