LINUX.ORG.RU

История изменений

Исправление Datt_, (текущая версия) :

Пожалуйста, взгляните на скриншот: https://imgur.com/KC7xdxI

Вкратце поясню.

  1. Стандартный Centos8. В файле /etc/skel/.bashrc, который штатно копируется в домашнюю директорию пользователей при их создании, есть PATH и export PATH. Если вам кажется, что я это подделал, можете поискать в интернете или даже сами развернуть виртуалку и проверить.

  2. Я запустил штатную /usr/bin/sh. Это "When Bash, mksh and zsh are invoked with the sh name, they automatically become more POSIX compliant. ", установленный в Centos 8. Сначала я вывел текущий PATH. Затем изменил его ( PATH=/usr/bin, /usr/sbin/ ). Не сделал экспорт, но запустил дочерний sh. В нём я проверил, получила ли дочерняя сессия изменённое значение переменной PATH без экспорта - и да, там я увидел измененное. То есть для встроенного sh, который стал дочерним процессом, от самого же sh всё нормально передалось и без повторного export, то есть export PATH не нужен был. Не значит ли это, что он либо не posix совместим, либо posix shell тоже так умеет?

Если вы говорите для совместимости, то приведите пример, чтобы я понял, где этот export в ~/.bashrc прям необходим и где что сломается без него?

Исправление Datt_, :

Пожалуйста, взгляните на скриншот: https://imgur.com/KC7xdxI

Вкратце поясню.

  1. Стандартный Centos8. В файле /etc/skel/.bashrc, который штатно копируется в домашнюю директорию пользователей при их создании, есть PATH и export PATH. Если вам кажется, что я это подделал, можете поискать в интернете или даже сами развернуть виртуалку и проверить.

  2. Я запустил штатную /usr/bin/sh. Это "When Bash, mksh and zsh are invoked with the sh name, they automatically become more POSIX compliant. ", установленный в Centos 8. Сначала я вывел текущий PATH. Затем изменил его ( PATH=/usr/bin, /usr/sbin/ ). Не сделал экспорт, но запустил дочерний sh. В нём я проверил, применились ли настройки без экспорта - и да, там я увидел измененное. То есть для встроенного sh, который стал дочерним процессом, от самого же sh всё нормально передалось и без повторного export, то есть export PATH не нужен был. Не значит ли это, что он либо не posix совместим, либо posix shell тоже так умеет?

Если вы говорите для совместимости, то приведите пример, чтобы я понял, где этот export в ~/.bashrc прям необходим и где что сломается без него?

Исправление Datt_, :

Пожалуйста, взгляните на скриншот: https://imgur.com/KC7xdxI

Вкратце поясню.

  1. Стандартный Centos8. В файле /etc/skel/.bashrc, который штатно копируется в домашнюю директорию пользователей при их создании, есть PATH и export PATH. Если вам кажется, что я это подделал, можете поискать в интернете или даже сами развернуть виртуалку и проверить.

  2. Я запустил штатную /usr/bin/sh. Это дефолтный posix shell, установленный в Centos 8. Сначала я вывел текущий PATH. Затем изменил его ( PATH=/usr/bin, /usr/sbin/ ). Не сделал экспорт, но запустил дочерний sh. В нём я проверил, применились ли настройки без экспорта - и да, там я увидел измененное. То есть для встроенного sh, который стал дочерним процессом, от самого же sh всё нормально передалось и без повторного export, то есть export PATH не нужен был. Не значит ли это, что он либо не posix совместим, либо posix shell тоже так умеет?

Хотя стоп. /usr/bin/sh -> bash. These shells can all be linked from /usr/bin/sh. When Bash, mksh and zsh are invoked with the sh name, they automatically become more POSIX compliant.

Если вы говорите для совместимости, то приведите пример, чтобы я понял, где этот export в ~/.bashrc прям необходим и где что сломается без него?

Исправление Datt_, :

Пожалуйста, взгляните на скриншот: https://imgur.com/KC7xdxI

Вкратце поясню.

  1. Стандартный Centos8. В файле /etc/skel/.bashrc, который штатно копируется в домашнюю директорию пользователей при их создании, есть PATH и export PATH. Если вам кажется, что я это подделал, можете поискать в интернете или даже сами развернуть виртуалку и проверить.

  2. Я запустил штатную /usr/bin/sh. Это дефолтный posix shell, установленный в Centos 8. Сначала я вывел текущий PATH. Затем изменил его ( PATH=/usr/bin, /usr/sbin/ ). Не сделал экспорт, но запустил дочерний sh. В нём я проверил, применились ли настройки без экспорта - и да, там я увидел измененное. То есть для встроенного sh, который стал дочерним процессом, от самого же sh всё нормально передалось и без повторного export, то есть export PATH не нужен был. Не значит ли это, что он либо не posix совместим, либо posix shell тоже так умеет?

Хотя стоп. /usr/bin/sh -> bash. А где Posix shell ? Его совсем убрали?

Если вы говорите для совместимости, то приведите пример, чтобы я понял, где этот export в ~/.bashrc прям необходим и где что сломается без него?

Исправление Datt_, :

Пожалуйста, взгляните на скриншот: https://imgur.com/KC7xdxI

Вкратце поясню.

  1. Стандартный Centos8. В файле /etc/skel/.bashrc, который штатно копируется в домашнюю директорию пользователей при их создании, есть PATH и export PATH. Если вам кажется, что я это подделал, можете поискать в интернете или даже сами развернуть виртуалку и проверить.

  2. Я запустил штатную /usr/bin/sh. Это дефолтный posix shell, установленный в Centos 8. Сначала я вывел текущий PATH. Затем изменил его ( PATH=/usr/bin, /usr/sbin/ ). Не сделал экспорт, но запустил дочерний sh. В нём я проверил, применились ли настройки без экспорта - и да, там я увидел измененное. То есть для встроенного sh, который стал дочерним процессом, от самого же sh всё нормально передалось и без повторного export, то есть export PATH не нужен был. Не значит ли это, что он либо не posix совместим, либо posix shell тоже так умеет?

Если вы говорите для совместимости, то приведите пример, чтобы я понял, где этот export в ~/.bashrc прям необходим и где что сломается без него?

Исходная версия Datt_, :

Пожалуйста, взгляните на скриншот: https://imgur.com/KC7xdxI

Вкратце поясню.

  1. Стандартный Centos8. В файле /etc/skel/.bashrc, который штатно копируется в домашнюю директорию пользователей при их создании, есть PATH и export PATH. Если вам кажется, что я это подделал, можете поискать в интернете или даже сами развернуть виртуалку и проверить.

  2. Я запустил штатную /usr/bin/sh. Это дефолтный posix shell, установленный в Centos 8. Сначала я вывел текущий PATH. Затем изменил его ( PATH=/usr/bin, /usr/sbin/ ). Не сделал экспорт, но запустил дочерний sh. В нём я проверил, применились ли настройки без экспорта - и да, там я увидел измененное. То есть для встроенного sh это не нужно было, не значит ли это, что он либо не posix совместим, либо posix shell тоже так умеет?

Если вы говорите для совместимости, то приведите пример, чтобы я понял, где этот export в ~/.bashrc прям необходим и где что сломается без него?