意外的nohup行为

时间:2015-03-03 19:32:52

标签: unix posix nohup

我有一个可执行文件test,它包含

a="$RANDOM"
echo "$a">>out

现在,如果我只是./test,那么out包含一个随机数。但是如果我nohup ./test &那么就是空的。为什么呢?

1 个答案:

答案 0 :(得分:0)

将评论转移到答案中

您是在Ubuntu(或其他Linux发行版)上吗? /bin/sh/bin/dash而不是/bin/bash的链接吗?如果是这样,当您使用bash作为shell运行时,$RANDOM可以正常运行,但当nohup使用/bin/sh(又名dash)运行时,您一无所获。

您可以使用#!/bin/bash作为shebang行来修复它。

  

其实我在Debian上。但无论如何我确实忘记了shebang;现在它完美无缺。

大!

顺便提一下,无论多么诱人,调用程序test通常都是一个坏主意,因为有一个名为test的内置shell(也称为[如果运行而不是你的测试程序,那很容易引起混淆。