Traduction du sh au csh
Fermé
yoopi
-
4 févr. 2009 à 13:40
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 4 févr. 2009 à 18:43
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 4 févr. 2009 à 18:43
A voir également:
- Traduction du sh au csh
- Traduction photo gratuit - Guide
- Traduction elfique prénom - Forum Réseaux sociaux
- Google traduction français arabe - Télécharger - Traduction
- Traduction créole guadeloupe français reverso - Forum Loisirs / Divertissements
- Homies traduction ✓ - Forum Musique / Radio / Clip
3 réponses
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
4 févr. 2009 à 18:43
4 févr. 2009 à 18:43
Essaie plutôt avec une boucle "foreach" à la place du while :
if [ ... ] then ... fi
en
if ( ...) then ... endif
dans le reste du script ;-))
foreach line ( $(cat /export/home/glerelay/list.txt) ) grep "$line" liste_node >/dev/null if ("$?" == 1) then @ cpt++ endif endEt n'oublie pas de convertir tous les :
if [ ... ] then ... fi
en
if ( ...) then ... endif
dans le reste du script ;-))
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
4 févr. 2009 à 14:19
4 févr. 2009 à 14:19
hello
pourquoi ne pas l'exécuter tel quel sur Solaris en plaçant en première ligne:
#!/bin/sh
ou
#!/bin/ksh
pourquoi ne pas l'exécuter tel quel sur Solaris en plaçant en première ligne:
#!/bin/sh
ou
#!/bin/ksh
hello,
j'avais oublié de mettre le programme au complet ; le voici :
#!/bin/sh
cpt=0
grep accepted /export/home/glerelay/slerel/log/p10_`\date +"%Y%m%d"`.log |awk -F"." '{ p
rint $3 }'|awk -F")" '{ print $1 }' > liste_node
{
while read line
do grep "$line" liste_node >/dev/null
if [ "$?" = 1 ]
then
echo "$line"
cpt=`expr $cpt + 1`
fi
done < /export/home/glerelay/list.txt
}
echo "##############"
echo $cpt
if [ "$cpt" = 0 ]
then
STAT=" ALL NODE ARE AVAILABLE "
echo $STAT
RET=0
exit $RET
else
STAT=" !!! THERE IS NODE MISSING !!! "
echo $STAT
RET=1
exit $RET
fi
lorsque j'affiche la valeur de mon compteur quand je sors de la boucle c'est toujours 0 alors que ce devrait être 1
je vais seulement aller voir la page que tu m'as conseillé.
merci
j'avais oublié de mettre le programme au complet ; le voici :
#!/bin/sh
cpt=0
grep accepted /export/home/glerelay/slerel/log/p10_`\date +"%Y%m%d"`.log |awk -F"." '{ p
rint $3 }'|awk -F")" '{ print $1 }' > liste_node
{
while read line
do grep "$line" liste_node >/dev/null
if [ "$?" = 1 ]
then
echo "$line"
cpt=`expr $cpt + 1`
fi
done < /export/home/glerelay/list.txt
}
echo "##############"
echo $cpt
if [ "$cpt" = 0 ]
then
STAT=" ALL NODE ARE AVAILABLE "
echo $STAT
RET=0
exit $RET
else
STAT=" !!! THERE IS NODE MISSING !!! "
echo $STAT
RET=1
exit $RET
fi
lorsque j'affiche la valeur de mon compteur quand je sors de la boucle c'est toujours 0 alors que ce devrait être 1
je vais seulement aller voir la page que tu m'as conseillé.
merci
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
>
yoopi
4 févr. 2009 à 16:07
4 févr. 2009 à 16:07
le même script sur Linux affiche 1 ?
yoopi
>
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
4 févr. 2009 à 16:21
4 févr. 2009 à 16:21
oui ça fonctionne et j'ai 1 comme valeur de mon compteur ou 2 ou 3 selon que je change mon fichier d'origine mais l'important c'est qu'il garde la valeur et ne la réinitialise pas en sortant de la boucle.
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
4 févr. 2009 à 14:48
4 févr. 2009 à 14:48
Salut,
Voir sur cette page les principales différences et correspondances entre les shells sh et csh.
Voir sur cette page les principales différences et correspondances entre les shells sh et csh.
re,
j'ai corrigé quelques paramètres :
#!/bin/csh
set cpt = 0
grep accepted /export/home/glerelay/slerel/log/p10_`\date +"%Y%m%d"`.log |awk -F"." '{ p
rint $3 }'|awk -F")" '{ print $1 }' > liste_node
while (read line)
grep "$line" liste_node >/dev/null
if [ "$?" = 1 ]
then
echo "$line"
cpt=`expr $cpt + 1`
fi
end < /export/home/glerelay/list.txt
echo "##############"
echo $cpt
if [ "$cpt" = 0 ]
then
STAT=" ALL NODE ARE AVAILABLE "
echo $STAT
RET=0
exit $RET
else
STAT=" !!! THERE IS NODE MISSING !!! "
echo $STAT
RET=1
exit $RET
fi
mais après exécution, il me dit que j'ai un problème de syntax dans ma boucle while ????
j'ai corrigé quelques paramètres :
#!/bin/csh
set cpt = 0
grep accepted /export/home/glerelay/slerel/log/p10_`\date +"%Y%m%d"`.log |awk -F"." '{ p
rint $3 }'|awk -F")" '{ print $1 }' > liste_node
while (read line)
grep "$line" liste_node >/dev/null
if [ "$?" = 1 ]
then
echo "$line"
cpt=`expr $cpt + 1`
fi
end < /export/home/glerelay/list.txt
echo "##############"
echo $cpt
if [ "$cpt" = 0 ]
then
STAT=" ALL NODE ARE AVAILABLE "
echo $STAT
RET=0
exit $RET
else
STAT=" !!! THERE IS NODE MISSING !!! "
echo $STAT
RET=1
exit $RET
fi
mais après exécution, il me dit que j'ai un problème de syntax dans ma boucle while ????
slt,
mon programme ressemble à cela maintenant mais il y a une erreure de syntax dans la boucle while :
#!/bin/csh
set cpt = 0
grep accepted /export/home/glerelay/slerel/log/p10_`\date +"%Y%m%d"`.log |awk
-F"." '{ print $3 }'|awk -F")" '{ print $1 }' > liste_node
while (read line)
grep "$line" liste_node >/dev/null
if ("$?" == 1)
then
@ cpt++
endif
end < /export/home/glerelay/list.txt
echo "##############"
echo $cpt
if [ "$cpt"= = 0 ]
then
set STAT = " ALL NODE ARE AVAILABLE "
echo $STAT
set RET = 0
exit $RET
else
set STAT = " !!! THERE IS NODE MISSING !!! "
echo $STAT
set RET = 1
exit $RET
fi
mon programme ressemble à cela maintenant mais il y a une erreure de syntax dans la boucle while :
#!/bin/csh
set cpt = 0
grep accepted /export/home/glerelay/slerel/log/p10_`\date +"%Y%m%d"`.log |awk
-F"." '{ print $3 }'|awk -F")" '{ print $1 }' > liste_node
while (read line)
grep "$line" liste_node >/dev/null
if ("$?" == 1)
then
@ cpt++
endif
end < /export/home/glerelay/list.txt
echo "##############"
echo $cpt
if [ "$cpt"= = 0 ]
then
set STAT = " ALL NODE ARE AVAILABLE "
echo $STAT
set RET = 0
exit $RET
else
set STAT = " !!! THERE IS NODE MISSING !!! "
echo $STAT
set RET = 1
exit $RET
fi