【发布时间】:2013-06-28 19:25:11
【问题描述】:
我正在尝试从命令中获取stderr 并将其重定向到logger -s 命令(它将其输入写入syslog 并且-s 选项将输入的副本发送到logger' s 标准错误),然后最后到一个像这样的文件:
#!/bin/bash
ping foobar 2> logger -s 2>> ~/mylog.log
不幸的是,这会创建一个logger 文件和一个mylog.log 文件。所以我假设最初的2> 创建了一个logger 文件,然后2>> 创建了一个新的mylog.log 文件。
有没有办法将stderr 重定向到logger 命令?
编辑
我试图避免使用|,因为我也想在if 测试中使用重定向。
我也试过这种方式:
ping foobar 2> $(logger -s 2>> ~/mylog.log)
那也没用。
【问题讨论】:
-
您能否解释一下如果您尝试进行的测试不适用于管道?
-
logger是进程还是文件?如所写,代码创建了一个空文件logger以供标准错误转到,然后改变主意并发送标准错误,以便将其附加到mylog.log。您是否希望将标准错误发送到两个文件,一个处于附加模式,一个处于普通写入模式? -
@JonathanLeffler
logger是我正在尝试使用的 unix 程序。我无意中使用重定向创建了一个记录器文件,而我想将stderr传递给记录器 unix 程序并将其重定向到一个文件。