Como incrementar a variável local no Bash?

7

Dados

1
\begin{document}
3

Código

#!/bin/bash

function getStart {
        local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)"
        echo $START
}

START2=$(getStart)
echo $START2

que retorna 2 , mas eu quero 3 . Eu mudo sem sucesso o fim por esta resposta sobre Como posso adicionar números em um script bash :

START2=$((getStart+1))

Como você pode incrementar uma variável local no script Bash?

    
por Léo Léopold Hertz 준영 11.09.2015 / 14:58

2 respostas

26

Estou recebendo 2 do seu código. No entanto, você pode usar a mesma técnica para qualquer variável ou número:

local start=1
(( start++ ))

ou

(( ++start ))

ou

(( start += 1 ))

ou

(( start = start + 1 ))

ou apenas

local start=1
echo $(( start + 1 ))

etc.

    
por 11.09.2015 / 15:01
3

Tente:

START2=$(( 'getStart' + 1 ));

O $(( )) diz ao bash que é para executar uma operação aritmética, enquanto os backticks informam ao bash para avaliar a expressão contida, seja uma função definida pelo usuário ou uma chamada para um programa externo, e retornar o conteúdo do stdout .

    
por 11.09.2015 / 15:46