Afficher côte à cote plusieurs sortie de boucle for

Fermé
Utilisateur anonyme - 29 oct. 2019 à 16:53
 Utilisateur anonyme - 30 oct. 2019 à 18:49
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

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
29 oct. 2019 à 17:49
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
Utilisateur anonyme
29 oct. 2019 à 18:05
Salut, je vais essayer puis je te donne des nouvelles merci de ta réponse bonne soirée
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 oct. 2019 à 15:39
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
Utilisateur anonyme
30 oct. 2019 à 16:30
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > Utilisateur anonyme
30 oct. 2019 à 17:57
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 oct. 2019 à 18:02
utiliser des tableaux
t=( reseau  1er  Der  broadcast)
...
0
Utilisateur anonyme > zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021
30 oct. 2019 à 18:37
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > Utilisateur anonyme
30 oct. 2019 à 18:38
Le problème c'est que ton script ne fait du tout ça ;-(
0