Me against BASH

Fermé
Bash&Slash - 23 oct. 2008 à 14:47
 Bash&Slash - 23 oct. 2008 à 16:02
Yo,
petit soucis de syntaxe pour utiliser une variable incrementé dans ma boucle while:
Voilà:
#! /bin/bash
#compte le nombre de lignes
comptelignes=`cat cli | wc -l`
echo "\nnombre de lignes :"$comptelignes
# une boucle qui lit ligne par ligne


increment=1
while [ $increment -lt $comptelignes ]
do
	echo "--------------ligne "$increment"\n"
	increment=$((increment+1))
	cat cli | sed -n -e`$increment`p
done

# cat cli | sed -n -e 2p affiche la ligne 2

le truc c'est quand je tape ma ligne ": cat cli | sed -n -e 2p "dans la console il m'affiche bien la ligne 2 de mon fichier texte, dans mon script il m'affiches 19 fois toutes les lignes :s

2 réponses

yop super,
je vais tester ça, je me doutais qu'il y avait un truc avec les accolades mais comme j'ai jamais utilisé....
merci jipi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
23 oct. 2008 à 15:47
Salut,
#! /bin/bash
#compte le nombre de lignes
comptelignes=$(cat cli | wc -l)
echo "nombre de lignes : $comptelignes"
# une boucle qui lit ligne par ligne


increment=1
while [ $increment -lt $comptelignes ]
do
        echo "--------------ligne $increment"
        increment=$((increment+1))
        sed -n -e "${increment}"p cli
done
:-))
-1