Shel
Résolu
lamou23
Messages postés
218
Statut
Membre
-
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
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:
- Shel
- Classic shel - Télécharger - Personnalisation
1 réponse
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à.
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à.
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
:)
ips=$(egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' adresseip.sh)Devrait suffire ;-))
merci