Не стоит ли вам рассмотреть DNSSEC и другой преобразователь DNS? Вы можете получить список отсюда: https://duckduckgo.com/?q=Public+DNS+Servers&t=ffsb&ia=answer&iax=1
Это проще с zsh
:
$ array=(saf sri trip tata strokes)
$ pattern='*tr*'
$ printf '%s\n' ${(M)array:#$~pattern}
trip
strokes
$ {array: #pattern}
: расширяется до элементов массива, которые не соответствуют шаблону. (M)
(для соответствия): возвращает значение оператора : #
, чтобы развернуть его до соответствующих элементов. $ ~ pattern
, вызывает содержимое $ pattern
, который следует использовать в качестве шаблона. Один из способов сделать это:
array=(saf sri trip tata strokes)
input=*tr*
for foo in "${array[@]}"; do
case "$foo" in
$input) printf '%s\n' "$foo" ;;
esac
done
Примечание для чрезмерно восторженных цитат: правая часть в назначениях (например, * tr *
в input = * tr *
) не требует цитирования.