Kann nicht herausfinden, ob dies möglich ist, aber es wäre sicher bequem.Ich möchte die Ausgabe eines Bash-Befehls erhalten und interaktiv verwenden, um Konstruiere den nächsten Befehl in einer Bash-Shell. Ein einfaches Beispiel hierfür könnte wie folgt aussehen:Bash Capture-Ausgabe des Befehls als unfertige Eingabe für die Befehlszeile
> find . -name myfile.txt
/home/me/Documents/2015/myfile.txt
> cp /home/me/Documents/2015/myfile.txt /home/me/Documents/2015/myfile.txt.bak
Nun, ich tun konnte:
find . -name myfile.txt -exec cp {} {}.bak \;
or
cp `find . -name myfile.txt` `find . -name myfile.txt`.bak
or
f=`find . -name myfile.txt`; cp $f $f.bak
Ich weiß, dass. Aber manchmal müssen Sie etwas Komplizierteres tun, als nur eine Erweiterung zu einem Dateinamen hinzuzufügen, und anstatt mit $ {f %% txt} .text.bak usw. in Verbindung zu kommen, wäre es einfacher und schneller (wie Sie die Komplexität erhöhen und noch mehr), um einfach das Ergebnis des letzten Befehls in die Kommandozeile der interaktiven Shell einzufügen und die Editierschlüssel im Emacs-Stil zu verwenden, um das zu tun, was Sie wollen.
Also gibt es eine Möglichkeit, das Ergebnis eines Befehls in die interaktive Shell zurückzuleiten und dort hängen zu lassen. Oder alternativ, um es direkt zum Cut/Paste-Puffer zu leiten und es mit einer schnellen Strg-V wiederherzustellen?
Wenn Sie 'vi' Modus verwenden, ist' shell-expand-line' standardmäßig nicht an irgendwas gebunden, aber Sie können den Befehl 'bind' verwenden, um das zu beheben.Ich habe es an '*' gebunden (im normalen Modus von vi), also kann ich ESC- * drücken, um das zu tun. ('bind -m vi-Befehl '*: shell-expand-line'') –
Danke, das wird für mich funktionieren. Ich habe nicht die Tastatur in Xterm standardmäßig, aber ich kann es erstellen. Ich brauche nur die Ausgabe in der Befehlszeile, damit ich sie (ctrl-k) in meinen readline-kill-ring killen kann und dann ctrl zurückschreibe, wenn ich es brauche. – Colin
Übrigens, da ich ein Touchpad verwende, ist es sehr umständlich für mich, dies in der Maus zu machen. Es erfordert die Auswahl der vorherigen Zeile (halten Sie den Daumen gedrückt und ziehen Sie genau), gefolgt von der mittleren Maustaste (drei Finger gleichzeitig tippen). Ich frage mich, wie viele Stunden ich bei diesem Manöver verloren habe. – Colin