Verwenden Sie Bash für Irssi

Verwenden Sie Bash für Irssi

Okay, ich schreibe ein Shell-Skript, um Irssi zu öffnen und dann automatisch eine Verbindung zu Freenode herzustellen. Soll ich die Datei unter ~/.irssi/config bearbeiten oder gibt es eine Möglichkeit, zu simulieren, dass ich /connect irc.freenode.net eingebe? Ich habe echo, send und expect verwendet, aber es hat nicht funktioniert. Hier ist der Code, den ich bisher habe.

irssi
echo "/connect irc.freenode.net"

Antwort1

irssi bietet einen -cSchalter, mit dem Sie einen Server angeben können, mit dem beim Start der Anwendung eine Verbindung hergestellt werden soll. Vonirssis Manpage:

-c, --connect=SERVER
    connects to SERVER

Sie können also einfach eines davon verwenden:

$ irssi -c irc.freenode.net
$ irssi --connect=irc.freenode.net
$ irssi --connect irc.freenode.net

Der Grund, warum echoes nicht funktioniert, ist, dass es nicht mit dem Standardeingang von irssi verbunden ist. Im Wesentlichen passiert Folgendes:

  • Sie starten irssi, stellen eine Verbindung zu einem Server her, chatten ein wenig und verlassen die Seite.
  • echoSobald irssi geschlossen ist (der Prozess beendet ist), wird Ihr Text gedruckt.

Sie erhalten das gleiche Ergebnis, wenn Sie Folgendes verwenden:

$ irssi ; echo "Hello"

Was das betrifft expect, liegt das wahrscheinlich daran, dass irssi ein auf ncurses basierender Client ist. Da ncurses die Art und Weise neu definiert, wie Eingabe und Ausgabe manipuliert werden, ist es sehr wahrscheinlich, dass expectohnehin keine Kommunikation mit dem Prozess möglich ist. Außerdem ist nichts stdoutspeziell zu erwarten, da irssi viele Dinge in diesem Stream sendet:

  • Eine blaue Kopfzeile.
  • Einige leere Zeilen, einige mit Text, falls Sie es verwendet haben -c(Verbindungsprotokoll).
  • Eine weitere blaue Linie mit etwas Text darin.
  • Eine Aufforderung.
  • ...

Und nicht nur:

[(status)] _

Darauf könnten Sie antworten:

/connect irc.freenode.net

verwandte Informationen