Really great resource. If you want more of a book format, I also highly recommend The Linux Command Line by William Shotts: https://linuxcommand.org/tlcl.php
Mandatory comment every time the subject comes up: shellcheck is really helpful when writing Bash scripts.
shellcheck itself is not written in Bash (it's written in Haskell) but it gives really good hints and find lots of bugs. If you disagree with some of its warnings, you can choose which ones you want to turn off.
I use it from within Emacs and it works fine. Set that thing once, years ago, and it's been helping me ever since.
Also: shellcheck probably ships with your Linux distro.
that being said, it think 10 years later, linux should pick a data oriented shell (powershell or nushell) and go full in on it
on windows, almost all services have some Powershell support
i understand that on linux, command line support is always there, so unlike windows adding command line support is not really news, but still i think the move to a data oriented shell, is better
I'm probably just cranky. Moving files is a universal use-case, i.e. xargs predates Bourne. Maybe PowerShell hasn't arrived at the amount of reliability testing we expect from a data utility. If I saw it being used as such, I would ask for many assertions for both data manipulation and filesystem traversal.
There are so many things that can go wrong when scripting in the shell. If you don't sit down and play with it, trying to understand what's going on, then no guide will save you.
I used to read this cover to cover when I first learnt bash. But I later found that its advice can be subpar from time to time. There are better resources in learning bash.
Sorry, not going to go into details here. But I think the statement is not controversial. There’s probably well written criticism on it somewhere.
But then it wasn’t a bad starting point. I don’t have a better book to recommend. There are wikis with better info. But not in the form of a book which is also free I think.
I highly recommend the Wooledge wiki for any and all bash knowledge, it points every place you can go wrong, especially when using advanced features.
https://mywiki.wooledge.org/FullBashGuide
http://mywiki.wooledge.org/BashFAQ