내 zsh 스크립트에는 다음 명령이 있습니다.
tmux select-pane -t 0
tmux send-keys 'repeat 5; do print This is a test; sleep 1; done' Enter
tmux의 전송 키 자체는 창에 문자열을 보내지만 해당 상태 string
(종료 코드)를 알지 못합니다.
repeat 5; do print This is a test; sleep 1; done
언제 완료되었는지 어떻게 알 수 있나요 ?
repeat 5; do print This is a test; sleep 1; done
편집: 내가 겪은 문제는 다음 명령의 결과에 영향을 미치는 것이었습니다. 즉, 소비된 시간을 직접 계산하고 다음 명령을 실행하기 전에 명령이 완료되기를 기다리는 시간을 계산했습니다 send-keys
.repeat 5; do print This is a test; sleep 1; done
sleep <seconds_repeat_consume>
repeat
send-keys
답변1
실제 종료 코드를 얻는 것은 어려울 수 있습니다. 하지만 명령이 완료되었다는 사실만 알면 되는 것 같습니다. 이 경우 다음을 사용할 수 있습니다.tmux wait-for
.
이 같은:
tmux select-pane -t 0
tmux send-keys \
'repeat 5; do print This is a test; sleep 1; done; tmux wait-for -S 0' Enter
tmux wait-for 0
echo 'Loop finished'
이로 인해 tmux가 해당 섹션에 tmux wait-for 0
도달할 때까지 중단이 발생합니다 .tmux wait-for -S 0