[shell] : (deux points)

Le
Ph. Ivaldi
Re,

Je ne comprends pas le sens des deux points (:) dans cette ligne:
$SYSLOG && [ ! -x $LOGGER ] && SYSLOGúlse || :

Une bonne âme pour m'expliquer ?

Merci,
--
Philippe Ivaldi.
http://www.piprime.fr/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry B
Le #20322321
On 2009-10-09, Ph Ivaldi

Je ne comprends pas le sens des deux points (:) dans cette ligne:
$SYSLOG && [ ! -x $LOGGER ] && SYSLOGúlse || :

Une bonne âme pour m'expliquer ?



La commande ':' est équivalante à 'true'


NAME
true - do nothing, successfully

SYNOPSIS
true [ignored command line arguments]
true OPTION

DESCRIPTION
Exit with a status code indicating success.


--
<JX> je vais boire une adelscott
<CleeK> jx : pareil pour moi
<JX> et comme il ne faut JAMAIS boire le ventre vide
<JX> je vais manger une Guinness avec
Ph. Ivaldi
Le #20322561
Le 09 octobre 2009, Thierry B écrivit :

La commande ':' est équivalante à 'true'



Merci
Faut quand même être sacrément feignasse pour penser à écrire : à la
place de true... et le faire c'est encore pire :-)
Thierry B
Le #20322551
On 2009-10-09, Ph Ivaldi

Je ne comprends pas le sens des deux points (:) dans cette ligne:
$SYSLOG && [ ! -x $LOGGER ] && SYSLOGúlse || :

Une bonne âme pour m'expliquer ?



La commande ':' est équivalente à 'true'


NAME
true - do nothing, successfully

SYNOPSIS
true [ignored command line arguments]
true OPTION

DESCRIPTION
Exit with a status code indicating success.


--
<JX> je vais boire une adelscott
<CleeK> jx : pareil pour moi
<JX> et comme il ne faut JAMAIS boire le ventre vide
<JX> je vais manger une Guinness avec
Stephane CHAZELAS
Le #20322651
2009-10-09, 17:28(+02), Ph Ivaldi:
Le 09 octobre 2009, Thierry B écrivit :

La commande ':' est équivalante à 'true'



Merci
Faut quand même être sacrément feignasse pour penser à écrire : à la
place de true... et le faire c'est encore pire :-)



":" est plus portable que "true". Il y a encore des shells qui
n'ont pas de "true" builtin (auquel cas on execute /bin/true
s'il existe).

x && y || :

Fait en sorte que le code retour final est 0, c'est a dire (pour
le cas du set -u), une failure de y n'est pas consideree comme
un probleme.

--
Stéphane
Ph. Ivaldi
Le #20322911
Le 09 octobre 2009, Stephane CHAZELAS écrivit :

":" est plus portable que "true".



C'est la genre de choses qui me dépassent; comment puis-je savoir cela ?

x && y || :
Fait en sorte que le code retour final est 0, c'est a dire (pour
le cas du set -u), une failure de y n'est pas consideree comme
un probleme.



Oui, j'avais déjà utilisé... c'était le : qui me posait problème.
Merci quand même, ça m'a permit de réviser le "set -u" le
${var:-default} etc que je n'utilise... pas vraiment souvent.
--
Philippe Ivaldi.
http://www.piprime.fr/
Demelier David
Le #21333661
On Fri, 09 Oct 2009 18:34:59 +0200, Ph Ivaldi
Le 09 octobre 2009, Stephane CHAZELAS écrivit :

":" est plus portable que "true".



C'est la genre de choses qui me dépassent; comment puis-je savoir cela ?




Parce que true est soit un binaire /bin/true, soit un builtin du shell que
t'utilises. Mais le problème c'est que tous les shells n'ont pas encore cette
commande true intégrées dans leur shell mais ':' oui.


x && y || :
Fait en sorte que le code retour final est 0, c'est a dire (pour
le cas du set -u), une failure de y n'est pas consideree comme
un probleme.



Oui, j'avais déjà utilisé... c'était le : qui me posait problème.
Merci quand même, ça m'a permit de réviser le "set -u" le
${var:-default} etc que je n'utilise... pas vraiment souvent.




--
Demelier David

() ascii ribbon campaign - against html e-mail
/ www.asciiribbon.org - against proprietary attachments

--- news://freenews.netfront.net/ - complaints: ---
Ph. Ivaldi
Le #21336901
Le 07 mars 2010, Demelier David écrivit :

On Fri, 09 Oct 2009 18:34:59 +0200, Ph Ivaldi
Le 09 octobre 2009, Stephane CHAZELAS écrivit :
":" est plus portable que "true".


C'est la genre de choses qui me dépassent; comment puis-je savoir cela ?


Parce que true est soit un binaire /bin/true, soit un builtin du shell que
t'utilises. Mais le problème c'est que tous les shells n'ont pas encore cette
commande true intégrées dans leur shell mais ':' oui.



Merci pour cette réponse mais elle me satisfait à moitié.
Quelle est l'intérêt d'implémenter : pour true sans implémenter true ;
là est la question, en fait…
--
Philippe Ivaldi.
http://www.piprime.fr/
Stephane CHAZELAS
Le #21337841
2010-03-07, 18:34(+01), Ph Ivaldi:
Le 07 mars 2010, Demelier David écrivit :

On Fri, 09 Oct 2009 18:34:59 +0200, Ph Ivaldi
Le 09 octobre 2009, Stephane CHAZELAS écrivit :
":" est plus portable que "true".


C'est la genre de choses qui me dépassent; comment puis-je savoir cela ?


Parce que true est soit un binaire /bin/true, soit un builtin du shell que
t'utilises. Mais le problème c'est que tous les shells n'ont pas encore cette
commande true intégrées dans leur shell mais ':' oui.



Merci pour cette réponse mais elle me satisfait à moitié.
Quelle est l'intérêt d'implémenter : pour true sans implémenter true ;
là est la question, en fait…



: a son origine dans les shells pre-Bourne (versions d'Unix
avant V7) et se retrouve dans tous les shells qui en derivent
comme csh ou le Bourne shell et ses descendants.

Plutot qu'une commande qui renvoie true, c'etait une commande qui
ne faisait rien (no-op), utilisee par example par les
commentaires (# n'a ete introduit que plus tard, par csh puis a
ete rajouté au Bourne shell bien apres sa creation).

--
Stéphane
Publicité
Poster une réponse
Anonyme