Bashのシェル関数の定義を読む
関数が定義されているかを調べる
whichコマンドを関数に対して実行するとzshでのみ関数の定義を返す。
$ zsh -c 'f() { echo foo; }; which f'
f () {
echo foo
}
$ bash -c 'f() { echo foo; }; which f' || echo 'not found'
not found
$ ksh -c 'f() { echo foo; }; which f' || echo 'not found'
not found
bashではdeclare -f、kshではtypeset -fを使用して関数の定義を表示できる。
$ bash -c 'f() { echo foo; }; declare -f f'
f ()
{
echo foo
}
$ ksh -c 'f() { echo foo; }; typeset -f f'
f() { echo foo; };