我有一个 bash 脚本,它调用各种命令并打印一些输出(来自被调用的命令本身,例如git pull
,以及脚本本身生成的信息性消息,例如Operation took XX minutes
.
我想将整个输出从脚本本身捕获到一个文件中:基本上我试图避免./myscript.sh | tee file.txt
因非相关原因而需要调用。
基本上我想做这样的事情:
startCapture
git pull
echo "Text"
other-command
endCapture
我还要求在脚本运行时将输出打印在我的 shell 上。
最终目标是:
./myscript.sh
无需额外的 shell 结构即可运行- 像我现在一样查看终端上的输出
- 在磁盘上获取包含整个输出的文件
这甚至可能吗?
您始终可以
script
在脚本内部调用以记录所有内容。至于在 bash 脚本中同时打印和记录所有内容
log.txt
:看到日志
log.txt
:我发现捕获任何会话的所有输出的一种方法是启动一个新的 bash 会话并发送到日志文件。它对于跟踪不仅仅是一个脚本非常有用。
或者你可以自己编写脚本
./myscript.sh | tee ./myscript.log #this will log only the output of the script.
你想使用tee。
前任:
这将使用命令的输出创建一个文件 out.txt 并将其打印到屏幕上。如果要附加到文件,请使用“tee -a 文件名”。
out.txt 将有两行 Hello 和 World(没有 -a 它只有 world)
如果要保存整个脚本并输出整个脚本: