python commands.getoutput()问题

我用python的getcommandsoutput()执行top命令,直接执行python程序没有问题,在shell用&把程序作为后台程序执行也没有问题,但是当我在一个shell脚本里执行这条语句时出错:top:failed get tty,该怎么解决?
可能上面没有描述清楚我下面举例说下我的问题:
1.test.py中用commands.getoutput("top -n 1")
2.shell提示行下执行pyhton test.py &没有问题
3.test.sh 中有语句:python test.py &
4.执行./test.sh 出错,错误信息为:top:failed get tty
谢谢先