КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Создание макросов
Цикли Простим циклом є цикл перебору for. for <ЕЛЕМЕНТ> in $<СПИСОК> do <дія> done
Циклу передається змінна із списком параметрів, розділених пробілом, знаком переходу рядка або табуляції. Далі цикл виконує дії для кожного елементу із списку, наприклад: #!/bin/bash echo "Пошук каталогів в $HOME" echo #перейдемо в домашній каталог pushd $HOME #отримаємо список файлів LIST = `ls -a $HOME` #організовуємо цикл для кожного з #значень в змінній LIST for ITEM in $LIST do #якщо входження – каталог, виведемо його на екран if [ -d $ITEM ]; then echo "$ITEM" fi done #повернемося в колишню директорію popd #вихід exit
Проте цикл перебору підходить не у всіх випадках. У багатьох випадках нам необхідний цикл з умовою. Це цикл while. while <умова> do <дії> done
Цикл while виконується до тих пір, поки правильна <умова>. Розглянемо приклад організації циклу з лічильником. Для обчислення будемо використовувати команду expr, що дозволяє виконувати математичні операції із змінними bash: #!/bin/bash #визначаємо наявність першого параметра #командного рядка if [ -z $1 ]; then echo "Використання: $0 кількість_перевірок" exit fi #очистимо екран clear #визначимо змінну лічильника циклу COUNTER=0 #організовуємо цикл на $1 ітерацій while [ $COUNTER -lt $1 ] do echo "Завантаження системи (за $1 секунд)" echo echo "секунда $COUNTER" echo "-- завантаження системи --" #команда визначення середнього завантаження /usr/bin/uptime echo "-- місце на дисках --" #визначення вільного місця на диску df -h echo "----------------" echo #пауза 1 секунду /bin/sleep 1 #очистимо екран clear #приріст змінної циклу COUNTER=`expr $COUNTER + 1` done #вихід exit Організація виведення імені програми не дуже вдало виконана в даному випадку, тому що буде виводиться не лише ім'я запущеної програми, а і шлях, набраний в командному рядку. Виправити це допоможе директива basename, що виділяє з шляху ім'я файлу. От як виглядатиме фрагмент наведеного вище сценарію з її використанням: #!/bin/bash #визначаємо наявність першого параметра #командного рядка if [ -z $1 ]; then echo Використання: `basename $0` кількість_перевірок exit fi ... Висновки В командних оболонках Linux є набори команд, за допомогою яких можна писати власні сценарії для автоматизації часто виконуваних операцій. Мова bash містить всі необхідні команди для написання сценаріїв. Крім цього в сценарії можна використовувати команди самої ОС.
Контрольні запитання і завдання для самостійного виконання 1. Як вказати оболонку для обробки сценарію? 2. Як оголошуються змінні в bash? 3. Як вивести на консоль значення змінної? 4. Як передати у сценарій параметри з командного рядка? 5. Як перевірити значення, що повертається у змінній? 6. Як перевірити, чи порожній рядок? 7. Як перевірити чи рівні два числа? 8. Як перевірити чи є вказаний файл звичайним файлом? 9. Як перевірити чи є вказаний файл виконуваним (exe-файлом)? 10. У чому різниця між циклами перебору і while?
1. Выбрать команду Разработчик (Вид)/Макросы… 2. Указать имя макроса "Расценки", нажать Enter (создать). 3. Набрать текст программы. Программа формирует столбец "Цена изделия" листа "Табель". Sub Расценки() ' ' Расценки Макрос ' i = 4 //установка начального номера строки Worksheets("Табель").Activate While Cells(i, 1) <> "" //№ п/п отличен от пустого kodf = Cells(i, 3) // чтение кода изделия факультета Worksheets("Расценки").Activate k = 4 While Cells(k, 1) <> "" // поиск расценок для факультета If Cells(k, 2) = kodf Then stf = Cells(k, 3) k = k + 1
Дата добавления: 2014-01-05; Просмотров: 295; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |