Вычислите переменную и произведите ее к другой переменной

Вы могли бы попробовать -e опция.

9
09.10.2012, 02:06
4 ответа

Подстрока в ` ` должна быть сама допустимая команда:

rownum=`echo $nextnum+1 | bc`

Но предпочтительно для использования $( ) вместо ` `:

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

Но нет никакой потребности в bc, оболочка может сделать целочисленную арифметику:

rownum=$((nextnum+1))

Или еще более простой в bash и ksh:

((rownum=nextnum+1))
21
27.01.2020, 20:04

Можно также использовать созданный в арифметике в ударе:

rownum=$((nextnum+1))

который был бы немного быстрее.

7
27.01.2020, 20:04

Я использовал бы (как был упомянут прежде), rownum=$((nextnum+1)) или ((rownum=nextnum+1)) но если Вы предпочитаете стандартную команду, можно использовать команду, которой позволяют, как let rownum=$nextnum+1

1
27.01.2020, 20:04
  • 1
    Вызов let “стандартная команда” является очень вводящей в заблуждение. $((…)) является стандартным (POSIX) синтаксис тогда как let ksh (и удар, zsh) расширение. –  Gilles 'SO- stop being evil' 09.10.2012, 02:07

Абсолютно правильный и завершенный предложенные решения, только для упоминания способа, которым это должно быть сделано в старину, когда только Оболочка Bourne была доступна это - способ, которым этому нравится он:

rownum=`expr $nextnum + 1` 
2
27.01.2020, 20:04

Теги

Похожие вопросы