I hhhhhhhhaaaaaattttteeee being a monkey that just pushes a button. There’s always a better (and cheaper) way to restart a system than to have a human push a button to restart a system. God gave us computers just for that reason!
We have an environment that treats the person running the restart command as someone that is not familiar with running the stop.sh and start.sh scripts. To get to this point in this environment requires a huge amount of IT experience, but for whatever reason the stop/start command requires a crap-ton of hand-holding.
I’m not in charge of this system, but during an on-call I had to be the monkey that pushes the stop/start buttons and follow-along with the series of very basic questions. Eff that, surely it can be scripted, but “impossible” replied my compadre, it cannot because the stop/start requires you to enter some usernames, passwords, numbers, and a prostate exam.
That’s bush league, there has to be a better way that can remove me from the process, sure enough, there is a cool feature in Unix that allows a line-separated list file to be passed to a script. An hour later, this is what was produced.
Test file that mimics the system stop/start interactive commands:
admin@server01:/tmp> cat intro.sh #!/bin/bash # Ask the user for their name echo Give me your number read varname echo Provied number: $varname echo Give me your username read varname echo Username: $varname echo Give me your password read varname echo Password: $varname echo 2 Give me your username read varname echo Username: $varname echo 2 Give me your password read varname echo Password: $varname echo Sleeping... sleep 10 echo Done sleeping. echo Press 7 to exit read varname echo You have entered: $varname
Here’s the input file that correlates to the questions being asked
admin@server01:/tmp> cat input.txt 1 user1 pwd1 usr2 password2 7
Here’s what the execution of the file looks like
admin@server01:/tmp> cat input.txt | ./intro.sh Give me your number Provied number: 1 Give me your username Username: user1 Give me your password Password: pwd1 2 Give me your username Username: usr2 2 Give me your password Password: password2 Press 7 to exit You have entered: 7
As long as you know that the input from the user is the same order every time, you can use this method to “cat” a file of options to the script.