我有一个bash脚本,我用一种良好的编程风格定义了一堆函数。这些功能"返回"价值echo
- 他们。所以,例如:
some_function() {
echo "I like pie."
}
what_do_i_like=`some_function`
现在,我想在我的函数中添加一些调试语句。不幸的是,任何echo
只会被变量中的调用者捕获。如,
some_function() {
if [[ "${DEBUG}" = "${TRUE}" ]]; then
echo "We're about to find out what we like."
fi
echo "I like pie."
}
what_do_i_like=`some_function`
...调试语句被what_do_i_like
变量捕获。
有什么方法可以绕过这个并强制打印到命令行和输出没有被变量捕获?
答案 0 :(得分:5)
echo "We're about to find out what we like." >/dev/tty
答案 1 :(得分:3)
不回应stderr的工作吗? echo 1>&2 message
答案 2 :(得分:2)
syslog(3)有一个shell命令接口:
logger -p DEBUG Hi there