抑制 grep 输出但将其捕获在变量中

发布于 2024-12-06 18:17:35 字数 174 浏览 2 评论 0原文

我试图让以下行工作

WERRORS=`echo $VALPG | grep -q -s -o -m 1 '\<[0-9]* Errors'`

我想要的是 grep 的结果进入 WERRORS 变量,但不在终端中回显。 所以我使用 -q,但是 WRRORS 为空

I'm trying to get the following line to work

WERRORS=`echo $VALPG | grep -q -s -o -m 1 '\<[0-9]* Errors'`

What I want is that the result of grep go into WERRORS variable but not echo in the terminal.
So i use -q, but then WERRORS is empty

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁月染过的梦 2024-12-13 18:17:35

如果 grep 发送任何错误消息,它们将转到错误输出,该输出不会被反引号捕获。如果您需要在变量中输出(这有点问题,因为它通常是本地化的),请使用 2>&1 重定向它:

WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors' 2>&1`

If grep sends any error messages, they go to the error output, which is not captured by the backticks. If you need this output in a variable (which is somewhat problematic, because it's often localized), redirect it using 2>&1:

WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors' 2>&1`
以可爱出名 2024-12-13 18:17:35
WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors'`
WERRORS=`echo $VALPG | grep -s -o -m 1 '\<[0-9]* Errors'`
死开点丶别碍眼 2024-12-13 18:17:35
kent$  val=abcpc

kent$  a=$(echo $val|grep -o -m 1 -s 'pc')                                                                                               

kent$  echo $a
pc
kent$  val=abcpc

kent$  a=$(echo $val|grep -o -m 1 -s 'pc')                                                                                               

kent$  echo $a
pc
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文