Сценарий оболочки ожидает фоновой команды

Можно сделать это как это:

trap '
    if [[ $BASH_COMMAND =~ /sbin ]] && ((UID!=0)); then
        echo >&2 "${BASH_COMMAND##*/sbin/} must be run as root"
    fi
' DEBUG

Но ifconfig доступно для пользователей также, просто должен ввести /sbin/ifconfig.

Как сказанный Chris Down, я никогда не видел ifconfig издание такой подсказки в ее способности по умолчанию.

12
22.11.2018, 00:00
3 ответа
[1132157] Вы можете использовать команду [1132553] wait PID[1132554] wait for a process to end.[12121] Вы также можете получить PID последней команды с помощью [1132555]$! [12122]В вашем случае, что-то подобное сработает:[12123]После вашего редактирования, так как у вас несколько PID и вы их знаете, вы можете сделать это:[12124]
22
27.01.2020, 19:54
[1132236] Самым чистым способом сделать это было бы заставить вашу [1132602]comamnd1[1132603] вернуть PID запущенных процессов и с помощью [1132604] подождать [1132605] на каждом из них, как предложил @LaurentC's [1132606] ответ[1132607]. [12165]Другим подходом было бы что-то вроде этого:[12166]
4
27.01.2020, 19:54

Если вы используете следующий метод, вам может не понадобиться особый "ждать для всех" процессы "после цикла while. Цикл будет ждать завершения текущей command1 , прежде чем он вернется в начало. Пожалуйста, будьте осторожны с любым советом. Заметьте, единственное, что я сделал, это добавил и подождал, $! до конца вашей command1 .

a=1
while [$a -lt 4 ]
     . command1  & wait $!
   #Generates 1 Process  
     a= `export $a +1`
done
0
27.01.2020, 19:54

Теги

Похожие вопросы