У меня была такая же проблема, только сейчас
я понял, что добавление функции клетчатой и возвращения не будет также возвращать функцию на ее например, вызывающего абонента.
На bash_functions
function install_packer_linux() {
check_wget && check_unzip
wget https://releases.hashicorp.com/packer/1.1.2/packer_1.1.2_linux_amd64.zip
unzip packer_1.1.2_linux_amd64.zip
mv packer ~/.local/bin
rm -f packer_1.1.2_linux_amd64.zip
}
function check_unzip() {
if ! [ -x "$(command -v unzip)" ]; then
echo "Error: unzip is not installed"
return 1
else
return 0
fi
}
function check_wget() {
if ! [ -x "$(command -v wget)" ]; then
echo "Error!: wget is not installed"
return 1
else
return 0
fi
}
$ source ~/.bash_functions
Что здесь происходит, поскольку шашки является единственным местом, возвращающий так install_packer_linux будет по-прежнему продолжают
Таким образом, вы можете сделать две вещи здесь.Либо сохранить текущий формат (функция вызова другой функции), как и оценить с помощью truthy значение затем вернуться, если значения не truthy или переписать проверки на основной функции installer_packer_linux
Truthy:
function install_packer_linux() {
check_wget && check_unzip || return
wget https://releases.hashicorp.com/packer/1.1.2/packer_1.1.2_linux_amd64.zip
unzip packer_1.1.2_linux_amd64.zip
mv packer ~/.local/bin
rm -f packer_1.1.2_linux_amd64.zip
}
Заметьте, что мы добавлено || вернуть после проверок и объединить проверки, используя & & , так что если обе проверки не являются правдивыми, мы возвращаем функцию
Ответа на этот вопрос paxdiablo is perfect and should accepted. – Tino