gpt4 book ai didi

bash - 保存来自 bash 循环命令的终端输出

转载 作者:行者123 更新时间:2023-12-04 19:01:12 25 4
gpt4 key购买 nike

我有一个这样的 bash 循环:

for f in *.fastq; do
echo $f
main command
done

我想将终端中打印的任何内容(包括文件名和错误消息)打印到文本文件中。我怎样才能做到这一点?谢谢

最佳答案

如果您不想保留 stdout , stderr在你的屏幕上显示你可以在你的循环重定向两个 stdout 之后和 stderr 中的文件覆盖 模式或 追加模式分别使用:

for f in *.fastq; do
echo $f
main command
done > file.out 2>&1

或者
for f in *.fastq; do
echo $f
main command
done >> file.out 2>&1

如果您想同时在屏幕上显示 stderr、stdout 并保存到文件中,请使用:
for f in *.fastq; do
echo $f
main command
done |& tee file.out

或者
for f in *.fastq; do
echo $f
main command
done |& tee -a file.out

在哪里 tee -a运行 tee在附加模式和 |&2>&1 | 的简写

读数 :
https://www.gnu.org/software/bash/manual/bash.html#Redirections
https://unix.stackexchange.com/questions/24337/piping-stderr-vs-stdout

关于bash - 保存来自 bash 循环命令的终端输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48696728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com