什么是 shell 脚本中的 &>>

use*_*236 33 bash

在我继承的脚本中,我们的一个程序的输出被放入一个文件中:

program &>> result.txt
Run Code Online (Sandbox Code Playgroud)

我一直在读我的书“学习的bash shell”在家里过周末,却找不到这意味着什么(我知道>>>平均值)。

我错过了一些明显的东西?

小智 34

您的书可能太旧了,这是 Bash 版本 4 中的新内容。

program &>> result.txt
Run Code Online (Sandbox Code Playgroud)

相当于

program >> result.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

将 stdout 和 stderr 重定向并附加到 file result.txt在此处详细了解 I/O 重定向。

  • 小心使用这种语法,在 bash 以外的任何东西中运行(即 /bin/sh),然后这会使进程后台运行,然后重定向到 result.txt。确保使用 /bin/bash (3认同)

Sep*_*our 9

&表示标准输出 ( 1>) 和标准错误 ( 2>)。

>> 表示追加到文件末尾。

您可以使用1>>a 2>&1代替&>>

例如。 date test >>file 2>&1