Afficher côte à cote plusieurs sortie de boucle for [Fermé]

Signaler
Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020
-
Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020
-
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

Messages postés
35824
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 novembre 2020
5 680
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
.

;-))

Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020

Salut, je vais essayer puis je te donne des nouvelles merci de ta réponse bonne soirée
Messages postés
18238
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 novembre 2020
5 103
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
Messages postés
35824
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 novembre 2020
5 680 >
Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020

Le problème c'est que ton script ne fait du tout ça ;-(
Messages postés
35824
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 novembre 2020
5 680 >
Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020

Ça existe en natif (après install du paquet) ;-))

Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020
>
Messages postés
35824
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 novembre 2020

Et comment tu procéderais toi ?
Faut que je vois du côté du code source de IP Calc ?
Messages postés
18238
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 novembre 2020
5 103
utiliser des tableaux
t=( reseau  1er  Der  broadcast)
...
Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020
>
Messages postés
18238
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 novembre 2020

Salut, je ne vois pas réelement comment je pourrai le mettre en place.
un exemple avec mon pgm m'aiderai bcp
en prenant en compte le fait que je suis pas excellent en algo.
Bonne soirée, merci à toi