2017-02-05 12 views
0

Я пишу скрипт оболочки, и мне нужен мой скрипт, чтобы открыть окно xterm, запустив команду и не закрывая xterm, продолжайте скрипт.shell script - открыть скрипт xterm выполнить команду и продолжить выполнение скрипта

Код в основном представляет собой огромный случай для меню.

Это пример моего сценария

... 
example() { 
echo -n "thingy > " 
read thingy 
echo -n "thingy1> " 
read thingyl 
xterm -hold -e *el command* 
menux 
} 
... 

Проблема:

Скрипт открывает Xterm выполняет команду и сохраняет окно открытым, но не будете продолжать сценарий, и если я нажимаю Ctrl + C она идет назад к корпусу

ответ

0

это изменение

nohup xterm -hold -e *el command* & 

Будет делать то, что вы хотите. nohup сообщает оболочке не отправлять сигнал HUP (1) этому дочернему процессу, когда родительский выход завершается. Команда & выполняет команду xterm в фоновом режиме, чтобы сценарий мог продолжить. man nohup имеет подробную информацию.

Если вы хотите покончить с выходом, то следующее переадресует весь выход на /dev/null, а 2>&1 будет следить за тем, чтобы stderr был направлен на то же место. Если вы хотите увидеть свои ошибки, не выполняйте это второе перенаправление.

nohup xterm -hold -e *el command* > /dev/null 2>&1 & 

man bash имеет информацию о перенаправлении.

+0

его работы, но как я могу скрыть сообщение nohup (nohup: добавление вывода в nohup.out) и остановить его от сохранения файла .out? – n0t313

+0

Я обновил ответ с помощью этой информации. –

+0

большое спасибо! – n0t313