Existe uma ferramenta chamada Expect
que faz handshaking generalizado e comunicação que você pode usar, no entanto, o iTerm2 pode fazer um pouco do que o Expect faz diretamente da aba Avançado.
Nota: A expectativa é escrita em TcL, uma linguagem incrível para se conhecer por direito próprio. Esta questão em particular é, provavelmente, explicitada com uma resposta bem comentada em um FAQ esperado em algum lugar. Além disso, se você escolher implementar uma solução com Expect over iTerm2, poderá usar essa solução em mais do que seu host OSX. Então pense sobre esse assunto na frente. No curto prazo, a opção iTerm2 Triggers fará o truque para você.
Assim, para fornecer um pouco do que o Expect fornece diretamente do iTerm2, vá para a guia Advanced. Lá você encontrará o recurso Triggers. A partir daí, você pode adicionar "+" a uma regra de acionador específica. Em suma, o que esses gatilhos (e Expect) permitem fazer é filtrar todo o texto de e para o Terminal, combinar esse 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 irá realizar uma tarefa especificada pelo usuário.
Aqui está uma regra de disparo que corresponderá a uma linha contendo exatamente uma palavra, Senha e, em seguida, Enviar texto: minha senha.
Lembre-sedequeofluxodeTextodoTerminalcontémcaracteresinvisíveiseespecificaroReExexatoparacorresponderpodeserumdesafio,especialmenteporque,porexemplo,servidoresdiferentesimplementamseparadoresdelinhasdiferentese,seumReExusaespecificamenteum,elepodenãocoincidesemmotivoaparente.
Umacoisa:estoupensandoemporquevocêpodeestarfazendoestapergunta?Nãotenhocertezadoquevocêestáfamiliarizado,massevocêquiserfazerologinautomáticoviassh
,adicioneumcomentário,econfigurarissoéfácil.Sevocêinvestirnisso,procureporpalavras-chave"ssh-keygen" e "generate rsa public keys for ssh."
Eu sei que este é um comentário, mas eu pensei em jogar isso lá fora, já que eu já tenho o espaço - pelo que vale:
Eu acho que seria usado o Send text at start:
para definir variáveis de ambiente que são relevantes para a sessão do host remoto. Por exemplo, eu usei esse método para passar parâmetros para meus processos remotos como meio de passar parâmetros através de variáveis de ambiente. Não tenho certeza, mas isso seria um uso desse campo Command
para adaptar o que acontece quando um ssh userid@hostname
específico é 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'
Eu especulo que um uso potencial da opção Send text at start:
é fornecer o VAR1="var1 text" /tmp/try.pl
, ou simplesmente, o VAR="var1 text"
para o ambiente do processo remoto.
Aqui está um exemplo mais concreto do zero usando um host Mac Dual-G5 chamado, r2d2:
Veja como eu configurei o perfil do r2d2:
Agora,quandoeuchutodeumr2d2iTerm2eecho$FRED
,vejoquequalquercomandoqueeuteriachamadoalaosshpoderiaexaminaroambienteedeterminarumcontextoparaexecução:
É claro que isso é especulação, dado o que eu experimentei, então é apenas uma possibilidade. Agora sei que vou poder explorar esse caminho de controle, então obrigado pela pergunta.