NBash

Форк
0
225 строк · 5.4 Кб
1
#!/bin/bash
2

3
# Переменные
4

5
# Переменные среды
6

7
echo "Путь до нашего хомяка $HOME"
8

9
echo "Стоимость компьютера \$1000"
10

11
# Пользовательские переменные
12

13
readonly COLOR="Зеленый"
14
readonly COLOR_CODE="#008000"
15

16
echo "Код цвета $COLOR - $COLOR_CODE"
17

18
kernelVersion=$(uname -a)
19

20
echo "$kernelVersion"
21

22
# Математические операции
23

24
someNumber=2
25
anotherNumber=4
26

27
summ=$((someNumber + anotherNumber))
28
echo "summ of $someNumber and $anotherNumber is $summ"
29

30
diff=$((someNumber - anotherNumber))
31
echo "diff of $someNumber and $anotherNumber is $diff"
32

33
div=$((someNumber / anotherNumber))
34
echo "div of $someNumber and $anotherNumber is $div"
35

36
mult=$((someNumber * anotherNumber))
37
echo "mult of $someNumber and $anotherNumber is $mult"
38

39
# someNumberFloat=2.56
40
# summ=$(($someNumber + $someNumberFloat))
41
# echo "summ of $someNumber and $someNumberFloat is $summ"
42

43
# Массив
44

45
# Индексированные массивы
46
declare -a myArray
47
myArray[0]=1
48
myArray[1]=2
49
myArray[2]=3
50

51

52
myArray2=(One Two Three)
53

54
echo "${myArray[2]}"
55
echo "${myArray2[1]}"
56

57
# Ассоциативные массивы
58

59
declare -A myArrayA
60
myArrayA[One]=1
61
myArrayA[Two]=2
62
myArrayA[Three]=3
63

64
echo "${myArray[@]}"
65
echo "${myArray2[@]}"
66
echo "${!myArrayA[@]}"
67
echo "${myArrayA[@]}"
68

69
declare -A myArrayA2=(
70
	[four]=4
71
	[Five]="Five"
72
	[six]=6
73
)
74

75
echo "${!myArrayA2[@]}"
76
echo "${myArrayA2[@]}"
77
echo "${myArrayA2[Five]}"
78

79
echo $((myArrayA2[four] + myArrayA2[six]))
80

81
# Операции с массивами
82

83
# Длина массива
84
echo "Количество элементов массива myArray: ${#myArray[@]}"
85

86
declare -a array
87

88
array[3]=3
89
array[5]=5
90
array[10]=10
91

92
echo "Количество элементов массива array: " "${#array[@]}"
93
echo "Количество элементов массива array: " "${#array[*]}"
94
echo "Индексы элементов массива array: " "${!array[@]}"
95

96
# Установка и удаление индексированных элементов массива
97

98
unset array
99
array[2]="Two"
100

101
echo "Количество элементов массива array: " "${#array[@]}"
102
echo "Индексы элементов массива array: " "${!array[@]}"
103

104
# Добавление элемента в массив
105
array[5]=3
106

107
array+=(10)
108
array+=(11)
109
array+=(12)
110

111
array+=("${myArray[@]}")
112

113
echo "Количество элементов массива array: " "${#array[@]}"
114
echo "Индексы элементов массива array: " "${!array[@]}"
115
echo "Элементы массива array: " "${array[@]}"
116
echo "${array[10]}"
117

118
# if then
119

120
# username=$USER
121

122
# if grep $username /etc/passwd
123
# then
124
# 	echo "user $username exist"
125
# fi
126

127
username=user123
128

129
if grep $username /etc/passwd
130
then
131
	echo "user $username exist"
132
elif ls /home1
133
	then
134
		echo "ls home works"
135
else
136
	echo "user $username doesn't exist"
137
fi
138

139
# Сравнение чисел
140

141
# -eq - равно (==)
142
# -ge - больше или равно (>=)
143
# -gt - больше (>)
144
# -le - меньше или равно (<=)
145
# -lt - меньше (<)
146
# -ne - не равно (!=)
147

148
num1=1
149
num2=2
150
num3=3
151

152
if [ $num1 -eq $num2 ]
153
then
154
	echo "Yes"
155
elif [ $num1 -gt $num3 ]
156
	then
157
	echo "num1 less then num3"
158
else
159
	echo "No"
160
fi
161

162
# Сравнение строк
163

164
# = - равно
165
# != - не равно
166
# < - меньше
167
# > - больше
168
# -n - истина если длина строки не нулевая
169
# -z - истина если длина строки нулевая
170

171
someString="Tes"
172
anotherString="Test"
173
thirdString=""
174

175
someString=$thirdString
176

177
if [ "$someString" = "$anotherString" ]
178
then
179
	echo "$someString = $anotherString"
180
elif [ "$someString" \> "$anotherString" ]
181
	then
182
		echo "$someString > $anotherString"
183
elif [ "$someString" \< "$anotherString" ]
184
	then
185
		echo "$someString < $anotherString"
186
# elif [ $someString -z ]
187
# 	then
188
# 		echo "someString is empty"
189
else
190
	echo "someString=$someString"
191
fi
192

193
# Проверка файлов
194

195
# -d name - истина если файл существует и является директорией
196
# -e name - истина если существует файл
197
# -f name - истина если файл существует и является файлом
198
# -r name - истина если файл существует и доступен для чтения
199
# -s name - истина если файл существует и он пустой
200
# -w name - истина если файл существует и доступен для записи
201
# -x name - истина если файл существует и доступен для исполнения
202

203
# -nt - проверяется является ли файл более новым
204
# по сравнению с другим
205

206
# -ot - проверяется является ли файл более старым 
207
# по сравнению с другим
208

209
# -O name - проверяет что файл существует и его владелец 
210
# текущий пользователь
211

212
# -G name - проверяет что файл существует и индентификатор 
213
# группы соответствует идентификатору группы текущего пользователя
214

215
echo "Files and directories"
216

217
homeDir=$HOME
218
scriptsDir="/Bash/scripts"
219

220
if [ -w "$homeDir$scriptsDir/someFile1" ]
221
then
222
	echo "Yes"
223
else
224
	echo "No"
225
fi

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.