Bonjour a tous,
j'ai declare une variable d'environnement a l'exterieur de mon script
SUBSCRIPT=mail
export $SUBSCRIPT
ma question est comment dans un script shell, voire si cette variable est renseigne sans la lance bien sur, juste pour voir si elle n'est pas vide.
car quand je fais ca :
if [ ${SUBSCRIPT} ]
then
echo "subscript defined"
else
echo "not defined"
fi
il me lance le program mail !!!
merci
# c'est bon
Posté par Edouard Ouin . Évalué à 2.
if [ $?SUBSCRIPT ]
# variable d'environnement
Posté par zone4 . Évalué à 3.
#> man test
L'option -z peut être utilisée :
if [ ! -z $SUBSCRIPT ]
then
...
Ou, plus fréquemment, utlisée dans les scripts, l'écriture suivante :
if [ ! "X$SUBSCRIPT" = "X" ]
then
...
z4.
[^] # plus simple
Posté par Bastien Mourgues . Évalué à 3.
then
...
-n : teste qu'une chaine n'est pas nulle
et note la présence des "" autour de la variable : pour ne pas être embêté quand elle n'est pas définie ....
# test
Posté par B. franck . Évalué à 3.
export SUBSCRIPT='/usr/bin/mail'
if [ -x ${SUBSCRIPT} ] then
echo "subscript defined"
else
echo "cannot execute ${SUBSCRIPT}"
fi
en même temps ce test vérifiera si $SUBSCRIPT est exécutable...
exporter une variable n'est pas exporter son contenu...(houst le $, t'es pas en perl)
nb: il vaut mieux mettre le chemin complet de ta commande dans la variable
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.