Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

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

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

#1 24-06-2021 00: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


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

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

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
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 17:20:36

vv222
Administrateur
Lieu : Bretagne
Distrib. : GNU/Linux Debian « Sid »
Noyau : Linux ≥ 5.10 (amd64)
(G)UI : Openbox
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 !

Hors ligne

#4 24-06-2021 19: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

datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

Pied de page des forums