在重定向输出的脚本中重定向输出命令

时间:2016-05-18 09:45:19

标签: bash io-redirection

假设我的脚本被调用如下:

(script.sh 1>&2) 2>err

有没有办法将脚本运行的其中一个命令的输出重定向到标准输出?我尝试为该命令执行2>&1,但这没有帮助。这个answer建议Windows命令shell的解决方案并重定向到文件而不是标准输出。

举一个简单的例子,假设脚本是:

#!/bin/sh
# ... many commands whose output will go to `stderr`
echo aaa # command whose output needs to go to `stdout`; tried 2>&1  
# ... many commands whose output will go to `stderr`

如上所示调用脚本时,如何使echo的输出转到stdout(这表明它会出现在屏幕上)?

1 个答案:

答案 0 :(得分:3)

在脚本中将其发送到stderr

echo this goes to stderr
echo so does this
echo this will end up in stdout >&2
echo more stderr

运行
 { ./script.sh 3>&2 2>&1 1>&3 ; } 2>err

错误包含

this goes to stderr
so does this
more stderr

输出到标准输出

this will end up in stdout