test -d

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane Chazelas
Le #755983
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

Nicolas George
Le #755982
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.

Nicolas S.
Le #755702

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.

Nicolas George
Le #755701
"Nicolas S." wrote in message
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.

Nicolas S.
Le #755700
"Nicolas S." wrote in message
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.


Nicolas George
Le #755699
"Nicolas S." wrote in message
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.

Nicolas S.
Le #755698
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.

Nicolas George
Le #755697
"Nicolas S." wrote in message
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.

Stephane Chazelas
Le #755696
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


Nicolas S.
Le #755695
"Nicolas S." wrote in message
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.


Publicité
Poster une réponse
Anonyme