The Bash Hackers Wiki

This wiki is intended to hold documentation of any kind about GNU Bash. The main motivation was to provide human-readable documentation and information so users aren't forced to read every bit of the Bash manpage - which can be difficult to understand. However, the docs here are not meant as a newbie tutorial.

This wiki and any programs found in this wiki are free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This wiki and its programs are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

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.

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. typeset -x special builtin
evalEvaluate arguments as shell code. - special builtin
localDeclare variables as having function local scope. - builtin
readonlyMark variables or functions as read-only. typeset -r special builtin
unsetUnset variables and functions. - special builtin
shiftShift positional parameters - special builtin
I/O
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 arguments. - builtin
mapfileRead lines of input into an array. readarray builtin
printf"advanced echo." - builtin
readRead input into variables or arrays, or split strings into fields using delimiters. - builtin
Configuration and Debugging
Commands that modify shell behavior, change special options, assist in debugging.
Alt Type
callerIdentify/print execution frames. - builtin
setSet the positional parameters and/or set options that affect shell behaviour. - special builtin
shoptset/get some bash-specific shell options. - builtin
Control flow and data processing
Commands that operate on data and/or affect control flow.
Alt Type
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 simple command. - builtin
return Return from a function with a specified exit status. - special builtin
[ The classic test simple command. test builtin
Process and Job control
Commands related to jobs, signals, process groups, subshells.
Alt Type
exec Replace the current shell process or set redirections. - special builtin
exit Exit the shell. - special builtin
kill Send a signal to specified process(es) - builtin
trap Set signal handlers or output the current handlers. - special builtin
times Display process times. - special builtin
wait Wait for background jobs and asynchronous lists. - builtin
Alt Type

previous alphabetical version

A-G
calleridentify/print execution frames (Bash builtin)
coprocCo-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)
I-N
letarithmetic evaluation - an old fashioned way (Bash builtin)
mapfileMapping lines of input to an array, also named readarray (Bash builtin)
O-T
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)
U-Z
unsetunset variables and functions (Bash builtin)
A list of expressions, words, and their meanings is here.

Documentation / Reference

Bash Libraries (needs review)

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

Visit us in irc.freenode.net, channel #bash ;-)

If you have critiques or suggestions, please feel free to send a mail using the contact form on the right. Note that there is a simple discussion option below every article.

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' :