Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Unix 意外的nohup行为_Unix_Posix_Nohup - Fatal编程技术网

Unix 意外的nohup行为

Unix 意外的nohup行为,unix,posix,nohup,Unix,Posix,Nohup,我有一个可执行文件测试,它包含 a="$RANDOM" echo "$a">>out 现在,如果我只是./test,那么out包含一个随机数。但是如果我不知道。/测试&那么out是空的。为什么?将评论转换为答案 你是在Ubuntu还是其他Linux发行版上?/bin/sh是指向/bin/dash而不是/bin/bash的链接吗?如果是这样,当您使用bash作为shell运行它时,$RANDOM起作用,但是当nohup使用/bin/sh运行它时,您什么也得不到 您可以通过使用来修复它

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

a="$RANDOM"
echo "$a">>out
现在,如果我只是./test,那么out包含一个随机数。但是如果我不知道。/测试&那么out是空的。为什么?

将评论转换为答案

你是在Ubuntu还是其他Linux发行版上?/bin/sh是指向/bin/dash而不是/bin/bash的链接吗?如果是这样,当您使用bash作为shell运行它时,$RANDOM起作用,但是当nohup使用/bin/sh运行它时,您什么也得不到

您可以通过使用来修复它/bin/bash作为shebang行

事实上,我正在使用Debian。但无论如何,我确实忘记了舍邦;现在它工作得很好

太好了


顺便说一句,不管它多么诱人,调用程序测试通常是个坏主意,因为有一个shell内置的test,也称为[如果它是运行而不是您的测试程序,这很容易引起混淆。

您在Ubuntu上吗?/bin/sh是指向/bin/dash而不是/bin/bash的链接吗?如果是这样,当您使用bash作为shell运行它时,$RANDOM工作,但是当nohup使用/bin/sh aka dash运行它时,您什么也得不到?您可以使用!/bin/bash作为sh来修复它ebang行。@JonathanLeffler事实上我在Debian上。但无论如何,我忘记了shebang,现在它工作得很好。请给出答案。名为test的测试程序的问题可以通过a从不将。放入$PATH中来避免,特别是在开始时,b通过键入来养成在当前目录中运行程序的习惯./name。尽管如此,避免名称测试也不会有什么坏处。另一方面,有很多其他标准命令名很容易与之冲突。这不是真正的测试,我只是在问题中这样称呼它。不过,很高兴知道,谢谢!