Skip to content

Latest commit

 

History

History

05_shell

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Домашнее задание к занятию «Использование командных оболочек 1. Bash»

В качестве результата пришлите ответы на вопросы в личном кабинете студента на сайте netology.ru.

Важно: перед отправкой переименуйте ваш скрипт в script.txt (система отправки файлов Netology блокирует файлы с расширением .sh).

Задание 1

Напишите два скрипта, каждый из которых принимает один параметр и:

  • первый - прибавляет к параметру единицу как строку.

    Например:

    user@user:~$ ./test_1.sh 5

    51

  • второй - прибавляет к параметру единицу как число.

    Например:

    user@user:~$ ./test_2.sh 5

    6

Задание 2

Напишите скрипт, который выводит содержимое каталога и подсчитывает в нём количество файлов.

Например:

user@user:~$ ./test_dir.sh
admin_scripts

...
Videos Total: 22

Задание 3

Напишите скрипт, который принимает один параметр и определяет, какой объект передан этим параметром (файл, каталог или не существующий).

Например:

user@user:~$ ./test.sh /etc
/etc - dir
user@user:~$ ./test.sh /etc/passwd
/etc/passwd - file
user@user:~$ ./test.sh /etc/passwd1
/etc/passwd1 - not exist

Задание 4* (необязательное)

Легенда

Пользователи в нашей компании начали пересылать друг другу некие "секретные" сообщения. Т.к. доступа к средствам криптографии у них нет, для "шифрования" они используют преобразование строк в формат Base64.

Задача

Написать скрипт для Bash, который:

  1. принимает на входе два аргумента. Первый - режим преобразования, второй - строка;
  2. если первый параметр равен crypt - преобразует второй параметр в строку Base64;
  3. если первый параметр равен decrypt - преобразует второй параметр в текст;
  4. если первый параметр равен любой другой строке - выйти из скрипта с ненулевым кодом возврата и сообщить об этом пользователю;
  5. если количество параметров скрипта не равно двум - выйти из скрипта с ненулевым кодом возврата выдать сообщение пользователю и завершить работу.

Пример работы:

$ ./script.sh crypt test
Encrypting...
dGVzdAo=
$ ./script.sh decrypt dGVzdAo=
Decrypting...
test

Важно: если вы работаете на Windows, вам достаточно Cygwin (не обязательно делать ДЗ в виртуалке).

Реализация

Подсказки

1. Для работы со строками можно использовать стандартную утилиту base64:

base64 <строка> - преобразование в формат base64

base64 -d <строка> - преобразование в текст

2. Для выхода их скрипта можно использовать команду exit:

exit

Завершит выполнение скрипта ровно в той точке, в которой была вызвана с кодом 0 (0 означает успешное выполнение)

exit 1

Завершит выполнение скрипта ровно в той точке, в которой была вызвана с кодом 1 (любой ненулевой код свидетельствует об ошибке)

Посмотреть код завершения можно сразу после вызова:

$ ./script.sh
$ echo $? # напечатает код завершения

3. Для передачи строки в команды можно использовать каналы (такое вы уже делали на курсе по сетям):

echo Привет | base64

Важно: не забудьте дать скрипту права на исполнение (команда chmod +x ./script.sh)