Bash programming
Welcome to Bash Programming! Please feel free to contribute and discuss the course on the talk page.
The context for this course is set by the Wikipedia article: the Unix Shell. All examples in the course are executed in the Bash shell. Occasional references are made to the other two more similar shells: sh, and ksh.
The bash shell implements the significant facets of sh and ksh, in alleged upward compatibilty, and has some features of csh, which is quite a different model than the sh, ksh, bash[1] progression.
Different from most shell instruction, and since there is plenty of excellent shell material available, this course assumes the shell function is the organizing principle of any shell program. This course will make frequent use of that material.
Bash is now the pre-eminent user shell in Unix / Linux / and any *nix environment, e.g. including BSD / Mac OS X.
Bash Features includes Brace expansion amd command-line completion[2] among others.
This course is under development (Apr 2016).
Section Outline Each section will routinely have most of these sub-sections.
- Prerequisites -- Required user knowledge of the operating environment, programming practice, familiar commands, and concepts from prior sections.
- New Concepts -- A list of the language features and less familiar commands to be introduced in the section.
- First new concept -- A language feature or command, usually thru links to information, the paragraph makes the connection to either usage or context in the program
- ... -- remaining concepts
- Summary -- to recapitulate the section
- Assessment -- Quiz questions which may require the programmer to stretch a bit.
- Deferred concepts -- Since we are stretching, forward references to where the concept is fully grounded.
Course schedule:
- Introduction
- Subshells
- Function Usage
- Variables
- Loops
- Conditional Statements
- Interactive Input
- Environment variables
- Miscellaneous topics