bash - 有没有办法从 bash 函数调用强制回显到命令行?

标签 bash shell echo stdout

我有一个 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 变量中。

有什么方法可以绕过这个并强制打印到命令行并且让输出不被变量捕获?

最佳答案

echo "We're about to find out what we like." >/dev/tty

关于bash - 有没有办法从 bash 函数调用强制回显到命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23570487/

相关文章:

linux - 使用echo写入文件时 ">"和 ">>"有什么区别

linux - 为什么这个文件没有被删除?

java - 使用maven更新脚本

shell - 获取 Subversion 中最近 N 次提交的文件列表

linux - sed匹配N次

php - 为 while 循环结果创建一个变量

bash - 格式化shell脚本日志并写入文件

linux - 如何在 Linux 上的 Bash 中检查系统日志?

python - 在 Linux 中使用已编译的 Python shell

php - Printf() 不如 PHP 中的 echo 可靠?