Полный -текстовый поиск справочных страниц и получение списка названий и описаний из консоли, например (1)

Решение здесь состоит в том, чтобы использовать встроенные команды в оболочке, так как тогда не будет выполняться несколько fork/exec на строку, что относительно очень дорого.

Я бы сделал так:

#! /bin/bash
echo -n "Enter the logfilename : "
read logfilename
echo "Entered name : $logfilename"
echo "outside the while loop"
let success=0
let failure=0
let total=0
failedtests=()

while read line; do
        case "$line" in
                *Begin\ of\ *)  echo $line
                                failedtests+=( ${line/Begin of /} )
                                ;;
                *PASSED*)       ((success++));;
                *FAILED*)       ((failure++));;
                *End\ of\ *)    ((total++));;
        esac
done < "$logfilename"

echo "Total testcases : $total"
echo "Total testcase with Success : $success"
echo "Total testcase with Failure : $failure"
echo "Failed tests:" ${failedtests[@]}

Вы можете использовать caseдля сопоставления шаблонов глобусов. Согласно вашему примеру данных (, у которых есть «Пройдено», а не «ПРОШЛО», для которых вы выполняете поиск ), начальный *каждого шаблона может быть опущен, однако с ним он точно соответствует использованию grep.

Я также покончил с переменной DONE, так как вы бесполезно перебираете в цикле последнюю пустую строку (, полученную в результате конца -файла -).

РЕДАКТИРОВАТЬ :Добавлен сбор и отображение неудачных тестов. Они собраны в массиве bash failedtests. ${line/Begin of /}приводит к содержимому lineс удаленной строкой.Наконец, полное содержимое массива отображается с помощью ${failedtests[@]}.

2
25.07.2021, 09:40
0 ответов

Теги

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