Boucle For et variables [Résolu/Fermé]

Signaler
-
 barnabe0057 -
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

1 réponse

Messages postés
209
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
14
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"
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 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.
Messages postés
209
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
14 > 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.
Messages postés
209
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
14 > 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.