процент на значение из массива, сообщение, если больше 80%

${D}— обычное начало пути, используемого рецептом Yocto, где рецепт устанавливает файлы, принадлежащие пакетам, созданным этим рецептом. Эти каталоги в ${D}сканируются системой сборки на наличие файлов для включения в пакеты (, таких как RPM-файлы ), и для включения в так называемое -дерево sysroot, где файлы (, например. идут библиотеки и заголовки ), используемые другими пакетами. Для этого сканирования существуют некоторые правила по умолчанию, и эти правила можно расширить. Рекомендуется максимально использовать эти пути Yocto по умолчанию в ${D}, чтобы воспользоваться встроенными -механизмами Yocto.

${libdir}определяется в bitbake.conf по умолчанию как :${exec_prefix}/lib, который по умолчанию равен /usr/lib, определенный в том же файле.

install -d ${D}${libdir} 

В конце концов, эта команда оболочки «установить» просто создает каталог, в котором должны быть сохранены файлы (, например. с помощью do _install ), который в конечном итоге должен быть установлен под /usr/libна целевом устройстве.

${D}/a/b/cдля файла c— это просто промежуточный путь, используемый для упаковки Yocto, а ${D}«отрезается», когда тот же файл cнаходится в целевой файловой системе. Так, например, ${D}/a/b/cбудет на /a/b/cцели.

${D}по умолчанию определяется в poky/meta/conf/bitbake.conf как:

TMPDIR = "${TOPDIR}/tmp"
BASE_WORKDIR ?= "${TMPDIR}/work"
WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
D = "${WORKDIR}/image"

-1
05.06.2020, 22:16
1 ответ

обычно требуется процент операции, всего/использовано, не доступно/использовано !

в массиве или параметрах, когда мы используем *вместо @, мы получаем одну строку, которую вы не можете перебрать!

попробуй так

#get data from api save it to variable in order to avoide calling it twice (resources consumption and asyncroned results)!
disk_infos="$(curl -ks -XGET https://API/cluster1)";
# extract disk_space_available frome results 
disk_available=($(awk '/disk_space_available/ {print $5}' <<< "${disk_infos}"));
# extract disk_space_used from same results 
disk_used=($(awk '/disk_space_used/ {print $5}' <<< "${disk_infos}"));
# declare empty array for holding errors
disk_errors=();
# loop over arrays
for i in "${!disk_used[@]}";do 
    used_perc=$((disk_used[i]*100/disk_available[i])); # calculate percentage
    if [[ "${used_perc}" -gt 80 ]]; then # check perc value if greeter than 80
        disk_errors+=("FAIL - Storage is ${used_perc}% full at index ${i}"); # append the error to the holder 
    fi
done
# check if errors were encountred
if ((${#disk_errors[@]}));then # check if disk_errors count is not 0
    echo ${#disk_errors[@]} errors found; # print errors count
    printf '%s\n' "${disk_errors[@]}" ; # print each error msg in a line
else
    echo everything is fine ${#disk_errors[@]} errors found; # print errors count 
fi
1
18.03.2021, 23:32

Теги

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