捕获命令的输出,对其进行处理,然后仅将其输出到终端

100rabh

我想捕获标准输出(发送到终端),并在将其输出到终端后(对于用户)进行一些处理。

我想知道如何获取输出,处理并进行相应的更改。

(如果可能的话)我希望我在终端上键入的每个命令都发生这种情况。


编辑:在临时聊天论坛中进行对话后,很明显

  • 我们应该

    • 两者都寻找发出的命令
    • 以及命令的输出和
  • 如果检测到特定命令或输出,请执行某些操作。

苏多杜斯

好吧,获取输出,处理并显示您在终端上键入每个命令的输出可能不是一个好主意

但是您可以通过以下方式针对某些特定命令执行此操作 tee

your-command | tee saved-output | processing-tool

当您从处理工具中看到结果时,可以saved-output使用cat(如果是短输出)或less(如果是长输出)查看

例子:

$ LANG=C sudo lshw | tee saved-output | grep -i -A2 disk
        *-disk              
             description: ATA Disk
             product: KINGSTON SKC300S
             physical id: 0.0.0
--
        *-disk
             description: ATA Disk
             product: WDC WD4002FYYZ-0
             vendor: Western Digital
$ less saved-output

在临时聊天论坛中进行对话后,我建议

可以vialog像下面的示例一样直接使用

vialog 2>&1 | tee saved-output | grep 'docker container ls' && echo 'it was mentioned'

在实际情况下,我认为您想开始的东西比echo 'it was mentioned'还要先进,但这只是一个演示示例。如果将特定的检查内置到vialog警报中并禁用警报,则事情可能会更加高效,这在您的情况下可能不是必需的。

对话期间的屏幕截图:

在此处输入图片说明

对话后的屏幕截图:

在此处输入图片说明

这样,您可以轻松地检查是否找不到被调用的命令:

$ LANGUAGE=C vialog 2>&1 | tee saved-output | grep -i 'Command.*not found' && echo 'it was mentioned'
Command 'docker' not found, but can be installed with:
it was mentioned
$ cat saved-output 
----- start vialog at 2019-01-12 18:57:33 ----------------------------
$ docker container ls

Command 'docker' not found, but can be installed with:

sudo apt install docker.io

$ exit
exit
------- end vialog at 2019-01-12 18:58:01 --- used 28 seconds

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash:捕获命令的输出并有条件地对其进行处理

来自分类Dev

如何调用系统命令并捕获其输出?

来自分类Dev

如何同时捕获外部命令输出并将其打印到终端

来自分类Dev

捕获命令输出n秒,然后将其分离(在后台运行)

来自分类Dev

管道输出到stdout,然后到命令,然后到变量

来自分类Dev

Bash函数是否可以将值输出到文件描述符,然后仅将其分配给变量?

来自分类Dev

FFMPEG。读取帧,进行处理,然后将其输出视频。复制声音流不变

来自分类Dev

查找命令输出以进行排序,然后删除

来自分类Dev

流命令替换输出到不带压缩颜色的终端

来自分类Dev

命令的标准输出到正在记录的终端吗?

来自分类Dev

管道处理输出到命令,按行和空格分隔

来自分类常见问题

如何在Rust中调用系统命令并捕获其输出?

来自分类Dev

无法捕获命令输出

来自分类Dev

仅清除最后一条命令的终端输出

来自分类Dev

在终端中仅输出`ps`命令的COMMAND下的列

来自分类Dev

从程序仅输出到文件的管道输出

来自分类Dev

用Python捕获终端输出

来自分类Dev

用Python捕获终端输出

来自分类Dev

仅捕获命令输出的一部分

来自分类Dev

将ls输出输出到scp命令

来自分类Dev

时间命令-输出到文件

来自分类Dev

LS命令输出到文件

来自分类Dev

管道输出到删除命令

来自分类Dev

管道输出到sed的命令

来自分类Dev

捕获输出并计数其行

来自分类Dev

捕获并处理来自R的外部命令的输出

来自分类Dev

捕获并处理来自R的外部命令的输出

来自分类Dev

从命令直接输出到包含原始命令的文件,并在终端中打印

来自分类Dev

如何捕获2个输出值并进行处理

Related 相关文章

热门标签

归档