В качестве администратора баз данных SQL Server вы можете обнаружить, что вам приходится выполнять административные задачи по-другому в Linux по сравнению с Windows. В этой статье мы рассмотрим, как использовать сценарий Bash для отображения сообщений и получения пользовательского ввода в SQL Server на Linux.
Фоновые сценарии против интерактивных сценариев
Прежде чем погрузиться в сценарий Bash, важно понять две категории сценариев: фоновые сценарии и интерактивные сценарии.
Фоновые сценарии, такие как задания Cron, выполняются без взаимодействия с пользователем и полагаются на файлы конфигурации для ввода. Эти сценарии обычно записывают вывод в текстовый файл для целей журналирования.
С другой стороны, интерактивные сценарии предназначены для отображения информации и получения пользовательского ввода. Эти сценарии позволяют создать более динамичный и удобный для пользователя опыт.
Отображение сообщений с помощью Bash
Когда дело доходит до отображения сообщений в Bash, у вас есть два основных инструмента: команда echo и функция printf.
Команда echo используется для отображения базового вывода в консоли. Она предлагает различные параметры, которые позволяют более сложное использование. Например, параметр -n можно использовать для подавления завершающего символа новой строки, а параметр -e позволяет интерпретировать управляющие последовательности обратного слеша.
Вот пример использования команды echo:
#!/bin/bash
Variable1="Привет"
Variable2="Мир"
echo $Variable1
echo $Variable2
echo -n $Variable1
echo -n $Variable2
Используя параметр -n, мы можем подавить символ новой строки и отобразить вывод на одной строке.
Функция printf, аналогичная функции printf в C/C++, позволяет более продвинутое форматирование текста. Она предоставляет широкий спектр кодов формата и модификаторов для настройки вывода.
Вот пример использования функции printf:
#!/bin/bash
MyVar=-112450000000000
printf "MyVar как знаковое десятичное число: %d\n" $MyVar
printf "MyVar как число с плавающей запятой: %f\n" $MyVar
printf "MyVar как число двойной точности: %e\n" $MyVar
printf "MyVar как число двойной точности: %E\n" $MyVar
printf "MyVar как число двойной точности: %g\n" $MyVar
printf "MyVar как число двойной точности: %G\n" $MyVar
printf "MyVar как беззнаковое десятичное число: %u\n" $MyVar
printf "MyVar как шестнадцатеричное число C99 с плавающей запятой: %u\n" $MyVar
printf "MyVar как символ: %c\n" $MyVar
printf "MyVar как строка: %s\n" $MyVar
printf "Вот знак процента: %%\n"
Функция printf позволяет точно контролировать форматирование переменных и констант. Она поддерживает различные коды формата, такие как %d для знаковых десятичных чисел, %f для чисел с плавающей запятой и %s для строк.
Получение пользовательского ввода с помощью Bash
Для создания интерактивных сценариев вам необходима возможность захватывать пользовательский ввод. Bash предоставляет команду read для этой цели.
Команда read считывает одну строку из консоли или любого указанного дескриптора файла. Она позволяет присваивать ввод переменным для дальнейшей обработки.
Вот пример использования команды read:
#!/bin/bash
read -p "Введите ваше имя:" Name
echo "Ваше имя " $Name
В этом примере пользователю предлагается ввести свое имя, и ввод сохраняется в переменной “Name”.
Команда read также предлагает различные параметры, такие как -a для присвоения ввода массиву, -d для указания пользовательского символа конца строки и -s для скрытия пользовательского ввода (полезно для получения паролей).
С помощью сценария Bash и команды read вы можете создавать интерактивные сценарии, позволяющие пользовательскому вводу и динамическому выводу.
Заключение
Сценарий Bash – это мощный инструмент для администраторов баз данных SQL Server, работающих на Linux. Используя команду echo и функцию printf, вы можете отображать информативные сообщения в консоли. Кроме того, команда read позволяет захватывать пользовательский ввод и создавать интерактивные сценарии.
Будь то выполнение фоновых сценариев или создание интерактивных сценариев, сценарий Bash является неотъемлемым навыком для управления SQL Server на Linux.