这是给我带来麻烦的简单命令-
echo hafsda sfsdfdsfs $ymn $ymx $range
此命令的输出即将到来-
2.568 sfsdfdsfs 86.72
ymn = 86.72
ymx = 89.28
和range = 2.56
所在的位置。这仅在我使用变量时发生。以下命令可以正常工作-
echo hafsda sfsdfdsfs 1 2 $range
此外,如果我尝试直接在终端中运行该命令,第一个命令也可以正常工作。这只是脚本。我也尝试使用printf,但是遇到了类似的结果。
我什至不知道要用谷歌来解决这个问题。我根本无法理解正在发生的事情。那么,这里发生了什么?这是可重现的还是仅仅是我系统上的一些错误?如果是,那可能是什么问题?
答案 0 :(得分:4)
您的脚本可能具有DOS样式的CRLF行结尾。我怀疑您实际上有ymn="86.72\r"
ymx="89.28\r"
和range="2.56\r"
。您可以使用
echo hafsda sfsdfdsfs $ymn $ymx $range | od -c
您可以使用dos2unix
或sed -i 's/\r$//
script.sh`修复脚本。
确保更改文本编辑器的设置时不要使用unix行尾。