Salut Cédric,
Dans les cas simples :
- -o et -a sont gérés par test (man test)
- || et && sont gérés par bash
Si je comprends bien, tu te demandes comment gérer les priorités dans
les opérations || et && dans les if, quand il y en a plusieurs, en bash ?
Selon le man, partie "Lists" : Of these list operators, && and || have
equal precedence, followed by ; and &, which have equal precedence.
Séparer en deux "if" pour marquer la priorité entre deux opérations "et"
ou "ou", n'est-ce pas une bonne solution au moins pour la lisibilité ?
Autrement :
> [[ -n filepath ]]
-n c'est pour tester l'existence de contenu d'une variable, un filepath
même inexistant va te retourner vrai car la chaine testée est forcément
plus longue que "".
Bonne soirée !
Rémi
On 3/29/22 21:34, Cédric BRINER via gull wrote:
Salut à tous,
J'ai beau écrire pas mal de script en bash, j'ai toujours pas compris
comment faire des if avec des "ou" ou avec des "et".
en python, je peux écrire
if ("a" == "b")and("c" == "c"):
echo "succes"
else
echo "pas succes"
comment peut-on faire un truc pareil en shell:
j'ai vu qu'il y a :
- l'opérateur "-o" "-a"
- l'opérateur || ou &&
et comment est-ce que ça fonctionne avec des trucs un peu plus
complexe comme:
if (("a"=="b")or("a"=="d"))and("a"=="d")
Si quelqu'un a une bonne documentation sur le sujet.
et ce serait bien aussi de pouvoir faire un
if [[ -x filepath ]] and [[ -n filepath ]]
D'avance merci pour vos lumières.
cED
_______________________________________________
gull mailing list
[email protected]
https://forum.linux-gull.ch/mailman/listinfo/gull
_______________________________________________
gull mailing list
[email protected]
https://forum.linux-gull.ch/mailman/listinfo/gull