> For the complete documentation index, see [llms.txt](https://woodrowpearson.gitbook.io/woodrow-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://woodrowpearson.gitbook.io/woodrow-wiki/programming-languages/bash.md).

# Bash

It's very useful to use [ShellCheck](https://www.shellcheck.net) to check any shell code you write.

## Notes

* The proper she-bang for Bash is `#!/usr/bin/env bash`.

## Links

* [Parameter expansion](http://wiki.bash-hackers.org/syntax/pe)
* [Defensive BASH Programming](http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/)
* [Safe ways to do things in Bash](https://github.com/anordal/shellharden/blob/master/how_to_do_things_safely_in_bash.md#readme) ([HN comments](https://news.ycombinator.com/item?id=17057596))
* [Pure Bash Bible](https://github.com/dylanaraps/pure-bash-bible#readme) - Collection of pure bash alternatives to external processes.
* [Bash Infinity](https://github.com/niieani/bash-oo-framework) - Modern boilerplate / framework / standard library for Bash.
* [Funky](https://github.com/bbugyi200/funky) - Takes shell functions to the next level by making them easier to define, more flexible, and more interactive.
* [create-bash-script](https://github.com/nikita-skobov/create-bash-script) - Bash script designed to create other bash scripts with argument parsing.
* [Bash Language Server](https://github.com/mads-hartmann/bash-language-server) - Bash language server implementation based on Tree Sitter and its grammar for Bash with explainshell integration.
