親スクリプトで定義した関数を子スクリプトで実行する方法
親スクリプトで "export -f FUNCTION_NAME" する.
例:
親スクリプト:
#!/bin/sh hoge () { echo "function=hoge: "$1 } echo "parent: 1" export -f hoge sh child.sh echo "parent: 5"
子スクリプト:
#!/bin/sh echo "child: 2" hoge "3" echo "child: 4"
実行:
# sh parent.sh parent: 1 child: 2 function=hoge: 3 child: 4 parent: 5
export を解除するには "unset FUNCTION_NAME" する.
例2:
親スクリプト:
#!/bin/sh hoge () { echo "function=hoge: "$1 } echo "parent: 1" export -f hoge sh child.sh unset hoge sh child.sh echo "parent: 5"
子スクリプト:
#!/bin/sh echo "child: 2" hoge "3" echo "child: 4"
実行:
# sh parent.sh parent: 1 child: 2 function=hoge: 3 child: 4 child: 2 child.sh: line 5: hoge: command not found child: 4 parent: 5