Additionner des variables string shell,bash
glardz
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
glardz Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
glardz Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
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 ;)
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 ;)
A voir également:
- Bash addition
- Addition excel - Guide
- Bingo bash - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Addition et soustraction dans la meme formule excel - Forum Excel
1 réponse
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
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
glardz
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
est-il possible d'enlever le 0 et ainsi additionné ?
glardz
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
merci pour la réponse j'ai fait slot_number=${slot_number##0}