Ich glaube nicht, dass ich das Dienstprogramm "expect" richtig verstehe.
Bei der Suche nach einer Möglichkeit zur Automatisierung eines Erstellungsprozesses, der das Signieren von JARs umfasst, bin ich auf das Problem gestoßen, dass ich damit JARSIGNER ein Kennwort zuweisen kann (ob ein Kennwort in einem Shell-Skript eine gute Idee ist, die ich verstehe, mit welchen Risiken es verbunden ist) ).
Erwarten Sie "Passwort für Keystore eingeben:"
Anstatt dies zu bemerken, wartete der Jarsigner an dieser Schlange.
Verstehe ich den Punkt "erwarten" völlig falsch und wenn ja, was kann ich verwenden, um diesen Effekt zu erzielen?
quelle
Sind Sie zunächst sicher, dass der Jarsigner keine Möglichkeit hat, diese über die Befehlszeilenoption oder eine Konfigurationsdatei bereitzustellen? Wenn nicht, erwarten Sie ist ein guter letzter Ausweg. Stellen Sie sicher, dass Sie den Unterprozess (jarsigner) mit einer Pty und nicht mit einer Pipe erzeugen. Einige Apps, insbesondere solche, die nach einem Passwort fragen, verwenden das tty-Gerät im Raw-Modus und erwarten eine tty-Schnittstelle.
Dann müssen Sie, wenn Sie es erwarten, das Passwort senden.
quelle