Библиотека knigago >> Компьютеры: Операционные системы >> Linux >> Bash-скрипты, руководство в 11 частях


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1098, книга: Контрольный рубеж
автор: Николай Александрович Никифоров

В своей недавней книге "Контрольный рубеж" Николай Никифоров предлагает глубокое и беспристрастное исследование острейших проблем, стоящих перед Россией сегодня. Эта книга выходит за рамки традиционной публицистики, заставляя читателя задуматься над существенными вопросами о будущем страны. Никифоров, бывший министр связи и массовых коммуникаций РФ, привносит в свое повествование уникальный взгляд инсайдера, который имел из первых рук опыт борьбы с серьезными проблемами, с которыми...

Автор неизвестен - Bash-скрипты, руководство в 11 частях

Bash-скрипты, руководство в 11 частях
Книга - Bash-скрипты, руководство в 11 частях.  Автор неизвестен  - прочитать полностью в библиотеке КнигаГо
Название:
Bash-скрипты, руководство в 11 частях
Автор неизвестен

Жанр:

Другие языки и системы программирования, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Linux

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Bash-скрипты, руководство в 11 частях"

Аннотация к этой книге отсутствует.

Читаем онлайн "Bash-скрипты, руководство в 11 частях". [Страница - 3]

команда

then

команды

fi

А вот рабочий пример:


#!/bin/bash

if pwd

then

echo "It works"

fi

В данном случае, если выполнение команды pwd завершится успешно, в консоль будет выведен текст «it works».


Воспользуемся имеющимися у нас знаниями и напишем более сложный сценарий. Скажем, надо найти некоего пользователя в /etc/passwd, и если найти его удалось, сообщить о том, что он существует.


#!/bin/bash

user=likegeeks

if grep $user /etc/passwd

then

echo "The user $user Exists"

fi

Вот что получается после запуска этого скрипта.


Книгаго: Bash-скрипты, руководство в 11 частях. Иллюстрация № 9

Поиск пользователя

Здесь мы воспользовались командой grep для поиска пользователя в файле /etc/passwd. Если команда grep вам незнакома, её описание можно найти здесь.


В этом примере, если пользователь найден, скрипт выведет соответствующее сообщение. А если найти пользователя не удалось? В данном случае скрипт просто завершит выполнение, ничего нам не сообщив. Хотелось бы, чтобы он сказал нам и об этом, поэтому усовершенствуем код.

Управляющая конструкция if-then-else


Для того, чтобы программа смогла сообщить и о результатах успешного поиска, и о неудаче, воспользуемся конструкцией if-then-else. Вот как она устроена:


if команда

then

команды

else

команды

fi

Если первая команда возвратит ноль, что означает её успешное выполнение, условие окажется истинным и выполнение не пойдёт по ветке else. В противном случае, если будет возвращено что-то, отличающееся от нуля, что будет означать неудачу, или ложный результат, будут выполнены команды, расположенные после else.


Напишем такой скрипт:


#!/bin/bash

user=anotherUser

if grep $user /etc/passwd

then

echo "The user $user Exists"

else

echo "The user $user doesn’t exist"

fi

Его исполнение пошло по ветке else.


Книгаго: Bash-скрипты, руководство в 11 частях. Иллюстрация № 10

Запуск скрипта с конструкцией if-then-else

Ну что же, продолжаем двигаться дальше и зададимся вопросом о более сложных условиях. Что если надо проверить не одно условие, а несколько? Например, если нужный пользователь найден, надо вывести одно сообщение, если выполняется ещё какое-то условие — ещё одно сообщение, и так далее. В подобной ситуации нам помогут вложенные условия. Выглядит это так:

if команда1

then

команды

elif команда2

then

команды

fi

Если первая команда вернёт ноль, что говорит о её успешном выполнении, выполнятся команды в первом блоке then, иначе, если первое условие окажется ложным, и если вторая команда вернёт ноль, выполнится второй блок кода.


#!/bin/bash

user=anotherUser

if grep $user /etc/passwd

then

echo "The user $user Exists"

elif ls /home

then

echo "The user doesn’t exist but anyway there is a directory under /home"

fi

В подобном скрипте можно, например, создавать нового пользователя с помощью команды useradd, если поиск не дал результатов, или делать ещё что-нибудь полезное.

Сравнение чисел


В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.


n1 -eq n2 Возвращает истинное значение, если n1 равно n2.

n1 -ge n2 Возвращает истинное значение, если n1 больше или равно n2.

n1 -gt n2 Возвращает истинное значение, если n1 больше n2.

n1 -le n2 Возвращает истинное значение, если n1 меньше или равно n2.

n1 -lt n2 Возвращает истинное значение, если n1 меньше n2.

n1 -ne n2 Возвращает истинное значение, если n1 не равно n2.


В качестве примера опробуем один из операторов сравнения. Обратите внимание на то, что выражение заключено в квадратные скобки.


#!/bin/bash

val1=6

if [ $val1 -gt 5 ]

then

echo "The test value $value1 is greater than 5"

else

echo "The test value $value1 is not greater than 5"

fi

Вот что выведет эта команда.


Книгаго: Bash-скрипты, руководство в 11 частях. Иллюстрация № 11

Сравнение чисел в скриптах

Значение переменной val1 больше чем 5, в итоге выполняется ветвь then оператора сравнения и в консоль выводится соответствующее сообщение.

Сравнение строк


В сценариях можно сравнивать и строковые значения. Операторы сравнения выглядят довольно просто, однако у операций сравнения строк есть определённые особенности, которых мы коснёмся ниже. Вот список операторов.


str1 = str2 Проверяет строки на равенство, возвращает истину, если строки --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.