попробуй
found=$( egrep "Test total|Test scored|Tests failed" -c file )
if [ $found -eq 3 ]
then
## all three test
else
## some failed
fi
где
egrep
разрешить расширенный grep, то есть использование|
(или)-c
дает количество совпадающих строк. $( )
вернуть результат команды как переменную. sudo
проверяетPATH
(обычно " secure_path
" и даже не полныхPATH
)ваших пользователей и rootPATH
)для команд и, следовательно, не работает со встроенными модулями и функциями. command
является встроенным, и sudo использует команду docker
в вашем PATH
, а не в вашей функции.
Вы могли бы решить эту проблему, создав скрипт-оболочку, указывающий на command
встроенную (или аналогично с вашей функцией докера )и поместив этот скрипт в PATH
, но вы не следует этого делать. Вы должны просто запустить сам докер с sudo
, когда это необходимо.