[ОТВЕТИТЬ]
18.09.2007 18:00
Pyatak
 
Подскажите такую вещь:

Имеется два sh скрипта (script1 и script2)
Для примера таких:

script1
-----------8<---------
#!/bin/sh
echo "Hello world!"
script2
echo "Goodbay world"
----------->8---------

script2
-----------8<---------
#!/bin/sh
echo "Hello from script2"
exit 0
----------->8---------


Вобщем, из первого вызывается второй и если во втором скрипте есть команда exit, то по завершении второго первый не продолжает свое выполнение, как так вызвать второй скрипт, чтобы по команде exit x из второго скрипта управление вернулось первому?
19.09.2007 10:45
akonev
 
странно это все. у меня не выкидывает из первого. правда, у меня только фряха под рукой есть.

предположим, что у тебя по exit 0 закрывается текущий шелл.
попробуй вложенный скрипт запускать в новом экземпляре:
Код:
echo "Hello world!"
sh script2
echo "Goodbay world"
еще, наверное, можно поиграться с trap
19.09.2007 11:46
Pyatak
 
Упс. Прошу прощения, разобрался в чем причина, синтаксис немного другой был, из первого скрипта второй вызывался так:
Код:
. ./script2
Так вот, если первую точку убрать, то всё будет работать как надо, а если оставить, то видимо второй скрипт воспринимается не как отдельный, а как вложенный (include) в этот и, соответственно, по exit завершается всё.
Опции темы


Часовой пояс GMT +3, время: 21:06.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.