I made an script that do some math, using bc and printf.
It worked well under cygwin which locale is en_US.UTF-8, but when I run it under linux, which locale is en_ES.UTF-8, it fails because it uses , as decimal separator. For example next expression fails:
avg=$(printf %.2f $(echo "scale=4; $val1/$val2" | bc -l ))
I found a solution. Precede the script by LC_ALL=C.UTF8:
LC_ALL=C.UTF8 ./script.sh [OPTIONS]
However, I think it would be better not to do that.
So, my question: Is there a way to change locale only inside the script, to avoid such kind of problems, regardless of locale set in user profile?