diff options
author | Andreas Nordal <andreas_nordal_4@hotmail.com> | 2016-02-08 19:49:26 +0100 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2016-02-15 13:13:28 -0800 |
commit | 62b76b26b4a8afc6987b65f0ad02a18dee093f2e (patch) | |
tree | e9b2d761f3cca768bdcfd9225dfca4643a4c6b0c /doc_src | |
parent | b72837a0f4678d34406bc98df00503d1ab8656cf (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.in | 13 |
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 |