tmux send를 사용하여 키워드를 이스케이프하세요.

tmux send를 사용하여 키워드를 이스케이프하세요.

한 터미널에서 다른 터미널로 명령을 보내 면서 tmux깨달았습니다.

$ tmux send -t mySession "text" ENTER

올바르게 전송 text되었지만

$ tmux send -t mySession "up" ENTER

다시 보냈습니다 text. 아마도 up텍스트로 해석되지 않고 키워드 키 위쪽 화살표로 해석되었기 때문일 것입니다.

비슷하게,

$ tmux send -t mySession "3" ENTER

올바르게 전송 3되었지만

$ tmux send -t mySession "-3" ENTER
tmux: unknown option -- 3
usage: send-keys [-lRM] [-t target-pane] key

이 오류 메시지와 함께 실패하고 이 순진한 탈출 시도는 실패합니다.

$ tmux send -t mySession "\-3" ENTER

3예상하지 못한 일이 다시 전송되었습니다 -3.

어쨌든, 나는 tmux가 인수를 해석하고 이해하는 방식에 대해 뭔가 빠졌다고 확신합니다. 내가 여기서 무엇을 놓치고 있는 걸까요?

mytmuxcommand "<text>" ENTER항상 다음과 같이 해석되도록 하려면 어떻게 해야 합니까?"실제값을 보낸 <text>후 ENTER 키를 보내세요"?

답변1

문자열을 문자 그대로 보내려면 -lto 옵션을 사용할 수 있지만 send-keys, 뒤에도 더 많은 옵션이 있을 수 있으므로 시작 부분에서 더 이상 옵션을 찾지 않으려면 (empty string)과 같은 것을 -l사용해야 합니다 .''-

Enter와 같은 키 이름과 리터럴을 혼합하여 일치시킬 수 없으므로 결국 다음과 같은 두 가지 명령을 제공하게 됩니다.

tmux send-keys -t session -l '' -3 \; send-keys -t session Enter

관련 정보