Voila le bout de mon script, avec en commentaires mon objectif.
Citation :
#!/bin/bash
########################################
# Test original actuellement en prod ###
########################################
MOUNT=`which mount 2>/dev/null`
NAIL=`which nail 2>/dev/null`
UMOUNT=`which umount 2>/dev/null`
RSYNC=`which rsync 2>/dev/null`
if [ -z ${MOUNT} ]; then unavailable "mount" EXIT; fi
if [ -z ${NAIL} ]; then unavailable "nail" EXIT; fi
if [ -z ${UMOUNT} ]; then unavailable "umount" EXIT; fi
if [ -z ${RSYNC} ]; then unavailable "rsync" EXIT; fi
################################################
# Avec la boucle for, ce que j'ESSAI de faire ##
################################################
LIST="mount umount rsync nail"
for VAR in ${LIST} do
VAR=`echo "${VAR}"|tr '[:lower:]' '[:upper:]'` #Toutes les variables en majuscules
${VAR}=`which ${VAR} 2>/dev/null` #Vérifie la présence du soft
# Objectif ${VAR} doit être en faite MOUNT pour le premier tour de boucle, voir ci dessous
# MOUNT=`which ${VAR} 2>/dev/null`
if [ -z ${MOUNT} ]; then mafonction "${VAR}" EXIT; fi
export MOUNT # Export OBLIGATOIRE, c'est bien la le soucis.
# Evidement à la place de ${MOUNT} on doit avoir consécutivement ${UMOUNT} ${RSYNC} et enfin ${NAIL}
done
|
Merci d'avance!
Pour info, ni {!VAR} ni $${VAR} ne font ce que je veux.
Edit: Et je sais qu'il existe une méthode propre et rapide pour le faire, mais impossible de retrouver.
Message édité par mdvore le 26-05-2009 à 12:21:56