Bash 4 - a rough overview

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 <>.

What would YOU like to see here? (outdated and locked, please use the discussions)

Stranger! Feel free to register and comment or 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
Commands for reading/parsing input, or producing/formatting output of standard streams.
Alt Type
coprocCo-processes: Run a command in the background with pipes for reading / writing its standard streams. - 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

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)
letarithmetic evaluation - an old fashioned way (Bash builtin)
mapfileMapping 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, words, and their meanings is here.

Documentation / Reference

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

This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information