Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
Bash скриптовС, част 2: Ρ†ΠΈΠΊΠ»ΠΈ
Bash скриптовС, част 3: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π½Π° командния Ρ€Π΅Π΄
Bash скриптовС, част 4: Π²Ρ…ΠΎΠ΄ ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄
Bash скриптовС, част 5: сигнали, Ρ„ΠΎΠ½ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π°, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° скриптовС
Bash скриптовС, част 6: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
Bash скриптовС, част 7: sed ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° тСкстовС
Bash скриптовС, част 8: Π΅Π·ΠΈΠΊ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ awk
Bash скриптовС, част 9: рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ
Bash скриптовС, част 10: практичСски ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ
Bash скриптовС, част 11: expect ΠΈ автоматизация Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ

ДнСс Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° bash скриптовС. Π’ΠΎΠ²Π° Π΅ скриптовС Π½Π° командния Ρ€Π΅Π΄, написани Π·Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°Ρ‚Π° bash. Има ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” zsh, tcsh, ksh, Π½ΠΎ Π½ΠΈΠ΅ Ρ‰Π΅ сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ bash. Π’ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° всички ΠΆΠ΅Π»Π°Π΅Ρ‰ΠΈ, СдинствСното условиС Π΅ Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с командния Ρ€Π΅Π΄ Π² Linux.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° командния Ρ€Π΅Π΄ са Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‚Π΅ ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ‚Π°, ΡΡŠΠ±Ρ€Π°Π½ΠΈ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ с ΠΎΠ±Ρ‰Π° Ρ†Π΅Π». Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° прСдставляват самостоятСлна стойност ΠΈΠ»ΠΈ Π΄Π° слуТат Π·Π° Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π΅Ρ‚Π΅ са ΠΌΠΎΡ‰Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° автоматизация Π½Π° чСсто ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½ΠΈ дСйствия.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ

И Ρ‚Π°ΠΊΠ°, Π°ΠΊΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° командния Ρ€Π΅Π΄, Ρ‚ΠΎΠΉ позволява ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° няколко ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ навСднъТ, въвСТдайки Π³ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ запСтая:

pwd ; whoami

Наистина, Π°ΠΊΠΎ стС ΠΎΠΏΠΈΡ‚Π°Π»ΠΈ Ρ‚ΠΎΠ²Π° Π² своя Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Π²Π΅Ρ‡Π΅ стС написали ΠΏΡŠΡ€Π²ΠΈΡ си bash скрипт, Π² ΠΊΠΎΠΉΡ‚ΠΎ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½. ΠŸΡŠΡ€Π²ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° pwd ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π° информация Π·Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° дирСктория, слСд Ρ‚ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° whoamiΠΏΠΎΠΊΠ°Π·Π²Π° Π΄Π°Π½Π½ΠΈ Π·Π° потрСбитСля, ΠΏΠΎΠ΄ ΠΊΠΎΠΉΡ‚ΠΎ стС Π²Π»Π΅Π·Π»ΠΈ Π² систСмата.

Използвайки ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π±Ρ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² Π΅Π΄Π½Π° линия, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΅ само максималният Π±Ρ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π΄Π°Ρ‚ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. Π’ΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°:

getconf ARG_MAX

ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΈΡΡ‚ Ρ€Π΅Π΄ Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ инструмСнт, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ трябва Π΄Π° сС Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‚ всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ възникнС Π½ΡƒΠΆΠ΄Π°. Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² Ρ„Π°ΠΉΠ» ΠΈ просто Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» Π·Π° тяхното изпълнСниС? Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, Ρ„Π°ΠΉΠ»ΡŠΡ‚, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, сС Π½Π°Ρ€ΠΈΡ‡Π° скрипт Π½Π° командния Ρ€Π΅Π΄.

Как са структурирани bash скриптовСтС

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π·Π΅Π½ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° touch. Π’ ΠΏΡŠΡ€Π²ΠΈΡ Ρ€Π΅Π΄ трябва Π΄Π° посочим коя Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ²Π°ΠΌΠ΅ сС ΠΎΡ‚ bash, Π·Π°Ρ‚ΠΎΠ²Π° ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Ρ€Π΅Π΄ Π½Π° Ρ„Π°ΠΉΠ»Π° Ρ‰Π΅ бъдС Ρ‚Π°ΠΊΡŠΠ²:

#!/bin/bash

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» ΡΠΈΠΌΠ²ΠΎΠ»ΡŠΡ‚ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±ΠΎΠ»ΠΊΠ°Ρ‚Π° Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Ρ€Π΅Π΄ Π΅ спСциалСн случай, Ρ‚ΡƒΠΊ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°Ρ‚Π°, слСдвана ΠΎΡ‚ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»Π΅Π½ Π·Π½Π°ΠΊ (Ρ‚Π°Π·ΠΈ послСдоватСлност Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ шСбанг) ΠΈ ΠΏΡŠΡ‚Ρ към bash, ΡƒΠΊΠ°Π·Π²Π°Ρ‚ Π½Π° систСмата, Ρ‡Π΅ сцСнарият Π΅ създадСн ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° bash.

ΠšΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±ΠΎΠ»ΠΊΠ°Ρ‚Π° сС отдСлят със Π·Π½Π°ΠΊ Π·Π° Π½ΠΎΠ² Ρ€Π΅Π΄, ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ сС отбСлязват със Π·Π½Π°ΠΊ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°:

#!/bin/bash
# This is a comment
pwd
whoami

Π’ΡƒΠΊ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² командния Ρ€Π΅Π΄, ΠΌΠΎΠΆΠ΅ Π΄Π° записватС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² Π΅Π΄ΠΈΠ½ Ρ€Π΅Π΄, раздСляйки с Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ запСтая. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π΅ ΠΏΠΎ-лСсСн Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. Π’ΡŠΠ² всСки случай, ΠΎΠ±ΠΎΠ»ΠΊΠ°Ρ‚Π° Ρ‰Π΅ Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ.

НастройванС Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»Π° Π½Π° сцСнария

Π—Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°Ρ‚ΠΎ ΠΌΡƒ Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΈΠΌΠ΅ myscript, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° bash-скрипта Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½Π°. Π‘Π΅Π³Π° остава само Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» изпълним, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай, ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ Π΄Π° Π³ΠΎ стартиратС, Ρ‰Π΅ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ‚Π΅ с Π³Ρ€Π΅ΡˆΠΊΠ° Permission denied.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
ΠžΠΏΠΈΡ‚ Π·Π° стартиранС Π½Π° Ρ„Π°ΠΉΠ»Π° Π½Π° сцСнария с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ настроСни Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

НСка Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ„Π°ΠΉΠ»Π° изпълним:

chmod +x .\/myscript

Π‘Π΅Π³Π° Ρ‰Π΅ ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ изпълним:

.\/myscript

Π‘Π»Π΅Π΄ настройванСто Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ трябва.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
УспСшно стартиранС Π½Π° bash-скрипта

Π˜Π·Ρ…ΠΎΠ΄ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π°

Π—Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° тСкст Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Π½Π° Linux сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. НСка ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π½Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΊΡ‚ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΌΠ΅ нашия скрипт, добавяйки пояснСния към Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ слСд старта Π½Π° обновСния скрипт.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
Π˜Π·Ρ…ΠΎΠ΄ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° ΠΎΡ‚ скрипта

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ пояснитСлни надписи, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. Ако Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ срСдствата Π½Π° Linux, ΠΈΠ»ΠΈ Π½Π΅ стС срСщали ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° echo, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

ИзползванС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ позволяват Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ информация Π² Ρ„Π°ΠΉΠ»Π° Π½Π° сцСнария, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅, Π·Π° Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

Няма Π½ΠΈΡ‰ΠΎ лошо Π² ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π±Π΅Π· ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ тяхната Ρ€Π°Π±ΠΎΡ‚Π°, Π½ΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°ΠΊΡŠΠ² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ.

Има Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² bash-скриптовС:

  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата
  • ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ

ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата

Понякога Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ систСмни Π΄Π°Π½Π½ΠΈ. НапримСр, Π΅Ρ‚ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π΄ΠΎΠΌΠ°ΡˆΠ½Π°Ρ‚Π° дирСктория Π½Π° тСкущия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»:

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

Π—Π°Π±Π΅Π»Π΅ΠΆΠ΅Ρ‚Π΅, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ систСмната ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $HOME Π² Π΄Π²ΠΎΠΉΠ½ΠΈ ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ, Ρ‚ΠΎΠ²Π° няма Π΄Π° ΠΏΠΎΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° систСмата Π΄Π° я Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π΅. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ, Π°ΠΊΠΎ изпълним горСописания сцСнарий.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
ИзползванС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° срСдата Π² сцСнарий

А ΠΊΠ°ΠΊΠ²ΠΎ, Π°ΠΊΠΎ трябва Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ символа Π΄ΠΎΠ»Π°Ρ€ Π½Π° Π΅ΠΊΡ€Π°Π½Π°? НСка ΠΏΡ€ΠΎΠ±Π²Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠ°:

echo "I have $1 in my pocket"

БистСмата Ρ‰Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π°Ρ€ Π² тСкстовия Ρ€Π΅Π΄, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ с ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ, ΠΈ Ρ‰Π΅ Ρ€Π΅ΡˆΠΈ, Ρ‡Π΅ сС ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π°ΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ стойността Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° $1. Π’ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π°. Какво Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ?

Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ситуации ΠΏΠΎΠΌΠ°Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° управляващ символ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½Π° Ρ‡Π΅Ρ€Ρ‚Π°, ΠΏΡ€Π΅Π΄ Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π°Ρ€:

echo "I have $1 in my pocket"

Π‘Π΅Π³Π° сцСнарият Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΎΡ‡Π°ΠΊΠ²Π°.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
ИзползванС Π½Π° управляваща послСдоватСлност Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π°Ρ€

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ

Π’ допълнСниС към ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° срСдата, bash-скриптовСтС позволяват Π·Π°Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° собствСни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² сцСнария. Π’Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ стойността си, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° сцСнария.

ΠšΠ°ΠΊΡ‚ΠΎ Π² случая със систСмнитС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π΄ΠΎ потрСбитСлскитС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС отнасятС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π°Ρ€:
TNW-CUS-FMP β€” ΠΏΡ€ΠΎΠΌΠΎ ΠΊΠΎΠ΄ Π·Π° 10% ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ услуги, Π½Π°Π»ΠΈΡ‡Π΅Π½ Π·Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° 7 Π΄Π½ΠΈ

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ слСд стартиранС Π½Π° Ρ‚Π°ΠΊΡŠΠ² сцСнарий.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² сцСнария

Командно подставянС

Π•Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-ΠΏΠΎΠ»Π΅Π·Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° bash-скриптовСтС Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ информация ΠΎΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ Π΄Π° я Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ информация навсякъдС Π² Ρ„Π°ΠΉΠ»Π° Π½Π° сцСнария.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° ΠΏΠΎ Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π°.

  • Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π·Π½Π°ΠΊ Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π΅Π΄ΠΈΠ½Π΅Ρ‡Π½Π° ΠΊΠ°Π²ΠΈΡ‡ΠΊΠ° Β«`Β»
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° конструкцията $()

Използвайки ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ вмСсто ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Π° ΠΊΠ°Π²ΠΈΡ‡ΠΊΠ° Π½Π΅ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‚Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Π° ΠΊΠ°Π²ΠΈΡ‡ΠΊΠ°. ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° трябва Π΄Π° бъдС Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² Π΄Π²Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π·Π½Π°ΠΊΠ°:

mydir=`pwd`

ΠŸΡ€ΠΈ втория ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡΡŠΡ‰ΠΎΡ‚ΠΎ сС записва Ρ‚Π°ΠΊΠ°:

mydir=$(pwd)

И ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

#!/bin/bash
mydir=$(pwd)
echo $mydir

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΌΡƒ, ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° pwdΡ‰Π΅ бъдС Π·Π°ΠΏΠ°Π·Π΅Π½ Π² ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° mydir, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° която, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° echo, Ρ‰Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π΅ Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°ΠΏΠ°Π·Π²Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π² ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π—Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° матСматичСски ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² скриптов Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ конструкция ΠΎΡ‚ Π²ΠΈΠ΄Π° $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² сцСнария

Управляваща конструкция if-then

Π’ някои сцСнарии Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° управляватС ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅. НапримСр, Π°ΠΊΠΎ Π΄Π°Π΄Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅ ΠΏΠΎ-голямо ΠΎΡ‚ ΠΏΠ΅Ρ‚, трябва Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π΅Π΄Π½ΠΎ дСйствиС, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай β€” Π΄Ρ€ΡƒΠ³ΠΎ. Π’Π°ΠΊΠΎΠ²Π° Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎ ситуации ΠΈ Ρ‚ΡƒΠΊ Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° управляващата конструкция if-then. Π’ Π½Π°ΠΉ-простата си Ρ„ΠΎΡ€ΠΌΠ° тя ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

if ΠΊΠΎΠΌΠ°Π½Π΄Π°
then
ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
fi

А Π΅Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

#!/bin/bash
if pwd
then
echo "It works"
fi

Π’ Ρ‚ΠΎΠ·ΠΈ случай, Π°ΠΊΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° pwdΠ·Π°Π²ΡŠΡ€ΡˆΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Ρ‰Π΅ сС ΠΈΠ·Π²Π΅Π΄Π΅ Ρ‚Π΅ΠΊΡΡ‚ΡŠΡ‚ β€žit worksβ€œ.

НСка Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ знанията, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅, ΠΈ Π΄Π° напишСм ΠΏΠΎ-слоТСн сцСнарий. ΠšΠ°ΠΆΠ΅Ρ‚Π΅, трябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π² /etc/passwd, ΠΈ Π°ΠΊΠΎ Π³ΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ, Π΄Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΠΌ, Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° слСд стартиранС Π½Π° Ρ‚ΠΎΠ·ΠΈ скрипт.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
Π’ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»

Π’ΡƒΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° grepΠ·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π² Ρ„Π°ΠΉΠ»Π° /etc/passwd. Ако ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° grepΠ²ΠΈ Π΅ Π½Π΅ΠΏΠΎΠ·Π½Π°Ρ‚Π°, Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ описаниС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ..

Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ потрСбитСлят бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½, ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅. А Π°ΠΊΠΎ Π½Π΅ успСС Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ потрСбитСля? Π’ Ρ‚ΠΎΠ·ΠΈ случай ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ просто Ρ‰Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π±Π΅Π· Π΄Π° Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°. Искам Π΄Π° Π·Π½Π°ΠΌ ΠΈ Π·Π° Ρ‚ΠΎΠ²Π°, Π·Π°Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°ΠΌΠ΅ ΠΊΠΎΠ΄Π°.

Управляваща конструкция if-then-else

Π—Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π΄Π° ΡΡŠΠΎΠ±Ρ‰ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° нСуспСха, Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ конструкцията if-then-else. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ Π΅ структурирана:

if ΠΊΠΎΠΌΠ°Π½Π΄Π°
then
ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
else
ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
fi

Ако ΠΏΡŠΡ€Π²Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡŠΡ€Π½Π΅ Π½ΡƒΠ»Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ изпълнСниС, условиСто Ρ‰Π΅ бъдС истинно ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ няма Π΄Π° сС насочи ΠΏΠΎ ΠΊΠ»ΠΎΠ½Π° ΠΈΠ½Π°Ρ‡Π΅. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай, Π°ΠΊΠΎ бъдС Π²ΡŠΡ€Π½Π°Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π½ΡƒΠ»Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° нСуспСх, ΠΈΠ»ΠΈ Π»ΡŠΠΆΠ΅Ρ†, Ρ‰Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ слСд ΠΈΠ½Π°Ρ‡Π΅.

Π”Π° напишСм Ρ‚Π°ΠΊΡŠΠ² скрипт:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

НСговото изпълнСниС ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΠΏΠΎ ΠΊΠ»ΠΎΠ½Π° ΠΈΠ½Π°Ρ‡Π΅.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° скрипта с конструкцията if-then-else

Π‘Π΅Π³Π° Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ Π½Π°ΠΏΡ€Π΅Π΄ ΠΈ Ρ‰Π΅ сС Π·Π°ΠΏΠΈΡ‚Π°ΠΌΠ΅ Π·Π° ΠΏΠΎ-слоТни условия. Какво Ρ‰Π΅ станС, Π°ΠΊΠΎ трябва Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π΅ Π΅Π΄Π½ΠΎ условиС, Π° няколко? НапримСр, Π°ΠΊΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ нСобходимия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», трябва Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π΅Π΄Π½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Π° Π°ΠΊΠΎ изпълнявамС ΠΎΡ‰Π΅ някакво условиС β€” Π΄Ρ€ΡƒΠ³ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚Π°ΠΊΠ° Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ. Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ситуация Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ условия Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚. ИзглСТда ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

if ΠΊΠΎΠΌΠ°Π½Π΄Π°1
then
ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
elif ΠΊΠΎΠΌΠ°Π½Π΄Π°2
then
ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
fi

Ако ΠΏΡŠΡ€Π²Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡŠΡ€Π½Π΅ Π½ΡƒΠ»Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ изпълнСна, Ρ‰Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π² ΠΏΡŠΡ€Π²ΠΈΡ Π±Π»ΠΎΠΊ Ρ‚ΠΎΠ³Π°Π²Π°, ΠΈΠ½Π°Ρ‡Π΅, Π°ΠΊΠΎ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ условиС Π΅ нСвярно, ΠΈ Π°ΠΊΠΎ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡŠΡ€Π½Π΅ Π½ΡƒΠ»Π°, Ρ‰Π΅ сС изпълни вторият Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

Π’ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ скрипт, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅ Π΄Π° сС създадС Π½ΠΎΠ² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° useradd, Π°ΠΊΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π½Π΅ Π΅ Π΄Π°Π»ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, ΠΈΠ»ΠΈ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

БравняванС Π½Π° числа

Π’ скриптовСтС Π΅ възмоТно Π΄Π° сС сравняват числови стойности. Π”ΠΎΠ»Ρƒ Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ списък Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

n1 -eq n2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ n1 Π΅ Ρ€Π°Π²Π½ΠΎ Π½Π° n2.
n1 -ge n2 Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ n1ΠΏΠΎ-голямо ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π½Π° n2.
n1 -gt n2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ n1 ΠΏΠΎΠ²Π΅Ρ‡Π΅ n2.
n1 -le n2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ n1ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π½Π° n2.
n1 -lt n2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ n1 Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ n2.
n1 -ne n2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ n1Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π½Π° n2.

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ ΠΈΠ·ΠΏΡ€ΠΎΠ±Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° сравнСниС. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ Π΅ поставСн Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби.

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π΅ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
БравняванС Π½Π° числа Π² скриптовСтС

Бтойността Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° val1Π΅ ΠΏΠΎ-голяма ΠΎΡ‚ 5, Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ сС изпълнява ΠΊΠ»ΠΎΠ½ΡŠΡ‚ Π½Π° Ρ‚ΠΎΠ³Π°Π²Π°ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π° сравнСниС ΠΈ Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° сС ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅.

БравняванС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅

Π’ сцСнарии Π΅ възмоТно Π΄Π° сС сравняват ΠΈ Π½ΠΈΠ·ΠΎΠ²ΠΈ стойности. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° сравнСниС ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ доста просто, Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° сравнСниС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΈΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ особСности, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС спрСм ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ. Π•Ρ‚ΠΎ списък с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅.

str1 = str2 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° равСнството Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅, Π²Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ.
str1 != str2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅ Π½Π΅ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ.
str1 < str2Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ str1Π΅ ΠΏΠΎ-малък ΠΎΡ‚ str2.
str1 > str2 Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ str1ΠΏΠΎ-голям ΠΎΡ‚ str2.
-n str1 Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° str1Π΅ ΠΏΠΎ-голяма ΠΎΡ‚ Π½ΡƒΠ»Π°.
-z str1Π’Ρ€ΡŠΡ‰Π° истина, Π°ΠΊΠΎ Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° str1Π΅ Ρ€Π°Π²Π½Π° Π½Π° Π½ΡƒΠ»Π°.

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° сравнСниС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² сцСнарий:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user Β is the current logged in user"
fi

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° скрипта Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ слСдното.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
БравняванС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² скриптовСтС

Π•Π΄Π½Π° особСност Π½Π° сравняванСто Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, която заслуТава Π΄Π° бъдС спомСната, Π΅, Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ">" ΠΈ "" ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° прСнасочванС Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°.

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π² ΠΊΠΎΠ΄Π°:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Π•Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° скрипта.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
БравняванС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ сС изпълнява, ΠΈΠ·Π΄Π°Π²Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

./myscript: line 5: [: too many arguments

Π”Π° сС ΠΎΡ‚ΡŠΡ€Π²Π΅ΠΌ ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‰Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠΌ $val2 Π² Π΄Π²ΠΎΠΉΠ½ΠΈ ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Π‘Π΅Π³Π° всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ трябва.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
БравняванС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅

Π•Π΄Π½Π° Π΄Ρ€ΡƒΠ³Π° особСност Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ">" ΠΈ "<" Π΅ ΠΊΠ°ΠΊ Ρ‚Π΅ работят с символи Π² Π³Π»Π°Π²Π½ΠΈ ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π±ΡƒΠΊΠ²ΠΈ. Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚Π°Π·ΠΈ особСност, Ρ‰Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠΌ тСкстов Ρ„Π°ΠΉΠ» с Ρ‚Π°ΠΊΠΎΠ²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅:

Likegeeks
likegeeks

Π©Π΅ Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ, ΠΊΠ°Ρ‚ΠΎ ΠΌΡƒ Π΄Π°Π΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΠΎ myfile, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ изпълним Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Ρ‚Π°ΠΊΠ°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:

sort myfile

Вя Ρ‰Π΅ сортира Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

likegeeks
Likegeeks

Π•ΠΊΠΈΠΏ sort, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, сортира Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎ Π²ΡŠΠ·Ρ…ΠΎΠ΄ΡΡ‰ Ρ€Π΅Π΄, тоСст ΠΌΠ°Π»ΠΊΠ°Ρ‚Π° Π±ΡƒΠΊΠ²Π° Π² нашия ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΎΡ‚ Π³Π»Π°Π²Π½Π°Ρ‚Π°. Π‘Π΅Π³Π° Ρ‰Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠΌ скрипт, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сравнява ΡΡŠΡ‰ΠΈΡ‚Π΅ Π½ΠΈΠ·ΠΎΠ²Π΅:

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

ΠšΠΎΠ³Π°Ρ‚ΠΎ бъдС стартиран, Ρ‰Π΅ сС ΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ всичко Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ β€” ΠΌΠ°Π»ΠΊΠ°Ρ‚Π° Π±ΡƒΠΊΠ²Π° сСга Π΅ ΠΏΠΎ-голяма ΠΎΡ‚ Π³Π»Π°Π²Π½Π°Ρ‚Π°.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° sort ΠΈ сравнСниСто Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² сцСнария

Π’ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π·Π° сравнСниС Π³Π»Π°Π²Π½ΠΈΡ‚Π΅ Π±ΡƒΠΊΠ²ΠΈ са ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΎΡ‚ ΠΌΠ°Π»ΠΊΠΈΡ‚Π΅. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Ρ‚ΡƒΠΊ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‡Ρ€Π΅Π· сравнСниС Π½Π° ASCII ΠΊΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° символитС, Ρ‚Π°ΠΊΠ° Ρ€Π΅Π΄ΡŠΡ‚ Π½Π° сортиранС зависи ΠΎΡ‚ ΠΊΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° символитС.

Π•ΠΊΠΈΠΏ sort, ΠΎΡ‚ своя страна, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π΅Π΄Π° Π½Π° сортиранС, Π·Π°Π΄Π°Π΄Π΅Π½ Π² настройкитС Π½Π° систСмния Π΅Π·ΠΈΠΊ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅

МоТС Π±ΠΈ слСднитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π°ΠΉ-чСсто Π² bash скриптовС. Π’Π΅ позволяват ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ условия, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. Π•Ρ‚ΠΎ списък с Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

-d fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ Π΅ дирСктория.
-e fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°.
-f file ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ Π΅ Ρ„Π°ΠΉΠ».
-r fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅.
-s fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π½Π΅ Π΅ ΠΏΡ€Π°Π·Π΅Π½.
-w fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° запис.
-x fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ Π΅ изпълним.
file1 -nt file2 ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°, Π΄Π°Π»ΠΈ Π΅ ΠΏΠΎ-Π½ΠΎΠ²ΠΎ file1, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ file2.
file1 -ot file2ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°, Π΄Π°Π»ΠΈ Π΅ ΠΏΠΎ-старо file1, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ file2.
-O file ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°, Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ тСкущият ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΅ Π½Π΅Π³ΠΎΠ² собствСник.
-G fileΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°, Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΄Π°Π»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΡƒ Π½Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° съвпада с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° Π½Π° тСкущия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π».

Π’Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ днСс, Π½Π΅ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½ΠΈ. Π˜ΠΌΠ΅Π½Π°Ρ‚Π° ΠΈΠΌ, ΠΊΠΎΠΈΡ‚ΠΎ са ΡΡŠΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΄ΡƒΠΌΠΈ, ясно ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚.

НСка Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΅Π΄Π½Π° ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

Π’ΠΎΠ·ΠΈ скрипт, Π·Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° дирСктория, Ρ‰Π΅ ΠΈΠ·Π²Π΅Π΄Π΅ Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ
Π˜Π·Ρ…ΠΎΠ΄ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° дирСкторията

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅, Ρ‡Π΅ с останалитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° СкспСримСнтиратС сами, всички Ρ‚Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ.

Π˜Ρ‚ΠΎΠ³

ДнСс Π³ΠΎΠ²ΠΎΡ€ΠΈΡ…ΠΌΠ΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с писанСто Π½Π° bash-скриптовС ΠΈ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ някои основни Π½Π΅Ρ‰Π°. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° bash-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°. Π’Π°Π·ΠΈ статия Π΅ ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° част ΠΎΡ‚ голяма сСрия ΠΎΡ‚ 11 ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Ако искатС ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Π΄Π½Π°Π³Π° β€” Π΅Ρ‚ΠΎ списък Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ. Π—Π° удобство Ρ‚ΡƒΠΊ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ Ρ‚ΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ…Ρ‚Π΅.

  1. Bash Script Step By Step β€” Ρ‚ΡƒΠΊ сС Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ bash-скриптовС, Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, описани са условни конструкции, изчислСния, сравнСния Π½Π° числа, Π½ΠΈΠ·ΠΎΠ²Π΅, установяванС Π½Π° информация Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.
  2. Bash Scripting Part 2, Bash the awesome β€” Ρ‚ΡƒΠΊ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ особСноститС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ†ΠΈΠΊΠ»ΠΈ for ΠΈ while.
  3. Bash Scripting Part 3, Parameters & options β€” Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΅ посвСтСн Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° командния Ρ€Π΅Π΄ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Π½Π° скриптовСтС, Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ потрСбитСлят въвСТда, ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Ρ‡Π΅Ρ‚Π°Ρ‚ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.
  4. Bash Scripting Part 4, Input & Output β€” Ρ‚ΡƒΠΊ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ дСскриптори ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с тях, ΠΏΠΎΡ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° Π²Ρ…ΠΎΠ΄, ΠΈΠ·Ρ…ΠΎΠ΄, Π³Ρ€Π΅ΡˆΠΊΠΈ, прСнасочванС Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°.
  5. Bash Scripting Part 5, Sighals & Jobs β€” Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΅ посвСтСн Π½Π° сигналитС Π½Π° Linux, тяхната ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² скриптовС, стартиранС Π½Π° сцСнарии ΠΏΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊ.
  6. Bash Scripting Part 6, Functions β€” Ρ‚ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π° създаванС ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² скриптовС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  7. Bash Scripting Part 7, Using sed β€” Ρ‚Π°Π·ΠΈ статия Π΅ посвСтСна Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с поточния тСкстови Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ sed.
  8. Bash Scripting Part 8, Using awk β€” Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΅ посвСтСн Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ awk.
  9. Bash Scripting Part 9, Regular Expressions β€” Ρ‚ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ Π² bash скриптовС.
  10. Част 10 Π½Π° Bash скриптиранС, практичСски ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ β€” Ρ‚ΡƒΠΊ са прСдставСни Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° диска.
  11. Част 11 Π½Π° Bash скриптиранС, ΠΊΠΎΠΌΠ°Π½Π΄Π° Expect β€” Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΅ посвСтСн Π½Π° инструмСнта Expect, с ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ взаимодСйствиСто с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ. Π’ частност, Ρ‚ΡƒΠΊ става Π΄ΡƒΠΌΠ° Π·Π° expect скриптовС ΠΈ тяхното взаимодСйствиС с bash скриптовС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.

БмятамС, Ρ‡Π΅ Π΅Π΄Π½ΠΎ ΠΎΡ‚ Ρ†Π΅Π½Π½ΠΈΡ‚Π΅ свойства Π½Π° Ρ‚Π°Π·ΠΈ сСрия статии Π΅, Ρ‡Π΅ тя, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ с Π½Π°ΠΉ-простото, подходящо Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° всяко Π½ΠΈΠ²ΠΎ, постСпСнно Π²ΠΎΠ΄ΠΈ Π΄ΠΎ доста сСриозни Ρ‚Π΅ΠΌΠΈ, Π΄Π°Π²Π°ΠΉΠΊΠΈ шанс Π½Π° всички ΠΆΠ΅Π»Π°Π΅Ρ‰ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Ρ‚ Π² ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Linux ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈ скриптовС.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Молим Π³ΡƒΡ€ΡƒΡ‚Π° Π½Π° bash ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΄Π° сподСлят ΠΊΠ°ΠΊ са достигнали Π²ΡŠΡ€Ρ…ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° майсторството, Π΄Π° сподСлят Ρ‚Π°ΠΉΠ½ΠΈΡ‚Π΅ си, Π° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚ΠΎΠΊΡƒ Ρ‰ΠΎ са написали своя ΠΏΡŠΡ€Π²ΠΈ скрипт, ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ впСчатлСния.

Bash скриптовС: Π½Π°Ρ‡Π°Π»ΠΎ

Π‘Π°ΠΌΠΎ рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват Π² Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π°. Π’Π»Π΅Π·Ρ‚Π΅, моля.

Π”Π° ΠΏΡ€Π΅Π²Π΅Π΄Π΅ΠΌ Π»ΠΈ останалитС части ΠΎΡ‚ Ρ†ΠΈΠΊΡŠΠ»Π° статии?

  • Π”Π°!

  • НС, Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ

Гласуваха 1030 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. 106 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster