Если я выдам это в командной строке bash: $ cmd_1; cmd_2
cmd_1 находится на переднем плане. Могу ли я предотвратить запуск cmd_2 без остановки cmd_1? У меня есть, пока cmd_1 не закончится, в это время cmd_2 запустится, а потом уже слишком поздно.
Не думаю, что это возможно, но, может быть, с контролем работы?
-Z $ bg толкает обе команды в bg? Скорее, cmd_1 идет к bg, а cmd_2 (где? «Ожидающий фон?» Как @ cmd?) Все еще ждет выхода cmd_1?
Команды не были вызваны условно, а именно "cmd_1 && cmd_2", и команды не были основаны на вызове. cmd_1 работает в fg, cmd_2 еще не выполнен.
Лицевая часть здесь - это то, что cmd_1 потребуется очень много времени для завершения, cmd_2 разрушителен, и я бы не хотел прерывать и снова делать cmd_1. Я бы просто хотел, чтобы cmd_1 закончил, а cmd_2 вообще не запускался.
Я мог вызвать сбой cmd_2, переместив cmd_2 в cmd_2.sav до тех пор, пока cmd_1 не завершит работу, и в результате получится «-bash: cmd_2: команда не найдена», но я надеялся на более элегантное решение. cmd_2 может использоваться другими до завершения cmd_1. (Да, я мог бы обернуть cmd_2.real в оболочку cmd_2 с помощью пользовательского теста или чего-то подобного, но это безумие).