linux - 如何将输出/错误打印到文本文件?

标签 linux bash shell

我正在尝试将我的标准错误/输出重定向(?)到一个文本文件。 我做了研究,但出于某种原因,在线答案对我不起作用。 我做错了什么?

cd /home/user1/lists/

for dir in $(ls)
do
(
echo | $dir > /root/user1/$dir" "log.txt
) > /root/Desktop/Logs/Update.log
done

我也试过

2> /root/Desktop/Logs/Update.log
1> /root/Desktop/Logs/Update.log
&> /root/Desktop/Logs/Update.log

这些都不适合我:(

请帮忙!

最佳答案

试试这个作为基础:

echo hello >> log.txt 2>&1

可以理解为:回显单词 hello,将 STDOUT 重定向并附加到文件 log.txt。 STDERR(文件描述符 2)被重定向到 STDOUT 指向的任何地方。请注意,STDOUT 是默认值,因此“>>”前面没有“1”。仅适用于当前行。

要重定向并附加脚本中所有命令的所有输出和错误,请将此行放在顶部附近。它将在脚本的长度内生效,而不是在每一行上执行:

exec >>log.txt 2>&1

关于linux - 如何将输出/错误打印到文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22670394/

相关文章:

linux - 更改 insead 循环 Bash 的变量值

关闭动态创建的线程

Linux 读入一个数组

git - 使用 awk sed 解析更新 puppet 文件

linux - diff 命令不工作 "missing operand after ` diff'"

c - posix_memalign 与 mmap 有何不同

json - 如何将bash中的文件转换为json

bash - 立即逃离两个美元符号

Java 程序不接受管道输入

linux - 删除文件名中的前 4 个字母和后 4 个字母