#!/bin/bash #var3 est nulle, non déclarée, (ou non initialisée) : sa valeur est nulle #var2 est initialisée mais sans valeur : sa une valeur vide var1=ma_variable var2= var2bis=" " [ ${var1} ] && echo "$var1" # => ma_variable [ -n ${var1} ] && echo "$var1" # => ma_variable [ -n $var1 ] && echo "$var1" # => ma_variable #ou encore : test $var1 && echo "ok" # => ok test -n $var1 && echo "ok var1 contient quelque-chose" # => ok var1 contient quelque-chose test -z $var1 || echo "NON: var1 ne contient pas rien" # => NON: var1 ne contient pas rien echo " " [ -z $var2 ] && echo "var2: ${#var2} a une valeur vide : ne contient rien" # => var2: 0 a une valeur vide : ne contient rien [ -n $var2 ] && echo "var2: une valeur vide contient 0 : du vide !" # => var2: une valeur vide contient 0 : du vide ! [ -z $var2bis ] && echo "var2bis: comme var2" # => var2bis: comme var2 [ -n $var2bis ] && echo "var2bis: comme var2" # => var2bis: comme var2 echo " " [ -n $var3 ] && echo "ET avec -n: une variable nulle contient aussi du vide" # => ET avec -n: une variable nulle contient aussi du vide [ -n $var3 ] || echo "OU avec -n" # PAS DE RETOUR puisque la première commande a renvoyé le code de retour 0. [ -z $var3 ] && echo " OU avec -z une variable nulle contient aussi du vide" # => OU avec -z une variable nulle contient aussi du vide [ -z $var3 ] || echo " OU avec -z" # PAS DE RETOUR puisque la première commande a renvoyé le code de retour 0.