2009-10-20 159 views
1

我有一个shell脚本文件(run.sh)的命令包含以下内容:运行在shell脚本

#!/bin/bash 
%JAVA_HOME%/bin/java -jar umar.jar 

当我尝试运行它(./run.sh),它给了我以下: umar/bin/run.sh:第1行:fg:没有作业控制

但是,如果我直接在shell上运行相同的命令,它完美的工作。

脚本文件有什么问题?

感谢

+1

你把#!/ bin/bash作为脚本的第一行吗? – jldupont 2009-10-20 01:34:19

回答

9

%FOO%是不是你在Bourne/BASH shell脚本做命令替换。我假设你是从Windows命令行运行的,这就是它直接运行时的原因。尝试使用适当的bourne语法:

${JAVA_HOME}/bin/java -jar umar.jar 
+1

不要忘记用空格来保护变量:''$ JAVA_HOME“/ bin/java'。 – 2009-10-20 01:45:07

+0

谢谢保罗。我提出了你所建议的更改。至少现在我没有得到“fg:没有工作控制”的信息。但现在它给了我这个错误:“无法访问jarfile umar.jar”,即使我已将所有权限设置为true:“chmod 777 umar.jar”。 奇怪的事实是,如果我直接从shell运行jar,它可以很好地工作。 – craftsman 2009-10-20 01:50:49

+0

umar.jar在当前目录中吗? – 2009-10-20 01:55:41

2

尝试在监控模式下打开

set -m 
2

%JAVA_HOME%将替代Windows环境变量并适用于.bat文件。

请尝试下面的shell脚本,它应该可以在大多数UNIX系统上工作。

#!/bin/bash 
$JAVA_HOME/bin/java -jar umar.jar