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

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)

Stranger! Feel free to register and edit the contents. There is a Bash Hackers Wiki needs love page that lists some things to do. The registration is only there to prevent SPAM.

Bash version 4 is here! New information is being merged into this documentation step by step. The logo :V4: indicates Bash version 4 features or behaviour. There is also a small text about the interesting changes: Bash 4 - a rough overview

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.
Alt Type
declareDisplay or set shell variables or functions along with attributes. typeset builtin
exportDisplay or set shell variables, also giving them the export attribute. - builtin
localDeclare variables as having function local scope. - builtin
readonlyMark variables or functions as read-only. declare -r builtin
unsetUnset variables and functions. - builtin
Commands for reading/parsing input, or producing/formatting output of standard streams.
Alt Type
coprocCo-processes: Run a compound command in the background with async I/O. - keyword
echoCreate output from args. - builtin
mapfileCreate arrays from lines of input readarray builtin
printf"advanced echo." - builtin
readBuild variables or arrays from input streams. - builtin
Configuration and Debugging
Commands that modify shell behavior, change special options, assist in debugging.
Alt Type
callerIdentify/print execution frames. - builtin
setControl positional parameters and shell behaviour. - builtin
shoptset/get shell options. - builtin
Control flow and data processing
Commands that operate on data and/or affect control flow.
Alt Type
continue / breakcontinue with or break out of loops. - builtin
letArithmetic evaluation - an old fashioned way. - builtin
returnBreak out of a function, returning the specified exit status. - builtin
[The classic test command. test builtin
Process and Job control
Commands related to jobs, signals, process groups, subshells.
Alt Type
execReplace the shell, set redirections. - builtin
trapSet traps. - builtin
waitWait for background jobs and asynchronous lists. - builtin
History, programmable completion, directory stack.
Alt Type

previous alphabetical version

calleridentify/print execution frames (Bash builtin)
coproc:V4: Co-processes (Bash keyword)
declaredisplay or set shell variables or functions along with attributes (Bash builtin, synonym: typeset)
exec replace the shell, set redirections (Bash builtin)
letarithmetic evaluation - an old fashioned way (Bash builtin)
mapfile:V4: Mapping lines of input to an array, also named readarray (Bash builtin)
printf"advanced echo" (Bash builtin)
readgetting input from stdin (Bash builtin)
readonlymark variables or functions as read-only (Bash builtin)
setcontrol positional parameters and shell behaviour (Bash builtin)
shoptset/get shell options (Bash builtin)
testthe classic test command (Bash builtin)
unsetunset variables and functions (Bash builtin)
A list of expressions and words and their meaning is here.
Statistics for Month: April 2012
Rank Views Article
1 6833Small getopts tutorial (March: 11663)
2 4025The printf command (March: 7079)
3 2861Quotes and escaping (March: 5730)
4 2854The classic test command (March: 6145)
5 2222Parameter expansion (March: 4540)
6 1760Handling positional parameters (March: 3591)
7 1249Bash 4 - a rough overview (March: –)
8 1212Editing files via scripts with ed (March: 2727)
9 1205The read builtin command (March: –)
10 1182Lock your script (against parallel execution) (March: –)
  • "Total visits": 35144
  • The overall "start" page is not counted

Visits in, channel #bash ;-)

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

Your Name :
Your Email :
Message :
Enter 'HUMAN' :