С bash
4.4 и новее:
cmd1 & p1=$!
cmd2 & p2=$!
wait -n
[ "$?" -gt 1 ] || kill "$p1" "$p2"
wait
wait -n
ожидает завершения первого фонового задания и сообщает о своем статусе выхода в $?
.
Предполагается, что вы хотите убить другое задание, когда первое завершает работу с 0 или 1. Измените команду kill
на exit
, если вы хотите выйти из сценария и оставить другая команда работает без родителей.
Редактирование файла файла недостаточно. Вам нужно получить этот файл.Обычно это делается при запуске bash, но если вы редактировали файл, вы можете принудительно прочитать файл с помощью:
source ~/.bashrc
Примечание: некоторые системы могут ограничивать, какой файл анализируется при запуске bash (например, если файл доступен для записи "другое", или просто другое, требующее разных файлов, но, насколько я знаю, это делается не часто, а на специальных устройствах)
РЕДАКТИРОВАТЬ:
Вы написали, что редактировали файл с помощью sudo. это может быть проблемой: если ваш пользователь не может прочитать этот файл, он игнорируется. .bashrc
читается как ваш пользователь. Но и это не должно быть нормальным случаем: файлы уже должны существовать, и только плохие редакторы изменят разрешение редактируемого файла.