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

Если 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.

  • Как получить чистую среду в оболочке ksh?
  • Когда он не запускается с терминала, Emacs НЕ выбирает переменную среды SSH_AUTH_SOCK
  • Экспортировать несколько опций в $ GREP_OPTIONS
  • Запустить сценарий в неинтерактивной оболочке?
  • Как сделать RPROMPT в самом обновлении zsh при каждом входе?
  • Почему расположение переменных Enviroment сильно отличается?
  • Использование Crontab -e с нестандартным редактором с ограниченной оболочкой (не экспортировать переменную или запустить редактор)
  • почему нам здесь не нужен экспорт?
  • 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 - лучшая ОС в мире.