IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Passer 2 arguments nécessaires à l'exécution d'un autre script


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2020
    Messages : 5
    Points : 0
    Points
    0
    Par défaut Passer 2 arguments nécessaires à l'exécution d'un autre script
    Bonjour, Tout d'abord désolé de vous solliciter mais étant débutant en script bash, j'ai besoin d'aide pour créer mon propre script.
    J'ai des connaissance de bases mais elles ne suffisent pas a me faire avancer.

    Mon but est de lancer un script python type test.py mais qui doit contenir comme argument après le script un nom d'ordinateur et une adresse IP

    Ex : test.py nomdemachine 192.168.x.x

    Avant que vous me disiez que cela concerne python je cherche donc comment je pourrai faire en bash.

    j'ai un fichier.txt qui contient sur chaque ligne un nom d'ordinateur et adresse IP pour être la source eparé par des "espaces" ou ":"

    mon script bash devra aller lire les deux variables dans ce fichier puis lancer mon script python avec les deux variables mises a la suite du script python

    mes connaissances se limite a :

    monscript.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in cat fichier.txt ; do python3 test.py $i ; done ;
    Avec ce script je ne peux que déclarer une seule des deux valeurs nécessaire donc si qqun pouvait m'aider ca serait sympa.

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 790
    Points
    30 790
    Par défaut
    Regarde que fait la commande read et associe la à une boucle while
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Bonjour et bienvenu,

    Quel est le but de ton script shell, à part lire un fichier ligne à ligne pour les fournir ensuite à un script python ?

    Si ton script shell ne doit faire que cela, pourquoi tu ne le fais directement dans ton script python qui sait le faire mieux que le shell ?
    Cordialement.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2020
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Regarde que fait la commande read et associe la à une boucle while
    Je vais regarder cela merci...

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2020
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bonjour et bienvenu,

    Quel est le but de ton script shell, à part lire un fichier ligne à ligne pour les fournir ensuite à un script python ?

    Si ton script shell ne doit faire que cela, pourquoi tu ne le fais directement dans ton script python qui sait le faire mieux que le shell ?
    Le but de mon script shell est d'executer la commande lançant mon script python avec les valeurs nécessaires attendues par mon script python afin qu'il teste une liste de hostname + adresse IP plutot que de les taper la main ...

    N'etant que débutant au python aussi je me suis dis que cela pourrait être plus facile en bash.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while IFS='[ :]' read a b c
    do
        echo "Premier argument : $a"
        echo "Deuxième argument : $b"
    done < fichier.txt
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Je préfère te soumettre une solution en python facilement intégrable dans ton script.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with open("fichier.txt",'r') as fichier:
        for ligne in fichier:
            if ':' in ligne:
                gauche,droite=ligne.strip().split(sep=':')
                print("la partie gauche est :",gauche)
                print("la partie droite est :",droite)
    le fichier doit être au format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    partie gauche:partie droite
    PS: Pas besoin de fermer le fichier, la clause with s'en charge à sa sortie de bloc.
    Cordialement.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2020
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Merci beaucoup je vais tester le python ^^ en revanche j'ai réussi en bash du coup je vous poste mon script en dessous

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2020
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Script bash :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i in `cat path/to/file.txt`
    do
    hostname=`echo $i | awk -F ";" '{print $1}' `
    ip= `echo $i | awk -F ";" '{print $2}' `
    python3 script.py $hostname $ip
    echo $hostname $ip
    done

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    nnnnnNoooooooooooooooooooooooooooooooooooon!
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer un argument à l'exécution
    Par pierro91 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/01/2014, 22h00
  2. [Débutant] passer des arguments a un exécutable
    Par multimania dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/01/2012, 08h02
  3. Passer des arguments au binaire/exécutable
    Par Ljungberg dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 03/02/2006, 10h37
  4. Réponses: 8
    Dernier message: 30/05/2005, 13h55
  5. [Struts] Passer un argument dans un property
    Par Malaussene dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/09/2004, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo