| Part 1. Introduction |
idler |
done |
| 1. Shell Programming! |
idler |
done |
| 2. Starting Off With a Sha-Bang |
idler |
done |
| 2.1. Invoking the script |
idler |
done |
| 2.2. Preliminary Exercises |
idler |
done |
| Part 2. Basics |
idler |
in progress |
| 3. Special Characters |
idler |
in progress |
| 4. Introduction to Variables and Parameters |
Ensiferum |
done |
| 4.1. Variable Substitution |
Ensiferum |
done |
| 4.2. Variable Assignment |
Ensiferum |
done |
| 4.3. Bash Variables Are Untyped |
Ensiferum |
done |
| 4.4. Special Variable Types |
Ensiferum |
done |
| 5. Quoting |
Ensiferum |
done |
| 5.1. Quoting Variables |
Ensiferum |
done |
| 5.2. Escaping |
Ensiferum |
done |
| 6. Exit and Exit Status |
elve |
in progress |
| 7. Tests |
mage-warrior |
in progress |
| 7.1. Test Constructs |
mage-warrior |
in progress |
| 7.2. File test operators |
mage-warrior |
in progress |
| 7.3. Other Comparison Operators |
mage-warrior |
in progress |
| 7.4. Nested if/then Condition Tests |
mage-warrior |
in progress |
| 7.5. Testing Your Knowledge of Tests |
mage-warrior |
in progress |
| 8. Operations and Related Topics |
mainameiz |
in progress |
| 8.1. Operators |
mainameiz |
in progress |
| 8.2. Numerical Constants |
mainameiz |
in progress |
| Part 3. Beyond the Basics |
|
|
| 9. Variables Revisited |
|
|
| 9.1. Internal Variables |
Ensiferum |
in progress |
| 9.2. Manipulating Strings |
Ensiferum |
in progress |
| 9.3. Parameter Substitution |
|
|
| 9.4. Typing variables: declare or typeset |
|
|
| 9.5. Indirect References |
|
|
| 9.6. $RANDOM: generate random integer |
|
|
| 9.7. The Double-Parentheses Construct |
|
|
| 10. Loops and Branches |
|
|
| 10.1. Loops |
dangerous3 |
done |
| 10.2. Nested Loops |
dangerous3 |
done |
| 10.3. Loop Control |
dangerous3 |
done |
| 10.4. Testing and Branching |
dangerous3 |
done |
| 11. Command Substitution |
|
|
| 12. Arithmetic Expansion |
dangerous3 |
done |
| 13. Recess Time |
|
|
| Part 4. Commands |
drBatty |
in progress |
| 14. Internal Commands and Builtins |
drBatty |
in progress |
| 14.1. Job Control Commands |
drBatty |
in progress |
| 15. External Filters, Programs and Commands |
|
| 15.1. Basic Commands |
elve |
in progress |
| 15.2. Complex Commands |
elve |
in progress |
| 15.3. Time / Date Commands |
elve |
in progress |
| 15.4. Text Processing Commands |
elve |
in progress |
| 15.5. File and Archiving Commands |
elve |
in progress |
| 15.6. Communications Commands |
|
|
| 15.7. Terminal Control Commands |
|
|
| 15.8. Math Commands |
|
|
| 15.9. Miscellaneous Commands |
|
|
| 16. System and Administrative Commands |
|
|
| 16.1. Analyzing a System Script |
|
|
| Part 5. Advanced Topics |
dangerous3 |
in progress |
| 17. Regular Expressions |
dangerous3 |
done |
| 17.1. A Brief Introduction to Regular Expressions |
dangerous3 |
done |
| 17.2. Globbing |
dangerous3 |
done |
| 18. Here Documents |
dangerous3 |
done |
| 18.1. Here Strings |
dangerous3 |
done |
| 19. I/O Redirection |
dangerous3 |
in progress |
| 19.1. Using exec |
dangerous3 |
in progress |
| 19.2. Redirecting Code Blocks |
dangerous3 |
in progress |
| 19.3. Applications |
dangerous3 |
in progress |
| 20. Subshells |
diesel |
in progress |
| 21. Restricted Shells |
|
|
| 22. Process Substitution |
|
|
| 23. Functions |
admin |
in progress |
| 23.1. Complex Functions and Function Complexities |
admin |
in progress |
| 23.2. Local Variables |
admin |
in progress |
| 23.3. Recursion Without Local Variables |
admin |
in progress |
| 24. Aliases |
dangerous3 |
done |
| 25. List Constructs |
|
|
| 26. Arrays |
kimi2k |
in progress |
| 27. /dev and /proc |
|
|
| 27.1. /dev |
|
|
| 27.2. /proc |
|
|
| 28. Of Zeros and Nulls |
|
|
| 29. Debugging |
Vadim |
in progress |
| 30. Options |
|
|
| 31. Gotchas |
|
|
| 32. Scripting With Style |
|
|
| 32.1. Unofficial Shell Scripting Stylesheet |
|
|
| 33. Miscellany |
|
|
| 33.1. Interactive and non-interactive shells and scripts |
|
|
| 33.2. Operator Precedence |
|
|
| 33.3. Shell Wrappers |
|
|
| 33.4. Tests and Comparisons: Alternatives |
|
|
| 33.5. A script calling itself (recursion) |
|
|
| 33.6. "Colorizing" Scripts |
|
|
| 33.7. Optimizations |
|
|
| 33.8. Assorted Tips |
|
|
| 33.9. Security Issues |
|
|
| 33.10. Portability Issues |
|
|
| 33.11. Shell Scripting Under Windows |
|
|
| 34. Bash, versions 2, 3, and 4 |
|
|
| 34.1. Bash, version 2 |
|
|
| 34.2. Bash, version 3 |
|
|
| 34.3. Bash, version 4 |
|
|
| 35. Endnotes |
hidden_ab |
in progress |
| 35.1. Author's Note |
|
|
| 35.2. About the Author |
|
|
| 35.3. Where to Go For Help |
|
|
| 35.4. Tools Used to Produce This Book |
|
|
| 35.4.1. Hardware |
|
|
| 35.4.2. Software and Printware |
|
|
| 35.5. Credits |
|
|
| 35.6. Disclaimer |
|
|