Добавить значения в массив и зациклить на основе этого

Похоже, что TLS 1.3 будет официально доступен в RHEL 8 .

Если кто-то другой не сделал это за вас, для его запуска в RHEL 7 потребуется перекомпилировать как openssl, так и nginx, как вы упомянули.

Вы можете использовать официальные контейнеры Nginx Docker , которые, насколько я помню, уже некоторое время были созданы для TLS 1.3.

0
27.09.2021, 06:51
1 ответ

Ваше описание того, что вы хотите сделать, в зависимости от наличия файлов, немного расплывчато. Также неясно, хотите ли вы собирать имена отдельно для каждого префикса имени файла или вместе. Также может быть лучше выбрать конкретную дату, например, и попытаться найти набор файлов из нее. Приведенный ниже код должен немного помочь вам в программировании.

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

Вы можете циклически перебирать префиксы имен файлов и на каждой итерации проверять, существует ли какой-либо файл с этим префиксом (и с суффиксом имени файла .txt).

for prefix in CV_REF_DATA_ DB_ONLINE_CL_ DFR_CL_INS_; do
        set -- /NAS/CFG/"$prefix"*.txt
        if [ -e "$1" ]; then
                printf 'There exists names matching "%s"*.txt:\n' "$prefix"
                printf '\t%s\n' "$@"
        else
                printf 'No names matches "%s"*.txt\n' "$prefix"
        fi
done

Цикл перебирает префиксы имен файлов, и на каждой итерациимы пытаемся расширить шаблон, который должен соответствовать интересующим нас файлам для этого префикса. Команда setсохранит совпадающие имена файлов в списке позиционных параметров("$@"; "$1"— первый элемент этого списка ).

В оболочке bashмы можем написать приведенный выше блок кода следующим образом.

shopt -s nullglob

for prefix in CV_REF_DATA_ DB_ONLINE_CL_ DFR_CL_INS_; do
        names=( /NAS/CFG/"$prefix"*.txt )
        if [ "${#names[@]}" -gt 0 ]; then
                printf 'There exists names matching "%s"*.txt:\n' "$prefix"
                printf '\t%s\n' "${names[@]}"
        else
                printf 'No names matches "%s"*.txt\n' "$prefix"
        fi
done

Параметр оболочки nullglobзаставляет не -совпадающие подстановочные шаблоны исчезать, а не оставаться нераскрытыми. Мы используем именованный массив namesдля хранения любых совпадающих имен файлов на каждой итерации.


Для буквальной интерпретации вашей проблемы :Вызовите какой-нибудь другой скрипт, если хотя бы одно из имен файлов дерева CV_REF_DATA_09012021.txt, DB_ONLINE_CL_09012021.txt, DFR_CL_INS_09012021.txtнаходится в каталоге /NAS/CFG. Добавьте существующие имена в массив.

shopt -s nullglob
unset -v names

for name in CV_REF_DATA_09012021.txt DB_ONLINE_CL_09012021.txt DFR_CL_INS_09012021.txt
do
        [ -e /NAS/CFG/"$name" ] && names+=( "$name" )
done

if [ "${#names[@]}" -eq 0 ]; then
        echo 'no files could be found' >&2
        exit 1
fi

# At least one name is in the "names" array.
# Call your other script below here.
2
27.09.2021, 07:44

Теги

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