Bonjour,
Je sollicite votre aide dans un script shell que je suis en train de faire...

Déjà voici le script

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
 
#nombre de ligne de la BD 
cat  $1 | wc -l > nbligne 
 
#ne prend que le parametre d'entrée numéro 1
cut -d " " -f 1 bdfinale.smi > bdcutfinale.smi 
 
#nb de O
i=1
 
if [ "$i" -le 4 ]
then
	awk -F '[Oo]' "NF-1 == $i"  bdcutfinale.smi  > bdO$i
        cat  bdO$i | wc -l > nbligneO$i
 
        let 'nbO=nbligneO"$i" - nbligne'
        echo 'le nombre de molecule avec' "$i" 'O est de : ' $nbO
        let 'i="$i"+1'
fi
Que fait le script alors il doit compter le nombre de ligne d'un fichier $1 et stocker cette valeur
Puis ensuite j'ai un fichier *.smi avec plusieurs colonnes, je ne prends que la 1ere.
Ensuite je fais une boucle allant de i a 4 me permettant de calculer le nombre de ligne avec 1 O.
Pourquoi 4 ? Car je sais que je n'ai pas plus de 4 O par ligne.

Il compte le nombre de ligne et retire ces lignes du fichier.
je compte le nombre de ligne du fichier restant et je le soustrait au nombres de lignes totaux.
J'ai ainsi le nombre de ligne avec seulement 1 fois le caractère O.

Ensuite je passe à i+1 et je répète avec le nombre de 0 égale à 2...
Et ainsi de suite...


En gros mon probléme se situe à cette ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
let 'nbO=nbligneO"$i" - nbligne'
en effet j'ai fait un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
bash -x :/testscript blabla.smi
afin de débugger le code et c'est à cette ligne que le programme bloque avec cette erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
line 17: let: nbO=nbligneO$i - nbligne: syntax error in expression (error token is "$i - nbligne")
Je viens demander votre aide

De plus ma ligne est-elle juste ?
Merci
Cédric