Пример 4.1. Анализ входных данных с использованием дополнительных параметров: код
#!/usr/bin/env bash
# parameter-expansion.sh: применение дополнительных параметров для анализа
# Автор и дата: _bash Idioms_ 2022
# Имя файла в bash Idioms: examples/ch04/parameter-expansion.sh
#_________________________________________________________________________
# Не работает в Zsh 5.4.2!
customer_subnet_name='Acme Inc subnet 10.11.12.13/24'
echo ''
echo "Say we have this string: $customer_subnet_name"
customer_name=${customer_subnet_name%subnet*} # Удалить 'subnet' в конце
subnet=${customer_subnet_name##* } # Удалить начальные пробелы
ipa=${subnet%/*} # Удалить '/*' в конце
cidr=${subnet#*/} # Удалить до '/*'
fw_object_name=${customer_subnet_name// /_} # Заменить пробелы на '_'
fw_object_name=${fw_object_name////-} # Заменить '/' на '-'
fw_object_name=${fw_object_name,,} # В нижний регистр
echo ''
echo 'When the code runs we get:'
echo ''
echo "Customer name: $customer_name"
echo "Subnet: $subnet"
echo "IPA $ipa"
echo "CIDR mask: $cidr"
echo "FW Object: $fw_object_name"
# Дополнительные параметры в bash:
https://oreil.ly/Af8lw# ${var#pattern} Удалить кратчайшее совпадение с pattern в начале
# ${var##pattern} Удалить самое длинное совпадение с pattern в начале
# ${var%pattern} Удалить кратчайшее