Originally Posted by ntubski
Java is designed only as a programming language, it has lots of programming features that bash does not.
C was designed as a minimalist high level language. Having a "break" instruction that can be used conditionally in the middle of a switch case is a desirable feature. Having an option to "fall through" at the end of a switch case is another desirable feature. Those two were combined by making "fall through" the default and requiring an extra "break" to indicate "don't fall through". That also provides an easy way to combine several conditions for one "case".
That was good minimalist design, but has caused so many bugs that it is well proven to be bad programming language design.
A good programming language should break by default at the end of each case and have an explicit keyword (or operator) to indicate "fall through" for the rarer situation in which fall through is the intended behavior.
I understand why C++, though not in any way a "minimalist" language, needed to copy that design flaw of C. I didn't recall that detail in Java, but if Java also copied that design flaw of C, that was foolish. Before Java was invented, there was enough experience with that flaw to know it was bad language design.
So thanks for the info on the "fall through" syntax in bash. I found it interesting and I'm sure it is what the OP needed. I just disagreed with the implied opinion that having "fall through" need to be explicit
is representative of bash being less of a programming oriented language than one in which "fall through" is the default.