我有一个可执行文件test
,它包含
a="$RANDOM"
echo "$a">>out
现在,如果我只是./test
,那么out
包含一个随机数。但是如果我nohup ./test &
那么就是空的。为什么呢?
答案 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(也称为[
如果运行而不是你的测试程序,那很容易引起混淆。