Get User Input (Shell Agnostic)
function getUserInput () {
if [ $# -gt 1 ] ; then
echo "Usage example: $0"
echo "Usage example: $0 -hidden"
return
else
if [ $# -gt 0 ] ; then
local arg=$(echo "$1" | tr '[:upper:]' '[:lower:]')
fi
if [ -n "$arg" ] && [ "$arg" == "help" ] ; then
echo "Usage example: $0"
echo "Usage example: $0 -hidden"
return
elif [ -n "$arg" ] && [ "$arg" == "-hidden" ] ; then
# Use `ps -p $$` to determine shell (e.g. zsh / bash)
# Then craft the correct `read` command` for shell environment
ps -p $$ -o cmd= | grep --color=auto zsh > /dev/null && \
read -s USER_INPUT?"Enter your input (hidden): " || \
read -s -p "Enter your input (hidden): " USER_INPUT
echo
else
ps -p $$ -o cmd= | grep --color=auto zsh > /dev/null && \
read USER_INPUT?"Enter your input: " || \
read -p "Enter your input : " USER_INPUT
fi
if [ -n "$USER_INPUT" ] ; then
export "USER_INPUT" && echo '[+] User input exported to global variable $USER_INPUT'
fi
return
fi
}