aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc_src
diff options
context:
space:
mode:
authorGravatar Andreas Nordal <andreas_nordal_4@hotmail.com>2016-02-08 19:49:26 +0100
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2016-02-15 13:13:28 -0800
commit62b76b26b4a8afc6987b65f0ad02a18dee093f2e (patch)
treee9b2d761f3cca768bdcfd9225dfca4643a4c6b0c /doc_src
parentb72837a0f4678d34406bc98df00503d1ab8656cf (diff)
Reinstate failglob behaviour for most commands
Expand globs to zero arguments (nullglob) only for set, for and count. The warning about failing globs, and setting the accompanying $status, now happens regardless of mode, interactive or not. It is assumed that the above commands are the common cases where nullglob behaviour is desirable. More importantly, doing this with `set` is a real feature enabler, since the resulting empty array can be passed on to any command. The previous behaviour was actually all nullglob (since commit cab115c8b9933ae7db9412c66d452c0ccb2d7152), but this was undocumented; the failglob warning was still printed in interactive mode, and the documentation was bragging about failglob behaviour.
Diffstat (limited to 'doc_src')
-rw-r--r--doc_src/index.hdr.in13
1 files changed, 12 insertions, 1 deletions
diff --git a/doc_src/index.hdr.in b/doc_src/index.hdr.in
index dd6355db..7f2b30c4 100644
--- a/doc_src/index.hdr.in
+++ b/doc_src/index.hdr.in
@@ -413,8 +413,19 @@ Examples:
- `**` matches any files and directories in the current directory and all of its subdirectories.
-Note that if no matches are found for a specific wildcard, it will expand into zero arguments, i.e. to nothing. If none of the wildcarded arguments sent to a command result in any matches, the command will not be executed. If this happens when using the shell interactively, a warning will also be printed.
+Note that for most commands, if any wildcard fails to expand, the command is not executed, <a href='#variables-status'>`$status`</a> is set to nonzero, and a warning is printed. This behavior is consistent with setting `shopt -s failglob` in bash. There are exactly 3 exceptions, namely <a href="commands.html#set">`set`</a>, <a href="commands.html#count">`count`</a> and <a href="commands.html#for">`for`</a>. Their globs are permitted to expand to zero arguments, as with `shopt -s nullglob` in bash.
+Examples:
+\fish
+ls *.foo
+# Lists the .foo files, or warns if there aren't any.
+
+set foos *.foo
+if test (count $foos) -ge 1
+ ls $foos
+end
+# Lists the .foo files, if any.
+\endfish
\subsection expand-command-substitution Command substitution