В Bash функция возвращает код завершения (exit status), который представляет собой числовое значение от 0 до 255. Это значение используется для указания успешного или неуспешного выполнения функции. По умолчанию, если явно не указано возвращаемое значение, функция возвращает код завершения последней выполненной команды внутри нее.
🚩Как возвращать значения из функции?
🟠Код завершения (exit status)
Чтобы явно задать код завершения функции, используется команда
return. my_function() {
if [[ $1 -gt 0 ]]; then
return 0 # Успех
else
return 1 # Ошибка
fi
}
my_function 5
echo $? # Выведет 0 (успех)🟠Вывод данных через `echo`
Для передачи данных из функции (например, строки или числа) можно использовать
echo. Вывод можно перехватить через подстановку команд $()my_function() {
echo "Hello, $1!"
}
result=$(my_function "world")
echo "$result" # Выведет "Hello, world!"🟠Изменение глобальных переменных
Функция может менять значения глобальных переменных, которые затем используются за ее пределами
my_function() {
result=$(( $1 + $2 ))
}
my_function 3 7
echo $result # Выведет 10🚩Почему это важно?
🟠Код завершения
Используется в сценариях для проверки, выполнилась ли функция успешно. Значение
0 обычно означает успех, а любое другое число — ошибку.🟠Вывод через `echo`
Удобен для передачи данных из функции.
🟠Изменение переменных
Полезно, если функция должна сохранять данные для дальнейшей обработки.
# Функция проверки файла
check_file() {
if [[ -f $1 ]]; then
echo "Файл $1 существует."
return 0
else
echo "Файл $1 не найден."
return 1
fi
}
# Вызов функции
check_file "/etc/passwd"
status=$? # Сохраняем код завершения
if [[ $status -eq 0 ]]; then
echo "Продолжаем работу..."
else
echo "Останавливаемся из-за ошибки."
fi
Ставь 👍 и забирай 📚 Базу знаний