Bash Reference Manual Reference Documentation for Bash



Yüklə 4,8 Kb.
Pdf görüntüsü
səhifə14/66
tarix08.10.2017
ölçüsü4,8 Kb.
#3723
1   ...   10   11   12   13   14   15   16   17   ...   66

Chapter 3: Basic Shell Features
31
no matching filenames are found, and the shell option nullglob is disabled, the word is left
unchanged. If the nullglob option is set, and no matches are found, the word is removed.
If the failglob shell option is set, and no matches are found, an error message is printed
and the command is not executed. If the shell option nocaseglob is enabled, the match is
performed without regard to the case of alphabetic characters.
When a pattern is used for filename expansion, the character ‘.’ at the start of a filename
or immediately following a slash must be matched explicitly, unless the shell option dotglob
is set. When matching a filename, the slash character must always be matched explicitly.
In other cases, the ‘.’ character is not treated specially.
See the description of shopt in Section 4.3.2 [The Shopt Builtin], page 64, for a descrip-
tion of the nocaseglob, nullglob, failglob, and dotglob options.
The GLOBIGNORE shell variable may be used to restrict the set of filenames matching a
pattern. If GLOBIGNORE is set, each matching filename that also matches one of the patterns
in GLOBIGNORE is removed from the list of matches. If the nocaseglob option is set, the
matching against the patterns in GLOBIGNORE is performed without regard to case. The
filenames . and .. are always ignored when GLOBIGNORE is set and not null. However,
setting GLOBIGNORE to a non-null value has the effect of enabling the dotglob shell option,
so all other filenames beginning with a ‘.’ will match. To get the old behavior of ignoring
filenames beginning with a ‘.’, make ‘.*’ one of the patterns in GLOBIGNORE. The dotglob
option is disabled when GLOBIGNORE is unset.
3.5.8.1 Pattern Matching
Any character that appears in a pattern, other than the special pattern characters described
below, matches itself. The nul character may not occur in a pattern. A backslash escapes
the following character; the escaping backslash is discarded when matching. The special
pattern characters must be quoted if they are to be matched literally.
The special pattern characters have the following meanings:
*
Matches any string, including the null string. When the globstar shell option
is enabled, and ‘*’ is used in a filename expansion context, two adjacent ‘*’s
used as a single pattern will match all files and zero or more directories and
subdirectories. If followed by a ‘/’, two adjacent ‘*’s will match only directories
and subdirectories.
?
Matches any single character.
[...]
Matches any one of the enclosed characters. A pair of characters separated by a
hyphen denotes a range expression; any character that falls between those two
characters, inclusive, using the current locale’s collating sequence and character
set, is matched. If the first character following the ‘[’ is a ‘!’ or a ‘^’ then any
character not enclosed is matched. A ‘−’ may be matched by including it as the
first or last character in the set. A ‘]’ may be matched by including it as the
first character in the set. The sorting order of characters in range expressions is
determined by the current locale and the values of the LC_COLLATE and LC_ALL
shell variables, if set.
For example, in the default C locale, ‘[a-dx-z]’ is equivalent to ‘[abcdxyz]’.
Many locales sort characters in dictionary order, and in these locales


Chapter 3: Basic Shell Features
32
‘[a-dx-z]’ is typically not equivalent to ‘[abcdxyz]’; it might be equivalent
to ‘[aBbCcDdxXyYz]’, for example. To obtain the traditional interpretation of
ranges in bracket expressions, you can force the use of the C locale by setting
the LC_COLLATE or LC_ALL environment variable to the value ‘C’, or enable the
globasciiranges shell option.
Within ‘[’ and ‘]’, character classes can be specified using the syntax [:class:],
where class is one of the following classes defined in the posix standard:
alnum
alpha
ascii
blank
cntrl
digit
graph
lower
print
punct
space
upper
word
xdigit
A character class matches any character belonging to that class. The word
character class matches letters, digits, and the character ‘_’.
Within ‘[’ and ‘]’, an equivalence class can be specified using the syntax [=c=],
which matches all characters with the same collation weight (as defined by the
current locale) as the character c.
Within ‘[’ and ‘]’, the syntax [.symbol.] matches the collating symbol symbol.
If the extglob shell option is enabled using the shopt builtin, several extended pattern
matching operators are recognized. In the following description, a pattern-list is a list of
one or more patterns separated by a ‘|’. Composite patterns may be formed using one or
more of the following sub-patterns:
?(pattern-list)
Matches zero or one occurrence of the given patterns.
*(pattern-list)
Matches zero or more occurrences of the given patterns.
+(pattern-list)
Matches one or more occurrences of the given patterns.
@(pattern-list)
Matches one of the given patterns.
!(pattern-list)
Matches anything except one of the given patterns.
3.5.9 Quote Removal
After the preceding expansions, all unquoted occurrences of the characters ‘\’, ‘’’, and ‘"’
that did not result from one of the above expansions are removed.
3.6 Redirections
Before a command is executed, its input and output may be redirected using a special no-
tation interpreted by the shell. Redirection allows commands’ file handles to be duplicated,
opened, closed, made to refer to different files, and can change the files the command reads
from and writes to. Redirection may also be used to modify file handles in the current
shell execution environment. The following redirection operators may precede or appear
anywhere within a simple command or may follow a command. Redirections are processed
in the order they appear, from left to right.


Yüklə 4,8 Kb.

Dostları ilə paylaş:
1   ...   10   11   12   13   14   15   16   17   ...   66




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə