Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

condition avec test sur un debut de ligne

11 réponses
Avatar
dorisnemo
Bonjour,

J'ai un fichier qui contient une liste de hostname ($host)
je souhaite effectuer une condition si le d=E9but 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=E9grer 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} =3D=3D | 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=E9e ?
G=2E

1 réponse

1 2
Avatar
Stephane Dupille
En fait je veux bien une explication sur la premiere partie afin de
comprendre mieux:


La première partie sert à déterminer les cas d'erreurs. Par exemple,
un truc sous la forme 712.123.123.123 n'est pas une adresse IP mais
aurait été matché positivement par la seconde partie.

*[!0-9.]


Si le machin contient autre chose que des nombres et des points

*..*


Si ça contient deux points consécutifs

*.*.*.*.*


Si ça contient 5 points (ou plus)

.*


Si ça commence par un point


*.


Si ça finit par un point

*25[6-9]*


Si ça contient une valeur comprise entre 256 et 259.

*2[6-9][!.]*


Si ça contient une valeur entre 260 et 299.

*[3-9][!.][!.]*


Si ça contient une valeur entre 300 et 999.

*[1-9][!.][!.][!.]*)


Si ça contient une valeur entre 1000 et 9999 (ou plus).

echo not decimal quad IP address;;


Alors ce ne sont pas des adresses IP correctement formées.

merci de ton retour


HTH.

--
CJ> Les censeurs agitent plus de vent que les moulins des Pays Bas.
Tiens, je savais pas que c'étaient les moulins qui créaient le vent.
-+- GR in GNU : Dame qui se shoote et sang chaud pensa -+-

1 2