Shortcuts in your shell
Posted Wed, 28 Mar 2007
For instance, I have one command that runs mplayer in a loop, in case the connection drops:
while true; do mplayer -cache 48 -prefer-ipv4 http://foo.com/streamthing; doneNormally, I might use
!whileto re-invoke this command. However, I have lots of oneliners in my shell history that start with
while. So, let's hack around it:
MPLAYER= while true; do mplayer -cache 48 -prefer-ipv4 http://foo.com/streamthing; doneThis will set the environment variable 'MPLAYER' to an empty string and pass it to the while subshell (and thus mplayer), but since MPLAYER isn't used as an environment variable in mplayer, we won't break anything.
Now, any time I want to rerun this specific command, I can just do
!MPLAYER and we're all set. Doing this is *extremely* useful and
allows you to define alias-like procedures in real-time, assuming you have a
persistent shell history. If you don't have a persistent shell history, set it
up, as it's useful for more things than the above hack.