русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Cd dir1


Дата додавання: 2014-11-28; переглядів: 806.


Для того, щоб оформити вказані команди у вигляді сценарію, необхідно спочатку вказати назву оболонки, в рамках якої вони будуть виконані. Якщо у сценарії використовуються лише команди операційної системи, як у нашому випадку, вибір оболонки не є суттєвим. Тому виберемо найбільш поширену оболонку, яка практично завжди є в більшості дистрибутивів Linux – оболонку bash. Таким чином, першим рядком сценарію має бути такий запис:

#!/bin/bash

Цей рядок є по суті ознакою того, що даний файл відноситься до сценаріїв. А далі вже записуються команди, які мають бути виконані.

Після створення файла сценарію (наприклад, під іменем run) необхідно перевірити, чи надано право виконати цей сценарій даному користувачеві. Як правило, для того, щоб перетворити будь-який власний файл у виконуваний файл, рядовий користувач повинен надати собі таке право за допомогою команди chmod:

chmod u+x run

Далі сценарій можна запустити на виконання із командного рядка:

./run

або

bash run

Для того, щоб зробити сценарій більш універсальним (в нашому випадку – щоб сценарій був придатний для різних імен каталогів та файлів), використовуються позиційні параметри. За допомогою позиційних параметрів операційна система може передавати оболонці конкретні параметри (імена файлів, каталогів, змінних і т.д.) під час виклику сценарію у командному рядку або з іншого сценарію. Такі позиційні параметри мають спеціальні імена. Перший параметр зберігається у змінній з іменем 1(один) і отримати його значення в сценарії можна за допомогою виразу $1. Другий параметр зберігається у змінній з іменем 2(два) і т. д. Кількість одночасно використовуваних позиційних параметрів обмежена – не більше 9. Однак дозволяється за допомогою оператора

shift n

пересувати кожний позиційний параметр на n позицій вліво і відкидати n попередніх значень справа.

В нашому прикладі сценарій з використанням двох позиційних параметрів матиме вигляд:

#!/bin/bash

mkdir %1

cp %2 /home/user/%1

cd %1

Запуск на виконання цього сценарію матиме вигляд:

./run dir1 file1.txt

В оболонці можна також використовувати і власні команди оболонки. Суттєво збільшуються можливості сценаріїв при використанні спеціальних операторів, які утворюють мову програмування оболонки.

Розглянемо основні змінні та оператори мови програмування оболонки bash.

3.2 Змінні в сценаріях для bash

Мова програмування оболонки підтримує три основних типи змінних:

- змінні середовища;

- вбудовані змінні;

- змінні користувача.

Змінні середовища надаються системою, їх не потрібно визначати, але до них можна звертатись. Значення деяких із них, наприклад PATH, можна змінювати в програмі оболонки. Основні змінні середовища наведені в таблиці 3.1.

Вбудовані змінні також надаються системою, але їх не можна змінювати. До цих змінних відносяться, зокрема, такі:

$# - ряд позиційних параметрів, які передаються сценарію оболонки;

$0 - ім’я сценарію;

$* - рядок зі всіма параметрами, які передаються сценарію оболонки під час його виклику.

 

Таблиця 3.1 – Змінні середовища

Змінна середовища Значення
EDITOR Редактор, який викликається за замовчуванням
HOME Домашній каталог користувача
LOGNAME Імя, під яким користувач зареєстру-вався в системі
MAIL Шлях до поштової скриньки (файла e_mail) користувача
PATH Список каталогів, що перегляда-ються системою при пошуку команди
PS1 Початкове запрошення оболонки ($ - для рядового користувача, # - для суперкористувача)
SHELL Місцезнаходження оболонки
TERM Тип термінала користувача

 

Змінні користувача визначаються самим користувачем під час написання сценарію оболонки. В своєму власному сценарії користувач може довільно використовувати та змінювати їх. На відміну від звичайних універсальних мов програмування, в командних інтерпретаторах не визначається тип змінної (як, наприклад, в мові Сі – int). Система самостійно “здогадується” про тип змінної за тим значенням, яке їй присвоюється. Це легко зробити, оскільки в сценарії можна оперувати тільки цілими числами або текстовими рядками. В такому випадку одна і та ж змінна в один момент часу може слугувати для збереження цілого числа, а через деякий час – для збереження рядка. Однак це не рекомендується робити.

Для присвоєння змінній користувача цілого значення або одного текстового слова досить записати оператор присвоєння в загальноприйнятій формі, наприклад

n=5

mas=0

str1=process

Характерною особливістю сценаріїв є те, що для доступу до значення змінної, перед її іменем ставиться знак долара ($). Наприклад, для того, щоб змінній m присвоїти значення змінної n необхідно записати

m=$n

Якщо текстовий рядок складається з кількох слів, тобто містить пропуски, тоді використовуються лапки, наприклад

str2=’long text string’

Для присвоєння текстових рядків використовуються також і подвійні лапки. В цьому випадку забезпечується підстановка значень змінних всередині рядків. Наприклад, якщо записати

str2=”long text string”

str3=”Value of str2 is $str2”

тоді значенням змінної str3 буде

Value of str2 is long text string


<== попередня лекція | наступна лекція ==>
Порядок виконання роботи | Оператор-перемикач


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн