Qual saída do agente ssh é a sintaxe sh
. A construção export varname=value
é válida em bash
, mas não é reconhecida por muitas implementações de sh
, enquanto a construção varname=value; export varname
é.
Eu tenho lido sobre como o agente ssh funciona e como ele se relaciona com o ambiente do shell. Eu entendo porque fazemos eval ssh-agent
agora (geralmente em / etc / profile), faz sentido lógico. No entanto, a saída do ssh-agent parece um pouco antinatural para mim
# The bad way just (env dont get set, just printed) so i can see its output
[matt@laparchie rc.d]$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-EQUsXLxh4103/agent.4103; export SSH_AUTH_SOCK;
SSH_AGENT_PID=4104; export SSH_AGENT_PID;
echo Agent pid 4104;
Por que o ssh-agent não produz apenas
export SSH_AUTH_SOCK=/tmp/ssh-EQUsXLxh4103/agent.4103;
export SSH_AGENT_PID=4104;
echo Agent pid 4104;
Quando bombeado para eval, ambos fazem o mesmo (ou seja, definindo variáveis env), mas o último é menos detalhado e mais claro para mim, é apenas um estilo (a verbosidade do primeiro)? e se assim for, o estilo tem uma história / razão? ou há algo tecnicamente diferente?
Qual saída do agente ssh é a sintaxe sh
. A construção export varname=value
é válida em bash
, mas não é reconhecida por muitas implementações de sh
, enquanto a construção varname=value; export varname
é.
Tecnicamente, X=Y; export X
é o caminho certo.
Mas como ele é desnecessário, bash
(assim como sh
e zsh
) fornece o atalho export X=Y
, que faz exatamente o mesmo.
Na verdade, eu não conheço nenhum shell, que usa export X
para definir variáveis de ambiente, mas não entende export X=Y
, mas ainda usando uma maneira mais detalhada é considerado mais portátil.