Bash is a command processor. It typically operates in a text window in which the users input commands that provoke activities. Bash can further read and execute commands from a file, named as a shell script. Like all Unix shells, it supports filename globbing (wildcard matching), piping, command substitution, here documents, variables, and power formations for condition-testing and iteration. The keywords, syntax, variables scoped dynamically, and other fundamental features of the language are all drawn from sh. Other features, like history, are drawn from csh and ksh. With several extensions, it is a POSIX-compliant shell.