No meu laptop OS/X, posso digitar "dizer concluído" e meu Mac diz "concluído".
Localmente, eu apenas faria:
do-something.sh && say done
E isso me permite mexer em janelas/desktops separados até que o script termine.
Mas agora eu faço ssh do meu mac para uma máquina Linux remota. O que eu quero é poder dizer ao meu Mac para executar "dizer concluído" quando um comando específico for concluído. Alguma boa maneira de fazer isso?
Responder1
Gorjeta para um colega de trabalho, A Golden, que surgiu com isso imediatamente. Este é um recortar e colar da resposta deles, que funciona e acerta completamente.
I picked "say-hi-locally" and set it up on my linux server as:
alias say-hi-locally="echo EMIT SAY HI"
Then, since I use ITerm2 as my local terminal, I set up a trigger in ITerm2 with the regexp "EMIT SAY HI" and told that to run the local command "say hi"
Now I can do:
do-something.sh; say-hi-locally
and when it finishes it will echo "EMIT SAY HI" which ITerm2 will then pick up and then my computer says "hi" to me! :-)
Responder2
No seu Mac, inicie um servidor TCP que enviará tudo o que receber para say
:
mac $ while true; do nc -l 1234 | say; done
Então, quando você usar SSH, use -R
para encaminhar a porta 1234 para o seu servidor:
mac $ ssh -R 1234:localhost:1234 linux
Agora seu servidor Linux deve ter um túnel para o servidor nc em seu Mac e pode ser usado nc
para enviar texto para ele:
linux $ echo done | nc localhost 1234
Responder3
você precisará de um servidor ssh no seu mac. Então você pode fazer o seguinte:
[you@mac]$ ssh linux
[you@linux]$ interactive_cmd; ssh mac say done
Você faz login no seu host Linux, executa o comando, quando terminar, o ssh do host Linux volta para o seu mac e executa o say
comando.
Responder4
ssh linux do-something.sh && say done
parece fazer o que você quer. Implementar alguma comunicação entre o host remoto e o seu Mac não parece viável.
Se você deseja executar mais comandos e está preocupado com a latência, uso ControlMaster
e ControlPersist
opções (muitas perguntas sobre isso já foram respondidas).