Главная » Просмотр файлов » Лаб_раб-3_ver1.1

Лаб_раб-3_ver1.1 (538463), страница 3

Файл №538463 Лаб_раб-3_ver1.1 (Лабораторные работы 1-4) 3 страницаЛаб_раб-3_ver1.1 (538463) страница 32015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

ls -l testdir/testfile

cat testdir/testfile

chmod 0200 testdir/testfile

cat testdir/testfile

chmod 0644 testdir/testfile

chmod 0444 testdir

ls testdir

cat testdir/testfile

chmod 0544 testdir/testfile

rm testdir/testfile

chmod 755 testdir

rm testdir/testfile

rm testfile

6) Отладить следующие скрипты:

а) проверка условия - пока i меньше или равно 20

#!/bin/sh

# Count from 1 to 20

i=1

while [ $i -le 20 ]

do

echo $i

i='expr $i +1' i=$ ($i+1)

done

exit 0

б) цикл выполняется до тех пор, пока значение переменной i не станет больше 20

#!/bin/sh

# Count from 1 to 20

i=1

until [ $i -gt 20 ]

do

echo $i

i='expr $ +1'

done

exit 0

7) Отладить следующие скрипты:

#!/bin/sh

# Пример логического оператора AND

# В данном примере echo не запускается, т.к. VarA =1, VarB не больше 7, #поэтому оба условия не истинны, тест не проходит и возвращает значение #0.

VarA=1

VarB=9

while [ $VarA -eq 1 ] && [ $VarB -gt 7 ]

#сокр запись команды под названием test (-eg , истина , если 1 = 2 операнду.

do

echo "VarA is equal to 1 and VarB is greater than 7"

done

exit 0

#!/bin/sh

# Пример логического оператора OR

#В данном случае достаточно, чтобы одно из условий было истинно. #Выполняется бесконечный цикл с оператором echo

/#Прервать - CTRL-C

VarA=2

VarB=5

while [ $VarA -eq 1 ] || [ $VarB -gt 7 ]

do

echo "VarA is equal to 1 and VarB is greater than 7"

done

exit 0

8) Отладить следующий сценарий:

#!/bin/sh

# Вывод квадратных корней чисел 10-20

for num in ' jot 10 10 20'

do

square_root='echo "scale=5; sqrt($num)" | bc -lr'

echo $square_root

done

exit 0

Утилита jot печатает строку из 10 чисел, начиная с 10 и заканчивая 20 (10 10 20), scale=5 указывает bc, что в выводе числа после десятичной точки следует сохранить 5 значащих цифр. Знак ; используется для разделения операторов, содержащихся в одной строке. Функция sqrt команды bc возвращает квадратный корень из заданного числа, т.к. интерпретатор заменяет переменную ее значением, bc получает число, а не имя переменной. Далее вывод команды перенаправляется команде bc. Опция -l указывает на необходимость предварительной загрузки математической библиотеки, где содержится функция sqrt.

9) Отладить сценарий программы по угадыванию числа.

#!/bin/sh

# Игра по угадыванию чисел

clear

guess_count=1 #Счетчик инициализируется значением 1

echo

echo "Number guessing game written in bourne shell script"

echo

echo -n "Enter upper limit for guess: "

read up_limit

rnd_number='jot - r 1 1 $ up_limitr' # Получение случайного числа

echo

echo "Irve thought of a number between 1 and $up_limit."

echo

echo - n "Please guess a number between 1 and $up_limit: "

read guess

# Сравнение со случайным числом

while true #строка 17

do

if [ $guess - gt $rnd_number ] #строка 19

then

echo

echo "Your guess was too high/ Please try again."

guess_count='expr $guess_count + 1'

echo - n "Please guess a number between 1 and $up_limit: "

read guess

elif [ $guess -lt $rnd_number ]

then

echo

echo "Your guess was too low/ Please try again."

guess_count='expr $guess_count + 1'

echo - n "Please guess a number between 1 and $up_limit: "

read guess

else

break

fi

done

# Мы достигаем этой точки, если игрок отгадал число.

echo

echo "Correct!"

echo

echo "yon guessed the number in $guess_count guesses."

echo

exit 0

Переменная guess_count хранит число попыток, сделанных игроком.

Команда jot выполняется для присвоения переменной rnd_number случайного числа в диапазоне от 1 до верхнего предела, заданного пользователем. Переменная guess сохраняет число, введенное игроком.

Оператор elif проверяет два или более условий (else if). Сначала выполняется оператор if, если условие истинно, выполняется его код, затем управление передается следующему оператору. В строке 17 начинается бесконечный цикл. В строке 19 проверяется условие: число, введенное игроком больше, чем случайное число, выбранное программой. Если да, игроку выводится сообщение, значение переменной guess_count увеличивается на 1, а затем запрашивается новое число. После того, как игрок вводит новое число, оно сохраняется в переменной guess и цикл while выполняется вновь. Если введенное число не больше случайного числа, оператор elif проверяет, меньше ли оно. Если да, игроку выводится сообщение, значение переменной guess_count увеличивается на 1, а затем запрашивается новое число. После ввода цикл while выполняется вновь. И наконец, если ни одно из условий не истинно, запускается блок else (здесь не нужны проверки, ведь если число ни больше и ни меньше, следовательно, оно равно загаданному). Оператор else прерывает бесконечный цикл, и программа передает управление первому оператору, следующему за оператором done. Последние выражения программы сообщают пользователю о том, что он угадал число, и о количестве предпринятых попыток (для этого выводится значение переменной guess_count).

Скрипт 1

#!/bin/sh

if [ $# -ge 1 ]

then

echo "You supplied $# command line arguments."

fi

echo

echo "Program exiting..."

echo

exit 0

Скрипт 2

#!/bin/sh

# цикл while

# Счетчик от 1 до 5

i=1

# -le обозначает "меньше или равно"

while [ $i -le 5 ]

do

echo $i

i=$[i+1]

done

exit 0

Скрипт 3

#!/bin/sh

# Программа иллюстрирует применение команды shift

while [ $# -ne 0 ]

do

echo "The value of $1 is now $1."

shift

done

echo

exit 0

Скрипт 4

#!/bin/sh

# Пример логического оператора AND

Var1=1

Var2=9

while [ $Var1 -eq 1 ] && [ $Var2 -gt 7 ]

do

echo "Var1 is equal to 1 and Var2 is greater than 7"

done

exit 0


Скрипт 5

#!/bin/sh

# Пример логического оператора OR

# В данном случае достаточно, чтобы одно из условий было истинно.

# Выполняется бесконечный цикл с оператором echo

# Прервать: CTRL+C

Var1=2

Var2=5

while [ $Var1 -eq 1 ] || [ $Var2 -gt 7 ]

do

echo "Var1 is equal to 1 and Var@ is greater than 7"

done

exit 0

alex@alex-desktop:~/Lab_rab-3$ ./Script5.sh

Скрипт 6

#!/bin/sh

# Вывод квадратных чисел 10 - 20

for num in 'jot 10 10 20'

do

square_root='echo "scale=5;sqrt($num)"|bc -l'

echo $square_root

done

exit 0

Характеристики

Тип файла
Документ
Размер
607,75 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6264
Авторов
на СтудИзбе
316
Средний доход
с одного платного файла
Обучение Подробнее