Рейтинг:0

`nohup` не работает должным образом с `&&`

флаг vn

Я хочу сделать отложенное фоновое выполнение, для задержки я использую спать [любые секунды] && [выполнение] для фона я использую нет

Простой пример нет в одиночестве:

дата nohup &>> out.log &

И, конечно же, вы можете найти распечатку исполнения датировать в выход.лог.

Но я хочу задержать выполнение, например, на 15 секунд, поэтому небольшая комбинация:

nohup sleep 15 && date &>> out.log &

На этот раз он не работает должным образом, спать 15 был казнен, в то время как датировать не всегда будет делать - Если вы закроете терминал, он ничего не выполнит после &&.

Что не так с нет? Он сдается &&??

Рейтинг:3
флаг in

Я предполагаю, что вы находитесь в Баше, где нет это команда системы (coreutils).

В Баше && отметить конец командной строки. В вашем случае нет получает из оболочки только параметры спать 15. Все остальное — это следующая команда для оболочки.

Как нет не является оболочкой, вы не можете использовать круглые скобки для «расширения» параметров до нет, так как нет не может его интерпретировать и не знает, что с ним делать.

Одним из решений было бы создание скрипта (например, свидание со сном) который содержит спать 15 и свидание и используйте это как параметр для нет:

nohup ./sleepdate &>> out.log &

или используйте bash (который может интерпретировать &&) в качестве параметра нет

nohup bash -c 'sleep 15 && date' &>> out.log &

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.