diff --git a/10_bash_scripts/solutions.md b/10_bash_scripts/solutions.md index b262eed..1fa6a08 100644 --- a/10_bash_scripts/solutions.md +++ b/10_bash_scripts/solutions.md @@ -18,7 +18,7 @@ echo "$date: The claim that \"$claim\" is true if and only if $claim." ### 2. Напишите функцию в скрипте, которая создает каталог, путь к которому передан в качестве первого аргумента и переходит в него. Проверьте работу функции в этом же файле. Работает ли функция за пределами контекста скрипта? -``` +```bash $ cat 2.sh mkdir_cd () { mkdir -p $1 @@ -32,7 +32,7 @@ current dir: /tmp/1/2/3/4/5 stud@stud15:~$ ``` После выполнения скрипта текущая директория не изменилась. -``` +```bash $ mkdir_cd () { mkdir -p $1 cd $1 @@ -63,7 +63,7 @@ $ diff <(cat buylist) <(cat bought) ### 4. Попробуйте условные выражения в скрипте в if конструкции: -``` +```bash $ cat 4.sh if [[ true && true ]] then @@ -81,7 +81,7 @@ True ### 5. Напишите скрипт, который проходит по всем файлам, переданным в качестве аргументов, и ищет в них строку hello. Перенаправьте grep `STDOUT` и `STDERR` в специальный файл `/dev/null`. Для каждого файла в if создайте файл с содержимым `hello`, если `grep` завершился с ошибкой. -``` +```bash $ cat 5.sh for f in $@; do grep hello $f 2> /dev/null 1> /dev/null @@ -101,7 +101,7 @@ $ grep hello /tmp/* 2> /dev/null ### 6. Установите пакет shellcheck и проверьте написанный вами ранее скрипт одноименной командой. -``` +```bash $ shellcheck 5.sh In 5.sh line 1: @@ -146,7 +146,7 @@ For more information: ### 7. Напишите скрипт, который выполняет следующий код: -``` +```bash $ cat ./7.sh #!/usr/bin/env python import sys @@ -164,7 +164,7 @@ $ ./7.sh 1 2 3 4 5 Функции выполняются в текущей среде оболочке, тогда как скрипты выполняются в своем собственном процессе. Проверьте, что функции могут изменять переменные среды, например, изменить текущий каталог, тогда как скрипт не может. Напишите скрипт, в котором инициализируются две переменные `A` и `B`. Перед одной из них указывается `export `. Выполните скрипт и посмотрите на выдачу команды `env`. Выполните файл командой source (source --help). Какие переменные экспортировались в оболочку? -``` +```bash $ cat 8.sh #!/bin/bash A=1 @@ -178,7 +178,7 @@ B=2 ### 9. Напишите сценарий bash, который запускает следующий сценарий до тех пор, пока он не завершится аварийно, записывает стандартный вывод и потоки ошибок в файлы и печатает все в конце. -``` +```bash stud@stud15:~$ cat random_bug_script.sh #!/usr/bin/env bash @@ -260,7 +260,7 @@ The error was using magic numbers ``` Бонусный балл, за то, что вы можете сообщить, сколько запусков потребовалось для сбоя сценария. -``` +```bash stud@stud15:~$ cat mean.sh #!/bin/bash script=$1 @@ -338,7 +338,7 @@ Are you sure you want to continue connecting (yes/no/[fingerprint])? yes (if you think this is a mistake, you may want to use -f option) ``` -``` +```bash root@stud15:~# cat create_user.sh #!/bin/bash @@ -381,7 +381,9 @@ done root@stud15:~# cat nodes 10.160.179.25 10.160.179.55 +``` +``` root@stud15:~# ./create_user.sh nodes user6 Generating public/private ed25519 key pair. Your identification has been saved in /root/users.ssh/user6/id_ed25519 @@ -464,5 +466,4 @@ drwx------ 2 user3 user3 4096 сен 15 11:38 user3 drwx------ 2 user4 user4 4096 сен 15 11:42 user4 drwx------ 2 user5 user5 4096 сен 15 11:44 user5 drwx------ 2 user6 user6 4096 сен 15 11:47 user6 -``` - +``` \ No newline at end of file