у нас есть несколько программных ссылок на скрипты в каталоге в нашем текущем каталоге. Давайте возьмем две программные ссылки, script1 и script2. Мы ссылаемся на script2 внутри script1, как показано ниже.

. script2

Он работал нормально, пока мы не изменили нашу инфраструктуру. Теперь, если мы запустим скрипт softlink script1, он не сможет найти в нем скрипт softlink2 и выдаст ошибку. Хотя это работает, если мы изменим ссылку на softlink в script1, как показано ниже.

. ./script2

Любая очевидная причина для этого.

1 ответ1

1

Как bash объясняет, страница руководства source . Является сокращением), ищет файл в $PATH , если она не содержит / таким образом ,

. script1

это просто неправильно, и ваша проблема не имеет ничего общего с символическими ссылками, но это больше проблема версий bash (это поведение изменилось в какой-то момент времени, IIRC). По крайней мере, zsh и dash (которые являются довольно совместимой оболочкой POSIX) делают то же самое.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .