Используя bash и grep, вы можете проверить статус возврата нескольких вызовов grep в такой функции, как:
#!/usr/bin/env bash
failed_zero () {
grep -q "Test total" "$1" || grep -q "Test scored" "$1" || grep -q "Test failed=0" "$1"
return $?
}
# test first file name on command line
failed_zero $1
echo $?
Я нашел проблему. В URL-адресе, который я использовал, был амперсанд!
Если фактический URL-адрес содержит символ &
без кавычек, команда до этого момента будет интерпретироваться оболочкой как команда для запуска в фоновом режиме. Остальная часть URL-адреса будет восприниматься как новая команда.
Всегда указывайте URL-адреса в кавычках при указании их в командной строке. Это также предотвращает интерпретацию других символов в URL-адресе как специальные оболочкой (, например. ;
и ?
и т. д.)