Yes, true, but then again those rules are there for a purpose, and you have to to understand the purpose first. For example, rules like "Implement your code to be legible" and "Code should be self-explanatory" are pretty universal (atleast with
Java programmers) but get routinely broken when you build Linux shell scripts. The reason is that the rules make sense when you are working on long term projects with multiple developers:- The purpose of those rules is to make it easier for other developers to understand your work.
However, if you are writing scripts that only one person uses, and never needs to maintain, who cares about documentation? Indeed, once you get into an environment where shell scripts are being developed and maintained by a team of developers, you need to start making them more legible. This is something that even the more seasoned Java developers forget to do when they write scripts.