On Thu, May 14, 2009 at 10:55:35AM EDT, Dotan Cohen wrote: > I am using a Debian-based distro (Ubuntu). Often I need to use the > output of one terminal command as the input for another. A classic > example is the which command: > $ which firefox > /usr/bin/firefox > $ > > Now, I would like to use that output as input, to start firefox. Other > than manually typing it in, is there a way for the user to use the > output directly? > > Another example is when the OS lets the user know that she needs to > install a program and gives her the command to install it: > $ ekiga > The program 'ekiga' is currently not installed. You can install it by typing: > sudo apt-get install ekiga > bash: ekiga: command not found > $
Off-hand, the only thing that comes to mind is using "history -s" to add the command's output to the bash session's history list so that you can retrieve it via Ctrl-P (or up-arrow) and use the readline editor to "extract" the actual command: $ history -s $(ekiga) To make things a bit more useable, maybe there's a way to bind a key combo to a bash function that would do the above for _any_ command: $ ekiga + Ctrl-whatever .. would execute: $ add-output-to-history ekiga With the bash function coded something like: add-output-to-history () {history -s $($*)} # UNTESTED !! Since this ugly hack would seriously pollute the bash session's history list, you would need to write a program/script that runs automaticaly when exiting the bash session and removes all the crap before it gets appended to the ~/.bash_history file. > In contrast to the "which" example, the text that the user needs is > buried in the output. Is there a way to use it anyway, without > retyping (and without using the mouse, which I often do not have). For stuff like that where the output is totally unpredictable, I doubt anything beats the flexibility of gnu/screen's copy/paste mechanism. :-) CJ -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org