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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° BashΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 7

Автор Π“Π°Ρ€ΠΎΠ»ΡŒΠ΄ РодригСс

13

На ΠΌΠΎΠΉ взгляд, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ запись Ρ‚ΠΈΠΏΠ° $(...), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ запись Π² ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΈ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ. (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².)

14

надСюсь со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст появится, ΠΎΡΠΈΠ»ΠΈΡ‚ΡŒ ΠΈ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².)

15

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ИБВИНА ΠΈ Π›ΠžΠ–Π¬ (True ΠΈ False), bash Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках 0 соотвСтствуСт False (Π›ΠΎΠΆΡŒ), Π° 1 β€” True (Π˜ΡΡ‚ΠΈΠ½Π°). Π’ bash всС Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Бвязано это с Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (см. Π½ΠΈΠΆΠ΅).

16

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $$ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ свободный PID. ИмСнно поэтому использованиС Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для вновь создаваСмых Ρ„Π°ΠΉΠ»ΠΎΠ².(ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°)

17

На самом Π΄Π΅Π»Π΅ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ: ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π²ΠΈΠ΄Π° 2>&1 пСрСнаправляСт Π²Ρ‹Π²ΠΎΠ΄ ошибок (дСскриптор 2) Π½Π° стандартный Π²Ρ‹Π²ΠΎΠ΄ (дСскриптор 1). Π—Π½Π°ΠΊ Β«Π·Π°Π³ΠΎΠ³ΡƒΠ»ΠΈΠ½Ρ‹Β» β€” & β€” Ρ‚ΡƒΡ‚ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ bash, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ Π½Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ 1, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ» с дСскриптором 1, Ρ‚. Π΅. стандартный Π²Ρ‹Π²ΠΎΠ΄. Если Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

$ ΠΊΠΎΠΌΠ°Π½Π΄Π° 2>1

Ρ‚ΠΎ стандартный Π²Ρ‹Π²ΠΎΠ΄ ошибок ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ 1. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠ΅ΠΉ 2>&1 ΠΌΡ‹ «сцСпляСм» Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ошибок вмСстС. А ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом > Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅) ΠΌΡ‹ отправляСм вСсь Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² /dev/null. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡƒΠ±Ρ€Π°Π² 2>&1 ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ пСрСзапустив Π΅Π΅.(ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°)

18

И Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΎΠ½Π° Ρ‚Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ Π½Π° вашСй Linux систСмС. (ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°)

19

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия Π² скриптС ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ спСцифичных для bash Π² ALT Linux Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ checkbashisms, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ взят ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° devscripts Debian.(ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°)

20

ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ on-line руководство Advanced Bash-Scripting Guide (ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°)