计算变量,并将其输出到另一个变量

计算变量,并将其输出到另一个变量

我唯一知道的计算器是bc.我想添加1到一个变量,然后输出到另一个变量。

nextnum通过计算文件中的字符串得到了变量:

nextnum=`grep -o stringtocount file.tpl.php | wc -w`

假设nextnum值为1。当加上 时1,就会变成2。为了计算,我运行:

rownum=`$nextnum+1 | bc`

但出现错误:

1+1: command not found

我刚刚在计算部分失败了。我尝试过更改反引号但仍然不起作用。我不知道如何计算变量并将其输出到另一个变量。

答案1

里面的子字符串本身` `必须是有效的命令:

rownum=`echo $nextnum+1 | bc`

但最好使用$( )而不是` `

rownum=$(echo $nextnum+1 | bc)

不过没必要bc,shell就可以做到整数算术:

rownum=$((nextnum+1))

或者更简单的是bashand ksh

((rownum=nextnum+1))

答案2

您还可以在 bash 中使用内置算术:

rownum=$((nextnum+1))

这会稍微快一些。

答案3

绝对正确并完成建议的解决方案,只需提及以前只有 Bourne-Shell 可用时必须完成的方式,这就是它喜欢的方式:

rownum=`expr $nextnum + 1` 

答案4

我会使用(如前面提到的)rownum=$((nextnum+1))或者((rownum=nextnum+1))但如果您更喜欢标准命令,您可以使用 let 命令,例如let rownum=$nextnum+1

相关内容