2018-02-20 15:58:20 -05:00
|
|
|
# case
|
|
|
|
|
2023-08-04 10:12:13 +03:00
|
|
|
> Bash builtin construct for creating multi-choice conditional statements.
|
|
|
|
> More information: <https://www.gnu.org/software/bash/manual/bash.html#index-case>.
|
2018-02-20 15:58:20 -05:00
|
|
|
|
|
|
|
- Match a variable against string literals to decide which command to run:
|
|
|
|
|
2025-01-04 20:56:52 +02:00
|
|
|
`case {{$COUNTRULE}} in {{words}}) {{wc -w README}} ;; {{lines}}) {{wc -l README}} ;; esac`
|
2018-02-20 15:58:20 -05:00
|
|
|
|
|
|
|
- Combine patterns with |, use * as a fallback pattern:
|
|
|
|
|
2025-01-05 13:47:09 +02:00
|
|
|
`case {{$COUNTRULE}} in {{[wW]|words}}) {{wc -w README}} ;; {{[lL]|lines}}) {{wc -l README}} ;; *) {{echo "what?"}} ;; esac`
|
2025-01-04 20:56:52 +02:00
|
|
|
|
|
|
|
- Allow matching multiple patterns:
|
|
|
|
|
|
|
|
`case {{$ANIMAL}} in {{cat}}) echo "It's a cat" ;;& {{cat|dog}}) echo "It's a cat or a dog" ;;& *) echo "Fallback" ;; esac`
|
|
|
|
|
|
|
|
- Continue to the next pattern's commands without checking the pattern:
|
|
|
|
|
|
|
|
`case {{$ANIMAL}} in {{cat}}) echo "It's a cat" ;& {{dog}}) echo "It's either a dog or cat fell through" ;& *) echo "Fallback" ;; esac`
|