The Bash-Hackers Wiki This wiki is intended to hold documentation of any kind about the GNU Bash. The main motivation was to provide human-readable documentation and information to not force users to read every bit of the Bash manpage - which is hard sometimes. However, these docs here are not meant as newbie tutorial.
What would YOU like to see here? (outdated and locked, please use the discussions)
|Compound commands overview|
|command grouping in a subshell|
Expansions and substitutions
|Introduction to expansions and substitutions|
This is a selection of builtin commands and command-like keywords, loosely arranged by their common uses. These are provided directly by the shell, rather than invoked as standalone external commands.
| Declaration commands|
Commands that set and query attributes/types, and manipulate simple datastructures.
|declare||Display or set shell variables or functions along with attributes.|| ||builtin|
|export||Display or set shell variables, also giving them the export attribute.||-||special builtin|
|eval||A common misspelling of "evil"||-||special builtin|
|local||Declare variables as having function local scope.||-||builtin|
|readonly||Mark variables or functions as read-only.|| ||special builtin|
|unset||Unset variables and functions.||-||special builtin|
|shift||Shift positional parameters||-||special builtin|
Commands for reading/parsing input, or producing/formatting output of standard streams.
|coproc||Co-processes: Run a compound command in the background with async I/O.||-||keyword|
|echo||Create output from args.||-||builtin|
|mapfile||Create arrays from lines of input|| ||builtin|
|read||Build variables or arrays from input streams.||-||builtin|
| Configuration and Debugging|
Commands that modify shell behavior, change special options, assist in debugging.
|caller||Identify/print execution frames.||-||builtin|
|set||Control positional parameters and shell behaviour.||-||special builtin|
|shopt||set/get shell options.||-||builtin|
| Control flow and data processing|
Commands that operate on data and/or affect control flow.
|colon||"true" null command||true||special builtin|
|dot||Source external files||source||special builtin|
|false||Fail at doing nothing||-||builtin|
|continue / break||continue with or break out of loops.||-||special builtin|
|let||Arithmetic evaluation - an old fashioned way.||-||builtin|
|return||Break out of a function, returning the specified exit status.||-||special builtin|
|[||The classic ||test||builtin|
| Process and Job control|
Commands related to jobs, signals, process groups, subshells.
|exec||Replace the shell, set redirections.||-||special builtin|
|exit||Exit the shell.||-||special builtin|
|trap||Set traps.||-||special builtin|
|times||Display process times.||-||special builtin|
|wait||Wait for background jobs and asynchronous lists.||-||builtin|
History, programmable completion, directory stack.
previous alphabetical version
|caller||identify/print execution frames (Bash builtin)|
|coproc||Co-processes (Bash keyword)|
|declare||display or set shell variables or functions along with attributes (Bash builtin, synonym:
|exec||replace the shell, set redirections (Bash builtin)|
|let||arithmetic evaluation - an old fashioned way (Bash builtin)|
|mapfile||Mapping lines of input to an array, also named
|read||getting input from
|readonly||mark variables or functions as read-only (Bash builtin)|
|set||control positional parameters and shell behaviour (Bash builtin)|
|shopt||set/get shell options (Bash builtin)|
|unset||unset variables and functions (Bash builtin)|
|Statistics for Month: April 2012|
|1||6833||Small getopts tutorial (March: 11663)|
|2||4025||The printf command (March: 7079)|
|3||2861||Quotes and escaping (March: 5730)|
|4||2854||The classic test command (March: 6145)|
|5||2222||Parameter expansion (March: 4540)|
|6||1760||Handling positional parameters (March: 3591)|
|7||1249||Bash 4 - a rough overview (March: –)|
|8||1212||Editing files with the ed text editor from scripts (March: 2727)|
|9||1205||The read builtin command (March: –)|
|10||1182||Lock your script (against parallel run) (March: –)|
Visit us in
If you have critiques or suggestions, please feel free to send a mail using the contact form on the right.
If you have quick suggestions, you can also use the Wishlist (editable by everyone!). Note that there is a discussion platform below every article page.
Please also see the imprint if you have problems with the site and its contents (legality, …)!
It also would be nice to drop a line when
Simply: Reader's feedback