38.5. Credits
Community participation made this project possible. The author gratefully acknowledges thatwriting this book would have been unthinkable withouthelp and feedback from all you people out there.
Philippe Martintranslated the first version (0.1) of this document intoDocBook/SGML. While not on the job at a small French company as asoftware developer, he enjoys working on GNU/Linux documentationand software, reading literature, playing music, and, for hispeace of mind, making merry with friends. You may run across himsomewhere in France or in the Basque Country, or you can email himat [email protected].
Philippe Martin also pointed out that positional parameterspast $9 are possible using {bracket} notation. (See Example 4-5).
St�phaneChazelas sent a long list of corrections, additions,and example scripts. More than a contributor, he had, in effect,for a while taken on the role of co-editorfor this document. Mercibeaucoup!
Paulo Marcel Coelho Aragao offered many corrections, both major and minor, and contributed quite a number of helpful suggestions.
I would like to especially thank Patrick Callahan, Mike Novak, and Pal Domokos for catching bugs, pointing out ambiguities, and for suggesting clarifications and changes in thepreliminary version (0.1) of this document. Their livelydiscussion of shell scripting and general documentation issuesinspired me to try to make this document more readable.
I'm grateful to Jim Van Zandt for pointing out errors and omissions in version 0.2 of this document. He also contributed an instructive example script.
Many thanks to Jordi Sanfeliu for giving permission to use his fine tree script (Example A-16), and to Rick Boivie for revising it.
Likewise, thanks to Michel Charpentier forpermission to use his dc factoring script(Example 16-52).
Kudos to Noah Friedman for permission to use his string function script (Example A-18).
Emmanuel Rouat suggested corrections and additions on command substitution, aliases, and path management. He also contributed a very nice sample .bashrc file (Appendix M).
Heiner Stevenkindly gave permission to use his base conversion script, Example 16-48. He also made a number of corrections and manyhelpful suggestions. Special thanks.
Rick Boivie contributed the delightfully recursivepb.sh script (Example 36-9),revised the tree.sh script (Example A-16), and suggested performance improvementsfor the monthlypmt.sh script (Example 16-47).
Florian Wisser enlightened me on some of the fine points oftesting strings (see Example 7-6), and on othermatters.
Oleg Philon sent suggestions concerning cut and pidof.
Michael Zick extended the emptyarray example to demonstrate some surprising arrayproperties. He also contributed the isspammerscripts (Example 16-41 and Example A-28).
Marc-Jano Knopp sent corrections and clarifications on DOS batch files.
Hyun Jin Cha found several typos in the document in the process of doing a Korean translation. Thanks for pointing these out.
Andreas Abraham sent in a long list of typographicalerrors and other corrections. Special thanks!
Others contributing scripts, making helpful suggestions, andpointing out errors were Gabor Kiss, Leopold Toetsch,Peter Tillier, Marcus Berglof, Tony Richardson, Nick Drage(script ideas!), Rich Bartell, Jess Thrysoee, Adam Lazur, BramMoolenaar, Baris Cicek, Greg Keraunen, Keith Matthews, SandroMagi, Albert Reiner, Dim Segebart, Rory Winston, Lee Bigelow,Wayne Pollock, "jipe," "bojster,""nyal," "Hobbit," "Ender,""Little Monster" (Alexis), "Mark,""Patsie," "vladz," Peggy Russell,Emilio Conti, Ian. D. Allen, Hans-Joerg Diers, Arun Giridhar,Dennis Leeuw, Dan Jacobson, Aurelio Marinho Jargas, EdwardScholtz, Jean Helou, Chris Martin, Lee Maschmeyer, Bruno Haible,Wilbert Berendsen, Sebastien Godard, Bj�n Eriksson, JohnMacDonald, John Lange, Joshua Tschida, Troy Engel, ManfredSchwarb, Amit Singh, Bill Gradwohl, E. Choroba, David Lombard,Jason Parker, Steve Parker, Bruce W. Clare, William Park, VerniaDamiano, Mihai Maties, Mark Alexander, Jeremy Impson, Ken Fuchs,Jared Martin, Frank Wang, Sylvain Fourmanoit, Matthew Sage,Matthew Walker, Kenny Stauffer, Filip Moritz, Andrzej Stefanski,Daniel Albers, Jeffrey Haemer, Stefano Palmeri, Nils Radtke,Sigurd Solaas, Serghey Rodin, Jeroen Domburg, Alfredo Pironti,Phil Braham, Bruno de Oliveira Schneider, Stefano Falsetto,Chris Morgan, Walter Dnes, Linc Fessenden, Michael Iatrou, PharisMonalo, Jesse Gough, Fabian Kreutz, Mark Norman, Harald Koenig,Dan Stromberg, Peter Knowles, Francisco Lobo, Mariusz Gniazdowski,Sebastian Arming, Chetankumar Phulpagare, Benno Schulenberg,Tedman Eng, Jochen DeSmet, Juan Nicolas Ruiz, Oliver Beckstein,Achmed Darwish, Dotan Barak, Richard Neill, Albert Siersema,Omair Eshkenazi, Geoff Lee, Graham Ewart, JuanJo Ciarlante,Cliff Bamford, Nathan Coulter, Ramses Rodriguez Martinez,Evgeniy Ivanov, Craig Barnes, George Dimitriu, Kevin LeBlanc,Antonio Macchi, Tomas Pospisek, David Wheeler, Andreas K�hne,P�draig Brady, Joseph Steinhauser, and David Lawyer(himself an author of four HOWTOs).
My gratitude to ChetRamey and Brian Fox for writing Bash,and building into it elegant and powerful scriptingcapabilities rivaling those of ksh.
Very special thanks to the hard-working volunteers atthe Linux DocumentationProject. The LDP hosts a repository of Linux knowledgeand lore, and has, to a great extent, enabled the publicationof this book.
Thanks and appreciation to IBM, Red Hat, Google, the Free Software Foundation, and all the good people fighting the good fight to keep Open Source software free and open.
Belated thanks to my fourth grade teacher, Miss Spencer, for emotional support and for convincing me that maybe, just maybe I wasn't a total loss.
Thanks most of all to my wife, Anita, for her encouragement, inspiration, and emotional support.