18/03/25 22:38:36.41 .net
このコードってvalidですよね?
やってること・・・foo関数が最初に呼ばれた時に
OS判定(相当)のことをして、OS毎に処理を切り替えて実行
関数を上書きすることで、次回以降は判定することなく処理実行
#!/bin/sh
foo() {
echo first call
os_type=linux
[ $os_type = linux ] && \
foo() {
echo linux
}
[ $os_type = mac ] && \
foo() {
echo mac
}
foo
}
foo
foo