Bonjour,
J'ai un petit problème au niveau de mon script bash dans la récupération du groupe.
j'ai définis les shells suivantes
Code Fifo_client : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #! /bin/sh FIFO_SRV=~/noms_ident.fifo FIFO_CLT=~/fifo_$$.fifo if [ -z "$1" ] ; then echo "Syntaxe : $0 identifiant" >&2 exit 1 fi if [ ! -p $FIFO_SRV ] ; then echo "Le serveur n'est pas accessible" exit 1 fi mkfifo -m 0622 $FIFO_CLT if [ ! -p $FIFO_SRV ] ; then echo "Impossible de créer la file ~/fifo_$$.fifo" exit 1 fi echo "$1 $FIFO_CLT" > $FIFO_SRV cat < $FIFO_CLT rm -f $FIFO_CLT
Code Fifo_serveur : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 #! /bin/sh # Passage en mode démon if [ "$MON_PID" != "$PPID" ] ; then export MON_PID=$$ MON_LISTING=$(cat $0) cd / setsid /bin/bash -c "$MON_LISTING" "$0" "$@" 0<&- 1>&- 2>&- & logger -t $(basename $0) "Le PID du demon est $!" echo "Le PID du démon est $!" >& 2 exit 0 fi FIFO_SRV=~/noms_ident.fifo function gestionnaire_signaux { rm -f $FIFO_SRV exit 0; } trap gestionnaire_signaux EXIT QUIT INT HUP if [ -e $FIFO_SRV ] ; then echo "FIN" > $FIFO_SRV & exit 0; fi mkfifo -m 0622 $FIFO_SRV if [ ! -p $FIFO_SRV ] ; then echo "Impossible de créer la file FIFO $FIFO_SRV" exit 1 fi FIN="" while [ ! $FIN ] ; do read IDENT FIFO_CLT < $FIFO_SRV TROUVE="" exec < /etc/passwd ANCIEN_IFS="$IFS" IFS=":" while read ident passe uid gid nom reste ; do if [ "$IDENT" == "$ident" ] ; then TROUVE="Oui" break fi done IFS=$ANCIEN_IFS if [ "$IDENT" == "FIN" ] ; then FIN="Oui" TROUVE="Oui" nom="Fin du serveur" fi if [ $TROUVE ] ; then echo "$nom" > $FIFO_CLT else echo "Non trouvé" > $FIFO_CLT fi done
Partager