为什么流重定向运算符 &>> 在 SUSE Linux 中不起作用?



我的shell脚本在SUSE Linux上失败了,因为我使用的流重定向运算符(&>>)在那里不起作用,(但它在其他发行版中工作正常)。我该如何纠正这一点。我还想知道所有发行版都支持的标准方法?

你使用的命令应该意味着你正在使用bourne shell:

ls &>> file

此命令应在文件末尾重定向 stdout 和 stderr。另一种写法,再次使用伯恩外壳可能是:

ls >> file 2>&1

然而,在我看来,这种编写命令的方式将被更多的shell识别,我认为例如ksh将识别第二种形式,但不能识别第一种形式。

对于 csh 或类似 csh 的 shell,您将需要使用以下语法:

ls >>& file

编辑:我很困惑,因为根据外壳的不同,您可以使用&>>>>&它们不相同。

最新更新