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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 88

Автор Шоттс Уильям

#!/bin/bash

# Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° Ρ‡Π΅Ρ€Π΅Π· FTP

FTP_SERVER=ftp.nl.debian.org

FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom

REMOTE_FILE=debian-cd_info.tar.gz

ftp -n << _EOF_

open $FTP_SERVER

user anonymous [email protected]

cd $FTP_PATH

hash

get $REMOTE_FILE

bye

_EOF_

ls -l $REMOTE_FILE

Если Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пСрСнаправлСния << Π½Π° <<-, командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ символы табуляции Π²ΠΎ встроСнном Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. Благодаря этому Π²ΠΎ встроСнный Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ отступы для большСй удобочитаСмости:

#!/bin/bash

# Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° Ρ‡Π΅Ρ€Π΅Π· FTP

FTP_SERVER=ftp.nl.debian.org

FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom

REMOTE_FILE=debian-cd_info.tar.gz

ftp -n <<- _EOF_

Β Β Β Β Β Β Β Β open $FTP_SERVER

Β Β Β Β Β Β Β Β user anonymous [email protected]

Β Β Β Β Β Β Β Β cd $FTP_PATH

Β Β Β Β Β Β Β Β hash

Β Β Β Β Β Β Β Β get $REMOTE_FILE

Β Β Β Β Β Β Β Β bye

Β Β Β Β Β Β Β Β _EOF_

ls -l $REMOTE_FILE

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

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

26. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ свСрху Π²Π½ΠΈΠ·

Π‘ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΡ… становится всС Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ слоТному ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ с успСхом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡŽ дСлСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ слоТных Π·Π°Π΄Π°Ρ‡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΈ простыС.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ β€” ΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈ ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ β€” для ΠΏΡ€ΠΈΡˆΠ΅Π»ΡŒΡ†Π° с ΠœΠ°Ρ€ΡΠ°. Π’Π΅ΡΡŒ процСсс ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов:

1. Π‘Π΅ΡΡ‚ΡŒ Π² ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

2. Π”ΠΎΠ΅Ρ…Π°Ρ‚ΡŒ Π΄ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°.

3. ΠŸΡ€ΠΈΠΏΠ°Ρ€ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

4. Π’ΠΎΠΉΡ‚ΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½.

5. ΠšΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹.

6. Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

7. Π”ΠΎΠ΅Ρ…Π°Ρ‚ΡŒ Π΄ΠΎ Π΄ΠΎΠΌΠ°.

8. ΠŸΡ€ΠΈΠΏΠ°Ρ€ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

9. Π’ΠΎΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΌ.

Однако инопланСтянину с ΠœΠ°Ρ€ΡΠ° ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка потрСбуСтся большС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. Π—Π°Π΄Π°Ρ‡Ρƒ Β«ΠŸΡ€ΠΈΠΏΠ°Ρ€ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½ΡƒΒ» ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ шаги.

1. Найти мСсто Π½Π° ΠΏΠ°Ρ€ΠΊΠΎΠ²ΠΊΠ΅.

2. ΠŸΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π½Π° это мСсто.

3. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ.

4. ΠŸΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° стояночный Ρ‚ΠΎΡ€ΠΌΠΎΠ·.

5. Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

6. Π—Π°ΠΏΠ΅Ρ€Π΅Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

ΠŸΠΎΠ΄Π·Π°Π΄Π°Ρ‡Ρƒ Β«Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒΒ» ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ шаги, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΠ΅Β», Β«Π’Ρ‹Π½ΡƒΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ заТигания» ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, ΠΏΠΎΠΊΠ° всС шаги посСщСния ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π²ΠΎ всСх дСталях.

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

Π’ этой Π³Π»Π°Π²Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΌ проСктирования свСрху Π²Π½ΠΈΠ· для дальнСйшСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сцСнария Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ наш сцСнарий Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ HTML, выполняя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу.

2. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ страницы.

3. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ страницы.

4. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ страницы.

5. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ страницы.

6. ВывСсти Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° страницС.

7. ВывСсти Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя.

8. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ страницы.

9. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько Π·Π°Π΄Π°Ρ‡ ΠΌΠ΅ΠΆΠ΄Ρƒ шагами 7 ΠΈ 8:

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

β€’ ДисковоС пространство β€” информация ΠΎΠ± использовании дискового пространства Π½Π° систСмных устройствах хранСния.

β€’ ОбъСм Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² β€” объСм дискового пространства, занятого ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Если Π±Ρ‹ Ρƒ нас Π±Ρ‹Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ пСрСчислСнныС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΌΡ‹ Π±Ρ‹ просто Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈΡ… Π² сцСнарий, воспользовавшись ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ подстановки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄:

#!/bin/bash

# ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° страницы с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ систСмС

TITLE="System Information Report For $HOSTNAME"

CURRENT_TIME=$(date +"%x %r %Z")

TIME_STAMP="Generated $CURRENT_TIME, by $USER"

cat << _EOF_

<HTML>

Β Β Β Β Β Β Β Β <HEAD>

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β <TITLE>$TITLE</TITLE>

Β Β Β Β Β Β Β Β </HEAD>

Β Β Β Β Β Β Β Β <BODY>

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β <H1>$TITLE</H1>

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β <P>$TIME_STAMP</P>

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $(report_uptime)

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $(report_disk_space)

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β $(report_home_space)

Β Β Β Β Β Β Β Β </BODY>

</HTML>

_EOF_

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

function имя {

Β Β Β Β Β Β Β Β ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Β Β Β Β Β Β Β Β return

}

Π³Π΄Π΅ имя β€” это имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Вторая Ρ„ΠΎΡ€ΠΌΠ° выглядит Ρ‚Π°ΠΊ:

имя () {

Β Β Β Β Β Β Β Β ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Β Β Β Β Β Β Β Β return

}

ОбС Ρ„ΠΎΡ€ΠΌΡ‹ эквивалСнтны ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½Π° вмСсто Π΄Ρ€ΡƒΠ³ΠΎΠΉ. НиТС приводится сцСнарий, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ:

1Β Β Β Β Β #!/bin/bash

2

3Β Β Β Β Β # ДСмонстрация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

4

5Β Β Β Β Β function funct {

6Β Β Β Β Β Β Β Β Β Β Β Β Β echo "Step 2"

7Β Β Β Β Β Β Β Β Β Β Β Β Β return

8Β Β Β Β Β }

9

10Β Β Β Β Β # Π—Π΄Π΅ΡΡŒ начинаСтся основная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

11

12Β Β Β Β Β echo "Step 1"

13Β Β Β Β Β funct

14Β Β Β Β Β echo "Step 3"

Когда командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ сцСнарий, ΠΎΠ½Π° пропускаСт строки с 1-ΠΉ ΠΏΠΎ 11-ю, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ содСрТат ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ начинаСтся со строки 12 с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ echo. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 13 Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ funct, ΠΈ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π² строку 6, ΠΈ выполняСтся вторая ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ выполняСтся строка 7. Команда return Π² этой строкС Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² строку, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (строка 14). ПослС этого выполняСтся Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π΅ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² сцСнарии Π΄ΠΎ ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π°.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² наш сцСнарий ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

#!/bin/bash

# ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄Π° страницы с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ систСмС

TITLE="System Information Report For $HOSTNAME"

CURRENT_TIME=$(date +"%x %r %Z")

TIME_STAMP="Generated $CURRENT_TIME, by $USER"

report_uptime () {

Β Β Β Β Β Β Β Β return

}

report_disk_space () {

Β Β Β Β Β Β Β Β return

}

report_home_space () {

Β Β Β Β Β Β Β Β return

}

cat << _EOF_

<HTML>

Β Β Β Β Β Β Β Β <HEAD>

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β <TITLE>$TITLE</TITLE>