LINUX.ORG.RU

Нубашский (или нет?) вопрос про bash

 , , ,


0

1
$ app1 && app2

Если app1 валится с ошибкой, то app2 почему-то не запускается.
Как правильно напейсать, что-бы app2 запускалась в любом случае?

★★★★★

Последнее исправление: superuser (всего исправлений: 5)

Ответ на: комментарий от Deleted

мне надо чтобы app2 запускался после завершения app1 (и в 1 строчку)

superuser ★★★★★
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser

Скорее внимательный.

Ты указал в тегах си, и не знаешь, как там разделяются строки?

Разделение строк в шелл устроено как в сишке, то есть склеивание строк должно быть разделено ;.

mord0d ★★★★★
()
Ответ на: комментарий от baldman88

А если app1 отработает без ошибок, app2 запустится?)

kickass
()
Ответ на: комментарий от IPR

Оставлю для нубасов

		   3.2. Группировка команд.

Средства группировки:
  ; и <перевод строки>  -  определяют  последовательное выполнение команд;
  &   -  асинхронное (фоновое) выполнение предшествующей команды;
  &&  -  выполнение последующей команды при условии нормального завершения предыдущей, иначе игнорировать;
  ||  -  выполнение  последующей  команды  при  ненормальном завершении предыдущей, иначе игнорировать.

superuser ★★★★★
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от baldman88

На самом деле, это не вариант, а совсем другая операция. Если после a ; b посмотреть код завершения, то он будет, как у b, а после a || b это будет логическое сложение кодов a и b. Если код выхода неинтересен то да, можно использовать любой вариант из двух. Но надо понимать, что это неравнозначные списки, чтобы не сеть в лужу, когда код выхода всё-таки понадобится.

gremlin_the_red ★★★★★
()

есть wait и $?

anonymous
()
Ответ на: комментарий от zhekas

может отработать два раза

Во многих случаях - это некритично от слова «совсем».

PS: «К чорту подробности...»

zvezdochiot

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.