Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux Mint ΠΈ Π΅Π³ΠΎ Cinnamon. ΠžΡ‡Π΅Ρ€ΠΊΠΈ примСнитСля». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 27

Автор АлСксСй Π€Π΅Π΄ΠΎΡ€Ρ‡ΡƒΠΊ

$ sort -r < list

осущСствит сортировку строк Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π° Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌΡƒ (Π²Π΅Ρ€Π½Π΅Π΅, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядку ΠΊΠΎΠ΄ΠΎΠ² символов, Π½ΠΎ это нас Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚).

Π’ ΠΎΠ΄Π½ΠΎΠΉ конструкции ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒΡΡ пСрСнаправлСния Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ замСщёния, Ρ‚Π°ΠΊ ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ присоСдинСния. Π’Π°ΠΊ, конструкция

$ sort -r < list > list_r

Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ сортировку строк Ρ„Π°ΠΉΠ»Π° list (это β€” Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sort) Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌΡƒ порядкС (Ρ‡Ρ‚ΠΎ прСдписываСтся ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -r, происходящСй Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΡ‚ reverce), Π½ΠΎ ΠΈ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» list_r, Π° конструкция

$ sort -r < list >> list

Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΏΠΎ-Π½ΠΎΠ²ΠΎΠΌΡƒ отсортированный список Π² ΠΊΠΎΠ½Π΅Ρ† ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° list.

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹

ВозмоТности построСния ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… конструкций Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°: Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π­Ρ‚ΠΎ достигаСтся благодаря ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² (pipe) ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² β€” послСдний Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ сущСство Π΄Π΅Π»Π°.

ΠŸΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ стандартный Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ пСрСдаСтся Π½Π΅ Π² Ρ„Π°ΠΉΠ», Π° Π½Π° стандартный Π²Π²ΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€” просмотр списка Ρ„Π°ΠΉΠ»ΠΎΠ²:

$ ls -l | less

ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ls, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ списка Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ использовании ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° записи (опция -l) ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ экраны, Π½Π° Π²Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ less позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ постранично ΠΈΠ»ΠΈ построчно Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях.

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ объСдинСниС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ пСрСнаправлСния Π² ΠΎΠ΄Π½ΠΎΠΉ конструкции. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² конструкции ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сгруппированы с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. Для этого Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄ раздСляСтся символами ; ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. Π’Π°ΠΊ, Ссли Π½Π°ΠΌ трСбуСтся ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ», вмСсто Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚ΠΈΠΏΠ°

$ command1 > file ; command2 >> file ; ... ; commandN >> file

ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ изящной конструкции:

$ { command1 ; command2 ; ... ; commandN } > file

Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², этот ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌ. Однако ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Ρ„Π°ΠΉΠ»ΠΎΠ² вашСго домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ΠΉ ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, Π΄Π° Π΅Ρ‰Ρ‘ ΠΈ с коммСнтариями, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ‡Ρ‚ΠΎ находится. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ вывСсти состав ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ls, ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cat (ΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°, Π² частности, ΠΈ для объСдинСния β€” ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ, β€” Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ Ρ€Π΅Ρ‡ΡŒ ΠΎ Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ·ΠΆΠ΅), Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ хозяйство Π² тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π²ΠΎΡ€Π΄-процСссор, Π³Π΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ словСса. А ΠΌΠΎΠΆΠ½ΠΎ β€” ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π΅Π΄ΠΈΠ½ΠΎΠΉ конструкциСй:

$ { echo "List of my files" ;  > echo "My text" ;

        ls text/* ;  > echo "My images" ;

        ls images/* ;  > echo "My audio" ;

        ls audio/* ;  > echo "My video" ;

        ls video/* } > my-filelist

И Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΎΠ³ΠΎ (условно) содСрТания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ для разнообразия просмотрим с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ упомянутой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat (Π±Π»Π°Π³ΠΎ ΠΈ для просмотра содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Π°):

$ cat my-filelist

List of my files

My text

text/text1.txt text/text2.txt

My images

images/img1.tif images/img2.tif

My audio

audio/sing1.mp3 audio/sing2.mp3

My video

video/film1.avi video/film2.avi

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ…

Π‘ понятиСм ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… конструкций тСсно связано понятиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΎ β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, способныС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° свой Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°Π΄ Π½ΠΈΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ свой Π²Ρ‹Π²ΠΎΠ΄ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…) Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ β€” Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ β€” ΠΎΡ‡Π΅Π½ΡŒ эффСктивноС срСдство ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстов, ΠΈ Π² своё врСмя ΠΌΡ‹ ΠΊ Π½ΠΈΠΌ вСрнСмся для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ изучСния. Пока ΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² качСствС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ find ΠΈΠ»ΠΈ grep Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΡ… содСрТимого, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ls Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ Π½Π΅ являСтся.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Наш Π·Π°Ρ‚ΡΠ½ΡƒΠ²ΡˆΠΈΠΉΡΡ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ интСрфСйсС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. И Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ этого Ρ€Π°Π·Π΄Π΅Π»Π° β€” Π΅Ρ‰Ρ‘ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ тСрпСния. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ нСсправСдливо Π½Π΅ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ мСста Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌΡƒ интСрфСйсу POSIX-систСм Π΅Π³ΠΎ Π½Π΅ΡΡ€Π°Π²Π½Π΅Π½Π½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π—Π°ΠΎΠ΄Π½ΠΎ способствуя закоснСнию ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² смСртном Π³Ρ€Π΅Ρ…Π΅ лСности. Π˜Ρ‚Π°ΠΊ β€” слово ΠΎ сцСнариях ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Π’ самом Π½Π°Ρ‡Π°Π»Π΅ я обмолвился, Ρ‡Ρ‚ΠΎ шСлл β€” это Π½Π΅ просто срСда для Π²Π²ΠΎΠ΄Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… конструкций, Π½ΠΎ ΠΈ Π΅Ρ‰Ρ‘ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ собствСнного языка программирования. Π’Π°ΠΊ Π²ΠΎΡ‚, сцСнарии ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ скриптами, β€” это ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° этом языкС.

Волько Π½Π΅ Π·Π°ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅ мСня Π² гнусном Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ ΡƒΡ‡ΠΈΡ‚ΡŒ вас программСрству. Π“ΠΎΡΠΏΠΎΠ΄ΡŒ Π±ΠΎΡ€ΠΎΠ½ΠΈ, ΠΈ Π² мыслях Π½Π΅ Π΄Π΅Ρ€ΠΆΠ°Π» (Ρ‚Π΅ΠΌ ΠΏΠ°Ρ‡Π΅, Ρ‡Ρ‚ΠΎ ΠΈ сам-Ρ‚ΠΎ этим рСмСслом Π½Π΅ владСю Π² Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ для обучСния Π΄Ρ€ΡƒΠ³ΠΈΡ… стСпСни). НСт, просто Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… страницах Π½Π°ΠΌ Ρ‚ΠΎ ΠΈ Π΄Π΅Π»ΠΎ придётся Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… сцСнариСв, Π° подчас ΠΈ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… собствСнноручно. Ибо занятиС это Π² элСмСнтарном исполнСнии Π½Π°Π²Ρ‹ΠΊΠΎΠ² программирования Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅.

Π’ самом простом случаС сцСнарий β€” это просто ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ (ΠΈ) ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… конструкций с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ опциями ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, сохранСнныС Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкстового Ρ„Π°ΠΉΠ»Π°. И ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ ΠΎΠ½ΠΈ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ часто исполняСмых Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π² частности, Π²Π²ΠΎΠ΄Π° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ сцСнария β€” просто, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²Π΄Π°. Для этого всСго ΠΈ Π½ΡƒΠΆΠ½ΠΎ:

   β€’ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π΄ΠΎΡΡ‚ΠΎΠΉΠ½ΡƒΡŽ увСковСчивания;

   β€’ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π² простой тСкстовый Ρ„Π°ΠΉΠ»;

   β€’ ΠΏΠΎ потрСбности ΠΈ ТСланию ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ коммСнтариями;

   β€’ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ способом Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° исполнСниС.

Π‘ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ создания ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… конструкций ΠΌΡ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅. А Π²ΠΎΡ‚ способов помСщёния ΠΈΡ… Π² Ρ„Π°ΠΉΠ» сущСствуСт мноТСство. МоТно просто ввСсти (ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° истории) Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π΅Π΅ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo, Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»:

$ echo "cp -rf workdir backupdir" > mybackup

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ скрипт для копирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π²ΠΏΡ€Π΅Π΄ΡŒ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ рСгулярно (Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ?).

ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat β€” ΠΎΠ½Π°, оказываСтся, способна Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ объСдинСнию Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΈΡ… содСрТимого, Π½ΠΎ ΠΈ ΠΊ Π²Π²ΠΎΠ΄Ρƒ Π² Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…. ДСлаСтся это Ρ‚Π°ΠΊ. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ cat с ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π² Ρ„Π°ΠΉΠ»:

$ cat > myarchive

ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Enter. ПослС этого ΠΊΠΎΠΌΠ°Π½Π΄Π° остаСтся Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… для помСщёния ΠΈΡ… Π² Π½ΠΎΠ²ΠΎΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». НС ΠΎΠ±ΠΌΠ°Π½Π΅ΠΌ Π΅Π΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π΅ΠΌ это. ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π² нСсколько строк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

cd $HOME/archivedir tar cf archive.tar

        ../workdir gzip archive.tar

Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ² Π²Π²ΠΎΠ΄ Ρ‚Π΅Π»Π° скрипта, всС Ρ‚ΠΎΠΉ ΠΆΠ΅ клавишСй Enter ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ строку ΠΈ Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Control+D, Π²Ρ‹Π΄Π°ΡŽΡ‰ΡƒΡŽ символ окончания Ρ„Π°ΠΉΠ»Π°.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ сцСнарий для архивирования Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌ для этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ archivedir Π½Π°ΡˆΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ tar), Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ ΠΈΡ… компрСссии (ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ gzip) β€” Π² Unix, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ DOS/Windows, Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ компрСссия ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

НаконСц, сцСнарий ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² любом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ интСрСсно β€” ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ°. Π”Π° ΠΈ стоит Π»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π΄ΠΈ Π΄Π²ΡƒΡ…-Ρ‚Ρ€Ρ‘Ρ… строк?

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡΠΌΠΈ Π² шСлл-сцСнариях ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π»ΡŽΠ±Ρ‹Π΅ строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с символа Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ (#) β€” ΠΎΠ½ΠΈ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊ исполнСнию. Π₯отя ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ‡Π°Ρ‚ ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки β€” Π²Π°ΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ символом # ΠΈ ΠΊΠΎΠ½Ρ†ΠΎΠΌ Π΅Ρ‘ большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹. Ясно, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” элСмСнт для скрипта Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π₯отя Π±Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ, Ρ€Π°Π΄ΠΈ Ρ‡Π΅Π³ΠΎ этот сцСнарий создавался.

Но ΠΎΠ΄Π½Π° строка, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ символом Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ, Π² сцСнарии практичСски ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°. И Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#!/path/shell_name

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ символ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ (#) β€” Π½Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π° ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ (Ρ‚.Π½. sha-bang) Π½Π° Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ исполняСмому Ρ„Π°ΠΉΠ»Ρƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ наш сцСнарий ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

#!/bin/sh

для POSIX-шСлла, или

#!/bin/bash

для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Bash. Π—Π΄Π΅ΡΡŒ слСдуСт ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ шСлл, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдназначаСтся сцСнарий, ΠΎΡ‚Π½ΡŽΠ΄ΡŒ Π½Π΅ обязан ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. И ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ для Π·Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° трСбуСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для шСлл-скриптов, Π½ΠΎ ΠΈ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π»ΡŽΠ±Ρ‹Ρ… языках сцСнариСв (Ρ‚ΠΈΠΏΠ° Perl ΠΈΠ»ΠΈ Python).