在linux(centos 7(中有一个二进制应用程序,需要捕获所有接收和导出的文本,例如:
[ssh stdin&stdout] -> [my-command] -> [/usr/libexec/openssh/sftp-server piped]
其思想是能够在终端中观察目标应用程序的所有输入和输出消息。是否可以只使用bash?,我知道创建一个应用程序是可能的,它接受输入并将其传递给管道执行,并在终端中显示内容,但我想知道这在本地是否可行。
如果您运行程序的两个实例,例如tee,那么您可以:
tee stdin.txt | sftp-server |& tee stdout-stderr.txt
或者,如果您想将stdout和stderr拆分为3个实例:
{ tee stdin.txt | sftp-server 2>&1 1>&3 3>&- | tee stderr.txt ; } 3>&1 1>&2 | tee stdout.txt