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


"Все, что получает победитель" Дарьи Симоновой - захватывающий триллер, который погружает читателя в мир высшего общества, где амбиции и предательство переплетаются роковым образом. Рассказ ведется от лица Кати, молодой и талантливой женщины, которая стремится подняться по карьерной лестнице в элитной корпорации. Однако ее путь к успеху оказывается усеян не только препятствиями, но и скрытыми опасностями. По мере того, как Катя продвигается по корпоративной иерархии, она...

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

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

Жанр:

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

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

неизвестно

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

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

чего проверяем его и выводим текст, зависящий от результата проверки.


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

Цикл while


Циклы while в expect очень похожи на те, что используются в обычных bash-скриптах, но, опять же, тут применяются фигурные скобки:


#!/usr/bin/expect -f

set COUNT 0

while { $COUNT <= 5 } {

puts "\nCOUNT is currently at $COUNT"

set COUNT [ expr $COUNT + 1 ]

}

puts ""

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

Цикл while в expect

Цикл for


Цикл for в expect устроен по-особому. В начале цикла, в самостоятельных парах фигурных скобок, надо указать переменную-счётчик, условие прекращения цикла и правило модификации счётчика. Затем, опять же в фигурных скобках, идёт тело цикла:


#!/usr/bin/expect -f

for {set COUNT 0} {$COUNT <= 5} {incr COUNT} {

puts "\nCOUNT is at $COUNT"

}

puts ""

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

Цикл for в expect

Объявление и использование функций


Expect позволяет программисту объявлять функции, используя ключевое слово proc:


proc myfunc { MY_COUNT } {

set MY_COUNT [expr $MY_COUNT + 1]

return "$MY_COUNT"

}

Вот как выглядит expect-скрипт, в котором используется объявленная в нём же функция:


#!/usr/bin/expect -f


proc myfunc { MY_COUNT } {

set MY_COUNT [expr $MY_COUNT + 1]

return "$MY_COUNT"

}


set COUNT 0

while {$COUNT <= 5} {

puts "\nCOUNT is currently at $COUNT"

set COUNT [myfunc $COUNT]

}

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

puts ""

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

Функции в expect

Команда interact


Случается так, что автоматизируемые с помощью expect программы требуют ввода конфиденциальных данных, вроде паролей, которые вам не хотелось бы хранить в виде обычного текста в коде скрипта. В подобной ситуации можно воспользоваться командой interact, которая позволит вам, автоматизировав некую часть взаимодействия с программой, самостоятельно ввести, скажем, пароль, а потом опять передать управление expect.


Когда выполняется эта команда, expect-скрипт переключается на чтение ответа на вопрос программы с клавиатуры, вместо того, чтобы передавать ей ранее записанные в нём данные.


Вот bash-скрипт, в общем-то, точно такой же, как мы рассматривали ранее, но теперь ожидающий ввод пароля в ответ на один из своих вопросов:


#!/bin/bash

echo "Hello, who are you?"

read $REPLY

echo "What is you password?"

read $REPLY

echo "What is your favorite topic?"

read $REPLY

Напишем expect-скрипт, который, когда ему предлагают предоставить пароль, передаёт управление нам:


#!/usr/bin/expect -f

set timeout -1

spawn ./questions

expect "Hello, who are you?\r"

send -- "Hi Im Adam\r"

expect "*password?\r"

interact ++ return

send "\r"

expect "*topic?\r"

send -- "Technology\r"

expect eof


Команда interact в expect-скрипте

Встретив команду interact, expect-скрипт остановится, предоставив нам возможность ввести пароль. После ввода пароля надо ввести «++» и expect-скрипт продолжит работу, снова получив управление.

Итоги


Возможностями expect можно пользоваться в программах, написанных на разных языках программирования благодаря соответствующим библиотекам. Среди этих языков — C#, Java, Perl, Python, Ruby, и другие. То, что expect доступен для разных сред разработки — далеко не случайность. Всё дело в том, что это действительно важный и полезный инструмент, который используют для решения множества задач. Здесь и проверка качества ПО, и выполнение различных работ по сетевому администрированию, автоматизация передачи файлов, автоматическая установка обновлений и многое другое.


Освоив этот материал, вы ознакомились с основными концепциями expect и научились пользоваться инструментом autoexpect для автоматического формирования скриптов. Теперь вы вполне можете продолжить изучение expect, воспользовавшись дополнительными источниками. Вот — сборник учебных и справочных материалов. Вот — достойная внимания серия из трёх статей (1, 2, 3). А вот — официальная страница expect, на которой можно найти ссылки на исходный код программы и список публикаций.


На этом мы завершаем серию --">

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


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