I’d like to be able to use the result of the last executed command in a subsequent command. For example,
$ find . -name foo.txt
./home/user/some/directory/foo.txt
Now let’s say I want to be able to open the file in an editor, or delete it, or do something else with it, e.g.
mv <some-variable-that-contains-the-result> /some/new/location
How can I do it? Maybe using some bash variable?
Update:
To clarify, I don’t want to assign things manually. What I’m after is something like built-in bash variables, e.g.
ls /tmp
cd $_
$_ holds the last argument of the previous command. I want something similar, but with the output of the last command.
Final update:
Seth’s answer has worked quite well. Couple of things to bear in mind:
- don’t forget to
touch /tmp/xwhen trying the solution for the very first time - the result will only be stored if last command’s exit code was successful
This is a really hacky solution, but it seems to mostly work some of the time. During testing, I noted it sometimes didn’t work very well when getting a ^C on the command line, though I did tweak it a bit to behave a bit better.
This hack is an interactive mode hack only, and I am pretty confident that I would not recommend it to anyone. Background commands are likely to cause even less defined behavior than normal. The other answers are a better way of programmatically getting at results.
That being said, here is the “solution”:
Set this bash environmental variable and issues commands as desired.
$LASTwill usually have the output you are looking for: