Warum funktioniert mein BASH - Dialog nicht ?

Diskutiere Warum funktioniert mein BASH - Dialog nicht ? im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich habe hier eine kleine Funktion in BASH geschrieben, die den Benutzer nach einer Lokalen IP Adresse Fragt, und diese dann angpingt....

  1. #1 LinuxTux23, 18.01.2020
    LinuxTux23

    LinuxTux23 Grünschnabel

    Dabei seit:
    18.01.2020
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo,

    ich habe hier eine kleine Funktion in BASH geschrieben, die den Benutzer nach einer Lokalen IP Adresse Fragt, und diese dann angpingt.

    Wenn ich einen Wert in das Textfeld eingegeben habe, kommt das Textfeld noch einmal und so immer weiter. Das heißt ich habe versehentlich eine Endlosschleife generiert.

    Kann mir jemand, der besser in BASH Programmieren kann sagen, wie ich mein Problem lösen kann.

    Vielen Dank !

    Code:

    Code:
    function ping() {
     PINGIP=$(dialog --clear --backtitle "Bash - Assistant" \
     --title "Ping" \
     --inputbox "Test1" 0 0 3>&1 1>&2 2>&3 3>&-)
     dialog --clear
     dialog --msgbox "$(ping -c3 $PINGIP)" 5 50
     end
    }
    ping
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 floyd62, 19.01.2020
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    324
    Zustimmungen:
    0
    Hi,

    Hauptproblem ist, dass sich deine ping-Funktion in der msgbox-Zeile wieder selbst aufruft; benenn entweder die Funktion um, oder verwende den vollen Pfad des ping-Kommandos in der message-Box, um die Rekursion zu vermeiden:
    Code:
    dialog --msgbox "$(/usr/bin/ping -c3 $PINGIP)" 5 50
    Ich würde empfehlen, solchen Wrapper-Funktionen immer einen Namen zu geben, der sich vom zugrunde liegenden Kommando unterscheidet, also etwa:

    Code:
    function _ping() {
            PINGIP=$(dialog --inputbox "IP" 0 0 3>&1 1>&2 2>&3) || return
            dialog --infobox "ping $PINGIP ..." 0 0
            dialog --msgbox "$(ping -c3 $PINGIP)" 0 0
    }
    _ping
    
    Gruss
     
Thema:

Warum funktioniert mein BASH - Dialog nicht ?

Die Seite wird geladen...

Warum funktioniert mein BASH - Dialog nicht ? - Ähnliche Themen

  1. ath0 No scan results - Warum? (funktionierte vorher)

    ath0 No scan results - Warum? (funktionierte vorher): Hallo, seit ein paar Tagen funktioniert meine WLAN-Karte nicht mehr. Vorher funktionierte sie einwandfrei. Nun bekomme ich mit ifconfig ath0...
  2. warum weiss das gehirn nich wie es funktioniert?

    warum weiss das gehirn nich wie es funktioniert?: warum weiss das gehirn nich wie es funktioniert? oder weiss es doch wie es funktioniert nur wir (bewusstsein) nicht?
  3. Warum setzen große Webseiten auf nginx?

    Warum setzen große Webseiten auf nginx?: Ich lese häufiger das große Webseiten auf nginx setzen. Bietet nginx eine höhere Sicherheit, ist dafür umständlicher und komplexer in der...
  4. awk: warum gibt close -1 zurück ?

    awk: warum gibt close -1 zurück ?: Hallo, bei diesem Gawk-Skript liefert close() ein -1 zurück. Warum ? Das File sortiert.txt wurde erfolgreich von sort angelegt ... Ist ein close...
  5. Warum wird meine Antwort von den Moderatoren nicht freigegeben

    Warum wird meine Antwort von den Moderatoren nicht freigegeben: Hallo, ich habe am 02.08. im Unterforum Shell-Skripte den Beitrag "Kurzzusammenfassung der Befehle und Progr. für die shell" erstellt....
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden