Используйте Bash для Irssi

Используйте Bash для Irssi

Хорошо, я пишу скрипт оболочки, чтобы открыть Irssi и затем автоматически подключиться к freenode. Мне следует редактировать файл ~/.irssi/config или есть способ сымитировать ввод мной /connect irc.freenode.net? Я использовал echo, send и expect, но это не сработало. Вот код, который у меня есть на данный момент.

irssi
echo "/connect irc.freenode.net"

решение1

irssi предоставляет -cпереключатель, который позволяет указать сервер для подключения при запуске приложения.Страница пользователя irssi:

-c, --connect=SERVER
    connects to SERVER

Итак, вы можете просто использовать один из этих вариантов:

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

Причина, по которой echoне работает, в том, что он не подключен к стандартному вводу irssi. В основном, происходит следующее:

  • Запускаете irssi, подключаетесь к серверу, немного общаетесь, выходите.
  • После закрытия irssi (завершения его процесса) ваш echoтекст будет напечатан.

Тот же результат будет, если вы используете:

$ irssi ; echo "Hello"

Теперь, что касается expectэтого, это, вероятно, связано с тем, что irssi — клиент на основе ncurses. Поскольку ncurses переопределяет способ обработки ввода и вывода, весьма вероятно, что он expectв любом случае не сможет взаимодействовать с процессом. Кроме того, ожидать нечего stdout, так как irssi отправляет много вещей в этом потоке:

  • Синий заголовок.
  • Несколько пустых строк, некоторые с текстом, если вы его использовали -c(журнал подключений).
  • Еще одна синяя линия с текстом внутри.
  • Подсказка.
  • ...

И не только:

[(status)] _

На что вы могли бы ответить:

/connect irc.freenode.net

Связанный контент