2014-01-03 2 views
0

Я пытаюсь сделать скрипт KornShell (ksh) компилировать все файлы Java в папке.Как выйти из сценария оболочки без закрытия сеанса ssh/telnet, в котором он запущен

Этот скрипт вызывается Apache Ant, поэтому мне нужно вернуть код ошибки, чтобы он знал, когда сбой.

function check_if_error 
{ 
    if [ $1 != 0 ] 
    then 
     echo "Unable to compile java module" 
     echo "Error code $1" 
     echo "Reason: $2 module" 
     java_fail=1 
     exit 1 
    fi 
} 


echo "Compiling the java files..." 
javac com/cmsi/eValuate/ScriptProcessor/*.java 
check_if_error $? "ScriptProcessor" 

Я вынуждена ошибка компиляции в одном из файлов Java, поэтому, когда он попадет в exit 1 части функции, она убивает телнет сессию, с которой я зарегистрированной в поле и работает этот скрипт.

Я пробовал return, но return не убивает скрипт оболочки, он просто продолжает работать.

Я пробовал kill -1 $$, но это также закрыло терминальную сессию.

Я использую ОС Solaris 5.

+1

какая сессия telnet? вам нужно показать, что тоже –

+0

Сессия, в которой я запускаю сценарий оболочки. – roymustang86

+0

Я хотел сказать терминальную сессию. – roymustang86

ответ

1

Вы можете попробовать это:

echo compiling... 
if ! javac com/cmsi/eValuate/ScriptProcessor/*.java 
then 
    echo "compilation errors" 
    return 1 
fi 

Я не знаком с муравьем, но это звучит, как он выполняет (сорсинг) код в текущей оболочке, а не порождая подоболочку, который может успешно завершиться.

+0

Ваша заметка дала мне представление о том, где я назвал этот сценарий другим, и он вышел из обоих сценариев при ошибке. – roymustang86

Смежные вопросы