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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° языкС сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 92

Автор МСндСль ΠšΡƒΠΏΠ΅Ρ€

ЀактичСски, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ UNIX ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΡ… ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΡ… эквивалСнтами Π² DOS. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своСм, ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ DOS ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ask.com ("ΡƒΠ²Π΅Ρ‡Π½Ρ‹ΠΉ" Π°Π½Π°Π»ΠΎΠ³ UNIX-Π²ΠΎΠ³ΠΎ read).

DOS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… символов, ΡƒΡ‡Π°Π²ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² опСрациях подстановки ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², распознавая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° символа -- * ΠΈ ?.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² DOS Π² сцСнарии ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ прСобразования читаСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ H-1. VIEWDATA.BAT: ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» DOS

REM VIEWDATA


REM INSPIRED BY AN EXAMPLE IN "DOS POWERTOOLS"

REM BY PAUL SOMERSON


@ECHO OFF


IF !%1==! GOTO VIEWDATA

REM IF NO COMMAND-LINE ARG...

FIND "%1" C:\BOZO\BOOKLIST.TXT

GOTO EXIT0

REM PRINT LINE WITH STRING MATCH, THEN EXIT.


:VIEWDATA

TYPE C:\BOZO\BOOKLIST.TXT | MORE

REM SHOW ENTIRE FILE, 1 PAGE AT A TIME.


:EXIT0

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования Π² сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ H-2. viewdata.sh: Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования VIEWDATA.BAT Π² сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

#!/bin/bash

# Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° VIEWDATA.BAT Π² сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.


DATAFILE=/home/bozo/datafiles/book-collection.data

ARGNO=1


# @ECHO OFF Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° здСсь Π½Π΅ Π½ΡƒΠΆΠ½Π°.


if [ $# -lt "$ARGNO" ] # IF !%1==! GOTO VIEWDATA

then

less $DATAFILE # TYPE C:\MYDIR\BOOKLIST.TXT | MORE

else

grep "$1" $DATAFILE # FIND "%1" C:\MYDIR\BOOKLIST.TXT

fi


exit 0 # :EXIT0


# ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° GOTO, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΉ "мусор" большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

# Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования стал ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‡ΠΈΡ‰Π΅ ΠΈ понятнСС,

На сайтС Вэда Дэвиса (Ted Davis) Shell Scripts on the PC, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ большоС число руководств ΠΏΠΎ созданию ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² DOS. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ, Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΏΡ€ΠΈ создании Π²Π°ΡˆΠΈΡ… сцСнариСв.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ I. УпраТнСния

I.1. Анализ сцСнариСв

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сцСнарии. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ…, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ -- Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚. Π Π°ΡΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

#!/bin/bash


MAX=10000


for((nr=1; nr<$MAX; nr++))

do


let "t1 = nr % 5"

if [ "$t1" -ne 3 ]

then

continue

fi


let "t2 = nr % 7"

if [ "$t2" -ne 4 ]

then

continue

fi


let "t3 = nr % 9"

if [ "$t3" -ne 5 ]

then

continue

fi


break # Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту строку? ΠŸΠΎΡ‡Π΅ΠΌΡƒ?


done


echo "Число = $nr"


exit 0


---

Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ прислал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ кусок ΠΊΠΎΠ΄Π°.

while read LINE

do

echo $LINE

done < `tail -f /var/log/messages`

Он ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отслСТивал Π±Ρ‹ измСнСния Π² систСмном ΠΆΡƒΡ€Π½Π°Π»Π΅ /var/log/messages. К соТалСнию, этот ΠΊΠΎΠ΄ "зависаСт" ΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? НайдитС ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π΅Π΅ (подсказка: вмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСнаправлСния stdin Π² Ρ†ΠΈΠΊΠ», ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ).

---

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ сцСнарий ΠŸΡ€ΠΈΠΌΠ΅Ρ€ A-11, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ выглядСл ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅. Π£Π΄Π°Π»ΠΈΡ‚Π΅ всС "лишниС" ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сцСнарий ΠΏΠΎ скорости исполнСния.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ сцСнарий Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ установку "поколСния 0" ΠΈΠ· любого тСкстового Ρ„Π°ΠΉΠ»Π°. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ $ROW*$COL символов, ΠΈ Π½Π° мСсто гласных Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ "ΠΆΠΈΠ²Ρ‹Π΅ особи". Подсказка: Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² символы подчСркивания.


I.2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сцСнариСв

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарии для выполнСния повсСднСвных Π·Π°Π΄Π°Ρ‡.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ задания

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ сохранитС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ». Π‘ΠΎΠΆΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ». ΠŸΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ дискСту ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ENTER. Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ сТатый Ρ„Π°ΠΉΠ» Π½Π° дискСту.

Π—Π°ΠΌΠ΅Π½Π° Ρ†ΠΈΠΊΠ»Π° for Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ while ΠΈ until

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for Π² ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 10-1 Π½Π° while. Подсказка: Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² массив ΠΈ ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ элСмСнтам массива.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² эту "Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ", Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½Π° Ρ†ΠΈΠΊΠ»Ρ‹ until .

ИзмСнСниС мСТстрочного ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ тСкст ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, построчно, Π½Π° stdout, добавляя ΠΏΡ€ΠΈ этом Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ пустыС строки Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получился Π²Ρ‹Π²ΠΎΠ΄ с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ мСТстрочным ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ наличия Ρ„Π°ΠΉΠ»Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

Когда сцСнарий Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» тСкстовый Ρ„Π°ΠΉΠ» с Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹ΠΌ мСТстрочным ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ пустыС строки ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π’Ρ‹Π²ΠΎΠ΄ "Π·Π°Π΄ΠΎΠΌ-Π½Π°-ΠΏΠ΅Ρ€Π΅Π΄"

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сСбя Π½Π° stdout, Π½ΠΎ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

АвтоматичСскоС Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ списка, сцСнарий Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π» создан Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ» (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ file). Π—Π°Ρ‚Π΅ΠΌ сцСнарий Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ (gunzip, bunzip2, unzip, uncompress ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅). Если Ρ„Π°ΠΉΠ» Π½Π΅ являСтся Π°Ρ€Ρ…ΠΈΠ²ΠΎΠΌ, Ρ‚ΠΎ сцСнарий Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΠΎΠ²Π΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ± этом ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ с этим Ρ„Π°ΠΉΠ»ΠΎΠΌ.

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ систСмы

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ "ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ" 6-Ρ‚ΠΈ разрядный ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ систСмы. НС ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Π΄Π΅Ρ„Π΅ΠΊΡ‚Π½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ hostid. Подсказка: md5sum /etc/passwd, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 6 Ρ†ΠΈΡ„Ρ€.

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² (*.tar.gz) всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (/home/user-name), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнялись Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСдних 24 часов. Подсказка: Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ find.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ числа

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ вывСсти (Π½Π° stdout) всС простыС числа, Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 60000 Π΄ΠΎ 63000. Π’Ρ‹Π²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ столбцам (подсказка: Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ printf).

Π›ΠΎΡ‚ΠΎΡ‚Ρ€ΠΎΠ½

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π»ΠΎΡ‚ΠΎΡ‚Ρ€ΠΎΠ½Π° -- ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ 5 случайных Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ чисСл Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 1 - 50. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° stdout, Ρ‚Π°ΠΊ ΠΈ запись чисСл Π² Ρ„Π°ΠΉΠ», ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, вмСстС с числами Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π΄Π°Ρ‚Π° ΠΈ врСмя Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°.

Задания ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ слоТности

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ дисковым пространством

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ /home/username Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ большС 100K. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· прСдоставляя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΆΠ°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ», Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ поиску ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°.

БСзопасноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарий "бСзопасного" удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² -- srm.sh. Π€Π°ΠΉΠ»Ρ‹, с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ этому ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ, вмСсто этого, Ρ„Π°ΠΉΠ»Ρ‹ слСдуСт ΡΠΆΠ°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ gzip, Ссли ΠΎΠ½ΠΈ Π΅Ρ‰Π΅ Π½Π΅ сТаты (Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ file), ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /home/username/trash. ΠŸΡ€ΠΈ стартС, сцСнарий Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° "trash" Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ созданы Π±ΠΎΠ»Π΅Π΅ 48 часов Ρ‚ΠΎΠΌΡƒ Π½Π°Π·Π°Π΄.

Π Π°Π·ΠΌΠ΅Π½ ΠΌΠΎΠ½Π΅Ρ‚

Как Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ сумму Π² $1.68, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ½Π΅Ρ‚Ρ‹, с Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π½Π΅ Π²Ρ‹ΡˆΠ΅ 25c? Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡˆΠ΅ΡΡ‚ΡŒ 25-Ρ‚ΠΈ Ρ†Π΅Π½Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ½Π΅Ρ‚, ΠΎΠ΄Π½Π° дСсятицСнтовая, ΠΎΠ΄Π½Π° пятицСнтовая ΠΈ Ρ‚Ρ€ΠΈ ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ достоинством Π² 1 Ρ†Π΅Π½Ρ‚.

Учитывая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° суммы Π² Π΄ΠΎΠ»Π»Π°Ρ€Π°Ρ… ΠΈ Ρ†Π΅Π½Ρ‚Π°Ρ… ($*.??), Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ, которая Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° Π±Ρ‹ наимСньшСС число ΠΌΠΎΠ½Π΅Ρ‚. Если Π²Ρ‹ ΠΏΡ€ΠΎΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ Π½Π΅ Π² БША, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свою Π΄Π΅Π½Π΅ΠΆΠ½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ Π½ΠΎΠΌΠΈΠ½Π°Π»Ρ‹ ΠΌΠΎΠ½Π΅Ρ‚. Подсказка: взглянитС Π½Π° ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 22-4.

ΠšΠΎΡ€Π½ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ» Π±Ρ‹ ΠΊΠΎΡ€Π½ΠΈ "ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ " уравнСния, Π²ΠΈΠ΄Π°: Ax^2 + Bx + C = 0. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ коэффициСнты уравнСния A, B ΠΈ C, ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Π½ΠΈ, с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° послС запятой.

Подсказка: Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ bc, для нахоТдСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстной Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅: x = ( -B +/- sqrt( B^2 - 4AC ) ) / 2A.

Π‘ΡƒΠΌΠΌΠ° чисСл

НайдитС сумму всСх пятизначных чисСл (Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 10000 - 99999), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Ρ‚ΠΎΡ‡Π½ΠΎ Π΄Π²Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π°: { 4, 5, 6 }.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ чисСл, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ: 42057, 74638 ΠΈ 89515.

Бчастливый Π±ΠΈΠ»Π΅Ρ‚

"Бчастливым" считаСтся Ρ‚Π°ΠΊΠΎΠΉ Π±ΠΈΠ»Π΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ слоТСниС Ρ†ΠΈΡ„Ρ€ Π½ΠΎΠΌΠ΅Ρ€Π° Π΄Π°Π΅Ρ‚ число 7. НапримСр, 62431 -- Π½ΠΎΠΌΠ΅Ρ€ "счастливого" Π±ΠΈΠ»Π΅Ρ‚Π° (6 + 2 + 4 + 3 + 1 = 16, 1 + 6 = 7). НайдитС всС "счастливыС" Π½ΠΎΠΌΠ΅Ρ€Π°, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 1000 - 10000.

БинтаксичСский Π°Π½Π°Π»ΠΈΠ·

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» /etc/passwd ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ содСрТимоС Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ„Π°ΠΉΠ»Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

НСкоторыС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ элСктронныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CSV (comma-separated values), для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π°Ρ…. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, эти Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями.