send-keys
tmux 를 사용하고 싶습니다원격 서버에 로그인하면 일련의 명령을 실행합니다.
연결된 답변에서는 단일 명령이 사용됩니다. 나는 그것들을 일련으로 배치할 수 있다는 것을 알았지만, 그 중 두 개 이상을 성공적으로 실행한 적이 없습니다. 그들 사이에 일시 중지를 도입하는 것이 가능합니까(원격 호스트가 응답하기 전에 tmux가 그 중 하나를 실행하는 것이 문제라고 가정하기 때문에)?
이 명령은 로그인한 사용자에게 변경 사항을 적용하며 이는 지금까지 문제가 되지 않았지만 실행 중인 서버에 스크립트를 둘 수 없는 이유 중 하나입니다. (tmux는 사용자를 변경해도 상관하지 않지만 스크립트는 그렇게 할 수 없으며 계속 실행됩니다.)
그렇다면 2개 이상의 명령을 어떻게 얻을 수 있습니까?
관련이 있는지 의심스럽지만 zsh를 로컬로 실행하고 서버에서 bash를 실행하고 있습니다.
답변1
저도 질문을 완전히 이해하지는 못하지만,예상되는도움이 될 수도 있습니다. 대화형 세션에 입력을 보내고 응답을 구문 분석하여 로그인, 명령 완료 등을 기다리는 수동 지연을 제거할 수 있습니다.
답변2
tmux 명령 사이에 "잠자기"만 하세요...
tmux send-keys -t 1 "echo -n hello " Enter
sleep 5
tmux send-keys -t 1 "echo world" Enter
그러나 일반적으로 기다리는 이유는 계속하기 전에 어떤 일이 발생해야 하기 때문입니다. 고정된 간격에 의존하는 것은 좋은 엔지니어링이 아닙니다. expect
@FazJaxton이 제안한 것처럼 올바른 스크립트를 사용하는 것이 더 안전합니다.