変数を計算して他の変数に出力する

変数を計算して他の変数に出力する

私が知っている唯一の電卓は変数に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。シェルができます。整数算数:

rownum=$((nextnum+1))

またはより簡単で、次のようbashkshなります。

((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

関連情報