Почему сначала установить переменную, а затем экспортировать ее вместо настройки и экспорта в одной команде?

Если gpg-agent выполняется, он выводит данные, которые могут обрабатываться непосредственно оболочкой, например:

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

Почему gpg-agent делает это? Я видел больше программ, которые делают это. Разве оболочки в прошлом не поддерживали export var=val ? Какие оболочки не поддерживают эту альтернативную оболочку?

Я работаю с bash в Kubuntu.

  • Введение env --null
  • Как получить чистую среду в оболочке ksh?
  • Есть ли плагин или инструмент для нескольких «профилей» в ZSH?
  • Экспортирование переменной с точкой (.) В ней
  • Попытка понять .bashrc, env и export
  • Эффект, если какая-либо из изменяющихся переменных среды LD_LIBRARY_PATH на шрифтах emacs?
  • Настройка переменных среды с .sh-файлом
  • Получить переменную среды для другого пользователя
  • One Solution collect form web for “Почему сначала установить переменную, а затем экспортировать ее вместо настройки и экспорта в одной команде?”

    Традиционная оболочка Bourne не поддерживала их объединение (хотя System V позволяет вам опустить; в оболочке 4.2BSD / SunOS не было). Он был добавлен оболочкой Korn (пересекающей export оболочки Bourne с csh ), а затем был принят другими оболочками и POSIX.2. Многие коммерческие Unixes по-прежнему поставляют версию System V оболочки Bourne как /bin/sh , поэтому сохранение совместимости – хорошая идея для переносимости.

    Linux и Unix - лучшая ОС в мире.