Shell 添加两个数字

Shell 添加两个数字,shell,Shell,我试图计算文件的数量,我将这些文件ftp到不同的服务器。我的代码如下: #!/bin/sh cnt=0 cnt=`expr $cnt+1` echo $cnt 它给了我一个结果: 0+1 我需要它作为1 您能告诉我代码有什么问题吗?您可以使用$(())进行计算。例如,像这样: #!/bin/sh cnt=0 cnt=$((cnt + 1)) echo $cnt #!/bin/sh cnt=0 cnt=`expr $cnt + 1` ech

我试图计算文件的数量,我将这些文件ftp到不同的服务器。我的代码如下:

#!/bin/sh
cnt=0    
cnt=`expr $cnt+1`    
echo $cnt 
它给了我一个结果:

0+1
我需要它作为
1


您能告诉我代码有什么问题吗?

您可以使用
$(())
进行计算。例如,像这样:

#!/bin/sh
cnt=0    
cnt=$((cnt + 1))    
echo $cnt 
#!/bin/sh
cnt=0    
cnt=`expr $cnt + 1`    
echo $cnt 

取自您可能需要使用
$(())
进行计算。例如,像这样:

#!/bin/sh
cnt=0    
cnt=$((cnt + 1))    
echo $cnt 
#!/bin/sh
cnt=0    
cnt=`expr $cnt + 1`    
echo $cnt 

取自
expr
,与
$(())
不同,需要接收单独的shell参数。因此,这将起作用:

cnt=`expr $cnt + 1`
这也将如此

cnt=$((cnt+1))

expr
$(())
不同,需要接收单独的shell参数。因此,这将起作用:

cnt=`expr $cnt + 1`
这也将如此

cnt=$((cnt+1))

错误在于“+”号前后没有空格。
尝试使用空格包围数学运算符,如下所示:

#!/bin/sh
cnt=0    
cnt=$((cnt + 1))    
echo $cnt 
#!/bin/sh
cnt=0    
cnt=`expr $cnt + 1`    
echo $cnt 

错误在于“+”号前后没有空格。
尝试使用空格包围数学运算符,如下所示:

#!/bin/sh
cnt=0    
cnt=$((cnt + 1))    
echo $cnt 
#!/bin/sh
cnt=0    
cnt=`expr $cnt + 1`    
echo $cnt 

有趣的是,我认为
sh
不允许
((cnt++)
,不像
bash
。我只是测试了一下,是的,是的+1用于各种解决方案。@fedorqui有趣!当我看到你的解决方案时,我突然怀疑我自己的解决方案并重试:-)有趣的是,我认为
sh
不允许
((cnt++)
,而不像
bash
。我只是测试了一下,是的,是的+1用于各种解决方案。@fedorqui有趣!当我看到您的解决方案时,我突然怀疑我自己的解决方案并重试:-)这段代码给出了一个错误:第6行的语法错误:cnt=$unexpected@digioleg54如果使用
cnt=$($cnt+1))
会怎么样?也就是说,
$(())
表达式中的
$cnt
。此代码在第6行给出了一个错误:语法错误:cnt=$unexpected@digioleg54如果使用
cnt=$($cnt+1))
会怎么样?也就是说,
$(())
表达式中的
$cnt