gibt es eine Möglichkeit, Befehle direkt an die CLI eines Tools zu übergeben?
Ich möchte einige Aktionen skripten, zum Beispiel:
./OpenBTS < "tmsis"
Ich muss die Ergebnisse nicht abrufen (ich beobachte sie in der Protokolldatei). Haben Sie eine Idee, wie ich das realisieren könnte? Es gibt keine Möglichkeit, dies mit Befehlszeilenparametern zu tun, zumindest habe ich keine gefunden. Es sieht also so aus, als müsste ich mir selbst etwas einfallen lassen. Irgendeine Idee? Vielleicht könnte ich den Bildschirm so automatisieren, dass er die Eingabeaufforderung erkennt und meinen Befehl dort „einfügt“. Gibt es dafür Tools unter Linux?
Antwort1
Klingt, als ob Sie suchenerwarten
Antwort2
Sie können es mit einem Heredoc versuchen, etwa so:
./OpenBTS <<EOF
tmsis
EOF
wie im folgenden Transkript, das Eingaben einspeist in sed
:
pax$ sed 's/^/Q/' <<EOF
> hello
> goodbye
> EOF
Qhello
Qgoodbye
Alternativ können Sie einfach Dinge direkt hinein echoen, wie
echo "tmsis" | ./OpenBTS
gemäß folgendem Beispiel:
pax$ echo 'hello
goodbye' | sed 's/^/Q/'
Qhello
Qgoodbye
Antwort3
Es gibt keine spezielle Möglichkeit, dies zu tun, aber wenn das Tool auf stdin lauscht, können Sie hierfür ein Heredoc verwenden.
./sometool << EOF
action1
action2
quit
EOF