Afficher côte à cote plusieurs sortie de boucle for

Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
- - Dernière réponse : techenherb
Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
- 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
Afficher la suite 

2 réponses

Messages postés
37444
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 novembre 2019
4212
0
Merci
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
.

;-))

techenherb
Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
-
Salut, je vais essayer puis je te donne des nouvelles merci de ta réponse bonne soirée
Commenter la réponse de zipe31
Messages postés
17933
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2019
4506
0
Merci
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
zipe31
Messages postés
37444
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 novembre 2019
4212 > techenherb
Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
-
Le problème c'est que ton script ne fait du tout ça ;-(
zipe31
Messages postés
37444
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 novembre 2019
4212 > techenherb
Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
-
Ça existe en natif (après install du paquet) ;-))

techenherb
Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
> zipe31
Messages postés
37444
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 novembre 2019
-
Et comment tu procéderais toi ?
Faut que je vois du côté du code source de IP Calc ?
dubcek
Messages postés
17933
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2019
4506 -
utiliser des tableaux
t=( reseau  1er  Der  broadcast)
...
techenherb
Messages postés
26
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
30 octobre 2019
> dubcek
Messages postés
17933
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2019
-
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
Commenter la réponse de dubcek