请问如何重定向sh -x *.sh的调试信息到文本文件?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
zwdnet
帖子: 348
注册时间: 2010-06-09 15:22

请问如何重定向sh -x *.sh的调试信息到文本文件?

#1

帖子 zwdnet » 2012-02-19 20:58

我想调试一个别人写的电脑休眠的脚本程序,以前用得蛮好,升级内核到3.2.6以后,休眠就经常失败,表现就是在休眠进行到某一个阶段的时侯就没有反应,开几个小时都没有反应,只能强行关机。我想用sh -x XXX.sh输出每一步执行的命令,然后就可以知道出错的时侯是执行到哪里了,但是因为是休眠脚本程序,而且很长,直接把结果输出到终端不方便看,我想输出到文本文件里,可是不知道怎么办。说了这么多,我给个例子吧:
这是测试用的脚本文件:

代码: 全选

#!/bin/sh
echo '1'
echo '2'
echo '3'
exit 0
直接执行该脚本的结果为:

代码: 全选

zym@zym-freedom:~/下载$ ./test.sh
1
2
3
用调试模式执行:

代码: 全选

zym@zym-freedom:~/下载$ sh -x ./test.sh
+ echo 1
1
+ echo 2
2
+ echo 3
3
+ exit 0
如果用输出重定向来执行:

代码: 全选

zym@zym-freedom:~/下载$ sh -x ./test.sh > debug.txt
+ echo 1
+ echo 2
+ echo 3
+ exit 0
而这个时侯debug.txt文件的内容为:

代码: 全选

1
2
3
而我期待的debug.txt文件的内容为:

代码: 全选

+ echo 1
+ echo 2
+ echo 3
+ exit 0
请问该如何执行?谢谢!
您好,请多关照!
hmk913
帖子: 17
注册时间: 2011-08-19 10:32

Re: 请问如何重定向sh -x *.sh的调试信息到文本文件?

#2

帖子 hmk913 » 2012-02-19 21:49

代码: 全选

sh -x ./test.sh >& debug.txt
你试试。。
头像
zwdnet
帖子: 348
注册时间: 2010-06-09 15:22

Re: 请问如何重定向sh -x *.sh的调试信息到文本文件?

#3

帖子 zwdnet » 2012-02-19 23:01

hmk913 写了:

代码: 全选

sh -x ./test.sh >& debug.txt
你试试。。

代码: 全选

+ echo 1
1
+ echo 2
2
+ echo 3
3
+ exit 0
呵呵,不错,谢谢!
您好,请多关照!
回复