I'm creating a small calculator script and I've got stumbled on a strange bug. Everything seems to work but not when I input anything starting with
(. When I do that
if gives false and the code inside of
else executes. I've tried a lot of ways rewriting how should
"$input" =~ [-,+,*,/,\(,\)] look like but nothing worked. Do you have any idea why that's happening and how to solve this bug?
read -p "Input: " input
if [[ ! "$input" =~ ^[A-Za-z_]+$ && "$input" =~ ^[0-9] && "$input" =~ [-,+,*,/,\(,\)] ]]; then
(echo $input = $(($input))) 2>- || echo "Please, do not input ..."
echo "Please, do not input letters or other special symbols and type in only expressions."