У меня есть следующий сценарий, созданный каким-либо самостоятельно утверждал эксперт Баш:
SCRIPT_LOCATION="$(readlink -f $0)"
SCRIPT_DIRECTORY="$(dirname ${SCRIPT_LOCATION})"
export PYTHONPATH="${PYTHONPATH}:${SCRIPT_DIRECTORY}/util"
Это работает хорошо на моем местном Ubuntu 16.04. Теперь я хотел использовать его на наших серверах RH 7.2; и там я получил сообщение об ошибке от readlink
; о вызове с плохими параметрами.
Тогда я понял: на Ubuntu, $ 0 дает «bash»; тогда как на RH он дает «-башу».
EDIT: сценарий вызывается как . ourscript.sh
Вопросы:
- Любая идея, почему это?
- Когда я меняю свой сценарий на использование hardcoded
readlink -f bash
, все работает. Существуют ли «лучшие» способы для этого? - Вы можете объяснить, что readlink -f Баш на самом деле делает ;-)
Как вы используете скрипт? – 123
'$ 0' не должен содержать' bash' внутри скрипта. Убедитесь, что вы правильно проверили. – Mat
Обновлен мой вопрос. – GhostCat