좋습니다. 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