14.2.5. Проверка на наличие значения переменной (подстановка)
14.2.5. Проверка на наличие значения переменной (подстановка)
Допустим, что нужно проверить, была ли установлена либо инициализирована переменная. Если это не так, можно тут же воспользоваться другим значением. Формат используемой в этом случае команды будет следующий:
${переменная: — значение}
Если переменная установлена, она применяется. Если переменная не установлена, вместо нее используется значение, например:
$ COLOUR=blue
$ echo "The sky is ${COLOUR:=grey} today"
The sky is blue today
Переменная colour имеет значение blue. Когда команда echo выводит на экран значение переменной colour, выполняется проверка, была ли установлена переменная ранее. Если переменная установлена, используется это значение. Выполним сброс значения переменной и рассмотрим результат.
$ COLOUR=blue
$ unset COLOUR
$ echo "The sky is ${COLOUR:=grey} today"
The sky is grey today
В приведенном примере переменной не присваивается действительное значение; для присваивания значения следует применить формат:
${переменная:=значение}
Рассмотрим более полезный пример, в котором содержится запрос о времени создания платежной ведомости (payroll), а также относительно ее типа. Если в обоих случаях при указании времени и типа нажать клавишу [Enter], то значения этих переменных не будут установлены пользователем. В этом случае применяются новые значения, заданные по умолчанию (03:00 и Weekly). Затем значения передаются команде at, что свидетельствует о переносе выполнения задания на более поздний срок.
$ pg vartest
#!/bin/sh
# vartest
echo "what time do you wish to start the payroll [03:00]:"
read TIME
echo " process to start at ${TIME:=03:00} OK"
echo "Is it a monthly or weekly run [Weekly]:"
read RUN_TYPE
echo "Run type ls ${RUN_TYPE:=Keekly}"
at -f $RUN_TYPE $TIME
Ниже при выводе данных выбирается клавиша [Enter] в обоих случаях.
$ vartest
what time do you wish to start the payroll [03:00]:
process to start at 03:00 OK ls it a monthly or weekly run [Weekly]:
Run type is Weekly
warning: commands will be executed using /bin/sh job 15 at 1999-05-14 03:00
Можно также проверить, установлено ли значение переменной, и затем выйти из системы, получив сообщение об ошибке. В следующем примере проверяется, установлен ли параметр для файла переменной длины.
$ echo "The file is ${FILES:?}"
sh: files: parameter null or not set
Приведенное выше сообщение не слишком информативно, но пользователь может задать свое собственное сообщение.
$ echo "The file is $(FILES:?} sorry cannot locate the variable files")"
sh: files: sorry cannot locate the variable files
Чтобы проверить, содержит ли переменная значение (а если не содержит, возвратить пустую строку), примените следующую команду:
${переменная:+значение)
Для инициализации переменной значением пустой строки примените команду:
variable=""
$ DESTINATION=""
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Проверка отсутствия/наличия значения. Предикат IS NULL
Проверка отсутствия/наличия значения. Предикат IS NULL ПредикатIS [NOT] NULLпозволяет проверить отсутствие (наличие) значения в полях таблицы. Использование в этих случаях обычных предикатов сравнения может привести к неверным результатам, т.к. сравнение со значением NULL дает
1. Пустые значения (Empty-значения)
1. Пустые значения (Empty-значения) Пустое значение – это просто одно из множества возможных значений какого-то вполне определенного типа данных.Перечислим наиболее «естественные», непосредственные пустые значения (т. е. пустые значения, которые мы могли бы выделить
2. Неопределенные значения ( Null-значения)
2. Неопределенные значения (Null-значения) Слово Null используется для обозначения неопределенных значений в базах данных.Чтобы лучше понять, какие значения понимаются под неопределенными, рассмотрим таблицу, являющуюся фрагментом базы данных: Итак, неопределенное
5. Null-значения и проверка условий
5. Null-значения и проверка условий Итак, из всего вышесказанного можно сделать вывод, что в логике систем управления базами данных имеются не два логических значения (True и False), а три, ведь Null-значение также рассматривается как одно из возможных логических значений. Именно
Наличие внешней клавиатуры
Наличие внешней клавиатуры С помощью класса Registry разработчик может получать или устанавливать значения параметров в реестре. Предположим, что нужно узнать, подключена ли к устройству внешняя клавиатура. За данную функцию отвечает параметр HasKeyboard в разделе
Наличие дополнительной клавиатуры
Наличие дополнительной клавиатуры Узнать о наличии в системе подключаемой клавиатуры можно с помощью функции API или просмотрев значение соответствующего ключа в реестре. Использование реестра рассматривалось несколько раньше. В листинге 13.22 приведен код, который
14.2.1. Отображение значения переменной
14.2.1. Отображение значения переменной Чтобы отобразить значение отдельной переменной, достаточно применить команду echo и предварить имя переменной знаком $. Рассмотрим несколько примеров.$ GREAT_PICTURE="die hard" $ echo ${GREAT_PICTURE}die hard$ DOLLAR=99$ echo $(DOLLAR)99$ LAST_FILE=ZLPSO.txt $ echo
14.2.2. Удаление значения переменной
14.2.2. Удаление значения переменной Чтобы удалить значение переменной, достаточно применить команду unset: unset имя_переменной$ PC=enterprise $ echo ${РС} enterprise $ unset PC $ echo ${PC)
26.4.2. Присвоение значения имени переменной
26.4.2. Присвоение значения имени переменной Можно также поставить в соответствие полю данных имя переменной. Рассмотрим, что это означает на практике. Предположим, что в нашем распоряжении имеется следующий файл:$ pg dataPC 486 MONITOR svga NETWORK yesНам необходимо, чтобы первому столбцу
4.1.1 Наличие компонентов продукта
4.1.1 Наличие компонентов продукта Для тестирования пакета программ должны иметься в наличии все его поставляемые компоненты (см. 3.1.2 h), а также нормативные документы, указанные в описании продукта (см. 3.1.2
4.1.2 Наличие компонентов системы
4.1.2 Наличие компонентов системы Для тестирования пакета программ необходимо наличие составных частей всех вычислительных систем, указанных в описании
Проверка диска на наличие ошибок
Проверка диска на наличие ошибок В результате различных программных и аппаратных сбоев на жестком диске могут возникать ошибки, которые можно разделить на две группы.? Логические ошибки, или ошибки размещения файлов. Они устраняются программами проверки диска, однако в