Причина, по которой chmod g+s newDir
не удалось выполнить от имени пользователя otherUser
, заключалась в том, что otherUser
не был частью группы test-group
, которая является группой newDir
.
Переключение на пользователя, являющегося частью test-group
, и выполнение chmod g+s newDir
работает нормально.
Быстрым и грязным ответом было бы просто найти их и добавить с помощью 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]\+' |...
Также довольно подозрительным является сценарий с большим количеством снов. Почти всегда есть лучшие способы организовать автоматизацию, а сон в основном полезен только для тестирования.