Как узнать время сна программы

Причина, по которой chmod g+s newDirне удалось выполнить от имени пользователя otherUser, заключалась в том, что otherUserне был частью группы test-group, которая является группой newDir.

Переключение на пользователя, являющегося частью test-group, и выполнение chmod g+s newDirработает нормально.

1
11.02.2020, 20:40
1 ответ

Быстрым и грязным ответом было бы просто найти их и добавить с помощью awk:

grep -o 'sleep [0-9]\+' input.sh | awk '{ sum +=$2 } END { print sum }'

Это говорит о том, что используйте grepдля поиска 'input.sh'. В каждой строке выведите только(-o)совпадающую часть строки. Соответствие должно быть строкой sleep, за которой следует 1 или более чисел от 0 до 9. Итак, теперь у нас есть что-то, что выведет только:

sleep 5
sleep 2

Мы отправляем этот список в awk, который обрабатывается построчно и добавляет все вторые столбцы. В конце выводит итог.

ПРИМЕЧАНИЕ. :Это довольно хрупкое решение. Например, если у вас есть закомментированная строка:

# we used to do sleep 1000 here by it was too slow

Вы все равно включите это в общую сумму. Если вы знаете больше о своем сценарии, вы можете создать более надежный конвейер. Например, если вы знаете, что вызовы sleepвсегда находятся в начале строки, вы можете привязать grep:

grep -o '^sleep [0-9]\+' |...

Также довольно подозрительным является сценарий с большим количеством снов. Почти всегда есть лучшие способы организовать автоматизацию, а сон в основном полезен только для тестирования.

0
28.04.2021, 23:23

Теги

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