More and more often I come across a scenario where I need to repeat the shell command until it succeeds. Here are a couple of examples:
Reboot a server. Try to remotely login to it via ssh. This fails until the server actually boots up. Keep trying until connected.
Start an application that writes to the log file. Run “tail -f some.log” to watch the log messages. This fails if the log file does not exist yet. Keep trying until the application creates the log file and writes something into it.
Sure, I can always press the up arrow key and Enter, to repeat the last command from the history. But it is a tiny bit annoying.
Today I came across this little trick, that solves the problem. Add the following function to your .bashrc:
CMD=$(fc -ln | tail -n 2 | head -n 1)
echo "repeating until success: $CMD"
Now you can run “rpt” to repeat the latest command until it succeeds.
“The Book of Secret Knowledge” is a collection of awesome lists, manuals, blogs, hacks, one-liners, cli/web tools and more. It is intended for everyone and anyone – especially for System and Network Administrators, DevOps, Pentesters or Security Researchers.
If you’ve ever written a bash script with variables, and know that it wasn’t your last one, I promise you, you’ll love this wiki page. It covers a whole lot of different ways to expand and manipulate variable values in bash, all on a single, conveniently organized page.
The Ultimate Plumber, or up for short, is an excellent interactive tool for anyone who is building complex command sequences for processing text on the Linux command line. If you are a frequent user of grep, sort, cut, awk, sed, and other similar commands, have a look at this demo. I’m sure up will save a tonne of time once you get a hang of it.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.