A função é encontrada e executada, mas contém
command waldo
É para isso que a mensagem de erro se refere.
Você pode lidar com esse problema na função:
if hash waldo >/dev/null 2>&1; then
command waldo "$@"
else
echo 'ERROR: ...'
fi
Isso é estranho - deve funcionar.
Eu tenho este arquivo /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;
se eu for o arquivo com:
. "/home/foo/waldo.sh";
e, em seguida, execute
waldo
Eu recebo:
No command 'waldo' found, did you mean:
Command 'aldo' from package 'aldo' (universe)
waldo: command not found
quando eu corro $(which waldo)
, está vazio, nada lá.
no entanto, quando executo type waldo
, recebo:
waldo is a function
waldo ()
{
if [[ -z $(command -v waldo) ]]; then
npm install -g '@oresoftware/waldo' || {
return 1
};
fi;
command waldo "$@"
}
alguém sabe por que não está sendo originado ou o que seja?