- 7.3. Операции сравнения
- Операторы сравнения в UNIX shell
- Сравнение чисел
- Пример использования в IF
- Сравнение строк
- Пример использования в IF
- Несколько условий (логические операторы)
- Дополнительно
- Как написать IF в одну строку
- Арифметические операции
- Ошибка «Integer expression expected»
- Как сравнивать числа в оболочке Bash в Linux
- Операторы для Баш сравнения чисел
- Примеры в деталях операторов сравнения числа в Bash:
- 1. оператор -eq
- 2. оператор -ge
- 3. оператор -gt
- 4. оператор -le
- 5. оператор -lt
- 6. оператор -ne
- Сравнение дистрибутивов Linux
- Содержание
- Основные данные
- Технические данные
- Особенности
7.3. Операции сравнения
сравнение целых чисел
if [ «$a» -eq «$b» ]
if [ «$a» -ne «$b» ]
if [ «$a» -gt «$b» ]
больше или равно
if [ «$a» -ge «$b» ]
if [ «$a» -lt «$b» ]
меньше или равно
if [ «$a» -le «$b» ]
меньше или равно (внутри двойных круглых скобок)
больше (внутри двойных круглых скобок)
больше или равно (внутри двойных круглых скобок)
сравнение строк
if [ «$a» = «$b» ]
if [ «$a» == «$b» ]
if [ «$a» != «$b» ]
Этот оператор используется при поиске по шаблону внутри [[ . ]].
меньше, в смысле величины ASCII-кодов
if [[ «$a» if [ «$a» \ » необходимо экранировать внутри [ ].
больше, в смысле величины ASCII-кодов
if [[ «$a» > «$b» ]]
if [ «$a» \> «$b» ]
Обратите внимание! Символ «>» необходимо экранировать внутри [ ].
См. Пример 25-6 относительно применения этого оператора сравнения.
строка «пустая» , т.е. имеет нулевую длину
строка не «пустая» .
Оператор | Описание | Пример |
---|---|---|
-eq | [ $x -eq $y ] Равно. Для результат True необходимо, чтобы x был равен y. | [ 1 -eq 2 ] — False [ 3 -eq 3 ] — True |
-ne | [ $x -ne $y ] Не равно. Оператор обратный -eq. | [ 1 -ne 2 ] — True [ 3 -ne 3 ] — False |
-gt | [ $x -gt $y ] Больше. То есть проверяет больше ли x чем y. | [ 1 -gt 2 ] — False [ 3 -gt 3 ] — False [ 5 -gt 4 ] — True |
-lt | [ $x -lt $y ] Меньше. Проверяет, что число в левой части (x) меньше числа в правой (y) | [ 1 -lt 2 ] — True [ 3 -lt 3 ] — False [ 5 -lt 4 ] — False |
-ge | [ $x -ge $y ] Больше или равно. | [ 1 -ge 2 ] — False [ 3 -ge 3 ] — True [ 5 -ge 4 ] — True |
-le | [ $x -le $y ] Меньше или равно. | [ 1 -le 2 ] — True [ 3 -le 3 ] — True [ 5 -le 4 ] — False |
Пример использования в IF
if [ $x -eq $y ]
then
echo ‘true’
else
echo ‘false’
fi
Сравнение строк
Оператор | Описание | Пример |
---|---|---|
= | [ «$a» = «$b» ] Равно. То есть строка a равна строке b. | [ ‘linux’ = ‘windows’ ] — False [ ‘unix’ = ‘unix’ ] — True |
!= | [ «$a» != «$b» ] Не равно. Оператор обратный =. | [ ‘linux’ != ‘windows’ ] — True [ ‘unix’ != ‘unix’ ] — False |
= |
$b ]] Содержит.
То есть в строке a есть b.
Обратите внимание, что для данного оператора используются двойные квадратные скобки.
‘windows’ ]] — False
[[ ‘unix’ =
‘ni’ ]] — True
Оператор проверяет, является ли строка b с нулевым размером.
[ -z » ] — True
Оператор обратный -z.
[ -n » ] — False
Оператор проверяет, является ли строка b не пустой.
[ » ] — False
Оператор проверяет, существует ли файл $file.
[ -f » ] — False
Пример использования в IF
if [ «$a» = «$b» ]
then
echo ‘true’
elif [[ «$a» =
$b ]]
then
echo ‘true’
else
echo ‘false’
fi
Несколько условий (логические операторы)
Оператор | Описание | Пример |
---|---|---|
-a | [ $x -eq $y -a $z -le $w ] Логическое И. В данном примере, проверяет, что (x равно y) И (z меньше или равно w) | [ 1 -eq 2 -a 3 -le 4 ] — False [ 5 -eq 5 -a 3 -le 4 ] — True [ 5 -eq 5 -a 6 -le 4 ] — False |
-o | [ $x -ne $y -o $z -ge $w ] Логическое ИЛИ. В данном примере, проверяет, что (x не равно y) ИЛИ (z больше или равно w) | [ 1 -eq 2 -o 3 -le 4 ] — True [ 5 -eq 5 -o 3 -le 4 ] — True [ 5 -eq 5 -o 6 -le 4 ] — True [ 1 -eq 2 -o 6 -le 4 ] — False |
Дополнительно
Как написать IF в одну строку
if [ $x -ne 0 ]; then echo 1; fi
if [ $x -ne 0 -a $y -eq 1 ]; then echo 1; else echo 2; fi
Арифметические операции
Расчет можно выполнить одним из следующих методов:
sum=$(( $sum1 + $sum2 + $sum3 ))
sum=`expr $sum1 + $sum2 + $sum3`
* где операции могут быть следующие:
- + — сложение;
- — — вычитание;
- * — умножение;
- / — деление;
- % — остаток от деления;
- = — приравнивание.
Ошибка «Integer expression expected»
Чаще всего, возникает при попытках использовать не тот оператор, например для строки -le (который должен использоваться для числа).
Примеры неправильного использования операторов:
Источник
Как сравнивать числа в оболочке Bash в Linux
Главное меню » Операционная система Linux » Как сравнивать числа в оболочке Bash в Linux
Операторы для Баш сравнения чисел
оператор | что делает | пример |
---|---|---|
-eq | сравнить цифры в bash для равенства, возвращает 0, если равно | if [ $a -eq $b ] then |
-ge | сравнения чисел в bash, если больше или равно. Результат возвращает 0, если больше или равно | if [ $a -ge $b ] then |
-gt | сравнивает числа в bash, если больше. | if [ $a -gt $b ] then |
-le | сравнивает числа в bash, если меньше или равно. | if [ $a -le $b ] then |
-lt | сравнивает числа в bash, если меньше. | if [ $a -lt $b ] then |
-ne | сравнивает числа в bash, если не равно или нет. | if [ $a -ne $b ] then |
Примеры в деталях операторов сравнения числа в Bash:
1. оператор -eq
Этот оператор сравнивает числа, будет проверять значение равно или нет. Если оно равно, то возвращается 0.
В приведенном выше примере мы взяли числа 2 и 3 в первый раз и система возвратила значение 1, однако, когда мы приняли одинаковые значения для а и б, переменная возвращает нулевое значение.
2. оператор -ge
Этот оператор сравнивает числа и проверяет значения на больше или равно. Если значение больше или равно, то он возвращаемое значение 0.
3. оператор -gt
Этот оператор сравнения чисел будет проверять число на большее. Если значение больше, то возвращает 0.
4. оператор -le
Этот оператор сравнения числа будет проверять значения на меньше или равно. Если оно меньше или равно, то возвращаемое значение 0.
5. оператор -lt
Этот оператор сравнения числа будет проверять значения на меньшее. Если число меньше, то возвращаемое значение 0.
6. оператор -ne
Этот оператор сравнения числа будет проверять значения на не равно. Если числа не равны, то возвращаемое значение равно 0.
Источник
Сравнение дистрибутивов Linux
- Проставив сноски, внести более точные указания на источники.
Эти таблицы сравнивают общую и техническую информацию о некоторых дистрибутивах операционной системы Linux. Они не включают в себя субъективные точки зрения на достоинства каждой операционной системы.
Содержание
Основные данные
Базовая общая информация о дистрибутивах: создатель/компания, лицензия/цена и т. д.
Создатель | Производитель | Дата первого публичного выпуска | Предшественник | Последняя стабильная версия | Цена (доллары США) | Лицензия | Целевая аудитория | Страна происхождения | |
---|---|---|---|---|---|---|---|---|---|
64 Studio | 64 Studio Ltd. | Май 2005 | Debian | 2.1 | Бесплатно | GPL | Мультимедиа | Великобритания | |
ALT Linux | ALT Linux Team | Март 2001 | нет (до v3.0 2005 года Mandrake Linux) | 6.0 | Бесплатно (Download edition) или от 10 долларов США (Desktop edition) | GPL | Настольные ПК, рабочие станции, серверы, суперкомпьютер 1 , разработчики, энтузиасты, школьные компьютеры | Россия | |
Arch Linux | Джадд Винет | команда разработчиков | Март 2002 | CRUX исключительно в идейном плане | 2011.08.19 | Бесплатно | GPL | Общее применение | Канада |
ASPLinux | ASPLinux | Март 2001 | Fedora, Red Hat Linux, Black Cat Linux | 14 | Бесплатно, кроме сервера, или $5-$50 (для образовательных учреждений — скидка 50 %) | GPL | Настольные ПК, рабочие станции, серверы (платно), энтузиасты | Россия | |
Debian | Ян Мердок | Проект Debian | Август 1993 | нет | 6.0 (squeeze) | Бесплатно | любая свободная по DFSG | Настольные ПК, рабочие станции, серверы | США |
Fedora | Fedora Project | Ноябрь 2003 | Red Hat Linux | 17 | Бесплатно | GPL | Настольные ПК, рабочие станции, серверы, энтузиасты | США | |
Gentoo | Дэниэл Роббинс | Gentoo Foundation, Inc. | 5 Октября 1999 | нет | Еженедельно | Бесплатно | GPL | Настольные ПК, рабочие станции, серверы, энтузиасты | США |
Knoppix | Клаус Кноппер | команда разработчиков | ? | Debian | 6.4.4 | Бесплатно | GPL | Настольные ПК, рабочие станции, пользователи Windows | Германия |
LinuxWizard | Wizardsoft | Ноябрь 2009 | CentOS | 2.0.11 | от $50 | Проприетарная | Рабочие станции, серверы | Россия | |
Mandriva | Mandrakesoft S.A. | Mandriva S.A. | Июль 1998 | Red Hat | Mandriva 2010.1 | Бесплатно (Download edition), $59 (Powerpack) или $69 на Flash-диске. | GPL | Настольные ПК, рабочие станции, серверы | Франция |
MEPIS | Warren Woodford | MEPIS LLC. | Сентябрь 2003 | Ubuntu | SimplyMEPIS 8.0 | Бесплатно (Download edition) | GPL | Настольные ПК, рабочие станции, серверы | США |
Наулинукс | ЛИНУКС ИНК | Октябрь 2007 | Scientific Linux | 6.1 | Бесплатно (Download edition) | GPL | Настольные ПК, рабочие станции, серверы, разработчики, энтузиасты | Россия | |
Slackware | Патрик Фолькердинг | команда разработчиков | Июль 1993 | SLS | 13.37 | Бесплатно | GPL | Настольные ПК, рабочие станции, серверы, энтузиасты | США |
SLED / SLES | S.u.S.E. LLC | Novell, Inc. | Март 1994 | Jurix, SuSE | 11.2 | $79.95 (Professional), доступен для бесплатного скачивания | GPL | Настольные ПК, рабочие станции, серверы, энтузиасты | Германия |
Ubuntu | Canonical Ltd. | Октябрь 2004 | Debian | 12.10 | Бесплатно | GPL | Настольные ПК, рабочие станции, серверы | Остров Мэн | |
Xandros Desktop OS | Xandros Corp. | Xandros Inc. | Октябрь 2002 | Corel | 4.0 | $40-$80 или бесплатно (Open Circulation Edition). | Проприетарная | Рабочие станции, серверы | Канада |
Создатель | Производитель | Дата первого публичного выпуска | Предшественник | Последняя стабильная версия | Цена (доллары США) | Лицензия | Целевая аудитория | Страна происхождения |
Технические данные
Информация о технических аспектах дистрибутивов.
Ядро Linux по умолчанию | Расширение безопасности | Файловая система по умолчанию | Поддерживаемые другие основные файловые системы | Архитектурная поддержка (первая, основная платформа) | Инструмент для обновления ОС по умолчанию | Управление пакетами по умолчанию/ Инструмент для установки ПО | Главный API и язык для приложений GUI | Главный API и язык для текстовых /CLI приложений | Система инициализации | |
---|---|---|---|---|---|---|---|---|---|---|
ALT Linux | 3.0.4 | SELinux | ext4 | BtrFS, ext2, ext3, ext4, FAT, ISO9660, JFS, NFS, NILFS, NTFS, ReiserFS, UDF, XFS | x86 (i586), AMD64, ARM | APT | RPM, APT | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | |
Arch Linux | 3.0 | SELinux | задается вручную | ext2, ext3, ext4, FAT, ISO9660, JFS, NFS, NTFS, ReiserFS, UDF, XFS | x86 (i686), AMD64 | pacman | pacman, ABS (Arch Build System) | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | Systemd |
ASPLinux | 2.6.17 | ext3 | ext2, FAT, ISO9660, JFS, NFS, NTFS, ReiserFS, UDF, XFS | x86 (i586), AMD64, PPC | yum | RPM, pirut | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | ||
Debian | 2.6.32 | SELinux | ext3 | ext2, FAT, ISO9660, JFS, NFS, NTFS, ReiserFS, UDF, XFS | x86, 68k, Alpha, AMD64, ARM, IA-64, Mac/VME, MIPS, PA-RISC, PPC, SPARC, SPARC64, S/390 | APT | dpkg, Synaptic, aptitude и APT | Различные (не по умолчанию) | pre-LSB с C, и др. (POSIX-совместимые) | System V-style |
Fedora | 2.6.38 | SELinux | ext4 | ext2, FAT, ISO9660, NFS, ReiserFS, UDF | x86 (i386), AMD64, PPC | up2date, yum, APT (limited) | RPM, yum | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | Upstart |
Gentoo | latest | задается вручную | ext2, ext3, ext4, FAT, ISO9660, JFS, NFS, NTFS, ReiserFS Reiser4, UDF, XFS | x86, Alpha, AMD64, ARM, IA-64, MIPS, PA-RISC, PPC, PPC64, SPARC, SPARC64, SuperH, S/390, 68k | emerge | Portage | Различные (не по умолчанию) | pre-LSB c C, Python, и др. (POSIX-совместимые) | ||
Knoppix | 2.6.37 | Squashfs (англ.) | ? | x86 | APT | dpkg and APT | Различные (не по умолчанию) | ? | ||
LinuxWizard | 2.6.32 | SELinux | ext4 | ext2, ext3, JFS,FAT, NTFS, ReiserFS, XFS | x86 (i586) | APT | dpkg, APT, KPackageKit | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | Upstart |
Mandriva | 2.6.33 | ext3 | ext2, FAT, ISO9660, JFS, NFS, NTFS, ReiserFS, UDF, XFS | x86 (i586), AMD64, PPC | urpmi | RpmDrake, urpmi | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | ||
MEPIS | 2.6.10 | ReiserFS/ext3 | ext2, FAT, ISO9660, JFS, NFS, NTFS, UDF, XFS | x86 (i586) | APT | dpkg and APT | Различные (не по умолчанию) | LSB with C, и др. (POSIX-совместимые) | ||
НауЛинукс | 2.6.32 | ext4 | ext2, ext3, ext4, FAT, ISO9660, NFS, NTFS, OpenAFS, UDF, XFS | x86 | Yum | RPM, Yum | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | ||
Slackware | 2.6.37.6 | ReiserFS, ext4/ext3/ext2 | FAT, ISO9660, JFS, NFS, NTFS, XFS, UDF | x86, AMD64, ARM, S/390 | Swaret, Slapt-get, many other not official | pkgtool, installpkg, upgradepkg | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | ||
openSUSE | 2.6.34 | AppArmor | ext4/ext3 | ext2, ext3, ext4 FAT, ISO9660, JFS (RO), NFS, NTFS, Reiser4, ReiserFS, UDF, XFS, BtrFS | x86, AMD64, IA-64, PPC | YaST2 | RPM, YaST, zypper | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | |
Ubuntu | 3.2.0.23 | SELinux / AppArmor | ext4 | ext2, ext3, JFS,FAT, NTFS, ReiserFS, XFS | x86, AMD64, PPC | Ubuntu Update Manager (APT) | Synaptic Package Manager, dpkg, APT, PackageKit (KPackageKit), Adept package manager для Kubuntu | Различные (не по умолчанию) | LSB с C, и др. (POSIX-совместимые) | Upstart |
Xandros Desktop OS | 2.6.15 | ReiserFS | ext2, ext3, FAT, ISO 9660, JFS, NFS, NTFS, UDF, XFS, | x86 | Xandros Networks (APT) | Xandros Networks (APT) | Qt | Probably same as Debian | ||
Ядро Linux по умолчанию | Расширение безопасности | Файловая система по умолчанию | Поддерживаемые другие основные файловые системы | Архитектурная поддержка (первая, основная платформа) | Инструмент для обновления ОС по умолчанию | Управление пакетами по умолчанию/ Инструмент для установки ПО | Главный API и язык для приложений GUI | Главный API и язык для текстовых /CLI приложений |
Особенности
Информация об особенностях дистрибутивов.
Количество пакетов | Процедура инсталляции использует GUI? | Проводник(и) по файловой системе по умолчанию | Окружение рабочего стола по умолчанию | Оконный менеджер по умолчанию | Стиль GUI по умолчанию | Офисный пакет по умолчанию | |
---|---|---|---|---|---|---|---|
ALT Linux | около 7700 исходных и 11300 1 /14500 бинарных | да | Dolphin | KDE | KWin | тема Plastik | LibreOffice |
Arch Linux | около 4300 (без учета AUR) | нет (ncurses) | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) |
ASPLinux | около 1200 | да | Nautilus | GNOME | Metacity | тема Polycarbonat для GNOME тема Plastik для KDE | OpenOffice.org |
Debian | Более 29 000 | да | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) | OpenOffice.org |
Fedora | около 24000 | да | Nautilus | GNOME | Metacity | тема ClearLooks для GNOME тема Oxygen для KDE | LibreOffice/KOffice/GNOME Office |
Gentoo | около 20000 | нет (установка с помощью стадий) | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) |
Knoppix | CD: около 1000 DVD: около 2600 | нет | нет (по выбору) | KDE | KWin | Keramik | OpenOffice.org/KOffice/GNOME Office |
LinuxWizard | DVD: 1046 и > 3200 в репозиториях | да | Konqueror (KDE3), Dolphin (KDE4) | KDE | KWin | тема Keramic (KDE3), тема Oxygen (KDE4) | OpenOffice.org |
Mandriva | около 8500 1 | да | Dolphin | KDE | KWin | тема Mandrakegalaxy, версия 2007 и позже — Ia Ora | OpenOffice.org |
MEPIS | ? | да | Konqueror | KDE | KWin | тема Polyester | OpenOffice.org |
НауЛинукс | более 3200 пакетов и более 9000 пакетов на внешних репозиториях | да | Nautilus, Konqueror | GNOME, KDE | Metacity, KWin | тема BlueCurve | OpenOffice.org/KOffice/GNOME Office |
Slackware | ? | нет (ncurses) | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) | нет (по выбору) |
openSUSE | 14650 | да | нет (по выбору) | нет (по выбору) | нет (по выбору) | тема SuSE | LibreOffice/KOffice/GNOME Office |
Ubuntu | 3180 по умолчанию 2 , максимально около 20000 | да | Nautilus | GNOME/Unity | Metacity | тема Ambiance | LibreOffice |
Kubuntu | 3180 по умолчанию 2 , максимально около 20000 | да | Konqueror (KDE3), Dolphin (KDE4) | KDE | KWin | тема Oxygen (KDE4) | OpenOffice.org/KOffice |
Xandros Desktop OS | ? | да | Xandros File Manager | KDE | KWin | Xandros’ | OpenOffice.org/KOffice |
Количество пакетов | Процедура инсталляции использует GUI? | Проводник(и) по файловой системе по умолчанию | Окружение рабочего стола по умолчанию | Оконный менеджер по умолчанию | Стиль GUI по умолчанию | Офисный пакет по умолчанию |
Замечание (1): Без библиотек и пакетов для разработчиков.
Замечание (2): По умолчанию включены главный и ограниченный репозитории. Могут быть добавлены репозиторий поддерживаемый сообществом и репозиторий проприетарного ПО.
Источник