Boucle la variable qui ne s'affiche pas correctement ?

Résolu
xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    pourquoi ne pas utiliser un tableau ? ça serait plus simple dans ton cas
    (sinon j'essais de retrouver comment on fait en shell)
    0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  3. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    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
  4. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Quel shell ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Euh... non ;-\

      echo $0
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ou si tu préfères quel shebang en haut de ton script ?
      0
  7. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    En haut du script
    #!/bin/bash


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


    Dois je changer ?

    Merci.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Et le shebang de ton script c'est bien "#!/bin/bash" aussi ?
      Tu lances bien ton script comme ça : ./ton_script.sh ?
      0
  8. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ne pas oublier que sous Ubuntu sh = lien symbolique vers /bin/dash et non /bin/bash ;-\
      0