bash проверка скриптов для установленных шрифтов из списка в массиве и для l oop для выполнения команд - PullRequest
0 голосов
/ 12 марта 2020

Обновлено с рабочим кодом

Я пытаюсь проверить установленные шрифты, перечисленные в $ {fontArray}, один за другим и добавить любые, которые не найдены, в новый массив $ {missingFonts}, который я могу напечатать позже как часть гораздо более долгой проверки работоспособности после сборки на каждой машине в моей среде.

    Var19="Fonts"
fontArray=("font1" "font2" "font3")
missingFonts=()
for i in "${fontArray[@]}"; do
    system_profiler SPFontsDataType | grep "Full Name: $i" | sed 's/.*: //'
    if ! system_profiler SPFontsDataType | grep -q "Full Name: $i"; then 
        missingFonts+=("$i");
    fi
done

if [ ${#missingFonts[@]} -eq 0 ]; then
    Val9="Fonts Installed"
    Check19=PASS
else
    Val19="Missing Fonts: ${missingFonts[@]}"
    Check19=FAIL
fi

Line19=" | ${Check19} | ${Var19}        = ${Val19} "

echo "$Line19"

exit 0

, которая возвращает

| FAIL | Fonts      = Missing Fonts: font1 font2 font3

Заранее благодарим за помощь в обучении старой собаки новые трюки!

1 Ответ

1 голос
/ 13 марта 2020

Спасибо @DavidC.Rankin за помощь!

Почему бы тогда

if ! system_profiler SPFontsDataType | grep -q "Full Name: $i"; 
then missingFonts+=("$i"); 
fi 

добавить недостающие шрифты? Не беспокойтесь об удалении префикса с помощью sed, если это не нужно. Это должно создать ваш список пропущенных шрифтов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...