I have a problem with a character. I think it’s a conversion problem between dos and unix.
I have a variable that is a float value.
When I print it with the echo command i get:
0.495959
But when I try to make an operation on that value with the bc command (I am not sure how to write the bc command).
echo $mean *1000 |bc
I get:
(standard_in) 1 : illegal character: ^M
I already use the dos2unix command on my .sh file.
I think it’s because my variable have the ^M character (not printed with the echo command)
How can i eliminate this error?
I don’t have Cygwin handy, but in regular Bash, you can use the
tr -dcommand to strip out specified characters, and you can use the$'...'notation to specify weird characters in a command-line argument (it’s like a normal single-quoted string, except that it supports C/Java/Perl/etc.-like escape sequences). So, this:will strip out carriage-returns on the way from
echotobc.You might actually want to run this:
which will modify
$meanto strip out any carriage-returns inside, and then you won’t have to worry about it in later commands that use it.(Though it’s also worth taking a look at the code that sets
$meanto begin with. How does$meanend up having a carriage-return in it, anyway? Maybe you can fix that.)