Bonjour à tous,

Je suis nouveau en script shell et essaie de porter des scripts vbs en sh. Celui-ci consiste à lire un fichier et en écrire un autre selon le contenu lu.
Je n'arrive pas à comparer deux chaines !

Si je mets des espaces dans la comparaison (avant et après égal), il n'entre pas dans la condition :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
fichier=~/fichier.txt
taillefichier=$(wc -l <$fichier); i=0; k=1
while [ $i -lt $taillefichier ]; do
  i=$(($i+1))
  if [ "$(head -n $i $fichier | tail -n 1)" = "^" ]; then echo $i; fi  
done;
Si je ne mets pas des espaces dans la comparaison, il entre systématiquement dans la condition :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
fichier=~/fichier.txt
taillefichier=$(wc -l <$fichier); i=0; k=1
while [ $i -lt $taillefichier ]; do
  i=$(($i+1))
  if [ "$(head -n $i $fichier | tail -n 1)"="^" ]; then echo $i; fi  
done;
Je ne comprend pas pourquoi ? Merci de votre aide.