*
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
# Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ:
# ----------
# Π‘ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ?
# ΠΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ?
#
# ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅,
#+ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ, Π·Π°ΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ.