Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½ΡƒΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ
Найти Π² Π”Π·Π΅Π½Π΅
Π£Ρ€ΠΎΠΊΠΈ Linux

πŸ•ΈοΈ Π‘Π΄Π΅Π»Π°ΠΉ свои скрипты Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π² Bash

πŸ•ΈοΈ Π‘Π΄Π΅Π»Π°ΠΉ свои скрипты Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π² Bash ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΉ мастСр ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки! πŸš€ Π₯ΠΎΡ‡Π΅ΡˆΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π²ΠΎΠΈ Bash-скрипты Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π±Π΅Π· сбоСв ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Ρ‹Ρ… ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ? Π’ΠΎΠ³Π΄Π° ΡƒΡ‡ΠΈΡΡŒ Π»ΠΎΠ²ΠΊΠΎ Π»ΠΎΠ²ΠΈΡ‚ΡŒ ошибки ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ устойчивым. Π’Π΅Π΄ΡŒ ошибки β€” это Π½Π΅ ΠΊΠΎΠ½Π΅Ρ†, Π° шанс ΡΡ‚Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅! Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ: - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ - ИспользованиС условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² - ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΏΠΎ стандартам Для этого достаточно Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ конструкции Π²Ρ€ΠΎΠ΄Π΅: - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: ΠΊΠΎΠΌΠ°Π½Π΄Π° || { echo "Ошибка!"; exit 1; } ΠΈΠ»ΠΈ Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° then # Π΄Π΅Π»Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ else echo "Π§Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ" exit 1 fi - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $? β€” ΠΎΠ½Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ прСдыдущая ΠΊΠΎΠΌΠ°Π½Π΄Π°. - ВстроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ set -e ΠΈ set -o pipefail ΡΠ΄Π΅Π»Π°ΡŽΡ‚ скрипт Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сразу остановят Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ошибкС: set -e set -o pipefail Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π²ΠΎΠΉ скрипт Π½Π΅ затСряСтся срСди ошибок Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуаций. А Ρ‚Ρ‹ часто Π²Π½Π΅Π΄Ρ€ΡΠ΅ΡˆΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок Π² свои скрипты? Или ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Π½Π° Π²

πŸ•ΈοΈ Π‘Π΄Π΅Π»Π°ΠΉ свои скрипты Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π² Bash

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΉ мастСр ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки! πŸš€

Π₯ΠΎΡ‡Π΅ΡˆΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π²ΠΎΠΈ Bash-скрипты Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π±Π΅Π· сбоСв ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Ρ‹Ρ… ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ? Π’ΠΎΠ³Π΄Π° ΡƒΡ‡ΠΈΡΡŒ Π»ΠΎΠ²ΠΊΠΎ Π»ΠΎΠ²ΠΈΡ‚ΡŒ ошибки ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ устойчивым. Π’Π΅Π΄ΡŒ ошибки β€” это Π½Π΅ ΠΊΠΎΠ½Π΅Ρ†, Π° шанс ΡΡ‚Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅!

Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ:

- ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄

- ИспользованиС условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

- ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΏΠΎ стандартам

Для этого достаточно Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ конструкции Π²Ρ€ΠΎΠ΄Π΅:

- ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

команда || { echo "Ошибка!"; exit 1; }

ΠΈΠ»ΠΈ

Ссли команда

then

# Π΄Π΅Π»Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ

else

echo "Π§Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ"

exit 1

fi

- Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $? β€” ΠΎΠ½Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ прСдыдущая ΠΊΠΎΠΌΠ°Π½Π΄Π°.

- ВстроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ set -e ΠΈ set -o pipefail ΡΠ΄Π΅Π»Π°ΡŽΡ‚ скрипт Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сразу остановят Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ошибкС:

set -e

set -o pipefail

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π²ΠΎΠΉ скрипт Π½Π΅ затСряСтся срСди ошибок Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуаций.

А Ρ‚Ρ‹ часто Π²Π½Π΅Π΄Ρ€ΡΠ΅ΡˆΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок Π² свои скрипты? Или ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Π½Π° Π²Π΅Π·Π΅Π½ΠΈΠ΅?

Напиши Π² коммСнтариях, ΠΊΠ°ΠΊΠΈΠ΅ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ‚Π΅Π±Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ скрипты ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅!

ΠŸΡ€ΠΎΠΊΠ°Ρ‡Π°ΠΉ свои скилы Π² Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ https://t.me/LinuxSkill Π° ΠΏΡ€ΠΎΠΉΡ‚ΠΈ тСсты ΠΏΠΎ Linux Π² Π±ΠΎΡ‚Π΅ https://t.me/gradeliftbot

πŸ“© Π—Π°Π²Ρ‚Ρ€Π°: Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Fail2Ban Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚! Π’ΠΊΠ»ΡŽΡ‡ΠΈ πŸ”” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ!