Datos
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 devuelve 2
pero quiero 3
. Cambio sin éxito el final con esta respuesta sobre ¿Cómo puedo agregar números en un script bash :
START2=$((getStart+1))
¿Cómo se puede incrementar una variable local en el script Bash?
Comentarios
Responder
Estoy recibiendo 2
de su código. Sin embargo, puede usar la misma técnica para cualquier variable o número:
local start=1 (( start++ ))
o
(( ++start ))
o
(( start += 1 ))
o
(( start = start + 1 ))
o simplemente
local start=1 echo $(( start + 1 ))
etc.
Comentarios
- Esto también puede ayudar: askubuntu.com/questions/385528/…
Respuesta
Pruebe:
START2=$(( `getStart` + 1 ));
El $(( ))
le dice a bash que debe realizar una operación aritmética, mientras que las comillas invertidas le dicen a bash que evalúe la expresión contenedora, ya sea t una función definida por el usuario o una llamada a un programa externo, y devuelve el contenido de stdout.
Responder
Esto es la apuesta segura
(( start = start + 1 ))
Si el valor resultante es distinto de cero, la configuración de salir en caso de error detendrá su secuencia de comandos
set -e start=0 (( start++ )) echo You will never get here
awk
?sed -n '/begin{document}/{=;q}' data.text
mucho más corto…}/{=;q}
esto en una respuesta / comentario, por favor.