NBash
101 строка · 2.4 Кб
1#!/bin/bash
2
3# Функция без параметров
4print_hello () {
5echo "Hello!"
6}
7
8print_hello
9
10# Передача параметров в функцию
11print_hello_to_user () {
12echo "Hello, $1!"
13echo "Hello, $2!"
14}
15
16print_hello_to_user Vasia Petia
17
18# Возврат значения через использование вывода в консоль
19error () {
20echo "Some text here"
21echo "Some text here2"
22}
23
24error_return=$( error )
25echo "Состояние возвращаемого значения ошибки функции: $?"
26echo "Состояние возвращаемого значения ошибки функции: $error_return"
27
28# Различные коды возврата
29
30multiple_return () {
31case $1 in
321) return 1;;
332) return 2;;
343) return 3;;
35*) return 0;;
36esac
37}
38
39multiple_return 1
40echo "Код возврата multiple_return: $?"
41multiple_return 2
42echo "Код возврата multiple_return: $?"
43multiple_return 3
44echo "Код возврата multiple_return: $?"
45multiple_return 7
46echo "Код возврата multiple_return: $?"
47
48# Проверка по статусу кода возврата
49multiple_return 1
50return_code=$?
51if [ $return_code -eq 0 ]
52then
53echo "Все отработало штатно"
54elif [ $return_code -eq 1 ]
55then
56echo "Код возврата 1"
57else
58echo "Завершилось с ошибкой"
59fi
60
61multiple_return 5
62case $? in
631) echo "Вернулся код 1";;
642) echo "Вернулся код 2";;
653) echo "Вернулся код 3";;
66*) echo "Вернулся код 0";;
67esac
68
69# Проверка существует ли файл с заданным именем и является ли он файлом
70check_file () {
71if [ -f "$1" ]
72then
73echo "It's exist and it's a file"
74return 0
75elif [ -d "$1" ]
76then
77echo "It's exist but it's directory"
78return 1
79else
80echo "Doesn't exist"
81return 1
82fi
83}
84name_for_check="TestDir2"
85check_file $name_for_check
86
87case $? in
881)
89touch $name_for_check;;
90
91*)
92cp $name_for_check $name_for_check.backup
93echo "Привет я строчка, я добавилась" >> $name_for_check;;
94esac
95
96# Переопределение системной команды
97ls () {
98command ls -la
99}
100
101ls
102
103