Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Перетворення регістра

Останні версії бити мають підтримку перетворення рядків у верхній/нижній регістр. бити

має чотири розширення параметрів і два варіанти декларувати наказ підтримати його.

Тож для чого добре перетворення регістру? Крім очевидної естетичної цінності, він відіграє важливу роль у програмуванні. Розглянемо випадок пошуку бази даних. Уявіть собі, що користувач ввів рядок у поле введення даних, яке ми хочемо знайти в базі даних. Можливо, користувач введе значення всіма великими або малими літерами або їх комбінацією. Ми, звичайно, не хочемо заповнювати нашу базу даних усіма можливими перестановками великих і малих регістрів. Що робити?

Загальноприйнятим підходом до цієї проблеми є нормалізувати введення користувача. Тобто конвертувати


у стандартизовану форму, перш ніж ми спробуємо знайти базу даних. Ми можемо зробити це, перетворивши всі символи введених користувачами в нижній або верхній регістр і переконавшись, що записи бази даних нормалізуються однаково.

Команда декларувати команду можна використовувати для нормалізації рядків у верхній або нижній регістр. Використання декларувати, ми можемо змусити змінну завжди містити потрібний формат, незалежно від того, що їй призначено:



#! / бін / баш

# ul-declare: продемонструвати перетворення регістру за допомогою declare declare -u upper

оголосити -л нижчим


якщо [[ $1 ]]; тоді

upper="$1" lower="$1" echo $upper echo $lower

fi

#! / бін / баш

# ul-declare: продемонструвати перетворення регістру за допомогою declare declare -u upper

оголосити -л нижчим


якщо [[ $1 ]]; тоді

upper="$1" lower="$1" echo $upper echo $lower

fi


У наведеному вище сценарії ми використовуємо декларувати щоб створити дві змінні, верхній та знизити. Ми призначаємо значення першого аргументу командного рядка (позиційний параметр 1) кожній із змінних, а потім відображаємо їх на екрані:



[me@linuxbox ~]$ ul-оголосити aBc

азбука

Азбука

[me@linuxbox ~]$ ul-оголосити aBc

азбука

Азбука


Як бачимо, аргумент командного рядка ("aBc") нормалізовано.

На додаток до декларувати, є чотири розширення параметрів, які виконують перетворення верхнього/нижнього регістру:


Таблиця 34-1: Розширення параметрів перетворення регістру


Формат результату

Формат результату

${параметр,,} Розгорніть значення параметр у всі малі літери.


зображення

${параметр,} Розгорніть значення параметр змінюється лише перше

символ у нижній регістр.


зображення

${параметр^^} Розгорніть значення параметр на всі великі літери.


зображення


зображення

${параметр^} Розгорніть значення параметр змінюється лише перше

символ у верхньому регістрі (велика літера).


зображення


Ось скрипт, який демонструє ці розширення:



#! / бін / баш

# ul-param: демонструє перетворення регістру за допомогою розширення параметра, якщо [[ $1 ]]; тоді

луна ${1,,}

echo ${1,} echo ${1^^} echo ${1^}

fi

#! / бін / баш

# ul-param: демонструє перетворення регістру за допомогою розширення параметра, якщо [[ $1 ]]; тоді

луна ${1,,}

echo ${1,} echo ${1^^} echo ${1^}

fi


Ось сценарій в дії:



[me@linuxbox ~]$ ul-param aBc

abc aBc ABC

ABc

[me@linuxbox ~]$ ul-param aBc

abc aBc ABC

ABc


Знову ми обробляємо перший аргумент командного рядка і виводимо чотири варіанти, які підтримуються розширеннями параметрів. Хоча цей скрипт використовує перший параметр позиції, параметр може бути будь-який рядковий, змінний або рядковий вираз.


Найпопулярніші хмарні обчислення ОС на OnWorks: