Palavras-chave de escape com o tmux send

2

Usando tmux para enviar comandos ao longo de um terminal para outro, percebo que

$ tmux send -t mySession "text" ENTER

envia corretamente text , mas

$ tmux send -t mySession "up" ENTER

envia text novamente, provavelmente porque up é interpretado não como texto, mas como uma seta de chave com palavras-chave.

Da mesma forma,

$ tmux send -t mySession "3" ENTER

envia corretamente 3 , mas

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

falha com esta mensagem de erro, e este ingênuo tenta escapar

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

envia 3 novamente, não o esperado -3 .

De qualquer forma, tenho certeza que perdi algo sobre a maneira como o tmux interpreta e entende seu argumento. O que estou perdendo aqui?

Como posso garantir que mytmuxcommand "<text>" ENTER será sempre interpretado como "enviar% real<text> e depois enviar chave ENTER" ?

    
por iago-lito 28.09.2018 / 09:30

1 resposta

1

Para enviar uma string literalmente, você pode usar a opção -l para send-keys , mas como ainda pode ter mais opções após o -l , é necessário usar algo como '' (uma string vazia) mais estar procurando opções começando - .

Você não pode misturar e combinar o literal com nomes-chave como Enter, então, finalmente, você precisa dar dois comandos, por exemplo:

tmux send-keys -t session -l '' -3 \; send-keys -t session Enter
    
por 28.09.2018 / 18:25