#!/bin/bash
# "liste ET"

if [ ! -z "$1" ] &amp;&amp; echo "Argument #1 = $1" &amp;&amp; [ ! -z "$2" ] \
&amp;&amp; echo "Argument #2 = $2"
then
  echo "Au moins deux arguments passés au script."
  # Toute la commande chaînée doit être vraie.
else
  echo "Moins de deux arguments passés au script."
  # Au moins une des commandes de la chaîne a renvoyé faux.
fi  
# Notez que "if [ ! -z $1 ]" fonctionne mais que son supposé équivalent,
#  if [ -n $1 ] ne fonctionne pas.
#    Néanmoins, mettre entre guillemets corrige cela :
#  if [ -n "$1" ] fonctionne.
#    Attention !
# Il est toujours mieux de mettre entre guillemets les variables testées.


# Ceci accomplit la même chose en utilisant une instruction if/then pure.
if [ ! -z "$1" ]
then
  echo "Argument #1 = $1"
fi
if [ ! -z "$2" ]
then
  echo "Argument #2 = $2"
  echo "Au moins deux arguments passés au script."
else
  echo "Moins de deux arguments passés au script."
fi
# C'est plus long et moins élégant que d'utiliser une "liste ET".


exit 0
