mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-02 16:04:05 +08:00
a7f977836a
darcs-hash:20060421083529-ac50b-f287424c0cc9377085b49492453d35a5512cbc90.gz
52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
|
|
\section switch switch - conditionally execute a block of commands
|
|
|
|
\subsection switch-synopsis Synopsis
|
|
<tt>switch VALUE; [case [WILDCARD...]; [COMMANDS...];...] end</tt>
|
|
|
|
\subsection switch-description Description
|
|
|
|
The \c switch statement is used to perform one of several blocks of
|
|
commands depending on whether a specified value equals one of several
|
|
wildcarded values. The \c case statement is used together with the \c
|
|
switch statement in order to determine which block should be
|
|
performed.
|
|
|
|
Each \c case command is given one or more parameter. 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. Though the
|
|
syntax may look a bit like C switch statements, it behaves more like
|
|
the case stamantes of traditional shells.
|
|
|
|
\subsection switch-example Example
|
|
|
|
If the variable \$animal contains the name of an animal, the
|
|
following code would attempt to classify it:
|
|
|
|
<p>
|
|
<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
|
|
case '*'
|
|
echo I have no idea what a $animal is
|
|
end
|
|
</pre>
|
|
</p>
|
|
<p>
|
|
|
|
If the above code was run with \c \$animal set to \c whale, the output
|
|
would be \c mammal.
|
|
|
|
</p>
|