Dialog & gestion des variable

Résolu
Bonjour à tous,

Je suis en train d'essayer de faire un dialog qui lancerait tcpdump avec des variables.

En effet, avec dialog je demande l'addr ip que j'essaie de mettre en variable pour l'appliquer à tcpdump.

Voici mon code:
dialog_menu ;;
"Tcpdump" );
dialog --stdout --inputbox "Entrer IP" 10 60 > $ip
tcpdump eth0 $ip -w $ip.pcap
dialog --stdout --clear --msgbox "Capture en cours" 10 60 ;
read;

En fait j'ai essayé de mettre ip en variable, mais cela ne fonctionne pas!
Je suis preneur pour toute idée !
Merci pour votre aide

2 réponses

  1. Contributeur
    Salut,

    dialog_menu ;;
    "Tcpdump" );
    IP=$(dialog --stdout --inputbox "Entrer IP" 10 60)
    tcpdump eth0 ${IP} -w ${IP}.pcap
    dialog --stdout --clear --msgbox "Capture en cours" 10 60 ;
    read;

    1
    1. Salut Zipe31,

      Merci cela fonctionne très bien !
      Par contre, j'ai essayé plusieurs variables, mais il me met une erreur de symbole apres le ; du code ci-dessous:

      dialog_menu ;;
      "Set IP config" );
      IPADDR=$(dialog --stdout --inputbox "Enter eth0 network IP" 10 60)
      IPSUB=$(dialog --stdout --inputbox "Enter subnet mask" 10 60)
      IPGW=$(dialog --stdout --inputbox "Enter Gateway" 10 60)
      IPDNS=$(dialog --stdout --inputbox "Enter DNS" 10 60)
      /sbin/ifdown eth0;
      echo nameserver ${IPDNS} > /etc/resolv.conf;
      /sbin/ifconfig eth0 ${IPADDR} ${IPSUB};
      /sbin/route add default gw ${IPGW};
      /sbin/ifup eth0;
      dialog --stdout --clear --msgbox "Network Configuration Success" 10 60;
      read;

      J'ai vérifié dans le menu title, et l'appel correspond bien. Qu'ai-je loupé ?
      Merci pour ton aide
      0
      1. Contributeur
        dialog_menu ;;
        "Set IP config" );
        Euh... c'est quoi c'est 2 commandes ? Des fonctions ?
        C'est tiré d'un script shell (bash ou autres) ?
        0
      2. Holala je n'y comprends plus rien !

        Voici le code afin que tu y comprennes peut etre plus que moi !

        code effacé car tronqué, voir ci-dessous, merci
        0
      3. Le voici en entier

        #!/bin/bash

        setterm -blank 0

        function dialog_menu {
        dialog --title " Configuration Console " --menu "Please choose the action you want to proceed :" 30 65 15 "IP configuration" "Current Network configuration" "PCAP generation" "Generate PCAP" "USB Mount" "Mounting capture USB device" "UMount USB" "UMouting USB device" Console "To go back to command line" 2>~/tmp ;

        menuitem='cat ~/tmp'
        opt=$?
        case $menuitem in

        dialog_menu ;;
        "IP configuration" ) var='ifconfig';
        dialog --title 'IP Configuration' --backtitle 'Display Networks' --infobox "$var" 30 80;

        dialog_menu ;;
        "PCAP generation" );
        IP=$(dialog --stdout --inputbox "Entrer IP" 10 60)
        tcpdump eth0 ${IP} -w ${IP}.pcap
        dialog --stdout --clear --msgbox "Capture en cours" 10 60 ;
        read;

        dialog_menu ;;
        "USB Mount") var='/bin/mount /media/usb';
        dialog --title "USB Initialisation" --backtitle "Mounting USB" --infobox "$var" 5 15;
        dialog --title 'USB Status' --msgbox 'Mounting Successful\n' 10 25;

        dialog_menu ;;
        "UMount USB") var='/bin/umount /media/usb';
        dialog --title "USB UnInitialisation" --backtitle "UnMounting USB" --infobox "$var" 5 15;
        dialog --title 'USB Status' --msgbox 'UnMounting Successful\nYou can extract the USB device' 10 25;

        dialog_menu ;;
        Exit) clear;
        exit;;
        esac
        clear
        }
        dialog_menu
        rm ~/tmp
        0
      4. Contributeur
        Moi aussi j'ai du mal à comprendre le sens de ton script ;-(

        Déjà ça :
         function dialog_menu {
        dialog --title " Configuration Console " --menu "Please choose the action you want to proceed :" 30 65 15 "IP configuration" "Current Network $

        Que fait ce "$" en fin de ligne ? Normalement il devrait y avoir une quote double là non ?

        Et puis ta fonction elle englobe tout ton script, c'est normal ?
        0
      5. je pense il faut que tu lises le 2eme post, car le premier était tronqué dans le nano
        Il n'y a pas de $ a cet endroit
        Merci
        0