Bash&&-ed命令列表输出重定向到标准输出
我主要的Bash知识来源是Bash&&-ed命令列表输出重定向到标准输出,bash,list,shell,command,Bash,List,Shell,Command,我主要的Bash知识来源是infobash。它的重定向和命令列表部分都没有详细说明命令列表如何处理重定向命令输出。在本例中,它是命令列表:command1&&command2&&command3。 需要的是将所有3个命令的输出重定向到文件。 对于这里使用的Bash,以下两种工作都不适用(在正在进行的文件重定向中只能找到command3输出) 几乎没有进一步的试验,没有任何帮助 在哪里指定了这个Bash方面 为什么我的命令字符串不能产生描述的结果 如何修复它?重定向多个命令的常用方法是使用组{…;
infobash
。它的重定向
和命令
列表
部分都没有详细说明命令列表如何处理重定向命令输出。在本例中,它是命令列表:command1&&command2&&command3
。
需要的是将所有3个命令的输出重定向到文件。
对于这里使用的Bash,以下两种工作都不适用(在正在进行的文件重定向中只能找到command3输出)
几乎没有进一步的试验,没有任何帮助
在哪里指定了这个Bash方面
为什么我的命令字符串不能产生描述的结果
如何修复它?重定向多个命令的常用方法是使用组
{…;}
。注意代码>最后,它很重要
{ cmd1 && cmd2 && cmd3; } > file
但是,您说您已经尝试了(cmd1&&cmd1&&cmd3)>文件
,该文件也应该可以工作。也许您的一些命令会打印到stderr而不是stdout。在这种情况下,使用{…;}&>文件
将stderr和stdout写入该文件
为什么其他命令不起作用?
除了stdout/stderr问题外,以下是其他命令不适用于您的原因解释:
cmd1&&cmd2&&cmd3>文件
仅重定向cmd3
cmd1>文件和&cmd2>文件和&cmd3>文件
覆盖文件
两次。cmd1
的输出丢失,因为cmd2
会覆盖它。cmd2
的输出丢失,因为cmd3
覆盖了它。使用cmd1>文件&&cmd2>>文件&&cmd3>>文件
附加到文件,而不是覆盖
cmd1 | tee文件和&cmd2 | tee文件和&cmd3 | tee文件
同上tee
覆盖文件。使用tee-a
进行追加
重定向多个命令的常用方法是使用组
{…;}
。注意代码>最后,它很重要
{ cmd1 && cmd2 && cmd3; } > file
但是,您说您已经尝试了(cmd1&&cmd1&&cmd3)>文件
,该文件也应该可以工作。也许您的一些命令会打印到stderr而不是stdout。在这种情况下,使用{…;}&>文件
将stderr和stdout写入该文件
为什么其他命令不起作用?
除了stdout/stderr问题外,以下是其他命令不适用于您的原因解释:
cmd1&&cmd2&&cmd3>文件
仅重定向cmd3
cmd1>文件和&cmd2>文件和&cmd3>文件
覆盖文件
两次。cmd1
的输出丢失,因为cmd2
会覆盖它。cmd2
的输出丢失,因为cmd3
覆盖了它。使用cmd1>文件&&cmd2>>文件&&cmd3>>文件
附加到文件,而不是覆盖
cmd1 | tee文件和&cmd2 | tee文件和&cmd3 | tee文件
同上tee
覆盖文件。使用tee-a
进行追加
(command1&&command2&&command3)>mycommandoutput.txt
工作正常。感谢您的提示。这似乎是我自己在语法上的错误:每个大括号字符都需要通过空格与剩余的toke分隔开来-再次根据info Bash
(command1&&command2&&command3)>mycommandoutput.txt
工作正常。感谢您的提示。这似乎是我自己在语法上的错误:每个大括号字符都需要通过空格与剩余的toke分隔开来-再次根据info Bash
cmd1>文件和&cmd2>文件和&cmd3>>文件
`使用tee-a进行追加。`-怪我,这样一个基本的被遗忘。cmd1>文件&&cmd2>>文件&&cmd3>>文件
`使用tee-a进行追加。`-我该负责,这样一个基本的被遗忘。