Vin*_*ent 15 bash shell-script nohup environment-variables subshell
(我正在编辑一个现有的 Bash 脚本,所以我可能在这里犯了一个愚蠢的错误......)
我有一个 shell 脚本,它保存一个带有环境变量的命令作为它的参数,如下所示:
COMMAND="mvn clean install -P $MAVEN_PROFILE"
Run Code Online (Sandbox Code Playgroud)
然后它执行命令nohup
大致如下:
nohup $COMMAND > logfile
Run Code Online (Sandbox Code Playgroud)
这有效。
现在,我想设置一个可以在 Maven 中访问的环境变量。我尝试了以下几件事:
COMMAND="FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"
Run Code Online (Sandbox Code Playgroud)
...但它只是以:
nohup: failed to run command `FORMAVEN=valueForMaven': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我觉得这里有几个不相关的概念在起作用,我不理解甚至不知道这些概念。我需要什么才能做到以上几点?
APr*_*mer 25
三种方法:
在启动 mvn 之前设置(并导出)变量
在 nohup 启动时设置变量:
FORMAVEN=valueForMaven nohup $COMMAND > logfile
Run Code Online (Sandbox Code Playgroud)使用 env 设置变量
COMMAND="env FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"
Run Code Online (Sandbox Code Playgroud)