Resultat von entferntem Unix Script Aufruf auswerten

K

KrustyDerClown

Grünschnabel
Hallo Zusammen,

ich habe folgenden Aufruf in meinem Script auf Server myServer1:

ssh -o IdentityFile=/home/.ssh/s_user s_test2@kippol1 "cd /home/tmp ; ls -t test*.rdy|tail -1;"

Wie kann ich das Ergebnis von meinem "ls" Befehl auswerten und das Ergebnis in meinem Script auf myServer1 nutzen?

Kann mir hier jemand helfen? Geht das überhaupt?

Vielen Dank vorab!

Viele Grüße
Oliver
 
Edit:
Code:
ssh -o IdentityFile=/home/.ssh/s_user s_test2@kippol1 'cd /home/tmp ; ls -t test*.rdy|tail -1;exit  ${PIPESTATUS[0]}'; echo $?
 
Zuletzt bearbeitet von einem Moderator:
Edit:
Code:
ssh -o IdentityFile=/home/.ssh/s_user s_test2@kippol1 'cd /home/tmp ; ls -t test*.rdy|tail -1;exit  ${PIPESTATUS[0]}'; echo $?

Funktioniert bei mir leider nicht.

Wenn ich es von der Syntax her so lasse mit einfachem Hochkomma (') dann erhalte ich:

PIPESTATUS: Undefined variable

Wenn ich die Syntax so belasse wie oben und ergänze "nur" ${PIPESTATUS[0]} dann erhalte ich keine unterschiedlichen Ergebnisse im Ergebnis.

No match
0

oder

test1.rdy
0

Ziel ist es herauszufinden (und zurückzugeben) ob eine Ready Datei vorhanden ist.

Viele Grüße
Oliver
 
Dann benutzt du auf dem entfernten Rechner keine bash.
Entweder packst du die Kommandozile in ein Bash Skript, oder du schaust dir selbst an, wie man den Pipe-Status bei der Shell deiner Wahl abfragen kann.
Die Hochkommata sind übringens wichtig. Wenn du anführungszeichen verwendest, wird das lokale Skript versuchen, die PIPESTATUS Array auszuwerten. Das ist jedoch ja nicht das, was gewollt ist und dabei würde nur Humbug rauskommen.

MfG

Schard
 
Hi,

du kannst ja mal versuchen, dein bisheriges Kommando einfach in backticks `...` (oder, wenn lokal bash, in $(...)) zu packen (und die Fehlerausgabe, die ls erzeugt, wenn keine solchen Dateien existieren ins Nirvana zu jagen). Das gibt dann etwas wie
Code:
OLDEST=`ssh -o IdentityFile=/home/.ssh/s_user s_test2@kippol1 "cd /home/tmp ; ls -t test*.rdy 2>/dev/null | tail -1"`
[ "$OLDEST" ] && echo Datei existiert || echo "Keine *.rdy-Dateien in /home/tmp auf kippol1"

Gruss, A.
 

Ähnliche Themen

Rückgabe eines Befehls

Last mit etc/passwd anzeigen lassen

Mein erstes größeres Skript.

Xubuntu - AVR32-linux crosscompile sqlite

HP PSC 2175 - CUPS druckt nicht

Zurück
Oben