Diperbarui dengan kode kerja

Saya mencoba memeriksa font terinstal yang terdaftar di ${fontArray} satu per satu dan menambahkan yang tidak ditemukan ke array baru ${missingFonts} yang dapat saya cetak nanti sebagai bagian dari "pemeriksaan kesehatan pasca-pembangunan" yang lebih lama berjalan di setiap mesin di lingkungan saya.

    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

Yang mengembalikan

| FAIL | Fonts      = Missing Fonts: font1 font2 font3

Terima kasih sebelumnya telah membantu anjing tua mempelajari trik baru!

0
ronin.andrew 12 Maret 2020, 20:37

1 menjawab

Jawaban Terbaik

Terima kasih @DavidC.Rankin atas bantuannya!

Kenapa tidak?

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

untuk menambahkan font yang hilang? Jangan khawatir tentang pengupasan awalan dengan sed kecuali Anda perlu. Itu seharusnya membuat daftar font Anda yang hilang

1
Dharman 12 Maret 2020, 22:13