Programmed Dialogue with Interactive Programs

Programmed Dialogue with Interactive Programs

PDIP est le sigle de Programmed Dialogues with Interactive Programs (« Dialogues programmés avec des programmes interactifs », tiré des premières lignes du manuel de expect).

C'est une version simplifiée de l’utilitaire expect. Comme lui, PDIP interprète un script de commandes pour dialoguer avec un programme interactif comme le ferait un opérateur humain. Mais il n’a pas toutes les possibilités de expect qui est capable d'interagir avec plusieurs programmes en même temps, d'accepter un langage de commandes de haut niveau offrant les branchements et des structures de contrôle de haut niveau et de redonner le contrôle à l’opérateur en cours de session.

PDIP accepte un langage très simple en entrée pour fournir des fonctions de base :

  • Filtrage de la sortie du programme pour se caler sur une chaîne de caractères se conformant à un modèle
  • Envoi de chaînes de caractères au programme
  • Arrêt des interactions avec le programme pendant une durée donnée en secondes

PDIP est disponible en logiciel libre sur sourceforge.

Codage

La ligne de commandes de PDIP se présente comme suit:

          pdip [-s cmdfile] [-b buffer-size] [-dhV] -- commande [param1 param2...]
La commande à lancer avec ses options et paramètres est spécifiée à la fin de la ligne de  commande.
Si des options sont passées à pdip et/ou à la commande, alors la commande doit être précédée d’un double
tiret (--).  Sinon  les  options  seront  toutes passées à pdip et entraîneront des erreurs.


PDIP lit cmdfile ou son entrée standard (défaut) et accepte les commandes suivantes :

      #...  # et les mots suivants jusqu’à la fin de la ligne sont ignorés (utilisé pour les commentaires)
      timeout x
            Positionne à x secondes le temps maximum à attendre après chacune des commandes qui  suivent (la
            valeur 0 annule le temporisateur, c’est le comportement par défaut)
      recv "w1 w2..."
            Attend  une ligne venant du programme se conformant au modèle w1 w2...  Le modèle est une expression
            régulière se conformant à regex.
      send "w1 w2..."
            Envoie la chaîne de caractères w1 w2... au programme. La chaîne peut contenir les  caractères de
            contrôle suivants:
                         \a Cloche
                         \b Retour arrière
                         \t Tabulation horizontale
                         \n Retour à la ligne
                         \v Tabulation verticale
                         \f Saut de page
                         \r Retour chariot
                         \" Guillemet
                         \\ Barre oblique inversée
      sleep x
            Arrête toute activité pendant x secondes
      exit  Termine PDIP


Les options passées au programme sont:

      -b buffer-size | --bufsz=buffer-size
             Taille en octet du buffer interne (par défaut : 512).
      -d | --debug
             Active le mode mise au point. C’est très utile pour comprendre pourquoi un script ne marche pas comme souhaité.
      -h | --help
             Affiche l’aide de la commande (sous-ensemble de cette page de manuel).
      -s cmdfile | --script=cmdfile
             Script de commandes en entrée (défaut : stdin).
      -V | --version
             Affiche la version du logiciel.

Voici quelques exemples d'utilisation :

      L’exemple suivant montre la mise en œuvre d’une connexion telnet vers un hôte appelé
      ’remote’ sur le port 34570 avec le nom de login ’foo’ et le mot de passe ’bar’. Comme
      le numéro de port distant est spécifié à l’aide d’une option (-p), il faut faire précéder
      la commande d’un double tiret (--). Les commandes sont injectées sur l’entrée
      standard. On attend le prompt ’$’ et on lance la commande ls avant de se déconnecter
      du shell via la commande exit.
            $ pdip -- telnet -p 34570 remote
            recv "login"
            send "foo\n"   # Nom de login ’foo’
            recv "Password"
            send "bar\n"   # Mot de passe ’bar’
            recv "\$ "     # Inhibition du caractère spécial ’$’ avec ’\’
            send "ls\n"    # Lance la commande ’ls’
            recv "\$ "
            send "exit\n"  # Sortie du shell
            exit           # Sortie de PDIP
            $
      L’exemple suivant montre la mise en œuvre d’une connexion telnet vers un hôte appelé ’remote’ avec le nom
      de login ’foo’ et le mot de passe ’bar’. Les commandes sont injectées sur l’entrée standard. On attend le
      prompt ’$’ et on lance la commande ls avant de se déconnecter du shell via la commande exit.
            $ pdip telnet remote
            recv "login"
            send "foo\n"   # Nom de login ’foo’
            recv "Password"
            send "bar\n"   # Mot de passe ’bar’
            recv "\$ "     # Inhibition du caractère spécial ’$’ avec ’\’
            send "ls\n"    # Lance la commande ’ls’
            recv "\$ "
            send "exit\n"  # Sortie du shell
            exit           # Sortie de PDIP
            $
      L’exemple suivant montre la mise en œuvre d’une connexion ftp vers un hôte appelé ’remote’ avec le nom
      de login  ’foo’ et le mot de passe ’bar’. Les commandes sont injectées sur l’entrée standard.  On attend
      l’apparition du prompt ’ftp>’ en début de ligne et on lance la commande ’help’ avant de se déconnecter de
      ftp avec la commande ’quit’.
            $ pdip ftp remote
            recv "Name"
            send "foo\n"    # Nom de login ’foo’
            recv "Password"
            send "bar\n"    # Mot de passe ’bar’
            recv "^ftp> "   # Prompt en début de ligne
            send "help\n"   # Lancement de la commande help
            recv "^ftp> "
            send "quit\n"   # Sortie de FTP
            exit            # Sortie de PDIP
            $
      L’exemple suivant met en œuvre une session avec la calculatrice bc qui a la particularité de ne pas
      afficher de prompt en début de ligne de commande. On utilise le méta caractère ’$’ pour se synchroniser
      sur les fins de ligne. Deux opérations sont lancées ’3+4’ et ’6*8’. Ensuite on quitte bc.
            $ pdip bc
            recv "warranty"  # Vers la fin de la bannière de démarrage
            recv "$"         # Fin de la dernière ligne de la bannière
            send "3+4\n"
            recv "$"         # Réception de la fin de ligne de l’écho
            recv "$"         # Réception de la fin de ligne du résultat
            send "6*8\n"
            recv "$"
            recv "$"
            send "quit\n"   # Sortie de BC
            exit            # Sortie de PDIP
            $
      L’exemple suivant met en œuvre une session telnet vers un hôte appelé ’remote’ avec
      un nom de login ’foo’ et un mot de passe ’bar’. Les commandes sont injectées sur
      l’entrée standard.  Avec une expression régulière, on attend un prompt de la  forme
      "xxxx-<login_name>-pathname>  "  ou  "xxxx-<login_name>-pathname>"  en début de ligne.
      Ensuite la commande ’ls -l’ est lancée avant de se déconnecter de telnet(1) avec la
      commande ’exit’.
            $ pdip telnet remote
            recv "login:"
            send "foo\n"                  # Nom de login ’foo’
            recv "Password:"
            send "bar\n"                  # Mot de passe ’bar’
            recv "^(.)+-foo-(.)+(>|> )$"  # Prompt en début de ligne
            send "ls -l\n"                # Lance la commande ’ls -l’
            recv "^(.)+-foo-(.)+(>|> )$"
            send "exit\n"                 # Sortie de telnet
            exit                          # Sortie de PDIP
            $

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Programmed Dialogue with Interactive Programs de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Programmed dialogue with interactive programs — PDIP sont les initiales de Programmed Dialogues with Interactive Programs (« Dialogues programmés avec des programmes interactifs »). C est une version simplifiée de l’utilitaire expect. L’acronyme PDIP lui même vient des premières… …   Wikipédia en Français

  • PDIP — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Le sigle PDIP signifie : Plastic Dual Inline Package Partai Demokrasi Indonesia Perjuangan ( parti démocratique indonésien de lutte ), un parti… …   Wikipédia en Français

  • Nobel Prizes — ▪ 2009 Introduction Prize for Peace       The 2008 Nobel Prize for Peace was awarded to Martti Ahtisaari, former president (1994–2000) of Finland, for his work over more than 30 years in settling international disputes, many involving ethnic,… …   Universalium

  • performing arts — arts or skills that require public performance, as acting, singing, or dancing. [1945 50] * * * ▪ 2009 Introduction Music Classical.       The last vestiges of the Cold War seemed to thaw for a moment on Feb. 26, 2008, when the unfamiliar strains …   Universalium

  • Business and Industry Review — ▪ 1999 Introduction Overview        Annual Average Rates of Growth of Manufacturing Output, 1980 97, Table Pattern of Output, 1994 97, Table Index Numbers of Production, Employment, and Productivity in Manufacturing Industries, Table (For Annual… …   Universalium

  • literature — /lit euhr euh cheuhr, choor , li treuh /, n. 1. writings in which expression and form, in connection with ideas of permanent and universal interest, are characteristic or essential features, as poetry, novels, history, biography, and essays. 2.… …   Universalium

  • education — /ej oo kay sheuhn/, n. 1. the act or process of imparting or acquiring general knowledge, developing the powers of reasoning and judgment, and generally of preparing oneself or others intellectually for mature life. 2. the act or process of… …   Universalium

  • Batman Beyond — Title card for Batman Beyond, as seen in the opening credits. Genre Superhero Action/Adventure Cyberpunk My …   Wikipedia

  • Calendar of 2002 — ▪ 2003 January I will not wait on events while dangers gather. I will not stand by as peril draws closer and closer. The United States of America will not permit the world s most dangerous regimes to threaten us with the world s most destructive… …   Universalium

  • Expert system — In artificial intelligence, an expert system is a computer system that emulates the decision making ability of a human expert.[1] Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”