I need some advice. I'm a linux network geek, not a programmer by trade. I have written a bunch of shell script that carry out network testing* that I want to take to the "next level" and ultimately make available to a public audience. I'm not familiar with any particular higher level language so have no preferences.
The network testing scripts, in summary, cycle through if/else/while/then loops of parameters (BW, packet size, IP address), SSH to a remote host, run a remote command such as ping, mtr or iperf then parse the results from the command into a nice looking table in a text file.
So... by "next level" I mean:
- Presenting a more-interactive UI to the user instead of a list of questions to grab variables, enable/disable the various tests from running.
- Improved error-checking over the data the user enters e.g. an IP address is actually in IP address format.
- Improved error-checking over the remote commands being run e.g. don't halt if the remote host isn't available via SSH, confirm that the remote command ran successfully or not.
The help I'm looking for is advice on a language (yeah, I know I probably just started a religious war) and document resources that can help me convert the variable gathering, while/then, if/else loops & ssh remote commands in my shell scripts into that language.
I'm also open to advice that sticking with shell is ok and that I'm overlooking some of the more obscure features of the linux command line that can improve them.
*-If you were at the Cambridge Raspberry Jam then yes, that was me in the final talk of the day, talking inexpertly about testing mobile & Wi-Fi networks via the Raspberry Pi.