eine Usereingabe automatisieren

Diskutiere eine Usereingabe automatisieren im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; hallo allerseits, ich habe mich gerade gefragt, wie man ein porgramm das eine eingabe vom user verlangt, dazu bringen kann eine...

  1. #1 tuxlover, 12.02.2007
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    hallo allerseits,

    ich habe mich gerade gefragt, wie man ein porgramm das eine eingabe vom user verlangt, dazu bringen kann eine standarteingabe zu übergeben.

    Also mal angenommen, ich habe eine auführbare datei, die mich fragt, ob ich diese wirklich ausführen will. ich muss also jedes mal y eingeben. Nun soll aber als standartantwort immer y übergeben werden.

    Wie kann man das möglichst ohne viel aufwand machen?

    gruß tuxlover
     
  2. #2 supersucker, 12.02.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Ein simples shellscript schreiben dem du als erstes Argument den Programmnamen mit Pfad übergibst und als zweites die "Antwort" des Users.

    Das shell-script ruft dann das Programm mit dem entsprechenden Parameter(n) auf.

    Dürfte (mit Abfangen möglicher Fehler) max. ein 10-Zeiler werden.
     
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    "man bash" und "yes" sollten Dir helfen.

    Gruß, Daniel
     
  4. #4 tuxlover, 12.02.2007
    Zuletzt bearbeitet: 12.02.2007
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    gehen wir mal davon aus, dass ich schon weiß wie man ein shellscript schreibt und man bash mir auch nichts verrät was ich in diversen howtos schon gelsen habe, könnte es etwa so funktionieren?

    Code:
    #auto-user.sh
    #script that automates standart user input
    
    #! /bin/bash
    
    INPUT=y
    
    ./script_that_does_something_and_asks_for_user_input
    $INPUT
    
    exit 0
     
  5. devilz

    devilz Pro*phet
    Administrator

    Dabei seit:
    01.05.2002
    Beiträge:
    12.244
    Zustimmungen:
    0
    Ort:
    Hessen
    Ein simples Ja ;)
     
  6. #6 Xanti, 12.02.2007
    Zuletzt bearbeitet: 12.02.2007
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    @tuxlover: Nein, funtioniert so nicht. Es würde das Skript aufrufen und nach Beendigung dessen wird y aufgerufen, was einen Fehler erzeugt, weil y kein Befehl ist. Wenn y die einzige Antwort ist, geht:

    Code:
    yes | ./skript
    Bei anderen Antworten schreib diese in ein File, z.B.

    antworten:

    Code:
    y
    y
    n
    und ruf das Skript mittels:

    Code:
    ./skript < antworten
    
    auf. Dies meinte ich übrigens mit "man bash", da steht alles über pipes und Umleitungen drin.
     
  7. #7 tuxlover, 12.02.2007
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    *andenkopfhau*

    naklar mit ner pipe. warum bin ich daruaf nicht gleich gekommen. jetzt ist alles klar. danke.
     
  8. #8 Wolfgang, 13.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    BTW mal so nebenbei gefragt:
    Was ist ein Stanart.
    Stehe auf dem rechten Bein, linkem Bein oder auf beidem? ;)

    Die zweite Gegenfrage beruht auf meiner Beobachtung, dass hier immer öfter die Shebang:
    auftaucht.
    Warum das Leerzeichen (Space)da drinnen?
    Das produziert in vielen modernen Shells Fehler!
    Oder kommt das aus einem (obscured ) OS?

    Gruß Wolfgang
     
  9. #9 Schlaubi_fi.de, 13.02.2007
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Ganz nett :D : Standard oder Standart
     
  10. #10 docsnyder, 13.02.2007
    docsnyder

    docsnyder another local guru

    Dabei seit:
    12.12.2006
    Beiträge:
    18
    Zustimmungen:
    0
    Ort:
    Darmstadt
    Das geht natürlich nur bei Skripten/Programmen, die STDIN nicht flushen, bevor sie eine Eingabe erwarten (wie es z.B. Login-Anwendungen typischerweise tun).

    In diesem Fall kann die Eingabe mit Expect gehandelt werden.

    Greetz, Doc
     
  11. #11 Xanti, 13.02.2007
    Zuletzt bearbeitet: 13.02.2007
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Natürlich, Du hast Recht. Den Fall hab ich erstmal garnicht betrachtet. Das wäre dann zur Sprache gekommen, wenn eine Antwort in der Art "Es geht nicht!" gekommen wäre. ;)
     
  12. #12 docsnyder, 13.02.2007
    docsnyder

    docsnyder another local guru

    Dabei seit:
    12.12.2006
    Beiträge:
    18
    Zustimmungen:
    0
    Ort:
    Darmstadt
    @Xanti

    ... war ja auch nur als Ergänzung gedacht. Natürlich funktioniert Dein Ansatz in den meisten Fällenund es gilt ja auch: "keep it as simple as possible"

    ;o)

    Greetz, Doc
     
  13. #13 tuxlover, 14.02.2007
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    @wolfgang danke für den hinweis. habe s wirklich nicht bemerkt. gehen wir mal weiter davon aus, dass ich das alles erst so nach und nach lerne und ich dem zufolge auch nur das wissen kann, was ichg bis dahin gelernt habe. und im advanced bash scripting guide (abs) war der Shebang eben auch so und nicht anders dargestellt.

    die viel interessantere frage ist doch, warum sollte das fehler produzieren und
    wie äußern sich diese.
     
  14. #14 supersucker, 14.02.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Ganz einfach: Weil manche Shells das halt eben ohne Leerzeichen erwarten.

    Du wirst dann sowas kriegen wie "bad interpreter" oder Ähnliches....
     
  15. #15 tuxlover, 14.02.2007
    Zuletzt bearbeitet: 14.02.2007
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    ja aber ich nutze ja die bash und mittlerweile kann man behaupten das die bash wohl standard bei linux-distributionen ist. außerdem interessiert mich das herzlich wenig, da die scripte ja sowieso nur bei mir laufen sollen. zudem wirkt es etwas übersichtlicher.
     
Thema:

eine Usereingabe automatisieren

Die Seite wird geladen...

eine Usereingabe automatisieren - Ähnliche Themen

  1. Daten für eine Homepage optimieren und verarbeiten?!

    Daten für eine Homepage optimieren und verarbeiten?!: Hi Ihr wisst ja sicher es gibt viele offene Daten die von der Regierung kostenlos zur Verfügung gestellt werden darunter auch "echt zeit daten"....
  2. Programmfenster nur auf einem bestimmten Monitor zulassen

    Programmfenster nur auf einem bestimmten Monitor zulassen: Hallo, ich hoffe ich habe das hier richtig einsortiert. Mein Problem besteht darin, dass ich an meinem Rechner (Ubuntu 17.04) einen Monitor zum...
  3. Keine Zugriff von Windows 10 auf Sambafreigaben

    Keine Zugriff von Windows 10 auf Sambafreigaben: Hallo liebe Forumsmitglieder, Ich habe auf meinem Server (mit fester interner und externer) IP einen VPN und einen Samba Server installiert. Ich...
  4. Daten Convertieren und auf einen Server schieben?

    Daten Convertieren und auf einen Server schieben?: Hi Ich habe ein rriieesseennn Problem. Ja ja mit Windows gehts ned ich weiss.... Es geht darum auf meinen Web CMS möchte ich "echtzeitdaten"...
  5. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...