我想将脚本的一部分传递给子shell,因此我将其导出为函数。 当我尝试这样做时,我注意到我不能导出包含以heredoc结尾的嵌套函数的函数。
例如:
如果我运行它,子shell会失败并打印出以下信息:
我的脚本出了什么问题?
例如:
#!/bin/bash
f() {
g() {
cat <<EOF
EOF
}
g
}
export -f f
bash -c ':'
如果我运行它,子shell会失败并打印出以下信息:
bash: f: line 8: syntax error: unexpected end of file
bash: error importing function definition for `f'
我的脚本出了什么问题?
g
是在f
内部还是外部定义,它仍然存在于全局作用域中。在bash
中没有本地函数。 - chepner