Haben bash-Skript beantworten interaktive Eingabeaufforderungen
Ist es möglich, ein bash-Skript automatisch Griff aufgefordert, die normalerweise für den Benutzer angezeigt werden, die mit Standard-Aktionen? Derzeit bin ich mit einem bash-Skript zum Aufruf eines in-house-tool, das zeigt Eingabeaufforderungen an den Benutzer (Aufforderung zur Eingabe J/N) Aktionen ausführen, aber das Skript, das ich Schreibe, muss komplett "hands-off", also brauche ich einen Weg zu schicken Y|N
auf die Eingabeaufforderung, damit das Programm mit der Ausführung fortfahren. Ist das möglich?
das ist nicht "autocompletion"... wie @entspannen Sie sagt, es ist "automation"
Beispiel für die Verwendung
Beispiel für die Verwendung
yes
um dies zu tun: unix.stackexchange.com/questions/47344/...InformationsquelleAutor tj111 | 2010-09-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht "auto-completion", dies ist die Automatisierung. Ein gemeinsames Instrument für diese Dinge ist genannt Erwarten.
Könnten Ihnen auch Weg mit nur Rohrleitungen Eingabe von
ja
.yes
in der Tat, der trick, zum Glück sind alle die aufgefordert, nur erforderlich, ein 'y' sowieso. Danke.Allerdings
Yes | command
funktioniert möglicherweise nicht immer. Wenn es nur für die installation dann fiel ich mit-y
ist eine bessere und bevorzugte option.InformationsquelleAutor unwind
Einem einfachen
Diese Ihnen erlauben, um eine Folge von "Y" oder "N", um Ihr Skript.
N
's, ich würde verwendet haben, diese Methode, aber ich brauchte nur Y' s, also ging ich mityes
. Schade, dass ich nicht akzeptieren kann, dass zwei Antworten, denn Sie sind beide richtig.😉 Nun, wenn Sie jemals brauchen werden, um einige schicken
N
Sie haben jetzt eine gute Möglichkeit, es zu tun.Diese Problemumgehung ist genial für meine faul-CLI Verhalten. Danke!!!
Dies funktioniert nicht für mich; Leerzeichen zählen nicht als neue lines---wenn ich z.B. echo "Y N" dann gibt es die Zeichenfolge
"Y N"
als Eingabe, um die erste Eingabeaufforderung und hängt an der zweiten Eingabeaufforderung und wartet auf mich, es zu vollenden. Ich habe versucht, die änderung der Räume, um Zeilenumbrüche, aber das hat nicht funktioniert, noch gab eine literal-Zeichenfolge an der Eingabeaufforderung ein.versuchen Sie es mit
printf 'y\ny\ny\n' | ./your_script
. Auf diese Weise sind Sie manuell einfügen die neue Zeile für jeden Eintrag erwartet.InformationsquelleAutor Loïc Février
Ich fand die beste Weg, um zu senden, Eingabe ist die Verwendung von cat-und eine text-Datei weitergeben was auch immer input, den Sie benötigen.
InformationsquelleAutor Alex
Wenn man nur Y zu senden :
Wenn Sie nur N schicken :
InformationsquelleAutor douardo
In meiner situation musste ich einige Fragen beantworten, ohne Y oder N, aber mit text oder leer. Ich fand die beste Weg, dies zu tun in meiner situation war die Erstellung eines shellscript-Datei. In meinem Fall habe ich es genannt autocomplete.sh
War ich brauchen ein paar Fragen für eine Lehre schema Exporteur also meine Datei sah so aus.
-- Dies ist lediglich ein Beispiel --
Die Sache ich mag über diese Strategie ist, Sie können kommentieren, was Ihre Antworten und mithilfe von EOF eine leere Zeile ist nur, dass (die Standard-Antwort). Stellt sich heraus, die durch die Art und Weise dieser exporter-tool hat seine eigene JSON-Gegenstück für die Beantwortung dieser Fragen, aber ich dachte mir, dass sich nachdem ich dies getan habe =).
ausführen, um das Skript einfach in das Verzeichnis, das Sie möchten, und führen Sie
'sh autocomplete.sh'
im terminal.Kurz durch die Verwendung << EOL & EOF in Kombination mit Return Linien können Sie beantworten Sie jede Frage, die prompt als notwendig. Jede neue Zeile ist eine neue Antwort.
Mein Beispiel zeigt nur, wie dies getan werden kann, mit Kommentare, auch mit dem ` - Zeichen, damit Sie sich daran erinnern, was jeder Schritt ist.
Hinweis: der andere Vorteil dieser Methode ist, die Sie beantworten können, die mit mehr dann nur Y oder N ... in der Tat kann man die Antwort mit Leerzeichen!
Hoffe, dies hilft jemand aus.
Wieder runter Wähler, erklären Sie bitte, warum? Ich kann nicht fix die Antwort ohne Kommentare.
Dies funktioniert für mich. Manchmal printf und echo funktioniert nicht
Es ist die einzige Lösung die für mich funktioniert!! Vielen, vielen Dank!
InformationsquelleAutor Joseph Astrahan
Gibt es eine spezielle build-in-util für diese - 'ja'.
Beantworten alle Fragen mit der gleichen Antwort, die Sie ausführen können,
Oder Sie können es in Ihrem Skript haben spezifische Antwort auf jede Frage, die
InformationsquelleAutor Asaf Pinhassi