Как добавить значения в переменную в сценариях оболочки Unix? - PullRequest
15 голосов
/ 30 августа 2011

У меня есть две переменные, называемые count1 и count7

count7=0
count7=$(($count7 + $count1))

Это показывает ошибку "выражение не завершено; требуется больше токена".

Как мне добавить две переменные?

Ответы [ 8 ]

22 голосов
/ 30 августа 2011

Что для count1 установлено? Если он не установлен, он выглядит как пустая строка - и это привело бы к неверному выражению. Какую оболочку вы используете?

В Bash 3.x на MacOS X 10.7.1:

$ count7=0
$ count7=$(($count7 + $count1))
-sh: 0 + : syntax error: operand expected (error token is " ")
$ count1=2
$ count7=$(($count7 + $count1))
$ echo $count7
2
$

Вы также можете использовать ${count1:-0} для добавления 0, если $count1 не установлено.

7 голосов
/ 16 февраля 2015
var=$((count7 + count1))

Арифметика в bash использует синтаксис $((...)).

Вам не нужно $ символ в $(( ))

6 голосов
/ 04 июня 2012

В ksh, bash, sh:

$ count7=0                     
$ count1=5
$ 
$ (( count7 += count1 ))
$ echo $count7
$ 5
1 голос
/ 14 мая 2017

Вы можете сделать это также.Может быть быстрее для быстрых расчетов:

echo $[2+2]
1 голос
/ 24 октября 2013

приведенный выше скрипт может не работать в ksh.Вы должны использовать 'let' противоположный, чтобы присвоить значение, а затем повторить его.

val1=4

val2=3

let val3=$val1+$val2

echo $val3 
1 голос
/ 30 августа 2011

Вот простой пример добавления двух переменных:

var1=4
var2=3
let var3=$var1+$var2
echo $var3
0 голосов
/ 11 сентября 2016
 echo "$x"
    x=10
    echo "$y"`enter code here`
    y=10
    echo $[$x+$y]

Ответ: 20

0 голосов
/ 30 августа 2011

У меня под рукой нет системы unix, но попробуйте это:

count7=$((${count7} + ${count1}))

Или, возможно, у вас есть оболочка, которая не поддерживает это выражение.Я думаю, bash это поддерживает, но sh нет.

РЕДАКТИРОВАТЬ: Есть другой синтаксис, попробуйте:

count7=`expr $count7 + $count1`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...