Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么输出重定向在这种情况下不起作用?_Linux_Bash_Shell - Fatal编程技术网

Linux 为什么输出重定向在这种情况下不起作用?

Linux 为什么输出重定向在这种情况下不起作用?,linux,bash,shell,Linux,Bash,Shell,操作系统是ubuntu12.04。我编写了一个python程序main.py,希望能够轻松地运行它。因此,我创建了以下shell脚本,名为run.sh #!/bin/bash python main.py & >/dev/null 2>&1 并执行此命令chmod u+x run.sh #!/bin/bash python main.py & >/dev/null 2>&1 但是,当I/run.sh时,python程序的输出仍在

操作系统是
ubuntu12.04
。我编写了一个python程序
main.py
,希望能够轻松地运行它。因此,我创建了以下shell脚本,名为
run.sh

#!/bin/bash

python main.py & >/dev/null  2>&1
并执行此命令
chmod u+x run.sh

#!/bin/bash

python main.py & >/dev/null  2>&1
但是,当I
/run.sh
时,python程序的输出仍在终端中。
但这是可行的:
/run.sh>/dev/null 2>&1
。但这种方式违背了我的初衷,因为它太复杂了,无法使用


我想知道为什么会发生这种情况。如何实现我的目标?

如果要在后台运行脚本,请尝试以下操作:

python main.py >/dev/null  2>&1 &

&
/dev/null
之间有一个空格,因此Python进程在后台运行,而不会应用输出重定向。如果删除
&
,将不会有输出。因为
&>
是有效的bash,所以删除空格也就足够了,但您可能不是这个意思。

您所说的“轻松运行”是什么意思?在后台运行它?是否放弃任何输出/错误文本?这两个?还有什么吗?@MarcoS这两个问题。那么你得到的两个答案都是解决方案。请接受一个,或者解释为什么不…:-)
&>
的含义是什么?