logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-06-2021 23:17:47

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Avec /bin/sh comment vérifier si une variable est déclarée

Chez bash on a

test -v varname


et chez dash on a rien ? yikes


virtue_signaling.pngpalestine.png

Hors ligne

#2 24-06-2021 13:00:52

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : Avec /bin/sh comment vérifier si une variable est déclarée

Je réponds peut-être à coté, mais, tongue,

Il me semble que tout ce qui est test avec un seul crochet '[ ... ]' est compatible posix, donc dispo un peu partout. Les tests avec double '[[ ... ]]' eux ne sont pas présent dans tout les shells.
On ne teste pas l'existence d'une variable en tant que tel, mais plutôt si elle contient quelque chose:

       -n STRING
              the length of STRING is nonzero

       -z STRING
              the length of STRING is zero
 

,une variable "non déclarée" étant toujours égal à un chaîne de longueur nulle. (Enfin, moi je fais comme ça... tongue )

Hors ligne

#3 24-06-2021 16:20:36

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : Avec /bin/sh comment vérifier si une variable est déclarée

Ici j’utilise aussi les options -n et -z de l’opérateur de test.

Ça ne permet pas de différencier une variable vide d’une variable non-définie, mais jusqu’ici je n’ai jamais croisé ce besoin de distinction.

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#4 24-06-2021 18:37:32

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : Avec /bin/sh comment vérifier si une variable est déclarée

D'acc. Donc mon cas c'est juste que j'utilisais le "set -u" pendant que j'écrit le script, du coup tester si la variable était déclaré faisait planter. Mais bon. J'avoue que c'est pas du tout essentiel ni difficile à contourner, j'étais juste curieux lol

virtue_signaling.pngpalestine.png

Hors ligne

Pied de page des forums