我的shell脚本在SUSE Linux上失败了,因为我使用的流重定向运算符(&>>)在那里不起作用,(但它在其他发行版中工作正常)。我该如何纠正这一点。我还想知道所有发行版都支持的标准方法?
你使用的命令应该意味着你正在使用bourne shell:
ls &>> file
此命令应在文件末尾重定向 stdout 和 stderr。另一种写法,再次使用伯恩外壳可能是:
ls >> file 2>&1
然而,在我看来,这种编写命令的方式将被更多的shell识别,我认为例如ksh将识别第二种形式,但不能识别第一种形式。
对于 csh 或类似 csh 的 shell,您将需要使用以下语法:
ls >>& file
编辑:我很困惑,因为根据外壳的不同,您可以使用&>>
或>>&
它们不相同。