Shell 方法在输出中输出stdin和stdout

Shell 方法在输出中输出stdin和stdout,shell,stdout,stdin,Shell,Stdout,Stdin,我需要一种简单的方法来捕获发出的命令(来自脚本)和结果输出到日志文件 下面是一个简单的例子: 命令: 输出: #PermitRootLogin no 所需结果: grep '^#PermitRootLogin' /etc/ssh/sshd_config PermitRootLogin no 通过重定向stdin,我似乎在踩stdout;这本不应该那么难,但不知什么原因,我一直在逃避 使用tee只会创建一个带有无关噪声的日志文件;最后我想用这个文件做一个报告(没有噪音) 提前感谢, TT有

我需要一种简单的方法来捕获发出的命令(来自脚本)和结果输出到日志文件

下面是一个简单的例子: 命令:

输出:

#PermitRootLogin no
所需结果:

grep '^#PermitRootLogin' /etc/ssh/sshd_config
  PermitRootLogin no
通过重定向stdin,我似乎在踩stdout;这本不应该那么难,但不知什么原因,我一直在逃避

使用tee只会创建一个带有无关噪声的日志文件;最后我想用这个文件做一个报告(没有噪音)

提前感谢,


TT

有一个
script
实用程序,它将记录您键入的所有内容以及任何程序输出到stdout的内容,并将其记录在名为
typescript
的文件中。但是,它非常彻底,还记录了所有换行符和换行符以及shell的所有提示,因此您很可能希望对
类型脚本进行后期处理

也许这样更容易

echo "grep '^#PermitRootLogin' /etc/ssh/sshd_config" > file
grep '^#PermitRootLogin' /etc/ssh/sshd_config >> file

然后将命令及其输出保存在
文件中

将所需行为包装在函数中,即

function stomp {
    echo $@
    eval $@
}
那就这样说吧

stomp grep '^#PermitRootLogin' /etc/ssh/sshd_config

我想到了,但有很多重复。它又快又脏,但我希望有更优雅的东西。
stomp grep '^#PermitRootLogin' /etc/ssh/sshd_config