Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-06-2016 23:21:58

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Une petite explication

Bonsoir à tous

Voila, j'ai dans un script :



CDR=$( cdrdao disk-info --device $DRIVE 2> /dev/null | grep "CD-R empty" | awk '{print $4}' | grep -c yes);

if [ $CDRW -eq 1 ]; then
echo "CDRW loaded"
## add CDRW writting commands here
fi

if [ $CDR -eq 1 ]; then
echo "CDR empty loaded"
#add CDR writting commands here
fi

if [ $CDR -ne 1 -a $CDR -ne 1 ]; then
echo "No writtable medium inserted"
fi

 



Que veux dire ?


 -eq 1
 



Et


 $CDR -ne 1 -a $CDR -ne 1
 



-ne 1 -a   ET  -ne 1

Merci par avance wink

Dernière modification par golgot200 (13-06-2016 23:23:31)


L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

#2 14-06-2016 02:41:40

Firy
Membre
Distrib. : Debian Jessie 8.3
Noyau : 3.16.0
(G)UI : Openbox
Inscription : 22-01-2016

Re : Une petite explication

-eq compare deux nombres et retourne true s'ils sont égaux, -ne c'est l'inverse et le -a c'est la condition AND/&& d'autres langages.

Hors ligne

#3 14-06-2016 04:15:57

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : Une petite explication

Il doit sans doute y avoir une erreur de copie dans cet extrait :


if [ $CDR -ne 1 -a $CDR -ne 1 ]; then
echo "No writtable medium inserted"
fi


je pense que ce devait être :


if [ $CDRW -ne 1 -a $CDR -ne 1 ]; then
echo "No writtable medium inserted"
fi

Dernière modification par MicP (14-06-2016 04:19:53)

Hors ligne

#4 14-06-2016 07:13:40

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Re : Une petite explication

Merci à vous deux smile

Maintenant c'est plus clair, et je comprend pourquoi je tourne en rond.
MicP, tu as raison. C'est bien $CDRW, puisqu'on cherche l'inverse de celui-ci  (Donc un support CD-R)  et l'inverse de vide, qui au passage est  CD-R empty et qui vaut pour les 2 supports.


#!/bin/sh

# -c Convertir les lettres en numérique.
CDRW=$(cdrdao disk-info /dev/sr0 2>&1| grep "CD-RW"  | awk '{print $3}' | grep -c yes);
CDR=$( cdrdao disk-info --device /dev/sr0 2>&1 | grep "CD-R empty" | awk '{print $4}' | grep -c yes);


if [ $CDRW -ne 1 -a $CDR -ne 1 ]; then
echo "No writtable medium inserted"
fi
 




Ce qui m'amène sur le truc que j' aimerai :



### GRAVURE

CDRW=$( cdrdao disk-info --device $DRIVE 2> /dev/null | grep CD-RW | awk '{print $3}' | grep -c yes);
CDR=$( cdrdao disk-info --device $DRIVE 2> /dev/null | grep "CD-R empty" | awk '{print $4}' | grep -c yes);


INSÉRER UN SUPPORT
LANCER LE PROCESSUS - OUI OU NON [ABANDON]

if [ $CDRW -eq 1 ]; then
echo "CDRW loaded"
## add CDRW writting commands here
ATTENTION CONTIENT DES DONNÉES - EFFACER OU CHANGER DE SUPPORT - ABANDONNER - OU GRAVER MAINTENANT
fi

if [ $CDR -eq 1 ]; then
echo "CDR empty loaded"
#add CDR writting commands here
CE CD-R OU CD-RW est VIDE - LANCER LA GRAVURE - OUI OU NON - ABANDON

fi

if [ $CDR -ne 1 -a $CDR -ne 1 ]; then
echo "No writtable medium inserted"
SUPPORT NON VALIDE - EJECTER - REMPLACER JUSQU'A CE QUE LE SUPPORT SOIT EXPLOITABLE  À  LA GRAVURE
fi





smile

Dernière modification par golgot200 (14-06-2016 07:49:53)


L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

#5 14-06-2016 09:37:57

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : Une petite explication

Une autre façon de le faire :

CDRRW=$(cdrdao disk-info --device $DRIVE 2> /dev/null | awk -F ":" '/: no$|: yes$/ {printf "%s", $NF}');

case ${CDRRW:1} in
        "yes no")
            echo "CDRW loaded"
            ## add CDRW writting commands here
            ## ATTENTION CONTIENT DES DONNÉES - EFFACER OU CHANGER DE SUPPORT - ABANDONNER - OU GRAVER MAINTENANT
            ;;

        "no yes")
            echo "CDR empty loaded"
            ## add CDR writting commands here
            ## CE CD-R OU CD-RW est VIDE - LANCER LA GRAVURE - OUI OU NON - ABANDON
            ;;

        "no no")
            echo "No writtable medium inserted"
            ## SUPPORT NON VALIDE - EJECTER - REMPLACER JUSQU'A CE QUE LE SUPPORT SOIT EXPLOITABLE  À  LA GRAVURE
            ;;
esac
 

Dernière modification par MicP (14-06-2016 13:39:32)

Hors ligne

#6 14-06-2016 23:18:25

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Re : Une petite explication

@MicP

J'étais déjà en train de m'exploser les neuronnes avec mon script, mais là, j'avoue que ton idée, même si je ne doute pas que c'est du bon, à fini par abréger mes souffrances  lol


Ton no$|: yes$/ {printf "%s", $NormeFrançaise
 



Là je saute par la fenêtre tongue

Moi avec mon script, ça donne ça pour l'instant. Je post qu'un screen pour l'instant, car ça commence à me faire peur. Il y a sûrement des trucs à virer et surtout à corriger.  smile

1465939094.png


L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

#7 15-06-2016 00:42:21

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : Une petite explication

Dans les retours de commandes de cdrdao disk-info …, il y a les deux lignes qui t'intéressent :


CD-RW                : yes

CD-R empty           : no


et ces lignes se terminent par :
: no
ou bien :
: yes

=======

awk -F ":" '/: no$|: yes$/ {printf "%s", $NF}


-F ":" => Le séparateur de champ sera le caractère : (deux points)

/: no$|: yes$/
=> Entre les deux / le motif de recherche
- le caractère $ est utilisé pour indiquer que le motif est à la fin de la ligne.
- la barre verticale est un OU inclusif.

printf "%s", $NF => Afficher le dernier champ ($NF) de la chaîne trouvée.

=======
${CDRRW:1} => N'afficher la variable qu'à partir de son deuxième caractère. (C'est parce qu'il y avait un premier caractère espace à supprimer dans chaque couple "no"  "yes" retourné)

Si le contenu de la variable CDRRW était abcdef,
echo ${CDRRW:1} retournerait bcdef

Dernière modification par MicP (15-06-2016 01:07:24)

Hors ligne

#8 15-06-2016 14:27:33

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Re : Une petite explication

@MicP

Merci wink

L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

Pied de page des forums