Additionner des variables string shell,bash [Fermé]

Signaler
Messages postés
26
Date d'inscription
mardi 24 mai 2016
Statut
Membre
Dernière intervention
17 juillet 2016
-
Messages postés
26
Date d'inscription
mardi 24 mai 2016
Statut
Membre
Dernière intervention
17 juillet 2016
-
Bonjour,

j'ai un fichier log.txt avec

bpc19;BC02;SLOT05
bpc20;BC02;SLOT06
bpc21;BC02;SLOT07
bpc22;BC02;SLOT08
bpc23;BC02;SLOT09
bpc24;BC02;SLOT10
bpc26;BC02;SLOT12
bpc27;BC02;SLOT13
bpc28;BC02;SLOT14
bdbm;BC01;SLOT00

et je veux faire +1 pour chaque valeur de slot , le code en bash est :

#!/bin/bash

while read line
do


slot_number=$(echo "$line" | cut -d';' -f3 | cut -d'T' -f2 )
slot_number=$slot_number | bc

slot_numberplusone=$((1+slot_number))

echo "slot_number=$slot_number"
echo "slot_number+1=$slot_numberplusone\n"

done < log.txt

le résultat est :

slot_number=03
slot_number+1=4

slot_number=04
slot_number+1=5

slot_number=05
slot_number+1=6

slot_number=06
slot_number+1=7

slot_number=07
slot_number+1=8

test.sh: 33: test.sh: Illegal number: 08


je sais pas pourquoi il s’arrête à 8 .

je vous remercie d'avance pour vos réponses ;)

1 réponse

Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
hello
parce qu'un nombre qui commence par 0 est considéré en base 8, donc 08 et 09 sont illégaux, il faut enlever le 0
$ x=08
$ echo $((x+1))
bash: 08: value too great for base (error token is "08")
$ x=${x##0}
$ echo $((x+1))
9
Messages postés
26
Date d'inscription
mardi 24 mai 2016
Statut
Membre
Dernière intervention
17 juillet 2016

est-il possible d'enlever le 0 et ainsi additionné ?
Messages postés
26
Date d'inscription
mardi 24 mai 2016
Statut
Membre
Dernière intervention
17 juillet 2016

merci pour la réponse j'ai fait slot_number=${slot_number##0}