URL: https://linuxfr.org/forums/programmation-shell/posts/variables-dans-un-shell-script-sh Title: Variables dans un shell script (sh) Authors: By ZeB Date: 2005年12月05日T09:57:51+01:00 Tags: Score: 0 Bonjour à tous, Je me trouve confronté à un petit problème de gestion de mes variables dans un shell script. Le but de ce script est de lancer des commandes rsync. Tout d'abord, sachez que j'utilise le shell "normal" (/bin/sh). #!/bin/sh _ Ensuite, je définis 3 variables que j'exporte _ PATH_SOURCE="/opt" PATH_DESTINATION="/opt/destination" export PATH_SOURCE PATH_DESTINATION_1 PATH_DESTINATION_2 _ Ensuite, je définis d'autres variables, qui sont en fait, une concatenation des 3 variables précédentes, que j'exporte également _ PSRC1="$PATH_SOURCE/dir1/dir2/dir3" PDST1="$PATH_DESTINATION_1/dir1/dir2/dir3" PSRC2="$PATH_SOURCE/dir4/dir5" PDST2="$PATH_DESTINATION_1/dir4/dir5" PSRC3="$PATH_SOURCE/dir6/dir7/dir8" PDST3="$PATH_DESTINATION_1/dir6/dir7/dir8" PSRC4="$PATH_SOURCE/dir9" PDST4="$PATH_DESTINATION_1/dir9" PSRC5="$PATH_SOURCE/dir1/dir4/dir3" PDST5="$PATH_DESTINATION_1/dir1/dir4/dir3" export PSRC1 PDST1 PSRC2 PDST2 PSRC3 PDST3 PSRC4 PDST4 PSRC5 PDST5 _ Pour l'instant, je lance, une à une les commandes rsync _ rsync -crtvz --delete -e "ssh -i key_id_dsa" $PSRC1 MonUserDistant@MaMachineDistante:$PDST1 rsync -crtvz --delete -e "ssh -i key_id_dsa" $PSRC2 MonUserDistant@MaMachineDistante:$PDST2 rsync -crtvz --delete -e "ssh -i key_id_dsa" $PSRC3 MonUserDistant@MaMachineDistante:$PDST3 rsync -crtvz --delete -e "ssh -i key_id_dsa" $PSRC4 MonUserDistant@MaMachineDistante:$PDST4 rsync -crtvz --delete -e "ssh -i key_id_dsa" $PSRC5 MonUserDistant@MaMachineDistante:$PDST5 _ Ceci est une bribe de script, le script reel est bien plus important et devient ingérable du fait de sa longueur excessive. J'en viens donc à ma question : Comment faire pour utiliser des variables de remplacement dans une boucle for (par exemple), sachant que que je veux récupérer le contenu des variables associées au $i parcouru dans la boucle for ... mais je n'y parviens pas :( _ For i in 1 2 3 4 5; do #echo $i #echo PSRC$i #echo `PSRC$i` rsync -crtvz --delete -e "ssh -i key_id_dsa" $PSRC$i MonUserDistant@MaMachineDistante:$PDST$i done D'avance un grand merci de votre aide (précieuse)