Afficher côte à cote plusieurs sortie de boucle for

Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour, j'ai écris un algo pour calculer des sous réseaux (FLSM), il fonctionne bien, mais le problème c'est que je n'arrive pas à afficher le résultat par colonne (côte à côte)

EX de ce que je souhaiterai :

reseau 1er der broadcast

10.0.0.0 10.0.0.1 10.0.0.254 10.0.0.255
boucle 1 boucle 2 boucle 3 boucle 4

je vous donne mon code si vous souhaitez l'exec, pour plus de précision :

#!/bin/bash
#!/bin/sh
clear
echo -e "\n CIDR / Subnetting FLSM | by brlndtech "
tput cup 2 1
echo [
tput cup 2 38
echo ]
i=2
while [ $i -ne 38 ] ; do
    tput cup 2 $i
    echo -e "=>\c"
    i=$(($i + 1))
    sleep 0.01
done
echo -e "\n Loading = OK "
sleep 1
startt="O"
clear
while [ $startt = 'O' ] || [ $startt = 'o' ]
do
  read -p "Entrer un /CIDR 1-32 : " cidr
  if [ $cidr -gt 0 ] && [ $cidr -le 8 ]; then 
    # let " xposant= 32 - $cidr "
    let " res = 2 ** cidr "
    let " pas = 256 / $res "
    let " netmask = 256 - $pas "
    let " wildcard = $pas - 1 "
    echo -e "/$cidr en décimal pointé = $netmask.0.0.0"
    echo -e "wildcard mask = $wildcard.255.255.255"
    read -p "Saisir un autre masque ? (O/N) : " startt
    clear
  elif [ $cidr -gt 8 ] && [ $cidr -le 16 ]; then 
    # let " xposant= 32 - $cidr "
    read -p "Entrer une @ ipv4 : " ipv4
    ip_1octet=`echo $ipv4 | cut -f1 -d.`
    ip_cut="$ip_1octet.0.0.0"
    let " exposant = $cidr - 8  "
    let " res = 2 ** exposant "
    let " pas = 256 / $res "
    let " dernier = pas - 1"
    let " netmask = 256 - $pas "
    let " wildcard = $pas - 1 "
    echo -e "$ip_cut/$cidr"
    echo
      for ((i = 0 ; i <= 255; i += $pas))
      do
        echo -e "Res @ : $ip_1octet.$i.0.0"
      done
      echo
      for ((i = 0 ; i <= 255; i += $pas))
      do
        echo -e "1er @ : $ip_1octet.$i.0.1"
      done
      echo
      for ((j = $dernier ; j <= 256; j += $pas))
      do
        echo -e "Der @ : $ip_1octet.$j.255.254"
      done
      echo
      for ((j = $dernier ; j <= 256; j += $pas))
      do
        echo -e "Broadcast @ : : $ip_1octet.$j.255.255"
      done 
      echo
    echo -e "/$cidr en décimal pointé = 255.$netmask.0.0"
    echo -e "wildcard mask = 0.$wildcard.255.255"
    read -p "Saisir un autre masque ? (O/N) : " startt
    clear
  elif [ $cidr -gt 16 ] && [ $cidr -le 24 ]; then 
    # let " xposant= 32 - $cidr "
    read -p "Entrer une @ ipv4 : " ipv4
    ip_1octet=`echo $ipv4 | cut -f1 -d.`
    ip_2octet=`echo $ipv4 | cut -f2 -d.`
    ip_cut="$ip_1octet.$ip_2octet.0.0"
    let " exposant = $cidr - 16  "
    let " res = 2 ** exposant "
    let " pas = 256 / $res "
    let " dernier = pas - 1"
    let " netmask = 256 - $pas "
    let " wildcard = $pas - 1 "
    echo
    echo -e "$ip_cut/$cidr"
      for ((i = 0 ; i <= 255; i += $pas))
      do
        echo -e "Res @ : $ip_1octet.$ip_2octet.$i.0"
      done
      echo
      for ((i = 0 ; i <= 255; i += $pas))
      do
        echo -e "1er @ : $ip_1octet.$ip_2octet.$i.1"
      done
      echo
      for ((j = $dernier ; j <= 256; j += $pas))
      do
        echo -e "Der @ : $ip_1octet.$ip_2octet.$j.254"
      done
      echo
      for ((j = $dernier ; j <= 256; j += $pas))
      do
        echo -e "Broadcast @ :  $ip_1octet.$ip_2octet.$j.255"
      done 
      echo
    echo ""
    echo -e "/$cidr en décimal pointé = 255.255.$netmask.0"
    echo -e "wildcard mask = 0.0.$wildcard.255"
    read -p "Saisir un autre masque ? (O/N) : " startt
    clear
  elif [ $cidr -gt 24 ] && [ $cidr -le 32 ]; then
    read -p "Entrer une @ ipv4 : " ipv4
    ip_1octet=`echo $ipv4 | cut -f1 -d.`
    ip_2octet=`echo $ipv4 | cut -f2 -d.`
    ip_3octet=`echo $ipv4 | cut -f3 -d.`
    ip_cut="$ip_1octet.$ip_2octet.$ip_3octet.0"
    # let " xposant= 32 - $cidr "
    let " exposant = $cidr - 24  "
    let " res = 2 ** exposant "
    let " pas = 256 / $res "
    let " dernier = pas - 1"
    let " netmask = 256 - $pas "
    let " wildcard = $pas - 1 "
    echo -e "$ip_cut/$cidr"
      for ((i = 0 ; i <= 255; i += $pas))
      do
        echo -e "Res @ : $ip_1octet.$ip_2octet.$ip_3octet.$i"
      done
      echo
      for ((i = 0 ; i <= 255; i += $pas))
      do
        let " un = i + 1"
        echo -e "tput cuu1 1er @ : $ip_1octet.$ip_2octet.$ip_3octet.$un"
      done
      echo
      for ((j = $dernier - 1 ; j <= 256; j += $pas))
      do
        echo -e "Der @ : $ip_1octet.$ip_2octet.$ip_3octet.$j"
      done
      echo
      for ((j = $dernier ; j <= 256; j += $pas))
      do
        echo -e "Broadcast @ :  $ip_1octet.$ip_2octet.$ip_3octet.$j"
      done
      echo
    echo -e "/$cidr en décimal pointé = 255.255.255.$netmask"
    echo -e "wildcard mask = 0.0.0.$wildcard"
    read -p "Saisir un autre masque ? (O/N) : " startt
    clear
  else 
    echo -e "Masque incorect !"
  fi
done 


je vous remercie par avance, car la je bloque réellement

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

     $ for i in $(seq 1 10);do /bin/echo "Boucle ${i} ";done
    Boucle 1
    Boucle 2
    Boucle 3
    Boucle 4
    Boucle 5
    Boucle 6
    Boucle 7
    Boucle 8
    Boucle 9
    Boucle 10


    $ for i in $(seq 1 10);do /bin/echo -n "Boucle ${i} ";done
    Boucle 1 Boucle 2 Boucle 3 Boucle 4 Boucle 5 Boucle 6 Boucle 7 Boucle 8 Boucle 9 Boucle 10


    Voir aussi
    printf
    .

    ;-))

    0
    1. Utilisateur anonyme
       
      Salut, je vais essayer puis je te donne des nouvelles merci de ta réponse bonne soirée
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ printf "%s %s %s\n" $(echo boucle_{1..10})
    boucle_1 boucle_2 boucle_3
    boucle_4 boucle_5 boucle_6
    boucle_7 boucle_8 boucle_9
    boucle_10
    $ printf "%s " $(echo boucle_{1..10}); echo
    boucle_1 boucle_2 boucle_3 boucle_4 boucle_5 boucle_6 boucle_7 boucle_8 boucle_9 boucle_10
    0
    1. Utilisateur anonyme
       
      Salut j’ai essayé mais rien de concluant car je ne vois pas comment afficher de cette manière. Je sais pas comment je pourrai mettre en forme les donnes sachant que je n’arrive pas à les stocker dans une var en sortie (c’est peut être totalement impossibles sorry je débute en bash)

      Genre

      @ reseau | @ 1er | @ Der | @ broadcast
      (Out bcl1)(out bcl2 ...
      10.0.0.0 10.0.0.1 10.0.0.254 10.0.0.255
      11.0.0.0 11.0.0.1 11.0.0.254 11.0.0.255

      Bonne journée
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > Utilisateur anonyme
       
      Re-

      C'est ça que tu veux ?

      Entrer un /CIDR 1-32 : 12
      Entrer une @ ipv4 : 192.168.10.0
      192.0.0.0/12

      Res @ : 192.0.0.0 192.16.0.0 192.32.0.0 192.48.0.0 192.64.0.0 192.80.0.0 192.96.0.0 192.112.0.0 192.128.0.0 192.144.0.0 192.160.0.0 192.176.0.0 192.192.0.0 192.208.0.0 192.224.0.0 192.240.0.0

      1er @ : 192.0.0.1 192.16.0.1 192.32.0.1 192.48.0.1 192.64.0.1 192.80.0.1 192.96.0.1 192.112.0.1 192.128.0.1 192.144.0.1 192.160.0.1 192.176.0.1 192.192.0.1 192.208.0.1 192.224.0.1 192.240.0.1

      Der @ : 192.15.255.254 192.31.255.254 192.47.255.254 192.63.255.254 192.79.255.254 192.95.255.254 192.111.255.254 192.127.255.254 192.143.255.254 192.159.255.254 192.175.255.254 192.191.255.254 192.207.255.254 192.223.255.254 192.239.255.254 192.255.255.254

      Broadcast @ : 192.15.255.255 192.31.255.255 192.47.255.255 192.63.255.255 192.79.255.255 192.95.255.255 192.111.255.255 192.127.255.255 192.143.255.255 192.159.255.255 192.175.255.255 192.191.255.255 192.207.255.255 192.223.255.255 192.239.255.255 192.255.255.255

      /12 en décimal pointé = 255.240.0.0
      wildcard mask = 0.15.255.255
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      utiliser des tableaux
      t=( reseau  1er  Der  broadcast)
      ...
      0
    4. Utilisateur anonyme > zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Salut non, ce n'est pas ça, je te laisse voir une photo. une image vaux mille mot.


      je sais pas si c'est possible, mais en tout cas je ne vois pas comment faire
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > Utilisateur anonyme
       
      Le problème c'est que ton script ne fait du tout ça ;-(
      0