&bash的功能是什么?


Answers:


3

它们都连接到I / O重定向,如此处所述

在这种情况下&>,将标准输出(stdout)和标准错误输出(stderr)重定向到文件。例如,让我们将date的输出重定向到这样的文件:

date &> foo.txt

这将创建 - 或覆盖 - 以foo.txt输出命名的文件date。该文件的内容将是这样的:

Sun Oct  4 22:37:58 EDT 2015

但在这种情况下&>>,将标准输出(stdout)和标准错误输出(stderr)重定向到文件。但是>>指示指定的文件应该附加到,如果已经存在则不会被覆盖。

所以如果我连续几次运行这个命令:

date &> foo.txt

所有foo.txt这些都是上次运行该命令的输出,因为单个>指示每次运行命令都会覆盖文件内容。

但是,如果我>>连续几次运行此命令:

date &>> foo.txt

foo.txt文件将date附加到它的输出如下:

Sun Oct  4 22:37:58 EDT 2015
Sun Oct  4 22:38:06 EDT 2015
Sun Oct  4 22:38:13 EDT 2015
Sun Oct  4 22:38:15 EDT 2015
Sun Oct  4 22:38:16 EDT 2015

请注意,&>>它似乎不适用于Bash 3.x,但在Bash 4.x中按预期工作。


0

考虑一个名为的命令cmd

cmd &>filename

上面发送命令的标准输出和标准错误filename,覆盖以前在该文件中的任何内容。它相当于:

cmd >filename 2>&1

&>>形式非常相似:

cmd &>>filename

会将 cmd的stdout和stderr 附加到已存在的文件中filename。它相当于:

cmd >>filename 2>&1

你可以在这里阅读更多相关信息man bash

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.