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

apa*_*jja 13 shell arithmetic bc calculator

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

nextnum从文件中的计数字符串中得到了变量:

nextnum=`grep -o stringtocount file.tpl.php | wc -w`
Run Code Online (Sandbox Code Playgroud)

让我们说nextnum价值是1。添加时1,它会变成2. 为了计算,我运行:

rownum=`$nextnum+1 | bc`
Run Code Online (Sandbox Code Playgroud)

但有错误:

1+1: command not found
Run Code Online (Sandbox Code Playgroud)

我只是在计算部分失败了。我试过改变反引号,但仍然无效。我不知道如何计算变量并将其输出到另一个变量。

man*_*ork 27

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

rownum=`echo $nextnum+1 | bc`
Run Code Online (Sandbox Code Playgroud)

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

rownum=$(echo $nextnum+1 | bc)
Run Code Online (Sandbox Code Playgroud)

但是没有必要bc,shell 能够进行整数运算:

rownum=$((nextnum+1))
Run Code Online (Sandbox Code Playgroud)

或者在bashand 中更简单ksh

((rownum=nextnum+1))
Run Code Online (Sandbox Code Playgroud)


Jul*_*ian 9

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

rownum=$((nextnum+1))
Run Code Online (Sandbox Code Playgroud)

这会稍微快一点。