在打印时忽略“echo”命令中的特定信息并忽略其他信息

时间:2016-07-21 18:51:04

标签: bash shell sh

我正在编写一些bash脚本,我遇到了以下问题。让我们说:

function echo_ignore_print()
{
    echo "ignoring this print" # print this line for the user without storing its value
    value=187fef
    echo "$value" # return this value
}

info_to_keep=$(echo_ignore_print)

echo "$info_to_keep"   #   ignoring this print 187fef

我需要能够在脚本到达该行时立即打印“忽略此打印”,但我还需要自己返回变量“$ value”的值,以便稍后使用它。我宁愿没有全局变量。

因此,是否有一种方法可以转储所有echo命令的字符串并保存一些以供日后使用?或任何其他方式来做到这一点?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以在stderr而不是stdout上写下要被忽略的内容:

echo_ignore_print() {
   echo "ignoring this print" >&2
   value='187fef'
   echo "$value"
}

info_to_keep=$(echo_ignore_print)
ignoring this print

echo "$info_to_keep"
187fef