- Bash - the gold standard for shell scripting
- Python - general purpose object oriented language, easy to write, widely used but hard to maintain due to environment differences, language and library changes over time
- Golang - imperative compiled self-contained binaries, simple toolchain, smashes Python in portability, maintainability, build time etc.
- Perl - fast to write imperative code, stable, the gold standard for regex string processing, works everywhere and doesn't break every few years like Python
- Groovy - a better version of Java, with interactive REPL and some language construct conveniences. Hard to want to write in Java again after getting spoilt by Groovy
- Java - battle tested, but slower to develop in than the above languages
- Scala - was supposed to be the next Java but wasn't
- Kotlin - another next Java, we'll see
- Clojure - another JVM language
- R - old data analytics languages, matrices, awkward, but widely used and lots of libraries
- Expect - an extension of the Tcl language specialized in interactive text interface automation and keystroke control
Brilliant for automating systems which have no alternative but interactive timed text inputs.
Autoexpect - generates an expect script from an interactive session, tune from there
Expect has libraries in most languages.
For example, used Perl's Net::SSH::Expect
library to test iDRAC and iLO controllers
in check_ssh_login.pl
Add this to the top of an expect script to debug output:
exp_internal 1