Shel

Résolu
lamou23 Messages postés 218 Statut Membre -  
lamou23 Messages postés 218 Statut Membre -
salut

j'ai un fichier shell adresse.sh contenant:

#!/bin/bash

ipdns="192.168.80.128"

ipweb="192.168.80.131"

ipftp="192.168.80.129"

ipmessagerie="192.168.80.132"

**************************************************************

dans un autre fichier je veux récupérer les variables déclarées dans le fichier ci-dessus dans un autre fichier de telle sorte que j'aie:

#!/bin/bash

source /var/www/script/adresse.sh

# ce que je veux c'est de parcourir les lignes de adresse.sh et a chawue fois on récupère #l'adresse ip dans la variabele ip comme suit

ip="192.168.80.128 192.168.80.129"
for t in $ip

do

{ instruction}

done


est il possible de le faire??
aidez moi svp
merci
A voir également:

1 réponse

Urielxx Messages postés 223 Statut Membre 46
 
Uniquement avec un "source", ce n'est pas possible car ton shell ne peut pas savoir quelles sont les variables qui ont été chargées en lisant ton fichier adresse.sh

Je ne sais pas exactement ce que tu veux faire, mais pour répondre à ta question, tu peux faire un
ips='grep -v '^#' adress.sh | sed -e 's/.*="//' -e 's/"//' '

for ip in $ips
do
..
done


Je n'ai pas testé, le grep sert a retirer les commentaires, les sed a retirer les guillemets et les débuts de lignes, c'est améliorable, mais le principe est là.
0
lamou23 Messages postés 218 Statut Membre
 
salut
j'ai essayé ça:

#!/bin/bash
ips=$(grep -v '^#' adresseip.sh | sed -e 's/.*="//' -e 's/"//' )

for ip in $ips
do
echo $ips
done


et le fichier adresseip.sh contient:

#!/bin/bash

ipdns="192.168.80.128"

ipweb="192.168.80.131"

ipftp="192.168.80.129"

lorsque j'ai exécuté j'ai eu ça:

192.168.80.128 192.168.80.131 192.168.80.129 192.168.80.132
192.168.80.128 192.168.80.131 192.168.80.129 192.168.80.132
192.168.80.128 192.168.80.131 192.168.80.129 192.168.80.132
192.168.80.128 192.168.80.131 192.168.80.129 192.168.80.132
répétition 4 fois de la ligne moi je veux selement ça:

192.168.80.128 192.168.80.131 192.168.80.129 192.168.80.132

merci
0
lamou23 Messages postés 218 Statut Membre
 
merci pour la réponse c'est la bonne finalement
:)
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

ips=$(egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' adresseip.sh)

Devrait suffire ;-))
0
lamou23 Messages postés 218 Statut Membre
 
je peux avoir une petite explication sur l'expression régulière
merci
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
https://www.commentcamarche.net/faq/911-regexp-recuperer-une-adresse-ip
0