ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux

Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Ρ„Π°ΠΉΠ»Π΅

ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» Ρ‚Π΅ΠΌΡƒ)

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. 32142: 682293051. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-32142: 682293051. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 32142: 682293051. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° вхоТдСния ΠΏΠΎ Ρ†Π΅Π»ΠΎΠΉ строкС? Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ ΠΏΠΎ ΠΊΠΎΠ½Ρ†Ρƒ

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. 32142: 682293051. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-32142: 682293051. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 32142: 682293051. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

НС понял вопроса. И пиши вопрос Π² Ρ‚Π΅Π»Π΅ сообщСния, Π° Π½Π΅ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. 157545: 1381963876. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-157545: 1381963876. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 157545: 1381963876. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅

Волько пСрСзаписав всС содСрТимоС Ρ„Π°ΠΉΠ»Π° с Π½Π°Ρ‡Π°Π»Π°.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ строки Π·Π½Π°ΠΊ(ΠΈ) Π½Π°Ρ‡Π°Π»Π° построчного коммСнтария, Ссли ΠΎΠ½ΠΈ Π² этом языкС Π΅ΡΡ‚ΡŒ.

Π‘ Ρ‡Π΅ΠΌ ΠΈΠ· Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для этого Π²Ρ‹ испытываСтС затруднСния: с построчным Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° (ΠΏΠΎΡ‚ΠΎΠΊΠ°)? со подсчСтом ΠΈΠ»ΠΈ сравнСниСм строк? со слоТСниСм строк? с построчным Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π² Ρ„Π°ΠΉΠ» (ΠΏΠΎΡ‚ΠΎΠΊ)?

КакоС это ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ словСсному вопросу?

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Как Ρ‚ΠΎ Ρ‚Π°ΠΊ получаСтся Ρ‡Ρ‚ΠΎ всСравно комСнтируСтся 2 строки,Ρ‡Ρ‚ΠΎ Π±Ρ‹ я Π½Π΅ Π΄Π΅Π»Π°Π», ΠΏΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ я ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅,ΠΈ дСлаю это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Π΅ΠΏΠ»ΠΎ, Π½ΠΎ это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π§ΠΈΡ‚Π°ΠΉ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ рСгулярныС выраТСния.

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. p. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-p. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° p. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠœΠΎΠΆΠ΅Ρ‚ всё ΠΆΠ΅ ΠΏΡ€ΠΎΡ‡Ρ‚Ρ‘ΡˆΡŒ ΠΌΠ°Π½ΡƒΠ°Π» Ρ…ΠΎΡ‚ΡŒ ΠΏΠΎ Ρ‡Π΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, Π΄Π΅Π±ΠΈΠ»ΠΎΠΈΠ΄?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

НаписаниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² скриптах Bash

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. Shebang v Bash. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-Shebang v Bash. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Shebang v Bash. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π° – использованиС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ – это понятноС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ объяснСниС ΠΈΠ»ΠΈ аннотация, написанная Π² сцСнарии ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ вашим сцСнариям Bash сэкономит Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ усилий, Ссли Π²Ρ‹ посмотритС Π½Π° свой ΠΊΠΎΠ΄ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ написали нСсколько мСсяцСв ΠΈΠ»ΠΈ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π½Π΅ вспомнитС, ΠΏΠΎΡ‡Π΅ΠΌΡƒ написали ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ слоТный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Ссли Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ систСмным администраторам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сцСнария, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ваш ΠΊΠΎΠ΄ ΠΈ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для объяснСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ слоТноС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ подстановка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго Bash-скрипта, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ. НС ΠΎΠ±ΡŠΡΡΠ½ΡΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ простоС ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅ для читатСля.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим основы написания ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½Π° Bash.

НаписаниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Bash

Bash ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ написано послС Ρ…Π΅Ρˆ-ΠΌΠ΅Ρ‚ΠΊΠΈ ( #) Π² строкС. ЕдинствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π° – пСрвая строка Π² скриптС начинаСтся с #!символов. Π­Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов называСтся Shebang ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части Ρ„Π°ΠΉΠ»Π°.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ строки ΠΈΠ»ΠΈ встроСны Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄:

ΠŸΡ€ΠΎΠ±Π΅Π» послС Ρ…Π΅Ρˆ-ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π΅ обязатСлСн, Π½ΠΎ ΠΎΠ½ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ коммСнтария.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΡ€ΠΈ тСстировании скрипта. ВмСсто удалСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строк ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…:

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Bash

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° языков программирования, Bash Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ многострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π‘Π°ΠΌΡ‹ΠΉ простой способ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ многострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Bash – Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ:

Π”Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся использованиС HereDoc. Π­Ρ‚ΠΎ Ρ‚ΠΈΠΏ пСрСнаправлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ нСсколько строк Π²Π²ΠΎΠ΄Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Если Π±Π»ΠΎΠΊ HereDoc Π½Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΌ многострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²:

ИспользованиС HereDoc – это Ρ…Π°ΠΊ, Π° Π½Π΅ настоящий встроСнный способ написания многострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Bash. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ однострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

НаписаниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π² Ρ‚ΠΎΠΌ числС Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌΡƒ самому, ΠΏΠΎΠ½ΡΡ‚ΡŒ сцСнарий ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π’ Bash всС послС Ρ…Π΅Ρˆ-ΠΌΠ΅Ρ‚ΠΊΠΈ ( #) ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки считаСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Если Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

🐧 Как Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SED Π½Π° Linux

ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. sed linux bash. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux-sed linux bash. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° sed linux bash. ΠšΡ‚ΠΎ вкурсС ΠΊΠ°ΠΊ Π½Π° bash Π·Π°ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ»ΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅? Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SED Π½Π° Linux.

По словам man sed, Sed – stream editor.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed Π² linux, возьмСм, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅ содСрТимым:

Π‘Ρ‹Π» Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ряд строк (# Π² Π½Π°Ρ‡Π°Π»Π΅).

Как Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ шаблонам, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SED Π½Π° Linux

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ строку с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ шаблоном с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed, просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° раскоммСнтируСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΡƒΡŽ строку.

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ pattern ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом строки ΠΈ Ρ„Π°ΠΉΠ»Π° с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°.

Если Ρ„Π°ΠΉΠ» содСрТит нСсколько строк, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΠΈ всС ΠΎΠ½ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… всС, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ запускаСтС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sed глобально, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ g:

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с шаблоном This, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ;

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° раскоммСнтируСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, которая Π² Π΄Π°Π½Π½ΠΎΠΌ случаС являСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкой, #This is line2.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ строки Π² Ρ„Π°ΠΉΠ»Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, This, запуститС;

Как Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ строки Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SED Π½Π° Linux

Как Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ строки Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SED Π½Π° Linux

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ sed для раскоммСнтирования ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° строки Π² Ρ„Π°ΠΉΠ»Π΅.

Π’ Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€ΠΈ использовании Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° vim Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строк, Π½Π°ΠΆΠ°Π² ESC ΠΈ ввСдя: set number;

Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку Π½ΠΎΠΌΠ΅Ρ€ 4 Π² Ρ„Π°ΠΉΠ»Π΅, Π½Π°Π΄ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ sed ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

# β€” Π½Π°Ρ‡Π°Π»ΠΎ коммСнтария Π² Bash

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

Π’ Bash, ΠΊΠ°ΠΊ ΠΈ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС программирования прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ коммСнтирования ΠΎΡ‡Π΅Π½ΡŒ прост: «Всё, Ρ‡Ρ‚ΠΎ начинаСтся с символа # ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки считаСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.Β»

НС Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ Π΅Ρ‘ написал, с ΠΊΠ°ΠΊΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ, ΠΊΠΎΠ³Π΄Π°, какая это вСрсия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°. А Ρ‚Π°ΠΊΠΆΠ΅ массу ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ (ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ) ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. =)

Π’Π°ΠΊ выглядит ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π° языкС программирования Bash:

Однако, этим ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ исчСрпываСтся. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для описания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ происходит Π² самом ΠΊΠΎΠ΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ ΠΊ мСсту располоТСнныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, какая пСрСмСнная Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΈ дальшС ΡƒΠΆΠ΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ Π½Π΅Ρ‡Ρ‚ΠΎ осмыслСнноС, Π° Π½Π΅ просто Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄.

Π£ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° полСзная функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ экранированиС ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. И Ρ‚ΠΎΠ³Π΄Π° это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΡ‘ΠΌ позволяСт ΡƒΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, сократив Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. А, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΎ просто лСнь ΠΏΠΈΡΠ°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΠ½ Π²Π²Ρ‘Π» Ρ€Π΅ΠΆΠΈΠΌ Β«Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния».

Π’Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НапримСр, для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° экран. А послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π° ΠΈ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС тСстировочныС строки, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ просто Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ это сильно ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ для поиска ошибок ΠΈΠ»ΠΈ дописывания ΠΊΠΎΠ΄Π° этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ закоммСнтированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° β€” это большоС спасибо Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ с Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ оставил ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π·Π° экономию Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½Π΅ΠΉ. Π’Π΅, ΠΊΡ‚ΠΎ пытался Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅ Ρ‡ΡƒΠΆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, мСня ΠΏΠΎΠΉΠΌΡƒΡ‚. =)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

НаписаниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² сцСнариях Bash

ΠŸΡ€ΠΈ написании сцСнариСв Bash всСгда рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ чистым ΠΈ понятным. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π±Π»ΠΎΠΊΠΈ, созданиС отступов, присвоСниС ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ функциям β€” Π²ΠΎΡ‚ нСсколько способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ β€” это понятноС для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° объяснСниС ΠΈΠ»ΠΈ аннотация, написанная Π² сцСнарии ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ вашим сцСнариям Bash сэкономит Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ усилий, Ссли Π²Ρ‹ посмотритС Π½Π° свой ΠΊΠΎΠ΄ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сцСнарий, написанный нСсколько мСсяцСв ΠΈΠ»ΠΈ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π½Π΅ вспомнитС, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ написали ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ слоТный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Ссли Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ систСмным администраторам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° скрипта, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ваш ΠΊΠΎΠ΄ ΠΈ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для объяснСния ΠΊΠΎΠ΄Π°. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ слоТноС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ подстановка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго сцСнария Bash, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ ΠΈ ΠΏΠΎ сущСству. НС ΠΎΠ±ΡŠΡΡΠ½ΡΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ простоС ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅ для читатСля.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим основы написания ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Bash.

НаписаниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Bash

Bash ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ написано Π² строкС послС Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ ( # ). ЕдинствСнноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π° β€” пСрвая строка скрипта начинаСтся с символа #! символы. Π­Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов называСтся Shebang ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части Ρ„Π°ΠΉΠ»Π°.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ строки ΠΈΠ»ΠΈ встроСны Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄:

ΠŸΡ€ΠΎΠ±Π΅Π» послС Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ ΠΎΠ½ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ коммСнтария.

Если ваш тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π·Π΅Π»Π΅Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΡ€ΠΈ тСстировании скрипта. ВмСсто удалСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строк ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…:

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Bash

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° языков программирования, Bash Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ многострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π‘Π°ΠΌΡ‹ΠΉ простой способ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ многострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Bash β€” это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ:

ИспользованиС HereDoc β€” это Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ настоящий встроСнный способ написания многострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Bash. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ однострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

НаписаниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π² Ρ‚ΠΎΠΌ числС Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ самим сСбС, ΠΏΠΎΠ½ΡΡ‚ΡŒ сцСнарий ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π’ Bash всС, Ρ‡Ρ‚ΠΎ находится послС Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ ( # ) ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, считаСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *