Qual é a diferença entre 'exec ssh localhost' e 'ssh localhost'?

1

Eu li man exec output, mas não entendi a diferença entre esses dois comandos: exec ssh localhost e ssh localhost . Eu testei ambos os comandos e não encontrei nenhuma diferença. Existe alguma diferença?

    
por PHP Learner 30.07.2015 / 09:10

1 resposta

2

Esses dois não são iguais.

exec é um shell embutido que executará o comando fornecido ssh localhost neste caso com a substituição do shell atual pelo comando.

Ao fazer o simples ssh localhost você está executando o comando geral ssh , não há sinos e assobios associados.

O efeito será aparente quando você for logout da sessão ssh :

  • No caso de exec ssh localhost , o shell será substituído por ssh lcoalhost , depois do ssh você obterá um shell como de costume. Ao sair da sessão de shell ssh , por exemplo, por logout ou exit você não voltará ao shell pai, ou seja, a partir do shell que você executou exec ssh localhost , como já foi substituído. Então, você simplesmente perderá essa guia / janela do terminal.

  • Por outro lado, para ssh localhost , como você não está substituindo o shell pai por ssh localhost , então após o logout você voltará ao shell pai, isto é, o shell do chamador.

por heemayl 30.07.2015 / 09:23