Подстрока в ` `
должна быть сама допустимая команда:
rownum=`echo $nextnum+1 | bc`
Но предпочтительно для использования $( )
вместо ` `
:
rownum=$(echo $nextnum+1 | bc)
Но нет никакой потребности в bc
, оболочка может сделать целочисленную арифметику:
rownum=$((nextnum+1))
Или еще более простой в bash
и ksh
:
((rownum=nextnum+1))
Можно также использовать созданный в арифметике в ударе:
rownum=$((nextnum+1))
который был бы немного быстрее.
Я использовал бы (как был упомянут прежде), rownum=$((nextnum+1))
или ((rownum=nextnum+1))
но если Вы предпочитаете стандартную команду, можно использовать команду, которой позволяют, как let rownum=$nextnum+1
let
“стандартная команда” является очень вводящей в заблуждение. $((…))
является стандартным (POSIX) синтаксис тогда как let
ksh (и удар, zsh) расширение.
– Gilles 'SO- stop being evil'
09.10.2012, 02:07
Абсолютно правильный и завершенный предложенные решения, только для упоминания способа, которым это должно быть сделано в старину, когда только Оболочка Bourne была доступна это - способ, которым этому нравится он:
rownum=`expr $nextnum + 1`