В качестве результата пришлите ответы на вопросы в личном кабинете студента на сайте netology.ru.
Важно: перед отправкой переименуйте ваш скрипт в script.txt
(система отправки файлов Netology блокирует файлы с расширением .sh
).
Напишите два скрипта, каждый из которых принимает один параметр и:
-
первый - прибавляет к параметру единицу как строку.
Например:
user@user:~$ ./test_1.sh 5
51
-
второй - прибавляет к параметру единицу как число.
Например:
user@user:~$ ./test_2.sh 5
6
Напишите скрипт, который выводит содержимое каталога и подсчитывает в нём количество файлов.
Например:
user@user:~$ ./test_dir.sh
admin_scripts
...
Videos
Total: 22
Напишите скрипт, который принимает один параметр и определяет, какой объект передан этим параметром (файл, каталог или не существующий).
Например:
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
Пользователи в нашей компании начали пересылать друг другу некие "секретные" сообщения. Т.к. доступа к средствам криптографии у них нет, для "шифрования" они используют преобразование строк в формат Base64.
Написать скрипт для Bash, который:
- принимает на входе два аргумента. Первый - режим преобразования, второй - строка;
- если первый параметр равен
crypt
- преобразует второй параметр в строку Base64; - если первый параметр равен
decrypt
- преобразует второй параметр в текст; - если первый параметр равен любой другой строке - выйти из скрипта с ненулевым кодом возврата и сообщить об этом пользователю;
- если количество параметров скрипта не равно двум - выйти из скрипта с ненулевым кодом возврата выдать сообщение пользователю и завершить работу.
Пример работы:
$ ./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
)