This is an old revision of the document!
Bash Hackers Wiki Frontpage
The URL style of this wiki was changed. All old URLs should continue to work, but please update your links. New base is http://wiki.bash-hackers.org
The Bash-Hackers Wiki This wiki is intended to hold documentations 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)
Bash version 4 is here! New information is being merged into this documentation step by step. The logo indicates Bash version 4 features or behaviour. There is also a small text about the interesting changes: Bash 4 - a rough overview
Scripting and general information
- Scripting with style – an assorted collection of style and optic hints
Bash syntax and operations
|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.||-||builtin|
|local||Declare variables as having function local scope.||-||builtin|
|readonly||Mark variables or functions as read-only.|| ||builtin|
|unset||Unset variables and functions.||-||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.||-||builtin|
|shopt||set/get shell options.||-||builtin|
| Control flow and data processing|
Commands that operate on data and/or affect control flow.
|continue / break||continue with or break out of loops.||-||builtin|
|let||Arithmetic evaluation - an old fashioned way.||-||builtin|
|return||Break out of a function, returning the specified exit status.||-||builtin|
|[||The classic ||test||builtin|
| Process and Job control|
Commands related to jobs, signals, process groups, subshells.
|exec||Replace the shell, set redirections.||-||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 via scripts with ed (March: 2727)|
|9||1205||The read builtin command (March: –)|
|10||1182||Lock your script (against parallel execution) (March: –)|
- "Total visits": 35144
- The overall "start" page is not counted
Bash related links
- Greg's wiki - Greg's wiki with massive information about Bash and UNIX® in general
lhunathis making a Bash Guide on Greg's wiki (designed for newbies)
- Heiner's "Shell Dorado" - Tips, tricks, links - for every situation
- An oo-style bash library for bash 4 - Howto abuse the command_not_found_handle function
- General purpose shell framework for bash 4 - in development
Assorted Shell links
- History and development of the traditional Bourne shell family - very interesting and nice to read!
- Linux in general, with some shell related stuff: nixCraft: Linux Tips, Hacks, Tutorials and Ideas
If you have critics 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
- it helped you
- it didn't help you (something missing / unclear)
- you like it
- you don't like it
- you found mistakes / bugs
Simply: Reader's feedback