T'as quoi contre if ... then ... else ? Je te suggere :
if ! netstat -rn | grep -q 192.168.1.1 ; then exit 1 fi osascript etc.
ou alors la meme structure que ci-dessus, utilisant $? (mais j'ai tendance à penser que les if-then-else sont plus lisibles, donc maintenables).
mais pas portable. "! commande", quoique posix, n'est malheureusement pas supporté par tout les shells. [...]
Parmi les shells "POSIX", il n'y a que les vieilles version de ksh (par example le ksh de HPUX) qui ne le supporte pas (mais je ne pense pas que ce shell se proclame POSIX anyway). Tous les Unix modernes ont leur sh standard qui le supportent.
-- Stéphane
2007-10-01, 01:11(+02), Cyrille Lefevre:
T'as quoi contre if ... then ... else ? Je te suggere :
if ! netstat -rn | grep -q 192.168.1.1 ; then
exit 1
fi
osascript etc.
ou alors la meme structure que ci-dessus, utilisant $? (mais j'ai
tendance à penser que les if-then-else sont plus lisibles, donc
maintenables).
mais pas portable. "! commande", quoique posix, n'est malheureusement
pas supporté par tout les shells.
[...]
Parmi les shells "POSIX", il n'y a que les vieilles version de ksh
(par example le ksh de HPUX) qui ne le supporte pas (mais je ne
pense pas que ce shell se proclame POSIX anyway). Tous les Unix
modernes ont leur sh standard qui le supportent.
T'as quoi contre if ... then ... else ? Je te suggere :
if ! netstat -rn | grep -q 192.168.1.1 ; then exit 1 fi osascript etc.
ou alors la meme structure que ci-dessus, utilisant $? (mais j'ai tendance à penser que les if-then-else sont plus lisibles, donc maintenables).
mais pas portable. "! commande", quoique posix, n'est malheureusement pas supporté par tout les shells. [...]
Parmi les shells "POSIX", il n'y a que les vieilles version de ksh (par example le ksh de HPUX) qui ne le supporte pas (mais je ne pense pas que ce shell se proclame POSIX anyway). Tous les Unix modernes ont leur sh standard qui le supportent.
-- Stéphane
Cyrille Lefevre
ou alors la meme structure que ci-dessus, utilisant $? (mais j'ai tendance à penser que les if-then-else sont plus lisibles, donc maintenables). mais pas portable. "! commande", quoique posix, n'est malheureusement
pas supporté par tout les shells. [...]
Parmi les shells "POSIX", il n'y a que les vieilles version de ksh (par example le ksh de HPUX) qui ne le supporte pas (mais je ne pense pas que ce shell se proclame POSIX anyway).
j'ai qu'un ksh88 (irix sous cygwin) sous la main. je savais bien qu'il en existait un, mais je ne me souvenais plus lequel. toutefois, en prod, HP existe bien, et il faut faire avec... enfin sans ! :)
Tous les Unix modernes ont leur sh standard qui le supportent.
euh, là, je me fache, tu veux qu'on parle du /usr/bin/sh de solaris ;^)
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
ou alors la meme structure que ci-dessus, utilisant $? (mais j'ai
tendance à penser que les if-then-else sont plus lisibles, donc
maintenables).
mais pas portable. "! commande", quoique posix, n'est malheureusement
pas supporté par tout les shells.
[...]
Parmi les shells "POSIX", il n'y a que les vieilles version de ksh
(par example le ksh de HPUX) qui ne le supporte pas (mais je ne
pense pas que ce shell se proclame POSIX anyway).
j'ai qu'un ksh88 (irix sous cygwin) sous la main.
je savais bien qu'il en existait un, mais je ne me souvenais plus lequel.
toutefois, en prod, HP existe bien, et il faut faire avec...
enfin sans ! :)
Tous les Unix
modernes ont leur sh standard qui le supportent.
euh, là, je me fache, tu veux qu'on parle du /usr/bin/sh de solaris ;^)
Regards, Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
ou alors la meme structure que ci-dessus, utilisant $? (mais j'ai tendance à penser que les if-then-else sont plus lisibles, donc maintenables). mais pas portable. "! commande", quoique posix, n'est malheureusement
pas supporté par tout les shells. [...]
Parmi les shells "POSIX", il n'y a que les vieilles version de ksh (par example le ksh de HPUX) qui ne le supporte pas (mais je ne pense pas que ce shell se proclame POSIX anyway).
j'ai qu'un ksh88 (irix sous cygwin) sous la main. je savais bien qu'il en existait un, mais je ne me souvenais plus lequel. toutefois, en prod, HP existe bien, et il faut faire avec... enfin sans ! :)
Tous les Unix modernes ont leur sh standard qui le supportent.
euh, là, je me fache, tu veux qu'on parle du /usr/bin/sh de solaris ;^)
Regards, Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
Alain Ketterlin
Cyrille Lefevre <cyrille.lefevre-news% writes:
if ! netstat -rn | grep -q 192.168.1.1 ; then exit 1 fi
mais pas portable. "! commande", quoique posix, n'est malheureusement pas supporté par tout les shells.
Ah bon, d'accord. Mais comment on fait dans ce cas là pour inverser une condition ? On est obligé de passer par
if ... ; then true; else exit 1; fi
? (Hors l'astuce qui consisterai ici à passer par grep -v)
if ! netstat -rn | grep -q 192.168.1.1 ; then exit 1 fi
mais pas portable. "! commande", quoique posix, n'est malheureusement pas supporté par tout les shells.
Ah bon, d'accord. Mais comment on fait dans ce cas là pour inverser une condition ? On est obligé de passer par
if ... ; then true; else exit 1; fi
? (Hors l'astuce qui consisterai ici à passer par grep -v)
-- Alain.
Stephane Chazelas
2007-10-01, 01:38(+02), Cyrille Lefevre: [...]
Tous les Unix modernes ont leur sh standard qui le supportent.
euh, là, je me fache, tu veux qu'on parle du /usr/bin/sh de solaris ;^) [...]
Ah oui, mais le sh standard de Solaris est dans /usr/xpg4/bin ou /usr/xpg6/bin. Le /bin/sh ou /usr/bin/sh n'est la que pour assurer la backward compatibilité pour les vieux scripts.
-- Stéphane
2007-10-01, 01:38(+02), Cyrille Lefevre:
[...]
Tous les Unix
modernes ont leur sh standard qui le supportent.
euh, là, je me fache, tu veux qu'on parle du /usr/bin/sh de solaris ;^)
[...]
Ah oui, mais le sh standard de Solaris est dans /usr/xpg4/bin ou
/usr/xpg6/bin. Le /bin/sh ou /usr/bin/sh n'est la que pour
assurer la backward compatibilité pour les vieux scripts.
Tous les Unix modernes ont leur sh standard qui le supportent.
euh, là, je me fache, tu veux qu'on parle du /usr/bin/sh de solaris ;^) [...]
Ah oui, mais le sh standard de Solaris est dans /usr/xpg4/bin ou /usr/xpg6/bin. Le /bin/sh ou /usr/bin/sh n'est la que pour assurer la backward compatibilité pour les vieux scripts.
-- Stéphane
Marc
Alain Ketterlin wrote:
if ! netstat -rn | grep -q 192.168.1.1 ; then exit 1 fi
mais pas portable. "! commande", quoique posix, n'est malheureusement pas supporté par tout les shells.
Ah bon, d'accord. Mais comment on fait dans ce cas là pour inverser une condition ?
On utilise test (enfin "[").
Alain Ketterlin wrote:
if ! netstat -rn | grep -q 192.168.1.1 ; then
exit 1
fi
mais pas portable. "! commande", quoique posix, n'est malheureusement
pas supporté par tout les shells.
Ah bon, d'accord. Mais comment on fait dans ce cas là pour inverser
une condition ?
Euh, tu fais comment pour lancer une commande (comme le netstat et le grep ci-dessus) avec « test » ?
Euh ah ben j'ai peut-être répondu un peu vite... (on peut faire des trucs sales avec un echo $? mais on cherche des trucs propres)
Stephane Chazelas
2007-10-1, 13:12(+00), Marc:
Matthieu Moy wrote:
Euh, tu fais comment pour lancer une commande (comme le netstat et le grep ci-dessus) avec « test » ?
Euh ah ben j'ai peut-être répondu un peu vite... (on peut faire des trucs sales avec un echo $? mais on cherche des trucs propres)
Dans tous les cas, c'est une mauvaise idee de vouloir verifier l'exit code de cmd dans "cmd | grep -q pattern".
Car si "pattern" est trouvé, alors grep va se terminer et "cmd" pourra alors etre tuée par un SIGPIPE qui fera qu'elle retournera avec un code de 141 ou quelque chose comme ca.
Sinon, voir la question 11 de la FAQ de comp.unix.shell: http://cfaj.freeshell.org/shell/cus-faq-2.html#11
-- Stéphane
2007-10-1, 13:12(+00), Marc:
Matthieu Moy wrote:
Euh, tu fais comment pour lancer une commande (comme le netstat et le
grep ci-dessus) avec « test » ?
Euh ah ben j'ai peut-être répondu un peu vite... (on peut faire des trucs
sales avec un echo $? mais on cherche des trucs propres)
Dans tous les cas, c'est une mauvaise idee de vouloir verifier
l'exit code de cmd dans "cmd | grep -q pattern".
Car si "pattern" est trouvé, alors grep va se terminer et "cmd"
pourra alors etre tuée par un SIGPIPE qui fera qu'elle
retournera avec un code de 141 ou quelque chose comme ca.
Sinon, voir la question 11 de la FAQ de comp.unix.shell:
http://cfaj.freeshell.org/shell/cus-faq-2.html#11
Euh, tu fais comment pour lancer une commande (comme le netstat et le grep ci-dessus) avec « test » ?
Euh ah ben j'ai peut-être répondu un peu vite... (on peut faire des trucs sales avec un echo $? mais on cherche des trucs propres)
Dans tous les cas, c'est une mauvaise idee de vouloir verifier l'exit code de cmd dans "cmd | grep -q pattern".
Car si "pattern" est trouvé, alors grep va se terminer et "cmd" pourra alors etre tuée par un SIGPIPE qui fera qu'elle retournera avec un code de 141 ou quelque chose comme ca.
Sinon, voir la question 11 de la FAQ de comp.unix.shell: http://cfaj.freeshell.org/shell/cus-faq-2.html#11
-- Stéphane
Cumbalero
Dans tous les cas, c'est une mauvaise idee de vouloir verifier l'exit code de cmd dans "cmd | grep -q pattern".
D'autant que le pipe ne prend que la sortie standard en entrée et qu'on passe à coté des messages de la sortie d'erreurs.
A+ JF
Dans tous les cas, c'est une mauvaise idee de vouloir verifier
l'exit code de cmd dans "cmd | grep -q pattern".
D'autant que le pipe ne prend que la sortie standard en entrée et qu'on
passe à coté des messages de la sortie d'erreurs.
Dans tous les cas, c'est une mauvaise idee de vouloir verifier l'exit code de cmd dans "cmd | grep -q pattern".
D'autant que le pipe ne prend que la sortie standard en entrée et qu'on passe à coté des messages de la sortie d'erreurs.
A+ JF
Marc
Stephane Chazelas wrote:
Dans tous les cas, c'est une mauvaise idee de vouloir verifier l'exit code de cmd dans "cmd | grep -q pattern".
Euh je suis d'accord, mais j'imagine que là ce qui intéressait la personne est plutôt l'exit code de grep (du coup on peut enlever l'option -q et vérifier si la chaîne sortie par grep a une longueur 0).
Stephane Chazelas wrote:
Dans tous les cas, c'est une mauvaise idee de vouloir verifier
l'exit code de cmd dans "cmd | grep -q pattern".
Euh je suis d'accord, mais j'imagine que là ce qui intéressait la
personne est plutôt l'exit code de grep (du coup on peut enlever l'option
-q et vérifier si la chaîne sortie par grep a une longueur 0).
Dans tous les cas, c'est une mauvaise idee de vouloir verifier l'exit code de cmd dans "cmd | grep -q pattern".
Euh je suis d'accord, mais j'imagine que là ce qui intéressait la personne est plutôt l'exit code de grep (du coup on peut enlever l'option -q et vérifier si la chaîne sortie par grep a une longueur 0).