On Thu, Aug 19, 2021 at 08:56:22PM -0400, Greg Wooledge wrote: > > On Thu, 19 Aug 2021, Greg Wooledge wrote: > > > Also relevant: https://mywiki.wooledge.org/BashFAQ/115
Great explanation, Greg. I wish I had half of your talent :) One small addendum: the "predefined strings" in the case statement are actually patterns to match the (contents) of the variable in question: > The case statement simply compares what the user typed to a bunch of > predefined strings. You choose what those strings are. > > case $ch in > a) add; break;; > s) subtract; break;; > m) multiply; break;; > q) exit 0;; > *) echo "Unrecognized command. Please try again.";; > esac So the first one ("a") just matches when $ch contains exactly an "a". But the last one ("*") matches everything (a way of saying "else", or "if nothing matched, then..."). Same for the latter example: > case $ch in > a | ad | add) add; break;; the "a | ad | add" is a pattern matching "a" or "ad", or "add". There are more useful patterns. Cheers - t
signature.asc
Description: Digital signature