我在Ask Ubuntu上编辑了一个建议以下内容的答案
nohup gedit >& /dev/null &
当他们真正的意思是
nohup gedit &> /dev/null &
后者正确地将stderr和stdout都重定向到/dev/null。我期望前者会创建一个称为的文件,&或者更有可能像其他情况一样产生错误:
$ echo "foo" >&
bash: syntax error near unexpected token `newline'
相反,它的工作方式gedit似乎与前者完全相同,出现一个窗口,并且未打印任何错误消息。
我还要注意,这是特定于shell的:
bash(4.2.45(1)-发行版),zsh(5.0.2),csh(deb软件包版本:20110502-2)和tcsh(6.18.01):如上所述工作,没有错误消息,没有创建文件。dash(0.5.7-3):$ nohup gedit >& /dev/null & $ dash: 2: Syntax error: Bad fd numberksh(93u + 2012-08-01):失败,但是1223尽管没有gedit出现窗口,但显然已启动了一个进程():$ nohup gedit >& /dev/null & [1] 1223 $ ksh: /dev/null: bad file unit numberfish(2.0.0):> nohup gedit >& /dev/null & fish: Requested redirection to something that is not a file descriptor /dev/null nohup gedit >& /dev/null & ^
那么,为什么在某些shell中此命令简单地运行而没有错误(也没有创建输出文件),而在其他shell中失败呢?什么是>&中的明显特例干什么nohup?我猜这>& /dev/null被解释为,>&/dev/null但是为什么空间不引起这些shell错误?
nohup command,独立运行的tty你application.According我的记忆,dash延长的ash,Debian ash,ash所开发OpenBSD,它的外壳有限,甚至Maemo操作OS(Debian的基础上N900手机)使用破折号,ash家庭外壳具有有限的使用期望的bash或tcsh的。
dash打印我的版本,但是包装是0.5.7-3,您的呢?另外,您确定要跑步dash吗?那是Ubuntu的默认设置sh,不是吗?
nohup,我的问题是为什么>&在某些shell中似乎单独使用nohup起作用。
dash。