명령줄 도구를 사용하고 ftp
있으며 스크립트 입력과 사용자 입력을 결합하고 싶습니다. 사용자가 입력할 때만 프롬프트는 다음과 같습니다.
ftp>
하지만 다음과 같은 스크립트를 사용하여 일부 입력을 삽입하려고 하면
{echo "user username passwd"; cat;} | ftp -n server.tld
대화형 모드를 계속 사용하도록 강제하려면 어떻게 해야 합니까 ftp
?
나는 표준 쉘 도구를 기반으로 한 솔루션을 선호합니다.
답변1
ftp
예제와 똑같은 대화형 명령줄 도구와 상호 작용하는 프로그램이 있습니다 .expect
. 이는 스크립팅 언어를 확장하는 특수 스크립팅 셸입니다 tcl
.
매우 강력하지만, 그 내용을 모두 이해하지 못한 채 그냥 지나칠 수도 있습니다. 매우 유용한 도구는autoexpect
, 예상된 스크립트로 대화형 세션을 기록할 수 있습니다. 녹음된 대본은 기본을 이해하는 데 확실히 도움이 됩니다.
스크립트는 expect
대화형 프로그램과 결합될 수 있습니다(예: ftp
이는 사용자와 대화형 프로그램의 상호 작용과 결합될 수 있습니다. 스크립트 interact
의 명령을 사용하여 expect
일시적으로 사용자에게 제어권을 줄 수 있습니다.
스크립트는 계속해서 이벤트를 수신하고 있습니다. 사용자는 제어권을 갖고 있으므로 사실상 사용자와 스크립트 모두 프로그램과 동시에 상호 작용합니다.