Intereting Posts
Как скомпилировать сторонний драйвер в ядро? Насколько надежны / переносимы Nix-встроенные / команды (echo, ps, sort, uniq) из Debian в другие дистрибутивы Как я могу остановить последовательности смены заголовка от клонирования моих титулов экрана GNU? Почему время Unix начинается с 1970-01-01? Bash: показать подсказки, если аргументы не были предоставлены libmpg123 bugging up yum ярлык клавиатуры над vnc не работает Не удается воспроизвести DVD-диски на ноутбуке Linux Ubuntu Могу ли я получить доступ к файлу терминала? OpenSSL s_client не обнаруживает STARTTLS Каковы некоторые достойные замены альт-табу для Gnome? Как поместить команду EOF в одну строку для выполнения нескольких команд оболочки Есть ли простой способ протоколировать все выполненные команды, включая аргументы командной строки? Как сделать программу / обработать услугу? Печать новой строки с использованием awk

скрипт sashcing bash не получает функцию def

Это странно – это должно работать.

У меня есть этот файл /home/foo/waldo.sh

 #!/usr/bin/env bash waldo(){ if [[ -z $(command -v waldo) ]]; then npm install -g '@oresoftware/waldo' || { return 1; } fi command waldo "$@" } export -f waldo; 

если я получу файл с:

 . "/home/foo/waldo.sh"; 

а потом беги

 waldo 

Я получил:

 No command 'waldo' found, did you mean: Command 'aldo' from package 'aldo' (universe) waldo: command not found 

когда я запускаю $(which waldo) , он пуст, там ничего нет.

однако, когда я запускаю type waldo , я получаю:

 waldo is a function waldo () { if [[ -z $(command -v waldo) ]]; then npm install -g '@oresoftware/waldo' || { return 1 }; fi; command waldo "$@" } 

Кто-нибудь знает, почему это не из источников или что-то еще?

Функция найдена и выполнена, но содержит

 command waldo 

Вот к чему относится сообщение об ошибке.

Вы можете решить эту проблему в функции:

 if hash waldo >/dev/null 2>&1; then command waldo "$@" else echo 'ERROR: ...' fi