2

有没有办法将我的调试输出重定向到文件和屏幕上的正常 STDOUT。

$ cat test1.sh
#!/bin/bash

echo HAI
echo BYE

$ sh -x test1.sh
+ echo HAI
HAI
+ echo BYE
BYE

我想将调试输出重定向到屏幕上的文件和正常输出。

$ sh -x test1.sh >file1
+ echo HAI
+ echo BYE

但我可以将输出重定向到文件并在屏幕上结束调试输出。

4

3 回答 3

3

使用2>

$ sh -x test1.sh 2> /dev/null
HAI
BYE

https://stackoverflow.com/a/818284/1907906

于 2013-10-06T12:11:33.643 回答
2

linux系统上的默认文件描述符是:

stdin - 0
stdout - 1
stderr - 2

重定向到文件,

sh test1.sh 1> file

将错误(stderr)重定向到控制台(stdout)

sh test1.sh 2>&1
于 2013-10-06T12:31:23.217 回答
0

我使用别名给出完整的命令并使用以下方式

$ alias mytest='sh -x test1.sh 2>out.test'
$ mytest
HAI
BYE
$ cat out.test
+ echo HAI
+ echo BYE

感谢大家..

于 2013-10-06T12:31:48.803 回答