голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Условие if-else BASH

Условие if-else применяется в скриптах BASH очень часто. Само условие имеет несколько странный вид [[ условие ]]. Обратите внимание на отступы. Без них условие работать не будет. Привожу список логических операторов для условия [[ ? ]]:

Список логических операторов, которые
используются для конструкции if-then-else-fi

операторописание
-zстрока пуста
-nстрока не пуста
=, (==)строки равны
!=строки неравны
-eqравно
-neнеравно
-lt,(< )меньше
-le,(<=)меньше или равно
-gt,(>)больше
-ge,(>=)больше или равно
!отрицание логического выражения
-a,(&&)логическое «И»
-o,(||)логическое «ИЛИ»

#!/bin/bash
if [[ $1 > 2 ]]
then
   # если соответствует условию [[ ? ]]
   echo $1" больше 2"
else
   # если не соответствует условию
   echo $1" меньше 2 или 2"
fi

Кому-то из вас покажется странным оператор равенства -eq. Попробуйте использовать привычные операторы > < =... Если не сработает такой подход, то воспользуйтесь оператором из моего списка.

Допустим у вас есть скрипт и необходима проверка пользователя. Если пользователь не root, то произойдёт остановка скрипта.


#!/bin/bash
if [ "$(whoami)" != 'root' ]; then
        echo "У вас нет прав для запуска $0."
        exit 1;
fi

Часто нужно проверять переменную на наличие значения. Если ничего в переменной нет, то можно остановить скрипт.


#!/bin/bash
if [ -n "$num" ]; then 
      "переменная что-то имеет и можно запустить другой процесс"
else
   echo "пустая переменная, останавливаем скрипт"	
   exit 0;
fi

Если переменная пустая, то её можно наполнить.


#!/bin/bash
if [ -z "$num" ]; then 
    echo "переменная пустая"
    num=1
else
   echo "num="$num
fi

Пустой переменной можно присвоить значение по умолчанию. Такая запись короче чем в предыдущем примере.


#!/bin/bash
# Записать DEFAULT, если аргументы командной строки отсутствуют
[ -z "$arg1" ] && arg1=DEFAULT 
echo $arg1
просмотры: 19555, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-02-21 09:37:47
проголосовать:

Комментарии:

добавил(а): Bolder
дата: 2019-06-29 14:18:30
Операторов >= и





поиск
реклама
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей