mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-08 06:15:16 +08:00
![David Adam (zanchey)](/assets/img/avatar_default.png)
Large list of changes, including formatting and typos for most commands. More substantive changes have been made to alias, bind, block, break, builtin, case, cd, commandline, count, else, emit, fish_config, funced, function, functions, history, math, mimedb, nextd, not, popd, prevd, pushd, pwd, random, read, set, set_color, switch, test, trap, type, ulimit, umask, and while.
51 lines
1.6 KiB
Plaintext
51 lines
1.6 KiB
Plaintext
\section case case - conditionally execute a block of commands
|
|
|
|
\subsection case-synopsis Synopsis
|
|
<tt>switch VALUE; [case [WILDCARD...]; [COMMANDS...]; ...] end</tt>
|
|
|
|
\subsection case-description Description
|
|
|
|
\c switch performs one of several blocks of commands, depending on whether
|
|
a specified value equals one of several wildcarded values. \c case is used
|
|
together with the \c switch statement in order to determine which block should
|
|
be executed.
|
|
|
|
Each \c case command is given one or more parameters. The first \c case
|
|
command with a parameter that matches the string specified in the
|
|
switch command will be evaluated. \c case parameters may contain
|
|
wildcards. These need to be escaped or quoted in order to avoid
|
|
regular wildcard expansion using filenames.
|
|
|
|
Note that fish does not fall through on case statements. Only the
|
|
first matching case is executed.
|
|
|
|
Note that command substitutions in a case statement will be
|
|
evaluated even if its body is not taken. All substitutions, including
|
|
command substitutions, must be performed before the value can be compared
|
|
against the parameter.
|
|
|
|
\subsection case-example Example
|
|
|
|
If the variable \$animal contains the name of an animal, the following
|
|
code would attempt to classify it:
|
|
|
|
<pre>
|
|
switch $animal
|
|
case cat
|
|
echo evil
|
|
case wolf dog human moose dolphin whale
|
|
echo mammal
|
|
case duck goose albatross
|
|
echo bird
|
|
case shark trout stingray
|
|
echo fish
|
|
# Note that the next case has a wildcard which is quoted
|
|
case '*'
|
|
echo I have no idea what a $animal is
|
|
end
|
|
</pre>
|
|
|
|
If the above code was run with \c \$animal set to \c whale, the output
|
|
would be \c mammal.
|
|
|