Introduction
Introduction Statistics Contact Development Disclaimer Help
_ _
| |__ __ _ ___| |__
| '_ \ / _` / __| '_ \
| |_) | (_| \__ \ | | |
|_.__/ \__,_|___/_| |_|
GNU Bash is a command line shell for interactive use with GNU
readline, as well as shell scripting. It's commonly used as the
default login shell on GNU/Linux systems.
Here's what people say about bash (and sh):
It's too big and too slow.
\~ bash(1)
nobody really knows what the Bourne shell's grammar is. Even
examination of the source code is little help.
\~ Tom Duff's rc(1) paper
This style guide is more a recognition of its use rather than
a suggestion that it be used for widespread deployment.
\~ Google's bash style guide
The Bourne shell language is one of, perhaps the, least
internally consistent programming language still widely used
today.
\~ user zwol on stack overflo
$ printf "$(cat log.log | grep -e "$(date +%F\"\")" | grep -e e
ror | sed -E "s/^ F.*$\n/${eth}|en[o,p]/g" | tr [:space:] '\n'
sort | uniq -d) >> fuckshit.piss
>
>^C^C^C^C
>
>
\~ someone somewhere right no
+ + + + +
I end up writing a lot of bash. It's potent enough for scripting
silly stuff like simple site generators, administration tools, curl
wrappers... Throw in fzf(1) and your scripts get a decent interface
too. It's fairly featured so scripts end up mostly self-contained,
with little reliance on coreutils of various systems. Some patterns
are fun to use too. Here, in sdf's gopherspace, anyone can use it
for CGI scripts.
There's no one real authorative source on how to write bash. This
page will list some of the resources which helped me pick up and
use bash, and maybe my write-ups on it's features if I ever dare
commit some.
+ + + + +
The Linux Command Line by William Shotts
Not really a bash book, but it does walk you through bash scripti
and various coreutils. It's how I learned the basics, so I though
I should include it.
bash help command
It's understated how handy the builtin bash help is. Look at
this stuff, these are great cheat sheets!
Bash Reference Manual
The bash manpage is (in)famously unreadable. Use this manual
instead. Try the parameter expansion chapter for good shit.
Google Shell Style Guide
Style guides are used for keeping code readable and maintainable
within communities, but also for noting best practices. Plenty
of opinionated decisions in the doc, but also generally good
ideas like indenting long pipelines.
pure bash bible
Collection of fancy bash tricks to replace external calls to
coreutils and such. Generally, the less external calls, the more
efficient the script. But bash's so slow anyway, it's more of a
principle/portability/fun thing.
password-store.sh
They don't want you to know, but the famous pass(1) password
manager is actually just a bash script, as are plenty of good
CLI programs. While it's not exactly the code quality that makes
pass amazing, this is a bash program people over the world trust
their secrets with every day. Certainly worth inspecting.
shellcheck
Shellcheck is a linting tool for shell scripts - not just bash,
but works just as well for it. Basically, it finds common errors
and bad style, and suggests corrections, which you may learn from
(or contest...). It's good at hunting bashisms in POSIX shell
scripts too. You can call it on files from the command line, or
integrate it into your editor. I use it inside kakoune.
Ghost in the Shell by vermaden
Series of articles on general shell usage, covers common UNIX
magics as well as plain neat scripting and interactive use tricks
+ + + + +
Understanding ${0}
My notes on what's $0 and how to use it.
+ + + + +
More to come when I bother.
You are viewing proxied material from sdf.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.