Héhé :) Si tu regardes bien, ce n’est pas exactement le même test
$[ -f $variablequinexistepas]&&echo ok ||echo ko
ok$[ -f "$variablequinexistepas"]&&echo ok ||echo ko
ko
Par moment on ne se souvient plus de pourquoi on fait les chose comme cela ...
La forme [[...]] permet en effet de se prémunir des variables vides non "quoté"s ...ou comportant des espaces, etc.
Effectivement ca fonctionne, mais je trouve plus logique : si quelque chose n'existe pas, je fais ..
Au contraire de si quelque chose existe ... je passe ? sinon je le créer.
Cette seconde forme se lit : vérifie si le répertoire existe, sinon crée le (et effectivement on ne fait rien s’il existe)
La première forme est littéralement : vérifie le contraire de si le répertoire existe (oui donc au final si le répertoire n’existe pas), puis alors crée le (sinon je passe)
"It is seldom that liberty of any kind is lost all at once." ― David Hume
[^] # Re: Programmation défensive en bash
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au journal Args parser pour shell. Évalué à 4.
Héhé :) Si tu regardes bien, ce n’est pas exactement le même test
La forme
[[...]]permet en effet de se prémunir des variables vides non "quoté"s ...ou comportant des espaces, etc.Cette seconde forme se lit : vérifie si le répertoire existe, sinon crée le (et effectivement on ne fait rien s’il existe)
La première forme est littéralement : vérifie le contraire de si le répertoire existe (oui donc au final si le répertoire n’existe pas), puis alors crée le (sinon je passe)
"It is seldom that liberty of any kind is lost all at once." ― David Hume