-
Notifications
You must be signed in to change notification settings - Fork 0
/
361-03-bash-1.sh
executable file
·136 lines (123 loc) · 4.02 KB
/
361-03-bash-1.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
echo "Программа вычисления контрольной суммы файла"
echo
echo "Программа создаёт контрольную сумму первого файла и записывает во второй"
echo
echo "Разработчик: Дейнеко Алексей"
repeat=true;
while($repeat)
do
repeat=false
# вывод текущего каталога
echo -n "Текущий каталог: "
tail=${PWD##*/}
echo $tail
# запрос пути к первому файлу
echo -n "Дорогой друг, введи пожалуйста путь к первому файлу:"
read file_name1
while ([ -z $file_name1 ] || !([ -f $file_name1 ]) || !([ -r $file_name1 ]))
do
#cheking for empty string
while [ -z $file_name1 ];
do
echo "Пичалька, ничего не введено, попробуем ещё раз(y/n)?" >&2
read answer1
if [ "$answer1" != "y" ]
then
echo "...выход из программы..."
exit 250
fi
echo -n "Дорогой друг, введи пожалуйста путь к первому файлу:"
read file_name1
done
#cheking for exsistance
while !([ -f $file_name1 ])
do
echo "Пичалька,файла с таким путём не обнаружено, попробуем ещё раз(y/n)?">&2
read answer2
if [ "$answer2" != "y" ]
then
echo "...выход из программы..."
exit 250
fi
echo -n "Дорогой друг, введи пожалуйста путь к первому файлу:"
read file_name1
done
#cheking for reading
while !([ -r $file_name1 ])
do
echo "Пичалька, файл невозможно открыть попробуем ещё раз(y/n)?" >&2
read answer1
if [ "$answer1" != "y" ]
then
echo "...выход из программы..."
exit 250
fi
echo -n "Дорогой друг, введи пожалуйста путь к первому файлу:"
read file_name1
done
done
echo "Такой файл с таким путём есть, и его можно открыть"
#генерирование контрольной суммы первого файла по алгоритму md5
string=$( md5sum $file_name1 )
echo $string
string1=${string:0:32}
echo $string1
# запрос пути к второму файлу
echo -n "Дорогой друг, введи пожалуйста путь к второму файлу: "
read file_name2
while ([ -z $file_name2 ] || !([ -f $file_name2 ]))
do
while [ -z $file_name2 ];
do
echo "Пичалька, ничего не введено, попробуем ещё раз(y/n)?">&2
read answer1
if [ "$answer1" != "y" ]
then
echo "...выход из программы..."
exit 250
fi
echo -n "Дорогой друг, введи пожалуйста путь к второму файлу: "
read file_name2
done
if !([ -f $file_name2 ])
then
echo "Пичалька,файла с таким путём не обнаружено, создать его(y/n)?">&2
read answer2
if [ "$answer2" == "y" ]
then
echo "Создаём файл и записываем"
echo $string1 > $file_name2
echo "Ты молодец!!!"
echo "Повторить ещё раз для других файлов(y/n)?"
read answer3
if [ "$answer3" != "y" ]
then
echo "...выход из программы..."
exit 0
else
repeat=true
fi
fi
if [ "$repeat" != true ]; then
echo -n "Дорогой друг, введи пожалуйста путь к второму файлу:"
read file_name2
fi
fi
done
if [ "$repeat" != true ]; then
echo "Такой файл с таким путём есть"
echo "Перезаписываем его"
echo $string1 > $file_name2
echo "Ты молодец!!!"
echo "Повторить ещё раз для других файлов(y/n)?"
read answer3
if [ "$answer3" != "y" ]
then
echo "...выход из программы..."
exit 0
else
repeat=true
fi
fi
done