如何在函数中打印到终端但不将其作为返回值返回?

如何在函数中打印到终端但不将其作为返回值返回?

如何在函数内写入终端以进行日志记录,而不将其作为函数返回值的一部分?

这是我的示例脚本:

#!/bin/bash

my_fun() {
  echo "this is for logging purposes"
  retVal="Return only this"
  echo "$retVal"
}

returnedValue=$(my_fun)
if [ "Return only this" = "$returnedValue" ]; then
  echo "Good return"
else
  echo "Bad return"
fi

它输出Bad return但不打印到终端this is for logging purposes。如何只返回Return only this而不返回this is for logging purposes(因为我希望它去终端)?

答案1

您可以将输出重定向到标准错误:

echo "this is for logging purposes" >&2

除非标准错误被重定向到其他地方,否则它将转到终端。

相关内容