Продолжение выполнения 1го bash-cкрипта после прерывания 2го, из которого он был вызван %)

компьютеры программирование Linux bash

В общем задача такая - есть два скрипта, в первом мы должны передать все принятые параметры второму скрипту (это я знаю как сделать), но в случае, если второй скрипт, например, прервать, надо чтобы выполнение продолжилось со следующей строки в первом скрипте, следующей за вызовом второго скрипта. Так происходит в случае успешного завершения выполнения второго скрипта, но меня интересует именно случай, когда он умирает не своей смертью :) Это можно сделать, написав программу на C с использованием system(), но мне хотелось бы это сделать средствами баша.

Заранее спасибо.
Ответы:
хм.... ну, можно отлавливать сигнал(ы) останова в первом скрипте, тогда он не будет падать:
Следует помнить, что скрипты выполняет интерпретатор (sh/bash), и прерывание ловит именно он а не скрипт :) Т.е. всё равно когда жмёшь Ctrl+C или что там ещё похуже - переход от одного скрипта к другому для интерпретатора по существу ничем не отличается от перехода от одной строки к другой.
Таким образом, если интерпретатор умирает во время исполнения скрипта №2 - ситуация аналогична с ситуацией, когда он умирает при выполнении строчки №2, т.е. он существует в единственном экземпляре и умирает насовсем :)
Чтобы гарантировать продолжение выполнения скрипта №1 при сбое в процессе работы скрипта №2, нужно выполнять их разными копиями интерпретаторов, т,е. в принудительном порядке вызывать новый скрипт через интерпретатор.
Вместо
. /скрипт/номер/два.sh
нужно писать
/bin/sh /скрипт/номер/два.sh
или просто
/скрипт/номер/два.sh
(работает только если он имеет бит исполнимости)
При этом, разумеется, нужно учесть, что переменные у них не будут общими, т.е. надо будет передавать - принимать параметры стандартными способами (через пайпы например), с обработкой ошибок.
nohup


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.