Menu

Boucle For et variables [Résolu]

-
Bonjour,

Je suis débutant en Bash, je cherche à mettre 2 valeurs dans 2 variables à l'aide d'une boucle FOR :

#! /bin/bash  

old_IFS=$IFS  # sauvegarde du séparateur de champ  
IFS=$':'     # nouveau séparateur de champ  

i=0
for ligne in $(cat ip_address.txt)  
do
        i=$((i+1))
        champ$i=$ligne     
done  

IFS=$old_IFS

echo $champ1
echo $champ2

sleep 10m


Le fichier texte contient une seule ligne, par exemple ceci : 96.247.126.28:25535

Merci d'avance pour votre aide.

Configuration: Linux / Firefox 64.0
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
69
Date d'inscription
jeudi 13 décembre 2018
Dernière intervention
20 février 2019
4
1
Merci
salut,

ce n'est pas comme ça qu'on lit un fichier en shell, on utilise une boucle
while read
...

mais, comme il n' y a qu'une ligne dans ce fichier (on se demande d'ailleurs la raison d'être de ce fichier), une boucle est i nu tile :
IFS=':' read -r adresse port <"$fichier"

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 57035 internautes nous ont dit merci ce mois-ci

Ces données ne sont pas fixes, en fait le client windows envoie son ip (et un port) via curl, un script PHP traite la requête et stocke les infos dans un fichier texte pour que je puisse "ouvrir" l'accès avant que le client n'établisse le tunnel SSH inverse.

Merci pour l'astuce de la substitution de processus, je la garde dans un coin bien au chaud.
lEprofSonDkon
Messages postés
69
Date d'inscription
jeudi 13 décembre 2018
Dernière intervention
20 février 2019
4 > barnabe0057 -
hmm. ça me semble bien lourd; surtout le recours à PHP : il y a des outils/langages beaucoup plus légers (coreutils, sed, awk).
il n'y a pas de raison que tu ne puisses pas faire quelque chsoe comme ça :
IFS="$separateur" read -r ip port < <(curl -o - 'http://serveur' | sed 'récupère les données dans le flux HTML')

sans davantage de détails, je ne peux pas donner plus de précision.
J'ai déjà une plateforme LEMP qui tourne sur mon serveur dédié pour d'autres services, HTML/PHP me semble la solution idéale pour contourner le pare-feu du client afin de recevoir son adresse ip.
lEprofSonDkon
Messages postés
69
Date d'inscription
jeudi 13 décembre 2018
Dernière intervention
20 février 2019
4 > barnabe0057 -
« sans davantage de détails, je ne peux pas donner plus de précision. »

si le problème exposé est résolu, merci de l'indiquer en éditant ton sujet (je crois).
Voilà c'est fait, merci encore à bientôt peut-être.
Commenter la réponse de lEprofSonDkon