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

test -d

41 réponses
Avatar
Thomas
bonjour :-)


avant je faisait
test -d sauvegardes/ && cd sauvegardes/
pour aller dans le dossier seulement si il existe,

et comme un *** j'ai transformé ca en
test -d sauvegardes/ && mkdir sauvegardes/
cd sauvegardes/
pour creer le dossier si il existe pas

(avec
#!/bin/sh -
)


pendant que j'essaye de reparer mes ****ries,
est ce que qqn peut m'indiquer comment on inverse le test svp ?

--
Informations sur Nicolas Sarkozy :
http://www.betapolitique.fr/spip.php?article0602
http://www.betapolitique.fr/spip.php?article0601
http://www.betapolitique.fr/spip.php?article0414
http://www.betapolitique.fr/spip.php?article0606
http://tDeContes.hd.free.fr/divers/Ruptures.pdf

10 réponses

1 2 3 4 5
Avatar
Stephane Chazelas
2007-07-15, 11:53(+02), Thomas:
[...]
avant je faisait
test -d sauvegardes/ && cd sauvegardes/
pour aller dans le dossier seulement si il existe,

et comme un *** j'ai transformé ca en
test -d sauvegardes/ && mkdir sauvegardes/
cd sauvegardes/
pour creer le dossier si il existe pas

(avec
#!/bin/sh -
)


pendant que j'essaye de reparer mes ****ries,
est ce que qqn peut m'indiquer comment on inverse le test svp ?


test ! -d sauvegardes

ou

! test -d sauvegardes

Mais ce n'est pas la bonne facon de faire.

test ! -d sauvegardes

renverra true si sauvegardes n'existe pas mais aussi s'il existe
et n'est pas un repertoire (ou un lien symbolique vers un
repertoire).

Je te suggere plutot:

mkdir sauvegardes 2> /dev/null
cd sauvegardes || exit

Note que mentionner "/bin/sh" n'est pas assez pour decrire quel
shell tu utilises. Ca peut etre un sh POSIX, mais ca peut aussi
etre un sh Bourne comme dans les tres vieux systemes ou les
systemes qui l'ont laissé la pour backward compatibility (comme
Solaris). Pour avoir un sh POSIX, il est parfois preferable
d'omettre la ligne "#! ..." (qui n'est pas POSIX).

Le Bourne shell ne connait pas la syntaxe ! cmd.

--
Stéphane

Avatar
Nicolas George
Stephane Chazelas wrote in message
:
renverra true si sauvegardes n'existe pas mais aussi s'il existe
et n'est pas un repertoire (ou un lien symbolique vers un
repertoire).


Et il renverra false s'il n'existe pas, mais qu'il est créé un time-slice
plus tard.

Avatar
Nicolas S.

Et il renverra false s'il n'existe pas, mais qu'il est créé un time-slice
plus tard.


Je suis bien d'accord. Il devrait y a voir un truc du genre "$?" qui
traine quelque part pour vraiment bien faire...

--
Nicolas S.

Avatar
Nicolas George
"Nicolas S." wrote in message <f7e550$f2u$:
Je suis bien d'accord. Il devrait y a voir un truc du genre "$?" qui
traine quelque part pour vraiment bien faire...


Non, le && en joue déjà le rôle. On ne doit presque jamais tester avant de
faire quelque chose : on essaie de faire, et on regarde si ça a marché.
L'autre solution ouvre la porte à des race conditions.

Avatar
Nicolas S.
"Nicolas S." wrote in message <f7e550$f2u$:
Je suis bien d'accord. Il devrait y a voir un truc du genre "$?" qui
traine quelque part pour vraiment bien faire...


Non, le && en joue déjà le rôle.


Au time-slice près, comme tu le dis toi-même.

On ne doit presque jamais tester avant de
faire quelque chose : on essaie de faire, et on regarde si ça a marché.
L'autre solution ouvre la porte à des race conditions.


D'où la récupération du résultat... Quelle différence tu vois en ton
propos et le mien?

--
Nicolas S.


Avatar
Nicolas George
"Nicolas S." wrote in message <f7e7ef$gb3$:
Au time-slice près, comme tu le dis toi-même.


Non, un test sur $? et un && ont exactement le même effet.

D'où la récupération du résultat... Quelle différence tu vois en ton
propos et le mien?


Ton propos est à côté de la plaque : tu proposes de changer la forme (un $?
pour un &&) sans changer la structure, alors que c'est la structure qui est
mauvaise.

Avatar
Nicolas S.
Ton propos est à côté de la plaque : tu proposes de changer la forme (un $?
pour un &&) sans changer la structure, alors que c'est la structure qui est
mauvaise.


J'ai bien oublié de dire où placer le test hier soir... Mais où ai-je
dis de remplacer un && par un $??

--
Nicolas S.

Avatar
Nicolas George
"Nicolas S." wrote in message <f7gbvq$hj7$:
J'ai bien oublié de dire où placer le test hier soir... Mais où ai-je
dis de remplacer un && par un $??


J'ai extrapolé de la seule manière plausible sur ce que tu as dit. Si tu
voulais dire autre chose, il fallait être plus précis. Et il faudrait
toujours l'être, parce que pour le moment, tu n'as toujours rien dit.

Avatar
Stephane Chazelas
2007-07-16, 20:05(+02), Nicolas S.:
Ton propos est à côté de la plaque : tu proposes de changer la forme (un $?
pour un &&) sans changer la structure, alors que c'est la structure qui est
mauvaise.


J'ai bien oublié de dire où placer le test hier soir... Mais où ai-je
dis de remplacer un && par un $??


Alors, si on resume, ou est-ce que tu veux le mettre, ton test
de $? ?

--
Stéphane


Avatar
Nicolas S.
"Nicolas S." wrote in message <f7gbvq$hj7$:
J'ai bien oublié de dire où placer le test hier soir... Mais où ai-je
dis de remplacer un && par un $??


J'ai extrapolé de la seule manière plausible sur ce que tu as dit. Si tu
voulais dire autre chose, il fallait être plus précis. Et il faudrait
toujours l'être, parce que pour le moment, tu n'as toujours rien dit.


C'est vrai, J'ai été imprécis, et je le concède sans problème.
Et pour bien faire, je viens de m'apercevoir que j'avais raté une partie
de la réponse de Stéphane.
Je vais complètement dans son sens:

mkdir rep 2>/dev/null
cd rep || exit

Le || après le cd joue parfaitement son rôle. Après, que ce soit fait
par un $?, un && ou un ||, le résultat est là.

Promis, j'arrête de répondre après 23h30. :-)
Méaculpa.

--
Nicolas S.


1 2 3 4 5