Чтение онлайн

на главную - закладки

Жанры

Искусство программирования на языке сценариев командной оболочки

Купер Мендель

Шрифт:

else

echo "Случайная строка -- это ложь."

fi # Случайная строка -- это истина.

echo

echo "Проверяется \"\$xyz\""

if [ $xyz ] # Проверка, если $xyz это null, но...

# только для неинициализированных переменных.

then

echo "Неинициализированная переменная --

это истина."

else

echo "Неинициализированная переменная -- это ложь."

fi # Неинициализированная переменная -- это ложь.

echo

echo "Проверяется \"-n \$xyz\""

if [ -n "$xyz" ] # Более корректный вариант.

then

echo "Неинициализированная переменная -- это истина."

else

echo "Неинициализированная переменная -- это ложь."

fi # Неинициализированная переменная -- это ложь.

echo

xyz= # Инициализирована пустым значением.

echo "Проверяется \"-n \$xyz\""

if [ -n "$xyz" ]

then

echo "Пустая переменная -- это истина."

else

echo "Пустая переменная -- это ложь."

fi # Пустая переменная -- это ложь.

echo

# Кргда "ложь" истинна?

echo "Проверяется \"false\""

if [ "false" ] # это обычная строка "false".

then

echo "\"false\" -- это истина." #+ и она истинна.

else

echo "\"false\" -- это ложь."

fi # "false" -- это истина.

echo

echo "Проверяется \"\$false\"" # Опять неинициализированная переменная.

if [ "$false" ]

then

echo "\"\$false\" -- это истина."

else

echo "\"\$false\" -- это ложь."

fi # "$false" -- это ложь.

# Теперь мв получили ожидаемый результат.

echo

exit 0

Упражнение. Объясните результаты, полученные

в Пример 7-1.

if [ condition-true ]

then

command 1

command 2

...

else

# Необязательная ветка (можно опустить, если в ней нет необходимости).

# Дополнительный блок кода,

# исполняемый в случае, когда результат проверки -- "ложь".

command 3

command 4

...

fi

Когда if и then располагаются в одной строке, то конструкция if должна завершаться точкой с запятой. И if, и then– - это зарезервированные слова. Зарезервированные слова начинают инструкцию, которая должна быть завершена прежде, чем в той же строке появится новая инструкция.

if [ -x "$filename" ]; then

Else if и elif

elif

elif– - это краткая форма записи конструкции else if. Применяется для построения многоярусных инструкций if/then.

if [ condition1 ]

then

command1

command2

command3

elif [ condition2 ]

# То же самое, что и else if

then

command4

command5

else

default-command

fi

Конструкция if test condition-true является точным эквивалентом конструкции if [ condition-true ], где левая квадратная скобка [ выполняет те же действия, что и команда test. Закрывающая правая квадратная скобка ] не является абсолютно необходимой, однако, более новые версии Bash требуют ее наличие.

Команда test– - это встроенная команда Bash, которая выполняет проверки файлов и производит сравнение строк. Таким образом, в Bash-скриптах, команда test не вызывает внешнюю (/usr/bin/test) утилиту, которая является частью пакета sh-utils. Аналогично, [ не производит вызов утилиты /usr/bin/[, которая является символической ссылкой на /usr/bin/test.

Поделиться:
Популярные книги

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Сумеречный стрелок

Карелин Сергей Витальевич
1. Сумеречный стрелок
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок

Ведьма и Вожак

Суббота Светлана
Фантастика:
фэнтези
7.88
рейтинг книги
Ведьма и Вожак

Темный Кластер

Кораблев Родион
Другая сторона
Фантастика:
боевая фантастика
5.00
рейтинг книги
Темный Кластер

Черный маг императора

Герда Александр
1. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

Темный Патриарх Светлого Рода 6

Лисицин Евгений
6. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 6

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Обыкновенные ведьмы средней полосы

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Обыкновенные ведьмы средней полосы

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Ненастоящий герой. Том 1

N&K@
1. Ненастоящий герой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Ненастоящий герой. Том 1

СД. Том 17

Клеванский Кирилл Сергеевич
17. Сердце дракона
Фантастика:
боевая фантастика
6.70
рейтинг книги
СД. Том 17

"Фантастика 2023-123". Компиляция. Книги 1-25

Харников Александр Петрович
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Фантастика 2023-123. Компиляция. Книги 1-25