Injection dun script pour injecter des information d'addresse ip gateway dns pour rendre mon addresse dhcp en static

voici mon code

#!/bin/bash
if="ens33"     # interface réseau

# la distribution
distribution=$(lsb_release -ds)

# address deja configurées dans le dhcp
maReg='inet ([0-9.]*)\/([0-9]*) brd ([0-9.]*)'
[[ $(ip -4 a show $if) =~ $maReg ]] 
addr=${BASH_REMATCH[1]}
mask=${BASH_REMATCH[2]}
bcst=${BASH_REMATCH[3]}

maReg='default via ([0-9.]*)'
[[ $(ip r) =~ $maReg ]]
gateway=${BASH_REMATCH[1]}

maReg='nameserver ([0-9.]*)'
[[ $(< /etc/resolv.conf) =~ $maReg ]]
dns=${BASH_REMATCH[1]}

##########
# Affichage 
echo -e "\n\n\n\n\n"
echo "Bonjour $USER"
echo -e "\n\n\n"
echo "Votre distribution : $distribution"
echo -e "\n\n\n"
echo -e "Votre addresse ipv4 est :\t$addr"
echo -e "Votre addresse Broadcast est :\t$bcst"
echo -e "Votre masque reseau est :\t$mask"
echo -e "Votre gateway est :\t\t$gateway"
echo -e "Votre DNS est :\t\t\t$dns"

et jaimerais ke ce code pis detecter si c’est un centos ou unbuntu et injecter les information de mes variqable au bonne place pour soit lun ou lautre des distribution
pour que l’addresse dhcp donner deviennet static

merci d’avance

Bonjour, @biker870

Vous êtes sûr ???
C’est pas plutôt la communauté un peu ici, et beaucoup sur ubuntu-fr qui vous a grandement facilité la vie, dont principalement @MicP !?
Un peu d’humilité clairement - vous fera du bien et donnera l’envie de continuer à vous aider !


D’ailleurs, pourquoi ce sujet n’est pas à la suite de l’autre ???
Juste pour rappel de la FAQ que vous avez OBLIGATION de lire au moment de vous inscrire sur le site :

Faites l’effort de mettre les choses au bon endroit, afin que nous puissions passer plus de temps à discuter et moins à ranger. Ainsi :

(…)
Ne postez pas le même contenu dans plusieurs discussions.

Résultat : je ferme les deux posts pour non respect des clauses ?!
Qu’en pensez-vous ? ce serait justifié, non ?!
Ou, on invite la communauté à ne pas vous répondre cette fois-ci, histoire de vous apprendre à “rendre à César ce qui appartient à César” !


Et, concernant votre phrasé, est-il normal l’absence de toute conjugaison élémentaire, bien sûr je n’aborde pas l’aspect de l’orthographe ! :’(
Même sur le forum ubuntu-fr, vous avez été interpellé à ce propos !


Pour finir, vous reversez combien à la communauté pour qu’on vous aide à faire votre travail !?
Parce que clairement là, ne me dites pas que vous êtes dans le cadre d’un petit projet personnel - on aura un peu - voire beaucoup - de mal à y croire !

Il y a tu moyen que je m’explique o lieu detre juger coupable

C’est ma premiere experience a vie dans les forum et je suis etudiant en administrateur reseau se script a pour but de me faire progresser en bash et non pour le travaille

Et quand j’ai dit voici mon code je voulais montre ce jai pour montrer o gens ou jen etais rendu et non pour m’approprier le code je suis reconnaissant a tous qui maide mais comme vous pouvez voir avec les code que jai de ma pars comme vous pouvez voir je suis plus que debutant et cest pour sa je suis ici pour apprendre

Japprend aussi linux pour avoir plus dune corde a min arc pour plus donc je melange les deux pour apprendre les 2

Je mexscuse si jai blesser quelqun ou avoir un mal entendu avec le forum

Biker870

2 J'aime

Bonsoir

Quelques liens :

bash-hackers.org -> List of Bash online-tutorials

https://wiki-dev.bash-hackers.org/

3 J'aime

Bonjour

Avec l’extraction automatique
du nom de l’interface réseau active :

#!/bin/bash

#############################
# Fonction "cidr to netmask"
# https://www.linuxquestions.org/questions/programming-9/bash-cidr-calculator-646701/#post3433298
cidr2mask() {
  local i mask=""
  local full_octets=$(($1/8))
  local partial_octet=$(($1%8))

  for ((i=0;i<4;i+=1)); do
    if [ $i -lt $full_octets ]; then
      mask+=255
    elif [ $i -eq $full_octets ]; then
      mask+=$((256 - 2**(8-$partial_octet)))
    else
      mask+=0
    fi  
    [ $i -lt 3 ] && mask+=.
  done

  echo $mask
}

##################
# La distribution
distribution=$(lsb_release --description --short)

maReg='^default via ([0-9.]*) dev ([[:alnum:]]*)'
[[ $(ip route) =~ $maReg ]]
gateway=${BASH_REMATCH[1]}    # Passerelle
ifAct=${BASH_REMATCH[2]}      # Interface réseau active

# Adresses déjà configurées par le DHCP
maReg='inet ([0-9.]*)\/([0-9]*) brd ([0-9.]*)'
[[ $(ip -4 address show $ifAct) =~ $maReg ]] 
addr=${BASH_REMATCH[1]}
mask=$(cidr2mask ${BASH_REMATCH[2]})
bcst=${BASH_REMATCH[3]}

maReg='nameserver ([0-9.]*)'
[[ $(< /etc/resolv.conf) =~ $maReg ]]
dns=${BASH_REMATCH[1]}

############
# Affichage 
echo -e "\n\n\n\n\n"
echo "Bonjour $USER"
echo -e "\n\n\n"
echo "Votre distribution : $distribution"
echo -e "\n\n\n"
echo -e "Votre adresse ipv4 est :\t$addr"
echo -e "Votre adresse Broadcast est :\t$bcst"
echo -e "Votre masque réseau est :\t$mask"
echo -e "Votre gateway est :\t\t$gateway"
echo -e "Votre DNS est :\t\t\t$dns"
2 J'aime