Ich habe. SH-Datei, die einige Eingabeaufforderungen werfen wird und ich möchte erwarten, diese Eingabeaufforderungen zu beantworten, damit Skript erfolgreich ausgeführt werden kann. hier ist ein Dateiinhalt:Wie kann 'expect' verwendet werden, um Aufforderungen in der Shell-Datei automatisch zu beantworten?
echo Enter your name
read name
echo $name
echo Enter your age
read age
echo $age
Ich will ‚erwarten‘ dies mit vordefinierten Eingabeaufforderungen zu beantworten, die ich zur Verfügung stellen.
Ihre Frage ist zu weit gefasst. Wo genau stecken Sie fest? Ich denke, Sie sind im Großen und Ganzen vertraut mit * expect *; Wenn nicht, sollten Sie zuerst [einige Beispiele] (http://www.thegeekstuff.com/2010/10/expect-examples/) studieren. – user1934428
Wenn Sie steuern, wie das Skript geschrieben wird, sollten Sie es schreiben, um Eingaben über einen alternativen Mechanismus sammeln zu können und weder interaktive noch echte simulierte Eingaben zu benötigen. Zum Beispiel ist eine Eingabeaufforderung nur dann üblich, wenn Umgebungsvariablen oder Befehlsaufforderungs-Parameter nicht mit den gewünschten Daten festgelegt wurden. –
dh. '[-n" $ name "] || {echo "Gib deinen Namen ein"; Name lesen; } 'liest nur den Namen, wenn es nicht schon vergeben ist. Wenn Sie 'name =" Siddharth "./Yenscript' ausführen, wird der Name über seine Umgebung abgerufen und muss nicht abgefragt werden. –