Learning the Korn Shell by Bill Rosenblatt Following are the changed made in the 3/00 reprint: Here's the key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification The following text was added to the Preface: "We have a web site for the book, where we'll list examples, errata, and any plans for future editions. You can access this page at: http://www.oreilly.com/catalog/9781565920545/ <80> In the third paragraph, the following text was deleted: "Any variable can become an environment variable. First it must be defined as usual; then it must be exported with the command: export varnames" This text was was replaced with: "Any variable can become an environment variable, and new variables can be created that are environment variables. Environment variables are created with the command: export varnames If the names in varnames already exist, then those variables become environment variables. If they don't, then the shell creates new variables that are environment variables. (105) In the the last item of the second bulleted list, an additional thin space was placed between "N" and "\" in the string "N\". (126) The following text was added before Table 5-1: "Note that these operators compare the lexicographic values of strings, so that "10" < "2". {157} The code in the middle of the page used to read: sort -nr $filename ¦ head -$howmany It now reads: sort -nr $filename ¦ head $howmany (166) The following text was appended to the footnote: "However, other C operations, like the increment and decrement operators ++ and --, do not have Korn shell equivalents." (179) The "typeset -uR5" example in Table 6-6 used to read: "VWXYZ" It now reads: "WXYZ" (203) The second paragraph used to read: "...all whitespace in the lines from the fill is preserved..." It now reads: "...trailing whitespace in the lines from the fill is preserved..." [208] Table 7-5 used to read: row #5: '$dave' | $dave row #6: '$dave' | 'bob' It now reads: row #5: '$dave' | $dave row #6: \'$dave\' | 'bob' (272) The following text was added to the list of limitations: "9. Because the lines of a script being debugged are read into an array, and arrays can only hold up to 1024 elements, kshdb will not work on scripts of more than 1024 lines. One workaround to this might be to remove lines from the script that contain only comments or whitespace.