Veröffentlicht 8. April 201114 j Hallo, ich suche schon eine Weile nach einer Möglichkeit, Benutzereingabe zu verskripten. Szenario: Ich habe ein Skript 1.sh, welches nach Aufruf mittels ./1.sh folgende Ausgabe tätigt: "Gib etwas ein:" => dies wird per "read" in eine Variable entgegengenommen und weiterverarbeitet. (dieses Skript kann/darf nicht von mir bearbeitet werden) Nun möchte ich mit einem zweiten Skript 2.sh dieses erste Skript 1.sh aufrufen und gleich die Benutzereingabe übergeben. (bei diesem Skript kann ich alles mögliche bearbeiten) => Ist dies möglich? Viele Grüße, squier
9. April 201114 j Hi, das scheint schwierig zu sein, da ein "read" erst dann den Wert erwartet. Vielleicht holt der sich den Wert ja aus dem stdin. du könntest es ja mal so versuchen: echo "deineEingabe" | 1.sh Wobei ich glaube, dass das nicht funktionieren wird. da müsste man schon das 1.sh bearbeiten.
10. April 201114 j Danke für den Tipp. Es klappt, wenn ich das erste Script 1.sh so aufrufe: echo "deineEingabe" | sh 1.sh 1.sh: echo Input1: read inputScriptOne echo Output: $inputScriptOne 2.sh: echo $1 | sh 1.sh => Aufruf: >sh 2.sh inputScriptTwo Das Argument inputScriptTwo beim Aufruf wird erfolgreich an das Script 1.sh weitergeleitet/übergeben. Wenn ich allerdings mehrere Argumente übergebe, werden diese auf eine Variable (und zwar die erste verwendete) im Script 1.sh abgebildet.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.