Voici ma batterie de tests: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 full = false if [! $full]; then echo "test 1" else echo "test 1: else! " fi # exécute le else full = false if [ $full]; then echo "test 2: then! Test arithmétique dans un script. " # exécute le then full = true echo "test 3" if [ true]; then echo "test 4" if [ false]; then echo "test 5: then! " if [ $full -eq false]; # ERREUR: [: true: nombre entier attendu comme expression if test $full -eq false # ERREUR: test: true: nombre entier attendu comme expression if test $full -eq $false # ERREUR: test: true: opérateur unaire attendu Quelqu'un pourrait-il m'expliquer (avec un GROS SVP): 1/ pourquoi le test 1 passe dans else 2/ pourquoi le test 2 passe dans then 3/ pourquoi le test 5 passe dans else 4/ les 3 dernières erreurs 5/ comment faire un test sur une variable boolean! Merci d'avance! 19/02/2015, 13h55 #2 en gros (parce que je ne vais pas faire tes exos), $ full contient une chaîne false. plus loin, c'est le code de retour des commandes true, puis false qui est testé (c'est un test booléen): le code de retour d'une commande est zéro (vrai), ou supérieur (faux).
19/02/2015, 14h48 #5 Je suis désolé mais y a beaucoup (trop? ) de subtilité... Envoyé par disedorgue true et false sont des commandes??? c'est le retour de la commande qui nous intéresse et non pas sa sortie. le retour et la sortie n'est pas la même chose? 19/02/2015, 15h01 #6 Il n'y a pas de variable de type booléen en shell, une fonction ou une commande peut te faire un retour booléen mais c'est tout. Test arithmétique caf de la. A partir du moment ou tu le vérifie depuis une variable, tu auras une valeur à comparer: 1 2 3 4 5 6 7 8 $ true $ toto = $? $ [ $toto -ne 0] && echo ko || echo ok ok $ false ko PS: le '$' en début de chaque ligne est mon prompt. 19/02/2015, 15h04 #7 Et la syntaxe, n'est certainement pas var=commande et d'ailleurs ni var=$(commande) ou var=`commande` car ici c'est le retour de la commande qui nous intéresse et non pas sa sortie. je suis d'un doute concernant ce que j'ai dit, car lors du développement d'une variable qui contient une commande, la commande est exécutée. c'est une chose que finalement je fais assez rarement.
:? ok je comprends c'est comme pour "protéger" les chemins de fichiers contenant des espaces... oui d'accord... mais Shell Bourne n'est pas très friendly:aie: Bon, malgré ces remarques je ne vois pas comment avoir une variable de type boolean, pour ensuite la tester à la manière d'un flag! :calim2: Je suis désolé mais y a beaucoup (trop? ) de subtilité... Test de l'arithmétique - Traduction en anglais - exemples français | Reverso Context. :( Envoyé par disedorgue true et false sont des commandes??? c'est le retour de la commande qui nous intéresse et non pas sa sortie. le retour et la sortie n'est pas la même chose? Il n'y a pas de variable de type booléen en shell, une fonction ou une commande peut te faire un retour booléen mais c'est tout. A partir du moment ou tu le vérifie depuis une variable, tu auras une valeur à comparer: 1 2 3 4 5 6 7 8 $ true $ toto = $? $ [ $toto -ne 0] && echo ko || echo ok ok $ false ko PS: le '$' en début de chaque ligne est mon prompt. Et la syntaxe, n'est certainement pas var=commande et d'ailleurs ni var=$(commande) ou var=`commande` car ici c'est le retour de la commande qui nous intéresse et non pas sa sortie.
Pokemon Gold Rom Ds, 2024