3 Програмування арифметичних виразів

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

+ сума,

- різниця,

* множення,

/ ділення,

% ділення з остачею.

Арифметичні вирази можна записати двома способами:

а) з використанням оператора let;

б) з використанням оператора expr.

Перший спосіб найбільш простий і зрозумілий, наприклад:

let y=$a*$b-$c

Оператор expr розглядає свої аргументи як арифметичний або логічний вираз. В такому випадку потрібно враховувати деякі додаткові особливості такого запису, наприклад, символи арифметичних операцій відділяти від операндів пропуском, символ операції множення а також і весь вираз брати в лапки:

y=’expr $a ‘*’ $b ‘+’ $c’

4 Оператори введення і виведення

Для введення змінних з клавіатури використовується оператор read. Наприклад, для введення змінних var, var2, var3 в сценарії необхідно записати:

read var1 var2 var3

Для виведення повідомлень на екран дисплея використовується оператор echo. Наприклад,

echo This is message

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

echo “result is $y”

Користуючись операторами введення та виведення можна написати найпростіший сценарій для обчислення арифметичних виразів:

#! /bin/bash

a=3

b=5

echo “Введіть значення змінної x”

read x

let y=($a+$b) *$x

echo “result is $y”

5 Порівняння виразів

Розглянемо порівняння чисел, рядків а також логічні і файлові операції порівняння.

5.1 Порівняння чисел

Для порівняння двох чисел можуть використовуватись такі операції:

a –eq b визначення рівності чисел a і b;

a –ne b визначення нерівності чисел a і b;

a –gt b визначення того, чи число a більше числа b;

a –ge b визначення того, чи число a більше або дорівнює числу b;

a –lt b визначення того, чи число a менше числа b;

a –le b визначення того, чи число a менше або дорівнює числу b.

5.2 Порівняння рядків

Для порівняння двох рядків можуть використовуватись такі операції:

str1 = str2 визначення рівності рядків str1 і str2;

str1! = str2 визначення нерівності рядків str1 і str2;

-n перевірка ненульової довжини рядка;

-z перевірка нульової довжини рядка.

5.3 Логічне порівняння

Логічні операції використовуються для порівняння виразів логічних операцій NOT, AND і OR:

! логічна операція NOT над логічним виразом;

-a логічна операція AND над двома логічними виразами;

-o логічна операція OR над двома логічними виразами.

5.4 Файлові операції порівняння

Такі операції можуть використовуватись для перевірки файлів:

-d перевірка того, чи є файл каталогом;

-f перевірка того, чи є файл звичайним файлом;

-r перевірка того, чи є право доступу для читання файла;

-w перевірка того, чи є право доступу для запису у файл;

-x перевірка того, чи є право доступу для виконання файла;

-s перевірка того, чи є файл з ненульовою довжиною.

6 Умовні оператори

Умовний оператор if дозволяє в залежності від виконання заданої умови <виразу> виконувати <оператори 1> або <оператори 2>. Формат цього оператора такий:

if <вираз>

then <оператори 1>

else <оператори 2>

fi

Умовні оператори можуть бути вкладеними, наприклад:

if <вираз 1>

then <оператори 1>

else if <вираз 2>

then <оператори 2>

else <оператори 3 >

fi

fi

Ключове слово fi означає закінчення одного умовного оператора, тому їх кількість у вкладеному умовному операторі повинна дорівнювати кількості ключових слів if. Існує також форма скороченого запису вкладеного умовного оператора, коли достатньо лише одного ключового слова fi:

if <вираз 1>

then <оператори 1>

elif <вираз 2>

then <оператори 2>

else <оператори 3>

fi

7 Оператор-перемикач

Існує спеціальний оператор, який зручно використовувати при великій кількості розгалужень. Оформити такий запис дозволяє оператор case, формат якого такий:

case var in

S1) <оператори 1>;;

S2) <оператори 2>;;

S3) < оператори 3>;;

*) <оператори 4>;;

esac

В залежності від того, чи збігається значення змінної var із значенням S1, S2 або S3, виконуються відповідно <оператори 1>, <оператори 2> або <оператори 3>. Якщо вказаного збігу немає, тоді виконуються <оператори 4>.

8 Оператор циклу for

Оператор for має декілька форматів. Найпростіший формат цього оператор циклу, який використовує одновимірний список, має такий вигляд:

for var in list

do

<оператори>

done

В даному випадку <оператори> виконуються по одному разу для кожного значення змінної var із списку list. Приклад сценарію для знаходження суми елементів одновимірного масиву:

#! /bin/bash

mas=’3 7 12 5 8’

sum=0

for var in $mas

do

let sum=$sum + $var

done

echo “result is $sum”

Формат циклу for з використанням масивів дуже схожий на відповідний формат циклу в мові Сі.

Приклад сценарію з використанням циклу for для знаходження максимального значення серед елементів одновимірного масиву:

#! /bin/bash

mas [0] =3

mas [1] =7

mas [2] =12

mas [3] =5

mas [4] =8

max=mas [0]

for((i=0; i<5; i++))

do

if [$m ax –lt ${mas [i] }]

then let max=${mas [i] }

fi

done

echo “result is $max”

9 Оператори циклу while та until

Оператор циклу while можна використовувати для повторного виконання <операторів> до тих пір, поки заданий <вираз> буде залишатись істинним:

while <вираз>

do

<оператори>

done

Можливо, що цикл не буде виконано жодного разу, якщо заданий <вираз> виявиться хибним з самого початку.

Приклад сценарію з використанням циклу for для знаходження максимального значення серед елементів двовимірного масиву, який вводиться із клавіатури:

#! /bin/bash

for((i=0; i<5; i++))

do

for((j=0; j<5; j++))

do

read mas [i] [j]

done

done

max=mas [0]

for((i=0; i<5; i++))

do

for((j=0; j<5; j++))

do

if [$max –lt ${mas [i] [j] }]

then let max=${mas [i] [j] }

fi

done

done

echo “result is $max”

Оператор циклу until можна використовувати для повторного виконання <операторів> до тих пір, поки заданий <вираз> буде залишатись хибним:

until <вираз>

do

<оператори>

done

10 Функції

Як і в мовах високого рівня, окремі частини сценаріїв можна записувати у вигляді функцій. Формат визначення функції такий:

func() {

<оператори>

}

Виклик функції, якій передаються параметри param1, param2, param3:

func param1 param2 param3

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

можна використати дві функції:

#! /bin/ bash

a = 9

b = 5

c = 7

d = 2

calc1() {

let y= ($a+$b) /$1

echo “Result is $y”

}

calc2() {

let y = ($a+$b) *$1

echo “Result is $y”

}

echo “input x”

read x

if [$x - eq 5]

then calc1 c

else calc2 d

fi

11 Робота з файлами

Використовуючи файлові операції порівняння, можна із заданого списка імен знаходити файли або каталоги, а також визначати їх права доступу. Наприклад:

#! /bin/ bash

if [- d name1]

then echo “ name1 is directory”

el if [- f name2]

then echo “ name2 is file”

else echo “ name1 and name2 is not directory or file”

fi

if [- w name2]

then echo “ file has write permission”

else echo “ file has not write permission”

fi

В системних сценаріях Linux часто зустрічаються випадки, коли потрібно виконати задану послідовність операцій в залежності від інформації, яка записана у відповідних файлах. Складемо сценарій, в результаті виконання якого на екрані з’являється вікно системної програми годинника або калькулятора, якщо у файлі /home/user/Select. txt змінній Program присвоєно значення відповідно “XCLOCK” або “XCALC”. Звертаємо увагу, що цей сценарій може бути виконано лише в графічній оболонці X (детальніше графічний режим Linux розглядається в наступній лабораторній роботі).

#! /bin/ bash

. /home/user/Select. txt

if [“$Program” = “XCLOCK”]

then exec xclock &

elif [“$Program” =“XCALC”]

then exec xcalc &

fi


Информация о работе «Складання сценаріїв в операційній системі LINUX»
Раздел: Информатика, программирование
Количество знаков с пробелами: 13903
Количество таблиц: 1
Количество изображений: 0

Похожие работы

Скачать
27010
0
0

... із них: Red Hat, Mandrake, Debian, ASP, LFS. Посібник призначений для початкового ознайомлення з Linux і отримання основних практичних навичок для роботи із цією ОС. В посібнику є 7 тем: команди операційної системи Linux; текстовий редактор vi (vim); складання сценаріїв; графічна система X Window; робочі столи користувача; основи адміністрування в Linux; процеси і роботи. Кожна ...

Скачать
213419
24
23

... ·  пошуковий механізм, який користувачі використовують як інтерфейс для взаємодії з базою даних. Засоби пошуку типу агентів, павуків, кроулерів і роботів використовуються для збору інформації про документи, які знаходяться в мережі Інтернет. Це спеціальні програми, які займаються пошуком сторінок в мережі, збирають гіпертекстові посилання з цих сторінок і автоматично індексують інформацію, яку ...

Скачать
156341
11
15

... в даній роботі, була опробована й досліджена в реальних умовах моєї професійної діяльності й показала свою працездатність і ефективність. 3. Розробка системи керування та актуалізації інформації web-сайту національного оператора Енергоринка   3.1 Вибір інструментарію для створення web-сайту та системи керування   Перед тим, як безпосередньо перейти до створення Web-сайту Національного ...

Скачать
49402
7
7

... налаштування, її можна набудувати відповідно до вимог користувача. При використанні більшості плагінів можна із звичайного і простого браузера зробити хороший багатозадачний інструмент для роботи з Інтернет. РОЗДІЛ ІІ. ЗАГАЛЬНОВЖИВАНІ НОРМИ ОФОРМЛЕННЯ ТЕКСТОВОГО МАТЕРІАЛУ   2.1 Вимоги до тексту Основою службового документа є текст, який має чітко й переконливо відбивати причину й мету ...

0 комментариев


Наверх