ssh remotehost bash < foo.sh
Eu me encontro realizando essa ação parecida com o REPL com bastante frequência:
vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# realizing it wasn't quite right
vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# repeat many times
Eu estava prestes a começar a escrever um script de shell para simplificar isso, mas queria saber se alguém mais inteligente do que eu resolveu esse problema com mais elegância.
Qual a sua solução? Além do emacs:)
EDIT: Por que não basta editar meu arquivo no host remoto? Simples, os hosts que recebem meus scripts nem sempre terão um ambiente de desenvolvimento configurado, portanto, neste caso, o host pode não ter todas as minhas personalizações de vim; às vezes, será código C em vez de um script de shell, o que significa que meu fluxo de trabalho se parece com:
vim foo.c
make
scp foo host:/tmp/foo
ssh host /tmp/foo
# repeat
É por isso. Eu acho que quero algo com uma interface como:
edit_loop foo.c --make --copy-and-run=host:/tmp/foo
O que você acha?
ssh remotehost bash < foo.sh
Etapa 1: monte seu host remoto como uma pasta local usando o SSH-FUSE.
Etapa 2: vim ssh-mount/foo.sh
Etapa 3: de um segundo terminal ou bifurcação do vim, execute ssh host:.../foo.sh
Enxagúe e repita.
Link : link
Você não precisa repetidamente scp
para o servidor; deixe o Vim lidar com isso automaticamente!
vim scp://user@host/path/to/file
Você pode executar ssh user@host
em um terminal separado e executar make
ou /path/to/file
.
Se você precisar de um ambiente de criação que não esteja disponível no servidor, verifique a resposta anterior sobre sshfs