Probleme de programmation Shell
breton_a
Messages postés
10
Statut
Membre
-
breton_a Messages postés 10 Statut Membre -
breton_a Messages postés 10 Statut Membre -
Yep tt le monde.
Chui pas encore au point question prog Shell... :s
G un probleme, on dirait que, dans la troisieme boucle while encapsulée, les conditions if ne sont pas prsies en comptes :(:(
Le fichier $DEST_INT n'est pas créé...
Je comprends pas pourquoi... Qqun peut m'aider ?
Merci d'avance.
ps : g mis qques echos le long du code pour voir comment se deroule le prog. je sais que c pas propre, mais je sais pas encore me servir du debugger :s
Chui pas encore au point question prog Shell... :s
G un probleme, on dirait que, dans la troisieme boucle while encapsulée, les conditions if ne sont pas prsies en comptes :(:(
Le fichier $DEST_INT n'est pas créé...
Je comprends pas pourquoi... Qqun peut m'aider ?
Merci d'avance.
ps : g mis qques echos le long du code pour voir comment se deroule le prog. je sais que c pas propre, mais je sais pas encore me servir du debugger :s
#! /bin/sh
DIR="/home/nokia/"
SOURCE="/home/nokia/nsas_audit.0"
SIGN="/home/nokia/sign.txt"
DEST="/home/nokia/num_user.txt"
DEST_FIN="/home/nokia/num_user_fin.txt"
DEST_INT="/home/nokia/num_user_int.txt"
grep "SIGN_OFF\|TIMEOUT\|SIGN_ON" $SOURCE > ${SIGN}
i=1
count=`wc -l $SIGN | cut -f6-6 -d' '`
echo "$count"
while [ $i -le $count ]
do
nom=`head -$i $SIGN | tail -1 | tr ')' '(' | cut -f2-2 -d'('`
type=`head -$i $SIGN | tail -1 | cut -f10-10 -d' '`
if [ "$type" = "T=SIGN_ON" ];
then
echo "$nom/1/$type" >> $DEST
else
echo "$nom/0/$type" >> $DEST
fi
i=`expr $i + 1`
done
i=2
head -1 $DEST > $DEST_FIN
count=`wc -l $DEST | tr ' ' '/' | cut -f6-6 -d'/'`
echo "$count"
while [ $i -le $count ]
do
nom=`head -$i $DEST | tail -1 | cut -f1-1 -d'/'`
type=`head -$i $DEST | tail -1 | cut -f2-2 -d'/'`
count_fin=`wc -l $DEST_FIN | tr ' ' '/' | cut -f7-7 -d'/'`
j=1
echo "$nom $type"
while [ $j -le $count_fin ]
do
nom_fin=`head -$j $DEST_FIN | tail -1 | cut -f1-1 -d'/'`
type_fin=`head -$j $DEST_FIN | tail -1 | cut -f2-2 -d'/'`
echo "nom et type de test : $nom_fin $type_fin"
if [ "$nom" = "$nom_fin" ]
then
if [ "$type" = "0" ]
then
echo "type 0 ca roule"
echo "$nom/0" >> DEST_INT
else
echo "type 1 ca roule aussi mais pas pour la meme valeur"
type= `expr $type_fin + 1`
echo "$nom/$type" >> DEST_INT
fi
else
echo "$nom_fin/$type_fin" >> $DEST_INT
fi
j=`expr $j + 1`
done
cp $DEST_INT $DEST_FIN
rm $DEST_INT
i=`expr $i + 1`
done
A voir également:
- Probleme de programmation Shell
- Classic shell - Télécharger - Personnalisation
- Application de programmation - Guide
- Secure shell - Télécharger - Divers Web & Internet
- Shell infrastructure host c'est quoi - Guide
- Efi shell version 2.31 - Forum Programmation
1 réponse
g modifié deux ou trois choses.
apparemment, il met pas a jour le fichier $DEST_INT.
j'essaie toujours, mais je vois que mon post dechaine pas les foules :p :p
++
apparemment, il met pas a jour le fichier $DEST_INT.
j'essaie toujours, mais je vois que mon post dechaine pas les foules :p :p
++
#! /bin/sh
DIR="/home/nokia/"
SOURCE="/home/nokia/nsas_audit.0"
SIGN="/home/nokia/sign.txt"
DEST="/home/nokia/num_user.txt"
DEST_FIN="/home/nokia/num_user_fin.txt"
DEST_INT="/home/nokia/num_user_int.txt"
rm $SIGN $DEST
grep "SIGN_OFF\|TIMEOUT\|SIGN_ON" $SOURCE > ${SIGN}
i=1
count=`wc -l $SIGN | cut -f6-6 -d' '`
while [ $i -le $count ]
do
nom=`head -$i $SIGN | tail -1 | tr ')' '(' | cut -f2-2 -d'('`
type=`head -$i $SIGN | tail -1 | cut -f10-10 -d' '`
if [ "$type" = "T=SIGN_ON" ];
then
echo "$nom/1/$type" >> $DEST
else
echo "$nom/0/$type" >> $DEST
fi
i=`expr $i + 1`
done
echo > $DEST_FIN
head -1 $DEST >> $DEST_FIN
count=`wc -l $DEST | tr ' ' '/' | cut -f6-6 -d'/'`
echo "$count"
i=3
while [ $i -le $count ]
do
echo > $DEST_INT
nom=`head -$i $DEST | tail -1 | cut -f1-1 -d'/'`
type=`head -$i $DEST | tail -1 | cut -f2-2 -d'/'`
while [ $i -le $count ]
do
echo > $DEST_INT
nom=`head -$i $DEST | tail -1 | cut -f1-1 -d'/'`
type=`head -$i $DEST | tail -1 | cut -f2-2 -d'/'`
count_fin=`wc -l $DEST_FIN | tr ' ' '/' | cut -f7-7 -d'/'`
j=2
echo "$nom $type $count_fin"
while [ $j -le $count_fin ]
do
nom_fin=`head -$j $DEST_FIN | tail -1 | cut -f1-1 -d'/'`
type_fin=`head -$j $DEST_FIN | tail -1 | cut -f2-2 -d'/'`
echo "nom et type de test : $nom_fin $type_fin $nom"
if [ "$nom" = "$nom_fin" ]
then
echo $nom $nom_fin
if [ $type -eq 0 ]
then
echo "type 0 ca roule"
echo "$nom/0" >> $DEST_INT
else
echo "type 1 ca roule aussi mais pas pour la meme valeur"
type=`expr $type_fin + 1`
echo "$nom/$type" >> $DEST_INT
fi
else
echo $nom $nom_fin
echo "$nom_fin/$type_fin" >> $DEST_INT
fi
j=`expr $j + 1`
done
mv $DEST_INT $DEST_FIN
i=`expr $i + 1`
done
rm $DEST