Boucle la variable qui ne s'affiche pas correctement ?

Résolu/Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 8 févr. 2013 à 17:35
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 8 févr. 2013 à 18:51
Bonjour,

Je n'arrive pas a comprendre pourquoi la variable dans ma boucle for "$P$n" ne s'affiche pas correctement, uniquement le nombre s'affiche ??
Pourquoi ?
Comment puis je faire ?
Merci.

nombre=10
device=/dev/sda

P0="$device" 
P1="/" 
P2="Swap"
P3="/var"
P4="/var/www"
P5="/opt"
P6="/tmp"
P7="/usr"
P8="/home"
P9="/media/travvail"
P10="/media/sauvegarde"


  echo ""
  echo " $device ($P0)"
  echo "     |"
 
for n in 'seq 1 $nombre';
 do
  echo "     +- $device$n ($P$n)"
 done

 


7 réponses

katsuo49 Messages postés 330 Date d'inscription vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
Modifié par katsuo49 le 8/02/2013 à 17:53
pourquoi ne pas utiliser un tableau ? ça serait plus simple dans ton cas
(sinon j'essais de retrouver comment on fait en shell)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
8 févr. 2013 à 17:59
Salut,

Un seul mot "INDIRECTION" :

#!/bin/bash

nombre=5
device=/dev/sda

P0="$device" 
P1="/" 
P2="Swap"
P3="/var"
P4="/var/www"
P5="/opt"
P6="/tmp"
P7="/usr"
P8="/home"
P9="/media/travvail"
P10="/media/sauvegarde"


  echo ""
  echo " ${device} (${P0})"
  echo "     |"
 
for n in $(seq ${nombre});
 do
  P="P${n}"
  echo "     +- ${device}${n} ( ${!P})"
 done

0
katsuo49 Messages postés 330 Date d'inscription vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
8 févr. 2013 à 18:01
J'ai trouvé.
Je te montre un exemple simple après t'as juste à adapter ;)
#!/bin/bash
var1="contenu_de_ma_variable"
un=1
echo $var1
eval echo \$var${un}

les deux dermières lignes affichant la même chose voilà ;)
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 8/02/2013 à 18:08
Bonsoir,

Zipe31 cher moi j'ai l'erreur suivante avec votre code modifier ci dessus :

/home/laurent/bash/Partitionnement-automatique-dun-disque-dur-installation-serveur.sh: 25: /home/laurent/bash/Partitionnement-automatique-dun-disque-dur-installation-serveur.sh: Bad substitution


La ligne 25 est :
  echo "     +- ${device}${n} ( ${!P})"


Merci.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
8 févr. 2013 à 18:10
Quel shell ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
8 févr. 2013 à 18:19
Konsole Terminal

laurent@PC-ubuntu:~$ konsole -v
Qt : 4.8.1
Plate-forme de développement de KDE : 4.8.5 (4.8.5)
Konsole : 2.8.5
laurent@PC-ubuntu:~$ 


Merci.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
8 févr. 2013 à 18:20
Euh... non ;-\

echo $0
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
Modifié par zipe31 le 8/02/2013 à 18:20
Ou si tu préfères quel shebang en haut de ton script ?
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 8/02/2013 à 18:33
En haut du script
#!/bin/bash


laurent@PC-ubuntu:~$ echo $0  
/bin/bash  
laurent@PC-ubuntu:~$ 


Dois je changer ?

Merci.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
8 févr. 2013 à 18:33
Et le shebang de ton script c'est bien "#!/bin/bash" aussi ?
Tu lances bien ton script comme ça : ./ton_script.sh ?
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
8 févr. 2013 à 18:45
Au pardon c'est de ma faute, erreur de ma part.

Je le lancé comme ceci :
sh /mon_script.sh

au lien de :
bash /mon_script.sh

C'est bon ça marche ?
Désolé pour le dérangement.
Merci.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
8 févr. 2013 à 18:51
Ne pas oublier que sous Ubuntu sh = lien symbolique vers /bin/dash et non /bin/bash ;-\
0