Ich würde gerne rennen
something > file
auf einem Remote-System über ssh, aber wenn ich laufe
ssh host something > file
Die Umleitung wird lokal als ausgeführt ssh etc > file
Ich habe es stattdessen mit '
oder ''
oder dd
oder mit einer Pfeife versucht |
, aber ich kann es nicht zum Laufen bringen. Wie geht das?
ssh
pipe
io-redirection
Franziskus
quelle
quelle
Antworten:
Versuchen:
Hier ist eine erfundene Demonstration einer Möglichkeit, mit Umleitungen, Pipes und Anführungszeichen umzugehen:
Die Pipe und die Umleitung werden maskiert, anstatt in einem gesamten äußeren Satz von Anführungszeichen enthalten zu sein, wodurch die Notwendigkeit verringert wird, eine Ebene von Anführungszeichen zu maskieren. Die einfachen Anführungszeichen für den AWK-Befehl sind durch die sie umgebenden doppelten Anführungszeichen geschützt. Der Dateiname könnte auf die gleiche Weise geschützt werden, aber hier zeige ich, wie die einfachen Anführungszeichen die doppelten Anführungszeichen und das Escape schützen.
quelle
sh -c
Teil nicht.$1
ist geschützt, von der Shell als Shell-Variable gesehen zu werden. Aber es wäre nicht so, wenn die Reihenfolge der Anführungszeichen umgekehrt wäre.Noch einfacher, anstatt:
tun:
quelle
Die vorgeschlagene Lösung funktioniert auch mit Rohren
quelle