logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

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 22:21:58

Anonyme
Invité

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 Anonyme (13-06-2016 22:23:31)

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

Firy
Membre
Distrib. : Stretch
Noyau : 4.9.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 03:15:57

MicP
Membre
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 03:19:53)

Hors ligne

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

Anonyme
Invité

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 Anonyme (14-06-2016 06:49:53)

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

MicP
Membre
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 12:39:32)

Hors ligne

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

Anonyme
Invité

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.jpg

Dernière modification par Anonyme (01-04-2017 21:09:11)

#7 14-06-2016 23:42:21

MicP
Membre
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 00:07:24)

Hors ligne

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

Anonyme
Invité

Re : Une petite explication

@MicP

Merci wink

Pied de page des forums