if [ ! -f /tmp/toto ]; then echo >&2 "probleme ..." exit 1 fi
Note que "-f" ne fait pas que verifier que /tmp/toto, il verifie aussi que /tmp/toto est un fichier regulier (ou un lien symbolique vers un fichier regulier). Tu peux avoir un repertoire /tmp/toto (ou socket/device/pipe/door...) et alors [ -f /tmp/toto ] retournera "false".
pour verifier que /tmp/toto (si on le peut), c'est if [ -e /tmp/toto ]; then... (marchera pas forcement pour les liens symboliques vers un fichier qui n'existe pas ou dont on ne peut pas verifier l'existence)
ou de maniere plus portable:
if ls -d /tmp/toto > /dev/null 2>&1; then...
(voir l'option -L de ls si on veut verifier que le fichier pointé par le lien symbolique existe).
if [ ! -f /tmp/toto ]; then
echo >&2 "probleme ..."
exit 1
fi
Note que "-f" ne fait pas que verifier que /tmp/toto, il verifie
aussi que /tmp/toto est un fichier regulier (ou un lien
symbolique vers un fichier regulier). Tu peux avoir un
repertoire /tmp/toto (ou socket/device/pipe/door...) et alors [
-f /tmp/toto ] retournera "false".
pour verifier que /tmp/toto (si on le peut), c'est
if [ -e /tmp/toto ]; then...
(marchera pas forcement pour les liens symboliques vers un
fichier qui n'existe pas ou dont on ne peut pas verifier
l'existence)
ou de maniere plus portable:
if ls -d /tmp/toto > /dev/null 2>&1; then...
(voir l'option -L de ls si on veut verifier que le fichier
pointé par le lien symbolique existe).
if [ ! -f /tmp/toto ]; then echo >&2 "probleme ..." exit 1 fi
Note que "-f" ne fait pas que verifier que /tmp/toto, il verifie aussi que /tmp/toto est un fichier regulier (ou un lien symbolique vers un fichier regulier). Tu peux avoir un repertoire /tmp/toto (ou socket/device/pipe/door...) et alors [ -f /tmp/toto ] retournera "false".
pour verifier que /tmp/toto (si on le peut), c'est if [ -e /tmp/toto ]; then... (marchera pas forcement pour les liens symboliques vers un fichier qui n'existe pas ou dont on ne peut pas verifier l'existence)
ou de maniere plus portable:
if ls -d /tmp/toto > /dev/null 2>&1; then...
(voir l'option -L de ls si on veut verifier que le fichier pointé par le lien symbolique existe).
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce ";". Il ne sert pas a grand chose. (Le && dans mon exemple est plus qu'inutile mais ce n'est qu'un exemple pour illustrer le op || { op && op; }
Merci a tous.
Nicolas George <nicolas$george@salle-s.org> wrote in message news:<clofl2$2iab$1@biggoron.nerim.net>...
AT.Choum wrote in message
<fac236de.0410270737.41d91ca0@posting.google.com>:
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié
le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce
";". Il ne sert pas a grand chose.
(Le && dans mon exemple est plus qu'inutile mais ce n'est qu'un
exemple pour illustrer le op || { op && op; }
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce ";". Il ne sert pas a grand chose. (Le && dans mon exemple est plus qu'inutile mais ce n'est qu'un exemple pour illustrer le op || { op && op; }
Merci a tous.
Stephane Chazelas
2004-10-28, 01:25(-07), AT.Choum:
Nicolas George <nicolas$ wrote in message news:<clofl2$2iab$...
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce ";". Il ne sert pas a grand chose.
Si, essaie:
echo exit 1 } (pas en zsh)
et
echo exit 1 )
Et tu comprendras.
{ et } sont des keywords. Quand ils ne sont pas en debut de ligne de commande, ils ne sont pas speciaux (sauf pour zsh, et ils peuvent aussi etre impliqués dans les brace expansion {a,b} et les variables ${var}). C'est comme pour "if", "then"... (tu peux ecrire "echo then", ce n'est pas une erreur, heureusement).
-- Stephane
2004-10-28, 01:25(-07), AT.Choum:
Nicolas George <nicolas$george@salle-s.org> wrote in message news:<clofl2$2iab$1@biggoron.nerim.net>...
AT.Choum wrote in message
<fac236de.0410270737.41d91ca0@posting.google.com>:
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié
le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce
";". Il ne sert pas a grand chose.
Si, essaie:
echo exit 1 }
(pas en zsh)
et
echo exit 1 )
Et tu comprendras.
{ et } sont des keywords. Quand ils ne sont pas en debut de
ligne de commande, ils ne sont pas speciaux (sauf pour zsh, et
ils peuvent aussi etre impliqués dans les brace expansion {a,b}
et les variables ${var}). C'est comme pour "if", "then"... (tu
peux ecrire "echo then", ce n'est pas une erreur, heureusement).
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce ";". Il ne sert pas a grand chose.
Si, essaie:
echo exit 1 } (pas en zsh)
et
echo exit 1 )
Et tu comprendras.
{ et } sont des keywords. Quand ils ne sont pas en debut de ligne de commande, ils ne sont pas speciaux (sauf pour zsh, et ils peuvent aussi etre impliqués dans les brace expansion {a,b} et les variables ${var}). C'est comme pour "if", "then"... (tu peux ecrire "echo then", ce n'est pas une erreur, heureusement).
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce ";". Il ne sert pas a grand chose.
Si, essaie: echo exit 1 } (pas en zsh) et echo exit 1 ) Et tu comprendras.
ok compris. Merci.
Stephane Chazelas <cette.adresse@est.invalid> wrote in message
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié
le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce
";". Il ne sert pas a grand chose.
Si, essaie:
echo exit 1 }
(pas en zsh)
et
echo exit 1 )
Et tu comprendras.
C'est ok. En fait j'avais deja essaye avec les {} mais j'avais oublié le ; de la fin et donc j'avais laissé de coté. Curieux quand meme ce ";". Il ne sert pas a grand chose.
Si, essaie: echo exit 1 } (pas en zsh) et echo exit 1 ) Et tu comprendras.