Calcula a variável e a envia para outra variável

7

A única calculadora que conheço é bc . Eu quero adicionar 1 a uma variável e a saída para outra variável.

Eu obtive a variável nextnum da contagem de string em um arquivo:

nextnum='grep -o stringtocount file.tpl.php | wc -w'

Digamos que o valor nextnum seja 1 . Quando adicionado com 1 , ele se tornará 2 . Para calcular, eu corro:

rownum='$nextnum+1 | bc'

mas tem erro:

1+1: command not found

Eu apenas falhei na parte de cálculo. Eu tentei mudar o backtick mas ainda não funciona. Não tenho ideia de como calcular variáveis e enviá-las para outra variável.

    
por apasajja 08.10.2012 / 12:02

5 respostas

14

A subseqüência dentro do ' ' deve ser um comando válido:

rownum='echo $nextnum+1 | bc'

Mas é preferível usar $( ) em vez de ' ' :

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

Mas não há necessidade de bc , o shell é capaz de fazer inteiro aritmética:

rownum=$((nextnum+1))

Ou ainda mais simples em bash e ksh :

((rownum=nextnum+1))
    
por 08.10.2012 / 12:05
5

Você também pode usar a aritmética incorporada no bash

rownum=$((nextnum+1))

que seria um pouco mais rápido

    
por 08.10.2012 / 12:06
1

Eu usaria (como foi mencionado antes) rownum=$((nextnum+1)) ou ((rownum=nextnum+1)) , mas se você preferir um comando padrão, você pode usar o comando let, como let rownum=$nextnum+1

    
por 08.10.2012 / 12:22
1

Absolutamente correto e complete as soluções sugeridas, só para mencionar o modo como tem que ser feito em tempos anteriores, quando apenas o Bourne-Shell estava disponível, é assim que ele gosta:

rownum='expr $nextnum + 1' 
    
por 08.10.2012 / 13:42
-1

Uma resposta pode ser:

var1=1
var2=3

expr $var1 + $var2
    
por 05.02.2018 / 08:01