Я наблюдаю странное поведение, когда запускаю "ssh" в системе Linux. Я отследил это частично до разницы в bash при запуске в режиме posix.
% bash --posix
% ln -s /tmp mytmp
% cd mytmp
% pwd
/home/user/mytmp
На странице руководства bash в режиме posix есть следующие элементы:
-> Когда встроенная команда cd вызывается в логическом режиме, а путь, созданный из $ PWD, и имя каталога, указанное в качестве аргумента, не относится к существующему каталогу, cd завершится ошибкой вместо возврата в физический режим.
-> Когда встроенной команде pwd предоставляется опция -P, она сбрасывает $ PWD на путь, не содержащий символических ссылок.
-> Встроенная команда pwd проверяет, что выводимое ею значение совпадает с текущим каталогом, даже если не запрашивается проверка файловой системы с параметром -P.
ни одно из этих слов не похоже на то, что я вижу.
Похоже, у меня нет каких-либо специальных переменных, связанных с PWD, в файлах запуска. Я знаю, что --posix контролирует, какие файлы запуска используются.
Есть ли переменная, которая явно управляет поиском символических ссылок?
Я могу придумать несколько способов «отменить» этот эффект, но мне нужно знать, почему это происходит.
Я использую ssh для запуска make, а затем make использует pwd
, и ЭТОТ pwd дает неправильный ответ. Он должен брать его прямо из настройки ENV. Я хотел бы найти где-нибудь документы о том, что происходит.