因此,存在大量有关重定向输出的问题。但是我无法找到这种情况的答案。
假设我有一个类似的脚本:
#!/usr/bin/env bash
_other_function1() {
printf "THIS IS A FAKE FUNCTION"
}
_build_libMesh() {
if eval "${__FULL_PATH}/moose/scripts/update_and_rebuild_libmesh.sh" | tee libmesh_build.log; then
_debug printf ">> libMesh built successfully!\\n"
else
_die "libMesh build failed! Check 'libmesh_build.log'\\n"
fi
}
_other_function2(){
printf "THIS IS A FAKE FUNCTION TOO"
}
_build_app() {
if eval "$(make -j "${_JOBS}")" | tee build_app.log; then
_debug printf ">> ${_CODE_NAME} built successfully!\\n"
else
_die "${_CODE_NAME} build failed! Check 'build_app.log'.\\n"
fi
}
_main() {
_other_function1
_build_libmesh
_other_function2
_build_app
}
if [[ "${BASH_SOURCE[0]}" = "${0}" ]]; then
_parse_options "${@}"
_main |& tee nicmma.log
fi
我本质上希望将整个脚本输出到日志文件,除了两个函数的输出外,我希望将这些输出输出到两个不同的日志文件。
所以nicmma.log
看起来像:
THIS IS A FAKE FUNCTION
>> libMesh built successfully!
THIS IS A FAKE FUNCTION TOO
CODE_NAME build failed! check 'build_app'.log"
您可以将日志文件的名称传递给每个功能/方法。然后,使用该文件名,通过“ >>”运算符将日志输出到该文件。
小心使用“ >>”运算符,而不要使用“>”。如您所知,“ >>”追加到文件的末尾,而“>”覆盖文件。