- Как определить, пуста ли переменная bash?
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- 🐧 Проверка, содержит ли переменная число на Bash
- Использование оператора равно тильда (=~)
- Проверка наличия числа с плавающей точкой
- Использование оператора Switch Case
- Проверка наличия в числе знаков +/-
- Проверим, является ли число положительным или отрицательным
- Заключение
- You may also like
- 📜 Преобразование символов в нижний регистр на Bash.
- ⏲️ Дата в формате ГГГГ-ММ-ДД в скриптах Shell
- Как определить, когда служба была запущена и остановлена.
- 📜 Shell скрипт для вывода пирамиды звезд
- 🌐 Shell/Bash скрипт для поиска простых чисел на.
- 🐍 Как создать игру “Змейка” на языке Python
- 🐧 Как распарсить логи истории apt
- 🐍 Как поменять местами две переменные в Python?
- 📜 Shell скрипты – удаление двойных кавычек (“”).
- 🐧 Как обнаружить внутри Bash скрипта путь, по.
- Leave a Comment Cancel Reply
- • Свежие записи
- • Категории
- • Теги
- • itsecforu.ru
- • Страны посетителей
- IT is good
Как определить, пуста ли переменная bash?
Как лучше всего определить, пуста ли переменная в bash («»)?
Я слышал, что рекомендуется делать if [ «x$variable» = «x» ].
Это правильный способ? (должно же быть что-то более простое).
Ответ 1
Это вернет true, если переменная не установлена или установлена в пустую строку («»).
if [ -z «$» ];
Ответ 2
В Bash, когда вы не заботитесь о переносимости для оболочки, которые его не поддерживают, вы всегда должны использовать синтаксис двойных скобок:
Например:
if [[ -z $variable ]]
if [[ -z «$variable» ]]
if [[ ! $variable ]]
if [[ ! «$variable» ]]
При использовании двойных квадратных скобок кавычки не нужны. Тест для переменной, которая содержит значение, можно упростить:
if [[ $variable ]]
Этот синтаксис совместим с ksh (по крайней мере, с ksh93). Он не работает в чистом POSIX или старых оболочках Bourne, таких как sh или dash.
Также можно проверить, не установлена ли конкретная переменная:
if [[ -z $ ]]
где «х» произвольное значение.
Если вы хотите узнать, является ли переменная нулевой, и не отключенной:
if [[ -z $variable && $ ]]
Ответ 3
Ответ 4
-z это лучший способ.
Еще один вариант, который я использовал, — это установить переменную и переопределить другой переменной, например
export PORT=$
Если $MY_PORT переменная пуста, в PORT устанавливается значение 5432, в противном случае для PORT устанавливается значение MY_PORT. Обратите внимание, что синтаксис включает двоеточие и тире.
Ответ 5
Если вас интересует различие между состояниями set-empty и unset, смотрите на параметр -u для bash:
$ set -u
$ echo $BAR
bash: BAR: unbound variable
$ [ -z «$BAR» ] && echo true
bash: BAR: unbound variable
$ BAR=»»
$ echo $BAR
$ [ -z «$BAR» ] && echo true
true
Ответ 6
Альтернатива, которую я видел – это [ -z «$foo» ].Однако я не уверен, почему люди используют этот метод, кто-нибудь знает?
[ «x$» = «x» ]
В любом случае, если вы запрещаете неустановленные переменные (с помощью set –u или set -o nounset), у вас возникнут проблемы с обоими этими методами. Для этого есть простое решение:
[ -z «$» ]
Примечание: это оставит вашу переменную undef.
Ответ 7
- «» (пустая строка)
- 0 (0 как целое число)
- 0,0 (0 в виде числа с плавающей запятой)
- «0» (0 в виде строки)
- пустой массив
- объявленна, но без значения
Ответ 8
Мои 5 центов: есть более короткий синтаксис, чем if .
VALUE=»$»
В этой строке будет установлено ЗНАЧЕНИЕ, если был предоставлен аргумент, и будет напечатано сообщение об ошибке с добавлением номера строки сценария (завершится выполнение сценария).
Ответ 9
Предпочитаю более понятный способ проверки:
if [ «$» == «» ]; then
echo VARIABLE is empty
else
echo VARIABLE is not empty
fi
Ответ 10
Не совсем точный ответ, но я столкнулся с этим приемом. Если искомая строка приходит от «команды», то вы можете сохранить команду в переменной env. и затем выполнять ее каждый раз для оператора if, тогда скобки не нужны!
Например, эта команда, которая определяет, находитесь ли вы в debian:
grep debian /proc/version
Полный пример:
IS_DEBIAN=»grep -i debian /proc/version»
if $IS_DEBIAN; then
echo ‘yes debian’
else
echo ‘non debian’
fi
Таким образом, это косвенный способ, который проверяет на пустую строку (проверяет ответ команды на ошибку, и может вернуть пустую строку).
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
🐧 Проверка, содержит ли переменная число на Bash
Даже если хранимое значение находится в формате строки, мы можем выполнить все арифметические операции, если хранимое значение является правильным числом.
В качестве лучшей практики, мы должны проверять значения переменных перед выполнением арифметических операций.
Число может быть целым числом, числом с плавающей точкой или положительным/отрицательным числом с префиксом в виде символов “+ и -“.
В этом руководстве мы рассмотрим несколько методов проверки того, что переменная содержит только цифры, целые числа, двойные или плавающие значения, а не буквы.
Использование оператора равно тильда (=~)
Регулярное выражение – это быстрый и простой способ проверки, является ли значение числом.
В скриптах Bash оператор равно тильда (=~) используется для сравнения значения с регулярным выражением.
Его можно использовать с оператором bash if:
#!/usr/bin/env bash # Shell script to check if the input number is an integer read -p "Please enter a number: " VAR if [[ $VAR =~ ^[0-9]+$ ]]; then echo "$ is a number" else echo "$ is not a number" fi
Запишите вышеприведенный фрагмент в скрипте и выполните его.
Please enter a number: 12 12 is a number
Снова запустите скрипт, введите буквы и проверьте результат:
Please enter a number: 1a2b 12a is not a number
Проверка наличия числа с плавающей точкой
Число с плавающей точкой – это целочисленный тип, представляющий число, которое может содержать дробную часть (также известную как плавающая точка).
Как следует из названия, эти числа могут принимать разные значения в разных местах и в разное время.
Числа с плавающей точкой обычно используются для представления чисел с десятичной точкой.
Например, 1.0, 0.6 и 10.26 – все это числа с плавающей точкой.
Напишем новый скрипт, который считает число с плавающей точкой действительным числом.
#!/usr/bin/env bash read -p "Please enter a number: " VAR if [[ $VAR =~ ^[0-9]+([.][0-9]+)?$ ]]; then echo "$ is a number" else echo "$ is not a number" fi
Выполните описанный выше скрипт, введя некоторые числа с плавающей точкой.
Этот скрипт будет рассматривать все числа с плавающей точкой как действительные числа.
Please enter a number: 12.10 12.10 is a number
Использование оператора Switch Case
Некоторые скрипты требуют наличия оператора case.
Он похож на операторы switch в других языках программирования.
Мы также можем использовать регулярные выражения в параметрах оператора case и проверить, является ли заданный ввод числом.
#!/usr/bin/env bash # Shell script to check if the input number is a number # using switch case statement read -p "Please enter a number: " VAR case $VARin ''|*[!0-9]*) echo "$ is not a number" ;; *) echo "$ is a number" ;; esac
Выполните приведенный выше скрипт несколько раз с разными входными данными и посмотрите результаты:
Please enter a number: 12 12 is a number
Проверка наличия в числе знаков +/-
В приведенных выше методах мы проверили целочисленные значения, которые содержат только цифры 0-9, а также числа с плавающей запятой, которые также содержат дробные значения, известные как десятичные числа.
В некоторых случаях число также может быть положительным или отрицательным.
Любое число без префикса или с префиксом + является положительным числом.
Число с префиксом – является отрицательным числом.
Обновите регулярное выражение, чтобы учитывать число, перед которым стоит знак +/-.
#!/usr/bin/env bash read -p "Please enter a number: " VAR if [[ $VAR =~ ^[+-]?6+$ ]]; then echo "$ is a number" else echo "$ is not a number" fi
Запустите вышеприведенный скрипт с двумя различными входными данными и проверьте результаты.
Please enter a number: 12 12 is a number
Please enter a number: -12 -12 is a number
Please enter a number: +12 +12 is a number
Проверим, является ли число положительным или отрицательным
При выполнении арифметических операций в скриптах bash необходимо проверять вводимые значения. Приведенный ниже скрипт поможет вам проверить, является ли введенное число положительным или отрицательным.
#!/usr/bin/env bash read -p "Please enter a number: " VAR if [[ $VAR =~ ^[+,-]?3+$ ]]; then ## Check if the input is a positive or negative number if [[ $VAR =~ ^[-]8+$ ]]; then echo "$ is a negative number" else echo "$ is a positive number" fi else echo "$ is not a number" fi
Запустите приведенный выше скрипт с положительными и отрицательными числами.
Затем проверьте результаты.
Please enter a number: 12 12 is a positive number
Please enter a number: -12 -12 is a negative number
Please enter a number: +12 +12 is a positive number
Заключение
Число – это набор цифр от 0 до 9.
Любое число может быть положительным или отрицательным.
Число может быть целым или числом с плавающей запятой.
itisgood
📦 Проверка зависимостей пакетов RPM на Rhel/Centos/Rocky Linux/AlmaLinux
🦀 CodeLobster IDE – бесплатный PHP, HTML, CSS, JavaScript редактор
You may also like
📜 Преобразование символов в нижний регистр на Bash.
⏲️ Дата в формате ГГГГ-ММ-ДД в скриптах Shell
Как определить, когда служба была запущена и остановлена.
📜 Shell скрипт для вывода пирамиды звезд
🌐 Shell/Bash скрипт для поиска простых чисел на.
🐍 Как создать игру “Змейка” на языке Python
🐧 Как распарсить логи истории apt
🐍 Как поменять местами две переменные в Python?
📜 Shell скрипты – удаление двойных кавычек (“”).
🐧 Как обнаружить внутри Bash скрипта путь, по.
Leave a Comment Cancel Reply
• Свежие записи
• Категории
• Теги
• itsecforu.ru
• Страны посетителей
IT is good
В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…
В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…
Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…
Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно. В этом руководстве я расскажу о нескольких способах…
Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…