2009-10-20 212 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