我正在尝试重定向UNIX命令的STDOUT/STDERR并追加到korn shell中的日志文件。此重定向“>>&<filename>”在Korn shell中工作吗?
室射频文件1 >> &日志文件
将在KSH此命令的工作或这是一个典型的bash命令? 以上命令会对我造成什么危害?
我正在尝试重定向UNIX命令的STDOUT/STDERR并追加到korn shell中的日志文件。此重定向“>>&<filename>”在Korn shell中工作吗?
室射频文件1 >> &日志文件
将在KSH此命令的工作或这是一个典型的bash命令? 以上命令会对我造成什么危害?
我使用此表单将标准输出和标准错误重定向到同一个文件。
ls -ld . fred > no_fred 2>&1
刚刚在Red Hat Linux 4的Korn shell中测试过。 no_fred包含:
ls: fred: No such file or directory
drwxrwxr-x 2 user group 1024 Apr 27 17:41 .
“>”,实际上是1>,它说重定向文件描述符1(标准输出)。 “2>”重定向标准错误,因为标准错误是文件描述符2.“& 1”表示“无论您使用文件描述符1”。所以在一起,这意味着“将标准输出转储到文件中,并伴随标准错误”。
此方法的一个优点是错误消息显示在正确的位置。例如,对于编译失败的文件,编译器的错误消息将显示在makefile的编译命令之后。
>> &构造可能会将该命令的输出附加到日志文件中,并将其放入后台。我不确定它是否有任何标准错误。我刚刚咨询过Bolsky/Korn 1989,它甚至不在那里,所以也许别人可以解析它的功能。
更新:如果你在你的命令的任何管道,那么早期阶段的标准 错误将首先出现,作为错误产生命令 运行。由于只有标准输出通过管道路由,所以当整个管道完成时,它将全部同时出现。
您试图在ksh中使用csh语法。见Jason的回答。
对于附加:
ls -ld . fred 1>> no_fred 2>&1
作品与ksh88太 – Dima 2011-11-17 14:22:21