2009-10-20 6 views
1

У меня есть файл сценария оболочки (run.sh), который содержит следующее:Запуск команды в сценарии оболочки

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

, когда я пытаюсь запустить его (./run.sh), она дает мне следующее : umar/bin/run.sh: строка 1: fg: нет управления заданиями

Однако, если я запускаю ту же команду непосредственно на оболочке, она отлично работает.

Что случилось с файлом сценария?

Благодаря

+1

Вы положили #!/Bin/bash в качестве первой строки сценария? – jldupont

ответ

9

% Foo% не так, как вы делаете подстановки команды в сценарий оболочки Bourne/BASH. Я предполагаю, что вы запускаете это из командной строки Windows, поэтому он работает, когда вы запускаете его напрямую. Попробуйте использовать надлежащий Bourne синтаксис:

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

Не забудьте защитить переменную от пробелов: '' $ JAVA_HOME "/ bin/java'. –

+0

Спасибо Пол. Я внес изменения, предложенные вами. По крайней мере, теперь я не получаю сообщение «fg: no job control». Но теперь это дает мне эту ошибку: «Не удалось получить доступ к jarfile umar.jar», даже я установил все разрешения true: «chmod 777 umar.jar». Странным фактом является то, что он отлично работает, если я запускаю банку непосредственно из оболочки. – craftsman

+0

Является ли umar.jar в текущем каталоге? –

2

Попробуйте включить режим монитора

set -m 
2

% JAVA_HOME% заменит переменную среды Windows, и уместно в файле .bat.

Попробуйте использовать следующий сценарий оболочки, который должен работать на большинстве UNIX-подобных систем.

#!/bin/bash 
$JAVA_HOME/bin/java -jar umar.jar 
Смежные вопросы