PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Serveur - Sécurité et techniques > fr.comp.os.unix > condition avec test sur un debut de ligne
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
fr.comp.os.unix Système UNIX.

condition avec test sur un debut de ligne

Réponse
 
LinkBack Outils de la discussion
Vieux 09/05/2006, 10h28   #1 (permalink)
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut condition avec test sur un debut de ligne

Bonjour,

J'ai un fichier qui contient une liste de hostname ($host)
je souhaite effectuer une condition si le début de la ligne commence
soit par "lx" soit par une IP. Mais j'ai une erreur lorsque je lance le
script sur le else. Pour acceder a la machine linux je dois faire du
ssh que je n'ai pas encore intégrer dans la fonction mais je souhaite
avant tout savoir si ma condition fonctionne.

######################
fctlsgrpgene() {

for h in $(cat $hosts)
do
## condition test pour serveurs linux
if [[${h} == | awk '/^[lx]/ {print}' ]]
then
echo "Group:GID:ListeMbrGroup" > $DIR_LOG/lsgrpgeneLinux.log
cat /etc/group | awk -F: '{print $1":"$3":"$4}' >>
$DIR_LOG/lsgrpgeneLinux.log

cp $DIR_LOG/lsgrpgeneLinux.log
"$DIR_LOG/lsgrpgeneLinux"$(dte)".sort"
rm $DIR_LOG/lsgrpgeneLinux.log
else
for grp in $(rsh $h "lsgroup -a ALL")
do
echo "${h}:\c" >> $DIR_LOG/lsgrpgene.log
rsh $h "lsgroup -c -a id admin adms $grp" | tail -1 >>
$DIR_LOG/lsgrpgene.log
done
fi
done
echo "Hostname:Group:GID:AdminGrp:AdminUsers" > $DIR_LOG/lsgrpgene.sort
sort -t: +1 $DIR_LOG/lsgrpgene.log >> $DIR_LOG/lsgrpgene.sort
rm $DIR_LOG/lsgrpgene.log
##########################################

Avez-vous une idée ?
G.

  Réponse avec citation
Vieux 09/05/2006, 11h33   #2 (permalink)
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

On 9 May 2006 02:28:04 -0700, dorisnemo wrote:
[...]
> if [[${h} == | awk '/^[lx]/ {print}' ]]


case $h in
[lx]* ...;;
*) ...;;
esac

--
Stephane
  Réponse avec citation
Vieux 09/05/2006, 16h30   #3 (permalink)
Nicolas MICHEL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

dorisnemo <gberengue@unedic.fr> wrote:


> if [[${h} == | awk '/^[lx]/ {print}' ]]

[snip]
> Avez-vous une idée ?


C'est trop gros, je vais encore passer pour un con, mais...
ne manque-t-il pas un espace entre [[ et ${h} ?


--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas
  Réponse avec citation
Vieux 09/05/2006, 16h38   #4 (permalink)
Luc Habert
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

Stephane Chazelas :

> [lx]* ...;;


Coquille: il faut mettre un «)» après l'étoile.
  Réponse avec citation
Vieux 09/05/2006, 16h45   #5 (permalink)
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

2006-05-9, 15:38(+00), Luc Habert:
> Stephane Chazelas :
>
>> [lx]* ...;;

>
> Coquille: il faut mettre un «)» après l'étoile.


Elle etait dans le "..." :-b

--
Stéphane
  Réponse avec citation
Vieux 10/05/2006, 15h49   #6 (permalink)
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

Stephane avec ta solution, j'ai un tout petit problème, mais vraiment
minuscule c'est qu'il me prend tous hostname avec "xi" sinon comment je
fait pour remplacer par une valeur qui va contenir une adresse IP.
Sinon ça fonctionne trés bien ;-) mieux qu'avant !

  Réponse avec citation
Vieux 10/05/2006, 16h10   #7 (permalink)
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

On 10 May 2006 07:49:50 -0700, dorisnemo wrote:
> Stephane avec ta solution, j'ai un tout petit problème, mais vraiment
> minuscule c'est qu'il me prend tous hostname avec "xi"


case $h in [xi]*)

selectionne les noms qui commencent par x ou i, n'etait-ce pas
ce que tu demandais?

> sinon comment je
> fait pour remplacer par une valeur qui va contenir une adresse IP.
> Sinon ça fonctionne trés bien ;-) mieux qu'avant !


Si tu veux matcher une IPv4 address sous la forme x.x.x.x, ou x
sont des nombres decimaux uniquement:

case $h in
*[!0-9.] | *..* | *.*.*.*.* | .* | *. | *25[6-9]* | \
*2[6-9][!.]* | *[3-9][!.][!.]* | *[1-9][!.][!.][!.]*)
echo not decimal quad IP address;;
*.*.*.*)
echo decimal quad IP address;;
*)
echo not decimal quad IP address;;
esac

Ou encore:

if awk '
function isoctet(i) {
return ((i ~ /^[0-9]+$/) && (i <= 255))
}
BEGIN {
if (split(ARGV[1], a, /[.]/) != 4) exit(1)
for (i=1; i<=4; i++)
if (!isoctet(a[i]))
exit(1)
exit(0)
}' "$h"
then
echo decimal quad IP address;;
else
echo not decimal quad IP address;;
fi

--
Stephane
  Réponse avec citation
Vieux 11/05/2006, 08h40   #8 (permalink)
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: condition avec test sur un debut de ligne

merci
Gérald

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 14h32.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,11582 seconds with 16 queries