当我尝试执行以下代码行时
#!/bin/sh
a=20
b=10
sum=`expr $a + $b` #(i thought i did wrong with ` so i put (') also to check but its becomes literals which gets printed as usual)
echo $sum
我收到了错误
expr:非整数参数
有人可以告诉我这段代码出了什么问题,因为几乎每个教程都提到了在Shell脚本中进行算术的同样的事情。
编辑:对于那些正在使用CYGWIN终端FYI的人。有什么区别吗?
编辑2:正如@ghoti评论中所提到的,Windows文件以/ r / n结尾,而unix以/ n结尾。因为我在Unix平台上执行时在Windows平台上编写脚本,所以当我' m删除后退给它发错误
$'20 \ r':找不到命令
所以肯定$ a变为20但 \ r 导致错误。那么任何想法如何缩短这个错误?
答案 0 :(得分:0)
您的原始代码应该可以正常运行。即使为了确保您没有任何引号问题,您可以稍微修改它:
#!/bin/sh
a=20
b=10
sum=$(expr $a + $b)
echo $sum
答案 1 :(得分:0)
我有类似的错误。 我做了以下并解决了问题:
转到记事本++中的“编辑”,然后选择“ EOL转换”,然后选择“ UNIX / OSX格式”