From 496c5c21137923c6bd54d927d974785882bd379c Mon Sep 17 00:00:00 2001 From: artemdolgiy Date: Wed, 15 Sep 2021 16:13:10 +0300 Subject: [PATCH] add 19 --- labs.md | 6 +++++ labs_solution.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/labs.md b/labs.md index dca2fea..e0808f2 100644 --- a/labs.md +++ b/labs.md @@ -185,3 +185,9 @@ 1. Сброс пароля root. *** + +**Глава 19. Написание shel скриптов.** + +1. Написать скрипт, принимающий аргумент. Если аргумент - "yes", скрипт должен выполнить команду `echo that's nice`, если аргумент - "no", скрипт должен выполнить команду `echo I'm sorry to hear that`. Во всех остальных случаях - `echo unknown argument provided` + +*** diff --git a/labs_solution.md b/labs_solution.md index 48c0742..120a1cc 100644 --- a/labs_solution.md +++ b/labs_solution.md @@ -937,3 +937,63 @@ sh-4.4# touch /.autorelabel - Дважды нажать `Ctrl+d` для перезагрузки *** + +**Глава 19. Написание shel скриптов.** + +1. Написать скрипт, принимающий аргумент. Если аргумент - "yes", скрипт должен выполнить команду `echo that's nice`, если аргумент - "no", скрипт должен выполнить команду `echo I'm sorry to hear that`. Во всех остальных случаях - `echo unknown argument provided` +- вариант 1 (if..elif..else..fi) +```bash +#!/bin/bash + +# проверим, что аргумент присутствует +if [ -z $1 ] +then + echo you need provide an argument + exit 2 +fi + +# добавим регистронезависимость для аргумента +arg=$(echo $1 | tr [:upper:] [:lower:]) + +if [ $arg = yes ] +then + echo that\'s nice +elif [ "$arg" = "no" ] +then + echo "I'm sorry to hear that" +else + echo unknown argument provided +fi +``` +- вариант 2 (case) +```bash +#!/bin/bash + +# проверим, что аргумент присутствует +if [ -z $1 ] +then + echo you need provide an argument + exit 2 +fi + +# добавим регистронезависимость для аргумента +arg=$(echo $1 | tr [:upper:] [:lower:]) + +case $arg in + + yes) + echo "that's nice" + ;; + + no) + echo "I'm sorry to hear that" + ;; + + *) + echo unknown argument provided + ;; +esac +``` +*не забыть сделать скрипт исполняемым `chmod +x script_name`* + +***