Получить путь к исходному скрипту bash

MapR — это отличная распространяемая файловая система, которая поставляется в двух версиях :для сообщества и для предприятий. В версии сообщества отсутствуют некоторые функции, такие как High Availability и Global Table Replication для MapR -DB. Вы можете получить обзор и полное сравнение здесь .

1
19.03.2019, 13:07
1 ответ

Разница между получением сценария и его «запуском» заключается в том, что когда вы создаете его (с помощью sourceили .), сценарий выполняется в текущей среде оболочки, а если вы «запускаете его», запускается новый процесс оболочки. Вы хотите, чтобы исходные сценарии изменяли текущую среду оболочки. Сценарий, запущенный в отдельном процессе оболочки, не может изменять среду родительской оболочки. Под «окружением» подразумеваются, например, значения переменных оболочки и окружения, текущий рабочий каталог и т. д.

Сценарий обычно пишется либо для получения исходного кода, либо для выполнения в собственной среде оболочки, но очень редко и то, и другое. Сценарий, созданный для получения источника, иногда называют «точечным -сценарием» (, поскольку .является стандартной командой для получения такого сценария; sourceявляется bash«псевдонимом» для.).

Сценарий с точкой -, созданный оболочкой bash, может найти свое местоположение, проверив первый элемент массива BASH_SOURCE:

printf 'My location: %s\n' "$( dirname "${BASH_SOURCE[0]}" )"

Путь к каталогу будет относиться к текущему рабочему каталогу во время вызова sourceили .в сценарии.

4
27.01.2020, 23:41

Теги

Похожие вопросы