これは奇妙なことです。動作する必要があります。
このファイルがあります。 /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