rsh: für Shell Krebs

Post Reply
Message
Author
LBS

rsh: für Shell Krebs

#1 Post by LBS »

Hi,

habe folgende Frage:

Beim aufruf einer remoteshell in einem Skript hab ich anscheinend beim Thema Stdout verpennt <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#! /usr/bin/ksh
rsh REMOTEHOST "ps -ef| grep -v grep |grep \"ora_snp._INSTANCE\" |awk '{print $2}'"
</font><hr></pre></blockquote>

Bei der Ausgabe wird der awk hier anscheinend nicht auf meinem lokalen Host berücksichtigt und ich bekomme immer die ganze Prozessliste, wieso???

<b>ABER</b>
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#! /usr/bin/ksh
rsh REMOTEHOST "ps -ef| grep -v grep |grep \"ora_snp._INSTANCE\" |awk '{print $2}'"
</font><hr></pre></blockquote>

funktioniert und ich bekomme nur die Prozess-ID (wie gewünscht)

Hauptsache es klappt, aber mich würde es interessieren wieso, kann mir hier jemand nachhilfe in Stdout geben <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

???

cu

LBS

Re: rsh: für Shell Krebs

#2 Post by LBS »

immer dieses Drag´n´Drop...
nach dem ABER heißt es

<b>ABER</b>
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#! /usr/bin/ksh
rsh REMOTEHOST "ps -ef| grep -v grep |grep \"ora_snp._INSTANCE\"" |awk '{print $2}'
</font><hr></pre></blockquote>
das abschließende " steht vor dem awk

Jochen

Re: rsh: für Shell Krebs

#3 Post by Jochen »

Die Shell evaluiert die Zeile zweimal: Einmal auf dem lokalen Rechner die Shell, die Deine Eingabe entgegennimmt und einmal die Shell auf REMOTEHOST, die Deine Kommandos tatsächlich ausführen soll. Daran wird das Problem liegen - die zweite Shell bekommt vielleicht das $2 vom awk zu sehen, ersetzt es durch nichts, und der awk sieht nur noch das print-Kommando ohne Argumente. Damit gibt er jede Eingabezeile unverändert aus.

Probier mal folgendes:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
rsh REMOTEHOST 'ps -ef| awk \<!--no-->'/ora_snp._INSTANCE/ {print $2}\<!--no-->''
</font><hr></pre></blockquote>

So sollte die Kommandofolge unverändert an der Remote-Shell ankommen und das awk-Programm noch gequotet sein.

Jochen

Post Reply