이것은 이상한 것입니다. 작동해야 합니다.
이 파일이 있어요 /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 "$@"
}
왜 조달되지 않았는지 아는 사람이 있나요?
답변1
함수가 발견되어 실행되지만 다음을 포함합니다.
command waldo
이것이 오류 메시지가 말하는 것입니다.
함수에서 이를 처리할 수 있습니다.
if hash waldo >/dev/null 2>&1; then
command waldo "$@"
else
echo 'ERROR: ...'
fi