squier Geschrieben 8. April 2011 Geschrieben 8. April 2011 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 Zitieren
Genodi Geschrieben 9. April 2011 Geschrieben 9. April 2011 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. Zitieren
squier Geschrieben 10. April 2011 Autor Geschrieben 10. April 2011 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.