Есть одна программа на java (назовем её app.jar) и есть скрипт, в котором я пытаюсь заставить её работать так, как я хочу.Программа app.jar производит некоторые действия, а затем не завершает работу. Для корректного результата с клавиатуры ей надо ввести строку "exit" и нажать enter. Определять из скрипта, то что программа закончила некоторые действия и ждет ввода я научился, анализируя размер лога программы в цикле.Осталось научиться передать exit [Enter] программе.Т.е. грубо говоря скрипт сейчас такойjava -jar app.exe & #амперсанд чтобы выполнялся следующий кодwaitForFinishApp; #функция, которая в цикле с некоторой задержкой проверяет размер лог файлаecho "exit" > stdin #куда надо выводить exit? так не работаетАх да, при запуске с амперсандом в конце, app.jar ругается страшными явовскими логами в начале, но вроде работает. Не понимаю, что ей не нравится.
./bump
>>675160 (OP)Она не ругается, просто она в стдаут пишет всякую хуйню, т.к. ты не перенаправил её выыод в дев/нулл. А про экзит хз
>>675171>Она не ругается, просто она в стдаут пишет всякую хуйнюНо когда запускаю без амперсанда она не пишет эту хуйню...
exit_writer(){ waitForFinishApp echo 'exit'}exit_writer | java -jar app.exe
>>675203Ух ты! Сейчас попробую
>>675203То что нужно! Спасибо, анон!
Раз есть тема про баш, то спрошу здесь. Есть две программы, решающие одну задачу. Одна долго и в лоб, другая дохуя умная и быстрая. Нужно проверить корректность второй. Генератор тестов также есть. Собсна помогите написать скрипт, автоматизирующий проверку умного решения. Смотрел всякие сайты, гайды по башу. Нихуя не понятно, переменные блять не имеют типов, неочевидный синтаксис и вообще я быдло
>>682873а еще вывести тест, на котором решение валится, вот
бамп
>>682873mytest(){./proga1 < $1 > outfile1./proga2 < $1 > outfile2diff outfile1 outfile2 || { echo "Test $2: Pizdariki" exit 1}}set -emytest inputfile1 "1: check huita"mytest inputfile2 "2: check yoba"mytest inputfile3 "3: check zhopa"# etc ...
>>683507Спасибо, няш
bash скрипт в цикле много раз выполняет некоторое приложение, как-то так:for $file in $filelistdo prilozhenie $filedoneЕсли во время выполнения скрипта нажать ctrl+c, то завершится экземпляр приложения, выполняемый в данный момент и запустится следующий экземпляр.Как сделать так, чтобы это сочетание клавиш сразу завершало весь скрипт?
>>699599http://serverfault.com/questions/105386/bash-loop-how-to-stop-the-loop-when-i-press-control-c-inside-a-command
>>699614спасибо
>>675203>exit_writer(){> waitForFinishApp> echo 'exit'>}>exit_writer | java -jar app.exeБлин. А красиво.
Анон, сделал вот такой вот скрипт: http://pastebin.com/4L28rKPBСуть в том, что при первом запуске подготавливается приложение, а при следующих запусках скрипта он переносит фокус на уже открытое приложение. Это все работает, но есть одно но: когда открыт sublime, то скрипт почему-то реагирует на него, хотя не должен, от слова совсем. Короче, говоря есть ложные срабатывания.В чем проблема? Неподсвеченный код ниже > #!/bin/sh> SERVICE='konqueror'> MYPATH='/usr/bin/konqueror' > if ps ax | grep -v grep | grep -w $MYPATH > /dev/null> then> nohup /usr/bin/wmctrl -a $SERVICE &> else> nohup $MYPATH --profile Profile &> sleep 1> nohup wmctrl -r $SERVICE -t 4 &> fi
>>718682Сам разобрался. Оказалось из-за того что название скрипта было konqueror, а сублайм назначал свой title по имени редактируемого файла и происходила коллизия :0