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
... із них: Red Hat, Mandrake, Debian, ASP, LFS. Посібник призначений для початкового ознайомлення з Linux і отримання основних практичних навичок для роботи із цією ОС. В посібнику є 7 тем: команди операційної системи Linux; текстовий редактор vi (vim); складання сценаріїв; графічна система X Window; робочі столи користувача; основи адміністрування в Linux; процеси і роботи. Кожна ...
... · пошуковий механізм, який користувачі використовують як інтерфейс для взаємодії з базою даних. Засоби пошуку типу агентів, павуків, кроулерів і роботів використовуються для збору інформації про документи, які знаходяться в мережі Інтернет. Це спеціальні програми, які займаються пошуком сторінок в мережі, збирають гіпертекстові посилання з цих сторінок і автоматично індексують інформацію, яку ...
... в даній роботі, була опробована й досліджена в реальних умовах моєї професійної діяльності й показала свою працездатність і ефективність. 3. Розробка системи керування та актуалізації інформації web-сайту національного оператора Енергоринка 3.1 Вибір інструментарію для створення web-сайту та системи керування Перед тим, як безпосередньо перейти до створення Web-сайту Національного ...
... налаштування, її можна набудувати відповідно до вимог користувача. При використанні більшості плагінів можна із звичайного і простого браузера зробити хороший багатозадачний інструмент для роботи з Інтернет. РОЗДІЛ ІІ. ЗАГАЛЬНОВЖИВАНІ НОРМИ ОФОРМЛЕННЯ ТЕКСТОВОГО МАТЕРІАЛУ 2.1 Вимоги до тексту Основою службового документа є текст, який має чітко й переконливо відбивати причину й мету ...
0 комментариев