コマンドhogeが、実行できるかどうかをチェックする
つまり、実行ファイルか エイリアスか 関数か を判定する
hogeが関数かどうかを判定する
$ declare -f hoge hoge () { echo this is function /usr/bin/piyo }
declareコマンドでチェックする。 成功すれば、関数の定義を表示する。*1
hogeが実行ファイル、エイリアス、関数のいずれかかどうかを判定する
$ type -t hoge function
typeコマンドでチェックする。 成功すれば、実行ファイルならfile、エイリアスならalias、関数ならfunctionと表示する。
実行ファイルはパスを辿ってくれるのでフルパスで記述する必要はない
コマンドが実行される優先順位は エイリアスが一番高く、ファイルが一番低い
*1:-fの代わりに-Fを使えば関数本体部分は表示しない