Données
1 \begin{document} 3
Code
#!/bin/bash function getStart { local START="$(awk "/begin\{document\}/{ print NR; exit }" data.tex)" echo $START } START2=$(getStart) echo $START2
qui renvoie 2
mais je veux 3
. Je modifie sans succès la fin par cette réponse sur Comment puis-je ajouter des nombres dans un script bash :
START2=$((getStart+1))
Comment incrémenter une variable locale dans un script Bash?
Commentaires
Réponse
Je « reçois 2
de votre code. Néanmoins, vous pouvez utiliser la même technique pour nimporte quelle variable ou nombre:
local start=1 (( start++ ))
ou
(( ++start ))
ou
(( start += 1 ))
ou
(( start = start + 1 ))
ou simplement
local start=1 echo $(( start + 1 ))
etc.
Commentaires
- Cela peut également aider: askubuntu.com/questions/385528/…
Réponse
Essayez:
START2=$(( `getStart` + 1 ));
Le $(( ))
dit à bash quil doit effectuer une opération arithmétique, tandis que les backticks indiquent à bash dévaluer lexpression contenant, be i t une fonction définie par lutilisateur ou un appel à un programme externe, et renvoyer le contenu de stdout.
Answer
Cest la valeur sûre
(( start = start + 1 ))
Si la valeur résultante est différente de zéro, alors la définition de exit en cas derreur arrêtera Votre script
set -e start=0 (( start++ )) echo You will never get here
awk
?sed -n '/begin{document}/{=;q}' data.text
beaucoup plus court…}/{=;q}
ceci dans une réponse / un commentaire, sil vous plaît?