Единственный калькулятор, который я знаю, это 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
Я просто не смог в расчетной части. Я попытался изменить backtick, но все еще не работает. Я понятия не имею, как рассчитать переменные и вывести его в другую переменную.
shell
arithmetic
bc
calculator
apasajja
источник
источник
Ответы:
Подстрока внутри
` `
должна быть действительной командой:Но предпочтительнее использовать
$( )
вместо` `
:Но в этом нет необходимости
bc
, оболочка умеет делать целочисленную арифметику:Или еще проще в
bash
иksh
:источник
Вы также можете использовать встроенную арифметику в bash:
который был бы немного быстрее.
источник
Абсолютно правильно и дополните предложенные решения, просто упомянув, как это должно было быть сделано в прежние времена, когда была доступна только Bourne-Shell, вот как это нравится:
источник
Я бы использовал (как упоминалось ранее)
rownum=$((nextnum+1))
или,((rownum=nextnum+1))
но если вы предпочитаете стандартную команду, вы можете использовать команду let, например,let rownum=$nextnum+1
источник
let
«стандартную команду» очень обманчиво.$((…))
является стандартным (POSIX) синтаксисом, тогда какlet
является расширением ksh (и bash, zsh).