Bash 関数 スコープ
親シェルで 別のシェルに書かれている関数を読み込んだ場合、子シェルで、その関数は使えない。
cat main.sh
#!/bin/sh cd `dirname $0` . func.sh # func.shのhelloが呼べる hello ./child.sh
func.sh
#!/bin/sh hello(){ echo "hello" }
child.sh
#!/bin/sh # func.shのhelloが呼べない hello
親シェルで 別のシェルに書かれている関数を読み込んだ場合、子シェルで、その関数は使えない。
cat main.sh
#!/bin/sh cd `dirname $0` . func.sh # func.shのhelloが呼べる hello ./child.sh
func.sh
#!/bin/sh hello(){ echo "hello" }
child.sh
#!/bin/sh # func.shのhelloが呼べない hello