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

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

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

*

Aeleen Frisch, Essential System Administration, 3rd edition, O'Reilly and Associates, 2002, 0-596-00343-9.

Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ руководство для систСмных администраторов. ΠœΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сцСнариСв. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ пояснСния ΠΊ сцСнариям Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы.

*

Stephen Kochan and Patrick Woods, Unix Shell Programming, Hayden, 1990, 067248448X.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ справочник, хотя Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ.

*

Neil Matthew and Richard Stones, Beginning Linux Programming, Wrox Press, 1996, 1874416680.

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

*

Herbert Mayer, Advanced C Programming on the IBM PC, Windcrest Books, 1989, 0830693637.

Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ ΠΈ практичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

*

David Medinets, Unix Shell Programming Tools, McGraw-Hill, 1999, 0070397333.

ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² Tcl ΠΈ Perl.

*

Cameron Newham and Bill Rosenblatt, Learning the Bash Shell, 2nd edition, O'Reilly and Associates, 1998, 1-56592-347-2.

Π­Ρ‚ΠΎ отваТная ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π½ΠΎ ΠΎΠ½ получился нСсколько Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π½Π΅ ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ сцСнариСв.

*

Anatole Olczak, Bourne Shell Quick Reference Guide, ASP, Inc., 1991, 093573922X.

ΠžΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ справочник, нСсмотря Π½Π° нСдостатки, ΠΏΡ€ΠΈ ΠΎΡ…Π²Π°Ρ‚Π΅ спСцифичных свойств Bash.

*

Jerry Peek, Tim O'Reilly, and Mike Loukides, Unix Power Tools, 2nd edition, O'Reilly and Associates, Random House, 1997, 1-56592-260-3.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ряд ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², посвящСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС.

*

Clifford Pickover, Computers, Pattern, Chaos, and Beauty, St. Martin's Press, 1990, 0-312-04123-3.

Π‘ΠΎΠΊΡ€ΠΎΠ²ΠΈΡ‰Π½ΠΈΡ†Π° ΠΈΠ΄Π΅ΠΉ ΠΈ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ вычислСниям.

*

George Polya, How To Solve It, Princeton University Press, 1973, 0-691-02356-5.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡.

*

Arnold Robbins, Bash Reference Card, SSC, 1998, 1-58731-010-5.

Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ справочник ΠΏΠΎ Bash. Π‘Ρ‚ΠΎΠΈΡ‚ всСго $4.95, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ доступСн для свободного скачивания on-line Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF.

*

Arnold Robbins, Effective Awk Programming, Free Software Foundation / O'Reilly and Associates, 2000, 1-882114-26-4.

Π‘Π°ΠΌΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ руководство ΠΈ справочник ΠΏΠΎ awk. Бвободная элСктронная вСрсия ΠΊΠ½ΠΈΠ³ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² состав Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ awk. ΠŸΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ послСднСй вСрсии доступно Π½Π° сайтС O'Reilly and Associates.

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° слуТила источником вдохновСния для Π°Π²Ρ‚ΠΎΡ€Π° этой ΠΊΠ½ΠΈΠ³ΠΈ.

*

Bill Rosenblatt, Learning the Korn Shell, O'Reilly and Associates, 1993, 1-56592-054-6.

Π­Ρ‚Π°, Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанная ΠΊΠ½ΠΈΠ³Π°, содСрТит массу ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ ΠΏΠΎ созданию сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

*

Paul Sheer, LINUX: Rute User's Tutorial and Exposition, 1st edition, , 2002, 0-13-033351-4.

ΠžΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² систСмноС администрированиС Linux.

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° доступна Π² on-line.

*

Ellen Siever and the staff of O'Reilly and Associates, Linux in a Nutshell, 2nd edition, O'Reilly and Associates, 1999, 1-56592-585-8.

Один ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… справочников ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Linux, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π», посвящСнный Bash.

*

The UNIX CD Bookshelf, 3rd edition, O'Reilly and Associates, 2003, 0-596-00392-7.

Π‘Π±ΠΎΡ€Π½ΠΈΠΊ ΠΈΠ· 7-ΠΌΠΈ ΠΊΠ½ΠΈΠ³ ΠΏΠΎ UNIX Π½Π° CD ROM. Π’ состав сборника входят Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠ°ΠΊ UNIX Power Tools, Sed and Awk ΠΈ Learning the Korn Shell. ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… справочных ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ $130.

*

Книги ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° O'Reilly, посвящСнныС Perl.

---

Ben Okopnik ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΡΠ΅Ρ€ΠΈΡŽ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… статСй introductory Bash scripting Π² выпусках 53, 54, 55, 57 ΠΈ 59 Π½Π° сайтС Linux Gazette , ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡŽ "The Deep, Dark Secrets of Bash" Π² выпускС 56.

Chet Ramey bash - The GNU Shell -- сСрия статСй Π² 3 ΠΈ 4 выпусках Linux Journal, Июль-Август 1994.

Mike G Bash-Programming-Intro HOWTO.

Richard UNIX Scripting Universe.

Chet Ramey Bash F.A.Q.

Ed Schaefer Shell Corner Π½Π° Unix Review.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв: Lucc's Shell Scripts .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв: SHELLdorado .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв: Noah Friedman's script site.

Steve Parker Shell Programming Stuff.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв: SourceForge Snippet Library - shell scripts.

Giles Orr Bash-Prompt HOWTO.

Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ руководство ΠΏΠΎ рСгулярным выраТСниям, sed ΠΈ awk The UNIX Grymoire.

Eric Pement sed resources page.

The GNU gawk reference manual (gawk -- GNU-вСрсия awk для ОБ Linux ΠΈ BSD).

Trent Fisher groff tutorial.

Mark Komarinski Printing-Usage HOWTO.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π³Π»Π°Π²Π° 10 Π½Π° сайтС University of Alberta.

Rick Hohensee osimpa -- ассСмблСр для процСссора i386, написан ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Bash.

Rocky Bernstein Π²Π΅Π΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ "ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ" ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° для Bash.

---

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ руководство "Bash Reference Manual", Π°Π²Ρ‚ΠΎΡ€Ρ‹ Chet Ramey ΠΈ Brian Fox, распространяСтся Π² составС ΠΏΠ°ΠΊΠ΅Ρ‚Π° "bash-2-doc" (доступСн ΠΊΠ°ΠΊ rpm). Π’ этом ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ особСнно ΠΏΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π“Ρ€ΡƒΠΏΠΏΠ° новостСй comp.os.unix.shell.

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ руководства man ΠΏΠΎ bash ΠΈ bash2, date, expect, expr, find, grep, gzip, ln, patch, tar, tr, bc, xargs. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ‡ΠΊΠΈ info ΠΏΠΎ bash, dd, m4, gawk ΠΈ sed.


ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ A. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв

Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ собраны сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² основной тСкст Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Однако, ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ стоят Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ»ΠΈ врСмя Π½Π° ΠΈΡ… ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ A-1. manview: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ страниц руководств man

#!/bin/bash

# manview.sh: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ страниц руководств man Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.


# ПолСзСн писатСлям страниц руководств, позволяСт ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ страницы Π² исходном ΠΊΠΎΠ΄Π΅

#+ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.


E_WRONGARGS=65


if [ -z "$1" ]

then

echo "ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ использования: `basename $0` имя_Ρ„Π°ΠΉΠ»Π°"

exit $E_WRONGARGS

fi


groff -Tascii -man $1 | less


# Если страница руководства Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ/ΠΈΠ»ΠΈ выраТСния,

# Ρ‚ΠΎ этот сцСнарий "ΡΡ‚ΠΎΡˆΠ½ΠΈΡ‚".

# Для Ρ‚Π°ΠΊΠΈΡ… случаСв ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку.

#

# gtbl < "$1" | geqn -Tlatin1 | groff -Tlatin1 -mtty-char -man

#

# Бпасибо S.C.


exit 0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ A-2. mailformat: Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСктронных писСм

#!/bin/bash

# mail-format.sh: Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСктронных писСм.


# УдаляСт символы "^", табуляции ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки.


# =================================================================

# Бтандартная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ARGS=1

E_BADARGS=65

E_NOFILE=66


if [ $# -ne $ARGS ] # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

then

echo "ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ использования: `basename $0` имя_Ρ„Π°ΠΉΠ»Π°"

exit $E_BADARGS

fi


if [ -f "$1" ] # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия Ρ„Π°ΠΉΠ»Π°.

then

file_name=$1

else

echo "Π€Π°ΠΉΠ» \"$1\" Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½."

exit $E_NOFILE

fi

# =================================================================


MAXWIDTH=70 # Максимальная Π΄Π»ΠΈΠ½Π° строки.


# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ символов "^" начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа строки,

#+ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки 70-ю символами.

sed '

s/^>//

s/^ *>//

s/^ *//

s/ *//

' $1 | fold -s --width=$MAXWIDTH

# ΠΊΠ»ΡŽΡ‡ -s ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "fold" Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, строку ΠΏΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ символу.


# Π­Ρ‚ΠΎΡ‚ сцСнарий Π±Ρ‹Π» написан послС прочтСния ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°ΡΡ…Π²Π°Π»ΠΈΠ²Π°Π»Π°ΡΡŒ

#+ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠ΄ Windows, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² 164K, с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

#

# Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста ΠΈ эффСктивный

#+ скриптовый язык -- это всС, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ

#+ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ "Ρ€Π°Π·Π΄ΡƒΡ‚Ρ‹ΠΌ" ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ.


exit 0

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ A-3. rn: ΠžΡ‡Π΅Π½ΡŒ простая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ²

Π­Ρ‚ΠΎΡ‚ сцСнарий являСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 12-15.

#! /bin/bash

#

# ΠžΡ‡Π΅Π½ΡŒ простая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ²

#

# Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° "ren", Π°Π²Ρ‚ΠΎΡ€ Vladimir Lanin ( [email protected]),

#+ выполняСт эти ΠΆΠ΅ дСйствия ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅.


ARGS=2

E_BADARGS=65

ONE=1 # ЕдинствСнноС ΠΈΠ»ΠΈ мноТСствСнноС число (см. Π½ΠΈΠΆΠ΅).


if [ $# -ne "$ARGS" ]

then

echo "ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ использования: `basename $0` старый_шаблон Π½ΠΎΠ²Ρ‹ΠΉ_шаблон"

# НапримСр: "rn gif jpg", помСняСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с gif Π½Π° jpg.

exit $E_BADARGS

fi


number=0 # ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².


for filename in *$1* # ΠŸΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ списку Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

do

if [ -f "$filename" ]

then

fname=`basename $filename` # Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ.

n=`echo $fname | sed -e "s/$1/$2/"` # ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ староС имя Π½Π° Π½ΠΎΠ²ΠΎΠ΅.

mv $fname $n # ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ.

let "number += 1"

fi

done


if [ "$number" -eq "$ONE" ] # БоблюдСниС ΠΏΡ€Π°Π²ΠΈΠ» Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

then

echo "$number Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½."

else

echo "ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²: $number."

fi


exit 0


# УпраТнСния:

# ----------

# Π‘ ΠΊΠ°ΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² этот сцСнарий Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

# Как это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ?

#

# ΠŸΠ΅Ρ€Π΅Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сцСнарий Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅,

#+ Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТатся ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, замСняя ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ символом подчСркивания.