Re: bash et condition avec le if

Rémi Voirin via gull <gull-04vmY7CpswVinyhjFObuvR+/[email protected]>
Newsgroups gmane.org.user-groups.gull.general
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.