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

πŸš€πŸŽ― Π’Ρ‘ΠΌΠ½Ρ‹Π΅ стороны Bash: магия ΠΈ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ Π² скриптах

πŸš€πŸŽ― Π’Ρ‘ΠΌΠ½Ρ‹Π΅ стороны Bash: магия ΠΈ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ Π² скриптах ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Если Ρ‚Ρ‹ ΡƒΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Β«ΠΏΡ€ΠΎΒ» Π² Linux, ΠΏΠΎΡ€Π° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ bash-скрипты Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ. Π—Π½Π°Π΅ΡˆΡŒ Π»ΠΈ Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ tiny-ΠΌΠ΅Π»ΠΎΡ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ошибки? Π’ΠΎΡ‚ нСсколько Ρ„ΠΈΡˆΠ΅ΠΊ: - ИспользованиС set -e ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ автоматичСски ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ скрипт ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π½Π΅ позволяя ΠΈΠΌ ΡΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ. - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм: if [ -z "$VAR" ]; then echo "НСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ"; fi β€” Π²Π°ΠΆΠ½ΠΎ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. - НС Π·Π°Π±Ρ‹Π²Π°ΠΉ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ: "${var}" β€” ΠΈΠ½Π°Ρ‡Π΅ моТСшь случайно ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. - Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ конструкция: command || { echo "ΠžΡˆΠΈΠ±ΠΎΡ‡ΠΊΠ°"; exit 1; }. - А Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ trap β€” ΠΎΠ½ Π»ΠΎΠ²ΠΈΡ‚ сигналы ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ скрипта. Π­Ρ‚ΠΈ тонкости ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ, красивый ΠΈ бСзопасный ΠΊΠΎΠ΄. А Ρ‡Ρ‚ΠΎ тСбя большС всСго ΠΏΡƒΠ³Π°Π΅Ρ‚ Π² bash-скриптах β€” ошибки ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΡ… слоТно понят

πŸš€πŸŽ― Π’Ρ‘ΠΌΠ½Ρ‹Π΅ стороны Bash: магия ΠΈ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ Π² скриптах

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Если Ρ‚Ρ‹ ΡƒΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Β«ΠΏΡ€ΠΎΒ» Π² Linux, ΠΏΠΎΡ€Π° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ bash-скрипты Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ.

Π—Π½Π°Π΅ΡˆΡŒ Π»ΠΈ Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ tiny-ΠΌΠ΅Π»ΠΎΡ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ошибки? Π’ΠΎΡ‚ нСсколько Ρ„ΠΈΡˆΠ΅ΠΊ:

- ИспользованиС set -e ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ автоматичСски ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ скрипт ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Π½Π΅ позволяя ΠΈΠΌ ΡΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ.

- ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм: if [ -z "$VAR" ]; then echo "НСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ"; fi β€” Π²Π°ΠΆΠ½ΠΎ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

- НС Π·Π°Π±Ρ‹Π²Π°ΠΉ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ: "${var}" β€” ΠΈΠ½Π°Ρ‡Π΅ моТСшь случайно ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

- Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ конструкция: command || { echo "ΠžΡˆΠΈΠ±ΠΎΡ‡ΠΊΠ°"; exit 1; }.

- А Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ trap β€” ΠΎΠ½ Π»ΠΎΠ²ΠΈΡ‚ сигналы ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ скрипта.

Π­Ρ‚ΠΈ тонкости ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ, красивый ΠΈ бСзопасный ΠΊΠΎΠ΄. А Ρ‡Ρ‚ΠΎ тСбя большС всСго ΠΏΡƒΠ³Π°Π΅Ρ‚ Π² bash-скриптах β€” ошибки ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΡ… слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ?

ΠŸΡ€ΠΎΠ±ΡƒΠΉ! Π§Π΅ΠΌ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Π΅Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ β€” Ρ‚Π΅ΠΌ мСньшС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

- ΠŸΡ€ΠΈΠ³Π»Π°ΡΠΈ своих ΠΊΠΎΠ»Π»Π΅Π³ ΠΈ подписывайся Π½Π° ΠΊΠ°Π½Π°Π» https://t.me/LinuxSkill β€” Ρ‚Π°ΠΌ Π΅Ρ‰Ρ‘ классныС сСкрСты. А для тСстирования β€” https://t.me/gradeliftbot.

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