Existe uma ferramenta chamada Expect
que faz handshake e comunicação generalizada que você pode usar; no entanto, o iTerm2 pode fazer parte do que o Expect faz diretamente da guia Avançado.
Nota: O Expect está escrito em TcL, uma linguagem incrível para se conhecer por si só. Essa pergunta em particular provavelmente está explicada com uma resposta bem comentada em um Expect FAQ em algum lugar. Além disso, se você optar por implementar uma solução com o Expect over iTerm2, poderá usá-la em mais do que seu host OSX. Então pense sobre esse comércio logo de cara. No curto prazo, a opção Triggers do iTerm2 fará o truque para você.
Portanto, para fornecer parte do que o Expect fornece diretamente do iTerm2, vá para a guia Avançado. Lá você encontrará o recurso Triggers. A partir daí, você pode adicionar "+" uma regra de acionamento específica. Em poucas palavras, o que esses gatilhos (e o Expect) permitem fazer é filtrar todo o texto de e para o Terminal, fazer a correspondência desse texto com o gatilho de expressões regulares (ReEx) especificado pelo usuário e quando esse ReEx é correspondido no fluxo de texto do Terminal , o iTerm2 executará uma tarefa especificada pelo usuário.
Aqui está uma regra de acionador que corresponderá a uma linha que contém exatamente uma palavra, Senha e, em seguida, Enviar texto: Minha senha.
Lembre-se de que o fluxo de texto do terminal contém caracteres invisíveis e especificar o ReEx exato para corresponder pode ser um desafio, especialmente, por exemplo, porque servidores diferentes implementam separadores de linha diferentes e, se um ReEx usa especificamente um, não pode corresponder a nenhuma razão aparente.
Uma coisa: estou pensando em por que você pode estar fazendo essa pergunta? Não sabe ao certo o que você está familiarizado, mas se quiser fazer o login automático via ssh
, adicione um comentário e configurar isso é fácil. Se você investiu nisso, pesquise as palavras-chave "ssh-keygen" e "gere chaves públicas rsa para ssh".
Sei que isso é um comentário, mas pensei em lançar isso já que já tenho espaço - pelo que vale a pena:
Eu acho que alguém usaria o Send text at start:
para definir variáveis de ambiente que são relevantes para a sessão do host remoto. Por exemplo, usei esse método para passar parâmetros para meus processos remotos como um meio de passar parâmetros por variáveis de ambiente. Não tenho certeza, mas isso seria um uso desse Command
campo para personalizar o que acontece quando um determinado ssh userid@hostname
item é executado.
Veja a segunda resposta em É possível obter o SSH para encaminhar argumentos vazios? para o exemplo completo, mas tudo se resume à seguinte sintaxe:
$ ssh me@localhost 'VAR1="var1 text" /tmp/try.pl'
Minha hipótese é que um uso potencial da Send text at start:
opção é fornecer o ambiente do processo VAR1="var1 text" /tmp/try.pl
, ou simplesmente o VAR="var1 text"
ambiente remoto.
Aqui está um exemplo mais concreto do zero, usando um host Mac Dual-G5 chamado r2d2:
Veja como eu configuro o perfil do r2d2:
Agora, quando eu chuto um r2d2 iTerm2, e echo $FRED
vejo que qualquer comando que eu teria chamado à la, o ssh poderia examinar o ambiente e determinar um contexto para execução:
Claro, isso é especulação, considerando o que eu experimentei, então é apenas uma possibilidade. Agora eu sei que poderei explorar esse caminho de controle, então obrigado pela pergunta.