2015-05-22 9 views
-1

Я хочу увеличить var upPCs на каждый раз каждый раз, когда я иду через инструкцию if.Увеличение значения переменной bash

upPCs= 0; 

if [ $? -eq 0 ]; then 

$upPCs ++; 

fi 

Это не работает.

+3

Вы можете использовать: '((upPCs ++))' в bash. – anubhava

+0

Вы можете попробовать 'upPCs = $ upPCs + 1;' – ForceBru

+0

Спасибо, он работает –

ответ

0

Bash (и другие оболочки) не допускают пробелы вокруг знака равенства. Полуколона; используется для разделения команд на линии, поэтому положить один в конец строки - это отходы (если только вам не нравится набирать полуколоны ...).

upPCs=0 

Использование (()) для арифметики:

if (($? == 0)); then 

    ((upPCs++)) 

fi 

Наконец, вы должны отступ кода внутри ifwhile, for и т.д.) заявлений, потому что если вы не котенок умирает. Серьезно, скрипты могут стать нечитаемыми довольно быстро, если вы не отступаете - это того стоит.

Кстати, часто вам не нужно явно проверять $?. Вы не показываете команду, в которой вы тестируете результат, но принцип заключается в том, что if является истинным, если команда выполнена успешно (код завершения равен нулю считается успешным). Например:

if some_command 
then 
    ((upPCs++)) 
fi