aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc_src/case.txt
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-04-21 18:35:29 +1000
committerGravatar axel <axel@liljencrantz.se>2006-04-21 18:35:29 +1000
commita7f977836a9aeee6d9699201d586a252812895ff (patch)
treee754f97d854e6fe848221b47b228e1acdd644675 /doc_src/case.txt
parentf59e4a88c6d71cc85c5928c517fc2aa6db4c6e58 (diff)
Expand the switch/case documentation
darcs-hash:20060421083529-ac50b-f287424c0cc9377085b49492453d35a5512cbc90.gz
Diffstat (limited to 'doc_src/case.txt')
-rw-r--r--doc_src/case.txt20
1 files changed, 19 insertions, 1 deletions
diff --git a/doc_src/case.txt b/doc_src/case.txt
index 209e87de..714d7582 100644
--- a/doc_src/case.txt
+++ b/doc_src/case.txt
@@ -11,6 +11,22 @@ 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.
+
+Also note that command substitutions in a case statement will be
+evaluated even if it's body is not taken. This may seem
+counterintuitive at first, but it is unavoidable, since it would be
+impossible to know if a case command will evaluate to true before all
+forms of parameter expansion have been performed for the case command.
+
\subsection case-example Example
If the variable \$animal contains the name of an animal, the following
@@ -27,9 +43,11 @@ switch $animal
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 \$animal set to \c whale, the output would be \c mammal.
+If the above code was run with \c \$animal set to \c whale, the output would be \c mammal.
</p>