2012-07-11 4 views
8

Gibt es eine Möglichkeit, schnell (z. B. über eine Tastenkombination usw.) auf die Ausgabe der Ausgabe des vorherigen Befehls zu verweisen, die in stdout geschrieben wurde?Referenz stdout (d. H. Ausgabe des vorherigen Befehls) schnell in bash?

Zum Beispiel, wenn ich dies tue:

which rails 

und es kehrte /usr/local/bin/rails und dann wollte ich diese Datei in Textmate öffnen, ich könnte die Ausgabe wie folgt neu eingeben:

mate /usr/local/bin/rails 

aber gibt es eine Möglichkeit, die Ausgabe schnell zu referenzieren, ohne sie erneut eingeben zu müssen?

HINWEIS: Ich bin mir bewusst, dass ich nur mate $(which rails) tun kann, aber ich bin speziell auf Stdout Referenz.

+2

Nein, soweit Bash betroffen ist. Es ist möglicherweise im Zurückspeicherpuffer Ihres Terminals verfügbar (z. B. "Bildschirm"). –

+0

'Mate $ (!!)' vielleicht. – ephemient

+0

!! hat nur den Eingang, nicht den Ausgang, der Ausgang wird nirgendwo außer im Terminalpuffer gespeichert. – pizza

Antwort

-1

Man konnte immer den Befehl in Backticks laufen:

mate `which rails` 

Ich muss allerdings sagen, dass es fühlt sich ein wenig, äh, riskant. Was ist, wenn Ihr PATH manipuliert wurde, so dass eine andere Version der Schienen als das, was Sie wirklich benötigt, zurückgibt? Was ist, wenn nichts zurückgibt? Achte also darauf, alle diese Fehlerfälle zu schließen, oder vermeide sie irgendwie (zB den Pfad zu Rails aus einer Konfigurationsdatei zu lesen und ein Tool zu schreiben, das diese Konfigurationsdatei für dich erstellt).

4

Ich benutze Backticks mit Geschichte Referenz:

$ which rails 
/usr/local/bin/rails 
$ mate `!!` 

Eigentlich mein Editor (ein Skript Gvim Start) ist aliased zu e, so sieht es noch kürzer:

$ e `!!` 

und man kann immer an einen Hotkey binden (siehe bash man page für bind Befehl und readline support).

Auch, wenn Sie schneiden Puffer (Auswahl mit einer Maus in einer X-Anwendung), einen Hotkey für so etwas wie die unten verwenden können, könnte nützlich sein:

$ e $(xclip -out) 

Der Befehl den Editor wie oben beginnt mit was auch immer im Schnittpuffer auf der Kommandozeile war. Da viele Pfade mit nur einem Doppelklick ausgewählt werden können, kann ein ausgewählter Pfad sehr schnell bearbeitet werden.