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

cowsay et xcowsay

17 réponses
Avatar
Bernard Schoenacker
bonjour,


Je souhaiterai employer xcoxsay et fortunes-fr lorsque je suis
avec xterm et cowsay et fortunes-fr en TTY {1-6} ....

Pour l'instant j'arrive juste à faire fonctionner correctement
cowsay et xcowsay

fortune -s | cowsay -f tux
fortune -s |xcowsay

Comment le faire à l'aide d'un script shell pour différencier les
modes ?

slt
bernard

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20130323160041.3880f701.bernard.schoenacker@free.fr

7 réponses

1 2
Avatar
Christophe
Bernard Schoenacker a écrit :
Bonjour,


concernant le script, il fonctionne très bien avec un /dev/pts/n mais
pas en tty, par conséquent, il faut revoir le script contenant des
variables a=b (?) ...

source de l'exemple :
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html

T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
echo expression evaluated as true
else
echo expression evaluated as false
fi


application :


T1=[ -n $DISPLAY ]
T2= tty
if [ "$T1" = "$T2" ]; then
fortune -s|xcowsay
else
fortune -s|cowsay -f tux
fi

résultat, je suis également arrivé au stade précédent ....

slt
bernard





De toute évidence , le test -n sur la variable $DISPLAY ne produit pas
le résultat escompté , en revanche :

cat cowsay.sh

------

#!/bin/sh

if [ "$DISPLAY" != "" ]; then fortune -s|xcowsay ;else fortune -s|cowsay
-f tux ;fi

exit 0

------


se comporte correctement.
A adapter selon le besoin .

@+
Christophe.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
nicolas.patrois
Le 24/03/2013 21:33:34, Christophe a écrit :

De toute évidence , le test -n sur la variable $DISPLAY ne produit
pas le résultat escompté , en revanche :



C’est un bugue ?

nicolas patrois : pts noir asocial
--
RÉALISME

M : Qu'est-ce qu'il nous faudrait pour qu'on nous considère comme des
humains ? Un cerveau plus gros ?
P : Non... Une carte bleue suffirait...

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Bernard Schoenacker
Le Sun, 24 Mar 2013 21:33:34 +0100,
Christophe a écrit :

Bernard Schoenacker a écrit :
> Bonjour,
>
>
> concernant le script, il fonctionne très bien avec
> un /dev/pts/n mais pas en tty, par conséquent, il faut revoir le
> script contenant des variables a=b (?) ...
>
> source de l'exemple :
> http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html
>
> T1="foo"
> T2="bar"
> if [ "$T1" = "$T2" ]; then
> echo expression evaluated as true
> else
> echo expression evaluated as false
> fi
>
>
> application :
>
>
> T1=[ -n $DISPLAY ]
> T2= tty
> if [ "$T1" = "$T2" ]; then
> fortune -s|xcowsay
> else
> fortune -s|cowsay -f tux
> fi
>
> résultat, je suis également arrivé au stade précédent ....
>
> slt
> bernard
>


De toute évidence , le test -n sur la variable $DISPLAY ne produit
pas le résultat escompté , en revanche :

cat cowsay.sh

------

#!/bin/sh

if [ "$DISPLAY" != "" ]; then fortune -s|xcowsay ;else fortune
-s|cowsay -f tux ;fi

exit 0

------


se comporte correctement.
A adapter selon le besoin .

@+
Christophe.



bonjour,

j'ai lancé le script et tout fonctionne sauf quand je lance mc j'ai
à nouveau en /dev/pts/n xcowsay

voici le script réel:

if [ "$DISPLAY" != "" ]; then xcowsay -f `ls /usr/share/cowsay/cows |shuf -n1|cut -d'.' -f1` "`fortune -s`"
else
cowsay -f `ls /usr/share/cowsay/cows |shuf -n1|cut -d'.' -f1` "`fortune -s`"
fi

comment éviter cet effet de bord ?

slt
bernard

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Pierre Malard
--Apple-Mail=_4C40B461-F5C5-4EF1-ADE0-3BDFE91EB768
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=windows-1252

Le 25 mars 2013 à 08:09, a écrit :
Le 24/03/2013 21:33:34, Christophe a écrit :
De toute évidence , le test -n sur la variable $DISPLAY ne produit
pas le résultat escompté , en revanche :



C’est un bugue ?



En tout cas, ça y ressemble...

Si on se réfère au "man test", le "-n" devrait renvoyer VRAI si la longueur de la variable n'est pas nul et le "-z" est le test inverse. Or, autant le "-z" fonctionne bien, autant le "-n" renvoie toujours VRAI !

À la place de :
if[ -n $DISPLAY ] ; then fortune -s|xcowsay ;else fortune -s|cowsay -f tux fi

essayez l'inverse :
if[ -z $DISPLAY ] ; then fortune -s|cowsay -f tux; else fortune -s|xcowsay; fi

Cordialement

----
Pierre Malard

« Si l'on veut croire en l'humanité,
il faut voir et comprendre l'inhumanité »

| _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. , ( `'-'
'---''(_/--' `-'_)

perl -e '$_=q#: 3| 5-,3-3,2-: 3/,`.'"'"'`'"'"' 5-. ;-;;,-: |,A- ) )-,_. , ( `'"'"'-'"'"': '"'"'-3'"'"'2(-/--'"'"' `-'"'"'-): 22PLM::#;y#:#n#;s#(D)(d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--


--Apple-Mail=_4C40B461-F5C5-4EF1-ADE0-3BDFE91EB768
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.19 (Darwin)

iQIcBAEBAgAGBQJRT/5RAAoJELzRDw+wKgIyXBQQAJzaKgYNMQ/uVb9uUmLSZ+JN
0SxHtnARL+SUPbyardndM3ObEXnl5eJ6ZoXtBJyLaD6FIl80LnZdi304/LuYtQ0e
Q0MNoMeP0+013zDP9gaT3p4siYelnjmzfk1cYSIOVhEtB7Vvci9WFfFTDk+rz28H
AXLRJjXKPxCfcUbuPzgfFg6LjxX8rrNB5jW3Tvd/PSuZ0nBD/2dhSvFdx2+nmHhN
siX9SdE6frqT1tnSfFdQ/fJ3bcxCdhbLjxTxA1xHt7eCFPsBV9w0DPC9Ljg6frdt
lVLIXho981M3Vwi3caB6qQXmMXo03zNxRSLRIV6VMG3a/n/6VZngWgXN5GDXZXjt
5jQjKH+5HB2v0Ea/g+o+YRrctyH3e4xDpM6geL8aSL6RfhW5kQYfHLYqBvN4+NWc
9+GMz65UsnUZTJN5oXJk3SiecPohc29TcA/9hDNuP/piPWl195K3p65roOzqVcjO
Ilsz1+ikiuNZYKttTCVsEzv+a7BuiEXza+ViH5u/R0JRuLE8Hgtk06iTaowmJd66
Yzg3Kl+SySN6NSbrM3SP7zLCDltBve3p6XM+qpUmR/q7SiUrqXZsletEVdwm0bqA
jCm2SGpQHDk5E5wViKyqJ4KIJkHfgI0rdNI7IaFXthSLU8qy6mdPI78owpBf+CUA
t/7FfCnYVGZK6S9PHt2L
=BN6N
-----END PGP SIGNATURE-----

--Apple-Mail=_4C40B461-F5C5-4EF1-ADE0-3BDFE91EB768--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Sylvain L. Sauvage
Le lundi 25 mars 2013 à 08:35:44, Pierre Malard a écrit :
[…]
> C’est un bugue ?

En tout cas, ça y ressemble...



Pas vraiment.

Si on se réfère au "man test", le "-n" devrait renvoyer VRAI
si la longueur de la variable n'est pas nul et le "-z" est
le test inverse. Or, autant le "-z" fonctionne bien, autant
le "-n" renvoie toujours VRAI !



D’abord, le man test ne parle pas de longueur de _variable_
mais de longueur de _chaîne_. $truc est l’expansion de la cha îne
contenue dans la variable truc. Si truc n’existe pas, c’est la
chaîne vide.

Ensuite, l’expansion des variables est toujours effectuée
_avant_ d’exécuter la commande.

Donc, quand tu écris :
test -n $truc
alors que truc n’existe pas ou est une chaîne vide, c’ est
exactement comme si tu écrivais :
test -n
Ce qui est la même chose que :
test
Ce qui renvoie 0 (donc vrai).

En revanche, si tu écris :
test -z $truc
alors que truc n’existe pas ou est une chaîne vide, c’ est comme
si tu écrivais :
test -z
Et, ça, c’est considéré comme faux parce que c†™est le contraire
de
test -n

Moralité, quand on veut tester une _chaîne_, on s’assur e qu’il
y a une _chaîne_ à tester. Donc on encadre avec des "" ou on
précède d’une chaîne fixe (souvent 'x' ; le pré fixe permet aussi
d’éviter un « Bobby Tables »).
C’est très important, surtout avec test, sinon on se prend
souvent des erreurs de syntaxe (essayer 'test $truc = 2' quand
truc n’existe pas ou est vide).

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
mouss
Le 25/03/2013 11:53, Sylvain L. Sauvage a écrit :
Le lundi 25[snip]





Tout ça est complétement ridicule. il existe certes des variables:
$TERM, $DISPLAY, ...
mais ces variables ne sont pas pas fiables.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Pierre Malard
Tu as raison, mea culpa.

Dans ce cas, le plus simple est d'ajouter un caractère à la chaà ®ne à tester et de juste tester si le contenu du tout n'est pas é gal au caractère ajouté. Comme c'était proposé dans un m essage précédent.

----
Pierre Malard

Le 25 mars 2013 à 11:53, "Sylvain L. Sauvage" r> a écrit :

Le lundi 25 mars 2013 à 08:35:44, Pierre Malard a écrit :
[…]
C’est un bugue ?



En tout cas, ça y ressemble...



Pas vraiment.

Si on se réfère au "man test", le "-n" devrait renvoyer VRAI
si la longueur de la variable n'est pas nul et le "-z" est
le test inverse. Or, autant le "-z" fonctionne bien, autant
le "-n" renvoie toujours VRAI !



D’abord, le man test ne parle pas de longueur de _variable_
mais de longueur de _chaîne_. $truc est l’expansion de la cha îne
contenue dans la variable truc. Si truc n’existe pas, c’es t la
chaîne vide.

Ensuite, l’expansion des variables est toujours effectuée
_avant_ d’exécuter la commande.

Donc, quand tu écris :
test -n $truc
alors que truc n’existe pas ou est une chaîne vide, c’ est
exactement comme si tu écrivais :
test -n
Ce qui est la même chose que :
test
Ce qui renvoie 0 (donc vrai).

En revanche, si tu écris :
test -z $truc
alors que truc n’existe pas ou est une chaîne vide, c’ est comme
si tu écrivais :
test -z
Et, ça, c’est considéré comme faux parce que c†™est le contraire
de
test -n

Moralité, quand on veut tester une _chaîne_, on s’assur e qu’il
y a une _chaîne_ à tester. Donc on encadre avec des "" ou on
précède d’une chaîne fixe (souvent 'x' ; le pré fixe permet aussi
d’éviter un « Bobby Tables »).
C’est très important, surtout avec test, sinon on se prend
souvent des erreurs de syntaxe (essayer 'test $truc = 2' quand
truc n’existe pas ou est vide).

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/ .fr




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
1 2