Por que primeiro definir uma variável e, em seguida, exportá-lo em vez de definir e exportar em um comando?

4

Se gpg-agent for executado, ele gerará dados que podem ser processados diretamente por um shell, por exemplo:

SSH_AUTH_SOCK=/tmp/ssh-apeOFqMF3292/agent.3292; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3293; export SSH_AGENT_PID;
echo Agent pid 3293;

Por que gpg-agent está fazendo isso? Eu vi mais programas fazendo isso. As conchas no passado não suportam export var=val ? Quais shells não suportam este shell alternativo embutido?

Estou trabalhando com o bash no Kubuntu.

    
por Lekensteyn 30.06.2011 / 23:49

1 resposta

12

O shell tradicional do Bourne não suportava combiná-los (embora o System V permita omitir o ; ; o shell do 4.2BSD / SunOS não o fez). Foi adicionado pelo shell Korn (cruzando o shell% do Bourneexport com csh ' setenv ) e posteriormente adotado por outros shells e por POSIX.2. Muitos Unixes comerciais ainda enviam a variante do System V do shell Bourne como /bin/sh , portanto, manter a compatibilidade é uma boa ideia para a portabilidade.

    
por 30.06.2011 / 23:57