【发布时间】:2011-11-23 12:39:20
【问题描述】:
我正在运行一个 bash 脚本,该脚本会为执行命令创建一个日志文件
我使用以下
Command1 >> log_file
Command2 >> log_file
这只会发送标准输出,而不是终端上出现的标准错误。
【问题讨论】:
标签: bash stdout io-redirection stderr
我正在运行一个 bash 脚本,该脚本会为执行命令创建一个日志文件
我使用以下
Command1 >> log_file
Command2 >> log_file
这只会发送标准输出,而不是终端上出现的标准错误。
【问题讨论】:
标签: bash stdout io-redirection stderr
如果你想登录到同一个文件:
command1 >> log_file 2>&1
如果你想要不同的文件:
command1 >> log_file 2>> err_file
【讨论】:
2>&1 需要出现在>> log_file 之后。
>> 而不是>?
>> 附加到文件,> 覆盖。搜索“shell重定向”了解更多详情。
make 吐出一万个滚出屏幕的错误时:vi <(make 2>&1).
command 2>&1 | tee log_file
重定向两者的最简单语法是:
command &> logfile
如果你想追加到文件而不是覆盖:
command &>> logfile
【讨论】:
&> 现在可以在 OS X 10.11.1(似乎是 bash 3.2)上按预期工作,仅供记录。
你可以这样做 2>&1:
command > file 2>&1
【讨论】:
2>&1 将文件描述符 2 (stderr) 重定向到文件描述符 1 (stdout)
& 表示文件描述符。否则如何写入名为1 的文件?
用途:
command >>log_file 2>>log_file
【讨论】:
请使用command 2>file
这里2代表stderr的文件描述符。您也可以使用 1 代替 2 以便 stdout 被重定向到“文件”
【讨论】: