У меня есть два сценария:
fail_def.sh:
#!/bin/bash -eu
function fail() {
echo -e "$(error "$@")"
exit 1
}
bla.sh:
#!/bin/bash -eu
fail "test"
После source fail_def.sh
я могу использовать сбойКоманда без проблем в терминале.Однако, когда я звоню bla.sh
, я всегда получаю line 2: fail: command not found
.
Неважно, звоню ли я через ./bla.sh
или через bash bla.sh
или через bash ./bla.sh
, ошибка остается.
Добавление source fail_def.sh
в начало bla.sh
решает проблему, но я бы хотел этого избежать.
Я работаю над док-контейнером Ubuntu, работающим на Mac,в случае, если это уместно.
Я попытался найти эту проблему в Google и обнаружил некоторые похожие проблемы, но большинство из них, похоже, связано либо с неискусством файла, либо со смешиванием различных реализаций оболочки, ни одна из которых не кажетсяздесь дело обстоит именно так.
Что мне нужно сделать, чтобы команда fail работала внутри скрипта?