NBash

Форк
0
101 строка · 2.4 Кб
1
#!/bin/bash
2

3
# Функция без параметров
4
print_hello () {
5
    echo "Hello!"
6
}
7

8
print_hello
9

10
# Передача параметров в функцию
11
print_hello_to_user () {
12
    echo "Hello, $1!"
13
    echo "Hello, $2!"
14
}
15

16
print_hello_to_user Vasia Petia
17

18
# Возврат значения через использование вывода в консоль
19
error () {
20
    echo "Some text here"
21
    echo "Some text here2"
22
}
23

24
error_return=$( error )
25
echo "Состояние возвращаемого значения ошибки функции: $?" 
26
echo "Состояние возвращаемого значения ошибки функции: $error_return"
27

28
# Различные коды возврата
29

30
multiple_return () {
31
    case $1 in
32
        1) return 1;;
33
        2) return 2;;
34
        3) return 3;;
35
        *) return 0;;
36
    esac
37
}
38

39
multiple_return 1
40
echo "Код возврата multiple_return: $?" 
41
multiple_return 2
42
echo "Код возврата multiple_return: $?" 
43
multiple_return 3
44
echo "Код возврата multiple_return: $?"
45
multiple_return 7
46
echo "Код возврата multiple_return: $?"
47

48
# Проверка по статусу кода возврата
49
multiple_return 1
50
return_code=$?
51
if [ $return_code -eq 0 ]
52
then
53
    echo "Все отработало штатно"
54
elif [ $return_code -eq 1 ]
55
then
56
    echo "Код возврата 1"
57
else
58
    echo "Завершилось с ошибкой"
59
fi
60

61
multiple_return 5
62
case $? in
63
    1) echo "Вернулся код 1";;
64
    2) echo "Вернулся код 2";;
65
    3) echo "Вернулся код 3";;
66
    *) echo "Вернулся код 0";;
67
esac
68

69
# Проверка существует ли файл с заданным именем и является ли он файлом
70
check_file () {
71
    if [ -f "$1" ]
72
    then
73
        echo "It's exist and it's a file"
74
        return 0
75
    elif [ -d "$1" ]
76
    then
77
        echo "It's exist but it's directory"
78
        return 1
79
    else
80
        echo "Doesn't exist"
81
        return 1
82
    fi
83
}
84
name_for_check="TestDir2"
85
check_file $name_for_check
86

87
case $? in
88
    1)
89
        touch $name_for_check;;
90
    
91
    *)
92
        cp $name_for_check $name_for_check.backup
93
        echo "Привет я строчка, я добавилась" >> $name_for_check;;
94
esac
95

96
# Переопределение системной команды
97
ls () {
98
command ls -la
99
}
100

101
ls
102

103

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

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

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

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