Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ – Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, сцСнарныС языки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π‘ΠΊΡ€ΠΈΠΏΡ‚ (script) – Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅: язык сцСнариСв Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π‘ΠΊΡ€ΠΈΠΏΡ‚ (сцСнарий)Β β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, описанных ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптового языка программирования (JavaScript, PHP, Perl, Python ΠΈΒ Π΄Ρ€.) для автоматичСского выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

НапримСр, для функционирования ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ сСрвиса, инструмСнта на сайтС.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ простым языком, скрипты — это то, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΄Π°Π΅Ρ‚ сайту Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡƒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ в дСйствиС. Если с любой Π²Π΅Π±-страницы ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС сцСнарии, это Π±ΡƒΠ΄Π΅Ρ‚ просто статичноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с такой страницСй Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. НапримСр, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΒ» Π½ΠΈΒ ΠΊΒ Ρ‡Π΅ΠΌΡƒ Π½Π΅Β ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚.

Π§Ρ‚ΠΎΠ±Ρ‹ происходило дСйствиС (сообщСниС появлялось ΠΏΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ script. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ условий (Π²Β Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ») ΠΎΠ½Β Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. ПослС Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ своих дСйствий.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ скрипт (ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π½ΠΎΠ²Ρ‹ΠΌΠΈ условиями), Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСма ΠΎΠΏΠΎΠ²Π΅Ρ‰Π°Π»Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ±Β ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅. Если всС условия Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ сообщСниС: Β«ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Β». Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано Π½Π΅Π²Π΅Ρ€Π½ΠΎ, ΠΎΠ½Β ΡƒΠ²ΠΈΠ΄ΠΈΡ‚: Β«Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ всС поля ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΒ», Β«Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поля, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ *Β» ΠΈΒ Ρ‚.Β Π΄.

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с различными Π±Π°Π·Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MySQL), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΒ ΠΈΠΌΠ΅Ρ‚ΡŒ быстрый доступ ΠΊΒ Π½ΠΈΠΌ.

Π―Π·Ρ‹ΠΊΠΈ сцСнариСв

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ из скриптов написан Π½Π°Β Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ языкС. Π˜Ρ…Β Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языками сцСнариСв ΠΈΠ»ΠΈ скриптовыми языками. БСгодня Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными ΠΈΒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • JavaScript;

  • JScript;

  • PHP;

  • Python;

  • Perl.

Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ синтаксис, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ возмоТности и области примСнСния. Π’Β Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JavaScript ΠΈΒ PHP.

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ скрипт на сайт

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ сцСнарий на свой сайт, Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ script-Ρ„Π°ΠΉΠ». Π’Β Π½Π΅ΠΌ ΠΎΠ½Β Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ сам сцСнарий Π½Π°Β ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ языкС.

ПослС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ скрипта Ρ‡Π΅Ρ€Π΅Π· ftp.

  2. Π Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° доступа.

  3. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ инсталлятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам создаст ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

  4. Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, доступ ΠΊΒ Π±Π°Π·Π΅ MySQL).

  5. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ настройку Π²Β ΠΏΠ°Π½Π΅Π»ΠΈ управлСния.

Иногда настройка происходит нС в ПУ, Π°Β ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Β Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ скрипта ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ на своСм ПК, нС загруТая Π΅Π³ΠΎ на сСрвСр. Но для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ софт, способный ΡΡ‹ΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ условия, Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊΒ Ρ‚Π΅ΠΌ, Π³Π΄Π΅ размСщаСтся сайт.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

НиТС описана схСма срабатывания ΠΈΒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта.

  1. ВыполняСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ условиС на сайтС.

  2. Π­Ρ‚Π° информация поступаСт Π½Π°Β Π²Π΅Π±-сСрвСр.

  3. ПослС на сСрвСрС запускаСтся Ρ„Π°ΠΉΠ» скрипта.

  4. Π”Π°Π»Π΅Π΅ происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ Π²Ρ‹Π±ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‚Π° в соотвСтствии с прописанным сцСнариСм.

  5. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ с вСб-сСрвСра поступаСт на ПК ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Β Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ происходит ΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΠ΅ дСйствиС.

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π½Π΅Β ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π²Β Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ автоматичСски, Π±Π΅Π· участия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

НапримСр, Π²Ρ‹ΡΠΊΠ°ΠΊΠΈΠ²Π°ΡŽΡ‰Π°Ρ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°, которая появляСтся спустя 5Β ΠΌΠΈΠ½ΡƒΡ‚ нахоТдСния на сайтС. Или автоматичСский скроллинг Π±Π°Π½Π½Π΅Ρ€ΠΎΠ². Π’Β Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π²Π΅Π±-страницы ΡƒΠΆΠ΅ являСтся условиСм. Π’Π°ΠΊΠΆΠ΅ скрипт Π½Π΅Β ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняСтся на сСрвСрС. НапримСр, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сцСнарии на сайтС, написанныС на языкС JavaScript, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ прямо Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ссли Ρ‚ΠΎΡ‚ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ встроСнным ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ JS. БСгодня ΠΏΠΎΡ‡Ρ‚ΠΈ всС соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π΅Π³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сцСнарии ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ сами по сСбС, Ρ‚Π°ΠΊ ΠΈΒ Π²Β Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий посСтитСля. ΠΒ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ на сторонС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚Π°ΠΊ и на сторонС сСрвСра.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈΒ Π·Π°Π΄Π°Ρ‡ΠΈ

Главная Π·Π°Π΄Π°Ρ‡Π° любого скрипта на сайтС — Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Β Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡ…Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚:

  • для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° рСсурса, добавлСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов;

  • сбора статистики о посСщСниях и посСтитСлях;

  • поисковой ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ;

  • упрощСния ΠΊΠΎΠ΄Π° Π²Π΅Π±-страницы;

  • добавлСния динамичСских элСмСнтов Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈΒ Ρ‚.Β Π΄.

В контСкстной Ρ€Π΅ΠΊΠ»Π°ΠΌΠ΅ их стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ управлСния Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹ΠΌΠΈ кампаниями. В качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ автоматичСскиС стратСгии управлСния ставками Π²Β Β«Π”ΠΈΡ€Π΅ΠΊΡ‚Π΅Β» ΠΈΒ AdWords.

Π’Π°ΠΊΠΆΠ΅ за послСдниС Π³ΠΎΠ΄Ρ‹ скрипты стали Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ дСйствий Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. НапримСр, сСрвисы Π½Π°ΠΊΡ€ΡƒΡ‚ΠΊΠΈ счСтчиков активности Π²Β ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях, способныС всСго Π·Π°Β ΠΏΠ°Ρ€Ρƒ сСкунд ΡΡ‹ΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тысяч ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Или сСрвисы автопостинга, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ в автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°ΠΆΠ΅ Π½Π΅Β ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅Β Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, а заскриптованный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

ИспользованиС скриптов ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом прСимущСств.

  1. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. ВсС сцСнарии ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСзависимыми элСмСнтами ΠΈΒ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅Β Π²Π»ΠΈΡΡŽΡ‚ Π½Π°Β Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сайта (систСмы). Π’ΠΎΒ Π΅ΡΡ‚ΡŒ, Ссли в скриптС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, это повлияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Β Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎΒ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅Β Π½Π°Β Ρ€Π°Π±ΠΎΡ‚Ρƒ всСго рСсурса. ΠžΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ к описываСмому Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ пСрСстанут Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π½ΠΎΒ Π½ΠΈΠΊΠ°ΠΊ нС сама Π²Π΅Π±-страница.

  2. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариСв достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ строчку ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈ этом Π½Π°Β ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ языкС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒΒ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ дСсятки строк.

  3. НаличиС инсталляторов. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ скриптов снабТСно инсталлятором, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам создаСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Π½Π΅Β Π½ΡƒΠΆΠ½ΠΎ Β«ΠΊΠΎΠ²Ρ‹Ρ€ΡΡ‚ΡŒΡΡΒ» в исходном ΠΊΠΎΠ΄Π΅, достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ инсталлятор, ввСсти всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ к настройкС Π²Β ΠΏΠ°Π½Π΅Π»ΠΈ управлСния.

  4. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, встроСнныС Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹. НСкоторыС скрипты ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ прямо Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ ускоряСт процСсс их выполнСния.

  5. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Script способСн Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» сайта, Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π½ΠΎΠ²Ρ‹Π΅ инструмСнты и возмоТности для взаимодСйствия с посСтитСлями.

Роль скриптов Π²Β Π‘Π•Πž

НСсмотря Π½Π°Β Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ скрипты способны ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» сайта ΠΈΒ Π΅Π³ΠΎ ΡŽΠ·Π°Π±ΠΈΠ»ΠΈΡ‚ΠΈ, ΠΈΡ…Β Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с умом.

Π”Π΅Π»ΠΎ Π²Β Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ скрипт — это опрСдСлСнная Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° на сСрвСр (Ссли он выполняСтся Π²Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅Β β€” Π½Π°Β Π±Ρ€Π°ΡƒΠ·Π΅Ρ€). Π§Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ их количСство ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊΒ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сайт Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ°Ρ‚ΡŒ ΠΈΒ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ скаТСтся Π½Π°Β ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ посСтитСлСй. А, ΠΊΠ°ΠΊ извСстно, повСдСнчСскиС Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ·Β Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ страниц в поисковой Π²Ρ‹Π΄Π°Ρ‡Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅Β ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ повСдСнчСскиС Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ своСй ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ всС лишниС скрипты. ΠžΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ стоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС Β«Π½ΡƒΠΆΠ½Ρ‹Π΅Β». ИмСнно поэтому всС спСциалисты в области Π‘Π•Πž Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ Π½Π΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ совсСм ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ и динамичСскиС элСмСнты. Π”Π°, это красиво, но нСэффСктивно с точки зрСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ·Β Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ являСтся ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ всСх скриптов в самый ΠΊΠΎΠ½Π΅Ρ† исходного ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π²Π΅Π±-страницы ΠΎΠ½ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈΡΡŒ в послСднюю ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π›ΡŽΠ΄ΠΈ нС всСгда ΠΈΠΌΠ΅ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСниС. ОсобСнно это касаСтся мобильной Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹Β β€” это самый «тяТСлый» Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°. Из-Π·Π° Π΅Π³ΠΎ Π΄ΠΎΠ»Π³ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ сайт, Ρ‚Π°ΠΊ и нС доТдавшись появлСния основного ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π’Π°ΠΊΠΎΠΉ Π²ΠΈΠ·ΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Π·. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ минус Π²Β ΠΊΠΎΠΏΠΈΠ»ΠΊΡƒ повСдСнчСских Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Блишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти к сниТСнию ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ рСсурса Π²Β Π²Ρ‹Π΄Π°Ρ‡Π΅Β ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, посСщаСмости.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сцСнарии Π½Π΅Β ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ на поисковоС ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ рСсурса, Π½ΠΎΒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π°Β Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΎΡ‚Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого продвиТСния. Π­Ρ‚ΠΎ:

Π‘Π•ΠžΒ β€” это ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½Ρ‹ΠΉ процСсс, состоящий из мноТСства Β«ΠΌΠ΅Π»ΠΊΠΈΡ…Β» Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ·Β Π½ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ достаточно внимания, Π²Β Ρ‚ΠΎΠΌ числС и скриптам сайта.

www.russianpromo.ru

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт, ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ? :: SYL.ru

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт? Π­Ρ‚ΠΎ такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ для Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² сСти Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, для ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ функционирования.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ скриптов

Для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт, Π΄Π°Π²Π°ΠΉΡ‚Π΅ познакомимся с этим понятиСм ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. ВсС скрипты дСлят Π½Π° Π΄Π²Π΅ Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

1. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ, которая выполняСтся Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

2. БСрвСрная. Она ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ мноТСства самых Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡΠΊΡ€ΠΈΠΏΡ‚ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ скрипты ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ с ΠΈΡ… ПК. Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΊΠΎΠ΄Π΅ web-сайта. Часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ DHTML-скрипты. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ создан ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ сайт. НапримСр, Ссли рСсурс написан Π½Π° HTML, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ DHTML-скрипты. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скриптов зависит ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, ΠΊΠ°ΠΊ скрипты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡ… Π² сСти. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ. CGI ΠΈ PHP — ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сСрвСрных скриптов. Они Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сайтС Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. CGI – это элСмСнт интСрфСйса, примСняСмый, Ρ‡Ρ‚ΠΎΠ±Ρ‹ внСшняя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ³Π»Π° ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с web-сСрвСром. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ интСрфСйсу с web-сСрвСром, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ шлюзом ΠΈΠ»ΠΈ скриптом (сцСнариСм). Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ простым языком, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт, Ρ‚ΠΎ это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»-сцСнарий ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ самим Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

На ΠΊΠ°ΠΊΠΈΡ… языках ΠΏΠΈΡˆΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΠΈΡˆΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… языках (скриптовых), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ синтакисис, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ своими возмоТностями ΠΈ сфСрой примСнСния. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ:

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ это— PHP.

— JScript.

— JavaScript.

— Perl.

— Python.

— AngelScript.

Для Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ скрипты

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Π°Π»Π°ΡΡŒ Π±ΠΎΠ»Π΅Π΅ чСткая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ скрипт, Π½Π°Π΄ΠΎ Π·Π½Π°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ области Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π‘Ρ„Π΅Ρ€Π° использования Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-скриптов ΠΎΡ‡Π΅Π½ΡŒ большая:

— Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптов люди ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

— Π‘ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ статистику посСщСний страниц сайта. Π Π΅Ρ‡ΡŒ ΠΎ счСтчиках посСщСний.

— Π Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ скрипты, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠ΅ Π² SEO-ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурсов, для этого Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

— Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎ, Π·Π°ΠΌΠ΅Ρ‡Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… сайтах ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, высказывая своС ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря скриптам.

— Бтановится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ записи Π² Ρ€Π°Π·Π½Ρ‹Ρ… гостСвых ΠΊΠ½ΠΈΠ³Π°Ρ….

— ВсС систСмы управлСния сайтами (CMS) ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° скриптах.

— Π˜Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Ρ„ΠΎΡ€ΡƒΠΌΠΎΠ².

— ДинамичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сайтов — Ρ‚ΠΎΠΆΠ΅ заслуга этих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

— ИмСнно скрипты ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ сайта Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ всСй страницы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Π­Ρ‚ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС ΠΈΡ… возмоТности. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈΡ… программисты, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌΠΈ знаниями. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ качСствСнный ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ скрипт Π½Π΅ Ρ‚Π°ΠΊ просто. Часто для написания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ скрипта трСбуСтся совмСстный ΠΎΠΏΡ‹Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… профСссионалов-программистов. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° страничкС сайта тСкст, Ρ€Π°ΡΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π²ΠΎ всС Ρ†Π²Π΅Ρ‚Π° Ρ€Π°Π΄ΡƒΠ³ΠΈ.

1. Для этого Π² Ρ„Π°ΠΉΠ»Π΅ html ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π³Π°ΠΌΠΈ head Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ скрипты2. Π”Π°Π»Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π³Π°ΠΌΠΈ body Ρ‚Π°ΠΊΠΈΠ΅ строчки.Код скрипта для HTML3. Π›ΡŽΠ±ΡƒΠ΅ΠΌΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠΊΡ€ΠΈΠΏΡ‚Π°Π”Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-скрипты ΠΌΠΎΠ³ΡƒΡ‚ люди с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ тСорСтичСскими ΠΈ практичСскими знаниями программирования. Но Ссли Ρƒ вас Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ аналитичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅, ΠΈ Π΅ΡΡ‚ΡŒ большоС ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, Ρ‚ΠΎ Π²Ρ‹ смоТСтС этому Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ.

www.syl.ru

Π―Π·Ρ‹ΠΊ сцСнариСв: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠΈΠ»ΠΈ скрипт – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Ρƒ. Π‘Π΅Π· скрипта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±Ρ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для раскрутки сайта Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… цСлях:

  • для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° рСсурса;
  • для автоматичСского ΠΎΠ±ΠΌΠ΅Π½Π° ссылками;
  • для выполнСния Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ поисковой ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ;
  • для сбора статистики, Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ сайта ΠΈ Ρ‚.Π΄.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

Для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ язык сцСнариСв ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² рядС случаСв:

  • Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹ΠΉ язык обСспСчиваСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π±Π΅Π· риска дСстабилизации систСмы. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ диагностичСскоС сообщСниС, Π½Π΅ вызывая ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ систСмы;
  • Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ. Π―Π·Ρ‹ΠΊ сцСнариСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ программирования Π² скриптовом языкС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;
  • простота. Код ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, поэтому ΠΎΠ΄Π½Π° строка ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ дСсятки строк Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ языкС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для написания ΠΊΠΎΠ΄ΠΎΠ² Π½Π΅ трСбуСтся программист высокой ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ;
  • ΠΊΡ€ΠΎΡΡΠ±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹Π΅ языки программирования ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° ΠΊΡ€ΠΎΡΡΠ±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ. НапримСр, JavaScript ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ практичСски ΠΏΠΎΠ΄ всСми соврСмСнными ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ

Π’ зависимости ΠΎΡ‚ быстродСйствия Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ языки сцСнариСв ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания ΠΈ продвиТСния сайтов Perl) ΠΈ динамичСского Ρ€Π°Π·Π±ΠΎΡ€Π° (command.com, sh). ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚. Π―Π·Ρ‹ΠΊΠΈ динамичСского Ρ€Π°Π·Π±ΠΎΡ€Π° ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ инструкции ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚, Π½Π΅ читая, дальнСйший ΠΊΠΎΠ΄.

Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ скриптовых языков:

  • ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅: Forth, AngelScript, Perl, PHP, Python, Tcl (Tool command language), Squirrel, REBOL, Ruby, AutoIt, Lua;
  • встроСнныС Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: VBA, UnrealScript, AutoLISP, Emacs Lisp, Game Maker Language, MQL4 script, ERM;
  • ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ: sh, AppleScript, bash, csh, ksh, JCL, cmd.exe, command.com, REXX, Visual Basic Script;
  • встраиваСмыС: Guile, Script.NET, ActionScript, Lingo (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Director), Sleep, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ Jscript ΠΈ JavaScript.

НСкоторыС прилоТСния ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ сцСнариями, написанными Π½Π° любом ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΌ скриптовом языкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, автоматичСский ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Ρ‡ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SWIG.

К скриптам Ρ‚Π°ΠΊΠΆΠ΅ относят ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ записанной Π² Ρ„Π°ΠΉΠ» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.

Π’Π΅Π³ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°

Голосов 5, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ 5

promo.ingate.ru

Π½Π°Ρ‡Π°Π»ΠΎ / RUVDS.com corporate blog / Habr

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.



Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки β€” это Π½Π°Π±ΠΎΡ€Ρ‹ Ρ‚Π΅Ρ… ΠΆΠ΅ самых ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, собранныС Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Π΅ Π½Π΅ΠΊΠΎΠ΅ΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ†Π΅Π»ΡŒΡŽ. ΠŸΡ€ΠΈ этом Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ способ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ часто выполняСмых дСйствий.

Π˜Ρ‚Π°ΠΊ, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΎΠ½Π° позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ввСдя ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой:

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.
ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° запуска Ρ„Π°ΠΉΠ»Π° сцСнария с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнными Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ

Π‘Π΄Π΅Π»Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» исполняСмым:

chmod +x ./myscript

Π’Π΅ΠΏΠ΅Ρ€ΡŒ попытаСмся Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
./myscript

ПослС настройки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ запуск bash-скрипта

Π’Ρ‹Π²ΠΎΠ΄ сообщСний


Для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π² консоль Linux примСняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π·Π½Π°Π½ΠΈΠ΅ΠΌ этого Ρ„Π°ΠΊΡ‚Π° ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ наш скрипт, Π΄ΠΎΠ±Π°Π²ΠΈΠ² пояснСния ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выводят ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π½Ρ‘ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ получится послС запуска ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ скрипта.
Π’Ρ‹Π²ΠΎΠ΄ сообщСний ΠΈΠ· скрипта

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠ΅ надписи, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ echo. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ срСдствами Linux, ΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ echo, взглянитС Π½Π° этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ для использования ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.

НСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π² исполнСнии ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π±Π΅Π· хранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ возмоТности Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° вСсьма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² bash-скриптах:

  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды


Иногда Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΊΠΈΠΌΠΈ систСмными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ вывСсти домашнюю Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $HOME Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, это Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ систСмС Π΅Ρ‘ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ получится, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ сцСнарий.
ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды Π² сцСнарии

А Ρ‡Ρ‚ΠΎ Ссли Π½Π°Π΄ΠΎ вывСсти Π½Π° экран Π·Π½Π°Ρ‡ΠΎΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π°? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊ:

echo "I have $1 in my pocket"

БистСма ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° Π² строкС, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, ΠΈ Ρ€Π΅ΡˆΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сослались Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ попытаСтся вывСсти Π½Π° экран Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $1. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ использованиС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ символа, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄ Π·Π½Π°ΠΊΠΎΠΌ Π΄ΠΎΠ»Π»Π°Ρ€Π°:

echo "I have \$1 in my pocket"

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сцСнарий Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ оТидаСтся.
ИспользованиС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π½Π°ΠΊΠ° Π΄ΠΎΠ»Π»Π°Ρ€Π°

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅


Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ срСды, 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-скриптов β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ двумя способами.

  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π½Π°Ρ‡ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ апострофа Β«`Β»
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции $()

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, прослСдитС Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмСсто ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ апострофа Π½Π΅ ввСсти ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… Π·Π½Π°Ρ‡ΠΊΠ°:
mydir=`pwd`

ΠŸΡ€ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‚Π°ΠΊ:
mydir=$(pwd)

А скрипт, Π² ΠΈΡ‚ΠΎΠ³Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
#!/bin/bash
mydir=$(pwd)
echo $mydir

Π’ Ρ…ΠΎΠ΄Π΅ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pwdΠ±ΡƒΠ΄Π΅Ρ‚ сохранён Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ mydir, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo, ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² консоль.
Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

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


Для выполнСния матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ скрипта ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π²ΠΈΠ΄Π° $((a+b)):
#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2


ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² сцСнарии

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ конструкция 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

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ получаСтся послС запуска этого скрипта.
Поиск ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ воспользовались ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ grepдля поиска ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/passwd. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° grepΠ²Π°ΠΌ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΠ°, Π΅Ρ‘ описаниС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΉΠ΄Π΅Π½, скрипт Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС. А Ссли Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ? Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС скрипт просто Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π°ΠΌ Π½Π΅ сообщив. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ сказал Π½Π°ΠΌ ΠΈ ΠΎΠ± этом, поэтому ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ конструкция if-then-else


Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° смогла ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΈ ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ поиска, ΠΈ ΠΎ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ конструкциСй if-then-else. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠ½Π° устроСна:
if ΠΊΠΎΠΌΠ°Π½Π΄Π°
then
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
else
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
fi

Если пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ ноль, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΅Ρ‘ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, условиС окаТСтся истинным ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠΎ Π²Π΅Ρ‚ΠΊΠ΅ else. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, Ссли Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΎΡ‚ нуля, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, располоТСнныС послС else.

НапишСм Ρ‚Π°ΠΊΠΎΠΉ скрипт:

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

Π•Π³ΠΎ исполнСниС пошло ΠΏΠΎ Π²Π΅Ρ‚ΠΊΠ΅ else.
Запуск скрипта с конструкциСй if-then-else

Ну Ρ‡Ρ‚ΠΎ ΠΆΠ΅, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС ΠΈ зададимся вопросом ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТных условиях. Π§Ρ‚ΠΎ Ссли Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π΅ ΠΎΠ΄Π½ΠΎ условиС, Π° нСсколько? НапримСр, Ссли Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΉΠ΄Π΅Π½, Π½Π°Π΄ΠΎ вывСсти ΠΎΠ΄Π½ΠΎ сообщСниС, Ссли выполняСтся Π΅Ρ‰Ρ‘ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ условиС β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ сообщСниС, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ условия. Выглядит это Ρ‚Π°ΠΊ:

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

Если пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅Ρ€Π½Ρ‘Ρ‚ ноль, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Π΅Ρ‘ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, выполнятся ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ then, ΠΈΠ½Π°Ρ‡Π΅, Ссли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ условиС окаТСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ, ΠΈ Ссли вторая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅Ρ€Π½Ρ‘Ρ‚ ноль, выполнится Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°.
#!/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

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ эта ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ чисСл Π² скриптах

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ val1большС Ρ‡Π΅ΠΌ 5, Π² ΠΈΡ‚ΠΎΠ³Π΅ выполняСтся Π²Π΅Ρ‚Π²ΡŒ thenΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сравнСния ΠΈ Π² консоль выводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк


Π’ сцСнариях ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ строковыС значСния. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния выглядят довольно просто, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния строк Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ коснёмся Π½ΠΈΠΆΠ΅. Π’ΠΎΡ‚ список ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².
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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния скрипта ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк Π² скриптах

Π’ΠΎΡ‚ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ сравнСния строк, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Β«>Β» ΠΈ Β«<Β» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹, ΠΈΠ½Π°Ρ‡Π΅ скрипт Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, хотя сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ Π½Π΅ появится. Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°ΠΊ Β«>Β» ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ пСрСнаправлСния Π²Ρ‹Π²ΠΎΠ΄Π°.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π° с этими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ выглядит Π² ΠΊΠΎΠ΄Π΅:

#!/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

Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта.
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ скрипт, хотя ΠΈ выполняСтся, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

./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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Β«>Β» ΠΈ Β«<Β» Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с символами Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрах. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ эту ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ тСкстовый Ρ„Π°ΠΉΠ» с Ρ‚Π°ΠΊΠΈΠΌ содСрТимым:

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

Если Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, окаТСтся, Ρ‡Ρ‚ΠΎ всё Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” строчная Π±ΡƒΠΊΠ²Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ большС прописной.
Команда 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-программирования ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ являСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части большой сСрии ΠΈΠ· 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. Bash Scripting Part 10, Practical Examples β€” здСсь ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сообщСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° диска.
  11. Bash Scripting Part 11, Expect Command β€” этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» посвящён срСдству Expect, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ. Π’ частности, здСсь ΠΈΠ΄Ρ‘Ρ‚ Ρ€Π΅Ρ‡ΡŒ ΠΎΠ± expect-скриптах ΠΈ ΠΎΠ± ΠΈΡ… взаимодСйствии с bash-скриптами ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

ПолагаСм, ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ†Π΅Π½Π½Ρ‹Ρ… свойств этой сСрии статСй Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π°, Π½Π°Ρ‡ΠΈΠ½Π°ΡΡΡŒ с самого простого, подходящСго для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ любого уровня, постСпСнно Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ довольно ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ, давая шанс всСм ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ Π² Π΄Π΅Π»Π΅ создания сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Linux.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! ΠŸΡ€ΠΎΡΠΈΠΌ Π³ΡƒΡ€Ρƒ bash-программирования Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π΄ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½ мастСрства, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ сСкрСтами, Π° ΠΎΡ‚ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ написал свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ скрипт, ΠΆΠ΄Ρ‘ΠΌ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠΉ.

habr.com

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹ΠΉ язык — это… Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹ΠΉ язык?

Бкри́птовый язы́к (Π°Π½Π³Π».Β scripting language, Π² русской Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ принято Π½Π°Π·Π²Π°Π½ΠΈΠ΅ язык сцСнариСв)Β β€” язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для записи «сцСнариСв», ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ скриптовыС языки Ρ€Π°Π½ΡŒΡˆΠ΅ часто Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ языками ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (batch languages ΠΈΠ»ΠΈ job control languages). Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π° Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ (хотя всё Ρ‡Π°Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ запуском).

Π’ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, сцСнарий (скрипт)Β β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Π΅Π· сцСнария ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π» Π±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ скрипты?

Для написания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ скрипты (Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ «макросы»), Ρ‚Π°ΠΊ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ (нСзависимыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, написанныС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках; Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Β«ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈΒ», «экспортёрами», Β«Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈΒ»).

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹ΠΉ язык ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

  1. Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π±Π΅Π· риска Π΄Π΅ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму. Π’Π°ΠΊ ΠΊΠ°ΠΊ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², скрипты ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π° Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написанный скрипт Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ диагностичСскоС сообщСниС, Π° Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ систСмному ΠΊΡ€Π°Ρ…Ρƒ;
  2. Если Π²Π°ΠΆΠ΅Π½ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ‡Π΅ΠΌ слоТнСС систСма, Ρ‚Π΅ΠΌ большС ΠΊΠΎΠ΄Π° приходится ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это нуТно» — см., Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Hello World#ΠœΠ°Ρ€Π³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² скриптовом языкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ совсСм другая концСпция программирования, Ρ‡Π΅ΠΌ Π² основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅Β β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ³Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌ ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ пСрсонаТами скрипты Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, скриптовый язык ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈ ΠΎΠ΄Π½Π° строка скрипта ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ нСсколько дСсятков строк Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ языкС. Как слСдствиС, Π½Π° скриптовом языкС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ программист ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈΒ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΅ΠΉΠΌΠ΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Π½Π΅ полагаясь Π½Π° программистов, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΠ³Ρ€Ρ‹;
  3. Если трСбуСтся ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся JavaScriptΒ β€” Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄ самыми Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ОБ.

Π£ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… прСимущСства.

  1. Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, оттранслированныС Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· исходного ΠΊΠΎΠ΄Π° динамичСски ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ исполнСнии. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ скриптовыС языки Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ быстроты исполнСния. Но ΠΈΠ·-Π·Π° простоты ΠΎΠ½ΠΈ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для написания Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ…, ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ… (Β«ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ…Β») ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
  2. ΠŸΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ рСсурсу ОБ (Π² скриптовом языкС для этого Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ написанный Π½Π° машинном ΠΊΠΎΠ΄Π΅ API). ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ.
  3. Если прСдполагаСтся интСнсивный ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, для ΠΏΠ»Π°Π³ΠΈΠ½Π° Π΅Π³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅.

Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΠ»Π°Π½Π΅ быстродСйствия скриптовыС языки ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° языки динамичСского Ρ€Π°Π·Π±ΠΎΡ€Π° (sh, command.com) ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ (Perl). Π―Π·Ρ‹ΠΊΠΈ динамичСского Ρ€Π°Π·Π±ΠΎΡ€Π° ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ инструкции ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ минимально Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌΠΈΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ эти Π±Π»ΠΎΠΊΠΈ, Π½Π΅ читая дальнСйший ΠΊΠΎΠ΄. ΠŸΡ€Π΅Π΄ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΅Π³ΠΎ. НСкоторыС скриптовыС языки ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Ρ‚. Π½. JIT-компиляция).

Π’ΠΈΠΏΡ‹ скриптовых языков

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ скриптовыС языки

ВстроСнныС Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

ВстраиваСмыС

  • ActionScript — Π’ срСдах Adobe Flash, Adobe AIR, Adobe Flex
  • Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ языки: JavaScript, JScript
  • LingoΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Director, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ скриптовым
  • Guile
  • Io
  • Lua
  • Sleep
  • Script.NET

Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ встроСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ сцСнариями Π½Π° любом ΠΈΠ· ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… скриптовых языков, см. ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SWIG ΠΈΠ»ΠΈ автоматичСский ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Ρ‡.

ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ²

МногиС ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π·Π°Ρ€Π°Π½Π΅Π΅ записанной Π² Ρ„Π°ΠΉΠ». Π’Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚ΠΎΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ скриптами.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚:

  • SQLPlusΒ β€” выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SQL ΠΈ PL/SQL Π² Π‘Π£Π‘Π” Oracle

dic.academic.ru

JavaScript β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ язык программирования для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π’Π°ΠΊ это ΠΈΠ»ΠΈ Π½Π΅Ρ‚?

JavaScript, нСсмотря Π½Π° Π΅Π³ΠΎ многочислСнныС нСдостатки, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, являСтся самым Π»ΡƒΡ‡ΡˆΠΈΠΌ языком программирования для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΌ языком, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ Π΄Π΅Ρ‚ΠΈ.


Π¨Ρ‘Π» 2007 Π³ΠΎΠ΄. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ тСхничСских ΠΊΠ½ΠΈΠ³ O’Reilly Media ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ ΠΊΠΎ ΠΌΠ½Π΅, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ² ΠΎΠ΄Π½Ρƒ идСю. Они спросили мСня ΠΎ Ρ‚ΠΎΠΌ, Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ я Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠΎ JavaScript, которая ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π±Ρ‹ для Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Β«Π‘ ΠΊΠ°ΠΊΠΎΠΉ стати?Β», β€” Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π·Π°Π΄Π°Π» я встрСчный вопрос.

НСльзя Π±Ρ‹Π»ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ JavaScript Π² Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π±Ρ‹Π» ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ бСсполСзным языком. Но ΠΎΠ½ прСдставлял собой лишь ΠΎΠ΄ΠΈΠ½, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ самый Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ ΠΈΠ· Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-сайтов. Π”Π°, нСбольшиС кусочки JS-ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΠΎΡ€ΠΌ, ΠΈΠ»ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ наводят ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ. Но JavaScript прСдставлял собой лишь Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ сайта. Если ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ со страницы, Ρ‚ΠΎ всё ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с Π΅Π³ΠΎ использованиСм.

JavaScript, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, тянул Π·Π° собой Π½Π΅ΠΌΠ°Π»Ρ‹ΠΉ Π±Π°Π³Π°ΠΆ, прСдставлСнный Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ тСхнологиями. Π’Π°ΠΊ, с Π½ΠΈΠΌ Π±Ρ‹Π»ΠΈ связаны ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ нСсовмСстимости Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΠΎΠ½ Π±Ρ‹Π» ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ, нСбСзопасным, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΌ. Π― Π½Π΅ Π±Ρ‹Π» заинтСрСсован Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° JavaScript бСсполСзныС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ для Π²Π΅Π±-страниц. Π­Ρ‚ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ казались ΠΌΠ½Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ бСссмыслСнными, ΠΊΠ°ΠΊ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π³ΠΈΡ„ΠΊΠΈ с Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌΡΡ Π·Π΅ΠΌΠ½Ρ‹ΠΌ ΡˆΠ°Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ вСсьма популярными Π½Π° Π·Π°Ρ€Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.


Π‘Π°ΠΌΡ‹ΠΌ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ способом использования JavaScript, ΠΊΠ°ΠΊ ΠΌΠ½Π΅, ΠΏΠΎ наивности, Ρ‚ΠΎΠ³Π΄Π° казалось, Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: большой сСрвСрный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ JS-ΠΊΠΎΠ΄ ΠΈ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² страницу, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. JavaScript-ΠΊΠΎΠ΄, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ сСрвСром, ΠΌΠΎΠ³ Π±Ρ‹ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слишком Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, Π½ΠΎ ΠΎΠ½ Π±Ρ‹Π» Π±Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. А учитывая Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ JS ΠΈΠ³Ρ€Π°Π» лишь Ρ€ΠΎΠ»ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, ΠΏΡ€ΠΈ этом всё Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π±Ρ‹ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ Π΄Π°ΠΆΠ΅ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π±Ρ‹ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŒ сайта ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π±Ρ‹ JavaScript.

НСт Π½ΡƒΠΆΠ΄Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° я ΠΊΠ½ΠΈΠ³Ρƒ ΠΎ JavaScript Π½Π΅ написал. Π― ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ сСрвСрным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎ ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… тСхнологиях (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎ языкС Π‘# ΠΈ ΠΎ .NET Framework). ΠŸΡ€ΠΎΡˆΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π½Π΅Ρ‡Ρ‚ΠΎ странноС.

JavaScript Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Β«Π²Π·Π»Π΅Ρ‚Π΅Π»Β».

Π― всё Π΅Ρ‰Ρ‘ Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ JavaScript заслуТиваСт чСсти Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π² ΠΌΠΈΡ€Π΅ языком программирования. Π― Π΄Π°ΠΆΠ΅, Ссли ΡƒΠΆ совсСм чСстно, Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ языком. Но ΠΊΠΎΠ΅-Π² Ρ‡Ρ‘ΠΌ я своё ΠΌΠ½Π΅Π½ΠΈΠ΅ помСнял. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ JavaScript, вСроятно, являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ языком для Π΄Π΅Ρ‚Π΅ΠΉ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов. Всё Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ JavaScript Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Π΅ΠΉΡˆΠ΅Π΅ прСимущСство ΠΏΠ΅Ρ€Π΅Π΄ всСми ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ языками программирования.

ΠŸΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π°Ρ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ JavaScript β€” Π΅Π³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ прСимущСство


Одним ΠΈΠ· ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… прСимущСств JavaScript являСтся Π΅Π³ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ.

Π­Ρ‚ΠΎΡ‚ язык ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ. Он поддСрТиваСтся Π½Π° всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, Π²ΠΎ всСх Π²ΠΈΠ΄Π°Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ², ΠΈ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π΅Ρ‰Ρ‘ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ JavaScript-прилоТСния Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±Π΅Π· установки ΠΈΡ… Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. На самом Π΄Π΅Π»Π΅, ΡƒΠΆΠ΅ слоТно Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠΆ ΠΈ Π΄Π°Π²Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, развёртывая ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрныС прилоТСния Π² своих Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сСтях, Ρ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ, Π±ΠΎΡ€ΡΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ настройки этих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌΠΈ ошибками. Π‘Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΡΡŒ с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΊΠΎΡˆΠΌΠ°Ρ€Π°ΠΌΠΈ, Π²Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ JavaScript.

JavaScript, благодаря Π΅Π³ΠΎ распространённости, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ самым Π»ΡƒΡ‡ΡˆΠΈΠΌ языком программирования. Π•ΠΌΡƒ всСго лишь Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ языком.

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ± ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ программирования. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° распространённости языка Π½Π΅ каТСтся особСнно Π²Π°ΠΆΠ½ΠΎΠΉ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡ΡŒΡ Ρ†Π΅Π»ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ практичСскиС ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Но мноТСство Ρ‚Π΅Ρ… ΠΆΠ΅ самых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΈ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали, ΠΌΠΎΠ³ Π±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΡ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Ρ‚ΠΎ JavaScript β€” это СдинствСнная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, задавая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ вопросы, опрСдСляСт Π΅Π³ΠΎ личностный ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ довольно просто. Но Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Ρƒ? ΠŸΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡΡ Π»ΠΈ Π΅ΠΌΡƒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρƒ сСбя срСду Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΈΠ»ΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ вас? НуТно Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΏΠΎΠ΄ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΒ» настройки бСзопасности Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ смоТСт Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ? ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ваш Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, которая попросту Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, Ссли Π½Π΅ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния, распространяСмыС Ρ‡Π΅Ρ€Π΅Π· iTunes ΠΈΠ»ΠΈ Google Play? Если ΠΆΠ΅ Π²Ρ‹, для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ JavaScript, Π° для Π΅Ρ‘ распространСния β€” простой Π²Π΅Π±-сайт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GitHub позволяСт бСсплатно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ сайты), Ρ‚ΠΎ всС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ попросту исчСзнут.

А Ссли наш Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΉ программист β€” Ρ€Π΅Π±Ρ‘Π½ΠΎΠΊ, Ρ‚ΠΎ Π²ΠΎΡ‚ Π²Π°ΠΌ Π½Π΅ΠΎΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΆΠΈΠΌΡ‹ΠΉ Ρ„Π°ΠΊΡ‚: Π΄Π΅Ρ‚ΠΈ ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ сильно связаны. Если Π²Ρ‹ наблюдали Π·Π° Ρ€Π΅Π±Ρ‘Π½ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (Π½Π΅ Π½Π° мобильном устройствС), Ρ‚ΠΎ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 98% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Π”Π΅Ρ‚ΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ Π² Google Classroom ΠΈ Google Docs. И Ссли ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΡƒΡ‚ Π΄Π΅Ρ‚ΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€ΠΎΠ΄Π½ΠΎΠΌ для Π½ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠΌ ΠΌΠΈΡ€Π΅, это Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ СстСствСнно.

БСйчас ΠΌΡ‹ обсуТдали ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны JavaScript. Но, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, говоря ΠΎ JavaScript ΠΊΠ°ΠΊ ΠΎ языкС программирования для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, нСльзя Π½Π΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈ ΠΎ Π΅Π³ΠΎ нСдостатках.

НСдостатки JavaScript


Как насчёт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ JavaScript? Π£ этого языка Π΅ΡΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ нСдостатки, Π΅Π³ΠΎ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Ρ‹, противорСчия ΠΈ ограничСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½Π΅ нСприятными для Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ соврСмСнныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ³Π»Π°Π΄ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ нСдостатков JavaScript.

Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основныС ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΈ, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΊ этому языку.

▍1. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² JavaScript


Π’Π°ΠΆΠ½Π΅ΠΉΡˆΠ΅ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΎΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π½ΠΎ, являСтся идСя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° JavaScript Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот язык слишком вольно ΠΈ Π½Π΅Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ обращаСтся с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Он позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ выглядит ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ нСстыковки. Π•Π³ΠΎ Ρ…Π°Π»Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ способна ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² катастрофы, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π΅Ρ‡Ρ‘Π½ Π½Π° ΠΏΡ€ΠΎΠ²Π°Π»:

var myNumber = 100;
myNumber = myNumbr + 1;

Π£Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ? Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС, Π½Π° самом Π΄Π΅Π»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: пСрСмСнная myNumber, которая Π±Ρ‹Π»Π° объявлСна Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС, ΠΈ нСкая фиктивная пСрСмСнная myNumbr. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вторая пСрСмСнная β€” это Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ, Π½ΠΎ JavaScript сообщит Π½Π°ΠΌ ΠΎΠ± этом Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π΄Π°Π² сообщСниС ΠΎΠ± ошибкС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выглядит ΠΊΠ°ΠΊ ReferenceError: myNumbr is not defined. Π’ΠΎ ΠΆΠ΅ самоС происходит ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΡ€ΠΈ записи ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π»ΠΈ большиС ΠΈ малСнькиС Π±ΡƒΠΊΠ²Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пСрСмСнная ΠΈΠ· myNumber случайно ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² MyNumber). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹, считая, Ρ‡Ρ‚ΠΎ нСкая пСрСмСнная Ρ…Ρ€Π°Π½ΠΈΡ‚ число, прибавляСтС ΠΊ Π½Π΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ число, Π° эта пСрСмСнная, Π½Π° самом Π΄Π΅Π»Π΅, содСрТала строку ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. JavaScript Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π½Π΅ сообщит ΠΎΠ± ошибкС, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний Π±ΡƒΠ΄Π΅Ρ‚ совсСм Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ слоТСния Π΄Π²ΡƒΡ… чисСл. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ JavaScript-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π»Π° странныС ошибки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

Достаточно слоТно ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ язык программирования ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ. Но, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ подходящих инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Один ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ для изучСния программирования, ΠΈ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования β€” это Visual Studio Code. Он бСсплатСн, Π½Π΅Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»Π΅Π½ ΠΊ рСсурсам, Π΅Π³ΠΎ ΠΊΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ практичСски Π΄ΠΎ бСсконСчности Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ. Одна ΠΈΠ· Π΅Π³ΠΎ самых Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ JavaScript-ΠΊΠΎΠ΄Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² Π½Ρ‘ΠΌ распространённых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ срСдствами TypeScript. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ, воспользовавшись ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ вставив ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ JavaScript-Ρ„Π°ΠΉΠ»Π°:

// @ts-check

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π΅ ошибки, Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния JavaScript, ошибкой Π½Π΅ являСтся.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ JavaScript Π½Π΅ считаСт ошибками

Если Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ этого Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ // @ts-check, Ρ‚ΠΎ VS Code Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ строки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ошибки.


Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ строки ΠΊΠΎΠ΄Π°

Если навСсти ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку, появится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ, содСрТащСС объяснСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.


ОбъяснСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

КакиС ΠΈΠ· этого ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹? Π₯отя JavaScript Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ‚Π½ΠΎ относится ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π½Π΅Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π΅Ρ‰Π°ΠΌ, Ссли ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ JavaScript с качСствСнным Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ΄Π° ΠΈ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ инструмСнтами, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ Π½Π° Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ соврСмСнныС языки программирования. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° JavaScript оказываСтся Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, ΠΈ, СстСствСнно, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΅Π³ΠΎ прСимущСства Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ Π΄Π΅Π²Π°ΡŽΡ‚ΡΡ.

▍2. JavaScript Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ООП


ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП) β€” это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ООП ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ программисту ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ простой ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ООП ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ красивыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ООП Π² JavaScript. ΠœΠΎΡ‘ любимоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° β€” это TypeScript β€” опСнсорсный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Microsoft Π² 2012 Π³ΠΎΠ΄Ρƒ. TypeScript прСдставляСт собой Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ разновидности JavaScript, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ООП (Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ возмоТности Π²Ρ€ΠΎΠ΄Π΅ строгой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ²).

ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ JavaScript, ΠΈ Ρ‡Ρ‚ΠΎ TypeScript β€” это, всё ΠΆΠ΅, Π½Π΅ JavaScript. И, Π½Π° самом Π΄Π΅Π»Π΅, это Ρ‚Π°ΠΊ. Но Π²ΠΎΡ‚ ΠΎΠ΄Π½Π° интСрСсная Π΄Π΅Ρ‚Π°Π»ΡŒ. Код ΠΏΠΈΡˆΡƒΡ‚ Π½Π° TypeScript, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π΅Π³ΠΎ Π² JavaScript ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСм Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΈΠ· ΠΌΠΈΡ€ΠΎΠ² TypeScript ΠΈ JavaScript. Если Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ TypeScript, Ρ‚ΠΎ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ соврСмСнный язык программирования, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ смоТСтС ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄, ΠΈ Ρ‚Π° ΡˆΠΈΡ€ΠΎΡ‡Π°ΠΉΡˆΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ JavaScript.

И, Ρ‡Ρ‚ΠΎ приятнСС всСго, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ TypeScript-ΠΊΠΎΠ΄Π° Π² JavaScript производится автоматичСски. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² сгСнСрированном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ JavaScript-ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, для отраТСния Π² Π½Ρ‘ΠΌ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСдствами TypeScript, довольно Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠ΅ конструкции, Π½ΠΎ это Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ мСняСт. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ООП, Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡΡΡŒ срСдствами соврСмСнных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

НС Π²Π΅Ρ€ΠΈΡ‚Π΅? Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· самых соврСмСнных ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠ· TypeScript ΠΈ Electron β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ JavaScript-ΠΊΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (хотя Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Electron ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΌΠΈ возмоТностями). Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ прилоТСния β€” это Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VS Code. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‚ самый инструмСнт, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ JavaScript-ΠΊΠΎΠ΄, сам написан Π½Π° JavaScript. ΠŸΡ€Π°Π²Π΄Π°, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‚ΠΎ VS Code написан Π½Π° TypeScript, Π½ΠΎ ΠΊΠΎΠ΄, написанный Π½Π° этом языкС, всё Ρ€Π°Π²Π½ΠΎ, прСобразуСтся Π² JavaScript-ΠΊΠΎΠ΄.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, изучая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вовсС Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TypeScript, ΠΈ Π½ΠΎΠ²Ρ‹Π΅ JavaScript-программисты, Ссли Ρ€Π΅ΡˆΠ°Ρ‚ Ρ‚Π°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ, смогут ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, Π½Π΅ изучая ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП. Π­Ρ‚ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅, вопрос Π²Ρ‹Π±ΠΎΡ€Π°. Π’ любом случаС, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ JavaScript β€” язык Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ, ΠΈ Π² Π½Π΅Π³ΠΎ постСпСнно Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ возмоТности, ΡΠ±Π»ΠΈΠΆΠ°ΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ со всСм Ρ‚Π΅ΠΌ Ρ†Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² TypeScript.

▍3. Π’ΠΎΠΊΡ€ΡƒΠ³ ΠΏΠΎΠ»Π½ΠΎ нСкачСствСнного JavaScript-ΠΊΠΎΠ΄Π°


Π§Ρ‚ΠΎ Ρ‚ΡƒΡ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ. НСкачСствСнный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° любом языкС программирования. Π‘Π»Ρ‹ΡˆΠ°Π»ΠΈ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎ Visual Basic?

▍4. Для JavaScript-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΡƒΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ


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

Π‘ Π½Π΅ΠΊΠΎΠ΅ΠΉ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки. Однако Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ языки ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ сильно, ΠΊΠ°ΠΊ JavaScript. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ программистом Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ для всСх JavaScript-ΠΌΠΈΡ€Π΅, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ собствСнный Π½Π°Π±ΠΎΡ€ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€ΠΈ этом ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ слоТСн ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ Π²Π°ΠΌ, скаТСм, какая-Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΅Ρ‘ ΠΈΠ·ΡƒΡ‡ΠΈΠ² (Π° ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Ρ‘ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΡƒΠΆΠ΅ потСряСт Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π° Π΅Ρ‘ мСсто ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, ΠΏΡ€ΠΈΡ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β€” Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя, всСобщий интСрСс).

Каким Π±Ρ‹ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ всё это Π½ΠΈ Π±Ρ‹Π»ΠΎ, эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½Π° самом Π΄Π΅Π»Π΅, Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ². Если Π½Π΅ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм JavaScript, Ρ‚ΠΎ Π΅ΠΌΡƒ Π»ΡƒΡ‡ΡˆΠ΅ всСго Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² сторонС ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈΠ΄Ρ‘Ρ‚ Π»ΠΈ Ρ€Π΅Ρ‡ΡŒ ΠΎ Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстном, Π²Ρ€ΠΎΠ΄Π΅ jQuery, Angular, React ΠΈΠ»ΠΈ Vue, ΠΈΠ»ΠΈ ΠΎ Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½Π½ΠΎΠΌ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΎ написано это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ Π² Ρ‚Ρƒ сСкунду, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° эта ΡΡ‚Π°Ρ‚ΡŒΡ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ освоив Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, вСроятно, Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· популярных Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов. Но это β€” ΡƒΠΆΠ΅ совсСм другая история.

Π˜Ρ‚ΠΎΠ³ΠΈ


На самом Π΄Π΅Π»Π΅, Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка программирования β€” это вопрос, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚. Автор этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° подСлился здСсь лишь собствСнным ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ Π½Π° этот счёт, ΠΏΡ€ΠΈΠ²Ρ‘Π» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π»ΠΈΠ·ΠΊΠΈ Π΅ΠΌΡƒ Π² силу Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. Но, Π² любом случаС, всС программисты с Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚, ΠΈ ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹ слоТным Π½ΠΈ Π±Ρ‹Π» Π±Ρ‹ Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка, это Π²Ρ‹Π±ΠΎΡ€, всё Ρ€Π°Π²Π½ΠΎ, приходится Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Богласны Π»ΠΈ Π²Ρ‹ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ JavaScript β€” это, Π² соврСмСнных условиях, самый Π»ΡƒΡ‡ΡˆΠΈΠΉ язык для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ? Если Π½Π΅ согласны β€” Ρ‚ΠΎΠ³Π΄Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для этой Ρ†Π΅Π»ΠΈ?

habr.com

ΠžΡΠ½ΠΎΠ²Ρ‹ BASH. Π§Π°ΡΡ‚ΡŒ 1 / Habr

БСзусловно, всС Ρ‚Π΅ ΠΊΡ‚ΠΎ общаСтся с ОБ Linux Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· Π΄Π° ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ(Π²ΠΎ всяком случаС ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ) с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ BASH. Но BASH Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, это Π΅Ρ‰Π΅ ΠΈ прСвосходный скриптовый язык программирования.
ЦСль этой ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΡŽΠ·Π΅Ρ€ΠΎΠ² с bash, Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ синтаксис, основныС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΈ Ρ„ΠΈΡˆΠΊΠΈ языка, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°ΠΆΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смог Π±Ρ‹ΡΡ‚Ρ€Π΅Π½ΡŒΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ простой скрипт для выполнСния Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ(-нСдСльной, -мСсячной) Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ, скаТСм, Β«Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅Β» Π½Π°Π²Π°ΡΡ‚ΡŒ скриптик для бэкапа Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅


BASH β€” Bourne-Again SHell (Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ пСрСводится ΠΊΠ°ΠΊ Β«ΠΏΠ΅Ρ€Π΅Ρ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ шСл», ΠΈΠ»ΠΈ Β«Π‘Π½ΠΎΠ²Π° шСл Π‘ΠΎΡ€Π½Π°(ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ sh)Β»), самый популярный ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π² ΡŽΠ½ΠΈΠΊΡΠΎΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах, Π² особСнности Π² GNU/Linux. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ряд встроСнных ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания своих скриптов.

break Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
continue Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for, while ΠΈΠ»ΠΈ until
echo Π²Ρ‹Π²ΠΎΠ΄ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π½Π° стандартноС устройство Π²Ρ‹Π²ΠΎΠ΄Π°
exit Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
export ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ процСссы Π² срСдС
hash Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ
kill посылаСт сигнал Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСссу
pwd Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
read Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ строку ΠΈΠ· Π²Π²ΠΎΠ΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π΅ для присвоСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.\
return заставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ
shift ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π°Π»Π΅Π²ΠΎ
test вычисляСт условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
times Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ систСмноС врСмя, использованноС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ Π΅Π΅ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ
trap ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ сигнала
unset Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
wait ΠΆΠ΄Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ процСсса ΠΈ сообщаСт Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС.

И ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ ΠΊΡ€ΠΎΠΌΠ΅ встроСнных ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ Π²Π½Π΅ΡˆΠ½ΠΈΡ…, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ познакомимся ΡƒΠΆΠ΅ Π² процСссС

Π§Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ с самого Π½Π°Ρ‡Π°Π»Π°


1. Π›ΡŽΠ±ΠΎΠΉ bash-скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ со строки:

#!/bin/bash
Π² этой строкС послС #! указываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ bash-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ, поэтому Ссли ΠΎΠ½ Ρƒ вас установлСн Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС(Π³Π΄Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π°Π±Ρ€Π°Π² whereis bash) помСняйтС Π΅Ρ‘ Π½Π° ваш ΠΏΡƒΡ‚ΡŒ.
2. ΠšΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа # (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки).
3. Π’ bash ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏΠ°(ΠΎ Π½ΠΈΡ… Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅)

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ скрипта


ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ:

#!/bin/bash
#ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π³Π΄Π΅ Ρƒ нас хранится bash-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€
parametr1=$1 #присваиваСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ parametr1 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° скрипта
script_name=$0 #присваиваСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ script_name Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ скрипта
echo "Π’Ρ‹ запустили скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ $script_name ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ $parametr1" # ΠΊΠΎΠΌΠ°Π½Π΄Π° echo Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· $имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
echo 'Π’Ρ‹ запустили скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ $script_name ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ $parametr1' # здСсь ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… Π½Π΅ происходит подстановки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….
exit 0 #Π’Ρ‹Ρ…ΠΎΠ΄ с ΠΊΠΎΠ΄ΠΎΠΌ 0 (ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния скрипта:

ite@ite-desktop:~$ ./test.sh qwerty
Π’Ρ‹ запустили скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ ./test.sh ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ qwerty
Π’Ρ‹ запустили скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ $script_name ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ $parametr1

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ познакомились ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ скрипту ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ:

$DIRSTACK - содСрТимоС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²
$EDITOR - тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
$EUID - Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ UID. Если Π²Ρ‹ использовали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ su для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ эта пСрСмСнная содСрТит UID этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ...
$UID - ...содСрТит Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π»ΠΎΠ³ΠΈΠ½Π΅.
$FUNCNAME - имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² скриптС.
$GROUPS - массив Π³Ρ€ΡƒΠΏΠΏ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
$HOME - домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
$HOSTNAME - ваш hostname
$HOSTTYPE - Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Ρ‹.
$LC_CTYPE - внутрСнняя пСрСмСнная, котороя опрСдСляСт ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ символов
$OLDPWD - ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
$OSTYPE - Ρ‚ΠΈΠΏ ОБ
$PATH - ΠΏΡƒΡ‚ΡŒ поиска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
$PPID - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса
$SECONDS - врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта(Π² сСк.)
$# - ΠΎΠ±Ρ‰Π΅Π΅ количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… скрипту
$* - всС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹Π½Π΅ скрипту(выводятся Π² строку)
$@ - Ρ‚ΠΎΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ выводятся Π² столбик
$! - PID послСднСго Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² Ρ„ΠΎΠ½Π΅ процСсса
$$ - PID самого скрипта

Условия


УсловныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π΄ΡƒΠΌΠ°ΡŽ, Π·Π½Π°ΠΊΠΎΠΌΡ‹ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· пытался Π½Π° Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ bash условия ΠΏΠΈΡˆΡƒΡ‚ΡΡ слСд. ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅):
#!/bin/bash
source=$1 #Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ source засовываСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ скрипта
dest=$2 #Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ dest засовываСм Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ скрипта

if [[ «$source» -eq «$dest» ]] # Π² ΠΊΠΎΠ²Ρ‹Ρ‡ΠΊΠ°Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для сравнСния. -eq — логичСскоС сравнСниС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ «Ρ€Π°Π²Π½Ρ‹»
then # Ссли ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½Ρ‹, Ρ‚ΠΎ
echo «ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΊ $dest ΠΈ источник $source ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ»!» #Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС ΠΎΠ± ошибкС, Ρ‚.ΠΊ. $source ΠΈ $dest Ρƒ нас Ρ€Π°Π²Π½Ρ‹
exit 1 # Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ с ошибкой (1 — ΠΊΠΎΠ΄ ошибки)
else # Ссли ΠΆΠ΅ ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π²Π½Ρ‹
cp $source $dest # Ρ‚ΠΎ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cp: ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ источник Π² ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ
echo «Π£Π΄Π°Ρ‡Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅!»
fi #ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ условия.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния скрипта:
ite@ite-desktop:~$ ./primer2.sh 1 1
ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΊ 1 ΠΈ источник 1 ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ»!
ite@ite-desktop:~$ ./primer2.sh 1 2
Π£Π΄Π°Ρ‡Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅!

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° if-then-else ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
if <ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°(0 ΠΈΠ»ΠΈ 1)>
then
<Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ послС if истино, Ρ‚ΠΎ выполняСтся этот Π±Π»ΠΎΠΊ>
else
<Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ послС if Π»ΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎΡ‚ этот>
Π’ качСствС ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ структуры [[ , [ , test, (( )) ΠΈΠ»ΠΈ любая другая(ΠΈΠ»ΠΈ нСсколько) linux-ΠΊΠΎΠΌΠ°Π½Π΄Π°.
test — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для логичСского сравнСния. послС выраТСния, Π½Π΅ΠΎΡŒΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобка «]»
[ — синоним ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ test
[[ — Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ вСрсия «[» (начиная с вСрсии 2.02)(ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅), Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ || (ΠΈΠ»ΠΈ), & (ΠΈ). Π”ΠΎΠ»Π½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΠ± скобку «]]»
(( )) — матСматичСскоС сравнСниС.
для построСния многоярусных условий Π²ΠΈΠ΄Π°:
if ...
then ....
else
if ....
then....
else ....

для краткости ΠΈ читаСмости ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуру:
if ..
then ...
elif ...
then ...
elif ...

Условия. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€


Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΡƒΡŽ-Ρ‚ΠΎ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с большим количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ цСлСсообразнСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ case.
#!/bin/bash
echo "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°Ρ‚ΠΎΡ€ для запуска:"
echo "1 Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ nano"
echo "2 Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ vi"
echo "3 Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ emacs"
echo "4 Π’Ρ‹Ρ…ΠΎΠ΄"
read doing #здСсь ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $doing со стандартного Π²Π²ΠΎΠ΄Π°

case $doing in
1)
/usr/bin/nano # Ссли $doing содСрТит 1, Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ nano
;;
2)
/usr/bin/vi # Ссли $doing содСрТит 2, Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ vi
;;
3)
/usr/bin/emacs # Ссли $doing содСрТит 3, Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ emacs
;;
4)
exit 0
;;
*) #Ссли Π²Π²Π΅Π΄Π΅Π½ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² case Π½Π΅ описываСтся, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:
echo "Π’Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ дСйствиС"

esac #ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° case.


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹:
ite@ite-desktop:~$ ./menu2.sh
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°Ρ‚ΠΎΡ€ для запуска:
1 Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ nano
2 Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ vi
3 Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ emacs
4 Π’Ρ‹Ρ…ΠΎΠ΄

ПослС Π²Ρ‹Π±ΠΎΡ€ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ наТатия Enter Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ(Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ всС ΠΏΡƒΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ Ρƒ вас установлСны эти Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ πŸ™‚ )
ΠŸΡ€Π²Π΅Π΄Ρƒ список логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для конструкции if-then-else-fi:
-z # строка пуста
-n # строка Π½Π΅ пуста
=, (==) # строки Ρ€Π°Π²Π½Ρ‹
!= # строки Π½Π΅Ρ€Π°Π²Π½Ρ‹
-eq # Ρ€Π°Π²Π½ΠΎ
-ne # Π½Π΅Ρ€Π°Π²Π½ΠΎ
-lt,(< ) # мСньшС
-le,(<=) # мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
-gt,(>) #большС
-ge,(>=) #большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
! #ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ логичСского выраТСния
-a,(&&) #логичСскоС «И»
-o,(||) # логичСскоС Β«Π˜Π›Π˜Β»

Π‘ основами языка ΠΈ условиями ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ρ€Π°Π·ΠΎΠ±ΡŒΡŽ Π΅Ρ‘ Π½Π° нСсколько частСй(допустим Π½Π° 3). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

UPD: Π˜ΡΠΏΡ€Π°Π²ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки
UPD: Обновил Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎ условия if-then-else

Π‘Ρ‚Π°Ρ‚ΡŒΠΈ Π½Π° unix-admin.su

habr.com

ΠžΡ‚ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ для заполнСния поля ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹*