So, I'm trying to create a menu system in bash as a learning experience. I'm sure there are countless ways, and even "better" ways to do this, but what I've got is something like this...
echo " 2nd Menu ******** 1) command 2) command M) Main menu X) Exit program " read -p "Choose option >" opt if [ "$opt" -eq 1 ]; then commands elif [ "$opt" -eq 2 ]; then commands elif [[ "$opt" = [m,M] ]]; then main #calls the function main() elif [[ "$opt" = [x,X] ]]; then exit else echo "Invalid option" main fi
The script works for every option except the "X) Exit program". When I run "X" or "x" I get this error...
./acct-mgr.sh: line 10: [: x: integer expression expected ./acct-mgr.sh: line 12: [: x: integer expression expected Invalid option
This is baffling me! I'm pretty sure I'm using the correct comparison operator for each data type (-eq for integers and = for strings), coupled with the fact that EVERY option works EXCEPT that "x".
Any help is greatly appreciated. Thanks.
P.S. - Alternative ways of accomplishing the desired result is greatly appreciated, but even then I would like to know why this isn't working for my edification. Thanks again.