lsusb | грэп | Команда Awk отсекает первый результат

Я не думаю, что это проблема, скорее это поведение программы, которую вы запускаете.

Ваше приложение (, компилирующее ), не загружает ЦП на 100%, возможно, оно выполняет довольно много операций ввода-вывода. Когда приложение выполняет ввод-вывод, оно переходит в режим iowait. Он не может использовать ЦП, пока не завершит операцию ввода-вывода.

Обратите внимание на «время ожидания» в top.

0
28.02.2020, 17:46
1 ответ

Строка исчезает из-за вызова read line, а не AWK. Я бы поступил иначе:

lsusb -d 1234:a1b1 | while read _ bus _ device _; do
    sudo./usbreset "/dev/bus/usb/${bus}/${device%:}"
done

При этом используется собственная способность lsusbфильтровать устройства, затем считываются идентификаторы шины и устройства в соответствующие переменные и присваиваются соответствующие значения usbreset, удаляя конечный «:» из ${device}..

4
28.04.2021, 23:21

Теги

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