From 0001803f0b9523c94fa2ede48eaecb047fef4524 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Mon, 21 Nov 2011 20:51:19 -0500 Subject: [PATCH] Bash-4.1 distribution source --- AUTHORS | 1 + CHANGES | 374 +- COMPAT | 59 +- CWRU/changelog | 1801 +++- INSTALL | 4 + MANIFEST | 45 +- Makefile.in | 110 +- NEWS | 123 + NOTES | 6 +- POSIX | 4 + README | 11 +- aclocal.m4 | 97 + alias.c | 2 +- array.c | 53 +- array.h | 3 +- arrayfunc.c | 36 +- arrayfunc.h | 4 +- assoc.c | 11 + bashhist.c | 28 + bashline.c | 94 +- bashtypes.h | 4 + braces.c | 9 +- builtins/Makefile.in | 82 +- builtins/bind.def | 2 +- builtins/command.def | 41 +- builtins/common.c | 2 +- builtins/common.h | 6 +- builtins/complete.def | 70 +- builtins/declare.def | 11 +- builtins/evalfile.c | 22 +- builtins/evalstring.c | 16 + builtins/help.def | 4 +- builtins/kill.def | 5 +- builtins/mapfile.def | 26 +- builtins/printf.def | 35 +- builtins/read.def | 27 +- builtins/shopt.def | 156 +- command.h | 11 +- config-bot.h | 4 + config-top.h | 11 + config.h.in | 27 + configure | 840 +- configure.in | 33 +- copy_cmd.c | 8 + dispose_cmd.c | 4 + doc/FAQ | 215 +- doc/Makefile.in | 2 +- doc/bash.0 | 2297 ++--- doc/bash.1 | 516 +- doc/bash.html | 691 +- doc/bash.pdf | Bin 281941 -> 288296 bytes doc/bash.ps | 11314 +++++++++++----------- doc/bashref.dvi | Bin 638296 -> 663456 bytes doc/bashref.html | 2042 ++-- doc/bashref.info | 929 +- doc/bashref.pdf | Bin 560032 -> 559434 bytes doc/bashref.ps | 19471 +++++++++++++++++++------------------- doc/bashref.texi | 162 +- doc/builtins.0 | 945 +- doc/builtins.ps | 3364 +++---- doc/fdl.texi | 79 +- doc/fdl.txt | 130 +- doc/rbash.ps | 11 +- doc/texinfo.tex | 8814 +++++++++++------ doc/version.texi | 10 +- error.c | 3 +- examples/functions/autoload.v3 | 2 +- examples/loadables/finfo.c | 2 +- examples/loadables/printenv.c | 1 + examples/misc/aliasconv.bash | 10 +- examples/misc/aliasconv.sh | 10 +- examples/misc/cshtobash | 35 +- examples/scripts/cat.sh | 2 +- execute_cmd.c | 154 +- expr.c | 5 +- externs.h | 39 +- findcmd.c | 15 +- general.c | 8 +- general.h | 2 +- hashlib.c | 2 +- jobs.c | 22 +- lib/glob/glob.c | 27 +- lib/readline/bind.c | 10 + lib/readline/complete.c | 96 +- lib/readline/display.c | 106 +- lib/readline/doc/fdl.texi | 79 +- lib/readline/doc/history.texi | 2 +- lib/readline/doc/rlman.texi | 2 +- lib/readline/doc/rltech.texi | 39 +- lib/readline/doc/rluser.texi | 88 +- lib/readline/doc/rluserman.texi | 2 +- lib/readline/doc/version.texi | 10 +- lib/readline/funmap.c | 3 + lib/readline/histexpand.c | 44 +- lib/readline/input.c | 12 +- lib/readline/keymaps.c | 18 +- lib/readline/mbutil.c | 7 +- lib/readline/parens.c | 14 +- lib/readline/readline.c | 15 +- lib/readline/readline.h | 14 + lib/readline/rlprivate.h | 5 + lib/readline/rltty.c | 2 + lib/readline/signals.c | 65 +- lib/readline/terminal.c | 4 +- lib/readline/text.c | 49 +- lib/readline/undo.c | 3 + lib/readline/util.c | 10 +- lib/readline/vi_keymap.c | 4 +- lib/readline/vi_mode.c | 12 +- lib/sh/Makefile.in | 50 +- lib/sh/casemod.c | 7 +- lib/sh/fpurge.c | 67 +- lib/sh/getcwd.c | 6 + lib/sh/input_avail.c | 9 +- lib/sh/mbscmp.c | 22 +- lib/sh/snprintf.c | 23 +- lib/sh/strtoimax.c | 6 +- lib/sh/strtoumax.c | 7 +- lib/sh/uconvert.c | 2 +- mailcheck.c | 4 +- make_cmd.c | 23 +- make_cmd.h | 2 +- parse.y | 381 +- parser-built | 90 +- parser.h | 40 +- patchlevel.h | 2 +- pathexp.c | 2 +- pcomplete.c | 175 +- pcomplete.h | 7 +- po/LINGUAS | 2 +- po/POTFILES.in | 4 + po/af.gmo | Bin 1231 -> 1231 bytes po/af.po | 701 +- po/bash.pot | 693 +- po/bg.gmo | Bin 36341 -> 34844 bytes po/bg.po | 729 +- po/ca.gmo | Bin 10101 -> 9819 bytes po/ca.po | 715 +- po/cs.gmo | Bin 153701 -> 152764 bytes po/cs.po | 887 +- po/de.gmo | Bin 35764 -> 45438 bytes po/de.po | 1814 ++-- po/en@boldquot.gmo | Bin 155921 -> 159145 bytes po/en@boldquot.po | 767 +- po/en@quot.gmo | Bin 154417 -> 157609 bytes po/en@quot.po | 767 +- po/eo.gmo | Bin 25421 -> 141873 bytes po/eo.po | 3662 +++---- po/es.gmo | Bin 31030 -> 151298 bytes po/es.po | 3022 +++--- po/et.gmo | Bin 12257 -> 12257 bytes po/et.po | 705 +- po/fr.gmo | Bin 27590 -> 26542 bytes po/fr.po | 920 +- po/hu.gmo | Bin 9591 -> 9311 bytes po/hu.po | 712 +- po/id.gmo | Bin 152559 -> 149543 bytes po/id.po | 1227 +-- po/ja.gmo | Bin 8183 -> 8183 bytes po/ja.po | 701 +- po/lt.gmo | Bin 25365 -> 30754 bytes po/lt.po | 902 +- po/nl.gmo | Bin 154123 -> 150781 bytes po/nl.po | 845 +- po/pl.gmo | Bin 26025 -> 24983 bytes po/pl.po | 727 +- po/pt_BR.gmo | Bin 9926 -> 9658 bytes po/pt_BR.po | 712 +- po/ro.gmo | Bin 9699 -> 9415 bytes po/ro.po | 712 +- po/ru.gmo | Bin 9142 -> 9142 bytes po/ru.po | 701 +- po/sk.gmo | Bin 153974 -> 150575 bytes po/sk.po | 789 +- po/sv.gmo | Bin 149365 -> 146044 bytes po/sv.po | 783 +- po/tr.gmo | Bin 25573 -> 24589 bytes po/tr.po | 722 +- po/vi.gmo | Bin 164633 -> 161257 bytes po/vi.po | 783 +- po/zh_TW.gmo | Bin 5993 -> 5993 bytes po/zh_TW.po | 697 +- print_cmd.c | 243 +- redir.c | 174 +- shell.c | 23 +- shell.h | 3 + sig.c | 3 +- siglist.c | 1 + stringlib.c | 2 +- subst.c | 365 +- subst.h | 5 +- support/SYMLINKS | 1 + support/bashbug.sh | 4 +- support/config.sub | 3 + support/mksignames.c | 2 +- support/shobj-conf | 19 +- test.c | 13 +- test.h | 1 + tests/alias.right | 8 + tests/alias.tests | 2 + tests/array.right | 50 +- tests/array.tests | 2 + tests/assoc.right | 83 +- tests/assoc.tests | 13 + tests/braces.right | 7 +- tests/braces.tests | 5 + tests/case.right | 1 + tests/case.tests | 4 + tests/comsub-eof.right | 6 + tests/comsub-eof.tests | 4 + tests/comsub-posix.tests | 3 + tests/comsub.right | 8 + tests/comsub.tests | 2 + tests/dbg-support.right | 18 + tests/dbg-support.tests | 3 + tests/dollar-at-star | 8 + tests/dollar.right | 17 + tests/exec.right | 8 +- tests/execscript | 2 + tests/exp.right | 4 + tests/exp.tests | 2 + tests/extglob.tests | 3 +- tests/func.right | 5 + tests/func2.sub | 10 + tests/glob.right | 2 +- tests/heredoc.right | 3 +- tests/heredoc.tests | 4 + tests/history.right | 4 + tests/history.tests | 2 + tests/jobs.right | 4 +- tests/jobs.tests | 2 + tests/new-exp.right | 4 +- tests/new-exp.tests | 8 + tests/nquote.right | 3 + tests/nquote.tests | 2 + tests/printf.tests | 2 + tests/redir8.sub | 1 + tests/run-glob-test | 2 +- tests/run-trap | 6 +- tests/set-x.right | 28 + tests/set-x.tests | 7 +- tests/shopt.right | 3 + tests/trap.right | 13 + tests/trap.tests | 3 + tests/type.right | 19 + tests/type.tests | 2 + trap.c | 35 +- variables.c | 62 +- variables.h | 1 + xmalloc.c | 105 +- y.tab.c | 1934 ++-- y.tab.h | 90 +- 252 files changed, 50786 insertions(+), 36399 deletions(-) diff --git a/AUTHORS b/AUTHORS index a7fa8f2..bd6d89b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -334,6 +334,7 @@ examples/functions/manpage Tom Tromey examples/functions/fstty Chet Ramey examples/functions/jj.bash Chet Ramey examples/functions/notify.bash Chet Ramey +examples/loadables/getconf.c J.T. Conklin examples/scripts/shprompt Chet Ramey examples/scripts/adventure.sh Chet Ramey, Doug Gwyn examples/scripts/bcsh.sh Chris Robertson, Chet Ramey diff --git a/CHANGES b/CHANGES index 3d71f17..359e10d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,375 @@ +This document details the changes between this version, bash-4.1-rc, +and the previous version, bash-4.1-beta. + +1. Changes to Bash + +a. Fixed a bug that caused printf to not return a partial value when it + encountered an error while converting an integer argument. + +b. Fixed a bug that caused setting one of the compatNN options to not + turn off the others. + +c. The (undocumented) --wordexp option is no longer included by default. + +d. Fixed a bug in conditional command execution that caused it to not + correctly ignore the exit status under certain circumstances. + +e. Added a configure-time check for correctly-working asprintf/snprintf. + +f. Fixed some problems with line number calculation and display when sourcing + a file in an interactive shell. + +g. Fixed a bug that caused the shell to crash when using `declare -A foo=bar'. + +h. Fixed a bug that caused an off-by-one error when calculating the directories + to display with the PROMPT_DIRTRIM option. + +2. Changes to Readline + +a. Fixed a bug that caused applications using the callback interface to not + react to SIGINT (or other signals) until another character arrived. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.1-beta, +and the previous version, bash-4.1-alpha. + +1. Changes to Bash + +a. Fixed a bug in mapfile that caused the shell to crash if it was passed the + name of an associative array. + +b. Fixed a bug that caused the shell to incorrectly split case patterns if + they contained characters in $IFS. + +c. Fixed a bug that caused the shell to set $? to the wrong value when using + a construct ending with a variable assignment with set -x enabled and PS4 + containing a command substitution. + +d. Fixed a bug that caused the shell to read commands incorrectly if an + expansion error occurred under certain conditions in a user-specified + subshell. + +e. Fixed a bug that caused the shell to set $? incorrectly if a parse error + occurred in an evaluation context ("eval", trap command, dot script, etc.) + +f. Fixed a bug that caused the shell to attempt command substitution + completion within a single-quoted string. + +g. Fixed a bug that caused the shell to insert an extra single quote during + word completion. + +h. Fixed a bug that caused the shell to crash if invoked with the environment + variable EMACS having a null value. + +i. Fixed a bug that caused bash to incorrectly report the presence of new + mail in a `maildir' environment. + +j. Fixed a bug that caused the shell to not recognize a here-document ending + delimiter inside a command substitution. + +k. Fixed a bug that caused the shell to crash when a a dynamic array variable + was assigned a scalar value. + +2. Changes to Readline + +3. New Features in Bash + +a. The mapfile/readarray builtin no longer stores the commands it invokes via + callbacks in the history list. + +b. There is a new `compat40' shopt option. + +c. The < and > operators to [[ do string comparisons using the current locale + only if the compatibility level is greater than 40 (set to 41 by default). + +4. New Features in Readline + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.1-alpha, +and the previous version, bash-4.0-release. + +1. Changes to Bash + +a. Fixed bugs in the parser involving new parsing of the commands contained + in command substitution when the substitution is read. + +b. Fixed a bug that caused the shell to dump core when performing programmable + completion using a shell function. + +c. Fixed a bug in `mapfile' that caused it to invoke callbacks at the wrong + time. + +d. Fixed a bug that caused the shell to dump core when listing jobs in the + `exit' builtin. + +e. Fixed several bugs encountered when reading subscripts in associative + array assignments and expansions. + +f. Fixed a bug that under some circumstances caused an associative array to + be converted to an indexed array. + +g. Fixed a bug that caused syntax errors and SIGINT interrupts to not set + $? to a value > 128. + +h. Fixed a bug that caused the shell to remove FIFOs associated with process + substitution inside shell functions. + +i. Fixed a bug that caused terminal attributes to not be reset when the + `read' builtin timed out. + +j. Fixed a bug in brace expansion that caused unwanted zero padding of the + expanded terms. + +k. Fixed a bug that prevented the |& construct from working as intended when + used with a simple command with additional redirections. + +l. Fixed a bug with the case statment ;& terminator that caused the shell to + dereference a NULL pointer. + +m. Fixed a bug that caused assignment statements or redirections preceding + a simple command name to inhibit alias expansion. + +n. Fixed the behavior of `set -u' to conform to the latest Posix interpretation: + every expansion of an unset variable except $@ and $* will cause the + shell to exit. + +o. Fixed a bug that caused double-quoted expansions of $* inside word + expansions like ${x#$*} to not expand properly when $IFS is empty. + +p. Fixed a bug that caused traps to set $LINENO to the wrong value when they + execute. + +q. Fixed a bug that caused off-by-one errors when computing history lines in + the `fc' builtin. + +r. Fixed a bug that caused some terminating signals to not exit the shell + quickly enough, forcing the kernel to send the signal (e.g., SIGSEGV) + multiple times. + +s. Fixed a bug that caused the shell to attempt to add empty lines to the + history list when reading here documents. + +t. Made some internal changes that dramatically speeds up sequential indexed + array access. + +u. Fixed a bug that caused the shell to write past the end of a string when + completing a double-quoted string ending in a backslash. + +v. Fixed a bug that caused the shell to replace too many characters when a + pattern match was null in a ${foo//bar} expansion. + +w. Fixed bugs in the expansion of ** that caused duplicate directory names + and the contents of the current directory to be omitted. + +x. Fixed a bug that caused $? to not be set correctly when referencing an + unset variable with set -u and set -e enabled. + +y. Fixed a bug caused by executing an external program from the DEBUG trap + while a pipeline was running. The effect was to disturb the pipeline + state, occasionally causing it to hang. + +z. Fixed a bug that caused the ** glob expansion to dump core if it + encountered an unsearchable directory. + +aa. Fixed a bug that caused `command -v' and `command -V' to not honor the + path set by the -p option. + +bb. Fixed a bug that caused brace expansion to take place too soon in some + compound array assignments. + +cc. Fixed a bug that caused programmable completion functions' changes to + READLINE_POINT to not be reflected back to readline. + +dd. Fixed a bug that caused the shell to dump core if a trap was executed + during a shell assignment statement. + +ee. Fixed an off-by-one error when computing the number of positional + parameters for the ${@:0:n} expansion. + +ff. Fixed a problem with setting COMP_CWORD for programmable completion + functions that could leave it set to -1. + +gg. Fixed a bug that caused the ERR trap to be triggered in some cases where + `set -e' would not have caused the shell to exit. + +hh. Fixed a bug that caused changes made by `compopt' to not persist past the + completion function in which compopt was executed. + +ii. Fixed a bug that caused the list of hostname completions to not be cleared + when HOSTNAME was unset. + +jj. Fixed a bug that caused variable expansion in here documents to look in + any temporary environment. + +kk. Bash and readline can now convert file names between precomposed and + decomposed Unicode on Mac OS X ("keyboard" and file system forms, + respectively). This affects filename completion (using new + rl_filename_rewrite_hook), globbing, and readline redisplay. + +ll. The ERR and EXIT traps now see a non-zero value for $? when a parser + error after set -e has been enabled causes the shell to exit. + +mm. Fixed a bug that in brace expansion that caused zero-prefixed terms to + not contain the correct number of digits. + +nn. Fixed a bug that caused the shell to free non-allocated memory when + unsetting an associative array which had had a value implicitly assigned + to index "0". + +oo. Fixed a memory leak in the ${!prefix@} expansion. + +pp. Fixed a bug that caused printf to not correctly report all write errors. + +qq. Fixed a bug that caused single and double quotes to act as delimiters + when splitting a command line into words for programmable completion. + +rr. Fixed a bug that caused ** globbing that caused **/path/* to match every + directory, not just those matching `path'. + +ss. Fixed a bug that caused the shell to dump core when running `help' without + arguments if the terminal width was fewer than 7 characters. + +2. Changes to Readline + +a. The SIGWINCH signal handler now avoids calling the redisplay code if + one arrives while in the middle of redisplay. + +b. Changes to the timeout code to make sure that timeout values greater + than one second are handled better. + +c. Fixed a bug in the redisplay code that was triggered by a prompt + containing invisible characters exactly the width of the screen. + +d. Fixed a bug in the redisplay code encountered when running in horizontal + scroll mode. + +e. Fixed a bug that prevented menu completion from properly completing + filenames. + +f. Fixed a redisplay bug caused by a multibyte character causing a line to + wrap. + +g. Fixed a bug that caused key sequences of two characters to not be + recognized when a longer sequence identical in the first two characters + was bound. + +h. Fixed a bug that caused history expansion to be attempted on $'...' + single-quoted strings. + +i. Fixed a bug that caused incorrect redisplay when the prompt contained + multibyte characters in an `invisible' sequence bracketed by \[ and + \]. + +j. Fixed a bug that caused history expansion to short-circuit after + encountering a multibyte character. + +3. New Features in Bash + +a. Here-documents within $(...) command substitutions may once more be + delimited by the closing right paren, instead of requiring a newline. + +b. Bash's file status checks (executable, readable, etc.) now take file + system ACLs into account on file systems that support them. + +c. Bash now passes environment variables with names that are not valid + shell variable names through into the environment passed to child + processes. + +d. The `execute-unix-command' readline function now attempts to clear and + reuse the current line rather than move to a new one after the command + executes. + +e. `printf -v' can now assign values to array indices. + +f. New `complete -E' and `compopt -E' options that work on the "empty" + completion: completion attempted on an empty command line. + +g. New complete/compgen/compopt -D option to define a `default' completion: + a completion to be invoked on command for which no completion has been + defined. If this function returns 124, programmable completion is + attempted again, allowing a user to dynamically build a set of completions + as completion is attempted by having the default completion function + install individual completion functions each time it is invoked. + +h. When displaying associative arrays, subscripts are now quoted. + +i. Changes to dabbrev-expand to make it more `emacs-like': no space appended + after matches, completions are not sorted, and most recent history entries + are presented first. + +j. The [[ and (( commands are now subject to the setting of `set -e' and the + ERR trap. + +k. The source/. builtin now removes NUL bytes from the file before attempting + to parse commands. + +l. There is a new configuration option (in config-top.h) that forces bash to + forward all history entries to syslog. + +m. A new variable $BASHOPTS to export shell options settable using `shopt' to + child processes. + +n. There is a new confgure option that forces the extglob option to be + enabled by default. + +o. New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace + output to that file descriptor. + +p. If the optional left-hand-side of a redirection is of the form {var}, the + shell assigns the file descriptor used to $var or uses $var as the file + descriptor to move or close, depending on the redirection operator. + +q. The < and > operators to the [[ conditional command now do string + comparison according to the current locale. + +r. Programmable completion now uses the completion for `b' instead of `a' + when completion is attempted on a line like: a $(b c. + +s. Force extglob on temporarily when parsing the pattern argument to + the == and != operators to the [[ command, for compatibility. + +t. Changed the behavior of interrupting the wait builtin when a SIGCHLD is + received and a trap on SIGCHLD is set to be Posix-mode only. + +u. The read builtin has a new `-N nchars' option, which reads exactly NCHARS + characters, ignoring delimiters like newline. + +4. New Features in Readline + +a. New bindable function: menu-complete-backward. + +b. In the vi insertion keymap, C-n is now bound to menu-complete by default, + and C-p to menu-complete-backward. + +c. When in vi command mode, repeatedly hitting ESC now does nothing, even + when ESC introduces a bound key sequence. This is closer to how + historical vi behaves. + +d. New bindable function: skip-csi-sequence. Can be used as a default to + consume key sequences generated by keys like Home and End without having + to bind all keys. + +e. New application-settable function: rl_filename_rewrite_hook. Can be used + to rewite or modify filenames read from the file system before they are + compared to the word to be completed. + +f. New bindable variable: skip-completed-text, active when completing in the + middle of a word. If enabled, it means that characters in the completion + that match characters in the remainder of the word are "skipped" rather + than inserted into the line. + +g. The pre-readline-6.0 version of menu completion is available as + "old-menu-complete" for users who do not like the readline-6.0 version. + +h. New bindable variable: echo-control-characters. If enabled, and the + tty ECHOCTL bit is set, controls the echoing of characters corresponding + to keyboard-generated signals. + +i. New bindable variable: enable-meta-key. Controls whether or not readline + sends the smm/rmm sequences if the terminal indicates it has a meta key + that enables eight-bit characters. + +------------------------------------------------------------------------------ This document details the changes between this version, bash-4.0-release, and the previous version, bash-4.0-rc1. @@ -601,7 +973,7 @@ bb. The command assigned to a key sequence with `bind -x' now sets two new and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT, respectively. -cc. There is a new >>& redirection operator, which appends the standard output +cc. There is a new &>> redirection operator, which appends the standard output and standard error to the named file. dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects diff --git a/COMPAT b/COMPAT index 13512ac..3210cca 100644 --- a/COMPAT +++ b/COMPAT @@ -1,10 +1,12 @@ +Compatibility with previous versions +==================================== + This document details the incompatibilities between this version of bash, -bash-4.0, and the previous widely-available versions, bash-1.14 (which is -still the `standard' version for a few Linux distributions) and bash-2.x. +bash-4.1, and the previous widely-available versions, bash-2.x (which is +still the `standard' version for a few Linux distributions) and bash-3.x. These were discovered by users of bash-2.x and 3.x, so this list is not comprehensive. Some of these incompatibilities occur between the current -version and versions 2.0 and above. (The differences between bash-1.14 and -bash-2.0 were significant.) +version and versions 2.0 and above. 1. Bash uses a new quoting syntax, $"...", to do locale-specific string translation. Users who have relied on the (undocumented) @@ -277,7 +279,8 @@ bash-2.0 were significant.) than a regular expression. 34. Bash-4.0 allows the behavior in the previous item to be modified using - the notion of a shell `compatibility level'. + the notion of a shell `compatibility level'. If the compat31 shopt + option is set, quoting the pattern has no special effect. 35. Bash-3.2 (patched) and Bash-4.0 fix a bug that leaves the shell in an inconsistent internal state following an assignment error. One of the @@ -311,10 +314,54 @@ bash-2.0 were significant.) 41. Beginning with bash-4.0, when one of the commands in a pipeline is killed by a SIGINT while executing a command list, the shell acts as if it - received the interrupt. + received the interrupt. This can be disabled by setting the compat31 or + compat32 shell options. 42. Bash-4.0 changes the handling of the set -e option so that the shell exits if a pipeline fails (and not just if the last command in the failing pipeline is a simple command). This is not as Posix specifies. There is work underway to update this portion of the standard; the bash-4.0 behavior attempts to capture the consensus at the time of release. + +43. Bash-4.0 fixes a Posix mode bug that caused the . (source) builtin to + search the current directory for its filename argument, even if "." is + not in $PATH. Posix says that the shell shouldn't look in $PWD in this + case. + +44. Bash-4.1 uses the current locale when comparing strings using the < and + > operators to the `[[' command. This can be reverted to the previous + behavior by setting one of the `compatNN' shopt options. + +Shell Compatibility Level +========================= + +Bash-4.0 introduced the concept of a `shell compatibility level', specified +as a set of options to the shopt builtin (compat31, compat32, compat40 at +this writing). There is only one current compatibility level -- each +option is mutually exclusive. This list does not mention behavior that is +standard for a particular version (e.g., setting compat32 means that quoting +the rhs of the regexp matching operator quotes special regexp characters in +the word, which is default behavior in bash-3.2 and above). + +compat31 set + - the < and > operators to the [[ command do not consider the current + locale when comparing strings + - quoting the rhs of the regexp matching operator (=~) has no + special effect + +compat32 set + - the < and > operators to the [[ command do not consider the current + locale when comparing strings + +compat40 set + - the < and > operators to the [[ command do not consider the current + locale when comparing strings + - interrupting a command list such as "a ; b ; c" causes the execution + of the entire list to be aborted + +------------------------------------------------------------------------------- + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. diff --git a/CWRU/changelog b/CWRU/changelog index 5427ece..085fdbd 100644 --- a/CWRU/changelog +++ b/CWRU/changelog @@ -5772,7 +5772,7 @@ bracecomp.c lib/readline/{rltty,signals}.c - move block_sigint and release_sigint from rltty.c to signals.c; add _rl_ prefix to make them public to the library; change callers. - From Jan Kratchovil + From Jan Kratochvil lib/readline/rlprivate.h - new extern declarations for _rl_block_sigint and _rl_release_sigint @@ -5780,7 +5780,7 @@ lib/readline/rlprivate.h lib/readline/display.c - add calls to _rl_block_sigint and _rl_release_sigint to rl_redisplay, since it maniupluates global data structures. Fix from Jan - Kratchovil + Kratochvil builtins/printf.def - change calls to asprintf and manually adding to vbuf to use calls @@ -7527,3 +7527,1800 @@ print_cmd.c Bo Andresen [bash-4.0 frozen] + + 2/20 + ---- + +[bash-4.0 released] + + 2/22 + ---- + +parse.y + - fix parse_comsub to not test a character for being a possible shell + metacharacter if LEX_PASSNEXT flag is set. Fixes bug reported by + Mike Frysinger + +pcomplete.c + - add call to save_parser_state (accidentally dropped from patch) to + gen_shell_function_matches. Fixes bug with bash_completion and + file/directory completion reported by phil@Arcturus.universe + +Makefile.in + - fix assignment to LDFLAGS_FOR_BUILD to match those in subdir + Makefiles. Fixes bug reported by Mike Frysinger + +builtins/mapfile.def + - make sure the callback quantum (-c option argument) is > 0. Fixes + bug reported by Stephane Chazleas + + 2/23 + ---- +parse.y + - fix save_token_state and restore_token_state to save and restore + current_token. Fixes bug reported by Bernd Eggink + + +builtins/exit.def + - check jobs[i] before checking whether or not it's running when + the checkjobs option is set and we're looking for running jobs + at exit. Fixes bug reported by Mike Frysinger + + 2/24 + ---- +siglist.c + - include bashintl.h for definition of _. Fixes bug reported by + Greg Wooledge + + 2/25 + ---- +subst.c + - new function, skip_matched_pair. Similar to skip_to_delim and + the extract_XXX family + - move skipsubscript here from arrayfunc.c; re-implement in terms of + skip_matched_pair. Fixes bugs reported by + +arrayfunc.c + - remove skipsubscript; moved to subst.c + +parse.y + - change reset_parser to set current_token to '\n'. Rest of fix for + bug reported by Bernd Eggink ; earlier fix on + 2/23 + + 2/26 + ---- +builtins/declare.def + - when given something like array[x]=y (which sets making_array_special + to 1), don't convert an associative array to an indexed array (line + 493). Part of fix for bug reported by Pierre Gaston + + - if offset == 0, indicating that we do not have a valid assignment, + make sure any `name' containing a `[' is a valid array reference + before trying to go on. Not doing this leads to creating crazy + variables like `name[foo[bar]=bax'. Rest of fix for bug reported + by Pierre Gaston + +assoc.c + - change assoc_to_assign to single-quote the array keys if `quoted' is + non-zero. Makes things easier to read with weird characters in the + key + +parse.y + - fix parse_comsub to not set LEX_HEREDELIM when it sees "<<<". Fixes + bug reported by Mike Frysinger + + 2/27 + ---- +parse.y + - fix report_syntax_error to set last_command_exit_value to + EX_BADUSAGE (2) instead of EX_USAGE (258), since there's nothing + that will translate that to something < 128 before reading the + next command. Partial fix for bug reported by Mike Frysinger + + +sig.c + - fix sigint_sighandler to set last_command_exit_value to sig+128 + before calling throw_to_top_level. Rest of fix for bug reported + by Mike Frysinger + +jobs.c + - if fork() fails, set last_command_exit_value to 126 before calling + throw_to_top_level + +execute_cmd.c + - defer calling unlink_fifo_list in parent branch of + execute_disk_command if we're executing in a shell function + - change execute_function to call unlink_fifo_list before returning + if it's the top-level function + + 3/2 + --- +builtins/read.def + - if read times out, make sure we remove the top element from the + unwind-protect stack (the free of input_string) and run the rest, + to reset the tty and readline and alarm states. Then we jump to + assigning the variables to any partial input. Fixes bug reported + by Christopher F. A. Johnson + + 3/3 + --- +parse.y + - break comment checking code into a common COMMENT_BEGIN define so + we can use it in multiple places in parse_comsub + - in parse_comsub, don't alter the LEX_RESWDOK flag if we read a + `#' and we're checking comments, even though `#' isn't a `shell break' + character. Fixes bug reported by Mike Frysinger + +braces.c + - in expand_seqterm, decrease the total length of the rhs by the length + of any (optional) increment, so we don't end up with unwanted zero + padding because the rhs length is wrong. Fixes bug reported by + Carl Albing + + 3/4 + --- +doc/{bash.1,bashref.texi} + - changes to clean up some of the language describing the effects of + terminal process groups on the ability to read from and write to + the terminal + + 3/5 + --- +support/shobj-conf + - add host_vendor to string tested in switch to handle things like + gentoo/freebsd + - beginning with version 7, FreeBSD no longer has /usr/bin/objformat + or a.out binaries and libraries. It's always ELF. Fix from + Timothy Redaelli + +parse.y + - in parse_comsub, allow comments if we are ready to read a + reserved word (tflags & LEX_RESWDOK), haven't read anything from + one yet (lex_rwlen == 0) and the current character is a '#' + + 3/6 + --- +parse.y + - new lex flag for parse_comsub: LEX_INWORD. Turn it off when + we see a shell break character; turn it on or keep it on when + not a break character. Keep track of word length (reset to 0 + when we turn on LEX_INWORD when it was off). + - don't use COMMENT_BEGIN in parse_comsub any more; test + whether or not LEX_INWORD is set and lex_wlen == 0 in addition + to tests for LEX_RESWDOK and lex_rwlen. Comments are valid + when at the start of a word + - move LEX_PASSNEXT code to the top of parse_comsub, so the rest + of the function doesn't have to check for the flag at different + places + + 3/7 + --- +parse.y + - in parse_comsub, when looking for a reserved word (LEX_RESWDOK + non-zero), and in a case statement, we can see either an esac + or a pattern list. We handle an esac separately. We should + turn off LEX_RESWDOK if we see anything but a newline, since + we'll be reading a pattern list. Other part of fix for bug + reported by Mike Frysinger (rest of fix + on 3/3) + + 3/10 + ---- +{.,lib/readline}/doc/fdl.texi + - updated to FDL version 1.3 + + 3/11 + ---- +parse.y + - when using the |& construct with a simple command preceding it, add + the implicit redirection to the simple command's redirection list, + since the redirections associated with the command struct are never + executed. Fixes bug reported by Matt Zyzik + + 3/14 + ---- +execute_cmd.c + - in execute_case_command, if ;& is used with no following pattern + list, make sure we don't reference a NULL pointer. Bug report and + fix from Clark Jian Wang + +parse.y + - make parser_state global, so other files can use it + - command_word_acceptable now returns non-zero if PST_REDIRLIST bit + set in parser_state, so we accept assignment statements and + perform alias expansion. Fix for bug reported by Vincent + Lefevre (2/24/2009) + +parser.h + - add PST_REDIRLIST flag, notes that parser is currently parsing a + redirection list preceding a simple command + +make_cmd.c + - make_simple_command now turns on PST_REDIRLIST in parser_state when + creating a new simple command + - make_simple_command turns off PST_REDIRLIST in parser_state if it + adds a non-redirection to the command it's building + - clean_simple_command turns off PST_REDIRLIST to make sure it's off + +subst.c + - new flag for param_expand: PF_IGNUNBOUND, means to not exit if the + variable is unbound even if `set -u' is enabled + - change param_expand to not call err_unboundvar if the `pflags' + argument has the PF_IGNUNBOUND bit set + - parameter_brace_expand_word now takes an extra `pflags' argument to + pass down to param_expand; changed callers + - changed call to parameter_brace_expand_word in parameter_brace_expand + to add PF_IGNUNBOUND flag so ${@:-foo} doesn't cause the shell to + exit (but ${@} does) when there are no positional parameters. Fixes + Debian bug 519165 from Dan Jacobson + +parse.y + - add code to parse_comsub to allow here-documents within command + substitutions to be delimited by the closing right paren, with the + usual warning about here documents delimited by EOF on execution. + Fixes regression from bash-3.2 noted in Red Hat bugzilla 485664 by + Ralf Corsepius + + 3/15 + ---- +subst.c + - string_list_dollar_at now checks for Q_PATQUOTE, which getpattern() + uses to denote Q_DOUBLE_QUOTES (?). Fixes a=abcd echo "${a#$*}" + when IFS= and args are `a b' as noted by Stephane Chazleas + + - param_expand now checks for Q_PATQUOTE and treats it identically + to Q_DOUBLE_QUOTES when expanding $* + - expand_word_unsplit now sets W_NOSPLIT in the flags of the word it + passes to expand_word_internal if $IFS is NULL + - expand_word_leave_quoted now sets expand_no_split_dollar_star and + the W_NOSPLIT bit in the word flags before calling + expand_word_internal if $IFS is NULL, just like expand_word_unsplit. + It is now virtually identical to expand_word_unsplit. Rest of fix for + problems reported by Stephane Chazleas + + 3/20 + ---- +trap.c + - in _run_trap_internal, don't pass SEVAL_RESETLINE as flag to + parse_and_execute if running the ERR trap (further modification + of change from 1/12) + +execute_cmd.c + - in execute_simple_command, set line_number to line_number_for_err_trap + before calling run_error_trap. Part of fix for bug reported by + Brian J. Murrell + - change other places calling run_error_trap() to set and use + line_number_for_err_trap + + 3/21 + ---- +builtins/fc.def + - Even though command substitution through parse_and_execute turns + off remember_on_history, command substitution in a shell when + set -o history has been enabled (interactive or not) should use it + in the last_hist calculation as if it were on. Same calculation + in fc_gethnum and fc_builtin. Fixes bug reported by + Ian Kelling + +sig.c + - change termsig_sighandler to terminate immediately if it gets called + twice with the same signal before termsig_handler gets called. This + fixes the `looping on SIGSEGV' phenomenon reported by Linux users. + +parse.y + - in read_secondary_line, don't try to add NULL lines to the history + list. Report and patch from Lubomir Rintel + + 3/22 + ---- +sig.c + - Augment change from 3/21 with explicit check for signals we *don't* + want this to happen for. Patch from Lubomir Rintel + + 3/28 + ---- +array.c + - in array_reference, return NULL immediately if the desired index + is larger than the maximum + - add cache of last array referenced and last array element referenced; + use in array_reference to optimize case of sequential access; + invalidated where necessary in other functions + - array_rshift needs to set max_index to 0 if the array was empty + before shifting in the new element 0 + - array_shift needs to use element_index(a->head->prev) to set the + max_index, not a simple decrement, to deal with sparse arrays + + 4/1 + --- +bashline.c + - in bash_dequote_filename, return right away after copying the + backslash if the last character in the string to be expanded + is a backslash. The old code copied an extra NUL and overwrote + the bounds checking. Fixes bug reported by Shawn Starr + https://bugzilla.redhat.com/show_bug.cgi?id=488649 + + 4/3 + --- +subst.c + - in pat_subst.c, make sure to copy one character from the input + string in the case of a null pattern match, since we substitute + on the null match and then increment past the current character. + Not doing this means that each character of the original string + is replaced because of the null matches. Fixes debian bug + reported bhy Louis-David Mitterrand + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522160 + +lib/sh/winsize.c + - incorporate contents of readline/rlwinsize.h to get all the various + system dependencies right when trying to find TIOCGWINSZ. Fixes + bug reported by Dan Price + + 4/6 + --- +doc/{bash.1,bashref.texi} + - fix description of conditional `>' and `<' to remove statement that + the comparison pays attention to the current locale -- it has + always used strcmp + +lib/glob/glob.c + - fixed a bug in glob_filename that caused glob_dir_to_array to be + called to prepend a (globbed) directory name onto the results from + glob_vector, which, if we were globbing `**', glob_vector has + already done. Effect is to have the directory name(s) on there + twice. Fixes "dir*/**" bug reported by Matt Zyzik + + + 4/8 + --- +doc/{bash.1,bashref.texi} + - fix short syntax summary of for command to reflect full bash + syntax (which is a superset of Posix syntax). Fixes bug reported + by Reuben Thomas + + 4/10 + ---- +{expr,subst}.c + - make sure last_command_exit_value is set to EXECUTION_FAILURE + before calling err_unboundvar, in case set -e is enabled and + the shell exits from there. Fixes bug reported by Freddy + Vulto and Piotr Zielinski + + + 4/11 + ---- +jobs.c + - in restore_pipeline, don't call discard_pipeline with a NULL + argument + +trap.c + - in run_debug_trap, make sure to save and restore the pipeline, + pipeline_pgrp, and state of the pipeline around running the debug + trap, then remove any job created by running the debug trap from + the jobs table when it completes. Fixes for two bugs reported + by lex@upc.ua + + 4/12 + ---- +lib/readline/signals.c + - new functions to block and release SIGWINCH like the SIGINT blocking + and releasing functions + +lib/readline/rlprivate.h + - new extern declarations for _rl_block_sigwinch and _rl_release_sigwinch + +lib/readline/display.c + - block SIGWINCH during redisplay like SIGINT. Should fix bug reported + by Nicolai Lissner + + 4/13 + ---- +lib/readline/readline.h + - new readline state variable: RL_STATE_REDISPLAYING + +lib/readline/display.c + - in rl_redisplay, don't block SIGWINCH during redisplay; just set + the REDISPLAYING state + +lib/readline/terminal.c + - in rl_resize_terminal, don't call rl_redisplay_after_sigwinch() if + we're already in the middle of redisplay (RL_STATE_REDISPLAYING). + Fix for bug reported by Nicolai Lissner + + 4/15 + ---- +parse.y + - fix parse_comsub to add check for \n when seeing whether the current + character can change to a state where a reserved word is legal, + since it is not a shell meta character. Fixes bug reported by + Bernd Eggink . + + 4/17 + ---- +jobs.c + - new functions to save and restore the pgrp_pipe (since there's only + one): save_pgrp_pipe and restore_pgrp_pipe + +trap.c + - run_debug_trap now saves and restores the pgrp_pipe before and + after calling the debug trap + - run_debug_trap now makes sure the terminal is owned by the pipeline + pgrp after the debug trap runs. Rest of fix for bug reported by + Oleksly Melnyk (lex@upc.ca) + + 4/19 + ---- +include/posixselect.h + - new include file, encapsulates select(2) includes and defines for + bash and readline. Inspired by patch from Mike Frysinger + + +lib/sh/input_avail.c + - include "posixselect.h" + +lib/readline/{input,parens}.c + - include "posixselect.h" instead of using inline includes + - use new USEC_TO_TIMEVAL define to make sure that values for timeouts + greater than one second are handled properly + +lib/sh/fpurge.c + - updated implementation, taken from gnulib + + 4/21 + ---- +lib/glob/glob.c + - in finddirs, don't try to free a return value of glob_error_return + from glob_vector. Bug and fix from werner@suse.de + +lib/readline/signals.c + - in rl_echo_signal_char, check that SIGQUIT and SIGTSTP are defined + before trying to use them. Bug report and fix from Volker Grabsch + + + 4/24 + ---- +aclocal.m4 + - add conditional inclusion of to BASH_CHECK_TYPE + +bashtypes.h,lib/sh/strto[iu]max.c + - include if present for any existing declaration of + intmax_t and uintmax_t. Fixes Interix problem reported by + Markus Duft + +lib/sh/strindex.c,externs.h,builtins/common.h + - renamed strindex to strcasestr to agree with other implementations + (e.g., BSD, MacOS X, gnulib); changed callers + +lib/sh/{strindex.c,Makefile.in},Makefile.in + - renamed strindex.c to strcasestr.c + +configure.in + - add strcasestr to call to AC_REPLACE_FUNCS, take advantage of + existing libc implementations + +config.h.in + - add define for HAVE_STRCASESTR + +lib/sh/mbscmp.c + - fix mbscmp to return correct values when the strings do not contain + valid multibyte characters. Ideas from gnulib + +xstrchr.c + - only compare current character against C if mblength == 1 + +{shell,variables}.c + - changed some xstrchr calls back to strchr when the arguments cannot + contain multibyte characters + +lib/sh/{xstrchr.c,Makefile.in},Makefile.in + - renamed xstrchr to mbschr; renamed file to mbschr.c + +aclocal.m4 + - change BASH_CHECK_MULTIBYTE to use AC_REPLACE_FUNCS(mbschr) + +externs.h + - extern declarations for mbscmp and mbschr, conditional on the usual + HAVE_MBSCMP and HAVE_MBSCHR defines + +general.h,{alias,arrayfunc,bashline,general,execute_cmd,subst}.c + - changed calls to xstrchr to mbschr + +doc/bash.1 + - use `pathname expansion' consistently, not `filename expansion' or + `filename generation' + +doc/bashref.texi + - use the phrase `filename expansion' consistently (since this is + what the Gnu people prefer) instead of `pathname expansion' or + `filename generation' + +aclocal.m4,config.h.in + - check for mbscasecmp in BASH_CHECK_MULTIBYTE, define HAVE_MBSCASECMP + if found + +lib/sh/{mbscasecmp.c,Makefile.in} + - new file, case-insensitive multibyte string comparison + +externs.h + - extern declaration for mbscasecmp + + 4/25 + ---- +lib/readline/display.c + - in _rl_move_cursor_relative, don't adjust dpos by woff if it's + already less than woff (don't want it less than 0) + - in _rl_move_cursor_relative, short-circuit right away if the cursor + is at columns 0 and `new' is 0 (doesn't matter if it's a multibyte + locale or not, or whether there are invisible chars in the prompt) + - in _rl_move_cursor_relative, go ahead and adjust dpos if + prompt_physical_chars >= _rl_screenwidth (previous check was just > ) + Fixes bug reported by Andreas Schwab + + 4/28 + ---- +lib/glob/glob.c + - in glob_vector, don't add an empty pathname ("") if we're adding the + currect directory to the dirlist and GX_NULLDIR is set -- we can just + ignore it, since the passed directory name (".") was created by + the caller. Fixes bug reported by Matt Zyzik + + 5/5 + --- +subst.c + - make expansion of $@ and $* when set -u is in effect and there are + no positional parameters be a non-fatal error. This is the + consensus of the austin group, though it is not historical practice. + Message from Geoff Clare <20090505091501.GA10097@squonk.masqnet> of + 5 May 2009 and http://austingroupbugs.net/view.php?id=155 + + + 5/20 + ---- +lib/glob/glob.c + - tentative fix to glob_filename to compensate for glob_vector putting + null pathname at front of result vector when dflags&GX_NULLDIR. + Current fix manually removes empty string element from front of + result vector; a better fix would be to use a flag so glob_vector + doesn't add it at all. Augments patch from 4/28, which appears to + have broken some things. Fixes bug reported by Matt Zyzik + + + 5/22 + ---- + +lib/glob/glob.c + - better fix for glob_filename; supersedes patch of 5/20. Now the + code does not set GX_ADDCURDIR if directory_len == 0 and the + function has not been called recursively ((flags & GX_ALLDIRS) == 0). + Better fix for bug reported by Matt Zyzik + +Makefile.in + - fix build race condition that occurs in some makes caused by + libreadline.a and libhistory.a containing some of the same files + (e.g., xmalloc.o) and conflicting when trying to build both at + the same time. Reported by Mike Frysinger + + 5/25 + ---- +lib/readline/vi_mode.c + - fix _rl_vi_initialize_line so that the loop counter is not + unsigned (it doesn't matter, but it eliminates a compiler warning). + Bug reported by Dave Caroline + + 5/26 + ---- +doc/{bash.1,bashref.texi} + - add text to the description of array variables making it clear + that an array variable is not considered set until a subscript + has been assigned a value + + 5/29 + ---- +lib/readline/text.c + - fix rl_change_case to handle case where mbrtowc doesn't find a + valid multibyte character + +lib/readline/vi_mode.c + - fix _rl_vi_change_mbchar_case to handle case where mbrtowc doesn't + find a valid multibyte character + +lib/sh/casemod.c + - fix sh_modcase to handle case where mbrtowc doesn't find a valid + multibyte character + +lib/readline/mbutil.c + - fix _rl_find_next_mbchar_internal to not call mbrtowc at the end of + the string, since implementations return different values -- just + break the loop immediately + +lib/readline/display.c + - fix rl_redisplay to make same sort of cursor position adjustments + based on multibyte locale and _rl_last_c_pos when performing + horizontal scrolling rather than line wrapping. Probably still + more to do. Fixes bug reported by jim@jim.sh + + 6/5 + --- +doc/{bash.1,bashref.texi} + - added some more explanation of the inheritance of the ERR trap at + the suggestion of Thomas Pospisek + +findcmd.c + - use eaccess(2) if available in file_status to take other file + access mechanisms such as ACLs into account. Patch supplied + by werner@suse.de + + 6/12 + ---- +xmalloc.c + - also calculate lowest brk() value the first time xmalloc/xrealloc + (and their sh_ counterparts) are called + - error messages consolidated into a single function (allocerr/ + sh_allocerr) to avoid string duplication + + 6/16 + ---- +variables.c + - changes to allow variables.c to be compiled if ALIAS is not defined. + Bug and fix from John Gatewood Ham + +lib/sh/getcwd.c + - fix so systems defining BROKEN_DIRENT_D_INO have the necessary + defines. Fix from Jay Krell + +configure.in + - add -D_ALL_SOURCE to interix CFLAGS for struct timezone definition. + Bug and fix from John Gatewood Ham + + 6/29 + ---- +variables.c + - change initialize_shell_variables to add environment variables with + invalid names to the variables hash table, but marking them as + invisible and imported + - new function, export_environment_candidate. Used when creating the + export environment for commands to include variables with invalid + names inherited from the initial environment. Apparently this + behavior is widespread + - change make_var_export_array to use export_environment_candidate + rather than visible_and_exported to test variables for inclusion + in the export environment + + 7/1 + --- +builtins/read.def + - fix a memory leak where the number of fields is not the same as + the number of variables passed to `read'. Bug report from + werner@suse.de + +builtins/command.def + - move section of code that sets PATH from -p option before the + verbose-handling section, so command -v and command -V honor + the PATH set by command -p. Bug report and fix from + ohki@gssm.otsuka.tsukuba.ac.jp + + 7/9 + --- +subst.c + - change brace_expand_word_list to defer brace expansion on compound + array assignments that are arguments to builtins like `declare', + deferring the expansion until the assignment statement is processed. + Fixes inconsistency reported by agriffis@n01se.net + + 7/16 + ---- +bashline.c + - fix bash_execute_unix_command to set rl_point correctly based on + READLINE_POINT. The old method of using save_point will not + work because maybe_make_readline_line will change rl_point. Bug + reported by Henning Bekel + +trap.c + - fix _run_trap_internal and run_pending_traps to save and restore + value of subst_assign_varlist so the dispose_words on it doesn't + leave dangling pointers after the trap handler runs. Fixes bug + reported by Marc Herbert + + 7/22 + ---- +subst.c + - fix off-by-one error in pos_params when computing positional + parameters beginning with index 0. Bug and fix from Isaac Good + + + 7/24 + ---- +lib/readline/display.c + - add code to _rl_move_cursor_relative and _rl_col_width to short- + circuit a few special cases: prompt string and prompt string plus + line contents, both starting from 0. Saves a bunch of calls to + multibyte character functions using already-computed information. + As a side effect, fixes bug reported by Lasse Karkkainen + + +subst.c + - fixed a problem in split_at_delims that could leave *cwp set to -1 + if the line ends in IFS whitespace and SENTINEL is one of those + whitespace characters. Fixes problem with setting COMP_CWORD for + programmable completion reported by Ville Skytta + +bashline.c + - change bash_execute_unix_command to clear the current line (if the + terminal supplies the "ce" attribute) instead of moving to a new + line. Inspired by report from Henning Bekel + +builtins/printf.def + - changes to allow printf -v var to assign to array indices, the way + the read builtin can. Suggested by Christopher F. A. Johnson + + +lib/readline/complete.c + - fix rl_old_menu_complete and rl_menu_complete to appropriately set + and unset RL_STATE_COMPLETING while generating the list of matches. + Fixes debian bug #538013 reported by Jerome Reybert + + + 7/25 + ---- +execute_cmd.c + - change execute_builtin to temporarily turn off and restore the ERR + trap for the eval/source/command builtins in the same way as we + temporarily disable and restore the setting of the -e option. + Fixes bug reported by Henning Garus + + 7/27 + ---- +shell.c + - add fflush(stdout) and fflush(stderr) to exit_shell before closing + any file descriptors at exit time (e.g., coproc pipes) + + 7/30 + ---- +lib/readline/complete.c + - new function rl_backward_menu_complete, just passes negative count + argument to rl_menu_complete + - change rl_menu_complete to act appropriately if rl_last_command is + rl_backward_menu_complete, so we can cycle forward and backward + through the list of completions + +lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 + - document new "menu-complete-backward" bindable readline function. + Suggested by Jason Spiro + +lib/readline/vi_keymap.c + - add binding of C-n to menu-complete and C-p to menu-complete-backward + in vi-insert keymap, as suggested by Jason Spiro + + +pcomplete.c + - fixed a bug in programmable_completions: the options it returned from + the compspec it found were set before generating the completions, + which meant that any changes made by "compopt" were overridden and + only in effect for the duration of the executing shell function + rather than the entire completion. Fixes bug reported by Ville + Skytta + + 7/31 + ---- +lib/readline/keymaps.c + - fixed memory leak in rl_discard_keymap by freeing storage associated + with hierarchical keymaps + - new convenience function, rl_free_keymap, that calls rl_discard_keymap + and frees the keymap passed as an argument + +lib/readline/util.c + - new bindable keymap function, _rl_null_function, to be used internally + +lib/readline/rlprivate.h + - extern declaration for _rl_null_function + +lib/readline/bind.c + - fix rl_generic_bind in the case where we are trying to override a + keymap with a null function (e.g., when trying to unbind it). We + can't use a NULL function pointer in ANYOTHERKEY since that's + indistinguishable from the keymap not having been overridden at all. + We use _rl_null_function instead, which simply does nothing. We + could add an rl_ding to it later. Fixes problem with hitting ESC + repeatedly while in vi command mode reported by James Rowell + + +builtins/bind.def + - call rl_bind_keyseq instead of rl_set_key for -r option + +lib/readline/readline.c + - Set vi_movement_keymap[ESC] to _rl_null_function after binding the + arrow keys in bind_arrow_keys() to allow vi-mode users to hit ESC + multiple times in vi command mode while still allowing the arrow + keys to work + + 8/2 + --- +bashline.c + - fix clear_hostname_list by setting hostname_list_initialized to 0 + after freeing all list members. Fixes bug reported by Freddy + Vulto + +lib/readline/display.c + - in update_line, if we copy data from one line to another because we + are wrapping a multibyte character from, say, the first line to the + second, we need to update OMAX and the line indices to account for + the moved data. Bug report and fix from Martin Hamrle + + + 8/3 + --- +pcomplete.h + - defines for EMPTYCMD ("_EmptycmD_") and DEFAULTCMD ("_DefaultCmD_") + +builtins/complete.def + - change compopt_builtin to make -E work on the "empty" command + completion + - fix print_compitem and print_compopts to replace EMPTYCMD with -E + - added -D (default) option to complete/compgen/compopt. No supporting + code yet + +doc/bash.1,lib/readline/doc/rluser.texi + - document new -D, -E options to compopt + - document new -D option to complete/compgen + +shell.h + - new define, EX_WEXPCOMSUB, value of 125 + - new define, EX_RETRYFAIL, value of 124 (for programmable completion) + +subst.c + - use EX_WEXPCOMSUB instead of literal 125 as exit status when a shell + invoked to run wordexp(3) with the -n option supplied attempts a + command substitution + +pcomplete.c + - new define, PCOMP_RETRYFAIL, used to indicate a "failure, retry with + next completion" status to the programmable completion code + + 8/4 + --- +pcomplete.c + - changed gen_shell_function_matches to take an extra parameter + indicating whether the specified shell function was not found or + returned the special "fail/retry" status, and, if it was either, + to not bother returning any matches list + - changed gen_compspec_completions to take an extra parameter to pass + through the "found" status from gen_shell_function_completions + - new function gen_progcomp_completions to take care of searching for + and evaluating a compspec for a particular word, saving its status, + and returning to its caller (programmable_completions) whether or + not to retry completion. This function also checks whether a + retry changed the compspec associated with a command and short- + circuits the retry if it has not + - changed programmable_completions to try default completion (if set) + if a specific completion was not found for a command + - changed programmable_completions to implement "fail/retry" semantics + for a shell function that returns 124 and changes the compspec + associated with the command. All based on proposal and changes from + Behdad Esfahbod (Red Hat bugzilla 475229) + +doc/bash.1,lib/readline/doc/rluser.texi + - documented new dynamic programmable completion functionality + + 8/5 + --- +stringlib.c + - first argument to substring() is now `const char *' + +externs.h + - changed extern declaration for substring() + +subst.c + - skipsubscript now takes a third FLAGS argument, passes to + skip_matched_pair + - skip_matched_pair now interprets flags&1 to mean not to parse + matched pairs of quotes, backquotes, or shell word expansion + constructs + +{subst,general,expr}.c + - changed skipsubscript() callers + +assoc.c + - changed assoc_to_assign to double-quote the key if it contains any + shell metacharacters + +arrayfunc.c + - use skipsubscript in quote_assign rather than quote any glob + characters in the subscript of an array assignment + - in assign_compound_array_list, call skipsubscript with a flags + argument of 1 if assigning an associative array to avoid trying + to re-parse quoted strings + +redir.c + - set expanding_redir before expanding body of here documents and + here strings to avoid looking for variables in temporary env + + 8/7 + --- +lib/readline/readline.c + - in _rl_dispatch_callback, return value of -3 means that we have + added to a key sequence, but there are previous matches in the + sequence. Don't call _rl_subseq_result if we get a -3 from a + previous context in the chain; just go back up the chain. Report + and fix from + +bashline.c + - fixes to history_completion_generator and bash_dabbrev_expand to + make dabbrev-expand inhibit suppressing of appending space char + to matches. Have to do it with the generator too because + rl_menu_complete turns off suppressing the appended space in + set_completion_defaults(). Suggestion from Dan Nicolaescu + + - suppress completion match sorting in bash_dabbrev_expand by + setting rl_sort_completion_matches = 0. Suggestion from Dan + Nicolaescu + - don't qsort history match list in build_history_completion_array + if dabbrev_expand_active == 1 + - start the loop in build_history_completion_array that gathers words + from history for possible completions from the end of the list + rather than the beginning. It doesn't matter where you start if + the results are sorted, and dabbrev-expand is supposed to offer + the most recent completions first + + 8/12 + ---- +execute_cmd.c + - change to execute_command_internal to make [[ ... ]] conditional + command subject to settings of `set -e' and the ERR trap + + 8/14 + ---- +execute_cmd.c + - change to execute_command_internal to make (( ... )) arithmetic + command subject to settings of `set -e' and the ERR trap + +lib/readline/text.c + - new bindable function, rl_skip_csi_sequence, reads the characters + that make up a control sequence as defined by ECMA-48. Sequences + are introduced by the Control Sequence Indicator (CSI) and + contain a defined set of characters. Insert, End, Page Up and so + on are CSI sequences. Report and code from Andy Koppe + + +lib/readline/readline.h + - extern declaration for rl_skip_csi_sequence + +lib/readline/funmap.c + - new bindable command "skip-csi-sequence", runs rl_skip_csi_sequence + +doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} + - documented new bindable command "skip-csi-sequence", unbound by + default + +builtins/evalfile.c + - fix _evalfile to remove embedded null bytes from the file read + into the string. Report and proposed fix from Roman Rakus + + +{configure,config.h}.in + - check for syslog(3), define HAVE_SYSLOG + - check for syslog.h, define HAVE_SYSLOG_H + +config-top.h + - new define SYSLOG_HISTORY, disabled by default + +config-bot.h + - if HAVE_SYSLOG or HAVE_SYSLOG_H are not defined, undef SYSLOG_HISTORY + +bashhist.c + - if SYSLOG_HISTORY is defined, call bash_syslog_history with the + line added to the history in bash_add_history. + - new function, bash_syslog_history(line), sends line to syslog at + user.info. The line is truncated to send no more than 600 + (SYSLOG_MAXLEN) bytes to syslog. Feature requested by many, and + required by some national laws + +sig.c + - in termsig_handler, resend SIGHUP to children if subshell_environment + indicates we're a shell performing command or process substitution + +jobs.c + - add CHECK_TERMSIG calls to wait_for in addition to the ones in + waitchld() + +builtins/shopt.def + - new functions set_bashopts, parse_bashopts, and initialize_bashopts + to manage new environment variable $BASHOPTS, like $SHELLOPTS but + for shopt options + - change toggle_shopts to call set_bashopts after setting options, so + $BASHOPTS reflects new values + +shell.c + - call initialize_bashopts after calling initialize_shell_options at + shell startup + +configure.in + - new configure `enable' option --enable-exended-glob-default, to + set the initial default value of the `extglob' shell option + +config.h + - new define, EXTGLOB_DEFAULT, controlled by the `extended-glob-default' + configure option + +pathexp.c + - initialize extended_glob variable to EXTGLOB_DEFAULT + +doc/{bash.1,bashref.texi} + - document new $BASHOPTS variable and its behavior + +doc/bashref.texi + - document new --enable-extended-glob-default configure option + + 8/16 + ---- +print_cmd.c + - new variables: xtrace_fd and xtrace_fp, the file descriptor and + FILE * to which we send `set -x' tracing output. If fd == -1 + then fp == STDERR, the default mode + - new function xtrace_init, sets xtrace_fd == -1 and xtrace_fp = stderr + - new function xtrace_set (fd, fp), sets xtrace_fd and xtrace_fp + to the arguments + - new function xtrace_reset, handles closing old xtrace fd/fp and + moving them back to -1/stderr + - new function xtrace_fdchck, calls xtrace_reset if the fd passed as + an argument is xtrace_fd + - change xtrace functions to fprintf to xtrace_fp instead of stderr + +shell.c + - call xtrace_init() very early in main() + +variables.c + - new special variable, BASH_XTRACEFD, holds file descriptor used for + set -x trace output. Inspired by suggestion from Bruce Korb + + +doc/{bash.1,bashref.texi} + - added description of new BASH_XTRACEFD variable + +redir.c + - add calls to xtrace_fdchk to the redirections that close file + descriptors, so we notice if we close BASH_XTRACEFD and compensate + accordingly (same places that call coproc_fdchk()) + + 8/18 + ---- +lib/readline/text.c + - change to _rl_replace_text to add error checks: start must be <= + end, and we don't call rl_insert_text if passed the empty string + +config.h.in + - add define for HAVE_ICONV, already found by intl autoconf macros + - add define for HAVE_LOCALE_CHARSET + +aclocal.m4 + - add check for locale_charset() to BASH_CHECK_MULTIBYTE + +lib/sh/fnxform.c + - new file with two public function: fnx_tofs and fnx_fromfs. + Primarily intended for use on MacOS X, they use iconv to convert + between whatever the current locale encoding is and "UTF-8-MAC", + a special encoding on OS X in which all characters are + decomposed unicode, as the HFS+ filesystem stores them. These + functions return a pointer to a local buffer, allocated once and + resized as necessary, to avoid too many allocations; callers + should not free the return value, since it may be the string + passed + +Makefile.in + - make sure LIBICONV is set by autoconf (@LIBICONV@) and added to + list of link libraries + +externs.h + - new extern declarations for fnx_fromfs and fnx_tofs + +lib/glob/glob.c + - convert the filename read using readdir() in glob_vector() using + fnx_fromfs and use that value in the call to strmatch. This + ensures that we're using the precomposed Unicode value of the + filename rather than the native decomposed form. Original bug + report from Len Lattanzi ; fix inspired by + Guillaume Outters + + 8/19 + ---- +lib/readline/complete.c + - new completion hook: rl_filename_rewrite_hook, can rewrite or modify + filenames read from the filesystem before they are compared to the + word to be completed + +lib/readline/readline.h + - extern declaration for rl_filename_rewrite_hook + +lib/readline/doc/rltech.texi + - document rl_filename_rewrite_hook + +bashline.c + - new function, bash_filename_rewrite_hook, assigned to + rl_filename_rewrite_hook. Calls fnx_fromfs to convert from + filesystem format to "input" format. This makes completing + filenames with accented characters work on Mac OS X + + 8/20 + ---- +lib/readline/bind.c + - new bindable variable "skip-completed-text", bound to + _rl_skip_completed_text. If enabled, it means to note when + completing before the end of a word and skipping over characters + after rl_point that match in both the completion to be inserted + and the word being completed. It means that completing + `Makefile' with the cursor after the `e' results in `Makefile' + instead of `Makefilefile'. Inspired by an idea from Jared + Yanovich from back in 2004 + +lib/readline/rlprivate.h + - extern declaration for _rl_skip_completed_text + +lib/readline/complete.c + - implement semantics of _rl_skip_completed_text in insert_match: + skip characters in `replacement' that match chars in rl_line_buffer + from the start of the word to be completed + + 8/21 + ---- +error.c + - change parser_error to set last_command_exit_value to 2 before + calling exit_shell (if set -e is enabled), so any exit or ERR + trap gets the right value of $?. Suggestion from Stefano + Lattarini + +braces.c + - fix expand_seqterm so that a non-zero-prefixed term that's longer + than a zero-prefixed term determines the length of each term + in the brace-expanded sequence. This means that things like + {01..100} will have three digits in all the elements of the + expanded list. Fixes bug reported by Jeff Haemer + + + 8/24 + ---- +{arrayfunc,variables}.c + - when inserting a value into an associative array using syntax like + T=v where T is an already-declared associative array using key "0", + make sure the key is in newly-allocated memory so it can be freed + when the variable is unset. Fixes bug reported as redhat 518644 + by Jon Fairbairn + + 8/26 + ---- +lib/readline/funmap.c + - add "old-menu-complete" binding for rl_old_menu_complete + +lib/readline/readline.h + - add extern declaration for rl_old_menu_complete + +subst.c + - fix memory leak when processing ${!prefix@}. Need to dispose all + words in the word list created from all matching variable. Fixes + bug reported by muszi@muszi.kite.hu. + + 8/29 + ---- +execute_cmd.c + - add fflush(stdout) and fflush(stderr) to child coproc code before + calling exit after execute_in_subshell + + 8/31 + ---- +lib/readline/{{bind,readline}.c,rlprivate.h} + - new bindable variable, "echo-control-characters", enabled by default. + This controls whether or not readline honors the tty ECHOCTL bit + and displays characters corresponding to keyboard-generated signals. + Controlled by _rl_echo_control_chars variable, declared in readline.c + +lib/readline/signals.c + - if _rl_echo_control_chars == 0, don't go through _rl_echo_signal_char + + +lib/readline/doc/{readline.3,rluser.texi} + - document "echo-control-characters" bindable variable + + 9/1 + --- +lib/readline/histexpand.c + - hist_string_extract_single_quoted now takes an additional argument: + a flags word. The only defined value (flags & 1) allows backslash + to quote the single quote. This is to inhibit history expansion + inside $'...' containing an escaped single quote. + - change history_expand to call hist_string_extract_single_quoted + with flags == 1 if it sees $'. Fixes bug reported by Sean + Donner + + 9/2 + --- +builtins/printf.def + - add a call to sh_wrerror if ferror() succeeds in the PRETURN macro, + to print an error message in the case that the final fflush fails + (for instance, because it attempts to write data that didn't have a + trailing newline). Fixes bug reported by Stefano Lattarini + + + 9/7 + --- +arrayfunc.c + - some fixes to assign_compound_array_list to avoid null pointer + dereferences pointed out by clang/scan-build + +lib/glob/glob.c + - fixes to udequote_pathname and wdequote_pathname to avoid possible + null pointer dereferences pointed out by clang/scan-build + +lib/readline/undo.c + - fix to _rl_copy_undo_list (function unused) to avoid deref of + uninitialized pointer pointed out by clang/scan-build + +general.c + - fix string_to_rlimtype so it works if passed a null pointer (though + it never is) + +builtins/mapfile.def + - fix to mapfile() to avoid possible null pointer dereference pointed + out by clang/scan-build + +variables.c + - fix to valid_exportstr to avoid possible null pointer dereferences + pointed out by clang/scan-build + +bashline.c + - fix to bash_execute_unix_command to avoid possible null pointer + dereference if READLINE_LINE or READLINE_POINT is not bound + + 9/11 + ---- +[Prayers for the victimes of 9/11/2001] + +command.h + - add `rflags' member to struct redirect to hold private flags and + state information + - change redirector to a REDIRECTEE instead of int to prepare for + possible future changes + +{copy_cmd,dispose_cmd,make_cmd,print_cmd,redir}.c + - changes resulting from type change of `redirector' member of struct + redirect: change x->redirector to x->redirector.dest and add code + where appropriate to deal with x->redirector.filename + +make_cmd.h + - change extern declaration for make_redirection + +make_cmd.c + - first argument of make_redirection is now a `REDIRECTEE' to prepare + for possible future changes. First arg is now assigned directly to + redirector member instead of assigning int to redirector.dest + +{make_cmd,redir}.c,parse.y + - changes resulting from type change of first argument to + make_redirection from int to REDIRECTEE. In general, changes are + using REDIRECTEE sd and assigning old argument to sd.dest, then + passing sd to make_redirection + +make_cmd.[ch],parse.y + - add fourth argument to make_redirection: flags. Sets initial value + of `rflags' member of struct redirect + - changed all callers of make_redirection to add fourth argument of 0 + + 9/15 + ---- +parse.y + - change read_token_word to return REDIR_WORD for tokens of the form + {var} where `var' is a valid shell identifier and the character + following the } is a `<' or `>' + - add REDIR_WORD versions of all input and output file redirections + and here documents + +print_cmd.c + - change input and output file redirection direction and here + document cases of print_redirection to print a varname + specification of the form {var} when appropriate. Still need + to fix rest of cases + +redir.c + - implement REDIR_VARASSIGN semantics for file input and output + redirections and here documents + + 9/16 + ---- +parse.y + - added REDIR_WORD versions of remaining redirection constructs except + for err_and_out ones + +redir.c + - handle REDIR_VARASSIGN semantics for rest of redirection constructs + - accommodate REDIR_VARASSIGN when translating redirections + - new function, redir_varvalue, does variable lookup for {v} when + redirection needs the value (e.g., r_close_this) + +print_cmd.c + - fix rest of cases to print {varname} when REDIR_VARASSIGN is set in + redirect->rflags + +doc/{bash.1,bashref.texi} + - document new {varname} REDIR_VARASSIGN form of redirections + +tests/vredir.{right,tests},vredir[1-5].sub + - tests for new {varname} REDIR_VARASSIGN form of redirections + + 9/18 + ---- +subst.c + - new flags argument to split_at_delims: these flags are ORd with + SD_NOJMP and passed to skip_to_delim + - change skip_to_delim to honor new SD_NOQUOTEDELIM flag by not + checking whether or not single and double quotes are delimiters + if it's set in passed flags until after skipping quoted strings. + +subst.h + - change extern declaration for split_at_delims + - new define for SD_NOQUOTEDELIM flag + +pcomplete.c + - pass SD_NOQUOTEDELIM in flags argument to split_at_delims so single + and double quotes, even though they're in + rl_completer_word_break_characters, don't act as word delimiters + for programmable completion. Fixes bug reported by Freddy + Vulto + +lib/glob/glob.c + - in glob_filename, after recursively scanning a directory specified + with `**', turn off GX_ALLDIRS|GX_ADDCURDIR before calling + glob_vector on the rest of the pathname, since it may not apply to + the rest of the pattern. Turned back on if the filename makes it + appropriate. Fixes bug reported by Anders Kaseorg + +redir.c + - change execute_null_command to fork a child to execute if any of + the commands redirections have the REDIR_VARASSIGN flag set, since + those commands are not supposed to have side effects + +test.c + - < and > binary operators will obey the locale by using strcoll if + the TEST_LOCALE flag is passed to binary_test + +test.h + - new define for TEST_LOCALE + +execute_cmd.c + - execute_cond_node sets TEST_LOCALE so [[ str1 < str2 ]] (and >) + obey the locale. Fixes bug/incompatibility reported by Greg + Wooledge + +doc/{bash.1,bashref.texi} + - documented [[ command new locale-sensitive treatment of < and > + + 9/24 + ---- +configure.in + - add "darwin10" cases like darwin8 and darwin9 to handle linking with + included readline and history libraries + + 9/26 + ---- +lib/readline/display.c + - modify change of 7/24 to use prompt_physical_chars instead of + prompt_visible_length to account for visible multibyte characters in + the line (usually in the prompt). Fixes debian bug #547264 + reported by Pietro Battiston + - add flags argument to _rl_col_width; changed callers. flags > 0 + means that it's ok to use the already-computed prompt information; + flags == 0 means that we're expanding the prompt and we should not + short-circuit + +parse.y + - in decode_prompt_string, when expanding \w and \W on Mac OS X, + use fnx_fromfs to convert from "filesystem" form to "input" form. + This makes $PWD with multibyte characters work in the prompt + string on Mac OS X + +lib/sh/fnxform.c + - in fnx_fromfs and fnx_tofs, use templen instead of outlen as last + argument in calls to iconv, since outlen is used to keep track of + the size of the buffer, and iconv potentially modifies its + `outbytesleft' argument + + 9/29 + ---- +subst.c + - make skip_to_delim understand how to skip over process substitution + constructs the way it skips $(...) command substitution + + 9/30 + ---- +lib/readline/terminal.c + - don't set the `terminal has meta key' flag if the `MT' capability is + available; that means something completely different + + 10/1 + ---- +builtins/help.def + - make sure width is at least 7, since we pass `width/2 - 3' to strncpy + as the length argument. Terminal widths <= 6 are converted to 80. + Fixes bug reported by Chris Hall + +configure.in + - changed version to 4.1-alpha + +subst.h + - new flag for skip_to_delim: SD_NOSKIPCMD, which means to not skip + over embedded command and process substitutions, but rather to look + for delimiters within them + +subst.c + - implement semantics of SD_NOSKIPCMD in skip_to_delim + +bashline.c + - call skip_to_delim with SD_NOSKIPCMD from find_cmd_start, so + programmable completion can use the completion defined for `b' for + command lines like "a $(b c". Fixes inconsistency/bug reported by + Freddy Vulto + +parser.h + - replace unused PST_CMDTOKEN parser state value with PST_EXTPAT, + means currently parsing an extended glob pattern (extglob) + +parse.y + - fix cond_node() so that extended_glob is set before parsing the + rhs of the `==' or `!=' operators. For ksh93 compatibility. + - reset extended_glob to global value (saved in parse_cond_command()) + in reset_parser() + + 10/5 + ---- +jobs.c + - change waitchld() to only interrupt the wait builtin when the shell + receives SIGCHLD in Posix mode. It's a posix requirement, but + makes easy things hard to do, like run a SIGCHLD trap for every + exiting child. Change prompted by question from Alex Efros + + +doc/bashref.texi + - document new posix mode behavior about SIGCHLD arriving while the + wait builtin is executing when a trap on SIGCHLD has been set + + 10/6 + ---- +lib/readline/histexpand.c + - fix hist_expand to keep from stopping history expansion after the + first multibyte character (a `break' instead of a `continue'). + Fixes debian bug (#549933) reported by Nikolaus Schulz + + + 10/8 + ---- +builtins/read.def + - implement new `-N nchars' option: read exactly NCHARS characters, + ignoring any delimiter, and don't split the result on $IFS. + Feature requested by Richard Stallman + +doc/{bash.1,bashref.texi} + - document new `read -N' option + + 10/9 + ---- +lib/readline/bind.c + - new bindable variable, "enable-meta-key", controls whether or not + readline enables any meta modifier key the terminal claims to + support. Suggested by Werner Fink + +lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 + - document new readline "enable-meta-key" bindable variable + + 10/10 + ----- +trap.c + - new function, free_trap_string(), does what it says and turns off + SIG_TRAPPED flag without changing signal disposition + +[bash-4.1-alpha frozen] + + 10/16 + ----- +builtins/mapfile.def + - return an error if the variable passed is not an indexed array. + Fixes bug reported by Nick Hobson + - change help text to make it clear that an indexed array is required + +doc/{bash.1,bashref.texi} + - changed description of mapfile to note that the array variable + argument must be an indexed array, and mapfile will return an + error if it is not + +subst.c + - change expand_string_unsplit and expand_string_leave_quoted to + add the (previously unused) W_NOSPLIT2 flag to the created word + - change expand_word_internal to understand W_NOSPLIT2 to mean that + we're not going to split on $IFS, so we should not quote any + characters in IFS that we add to the result string. Fixes bug + reported by Enrique Perez-Terron + - change cond_expand_word similarly. Fixes rest of bug reported by + Enrique Perez-Terron + +parse.y + - save and restore value of last_command_subst_pid around call to + expand_prompt_string in decode_prompt_string. Fixes bug that causes + $? to be set wrong when using a construct like false || A=3 when + set -x is enabled and $PS4 contains a command substitution. Reported + by Jeff Haemer + + 10/17 + ----- +execute_cmd.c + - in execute_in_subshell, make sure we set setjmp(return_catch) before + running the command, in case the command or its word expansion + calls jump_to_top_level. Fixes bug reported by Nils Bernhard + + +subst.c + - new PF_NOSPLIT2 flag for param_expand + - parameter_brace_expand takes a new `pflags' argument, before the + `output' parameters; passes to param_expand as necessary + - change parameter_brace_expand to call parameter_brace_expand_word + with the PF_NOSPLIT2 flag if the pflags argument to + parameter_brace_expand has it set + +parse.y + - change report_syntax_error to set last_command_exit_value to + EX_BADSYNTAX if parse_and_execute_level is > 0, indicating a + syntax error while we're executing a dot script, eval string, + trap command, etc. + +builtins/evalstring.c + - in parse_and_execute, if parse_command() returns non-zero, + indicating a parse error, print a warning message if the conditions + would require a posix-mode shell to abort (parse error in a `.' + script or eval string) + + 10/19 + ----- +builtins/evalfile.c + - even if the `check binary' flag is not passed to _evalfile, return an + error after reading 128 null characters if called by `source', on + the assumption that it's probably a binary file. [This will be in + bash-4.1-beta] + + 10/24 + ----- +[bash-4.1-alpha released] + +bashline.c + - don't call command_substitution_completion_function if we're + completing a substring delimited by a single quote. Fixes bug + reported by bash-bugs@atu.cjb.net + +lib/readline/complete.c + - make sure _rl_skip_completed_text defaults to 0, as the + documentation states (incorrect in bash-4.1-alpha) + - in insert_match, skip over a close quote in the replacement text if + the character at point when completion is invoked is a single + quote. Fixes complaint from bash-bugs@atu.cjb.net + + 10/26 + ----- +shell.c + - in main, make sure "$EMACS" is non-null before calling strstr on its + value. Fixes Red Hat bug 530911 submitted by Mitchell Berger + +builtins/mapfile.def + - don't save callback commands in shell history. Suggested by + Jan Schampera + +mailcheck.c + - in file_mod_date_changed, make sure the modification time is later + than the saved modification date, not just that it's not equal. + Fix from Evgeniy Dushistov + - in file_access_date_changed, make sure the access time is later + than the saved access time, not just that it's not equal + + 10/27 + ----- +builtins/shopt.def + - added new `compat40' compatibility variable, with associated changes + to shell_compatibility_level(), since the default compatibility level + is now 41 + +test.c + - make the < and > operators to [[ use strcoll() only if the shell + compatibility level is greater than 40 (it is 41 by default in + bash-4.1) + + 10/28 + ----- +support/shobj-conf + - decrease the default version of FreeBSD that creates shared libraries + to 4.x. Advice from Peter Jeremy + + 11/2 + ---- +parse.y + - change parse_comsub to free `heredelim' and set it to 0 whenever the + comsub scanner finds the end of a here document. Really need to + implement a stack of here doc delimiters like in the parser (can we + use redir_stack here, too?) + - fix parse_comsub to not attempt to read another here doc delimiter + after seeing a shell break character (that is not newline) if we + already have one. Fixes Debian bash bug #553485, submitted by + Samuel Hym + + 11/3 + ---- +variables.c + - fix bind_variable_internal to call a variable's dynamic 'set function' + with the right arguments depending on whether its an associative + array, an indexed array, or a scalar. Fixes Ubuntu bug #471504 + https://bugs.launchpad.net/ubuntu/+source/bash/+bug/471504 reported + by AJ Slater + +[bash-4.1-beta frozen] + + 11/11 + ----- +builtins/printf.def + - in getintmax(), in the case of a conversion error, return the partial + value accumulated so far, which is suppose to be what + strtoimax/strtoll/strtol returns + + 11/17 + ----- +[bash-4.1-beta released] + + 11/18 + ----- +builtins/{common.h,shopt.def},shell.c + - changed shopt variable "set functions" to take the option name as + the first argument; changed function prototypes and callers + +builtins/shopt.def + - change set_compatibility_level() to turn off other compatNN options + when one is set -- enforce mutual exclusivity. Fixes problem noted + by Jan Schampera + + 11/19 + ----- +lib/readline/rltty.c + - make sure prepare_terminal_settings() tests for the presence of + ECHOCTL before using it. Fixes bug reported by Joachim Schmitz + + +config-top.h + - new WORDEXP_OPTION define (off by default) + +shell.c + - don't include the --wordexp option or the supporting function + (run_wordexp) if WORDEXP_OPTION is not defined. Suggested by + Aharon Robbins + +execute_cmd.c + - in execute_cond_node, turn on comsub_ignore_return if the flags + indicate we're ignoring the return value before calling + cond_expand_word. Fixes bug reported by Anirban Sinha + + + 11/20 + ----- +lib/sh/snprintf.c,builtins/printf.def + - change check for HAVE_ASPRINTF and HAVE_SNPRINTF to check if value + is 1 or 0 rather than whether they are defined or not. This allows + a value of 0 to enable function replacement + +configure.in,aclocal.m4 + - new autoconf macro, BASH_FUNC_SNPRINTF, checks for snprintf present + and working as C99 specifies with a zero length argument. Idea + from Greg Wooledge + - new macro BASH_FUNC_VSNPRINTF, does same thing for vsnprintf + + 11/25 + ----- +subst.c + - in command_substitute, only tell parse_and_execute to reset the line + number in an interactive shell if sourcelevel == 0 -- we'll use the + line numbers from the sourced file + +execute_cmd.c + - in execute_simple_command, only subtract function_line_number from + line_number if sourcelevel == 0. If sourcing, we'll use the line + numbers from the sourced file. Fixes bug reported by Hugo + Mildenberger + +builtins/declare.def + - in declare_internal, call bind_assoc_variable instead of + bind_array_variable in the case of declare -A foo=bar. Fixes bug + reported by Bernd Eggink . + + 11/27 + ----- +lib/readline/util.c + - change declaration for _rl_walphabetic to use prototype, assuming + that any system with multibyte characters has a compiler that can + handle prototypes. Fix for AIX compilation problem reported by + Nick Hillman + + 11/28 + ----- +execute_cmd.c + - make funcnest file-scope static and unwind-protect its value in + execute_function, so it can be used as a real measure of function + call nesting + +general.c + - fix off-by-one error in trim_pathname that caused it to short-circuit + when PROMPT_DIRTRIM == number of directories - 1. Fixes bug + reported by Dennis Williamson + + 11/29 + ----- +jobs.c + - when fork() returns -1/EAGAIN, call waitchld(-1, 0) so the shell can + reap any dead jobs before trying fork again. Currently disabled + until bash-4.2 development starts + +lib/readline/complete.c + - when incrementing _rl_interrupt_immediately, make sure it's greater + than 0 before decrementing it. In practice, not a problem, but + the right way to do it. Suggested by Jan Kratochvil + + +lib/readline/signals.c + - make sure rl_signal_handler doesn't set rl_caught_signal if + _rl_interrupt_immediately is set, so RL_CHECK_SIGNALS doesn't + cause it to be processed twice. Suggested by Jan Kratochvil + + - if the callback interface is being used, use the code path that + immediately handles signals. This restores the readline-5.2 + behavior. Fixes GDB readline bug reported by Jan Kratochvil + + + 12/18 + ----- +[bash-4.1-rc1 released] + + 12/22 + ----- +config-top.h + - don't have SYSLOG_HISTORY enabled by default + +lib/sh/Makefile.in + - add explicit dependency on pathnames.h for parallel make support + +externs.h + - add extern declaration for xtrace_fdchk + +lib/sh/snprintf.c + - add local prototype declarations for isinf, isnan if we are providing + local definitions + +lib/sh/fnxform.c + - add extern declaration for get_locale_var if HAVE_LOCALE_CHARSET not + defined + +execute_cmd.c + - define NEED_FPURGE_DECL so we pick up any extern declaration for + fpurge (e.g., if the system doesn't provide it) + +builtins/shopt.def + - correct prototype and declaration for set_shellopts_after_change so + it's the correct type for shopt_set_func_t + - add new function shopt_enable_hostname_completion that is the correct + type for shopt_set_func_t; just calls enable_hostname_completion and + returns its result + + 12/26 + ----- +doc/{bash.1,bashref.texi} + - add \E and \" escape sequences to ANSI-C quoting description. + Suggested by Aharon Robbins + + 12/29 + ----- +doc/bash.1 + - make sure shell and environment variable names are always in + `small caps' bold. Suggested by Aharon Robbins + + 12/30 + ----- +{execute_cmd.c,parse.y,Makefile} + - changes for building minimal configuration from Matthias Klose + + +[bash-4.1 frozen] diff --git a/INSTALL b/INSTALL index eee64bb..b6293fc 100644 --- a/INSTALL +++ b/INSTALL @@ -326,6 +326,10 @@ does not provide the necessary support. Include support for the extended pattern matching features described above under *note Pattern Matching::. +`--enable-extended-glob-default' + Set the default value of the EXTGLOB shell option described above + under *note The Shopt Builtin:: to be enabled. + `--enable-help-builtin' Include the `help' builtin, which displays help on shell builtins and variables (*note Bash Builtins::). diff --git a/MANIFEST b/MANIFEST index 735270c..e42d7d7 100644 --- a/MANIFEST +++ b/MANIFEST @@ -38,6 +38,7 @@ support d tests d tests/misc d ABOUT-NLS f +ChangeLog s CWRU/changelog CHANGES f COMPAT f COPYING f @@ -215,6 +216,7 @@ include/memalloc.h f include/ocache.h f include/posixdir.h f include/posixjmp.h f +include/posixselect.h f include/posixstat.h f include/posixtime.h f include/posixwait.h f @@ -351,6 +353,7 @@ lib/readline/histlib.h f lib/readline/chardefs.h f lib/readline/posixdir.h f lib/readline/posixjmp.h f +lib/readline/posixselect.h f lib/readline/posixstat.h f lib/readline/ansi_stdlib.h f lib/readline/rlstdc.h f @@ -384,6 +387,7 @@ lib/sh/fdprintf.c f lib/sh/fmtullong.c f lib/sh/fmtulong.c f lib/sh/fmtumax.c f +lib/sh/fnxform.c f lib/sh/fpurge.c f lib/sh/getcwd.c f lib/sh/getenv.c f @@ -392,6 +396,8 @@ lib/sh/input_avail.c f lib/sh/itos.c f lib/sh/mailstat.c f lib/sh/makepath.c f +lib/sh/mbscasecmp.c f +lib/sh/mbschr.c f lib/sh/mbscmp.c f lib/sh/memset.c f lib/sh/mktime.c f @@ -408,9 +414,9 @@ lib/sh/shtty.c f lib/sh/snprintf.c f lib/sh/spell.c f lib/sh/strcasecmp.c f +lib/sh/strcasestr.c f lib/sh/strerror.c f lib/sh/strftime.c f -lib/sh/strindex.c f lib/sh/stringlist.c f lib/sh/stringvec.c f lib/sh/strnlen.c f @@ -432,7 +438,6 @@ lib/sh/ufuncs.c f lib/sh/vprint.c f lib/sh/wcsdup.c f lib/sh/winsize.c f -lib/sh/xstrchr.c f lib/sh/zcatfd.c f lib/sh/zgetline.c f lib/sh/zmapfd.c f @@ -480,8 +485,12 @@ po/es.gmo f po/es.po f po/et.gmo f po/et.po f +po/fi.gmo f +po/fi.po f po/fr.gmo f po/fr.po f +po/ga.gmo f +po/ga.po f po/hu.gmo f po/hu.po f po/id.gmo f @@ -521,7 +530,6 @@ CWRU/misc/errlist.c f CWRU/misc/hpux10-dlfcn.h f CWRU/PLATFORMS f CWRU/README f -CWRU/audit-patch f CWRU/changelog f CWRU/sh-redir-hack f CWRU/mh-folder-comp f @@ -724,6 +732,7 @@ examples/misc/cshtobash f tests/README f tests/COPYRIGHT f tests/alias.tests f +tests/alias1.sub f tests/alias.right f tests/appendop.tests f tests/appendop.right f @@ -752,6 +761,8 @@ tests/assoc1.sub f tests/assoc2.sub f tests/assoc3.sub f tests/assoc4.sub f +tests/assoc5.sub f +tests/assoc6.sub f tests/braces.tests f tests/braces.right f tests/builtins.tests f @@ -770,11 +781,14 @@ tests/casemod.tests f tests/casemod.right f tests/comsub.tests f tests/comsub.right f +tests/comsub1.sub f tests/comsub-eof.tests f tests/comsub-eof0.sub f tests/comsub-eof1.sub f tests/comsub-eof2.sub f tests/comsub-eof3.sub f +tests/comsub-eof4.sub f +tests/comsub-eof5.sub f tests/comsub-eof.right f tests/comsub-posix.tests f tests/comsub-posix.right f @@ -791,12 +805,16 @@ tests/dbg-support.sub f tests/dbg-support.tests f tests/dbg-support2.right f tests/dbg-support2.tests f +tests/dbg-support3.sub f tests/dollar-at-star f tests/dollar-at1.sub f tests/dollar-at2.sub f +tests/dollar-at3.sub f tests/dollar-star1.sub f tests/dollar-star2.sub f tests/dollar-star3.sub f +tests/dollar-star4.sub f +tests/dollar-star5.sub f tests/dollar.right f tests/dstack.tests f tests/dstack.right f @@ -818,6 +836,7 @@ tests/exp.tests f tests/exp.right f tests/exp1.sub f tests/exp2.sub f +tests/exp3.sub f tests/extglob.tests f tests/extglob.right f tests/extglob1.sub f @@ -839,9 +858,12 @@ tests/getopts4.sub f tests/getopts5.sub f tests/getopts6.sub f tests/getopts7.sub f -tests/glob-test f +tests/glob.tests f tests/glob1.sub f tests/glob.right f +tests/globstar.tests f +tests/globstar.right f +tests/globstar1.sub f tests/heredoc.tests f tests/heredoc.right f tests/heredoc1.sub f @@ -853,6 +875,7 @@ tests/history.tests f tests/history.right f tests/history.list f 444 tests/history1.sub f +tests/history2.sub f tests/ifs.tests f tests/ifs.right f tests/ifs-posix.tests f @@ -890,6 +913,7 @@ tests/new-exp7.sub f tests/new-exp.right f tests/nquote.tests f tests/nquote.right f +tests/nquote1.sub f tests/nquote1.tests f tests/nquote1.right f tests/nquote2.tests f @@ -908,6 +932,7 @@ tests/prec.right f tests/precedence f tests/printf.tests f tests/printf.right f +tests/printf2.sub f tests/quote.tests f tests/quote.right f tests/read.tests f @@ -968,6 +993,7 @@ tests/run-extglob3 f tests/run-func f tests/run-getopts f tests/run-glob-test f +tests/run-globstar f tests/run-heredoc f tests/run-herestr f tests/run-histexpand f @@ -1007,11 +1033,13 @@ tests/run-tilde2 f tests/run-trap f tests/run-type f tests/run-varenv f +tests/run-vredir f tests/set-e.tests f tests/set-e1.sub f tests/set-e2.sub f tests/set-e.right f tests/set-x.tests f +tests/set-x1.sub f tests/set-x.right f tests/shopt.tests f tests/shopt.right f @@ -1028,15 +1056,24 @@ tests/trap.right f tests/trap1.sub f 755 tests/trap2.sub f 755 tests/trap2a.sub f 755 +tests/trap3.sub f tests/type.tests f tests/type.right f tests/type1.sub f +tests/type2.sub f tests/varenv.right f tests/varenv.sh f tests/varenv1.sub f tests/varenv2.sub f tests/version f tests/version.mini f +tests/vredir.tests f +tests/vredir.right f +tests/vredir1.sub f +tests/vredir2.sub f +tests/vredir3.sub f +tests/vredir4.sub f +tests/vredir5.sub f tests/misc/dev-tcp.tests f tests/misc/perf-script f tests/misc/perftest f diff --git a/Makefile.in b/Makefile.in index c0bdaa8..f01d49c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Makefile for bash-4.0, version 3.4 +# Makefile for bash-4.0, version 3.5 # # Copyright (C) 1996-2009 Free Software Foundation, Inc. @@ -147,7 +147,7 @@ CCFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(CFLAGS) CCFLAGS_FOR_BUILD = $(BASE_CCFLAGS) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) LDFLAGS = @LDFLAGS@ $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS) -LDFLAGS_FOR_BUILD = $(LDFLAGS) +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD) INCLUDES = -I. @RL_INCLUDE@ -I$(srcdir) -I$(BASHINCDIR) -I$(LIBSRC) $(INTL_INC) @@ -198,14 +198,14 @@ SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \ ${SH_LIBSRC}/pathphys.c ${SH_LIBSRC}/stringlist.c \ ${SH_LIBSRC}/stringvec.c ${SH_LIBSRC}/tmpfile.c \ ${SH_LIBSRC}/spell.c ${SH_LIBSRC}/strtrans.c \ - ${SH_LIBSRC}/strindex.c ${SH_LIBSRC}/shquote.c \ + ${SH_LIBSRC}/strcasestr.c ${SH_LIBSRC}/shquote.c \ ${SH_LIBSRC}/snprintf.c ${SH_LIBSRC}/mailstat.c \ ${SH_LIBSRC}/fmtulong.c ${SH_LIBSRC}/fmtullong.c \ ${SH_LIBSRC}/strtoll.c ${SH_LIBSRC}/strtoull.c \ ${SH_LIBSRC}/strtoimax.c ${SH_LIBSRC}/strtoumax.c \ ${SH_LIBSRC}/fmtumax.c ${SH_LIBSRC}/netconn.c \ ${SH_LIBSRC}/mktime.c ${SH_LIBSRC}/strftime.c \ - ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \ + ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/mbschr.c \ ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \ ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c \ ${SH_LIBSRC}/eaccess.c ${SH_LIBSRC}/wcsdup.c \ @@ -213,7 +213,8 @@ SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \ ${SH_LIBSRC}/zgetline.c ${SH_LIBSRC}/mbscmp.c \ ${SH_LIBSRC}/casemod.c ${SH_LIBSRC}/uconvert.c \ ${SH_LIBSRC}/ufuncs.c ${SH_LIBSRC}/fdprintf.c \ - ${SH_LIBSRC}/input_avail.c + ${SH_LIBSRC}/input_avail.c ${SH_LIBSRC}/mbscasecmp.c \ + ${SH_LIBSRC}/fnxform.c SHLIB_LIB = -lsh SHLIB_LIBNAME = libsh.a @@ -347,6 +348,9 @@ INTL_INC = @INTL_INC@ LIBINTL_H = @LIBINTL_H@ +# libiconv +LIBICONV = @LIBICONV@ + # tests LIBINTL = @LIBINTL@ LTLIBINTL = @LTLIBINTL@ @@ -393,10 +397,10 @@ BASHINCFILES = $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/ansi_stdlib.h \ $(BASHINCDIR)/shtty.h $(BASHINCDIR)/typemax.h \ $(BASHINCDIR)/ocache.h -LIBRARIES = $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \ - $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS) +LIBRARIES = $(GLOB_LIB) $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) \ + $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LIBICONV) $(LOCAL_LIBS) -LIBDEP = $(SHLIB_DEP) $(INTL_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) $(GLOB_DEP) \ +LIBDEP = $(GLOB_DEP) $(SHLIB_DEP) $(INTL_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) \ $(TILDE_DEP) $(MALLOC_DEP) LIBRARY_LDFLAGS = $(READLINE_LDFLAGS) $(HISTORY_LDFLAGS) $(GLOB_LDFLAGS) \ @@ -595,7 +599,7 @@ $(READLINE_LIBRARY): config.h $(READLINE_SOURCE) @( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \ cd ${RL_LIBDIR} && $(MAKE) $(MFLAGS) libreadline.a) || exit 1 -$(HISTORY_LIBRARY): config.h $(HISTORY_SOURCE) +$(HISTORY_LIBRARY): config.h $(HISTORY_SOURCE) $(READLINE_DEP) @echo making $@ in ${HIST_LIBDIR} @( { test "${HIST_LIBDIR}" = "${libdir}" && exit 0; } || \ cd ${HIST_LIBDIR} && $(MAKE) $(MFLAGS) libhistory.a) || exit 1 @@ -860,6 +864,7 @@ hashtest: hashlib.c # Files that depend on the definitions in config-top.h, which are not meant # to be changed +bashhist.o: config-top.h shell.o: config-top.h input.o: config-top.h y.tab.o: config-top.h @@ -935,7 +940,7 @@ general.o: ${BASHINCDIR}/chartypes.h hashcmd.o: config.h ${BASHINCDIR}/posixstat.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h hashcmd.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h hashcmd.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashcmd.h -hashcmd.o: execute_cmd.h findcmd.h ${BASHINCDIR}/stdc.h hashlib.h +hashcmd.o: execute_cmd.h findcmd.h ${BASHINCDIR}/stdc.h pathnames.h hashlib.h hashlib.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h hashlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h hashlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h @@ -943,6 +948,7 @@ hashlib.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h hashlib.o: make_cmd.h subst.h sig.h pathnames.h externs.h input.o: config.h bashtypes.h ${BASHINCDIR}/filecntl.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h input.o: command.h ${BASHINCDIR}/stdc.h general.h xmalloc.h input.h error.h externs.h +input.o: quit.h list.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h list.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h list.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h @@ -1005,7 +1011,7 @@ sig.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array sig.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h sig.o: make_cmd.h subst.h sig.h pathnames.h externs.h sig.o: jobs.h siglist.h trap.h $(DEFSRC)/common.h bashline.h bashhist.h -siglist.o: config.h bashtypes.h siglist.h trap.h +siglist.o: config.h bashtypes.h siglist.h trap.h stringlib.o: bashtypes.h ${BASHINCDIR}/chartypes.h stringlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h stringlib.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h @@ -1022,6 +1028,7 @@ subst.o: mailcheck.h input.h $(DEFSRC)/getopt.h $(DEFSRC)/common.h subst.o: bashline.h bashhist.h ${GLOB_LIBSRC}/strmatch.h subst.o: ${BASHINCDIR}/chartypes.h subst.o: ${BASHINCDIR}/shmbutil.h +subst.o: ${DEFDIR}/builtext.h test.o: bashtypes.h ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h test.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h test.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h @@ -1034,7 +1041,7 @@ trap.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h arra trap.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h trap.o: make_cmd.h subst.h sig.h pathnames.h externs.h trap.o: signames.h $(DEFSRC)/common.h -trap.o: ${DEFDIR}/builtext.h +trap.o: ${DEFDIR}/builtext.h jobs.h unwind_prot.o: config.h bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h command.h ${BASHINCDIR}/stdc.h unwind_prot.o: general.h xmalloc.h unwind_prot.h quit.h sig.h variables.o: config.h bashtypes.h ${BASHINCDIR}/posixstat.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h @@ -1045,7 +1052,7 @@ variables.o: make_cmd.h subst.h sig.h pathnames.h externs.h variables.o: flags.h execute_cmd.h mailcheck.h input.h $(DEFSRC)/common.h variables.o: findcmd.h bashhist.h hashcmd.h pathexp.h variables.o: pcomplete.h ${BASHINCDIR}/chartypes.h -variables.o: ${BASHINCDIR}/posixtime.h +variables.o: ${BASHINCDIR}/posixtime.h assoc.h version.o: conftypes.h patchlevel.h version.h xmalloc.o: config.h bashtypes.h ${BASHINCDIR}/ansi_stdlib.h error.h @@ -1056,7 +1063,7 @@ jobs.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h jobs.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h jobs.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h jobs.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h -jobs.o: make_cmd.h subst.h sig.h pathnames.h externs.h +jobs.o: execute_cmd.h make_cmd.h subst.h sig.h pathnames.h externs.h jobs.o: jobs.h flags.h $(DEFSRC)/common.h $(DEFDIR)/builtext.h jobs.o: ${BASHINCDIR}/posixwait.h ${BASHINCDIR}/unionwait.h jobs.o: ${BASHINCDIR}/posixtime.h @@ -1077,7 +1084,7 @@ arrayfunc.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h arrayfunc.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h arrayfunc.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h arrayfunc.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h -arrayfunc.o: make_cmd.h subst.h sig.h pathnames.h externs.h +arrayfunc.o: make_cmd.h subst.h sig.h pathnames.h externs.h pathexp.h arrayfunc.o: $(DEFSRC)/common.h arrayfunc.o: ${BASHINCDIR}/shmbutil.h assoc.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h @@ -1130,13 +1137,12 @@ bashline.o: builtins.h bashhist.h bashline.h execute_cmd.h findcmd.h pathexp.h bashline.o: $(DEFSRC)/common.h $(GLOB_LIBSRC)/glob.h alias.h bashline.o: pcomplete.h ${BASHINCDIR}/chartypes.h input.h bracecomp.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h -bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h -bracecomp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array.h hashlib.h +bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h +bracecomp.o: command.h ${BASHINCDIR}/stdc.h error.h +bracecomp.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h +bracecomp.o: array.h hashlib.h alias.h builtins.h bracecomp.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h bracecomp.o: make_cmd.h subst.h sig.h pathnames.h externs.h -bracecomp.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h hashlib.h builtins.h general.h xmalloc.h -bracecomp.o: quit.h alias.h config.h variables.h arrayfunc.h conftypes.h -bracecomp.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h # library dependencies @@ -1224,7 +1230,7 @@ builtins/evalstring.o: ${BASHINCDIR}/memalloc.h variables.h arrayfunc.h conftype builtins/evalstring.o: quit.h unwind_prot.h ${BASHINCDIR}/maxpath.h jobs.h builtins.h builtins/evalstring.o: dispose_cmd.h make_cmd.h subst.h externs.h builtins/evalstring.o: jobs.h builtins.h flags.h input.h execute_cmd.h -builtins/evalstring.o: bashhist.h $(DEFSRC)/common.h +builtins/evalstring.o: bashhist.h $(DEFSRC)/common.h pathnames.h builtins/getopt.o: config.h ${BASHINCDIR}/memalloc.h builtins/getopt.o: shell.h syntax.h bashjmp.h command.h general.h xmalloc.h error.h builtins/getopt.o: variables.h arrayfunc.h conftypes.h quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h @@ -1235,80 +1241,89 @@ builtins/mkbuiltins.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h # builtin def files builtins/alias.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h -builtins/alias.o: quit.h $(DEFSRC)/common.h +builtins/alias.o: quit.h $(DEFSRC)/common.h pathnames.h builtins/alias.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h command.h ${BASHINCDIR}/stdc.h unwind_prot.h builtins/alias.o: dispose_cmd.h make_cmd.h subst.h externs.h variables.h arrayfunc.h conftypes.h builtins/bind.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/bind.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/bind.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h -builtins/bind.o: $(DEFSRC)/bashgetopt.h +builtins/bind.o: $(DEFSRC)/bashgetopt.h pathnames.h builtins/break.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/break.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/break.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/break.o: pathnames.h builtins/builtin.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/builtin.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h builtins/builtin.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/builtin.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/builtin.o: pathnames.h builtins/caller.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/caller.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/caller.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/caller.o: $(DEFSRC)/common.h quit.h builtins/caller.o: ${BASHINCDIR}/chartypes.h bashtypes.h -builtins/caller.o: ${DEFDIR}/builtext.h +builtins/caller.o: ${DEFDIR}/builtext.h pathnames.h builtins/cd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/cd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/cd.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h -builtins/cd.o: $(DEFSRC)/common.h quit.h +builtins/cd.o: $(DEFSRC)/common.h quit.h pathnames.h builtins/command.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/command.o: quit.h $(DEFSRC)/bashgetopt.h builtins/command.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h -builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/command.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h pathnames.h builtins/declare.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/declare.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/declare.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h -builtins/declare.o: $(DEFSRC)/bashgetopt.h +builtins/declare.o: $(DEFSRC)/bashgetopt.h pathnames.h builtins/echo.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/echo.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/echo.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/echo.o: pathnames.h builtins/enable.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/enable.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/enable.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h -builtins/enable.o: pcomplete.h +builtins/enable.o: pcomplete.h pathnames.h builtins/eval.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/eval.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/eval.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h -builtins/exec.o: bashtypes.h +builtins/eval.o: pathnames.h +builtins/exec.o: bashtypes.h pathnames.h builtins/exec.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/exec.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/exec.o: dispose_cmd.h make_cmd.h subst.h externs.h execute_cmd.h builtins/exec.o: findcmd.h flags.h quit.h $(DEFSRC)/common.h ${BASHINCDIR}/stdc.h +builtins/exec.o: pathnames.h builtins/exit.o: bashtypes.h builtins/exit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/exit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/exit.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/exit.o: pathnames.h builtins/fc.o: bashtypes.h ${BASHINCDIR}/posixstat.h builtins/fc.o: bashansi.h ${BASHINCDIR}/ansi_stdlib.h builtins.h command.h ${BASHINCDIR}/stdc.h builtins/fc.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/fc.o: flags.h unwind_prot.h variables.h arrayfunc.h conftypes.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h builtins/fc.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h quit.h -builtins/fc.o: $(DEFSRC)/bashgetopt.h bashhist.h +builtins/fc.o: $(DEFSRC)/bashgetopt.h bashhist.h pathnames.h builtins/fc.o: ${BASHINCDIR}/chartypes.h builtins/fg_bg.o: bashtypes.h $(DEFSRC)/bashgetopt.h builtins/fg_bg.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/fg_bg.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/fg_bg.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/fg_bg.o: pathnames.h builtins/getopts.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/getopts.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/getopts.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/getopts.o: pathnames.h builtins/hash.o: bashtypes.h builtins/hash.o: builtins.h command.h findcmd.h ${BASHINCDIR}/stdc.h $(DEFSRC)/common.h builtins/hash.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/hash.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h +builtins/hash.o: pathnames.h builtins/help.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/help.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/help.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h -builtins/help.o: $(GLOB_LIBSRC)/glob.h -builtins/history.o: bashtypes.h +builtins/help.o: $(GLOB_LIBSRC)/glob.h pathnames.h +builtins/history.o: bashtypes.h pathnames.h builtins/history.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/history.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/history.o: ${BASHINCDIR}/filecntl.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h @@ -1316,89 +1331,106 @@ builtins/history.o: bashhist.h variables.h arrayfunc.h conftypes.h builtins/inlib.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/inlib.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h quit.h builtins/inlib.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/inlib.o: pathnames.h builtins/jobs.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/jobs.o: quit.h $(DEFSRC)/bashgetopt.h builtins/jobs.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/jobs.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/jobs.o: pathnames.h builtins/kill.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/kill.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/kill.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h trap.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/kill.o: pathnames.h builtins/let.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/let.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/let.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/let.o: pathnames.h builtins/printf.o: config.h ${BASHINCDIR}/memalloc.h bashjmp.h command.h error.h builtins/printf.o: general.h xmalloc.h quit.h dispose_cmd.h make_cmd.h subst.h builtins/printf.o: externs.h sig.h pathnames.h shell.h syntax.h unwind_prot.h builtins/printf.o: variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/stdc.h $(DEFSRC)/bashgetopt.h -builtins/printf.o: ${BASHINCDIR}/chartypes.h +builtins/printf.o: ${BASHINCDIR}/chartypes.h builtins/pushd.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/pushd.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/pushd.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h -builtins/pushd.o: $(DEFSRC)/common.h +builtins/pushd.o: $(DEFSRC)/common.h pathnames.h builtins/read.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/read.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/read.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/read.o: pathnames.h builtins/return.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/return.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/return.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/return.o: pathnames.h builtins/set.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/set.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/set.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h flags.h +builtins/set.o: pathnames.h builtins/setattr.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/setattr.o: quit.h $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h builtins/setattr.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/setattr.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/setattr.o: pathnames.h builtins/shift.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/shift.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/shift.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/shift.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/shift.o: pathnames.h builtins/shopt.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h builtins/shopt.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h builtins/shopt.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h unwind_prot.h variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/maxpath.h -builtins/shopt.o: $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h +builtins/shopt.o: $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h pathnames.h +builtins/shopt.o: bashhist.h builtins/source.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/source.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/source.o: findcmd.h $(DEFSRC)/bashgetopt.h flags.h trap.h +builtins/source.o: pathnames.h builtins/suspend.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/suspend.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/suspend.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/suspend.o: pathnames.h builtins/test.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/test.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/test.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h -builtins/test.o: test.h +builtins/test.o: test.h pathnames.h builtins/times.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/times.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/times.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/times.o: pathnames.h builtins/trap.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/trap.o: quit.h $(DEFSRC)/common.h builtins/trap.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/trap.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/trap.o: pathnames.h builtins/type.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/type.o: quit.h $(DEFSRC)/common.h findcmd.h builtins/type.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/type.o: dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/type.o: pathnames.h builtins/ulimit.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/ulimit.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/ulimit.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/ulimit.o: pathnames.h builtins/umask.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/umask.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/umask.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h -builtins/umask.o: ${BASHINCDIR}/chartypes.h +builtins/umask.o: ${BASHINCDIR}/chartypes.h pathnames.h builtins/wait.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/wait.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/wait.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h -builtins/wait.o: ${BASHINCDIR}/chartypes.h +builtins/wait.o: ${BASHINCDIR}/chartypes.h pathnames.h builtins/complete.o: config.h shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h builtins/complete.o: unwind_prot.h variables.h arrayfunc.h conftypes.h builtins/complete.o: bashtypes.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h -builtins/complete.o: builtins.h +builtins/complete.o: builtins.h pathnames.h builtins/complete.o: pcomplete.h builtins/complete.o: ${DEFSRC}/common.h ${DEFSRC}/bashgetopt.h builtins/mapfile.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h builtins/mapfile.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h builtins/mapfile.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h +builtins/mapfile.o: pathnames.h # libintl dependencies builtins/bind.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h diff --git a/NEWS b/NEWS index 05573cc..8b1b7bc 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,120 @@ +This is a terse description of the new features added to bash-4.1 since +the release of bash-4.0. As always, the manual page (doc/bash.1) is +the place to look for complete descriptions. + +1. New Features in Bash + +a. Here-documents within $(...) command substitutions may once more be + delimited by the closing right paren, instead of requiring a newline. + +b. Bash's file status checks (executable, readable, etc.) now take file + system ACLs into account on file systems that support them. + +c. Bash now passes environment variables with names that are not valid + shell variable names through into the environment passed to child + processes. + +d. The `execute-unix-command' readline function now attempts to clear and + reuse the current line rather than move to a new one after the command + executes. + +e. `printf -v' can now assign values to array indices. + +f. New `complete -E' and `compopt -E' options that work on the "empty" + completion: completion attempted on an empty command line. + +g. New complete/compgen/compopt -D option to define a `default' completion: + a completion to be invoked on command for which no completion has been + defined. If this function returns 124, programmable completion is + attempted again, allowing a user to dynamically build a set of completions + as completion is attempted by having the default completion function + install individual completion functions each time it is invoked. + +h. When displaying associative arrays, subscripts are now quoted. + +i. Changes to dabbrev-expand to make it more `emacs-like': no space appended + after matches, completions are not sorted, and most recent history entries + are presented first. + +j. The [[ and (( commands are now subject to the setting of `set -e' and the + ERR trap. + +k. The source/. builtin now removes NUL bytes from the file before attempting + to parse commands. + +l. There is a new configuration option (in config-top.h) that forces bash to + forward all history entries to syslog. + +m. A new variable $BASHOPTS to export shell options settable using `shopt' to + child processes. + +n. There is a new confgure option that forces the extglob option to be + enabled by default. + +o. New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace + output to that file descriptor. + +p. If the optional left-hand-side of a redirection is of the form {var}, the + shell assigns the file descriptor used to $var or uses $var as the file + descriptor to move or close, depending on the redirection operator. + +q. The < and > operators to the [[ conditional command now do string + comparison according to the current locale if the compatibility level + is greater than 40. + +r. Programmable completion now uses the completion for `b' instead of `a' + when completion is attempted on a line like: a $(b c. + +s. Force extglob on temporarily when parsing the pattern argument to + the == and != operators to the [[ command, for compatibility. + +t. Changed the behavior of interrupting the wait builtin when a SIGCHLD is + received and a trap on SIGCHLD is set to be Posix-mode only. + +u. The read builtin has a new `-N nchars' option, which reads exactly NCHARS + characters, ignoring delimiters like newline. + +v. The mapfile/readarray builtin no longer stores the commands it invokes via + callbacks in the history list. + +w. There is a new `compat40' shopt option. + +2. New Features in Readline + +a. New bindable function: menu-complete-backward. + +b. In the vi insertion keymap, C-n is now bound to menu-complete by default, + and C-p to menu-complete-backward. + +c. When in vi command mode, repeatedly hitting ESC now does nothing, even + when ESC introduces a bound key sequence. This is closer to how + historical vi behaves. + +d. New bindable function: skip-csi-sequence. Can be used as a default to + consume key sequences generated by keys like Home and End without having + to bind all keys. + +e. New application-settable function: rl_filename_rewrite_hook. Can be used + to rewite or modify filenames read from the file system before they are + compared to the word to be completed. + +f. New bindable variable: skip-completed-text, active when completing in the + middle of a word. If enabled, it means that characters in the completion + that match characters in the remainder of the word are "skipped" rather + than inserted into the line. + +g. The pre-readline-6.0 version of menu completion is available as + "old-menu-complete" for users who do not like the readline-6.0 version. + +h. New bindable variable: echo-control-characters. If enabled, and the + tty ECHOCTL bit is set, controls the echoing of characters corresponding + to keyboard-generated signals. + +i. New bindable variable: enable-meta-key. Controls whether or not readline + sends the smm/rmm sequences if the terminal indicates it has a meta key + that enables eight-bit characters. + +------------------------------------------------------------------------------- This is a terse description of the new features added to bash-4.0 since the release of bash-3.2. As always, the manual page (doc/bash.1) is the place to look for complete descriptions. @@ -1410,3 +1527,9 @@ e. There are new library functions and variables available to application f. The NEWLINE character (^J) is now treated as a search terminator by the incremental search functions. +------------------------------------------------------------------------------- + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. diff --git a/NOTES b/NOTES index b938d02..4fe9e6c 100644 --- a/NOTES +++ b/NOTES @@ -344,4 +344,8 @@ Platform-Specific Configuration and Operation Notes Apple ships inadequate dynamic libreadline and libhistory "replacements" as standard libraries. - +20. If you're on a system like SGI Irix, and you get an error about not + being able to refer to a dynamic symbol + (ld: non-dynamic relocations refer to dynamic symbol PC), add + -DNEED_EXTERN_PC to the LOCAL_CFLAGS variable in lib/readline/Makefile.in + and rebuild. diff --git a/POSIX b/POSIX index f6b6b3e..6c57b87 100644 --- a/POSIX +++ b/POSIX @@ -164,6 +164,10 @@ The following list is what's changed when `POSIX mode' is in effect: 42. The `ulimit' builtin uses a block size of 512 bytes for the `-c' and `-f' options. + 43. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not + interrupt the `wait' builtin and cause it to return immediately. + The trap command is run once for each child that exits. + There is other POSIX behavior that Bash does not implement by default even when in POSIX mode. Specifically: diff --git a/README b/README index 2d43cea..c5c7159 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ Introduction ============ -This is GNU Bash, version 4.0. Bash is the GNU Project's Bourne +This is GNU Bash, version 4.1. Bash is the GNU Project's Bourne Again SHell, a complete implementation of the POSIX.2 shell spec, but also with interactive command line editing, job control on architectures that support it, csh-like features such as history @@ -15,8 +15,8 @@ See the file POSIX for a discussion of how the Bash defaults differ from the POSIX.2 spec and a description of the Bash `posix mode'. There are some user-visible incompatibilities between this version -of Bash and previous widely-distributed versions, bash-2.05b and -bash-3.2. For details, see the file COMPAT. The NEWS file tersely +of Bash and previous widely-distributed versions, bash-3.2 and +bash-4.0. For details, see the file COMPAT. The NEWS file tersely lists features that are new in this release. Bash is free software, distributed under the terms of the [GNU] General @@ -89,3 +89,8 @@ Enjoy! Chet Ramey chet.ramey@case.edu + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. diff --git a/aclocal.m4 b/aclocal.m4 index 5a742bc..10a4741 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -80,6 +80,9 @@ AC_CACHE_VAL(bash_cv_type_$1, #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif $2 ], bash_cv_type_$1=yes, bash_cv_type_$1=no)]) AC_MSG_RESULT($bash_cv_type_$1) @@ -1690,9 +1693,12 @@ AC_CHECK_HEADERS(wchar.h) AC_CHECK_HEADERS(langinfo.h) AC_CHECK_FUNC(mbrlen, AC_DEFINE(HAVE_MBRLEN)) +AC_CHECK_FUNC(mbscasecmp, AC_DEFINE(HAVE_MBSCMP)) AC_CHECK_FUNC(mbscmp, AC_DEFINE(HAVE_MBSCMP)) AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS)) +AC_REPLACE_FUNCS(mbschr) + AC_CHECK_FUNC(wcrtomb, AC_DEFINE(HAVE_WCRTOMB)) AC_CHECK_FUNC(wcscoll, AC_DEFINE(HAVE_WCSCOLL)) AC_CHECK_FUNC(wcsdup, AC_DEFINE(HAVE_WCSDUP)) @@ -1753,6 +1759,13 @@ if test $bash_cv_type_wint_t = yes; then AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here]) fi +if test "$am_cv_func_iconv" = yes; then + OLDLIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_CHECK_FUNCS(locale_charset) + LIBS="$OLDLIBS" +fi + ]) dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB @@ -4018,3 +4031,87 @@ AC_DEFUN([BASH_FUNC_FPURGE], AC_CHECK_FUNCS_ONCE([__fpurge]) AC_CHECK_DECLS([fpurge], , , [#include ]) ]) + +AC_DEFUN([BASH_FUNC_SNPRINTF], +[ + AC_CHECK_FUNCS_ONCE([snprintf]) + if test X$ac_cv_func_snprintf = Xyes; then + AC_CACHE_CHECK([for standard-conformant snprintf], [bash_cv_func_snprintf], + [AC_TRY_RUN([ +#include + +main() +{ + int n; + n = snprintf (0, 0, "%s", "0123456"); + exit(n != 7); +} +], bash_cv_func_snprintf=yes, bash_cv_func_snprintf=no, + [AC_MSG_WARN([cannot check standard snprintf if cross-compiling]) + bash_cv_func_snprintf=yes] +)]) + if test $bash_cv_func_snprintf = no; then + ac_cv_func_snprintf=no + fi + fi + if test $ac_cv_func_snprintf = no; then + AC_DEFINE(HAVE_SNPRINTF, 0, + [Define if you have a standard-conformant snprintf function.]) + fi +]) + +AC_DEFUN([BASH_FUNC_VSNPRINTF], +[ + AC_CHECK_FUNCS_ONCE([vsnprintf]) + if test X$ac_cv_func_vsnprintf = Xyes; then + AC_CACHE_CHECK([for standard-conformant vsnprintf], [bash_cv_func_vsnprintf], + [AC_TRY_RUN([ +#if HAVE_STDARG_H +#include +#else +#include +#endif +#include +#include + +static int +#if HAVE_STDARG_H +foo(const char *fmt, ...) +#else +foo(format, va_alist) + const char *format; + va_dcl +#endif +{ + va_list args; + int n; + +#if HAVE_STDARG_H + va_start(args, fmt); +#else + va_start(args); +#endif + n = vsnprintf(0, 0, fmt, args); + va_end (args); + return n; +} + +main() +{ + int n; + n = foo("%s", "0123456"); + exit(n != 7); +} +], bash_cv_func_vsnprintf=yes, bash_cv_func_vsnprintf=no, + [AC_MSG_WARN([cannot check standard vsnprintf if cross-compiling]) + bash_cv_func_vsnprintf=yes] +)]) + if test $bash_cv_func_vsnprintf = no; then + ac_cv_func_vsnprintf=no + fi + fi + if test $ac_cv_func_vsnprintf = no; then + AC_DEFINE(HAVE_VSNPRINTF, 0, + [Define if you have a standard-conformant vsnprintf function.]) + fi +]) diff --git a/alias.c b/alias.c index 2eedad5..558665e 100644 --- a/alias.c +++ b/alias.c @@ -526,7 +526,7 @@ alias_expand (string) /* If there is a backslash-escaped character quoted in TOKEN, then we don't do alias expansion. This should check for all other quoting characters, too. */ - if (xstrchr (token, '\\')) + if (mbschr (token, '\\')) expand_this_token = 0; /* If we should be expanding here, if we are expanding all words, or if diff --git a/array.c b/array.c index a8c7766..27fe170 100644 --- a/array.c +++ b/array.c @@ -55,6 +55,31 @@ static char *array_to_string_internal __P((ARRAY_ELEMENT *, ARRAY_ELEMENT *, char *, int)); +static ARRAY *lastarray = 0; +static ARRAY_ELEMENT *lastref = 0; + +#define IS_LASTREF(a) ((a) == lastarray) + +#define INVALIDATE_LASTREF(a) \ +do { \ + if ((a) == lastarray) { \ + lastarray = 0; \ + lastref = 0; \ + } \ +} while (0) + +#define SET_LASTREF(a, e) \ +do { \ + lastarray = (a); \ + lastref = (e); \ +} while (0) + +#define UNSET_LASTREF() \ +do { \ + lastarray = 0; \ + lastref = 0; \ +} while (0) + ARRAY * array_create() { @@ -87,6 +112,7 @@ ARRAY *a; a->head->next = a->head->prev = a->head; a->max_index = -1; a->num_elements = 0; + INVALIDATE_LASTREF(a); } void @@ -185,6 +211,7 @@ int n, flags; if (a == 0 || array_empty(a) || n <= 0) return ((ARRAY_ELEMENT *)NULL); + INVALIDATE_LASTREF(a); for (i = 0, ret = ae = element_forw(a->head); ae != a->head && i < n; ae = element_forw(ae), i++) ; if (ae == a->head) { @@ -214,7 +241,7 @@ int n, flags; element_index(ae) -= n; /* renumber retained indices */ a->num_elements -= n; /* modify bookkeeping information */ - a->max_index -= n; + a->max_index = element_index(a->head->prev); if (flags & AS_DISPOSE) { for (ae = ret; ae; ) { @@ -251,8 +278,10 @@ char *s; new = array_create_element(0, s); ADD_BEFORE(ae, new); a->num_elements++; - if (array_num_elements(a) == 1) /* array was empty */ + if (array_num_elements(a) == 1) { /* array was empty */ + a->max_index = 0; return 1; + } } /* @@ -263,6 +292,7 @@ char *s; a->max_index = element_index(a->head->prev); + INVALIDATE_LASTREF(a); return (a->num_elements); } @@ -594,6 +624,7 @@ char *v; ADD_BEFORE(a->head, new); a->max_index = i; a->num_elements++; + SET_LASTREF(a, new); return(0); } /* @@ -607,13 +638,16 @@ char *v; array_dispose_element(new); free(element_value(ae)); ae->value = v ? savestring(v) : (char *)NULL; + SET_LASTREF(a, ae); return(0); } else if (element_index(ae) > i) { ADD_BEFORE(ae, new); a->num_elements++; + SET_LASTREF(a, new); return(0); } } + INVALIDATE_LASTREF(a); return (-1); /* problem */ } @@ -637,6 +671,7 @@ arrayind_t i; a->num_elements--; if (i == array_max_index(a)) a->max_index = element_index(ae->prev); + INVALIDATE_LASTREF(a); return(ae); } return((ARRAY_ELEMENT *) NULL); @@ -654,9 +689,19 @@ arrayind_t i; if (a == 0 || array_empty(a)) return((char *) NULL); - for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae)) - if (element_index(ae) == i) + if (i > array_max_index(a)) + return((char *)NULL); + /* Keep roving pointer into array to optimize sequential access */ + if (lastref && IS_LASTREF(a)) + ae = (i >= element_index(lastref)) ? lastref : element_forw(a->head); + else + ae = element_forw(a->head); + for ( ; ae != a->head; ae = element_forw(ae)) + if (element_index(ae) == i) { + SET_LASTREF(a, ae); return(element_value(ae)); + } + UNSET_LASTREF(); return((char *) NULL); } diff --git a/array.h b/array.h index 1080fc9..fb4f789 100644 --- a/array.h +++ b/array.h @@ -31,7 +31,8 @@ enum atype {array_indexed, array_assoc}; typedef struct array { enum atype type; - arrayind_t max_index, num_elements; + arrayind_t max_index; + int num_elements; struct array_element *head; } ARRAY; diff --git a/arrayfunc.c b/arrayfunc.c index cc313d8..218faf3 100644 --- a/arrayfunc.c +++ b/arrayfunc.c @@ -407,6 +407,7 @@ expand_compound_array_assignment (var, value, flags) return nlist; } +/* Callers ensure that VAR is not NULL */ void assign_compound_array_list (var, nlist, flags) SHELL_VAR *var; @@ -431,9 +432,9 @@ assign_compound_array_list (var, nlist, flags) value. */ if ((flags & ASS_APPEND) == 0) { - if (array_p (var) && a) + if (a && array_p (var)) array_flush (a); - else if (assoc_p (var) && h) + else if (h && assoc_p (var)) assoc_flush (h); } @@ -447,7 +448,7 @@ assign_compound_array_list (var, nlist, flags) /* We have a word of the form [ind]=value */ if ((list->word->flags & W_ASSIGNMENT) && w[0] == '[') { - len = skipsubscript (w, 0); + len = skipsubscript (w, 0, (var && assoc_p (var) != 0)); /* XXX - changes for `+=' */ if (w[len] != ']' || (w[len+1] != '=' && (w[len+1] != '+' || w[len+2] != '='))) @@ -560,8 +561,9 @@ quote_assign (string) { size_t slen; int saw_eq; - char *temp, *t; + char *temp, *t, *subs; const char *s, *send; + int ss, se; DECLARE_MBSTATE; slen = strlen (string); @@ -573,6 +575,20 @@ quote_assign (string) { if (*s == '=') saw_eq = 1; + if (saw_eq == 0 && *s == '[') /* looks like a subscript */ + { + ss = s - string; + se = skipsubscript (string, ss, 0); + subs = substring (s, ss, se); + *t++ = '\\'; + strcpy (t, subs); + t += se - ss; + *t++ = '\\'; + *t++ = ']'; + s += se + 1; + free (subs); + continue; + } if (saw_eq == 0 && (glob_char_p (s) || isifs (*s))) *t++ = '\\'; @@ -596,7 +612,7 @@ quote_array_assignment_chars (list) if (l->word == 0 || l->word->word == 0 || l->word->word[0] == '\0') continue; /* should not happen, but just in case... */ /* Don't bother if it doesn't look like [ind]=value */ - if (l->word->word[0] != '[' || xstrchr (l->word->word, '=') == 0) /* ] */ + if (l->word->word[0] != '[' || mbschr (l->word->word, '=') == 0) /* ] */ continue; nword = quote_assign (l->word->word); free (l->word->word); @@ -619,7 +635,7 @@ unbind_array_element (var, sub) char *akey; ARRAY_ELEMENT *ae; - len = skipsubscript (sub, 0); + len = skipsubscript (sub, 0, 0); if (sub[len] != ']' || len == 0) { builtin_error ("%s[%s: %s", var->name, sub, _(bash_badsub_errmsg)); @@ -713,7 +729,7 @@ valid_array_reference (name) char *t; int r, len; - t = xstrchr (name, '['); /* ] */ + t = mbschr (name, '['); /* ] */ if (t) { *t = '\0'; @@ -722,7 +738,7 @@ valid_array_reference (name) if (r == 0) return 0; /* Check for a properly-terminated non-blank subscript. */ - len = skipsubscript (t, 0); + len = skipsubscript (t, 0, 0); if (t[len] != ']' || len == 1) return 0; for (r = 1; r < len; r++) @@ -773,7 +789,7 @@ array_variable_name (s, subp, lenp) char *t, *ret; int ind, ni; - t = xstrchr (s, '['); + t = mbschr (s, '['); if (t == 0) { if (subp) @@ -783,7 +799,7 @@ array_variable_name (s, subp, lenp) return ((char *)NULL); } ind = t - s; - ni = skipsubscript (s, ind); + ni = skipsubscript (s, ind, 0); if (ni <= ind + 1 || s[ni] != ']') { err_badarraysub (s); diff --git a/arrayfunc.h b/arrayfunc.h index 44dd39d..c12fc99 100644 --- a/arrayfunc.h +++ b/arrayfunc.h @@ -32,6 +32,8 @@ extern SHELL_VAR *bind_array_variable __P((char *, arrayind_t, char *, int)); extern SHELL_VAR *bind_array_element __P((SHELL_VAR *, arrayind_t, char *, int)); extern SHELL_VAR *assign_array_element __P((char *, char *, int)); +extern SHELL_VAR *bind_assoc_variable __P((SHELL_VAR *, char *, char *, char *, int)); + extern SHELL_VAR *find_or_make_array_variable __P((char *, int)); extern SHELL_VAR *assign_array_from_string __P((char *, char *, int)); @@ -42,7 +44,7 @@ extern void assign_compound_array_list __P((SHELL_VAR *, WORD_LIST *, int)); extern SHELL_VAR *assign_array_var_from_string __P((SHELL_VAR *, char *, int)); extern int unbind_array_element __P((SHELL_VAR *, char *)); -extern int skipsubscript __P((const char *, int)); +extern int skipsubscript __P((const char *, int, int)); extern void print_array_assignment __P((SHELL_VAR *, int)); extern void print_assoc_assignment __P((SHELL_VAR *, int)); diff --git a/assoc.c b/assoc.c index 476facb..bbc7b17 100644 --- a/assoc.c +++ b/assoc.c @@ -405,7 +405,14 @@ assoc_to_assign (hash, quoted) for (i = 0; i < hash->nbuckets; i++) for (tlist = hash_items (i, hash); tlist; tlist = tlist->next) { +#if 1 + if (sh_contains_shell_metas (tlist->key)) + istr = sh_double_quote (tlist->key); + else + istr = tlist->key; +#else istr = tlist->key; +#endif vstr = tlist->data ? sh_double_quote ((char *)tlist->data) : (char *)0; elen = STRLEN (istr) + 8 + STRLEN (vstr); @@ -423,6 +430,10 @@ assoc_to_assign (hash, quoted) } ret[rlen++] = ' '; + + if (istr != tlist->key) + FREE (istr); + FREE (vstr); } diff --git a/bashhist.c b/bashhist.c index 5c61f67..a80968f 100644 --- a/bashhist.c +++ b/bashhist.c @@ -38,6 +38,10 @@ #include "bashintl.h" +#if defined (SYSLOG_HISTORY) +# include +#endif + #include "shell.h" #include "flags.h" #include "input.h" @@ -691,6 +695,26 @@ check_add_history (line, force) return 0; } +#if defined (SYSLOG_HISTORY) +#define SYSLOG_MAXLEN 600 + +void +bash_syslog_history (line) + const char *line; +{ + char trunc[SYSLOG_MAXLEN]; + + if (strlen(line) < SYSLOG_MAXLEN) + syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d UID=%d %s", getpid(), current_user.uid, line); + else + { + strncpy (trunc, line, SYSLOG_MAXLEN); + trunc[SYSLOG_MAXLEN - 1] = '\0'; + syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d UID=%d %s", getpid(), current_user.uid, trunc); + } +} +#endif + /* Add a line to the history list. The variable COMMAND_ORIENTED_HISTORY controls the style of history remembering; when non-zero, and LINE is not the first line of a @@ -746,6 +770,10 @@ bash_add_history (line) if (add_it) really_add_history (line); +#if defined (SYSLOG_HISTORY) + bash_syslog_history (line); +#endif + using_history (); } diff --git a/bashline.c b/bashline.c index 4594dcf..7658771 100644 --- a/bashline.c +++ b/bashline.c @@ -82,6 +82,9 @@ extern int bash_brace_completion __P((int, int)); #endif /* BRACE_COMPLETION */ +/* To avoid including curses.h/term.h/termcap.h and that whole mess. */ +extern int tputs __P((const char *string, int nlines, int (*outx)(int))); + /* Forward declarations */ /* Functions bound to keys in Readline for Bash users. */ @@ -112,6 +115,7 @@ static int bash_backward_kill_shellword __P((int, int)); /* Helper functions for Readline. */ static char *restore_tilde __P((char *, char *)); +static char *bash_filename_rewrite_hook __P((char *, int)); static void bash_directory_expansion __P((char **)); static int bash_directory_completion_hook __P((char **)); static int filename_completion_ignore __P((char **)); @@ -146,6 +150,7 @@ static char *bash_dequote_filename __P((char *, int)); static char *quote_word_break_chars __P((char *)); static char *bash_quote_filename __P((char *, int, char *)); +static int putx __P((int)); static int bash_execute_unix_command __P((int, int)); static void init_unix_command_map __P((void)); static int isolate_sequence __P((char *, int, int, int *)); @@ -245,6 +250,9 @@ static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL; static int dot_in_path = 0; +/* Set to non-zero when dabbrev-expand is running */ +static int dabbrev_expand_active = 0; + /* What kind of quoting is performed by bash_quote_filename: COMPLETE_DQUOTE = double-quoting the filename COMPLETE_SQUOTE = single_quoting the filename @@ -494,6 +502,8 @@ initialize_readline () do other expansion on directory names. */ rl_directory_completion_hook = bash_directory_completion_hook; + rl_filename_rewrite_hook = bash_filename_rewrite_hook; + /* Tell the filename completer we want a chance to ignore some names. */ rl_ignore_some_completions_function = filename_completion_ignore; @@ -748,7 +758,7 @@ clear_hostname_list () return; for (i = 0; i < hostname_list_length; i++) free (hostname_list[i]); - hostname_list_length = 0; + hostname_list_length = hostname_list_initialized = 0; } /* Return a NULL terminated list of hostnames which begin with TEXT. @@ -1187,7 +1197,7 @@ find_cmd_start (start) register int s, os; os = 0; - while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS, SD_NOJMP)) <= start) && + while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS, SD_NOJMP|SD_NOSKIPCMD)) <= start) && rl_line_buffer[s]) os = s+1; return os; @@ -1305,8 +1315,9 @@ attempt_shell_completion (text, start, end) /* Special handling for command substitution. If *TEXT is a backquote, it can be the start or end of an old-style command substitution, or unmatched. If it's unmatched, both calls to unclosed_pair will - succeed. */ - if (*text == '`' && + succeed. Don't bother if readline found a single quote and we are + completing on the substring. */ + if (*text == '`' && rl_completion_quote_character != '\'' && (in_command_position || (unclosed_pair (rl_line_buffer, start, "`") && unclosed_pair (rl_line_buffer, end, "`")))) matches = rl_completion_matches (text, command_subst_completion_function); @@ -1386,7 +1397,7 @@ bash_default_completion (text, start, end, qc, compflags) /* If the word starts in `~', and there is no slash in the word, then try completing this word as a username. */ - if (!matches && *text == '~' && !xstrchr (text, '/')) + if (matches ==0 && *text == '~' && mbschr (text, '/') == 0) matches = rl_completion_matches (text, rl_username_completion_function); /* Another one. Why not? If the word starts in '@', then look through @@ -2652,6 +2663,20 @@ bash_directory_expansion (dirname) } } +/* If necessary, rewrite directory entry */ +static char * +bash_filename_rewrite_hook (fname, fnlen) + char *fname; + int fnlen; +{ + char *conv; + + conv = fnx_fromfs (fname, fnlen); + if (conv != fname) + conv = savestring (conv); + return conv; +} + /* Handle symbolic link references and other directory name expansions while hacking completion. */ static int @@ -2666,11 +2691,11 @@ bash_directory_completion_hook (dirname) return_value = should_expand_dirname = 0; local_dirname = *dirname; - if (xstrchr (local_dirname, '$')) + if (mbschr (local_dirname, '$')) should_expand_dirname = 1; else { - t = xstrchr (local_dirname, '`'); + t = mbschr (local_dirname, '`'); if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0) should_expand_dirname = 1; } @@ -2787,6 +2812,8 @@ build_history_completion_array () if (hlist) { for (i = 0; hlist[i]; i++) + ; + for ( --i; i >= 0; i--) { /* Separate each token, and place into an array. */ tokens = history_tokenize (hlist[i]->line); @@ -2803,7 +2830,8 @@ build_history_completion_array () } /* Sort the complete list of tokens. */ - qsort (history_completion_array, harry_len, sizeof (char *), (QSFUNC *)strvec_strcmp); + if (dabbrev_expand_active == 0) + qsort (history_completion_array, harry_len, sizeof (char *), (QSFUNC *)strvec_strcmp); } } @@ -2819,6 +2847,8 @@ history_completion_generator (hint_text, state) list of strings to complete over. */ if (state == 0) { + if (dabbrev_expand_active) /* This is kind of messy */ + rl_completion_suppress_append = 1; local_index = 0; build_history_completion_array (); text = hint_text; @@ -2862,25 +2892,33 @@ static int bash_dabbrev_expand (count, key) int count, key; { - int r; + int r, orig_suppress, orig_sort; rl_compentry_func_t *orig_func; rl_completion_func_t *orig_attempt_func; orig_func = rl_menu_completion_entry_function; orig_attempt_func = rl_attempted_completion_function; + orig_suppress = rl_completion_suppress_append; + orig_sort = rl_sort_completion_matches; rl_menu_completion_entry_function = history_completion_generator; rl_attempted_completion_function = (rl_completion_func_t *)NULL; rl_filename_completion_desired = 0; + rl_completion_suppress_append = 1; + rl_sort_completion_matches = 0; /* XXX - use rl_completion_mode here? */ + dabbrev_expand_active = 1; if (rl_last_func == bash_dabbrev_expand) rl_last_func = rl_menu_complete; r = rl_menu_complete (count, key); + dabbrev_expand_active = 0; rl_last_func = bash_dabbrev_expand; rl_menu_completion_entry_function = orig_func; rl_attempted_completion_function = orig_attempt_func; + rl_completion_suppress_append = orig_suppress; + rl_sort_completion_matches = orig_sort; return r; } @@ -3225,7 +3263,7 @@ bash_dequote_filename (text, quote_char) *r++ = *++p; if (*p == '\0') - break; + return ret; /* XXX - was break; */ continue; } /* Close quote. */ @@ -3271,7 +3309,7 @@ quote_word_break_chars (text) } /* OK, we have an unquoted character. Check its presence in rl_completer_word_break_characters. */ - if (xstrchr (rl_completer_word_break_characters, *s)) + if (mbschr (rl_completer_word_break_characters, *s)) *r++ = '\\'; /* XXX -- check for standalone tildes here and backslash-quote them */ if (s == text && *s == '~' && file_exists (text)) @@ -3313,7 +3351,7 @@ bash_quote_filename (s, rtype, qcp) the word being completed contains newlines, since those are not quoted correctly using backslashes (a backslash-newline pair is special to the shell parser). */ - if (*qcp == '\0' && cs == COMPLETE_BSQUOTE && xstrchr (s, '\n')) + if (*qcp == '\0' && cs == COMPLETE_BSQUOTE && mbschr (s, '\n')) cs = COMPLETE_SQUOTE; else if (*qcp == '"') cs = COMPLETE_DQUOTE; @@ -3321,11 +3359,11 @@ bash_quote_filename (s, rtype, qcp) cs = COMPLETE_SQUOTE; #if defined (BANG_HISTORY) else if (*qcp == '\0' && history_expansion && cs == COMPLETE_DQUOTE && - history_expansion_inhibited == 0 && xstrchr (s, '!')) + history_expansion_inhibited == 0 && mbschr (s, '!')) cs = COMPLETE_BSQUOTE; if (*qcp == '"' && history_expansion && cs == COMPLETE_DQUOTE && - history_expansion_inhibited == 0 && xstrchr (s, '!')) + history_expansion_inhibited == 0 && mbschr (s, '!')) { cs = COMPLETE_BSQUOTE; *qcp = '\0'; @@ -3380,16 +3418,23 @@ bash_quote_filename (s, rtype, qcp) static Keymap cmd_xmap; static int +putx(c) + int c; +{ + putc (c, rl_outstream); +} + +static int bash_execute_unix_command (count, key) int count; /* ignored */ int key; { Keymap ckmap; /* current keymap */ Keymap xkmap; /* unix command executing keymap */ - register int i; + register int i, r; intmax_t mi; sh_parser_state_t ps; - char *cmd, *value, *l; + char *cmd, *value, *l, *l1, *ce; SHELL_VAR *v; char ibuf[INT_STRLEN_BOUND(int) + 1]; @@ -3425,12 +3470,20 @@ bash_execute_unix_command (count, key) return 1; } - rl_crlf (); /* move to a new line */ + ce = rl_get_termcap ("ce"); + if (ce) /* clear current line */ + { + fprintf (rl_outstream, "\r"); + tputs (ce, 1, putx); + fflush (rl_outstream); + } + else + rl_crlf (); /* move to a new line */ v = bind_variable ("READLINE_LINE", rl_line_buffer, 0); if (v) VSETATTR (v, att_exported); - l = value_cell (v); + l = v ? value_cell (v) : 0; value = inttostr (rl_point, ibuf, sizeof (ibuf)); v = bind_int_variable ("READLINE_POINT", value); if (v) @@ -3438,11 +3491,12 @@ bash_execute_unix_command (count, key) array_needs_making = 1; save_parser_state (&ps); - parse_and_execute (cmd, "bash_execute_unix_command", SEVAL_NOHIST|SEVAL_NOFREE); + r = parse_and_execute (cmd, "bash_execute_unix_command", SEVAL_NOHIST|SEVAL_NOFREE); restore_parser_state (&ps); v = find_variable ("READLINE_LINE"); - if (value_cell (v) != l) + l1 = v ? value_cell (v) : 0; + if (l1 != l) maybe_make_readline_line (value_cell (v)); v = find_variable ("READLINE_POINT"); if (v && legal_number (value_cell (v), &mi)) diff --git a/bashtypes.h b/bashtypes.h index f773652..01afef4 100644 --- a/bashtypes.h +++ b/bashtypes.h @@ -35,4 +35,8 @@ # include #endif +#if HAVE_STDINT_H +# include +#endif + #endif /* _BASHTYPES_H_ */ diff --git a/braces.c b/braces.c index 4e0c08a..45abe45 100644 --- a/braces.c +++ b/braces.c @@ -364,7 +364,7 @@ expand_seqterm (text, tlen) char *t, *lhs, *rhs; int i, lhs_t, rhs_t, lhs_v, rhs_v, incr, lhs_l, rhs_l, width; intmax_t tl, tr; - char **result, *ep; + char **result, *ep, *oep; t = strstr (text, BRACE_SEQ_SPECIFIER); if (t == 0) @@ -410,10 +410,12 @@ expand_seqterm (text, tlen) incr = 1; if (rhs_t != ST_BAD) { + oep = ep; if (ep && *ep == '.' && ep[1] == '.' && ep[2]) incr = strtoimax (ep + 2, &ep, 10); if (*ep != 0) rhs_t = ST_BAD; /* invalid incr */ + tlen -= ep - oep; } if (lhs_t != rhs_t || lhs_t == ST_BAD || rhs_t == ST_BAD) @@ -449,6 +451,11 @@ expand_seqterm (text, tlen) width = rhs_l, lhs_t = ST_ZINT; if (rhs_l > 2 && rhs[0] == '-' && rhs[1] == '0' && width < rhs_l) width = rhs_l, lhs_t = ST_ZINT; + + if (width < lhs_l && lhs_t == ST_ZINT) + width = lhs_l; + if (width < rhs_l && lhs_t == ST_ZINT) + width = rhs_l; } result = mkseq (lhs_v, rhs_v, incr, lhs_t, width); diff --git a/builtins/Makefile.in b/builtins/Makefile.in index 96dfaa3..42f8cb8 100644 --- a/builtins/Makefile.in +++ b/builtins/Makefile.in @@ -333,7 +333,7 @@ evalstring.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h evalstring.o: $(topdir)/externs.h $(topdir)/jobs.h $(topdir)/builtins.h evalstring.o: $(topdir)/flags.h $(topdir)/input.h $(topdir)/execute_cmd.h evalstring.o: $(topdir)/bashhist.h $(srcdir)/common.h -evalstring.o: $(topdir)/trap.h $(topdir)/redir.h +evalstring.o: $(topdir)/trap.h $(topdir)/redir.h ../pathnames.h getopt.o: ../config.h $(BASHINCDIR)/memalloc.h getopt.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/bashjmp.h $(topdir)/command.h getopt.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/error.h $(topdir)/variables.h $(topdir)/conftypes.h @@ -351,63 +351,67 @@ alias.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(BASHINCDIR) alias.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h alias.o: $(topdir)/subst.h $(topdir)/externs.h $(srcdir)/common.h alias.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +alias.o: ../pathnames.h bind.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h bind.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h bind.o: $(topdir)/subst.h $(topdir)/externs.h $(srcdir)/bashgetopt.h bind.o: $(topdir)/general.h $(topdir)/xmalloc.h $(BASHINCDIR)/maxpath.h $(topdir)/bashline.h bind.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +bind.o: ../pathnames.h break.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h break.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h break.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h break.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h break.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +break.o: ../pathnames.h builtin.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h builtin.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/externs.h builtin.o: $(topdir)/quit.h $(srcdir)/common.h $(BASHINCDIR)/maxpath.h builtin.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h builtin.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -builtin.o: $(srcdir)/bashgetopt.h +builtin.o: $(srcdir)/bashgetopt.h ../pathnames.h caller.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h caller.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/quit.h $(topdir)/dispose_cmd.h caller.o: $(topdir)/make_cmd.h $(topdir)/subst.h $(topdir)/externs.h caller.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h caller.o: $(srcdir)/common.h $(BASHINCDIR)/maxpath.h ./builtext.h -caller.o: ${BASHINCDIR}/chartypes.h $(topdir)/bashtypes.h +caller.o: ${BASHINCDIR}/chartypes.h $(topdir)/bashtypes.h ../pathnames.h cd.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h cd.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/quit.h $(topdir)/dispose_cmd.h cd.o: $(topdir)/make_cmd.h $(topdir)/subst.h $(topdir)/externs.h cd.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -cd.o: $(srcdir)/common.h $(BASHINCDIR)/maxpath.h +cd.o: $(srcdir)/common.h $(BASHINCDIR)/maxpath.h ../pathnames.h command.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h command.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/externs.h command.o: $(topdir)/quit.h $(srcdir)/bashgetopt.h $(BASHINCDIR)/maxpath.h command.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h command.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +command.o: ../pathnames.h declare.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h declare.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h declare.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h declare.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h declare.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h declare.o: $(topdir)/arrayfunc.h $(srcdir)/bashgetopt.h -declare.o: ./builtext.h +declare.o: ./builtext.h ../pathnames.h echo.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h echo.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/subst.h $(topdir)/externs.h echo.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h echo.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -echo.o: $(BASHINCDIR)/maxpath.h +echo.o: $(BASHINCDIR)/maxpath.h ../pathnames.h enable.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h enable.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h enable.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h enable.o: $(topdir)/subst.h $(topdir)/externs.h enable.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -enable.o: $(BASHINCDIR)/maxpath.h +enable.o: $(BASHINCDIR)/maxpath.h ../pathnames.h enable.o: $(topdir)/pcomplete.h eval.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h eval.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h eval.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h eval.o: $(topdir)/subst.h $(topdir)/externs.h eval.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -eval.o: $(BASHINCDIR)/maxpath.h +eval.o: $(BASHINCDIR)/maxpath.h ../pathnames.h exec.o: $(topdir)/bashtypes.h exec.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h exec.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h @@ -415,14 +419,14 @@ exec.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h exec.o: $(topdir)/subst.h $(topdir)/externs.h $(topdir)/flags.h exec.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h exec.o: $(srcdir)/common.h $(topdir)/execute_cmd.h $(BASHINCDIR)/maxpath.h -exec.o: $(topdir)/findcmd.h $(topdir)/jobs.h +exec.o: $(topdir)/findcmd.h $(topdir)/jobs.h ../pathnames.h exit.o: $(topdir)/bashtypes.h exit.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h exit.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h exit.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h exit.o: $(topdir)/subst.h $(topdir)/externs.h $(topdir)/jobs.h exit.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -exit.o: $(BASHINCDIR)/maxpath.h ./builtext.h +exit.o: $(BASHINCDIR)/maxpath.h ./builtext.h ../pathnames.h fc.o: $(topdir)/bashtypes.h $(BASHINCDIR)/posixstat.h fc.o: $(topdir)/builtins.h $(topdir)/command.h $(srcdir)/bashgetopt.h fc.o: $(topdir)/bashhist.h @@ -432,30 +436,32 @@ fc.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h fc.o: $(topdir)/subst.h $(topdir)/externs.h $(topdir)/shell.h $(topdir)/syntax.h fc.o: $(topdir)/flags.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h fc.o: $(topdir)/bashansi.h $(BASHINCDIR)/ansi_stdlib.h $(BASHINCDIR)/chartypes.h +fc.o: ../pathnames.h fg_bg.o: $(topdir)/bashtypes.h $(srcdir)/bashgetopt.h fg_bg.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h fg_bg.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h fg_bg.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h fg_bg.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h fg_bg.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -fg_bg.o: $(topdir)/jobs.h +fg_bg.o: $(topdir)/jobs.h ../pathnames.h getopts.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h getopts.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h getopts.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h getopts.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h getopts.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +getopts.o: ../pathnames.h hash.o: $(topdir)/builtins.h $(topdir)/command.h $(topdir)/quit.h hash.o: $(topdir)/findcmd.h $(topdir)/hashlib.h hash.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h hash.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h hash.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -hash.o: $(srcdir)/common.h $(BASHINCDIR)/maxpath.h +hash.o: $(srcdir)/common.h $(BASHINCDIR)/maxpath.h ../pathnames.h help.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h help.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h help.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h help.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h help.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -help.o: ${srcdir}/common.h +help.o: ${srcdir}/common.h ../pathnames.h history.o: $(topdir)/bashtypes.h history.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h history.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h @@ -463,27 +469,30 @@ history.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h history.o: $(topdir)/subst.h $(topdir)/externs.h history.o: ${BASHINCDIR}/filecntl.h $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h history.o: $(topdir)/variables.h $(topdir)/conftypes.h $(topdir)/bashhist.h $(BASHINCDIR)/maxpath.h +history.o: ../pathnames.h inlib.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h inlib.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h inlib.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h inlib.o: $(BASHINCDIR)/maxpath.h $(topdir)/subst.h $(topdir)/externs.h -inlib.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h +inlib.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h ../pathnames.h jobs.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h jobs.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/quit.h $(srcdir)/bashgetopt.h jobs.o: $(BASHINCDIR)/maxpath.h $(topdir)/externs.h $(topdir)/jobs.h jobs.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h jobs.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +jobs.o: ../pathnames.h kill.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/error.h kill.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/subst.h $(topdir)/externs.h kill.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h kill.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/trap.h $(topdir)/unwind_prot.h kill.o: $(topdir)/variables.h $(topdir)/conftypes.h $(BASHINCDIR)/maxpath.h -kill.o: $(topdir)/jobs.h +kill.o: $(topdir)/jobs.h ../pathnames.h let.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h let.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h let.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h let.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h let.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +let.o: ../pathnames.h printf.o: ../config.h $(BASHINCDIR)/memalloc.h $(topdir)/bashjmp.h printf.o: $(topdir)/command.h $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h printf.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h @@ -491,104 +500,111 @@ printf.o: $(topdir)/subst.h $(topdir)/externs.h $(topdir)/sig.h printf.o: ../pathnames.h $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h printf.o: $(topdir)/variables.h $(topdir)/conftypes.h $(BASHINCDIR)/stdc.h $(srcdir)/bashgetopt.h printf.o: $(topdir)/bashtypes.h ${srcdir}/common.h $(BASHINCDIR)/chartypes.h +printf.o: ../pathnames.h pushd.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h pushd.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h pushd.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h pushd.o: $(topdir)/subst.h $(topdir)/externs.h pushd.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h pushd.o: $(BASHINCDIR)/maxpath.h $(srcdir)/common.h ./builtext.h +pushd.o: ../pathnames.h read.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h read.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h read.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h read.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h read.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h read.o: $(BASHINCDIR)/shtty.h -read.o: $(topdir)/arrayfunc.h +read.o: $(topdir)/arrayfunc.h ../pathnames.h return.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h return.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h return.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h return.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h return.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +return.o: ../pathnames.h set.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h set.o: $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/subst.h $(topdir)/externs.h set.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h set.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h set.o: $(BASHINCDIR)/maxpath.h $(topdir)/error.h -set.o: $(topdir)/arrayfunc.h +set.o: $(topdir)/arrayfunc.h ../pathnames.h setattr.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h setattr.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(BASHINCDIR)/maxpath.h setattr.o: $(topdir)/quit.h $(srcdir)/common.h $(srcdir)/bashgetopt.h setattr.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h setattr.o: $(topdir)/externs.h setattr.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -setattr.o: $(topdir)/arrayfunc.h +setattr.o: $(topdir)/arrayfunc.h ../pathnames.h shift.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h shift.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h shift.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h shift.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h shift.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +shift.o: ../pathnames.h +shopt.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h +shopt.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h +shopt.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h +shopt.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h +shopt.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +shopt.o: $(srcdir)/common.h $(srcdir)/bashgetopt.h ../pathnames.h +shopt.o: $(topdir)/bashhist.h source.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h source.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/findcmd.h source.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h source.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h source.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h source.o: $(srcdir)/bashgetopt.h $(topdir)/flags.h $(topdir)/trap.h +source.o: ../pathnames.h suspend.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h suspend.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h suspend.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h suspend.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h suspend.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -suspend.o: $(topdir)/jobs.h +suspend.o: $(topdir)/jobs.h ../pathnames.h test.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h test.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h test.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h test.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h test.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -test.o: $(topdir)/test.h +test.o: $(topdir)/test.h ../pathnames.h times.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h times.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h times.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h times.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h times.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -times.o: $(BASHINCDIR)/posixtime.h +times.o: $(BASHINCDIR)/posixtime.h ../pathnames.h trap.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h trap.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/externs.h trap.o: $(topdir)/quit.h $(srcdir)/common.h $(BASHINCDIR)/maxpath.h trap.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h trap.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -trap.o: $(topdir)/findcmd.h +trap.o: $(topdir)/findcmd.h ../pathnames.h type.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h type.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h type.o: $(topdir)/quit.h $(srcdir)/common.h $(BASHINCDIR)/maxpath.h type.o: $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h $(topdir)/subst.h -type.o: $(topdir)/externs.h $(topdir)/hashcmd.h +type.o: $(topdir)/externs.h $(topdir)/hashcmd.h ../pathnames.h type.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h ulimit.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h ulimit.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h ulimit.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h ulimit.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h ulimit.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h +ulimit.o: ../pathnames.h umask.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h umask.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h umask.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h umask.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h umask.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -umask.o: $(BASHINCDIR)/chartypes.h +umask.o: $(BASHINCDIR)/chartypes.h ../pathnames.h wait.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h wait.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h wait.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h wait.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h wait.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h wait.o: $(topdir)/jobs.h -wait.o: $(BASHINCDIR)/chartypes.h -shopt.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h -shopt.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h -shopt.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h -shopt.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h -shopt.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h -shopt.o: $(srcdir)/common.h $(srcdir)/bashgetopt.h +wait.o: $(BASHINCDIR)/chartypes.h ../pathnames.h -complete.o: ../config.h +complete.o: ../config.h ../pathnames.h complete.o: ${topdir}/shell.h $(topdir)/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h ${topdir}/sig.h complete.o: ${topdir}/unwind_prot.h ${topdir}/variables.h complete.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h @@ -600,7 +616,7 @@ mapfile.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h mapfile.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h -mapfile.o: $(topdir)/arrayfunc.h +mapfile.o: $(topdir)/arrayfunc.h ../pathnames.h #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h diff --git a/builtins/bind.def b/builtins/bind.def index fcc3bbb..d0c953b 100644 --- a/builtins/bind.def +++ b/builtins/bind.def @@ -255,7 +255,7 @@ bind_builtin (list) if ((flags & RFLAG) && remove_seq) { - if (rl_set_key (remove_seq, (rl_command_func_t *)NULL, rl_get_keymap ()) != 0) + if (rl_bind_keyseq (remove_seq, (rl_command_func_t *)NULL) != 0) { builtin_error (_("`%s': cannot unbind"), remove_seq); BIND_RETURN (EXECUTION_FAILURE); diff --git a/builtins/command.def b/builtins/command.def index 77f9126..1845279 100644 --- a/builtins/command.def +++ b/builtins/command.def @@ -100,22 +100,6 @@ command_builtin (list) if (list == 0) return (EXECUTION_SUCCESS); - if (verbose) - { - int found, any_found; - - for (any_found = 0; list; list = list->next) - { - found = describe_command (list->word->word, verbose); - - if (found == 0 && verbose != CDESC_REUSABLE) - sh_notfound (list->word->word); - - any_found += found; - } - return (any_found ? EXECUTION_SUCCESS : EXECUTION_FAILURE); - } - #if defined (RESTRICTED_SHELL) if (use_standard_path && restricted) { @@ -126,8 +110,6 @@ command_builtin (list) begin_unwind_frame ("command_builtin"); - /* We don't want this to be reparsed (consider command echo 'foo &'), so - just make a simple_command structure and call execute_command with it. */ if (use_standard_path) { old_path = get_string_value ("PATH"); @@ -139,11 +121,32 @@ command_builtin (list) standard_path = get_standard_path (); bind_variable ("PATH", standard_path ? standard_path : "", 0); + stupidly_hack_special_variables ("PATH"); FREE (standard_path); } + if (verbose) + { + int found, any_found; + + for (any_found = 0; list; list = list->next) + { + found = describe_command (list->word->word, verbose); + + if (found == 0 && verbose != CDESC_REUSABLE) + sh_notfound (list->word->word); + + any_found += found; + } + + run_unwind_frame ("command_builtin"); + return (any_found ? EXECUTION_SUCCESS : EXECUTION_FAILURE); + } + #define COMMAND_BUILTIN_FLAGS (CMD_NO_FUNCTIONS | CMD_INHIBIT_EXPANSION | CMD_COMMAND_BUILTIN) + /* We don't want this to be reparsed (consider command echo 'foo &'), so + just make a simple_command structure and call execute_command with it. */ command = make_bare_simple_command (); command->value.Simple->words = (WORD_LIST *)copy_word_list (list); command->value.Simple->redirects = (REDIRECT *)NULL; @@ -182,6 +185,8 @@ restore_path (var) } else unbind_variable ("PATH"); + + stupidly_hack_special_variables ("PATH"); } /* Return a value for PATH that is guaranteed to find all of the standard diff --git a/builtins/common.c b/builtins/common.c index 6ba641b..f02e99c 100644 --- a/builtins/common.c +++ b/builtins/common.c @@ -612,7 +612,7 @@ get_job_by_name (name, flags) match = STREQN (p->command, name, cl); } else if (flags & JM_SUBSTRING) - match = strindex (p->command, name) != (char *)0; + match = strcasestr (p->command, name) != (char *)0; else match = STREQN (p->command, name, wl); diff --git a/builtins/common.h b/builtins/common.h index ecf9d1b..efbb078 100644 --- a/builtins/common.h +++ b/builtins/common.h @@ -139,7 +139,11 @@ extern char **get_shopt_options __P((void)); extern int shopt_setopt __P((char *, int)); extern int shopt_listopt __P((char *, int)); -extern int set_login_shell __P((int)); +extern int set_login_shell __P((char *, int)); + +extern void set_bashopts __P((void)); +extern void parse_bashopts __P((char *)); +extern void initialize_bashopts __P((int)); /* Functions from type.def */ extern int describe_command __P((char *, int)); diff --git a/builtins/complete.def b/builtins/complete.def index d7e9aee..2267794 100644 --- a/builtins/complete.def +++ b/builtins/complete.def @@ -23,7 +23,7 @@ $PRODUCES complete.c $BUILTIN complete $DEPENDS_ON PROGRAMMABLE_COMPLETION $FUNCTION complete_builtin -$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...] +$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...] Specify how arguments are to be completed by Readline. For each NAME, specify how arguments are to be completed. If no options @@ -34,9 +34,14 @@ Options: -p print existing completion specifications in a reusable format -r remove a completion specification for each NAME, or, if no NAMEs are supplied, all completion specifications + -D apply the completions and actions as the default for commands + without any specific completion defined + -E apply the completions and actions to "empty" commands -- + completion attempted on a blank line When completion is attempted, the actions are applied in the order the -uppercase-letter options are listed above. +uppercase-letter options are listed above. The -D option takes +precedence over -E. Exit Status: Returns success unless an invalid option is supplied or an error occurs. @@ -72,6 +77,7 @@ $END struct _optflags { int pflag; int rflag; + int Dflag; int Eflag; }; @@ -187,7 +193,7 @@ build_actions (list, flagp, actp, optp) opt_given = 0; reset_internal_getopt (); - while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:E")) != -1) + while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:DE")) != -1) { opt_given = 1; switch (opt) @@ -275,6 +281,18 @@ build_actions (list, flagp, actp, optp) case 'C': Carg = list_optarg; break; + case 'D': + if (flagp) + { + flagp->Dflag = 1; + break; + } + else + { + sh_invalidopt ("-D"); + builtin_usage (); + return (EX_USAGE); + } case 'E': if (flagp) { @@ -334,7 +352,7 @@ complete_builtin (list) return (EXECUTION_SUCCESS); } - opt_given = oflags.pflag = oflags.rflag = oflags.Eflag = 0; + opt_given = oflags.pflag = oflags.rflag = oflags.Dflag = oflags.Eflag = 0; acts = copts = (unsigned long)0L; Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL; @@ -349,7 +367,8 @@ complete_builtin (list) list = loptend; - wl = oflags.Eflag ? make_word_list (make_bare_word ("_EmptycmD_"), (WORD_LIST *)NULL) : 0; + wl = oflags.Dflag ? make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL) + : (oflags.Eflag ? make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL) : 0); /* -p overrides everything else */ if (oflags.pflag || (list == 0 && opt_given == 0)) @@ -540,7 +559,12 @@ print_one_completion (cmd, cs) /* simple arguments that don't require quoting */ PRINTARG (cs->funcname, "-F"); - printf ("%s\n", cmd); + if (STREQ (cmd, EMPTYCMD)) + printf ("-E\n"); + else if (STREQ (cmd, DEFAULTCMD)) + printf ("-D\n"); + else + printf ("%s\n", cmd); return (0); } @@ -575,7 +599,12 @@ print_compopts (cmd, cs, full) PRINTCOMPOPT (COPT_PLUSDIRS, "plusdirs"); } - printf ("%s\n", cmd); + if (STREQ (cmd, EMPTYCMD)) + printf ("-E\n"); + else if (STREQ (cmd, DEFAULTCMD)) + printf ("-D\n"); + else + printf ("%s\n", cmd); } static int @@ -683,7 +712,7 @@ compgen_builtin (list) cs->filterpat = STRDUP (Xarg); rval = EXECUTION_FAILURE; - sl = gen_compspec_completions (cs, "compgen", word, 0, 0); + sl = gen_compspec_completions (cs, "compgen", word, 0, 0, 0); /* If the compspec wants the bash default completions, temporarily turn off programmable completion and call the bash completion code. */ @@ -720,7 +749,7 @@ compgen_builtin (list) $BUILTIN compopt $DEPENDS_ON PROGRAMMABLE_COMPLETION $FUNCTION compopt_builtin -$SHORT_DOC compopt [-o|+o option] [name ...] +$SHORT_DOC compopt [-o|+o option] [-DE] [name ...] Modify or display completion options. Modify the completion options for each NAME, or, if no NAMEs are supplied, @@ -729,6 +758,8 @@ the completion options for each NAME or the current completion specification. Options: -o option Set completion option OPTION for each NAME + -D Change options for the "default" command completion + -E Change options for the "empty" command completion Using `+o' instead of `-o' turns off the specified option. @@ -749,15 +780,15 @@ int compopt_builtin (list) WORD_LIST *list; { - int opts_on, opts_off, *opts, opt, oind, ret, Eflag; - WORD_LIST *l; + int opts_on, opts_off, *opts, opt, oind, ret, Dflag, Eflag; + WORD_LIST *l, *wl; COMPSPEC *cs; - opts_on = opts_off = 0; + opts_on = opts_off = Eflag = Dflag = 0; ret = EXECUTION_SUCCESS; reset_internal_getopt (); - while ((opt = internal_getopt (list, "+o:")) != EOF) + while ((opt = internal_getopt (list, "+o:DE")) != EOF) { opts = (list_opttype == '-') ? &opts_on : &opts_off; @@ -772,6 +803,12 @@ compopt_builtin (list) } *opts |= compopts[oind].optflag; break; + case 'D': + Dflag = 1; + break; + case 'E': + Eflag = 1; + break; default: builtin_usage (); return (EX_USAGE); @@ -779,7 +816,10 @@ compopt_builtin (list) } list = loptend; - if (list == 0) + wl = Dflag ? make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL) + : (Eflag ? make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL) : 0); + + if (list == 0 && wl == 0) { if (RL_ISSTATE (RL_STATE_COMPLETING) == 0 || pcomp_curcs == 0) { @@ -805,7 +845,7 @@ compopt_builtin (list) return (ret); } - for (l = list; l; l = l->next) + for (l = wl ? wl : list; l; l = l->next) { cs = progcomp_search (l->word->word); if (cs == 0) diff --git a/builtins/declare.def b/builtins/declare.def index bd7d6b6..a0ce605 100644 --- a/builtins/declare.def +++ b/builtins/declare.def @@ -503,14 +503,19 @@ declare_internal (list, local_var) assign_array_var_from_string (var, value, aflags); else if (simple_array_assign && subscript_start) { - /* declare [-a] name[N]=value */ + /* declare [-aA] name[N]=value */ *subscript_start = '['; /* ] */ var = assign_array_element (name, value, 0); /* XXX - not aflags */ *subscript_start = '\0'; } else if (simple_array_assign) - /* let bind_array_variable take care of this. */ - bind_array_variable (name, 0, value, aflags); + { + /* let bind_{array,assoc}_variable take care of this. */ + if (assoc_p (var)) + bind_assoc_variable (var, name, "0", value, aflags); + else + bind_array_variable (name, 0, value, aflags); + } else #endif /* bind_variable_value duplicates the essential internals of diff --git a/builtins/evalfile.c b/builtins/evalfile.c index 55b5cb7..972d039 100644 --- a/builtins/evalfile.c +++ b/builtins/evalfile.c @@ -81,7 +81,7 @@ _evalfile (filename, flags) { volatile int old_interactive; procenv_t old_return_catch; - int return_val, fd, result, pflags; + int return_val, fd, result, pflags, i, nnull; ssize_t nr; /* return value from read(2) */ char *string; struct stat finfo; @@ -186,6 +186,26 @@ file_error_and_exit: return ((flags & FEVAL_BUILTIN) ? EX_BINARY_FILE : -1); } + i = strlen (string); + if (i < nr) + { + for (nnull = i = 0; i < nr; i++) + if (string[i] == '\0') + { + memmove (string+i, string+i+1, nr - i); + nr--; + /* Even if the `check binary' flag is not set, we want to avoid + sourcing files with more than 256 null characters -- that + probably indicates a binary file. */ + if ((flags & FEVAL_BUILTIN) && ++nnull > 256) + { + free (string); + (*errfunc) (_("%s: cannot execute binary file"), filename); + return ((flags & FEVAL_BUILTIN) ? EX_BINARY_FILE : -1); + } + } + } + if (flags & FEVAL_UNWINDPROT) { begin_unwind_frame ("_evalfile"); diff --git a/builtins/evalstring.c b/builtins/evalstring.c index a0fb3e2..40abe00 100644 --- a/builtins/evalstring.c +++ b/builtins/evalstring.c @@ -43,6 +43,7 @@ #include "../execute_cmd.h" #include "../redir.h" #include "../trap.h" +#include "../bashintl.h" #include @@ -51,6 +52,7 @@ #endif #include "common.h" +#include "builtext.h" #if !defined (errno) extern int errno; @@ -67,6 +69,7 @@ extern int loop_level; extern int executing_list; extern int comsub_ignore_return; extern int posixly_correct; +extern sh_builtin_func_t *this_shell_builtin; int parse_and_execute_level = 0; @@ -324,6 +327,19 @@ parse_and_execute (string, from_file, flags) { last_result = EXECUTION_FAILURE; + if (interactive_shell == 0 && this_shell_builtin && + (this_shell_builtin == source_builtin || this_shell_builtin == eval_builtin) && + last_command_exit_value == EX_BADSYNTAX && posixly_correct) + { +#if 0 /* XXX - for bash-4.2 */ + should_jump_to_top_level = 1; + code = ERREXIT; + last_command_exit_value = EX_BADUSAGE; +#else + internal_warning (_("syntax errors in . or eval will cause future versions of the shell to abort as Posix requires")); +#endif + } + /* Since we are shell compatible, syntax errors in a script abort the execution of the script. Right? */ break; diff --git a/builtins/help.def b/builtins/help.def index 004abe2..f857af9 100644 --- a/builtins/help.def +++ b/builtins/help.def @@ -23,7 +23,7 @@ $PRODUCES help.c $BUILTIN help $FUNCTION help_builtin $DEPENDS_ON HELP_BUILTIN -$SHORT_DOC help [-ds] [pattern ...] +$SHORT_DOC help [-dms] [pattern ...] Display information about builtin commands. Displays brief summaries of builtin commands. If PATTERN is @@ -350,6 +350,8 @@ A star (*) next to a name means that the command is disabled.\n\ width /= 2; if (width > sizeof (blurb)) width = sizeof (blurb); + if (width <= 3) + width = 40; height = (num_shell_builtins + 1) / 2; /* number of rows */ for (i = 0; i < height; i++) diff --git a/builtins/kill.def b/builtins/kill.def index 734da25..18c3667 100644 --- a/builtins/kill.def +++ b/builtins/kill.def @@ -121,6 +121,9 @@ kill_builtin (list) else sig = decode_signal (sigspec, dflags); list = list->next; +#if 0 + saw_signal++; /* XXX - for bash-4.2 */ +#endif } else { @@ -141,7 +144,7 @@ kill_builtin (list) /* If this is a signal specification then process it. We only process the first one seen; other arguments may signify process groups (e.g, -num == process group num). */ - else if ((*word == '-') && !saw_signal) + else if (*word == '-' && saw_signal == 0) { sigspec = word + 1; sig = decode_signal (sigspec, dflags); diff --git a/builtins/mapfile.def b/builtins/mapfile.def index e37cd22..0946de3 100644 --- a/builtins/mapfile.def +++ b/builtins/mapfile.def @@ -24,11 +24,11 @@ $PRODUCES mapfile.c $BUILTIN mapfile $FUNCTION mapfile_builtin $SHORT_DOC mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array] -Read lines from the standard input into an array variable. +Read lines from the standard input into an indexed array variable. -Read lines from the standard input into the array variable ARRAY, or from -file descriptor FD if the -u option is supplied. The variable MAPFILE is -the default ARRAY. +Read lines from the standard input into the indexed array variable ARRAY, or +from file descriptor FD if the -u option is supplied. The variable MAPFILE +is the default ARRAY. Options: -n count Copy at most COUNT lines. If COUNT is 0, all lines are copied. @@ -50,7 +50,8 @@ If not supplied with an explicit origin, mapfile will clear ARRAY before assigning to it. Exit Status: -Returns success unless an invalid option is given or ARRAY is readonly. +Returns success unless an invalid option is given or ARRAY is readonly or +not an indexed array. $END $BUILTIN readarray @@ -71,6 +72,7 @@ $END #endif #include "bashansi.h" +#include "bashintl.h" #include #include @@ -110,10 +112,10 @@ run_callback(callback, current_index) execlen += 2; execstr = xmalloc (execlen); - flags = 0; + flags = SEVAL_NOHIST; #if 0 if (interactive) - flags |= SEVAL_NOHIST|SEVAL_INTERACT; + flags |= SEVAL_INTERACT; #endif snprintf (execstr, execlen, "%s %d", callback, current_index); return parse_and_execute(execstr, NULL, flags); @@ -153,11 +155,17 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n entry = find_or_make_array_variable (array_name, 1); if (entry == 0 || readonly_p (entry) || noassign_p (entry)) { - if (readonly_p (entry)) + if (entry && readonly_p (entry)) err_readonly (array_name); return (EXECUTION_FAILURE); } + else if (array_p (entry) == 0) + { + builtin_error (_("%s: not an indexed array"), array_name); + return (EXECUTION_FAILURE); + } + if (flags & MAPF_CLEARARRAY) array_flush (array_cell (entry)); @@ -281,7 +289,7 @@ mapfile_builtin (list) break; case 'c': code = legal_number (list_optarg, &intval); - if (code == 0 || intval < 0 || intval != (unsigned)intval) + if (code == 0 || intval <= 0 || intval != (unsigned)intval) { builtin_error (_("%s: invalid callback quantum"), list_optarg); return (EXECUTION_FAILURE); diff --git a/builtins/printf.def b/builtins/printf.def index 757fcea..e447633 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -135,7 +135,7 @@ extern int errno; { \ if (vflag) \ { \ - bind_variable (vname, vbuf, 0); \ + bind_printf_variable (vname, vbuf, 0); \ stupidly_hack_special_variables (vname); \ } \ if (conv_bufsize > 4096 ) \ @@ -156,6 +156,7 @@ extern int errno; fflush (stdout); \ if (ferror (stdout)) \ { \ + sh_wrerror (); \ clearerr (stdout); \ return (EXECUTION_FAILURE); \ } \ @@ -166,11 +167,11 @@ extern int errno; #define SKIP1 "#'-+ 0" #define LENMODS "hjlLtz" -#ifndef HAVE_ASPRINTF +#if !HAVE_ASPRINTF extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); #endif -#ifndef HAVE_VSNPRINTF +#if !HAVE_VSNPRINTF extern int vsnprintf __P((char *, size_t, const char *, ...)) __attribute__((__format__ (printf, 3, 4))); #endif @@ -186,6 +187,7 @@ static char *getstr __P((void)); static int getint __P((void)); static intmax_t getintmax __P((void)); static uintmax_t getuintmax __P((void)); +static SHELL_VAR *bind_printf_variable __P((char *, char *, int)); #if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD && !defined(STRTOLD_BROKEN) typedef long double floatmax_t; @@ -234,7 +236,12 @@ printf_builtin (list) switch (ch) { case 'v': - if (legal_identifier (vname = list_optarg)) + vname = list_optarg; +#if defined (ARRAY_VARS) + if (legal_identifier (vname) || valid_array_reference (vname)) +#else + if (legal_identifier (vname)) +#endif { vflag = 1; vblen = 0; @@ -997,7 +1004,9 @@ getintmax () shall continue processing any remaining operands and shall write the value accumulated at the time the error was detected to standard output.'' Yecch. */ - ret = 0; +#if 0 + ret = 0; /* return partially-converted value from strtoimax */ +#endif conversion_error = 1; } else if (errno == ERANGE) @@ -1091,3 +1100,19 @@ asciicode () garglist = garglist->next; return (ch); } + +static SHELL_VAR * +bind_printf_variable (name, value, flags) + char *name; + char *value; + int flags; +{ +#if defined (ARRAY_VARS) + if (valid_array_reference (name) == 0) + return (bind_variable (name, value, flags)); + else + return (assign_array_element (name, value, flags)); +#else /* !ARRAY_VARS */ + return bind_variable (name, value, flags); +#endif /* !ARRAY_VARS */ +} diff --git a/builtins/read.def b/builtins/read.def index 8fc5647..1ef9142 100644 --- a/builtins/read.def +++ b/builtins/read.def @@ -22,7 +22,7 @@ $PRODUCES read.c $BUILTIN read $FUNCTION read_builtin -$SHORT_DOC read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...] +$SHORT_DOC read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] Read a line from the standard input and split it into fields. Reads a single line from the standard input, or from file descriptor FD @@ -42,7 +42,10 @@ Options: -e use Readline to obtain the line in an interactive shell -i text Use TEXT as the initial text for Readline -n nchars return after reading NCHARS characters rather than waiting - for a newline + for a newline, but honor a delimiter if fewer than NCHARS + characters are read before the delimiter + -N nchars return only after reading exactly NCHARS characters, unless + EOF is encountered or read times out, ignoring any delimiter -p prompt output the string PROMPT without a trailing newline before attempting to read -r do not allow backslashes to escape any characters @@ -155,7 +158,7 @@ read_builtin (list) register char *varname; int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul; - int raw, edit, nchars, silent, have_timeout, fd; + int raw, edit, nchars, silent, have_timeout, ignore_delim, fd; unsigned int tmsec, tmusec; long ival, uval; intmax_t intval; @@ -211,9 +214,10 @@ read_builtin (list) tmsec = tmusec = 0; /* no timeout */ nr = nchars = input_is_tty = input_is_pipe = unbuffered_read = have_timeout = 0; delim = '\n'; /* read until newline */ + ignore_delim = 0; reset_internal_getopt (); - while ((opt = internal_getopt (list, "ersa:d:i:n:p:t:u:")) != -1) + while ((opt = internal_getopt (list, "ersa:d:i:n:p:t:u:N:")) != -1) { switch (opt) { @@ -255,6 +259,9 @@ read_builtin (list) tmusec = uval; } break; + case 'N': + ignore_delim = 1; + delim = -1; case 'n': code = legal_number (list_optarg, &intval); if (code == 0 || intval < 0 || intval != (int)intval) @@ -299,10 +306,17 @@ read_builtin (list) return (input_avail (fd) ? EXECUTION_SUCCESS : EXECUTION_FAILURE); #endif + /* If we're asked to ignore the delimiter, make sure we do. */ + if (ignore_delim) + delim = -1; + /* IF IFS is unset, we use the default of " \t\n". */ ifs_chars = getifs (); if (ifs_chars == 0) /* XXX - shouldn't happen */ ifs_chars = ""; + /* If we want to read exactly NCHARS chars, don't split on IFS */ + if (ignore_delim) + ifs_chars = ""; for (skip_ctlesc = skip_ctlnul = 0, e = ifs_chars; *e; e++) skip_ctlesc |= *e == CTLESC, skip_ctlnul |= *e == CTLNUL; @@ -601,15 +615,14 @@ add_char: if (unbuffered_read == 0) zsyncfd (fd); + interrupt_immediately--; + terminate_immediately--; discard_unwind_frame ("read_builtin"); retval = eof ? EXECUTION_FAILURE : EXECUTION_SUCCESS; assign_vars: - interrupt_immediately--; - terminate_immediately--; - #if defined (ARRAY_VARS) /* If -a was given, take the string read, break it into a list of words, an assign them to `arrayname' in turn. */ diff --git a/builtins/shopt.def b/builtins/shopt.def index d30a869..68c7245 100644 --- a/builtins/shopt.def +++ b/builtins/shopt.def @@ -112,19 +112,20 @@ extern int debugging_mode; static void shopt_error __P((char *)); -static int set_shellopts_after_change __P((int)); - -static int set_compatibility_level __P((int)); +static int set_shellopts_after_change __P((char *, int)); +static int shopt_enable_hostname_completion __P((char *, int)); +static int set_compatibility_level __P((char *, int)); #if defined (RESTRICTED_SHELL) -static int set_restricted_shell __P((int)); +static int set_restricted_shell __P((char *, int)); #endif static int shopt_login_shell; static int shopt_compat31; static int shopt_compat32; +static int shopt_compat40; -typedef int shopt_set_func_t __P((int)); +typedef int shopt_set_func_t __P((char *, int)); static struct { char *name; @@ -144,6 +145,7 @@ static struct { #endif { "compat31", &shopt_compat31, set_compatibility_level }, { "compat32", &shopt_compat32, set_compatibility_level }, + { "compat40", &shopt_compat40, set_compatibility_level }, #if defined (READLINE) { "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL }, #endif @@ -169,7 +171,7 @@ static struct { #if defined (READLINE) { "histreedit", &history_reediting, (shopt_set_func_t *)NULL }, { "histverify", &hist_verify, (shopt_set_func_t *)NULL }, - { "hostcomplete", &perform_hostname_completion, enable_hostname_completion }, + { "hostcomplete", &perform_hostname_completion, shopt_enable_hostname_completion }, #endif { "huponexit", &hup_on_exit, (shopt_set_func_t *)NULL }, { "interactive_comments", &interactive_comments, set_shellopts_after_change }, @@ -197,6 +199,10 @@ static struct { { (char *)0, (int *)0, (shopt_set_func_t *)NULL } }; +#define N_SHOPT_OPTIONS (sizeof (shopt_vars) / sizeof (shopt_vars[0])) + +#define GET_SHOPT_OPTION_VALUE(i) (*shopt_vars[i].value) + static const char * const on = "on"; static const char * const off = "off"; @@ -340,9 +346,11 @@ toggle_shopts (mode, list, quiet) { *shopt_vars[ind].value = mode; /* 1 for set, 0 for unset */ if (shopt_vars[ind].set_func) - (*shopt_vars[ind].set_func) (mode); + (*shopt_vars[ind].set_func) (shopt_vars[ind].name, mode); } } + + set_bashopts (); return (rval); } @@ -479,7 +487,8 @@ set_shopt_o_options (mode, list, quiet) /* If we set or unset interactive_comments with shopt, make sure the change is reflected in $SHELLOPTS. */ static int -set_shellopts_after_change (mode) +set_shellopts_after_change (option_name, mode) + char *option_name; int mode; { set_shellopts (); @@ -487,14 +496,36 @@ set_shellopts_after_change (mode) } static int -set_compatibility_level (mode) +shopt_enable_hostname_completion (option_name, mode) + char *option_name; + int mode; +{ + return (enable_hostname_completion (mode)); +} + +static int +set_compatibility_level (option_name, mode) + char *option_name; int mode; { /* Need to change logic here as we add more compatibility levels */ + + /* First, check option_name so we can turn off other compat options when + one is set. */ + if (mode && option_name[6] == '3' && option_name[7] == '1') + shopt_compat32 = shopt_compat40 = 0; + else if (mode && option_name[6] == '3' && option_name[7] == '2') + shopt_compat31 = shopt_compat40 = 0; + else if (mode && option_name[6] == '4' && option_name[7] == '0') + shopt_compat31 = shopt_compat32 = 0; + + /* Then set shell_compatibility_level based on what remains */ if (shopt_compat31) shell_compatibility_level = 31; else if (shopt_compat32) shell_compatibility_level = 32; + else if (shopt_compat40) + shell_compatibility_level = 40; else shell_compatibility_level = DEFAULT_COMPAT_LEVEL; return 0; @@ -504,7 +535,8 @@ set_compatibility_level (mode) /* Don't allow the value of restricted_shell to be modified. */ static int -set_restricted_shell (mode) +set_restricted_shell (option_name, mode) + char *option_name; int mode; { static int save_restricted = -1; @@ -519,7 +551,8 @@ set_restricted_shell (mode) /* Not static so shell.c can call it to initialize shopt_login_shell */ int -set_login_shell (mode) +set_login_shell (option_name, mode) + char *option_name; int mode; { shopt_login_shell = login_shell != 0; @@ -579,3 +612,104 @@ shopt_listopt (name, reusable) print_shopt (name, *shopt_vars[i].value, reusable ? PFLAG : 0); return (sh_chkwrite (EXECUTION_SUCCESS)); } + +void +set_bashopts () +{ + char *value; + char tflag[N_SHOPT_OPTIONS]; + int vsize, i, vptr, *ip, exported; + SHELL_VAR *v; + + for (vsize = i = 0; shopt_vars[i].name; i++) + { + tflag[i] = 0; + if (GET_SHOPT_OPTION_VALUE (i)) + { + vsize += strlen (shopt_vars[i].name) + 1; + tflag[i] = 1; + } + } + + value = (char *)xmalloc (vsize + 1); + + for (i = vptr = 0; shopt_vars[i].name; i++) + { + if (tflag[i]) + { + strcpy (value + vptr, shopt_vars[i].name); + vptr += strlen (shopt_vars[i].name); + value[vptr++] = ':'; + } + } + + if (vptr) + vptr--; /* cut off trailing colon */ + value[vptr] = '\0'; + + v = find_variable ("BASHOPTS"); + + /* Turn off the read-only attribute so we can bind the new value, and + note whether or not the variable was exported. */ + if (v) + { + VUNSETATTR (v, att_readonly); + exported = exported_p (v); + } + else + exported = 0; + + v = bind_variable ("BASHOPTS", value, 0); + + /* Turn the read-only attribute back on, and turn off the export attribute + if it was set implicitly by mark_modified_vars and SHELLOPTS was not + exported before we bound the new value. */ + VSETATTR (v, att_readonly); + if (mark_modified_vars && exported == 0 && exported_p (v)) + VUNSETATTR (v, att_exported); + + free (value); +} + +void +parse_bashopts (value) + char *value; +{ + char *vname; + int vptr, ind; + + vptr = 0; + while (vname = extract_colon_unit (value, &vptr)) + { + ind = find_shopt (vname); + if (ind >= 0) + *shopt_vars[ind].value = 1; + free (vname); + } +} + +void +initialize_bashopts (no_bashopts) + int no_bashopts; +{ + char *temp; + SHELL_VAR *var; + + if (no_bashopts == 0) + { + var = find_variable ("BASHOPTS"); + /* set up any shell options we may have inherited. */ + if (var && imported_p (var)) + { + temp = (array_p (var) || assoc_p (var)) ? (char *)NULL : savestring (value_cell (var)); + if (temp) + { + parse_bashopts (temp); + free (temp); + } + } + } + + /* Set up the $BASHOPTS variable. */ + set_bashopts (); +} diff --git a/command.h b/command.h index e8a8aa3..4707812 100644 --- a/command.h +++ b/command.h @@ -35,11 +35,15 @@ enum r_instruction { r_append_err_and_out }; +/* Redirection flags; values for rflags */ +#define REDIR_VARASSIGN 0x01 + /* Redirection errors. */ #define AMBIGUOUS_REDIRECT -1 #define NOCLOBBER_REDIRECT -2 #define RESTRICTED_REDIRECT -3 /* can only happen in restricted shells. */ #define HEREDOC_REDIRECT -4 /* here-doc temp file can't be created */ +#define BADVAR_REDIRECT -5 /* something wrong with {varname}redir */ #define CLOBBERING_REDIRECT(ri) \ (ri == r_output_direction || ri == r_err_and_out) @@ -73,9 +77,9 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, #define W_QUOTED 0x000002 /* Some form of quote character is present. */ #define W_ASSIGNMENT 0x000004 /* This word is a variable assignment. */ #define W_GLOBEXP 0x000008 /* This word is the result of a glob expansion. */ -#define W_NOSPLIT 0x000010 /* Do not perform word splitting on this word. */ +#define W_NOSPLIT 0x000010 /* Do not perform word splitting on this word because ifs is empty string. */ #define W_NOGLOB 0x000020 /* Do not perform globbing on this word. */ -#define W_NOSPLIT2 0x000040 /* Don't split word except for $@ expansion. */ +#define W_NOSPLIT2 0x000040 /* Don't split word except for $@ expansion (using spaces) because context does not allow it. */ #define W_TILDEEXP 0x000080 /* Tilde expand this assignment word */ #define W_DOLLARAT 0x000100 /* $@ and its special handling */ #define W_DOLLARSTAR 0x000200 /* $* and its special handling */ @@ -135,7 +139,8 @@ typedef union { (or translator in redir.c) encountered an out-of-range file descriptor. */ typedef struct redirect { struct redirect *next; /* Next element, or NULL. */ - int redirector; /* Descriptor to be redirected. */ + REDIRECTEE redirector; /* Descriptor or varname to be redirected. */ + int rflags; /* Private flags for this redirection */ int flags; /* Flag value for `open'. */ enum r_instruction instruction; /* What to do with the information. */ REDIRECTEE redirectee; /* File descriptor or filename */ diff --git a/config-bot.h b/config-bot.h index 6363a4f..334581a 100644 --- a/config-bot.h +++ b/config-bot.h @@ -125,6 +125,10 @@ # define PPROMPT "$ " #endif +#if !defined (HAVE_SYSLOG) || !defined (HAVE_SYSLOG_H) +# undef SYSLOG_HISTORY +#endif + /************************************************/ /* check multibyte capability for I18N code */ /************************************************/ diff --git a/config-top.h b/config-top.h index 22433fb..147d4f4 100644 --- a/config-top.h +++ b/config-top.h @@ -98,3 +98,14 @@ name is not found. If you want to name it something other than the default ("command_not_found_handle"), change it here. */ /* #define NOTFOUND_HOOK "command_not_found_handle" */ + +/* Define if you want each line saved to the history list in bashhist.c: + bash_add_history() to be sent to syslog(). */ +/* #define SYSLOG_HISTORY */ +#if defined (SYSLOG_HISTORY) +# define SYSLOG_FACILITY LOG_USER +# define SYSLOG_LEVEL LOG_INFO +#endif + +/* Define if you want to include code in shell.c to support wordexp(3) */ +/* #define WORDEXP_OPTION */ diff --git a/config.h.in b/config.h.in index 14f2c31..07352dd 100644 --- a/config.h.in +++ b/config.h.in @@ -115,6 +115,10 @@ pattern matching. */ #undef EXTENDED_GLOB +/* Define EXTGLOB_DEFAULT to the value you'd like the extglob shell option + to have by default */ +#undef EXTGLOB_DEFAULT + /* Define COND_COMMAND if you want the ksh-style [[...]] conditional command. */ #undef COND_COMMAND @@ -494,6 +498,8 @@ /* Define if you have the /dev/stdin device. */ #undef HAVE_DEV_STDIN +/* The type of iconv's `inbuf' argument */ +#undef ICONV_CONST /* Type and behavior of signal handling functions. */ @@ -608,6 +614,9 @@ /* Define if you have the getwd function. */ #undef HAVE_GETWD +/* Define if you have the iconv function. */ +#undef HAVE_ICONV + /* Define if you have the inet_aton function. */ #undef HAVE_INET_ATON @@ -653,12 +662,21 @@ /* Define if you have the lstat function. */ #undef HAVE_LSTAT +/* Define if you have the locale_charset function. */ +#undef HAVE_LOCALE_CHARSET + /* Define if you have the mbrlen function. */ #undef HAVE_MBRLEN /* Define if you have the mbrtowc function. */ #undef HAVE_MBRTOWC +/* Define if you have the mbscasecmp function. */ +#undef HAVE_MBSCASECMP + +/* Define if you have the mbschr function. */ +#undef HAVE_MBSCHR + /* Define if you have the mbscmp function. */ #undef HAVE_MBSCMP @@ -738,6 +756,9 @@ /* Define if you have the strcasecmp function. */ #undef HAVE_STRCASECMP +/* Define if you have the strcasestr function. */ +#undef HAVE_STRCASESTR + /* Define if you have the strchr function. */ #undef HAVE_STRCHR @@ -786,6 +807,9 @@ /* Define if you have the sysconf function. */ #undef HAVE_SYSCONF +/* Define if you have the syslog function. */ +#undef HAVE_SYSLOG + /* Define if you have the tcgetattr function. */ #undef HAVE_TCGETATTR @@ -911,6 +935,9 @@ /* Define if you have the header file. */ #undef HAVE_STDINT_H +/* Define if you have the header file. */ +#undef HAVE_SYSLOG_H + /* Define if you have the header file. */ #undef HAVE_SYS_DIR_H diff --git a/configure b/configure index ea5d2e4..875bbbf 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.in for Bash 4.0, version 4.013. +# From configure.in for Bash 4.1, version 4.019. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for bash 4.0-release. +# Generated by GNU Autoconf 2.63 for bash 4.1-release. # # Report bugs to . # @@ -597,8 +597,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.0-release' -PACKAGE_STRING='bash 4.0-release' +PACKAGE_VERSION='4.1-release' +PACKAGE_STRING='bash 4.1-release' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" @@ -819,6 +819,7 @@ enable_directory_stack enable_disabled_builtins enable_dparen_arithmetic enable_extended_glob +enable_extended_glob_default enable_help_builtin enable_history enable_job_control @@ -1410,7 +1411,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 4.0-release to adapt to many kinds of systems. +\`configure' configures bash 4.1-release to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1475,7 +1476,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 4.0-release:";; + short | recursive ) echo "Configuration of bash 4.1-release:";; esac cat <<\_ACEOF @@ -1510,6 +1511,9 @@ Optional Features: --enable-dparen-arithmetic include ((...)) command --enable-extended-glob include ksh-style extended pattern matching + --enable-extended-glob-default + force extended pattern matching to be enabled by + default --enable-help-builtin include the help builtin --enable-history turn on command history --enable-job-control enable job control features @@ -1648,7 +1652,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bash configure 4.0-release +bash configure 4.1-release generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1662,7 +1666,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 4.0-release, which was +It was created by bash $as_me 4.1-release, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -1944,6 +1948,8 @@ ac_header_list="$ac_header_list unistd.h" ac_func_list="$ac_func_list alarm" ac_func_list="$ac_func_list fpurge" ac_func_list="$ac_func_list __fpurge" +ac_func_list="$ac_func_list snprintf" +ac_func_list="$ac_func_list vsnprintf" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -2073,7 +2079,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" -BASHVERS=4.0 +BASHVERS=4.1 RELSTATUS=release case "$RELSTATUS" in @@ -2412,6 +2418,7 @@ opt_debugger=yes opt_single_longdoc_strings=yes opt_casemod_attrs=yes opt_casemod_expansions=yes +opt_extglob_default=no opt_static_link=no opt_profiling=no @@ -2431,7 +2438,7 @@ if test $opt_minimal_config = yes; then opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no opt_net_redirs=no opt_progcomp=no opt_separate_help=no opt_multibyte=yes opt_cond_regexp=no opt_coproc=no - opt_casemod_attrs=no opt_casemod_expansions=no + opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no fi # Check whether --enable-alias was given. @@ -2514,6 +2521,11 @@ if test "${enable_extended_glob+set}" = set; then enableval=$enable_extended_glob; opt_extended_glob=$enableval fi +# Check whether --enable-extended-glob-default was given. +if test "${enable_extended_glob_default+set}" = set; then + enableval=$enable_extended_glob_default; opt_extglob_default=$enableval +fi + # Check whether --enable-help-builtin was given. if test "${enable_help_builtin+set}" = set; then enableval=$enable_help_builtin; opt_help=$enableval @@ -2703,6 +2715,17 @@ cat >>confdefs.h <<\_ACEOF _ACEOF fi +if test $opt_extglob_default = yes; then +cat >>confdefs.h <<\_ACEOF +#define EXTGLOB_DEFAULT 1 +_ACEOF + +else +cat >>confdefs.h <<\_ACEOF +#define EXTGLOB_DEFAULT 0 +_ACEOF + +fi if test $opt_cond_command = yes ; then cat >>confdefs.h <<\_ACEOF #define COND_COMMAND 1 @@ -11480,9 +11503,11 @@ done + for ac_header in unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h + stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h \ + syslog.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then @@ -13550,11 +13575,12 @@ done + for ac_func in bcopy bzero confstr fnmatch \ getaddrinfo gethostbyname getservbyname getservent inet_aton \ memmove pathconf putenv raise regcomp regexec \ setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf tcgetattr times ttyname tzset unsetenv + sysconf syslog tcgetattr times ttyname tzset unsetenv do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -13657,9 +13683,7 @@ done - - -for ac_func in vsnprintf snprintf vasprintf asprintf +for ac_func in vasprintf asprintf do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -13970,13 +13994,122 @@ done +for ac_func in getcwd memset +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + case " $LIBOBJS " in + *" $ac_func.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + ;; +esac + +fi +done + + + -for ac_func in getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr +for ac_func in strcasecmp strcasestr strerror strftime strnlen strpbrk strstr do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -17128,9 +17261,9 @@ _ACEOF fi -{ $as_echo "$as_me:$LINENO: checking for mbscmp" >&5 -$as_echo_n "checking for mbscmp... " >&6; } -if test "${ac_cv_func_mbscmp+set}" = set; then +{ $as_echo "$as_me:$LINENO: checking for mbscasecmp" >&5 +$as_echo_n "checking for mbscasecmp... " >&6; } +if test "${ac_cv_func_mbscasecmp+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -17139,12 +17272,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define mbscmp to an innocuous variant, in case declares mbscmp. +/* Define mbscasecmp to an innocuous variant, in case declares mbscasecmp. For example, HP-UX 11i declares gettimeofday. */ -#define mbscmp innocuous_mbscmp +#define mbscasecmp innocuous_mbscasecmp /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbscmp (); below. + which can conflict with char mbscasecmp (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ @@ -17154,7 +17287,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include #endif -#undef mbscmp +#undef mbscasecmp /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -17162,18 +17295,18 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char mbscmp (); +char mbscasecmp (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined __stub_mbscmp || defined __stub___mbscmp +#if defined __stub_mbscasecmp || defined __stub___mbscasecmp choke me #endif int main () { -return mbscmp (); +return mbscasecmp (); ; return 0; } @@ -17199,30 +17332,30 @@ $as_echo "$ac_try_echo") >&5 test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then - ac_cv_func_mbscmp=yes + ac_cv_func_mbscasecmp=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_mbscmp=no + ac_cv_func_mbscasecmp=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbscmp" >&5 -$as_echo "$ac_cv_func_mbscmp" >&6; } -if test "x$ac_cv_func_mbscmp" = x""yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbscasecmp" >&5 +$as_echo "$ac_cv_func_mbscasecmp" >&6; } +if test "x$ac_cv_func_mbscasecmp" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MBSCMP 1 _ACEOF fi -{ $as_echo "$as_me:$LINENO: checking for mbsrtowcs" >&5 -$as_echo_n "checking for mbsrtowcs... " >&6; } -if test "${ac_cv_func_mbsrtowcs+set}" = set; then +{ $as_echo "$as_me:$LINENO: checking for mbscmp" >&5 +$as_echo_n "checking for mbscmp... " >&6; } +if test "${ac_cv_func_mbscmp+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -17231,12 +17364,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define mbsrtowcs to an innocuous variant, in case declares mbsrtowcs. +/* Define mbscmp to an innocuous variant, in case declares mbscmp. For example, HP-UX 11i declares gettimeofday. */ -#define mbsrtowcs innocuous_mbsrtowcs +#define mbscmp innocuous_mbscmp /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbsrtowcs (); below. + which can conflict with char mbscmp (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ @@ -17246,7 +17379,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include #endif -#undef mbsrtowcs +#undef mbscmp /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -17254,18 +17387,18 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char mbsrtowcs (); +char mbscmp (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined __stub_mbsrtowcs || defined __stub___mbsrtowcs +#if defined __stub_mbscmp || defined __stub___mbscmp choke me #endif int main () { -return mbsrtowcs (); +return mbscmp (); ; return 0; } @@ -17291,31 +17424,30 @@ $as_echo "$ac_try_echo") >&5 test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then - ac_cv_func_mbsrtowcs=yes + ac_cv_func_mbscmp=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_mbsrtowcs=no + ac_cv_func_mbscmp=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5 -$as_echo "$ac_cv_func_mbsrtowcs" >&6; } -if test "x$ac_cv_func_mbsrtowcs" = x""yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbscmp" >&5 +$as_echo "$ac_cv_func_mbscmp" >&6; } +if test "x$ac_cv_func_mbscmp" = x""yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSRTOWCS 1 +#define HAVE_MBSCMP 1 _ACEOF fi - -{ $as_echo "$as_me:$LINENO: checking for wcrtomb" >&5 -$as_echo_n "checking for wcrtomb... " >&6; } -if test "${ac_cv_func_wcrtomb+set}" = set; then +{ $as_echo "$as_me:$LINENO: checking for mbsrtowcs" >&5 +$as_echo_n "checking for mbsrtowcs... " >&6; } +if test "${ac_cv_func_mbsrtowcs+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -17324,12 +17456,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define wcrtomb to an innocuous variant, in case declares wcrtomb. +/* Define mbsrtowcs to an innocuous variant, in case declares mbsrtowcs. For example, HP-UX 11i declares gettimeofday. */ -#define wcrtomb innocuous_wcrtomb +#define mbsrtowcs innocuous_mbsrtowcs /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wcrtomb (); below. + which can conflict with char mbsrtowcs (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ @@ -17339,7 +17471,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include #endif -#undef wcrtomb +#undef mbsrtowcs /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -17347,18 +17479,18 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char wcrtomb (); +char mbsrtowcs (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined __stub_wcrtomb || defined __stub___wcrtomb +#if defined __stub_mbsrtowcs || defined __stub___mbsrtowcs choke me #endif int main () { -return wcrtomb (); +return mbsrtowcs (); ; return 0; } @@ -17384,30 +17516,35 @@ $as_echo "$ac_try_echo") >&5 test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then - ac_cv_func_wcrtomb=yes + ac_cv_func_mbsrtowcs=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_wcrtomb=no + ac_cv_func_mbsrtowcs=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5 -$as_echo "$ac_cv_func_wcrtomb" >&6; } -if test "x$ac_cv_func_wcrtomb" = x""yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5 +$as_echo "$ac_cv_func_mbsrtowcs" >&6; } +if test "x$ac_cv_func_mbsrtowcs" = x""yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_WCRTOMB 1 +#define HAVE_MBSRTOWCS 1 _ACEOF fi -{ $as_echo "$as_me:$LINENO: checking for wcscoll" >&5 -$as_echo_n "checking for wcscoll... " >&6; } -if test "${ac_cv_func_wcscoll+set}" = set; then + + +for ac_func in mbschr +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -17416,12 +17553,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define wcscoll to an innocuous variant, in case declares wcscoll. +/* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ -#define wcscoll innocuous_wcscoll +#define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char wcscoll (); below. + which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ @@ -17431,7 +17568,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include #endif -#undef wcscoll +#undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -17439,18 +17576,18 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char wcscoll (); +char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined __stub_wcscoll || defined __stub___wcscoll +#if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { -return wcscoll (); +return $ac_func (); ; return 0; } @@ -17476,30 +17613,228 @@ $as_echo "$ac_try_echo") >&5 test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then - ac_cv_func_wcscoll=yes + eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_wcscoll=no + eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5 -$as_echo "$ac_cv_func_wcscoll" >&6; } -if test "x$ac_cv_func_wcscoll" = x""yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_WCSCOLL 1 +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF +else + case " $LIBOBJS " in + *" $ac_func.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + ;; +esac + fi +done -{ $as_echo "$as_me:$LINENO: checking for wcsdup" >&5 -$as_echo_n "checking for wcsdup... " >&6; } -if test "${ac_cv_func_wcsdup+set}" = set; then + + +{ $as_echo "$as_me:$LINENO: checking for wcrtomb" >&5 +$as_echo_n "checking for wcrtomb... " >&6; } +if test "${ac_cv_func_wcrtomb+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define wcrtomb to an innocuous variant, in case declares wcrtomb. + For example, HP-UX 11i declares gettimeofday. */ +#define wcrtomb innocuous_wcrtomb + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char wcrtomb (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef wcrtomb + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char wcrtomb (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_wcrtomb || defined __stub___wcrtomb +choke me +#endif + +int +main () +{ +return wcrtomb (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_wcrtomb=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_wcrtomb=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5 +$as_echo "$ac_cv_func_wcrtomb" >&6; } +if test "x$ac_cv_func_wcrtomb" = x""yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_WCRTOMB 1 +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for wcscoll" >&5 +$as_echo_n "checking for wcscoll... " >&6; } +if test "${ac_cv_func_wcscoll+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define wcscoll to an innocuous variant, in case declares wcscoll. + For example, HP-UX 11i declares gettimeofday. */ +#define wcscoll innocuous_wcscoll + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char wcscoll (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef wcscoll + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char wcscoll (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_wcscoll || defined __stub___wcscoll +choke me +#endif + +int +main () +{ +return wcscoll (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_wcscoll=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_wcscoll=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5 +$as_echo "$ac_cv_func_wcscoll" >&6; } +if test "x$ac_cv_func_wcscoll" = x""yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_WCSCOLL 1 +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for wcsdup" >&5 +$as_echo_n "checking for wcsdup... " >&6; } +if test "${ac_cv_func_wcsdup+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -18201,6 +18536,113 @@ _ACEOF fi +if test "$am_cv_func_iconv" = yes; then + OLDLIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + +for ac_func in locale_charset +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + LIBS="$OLDLIBS" +fi + if test "$opt_static_link" != yes; then @@ -26020,6 +26462,9 @@ cat >>conftest.$ac_ext <<_ACEOF #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif #include _ACEOF @@ -26064,6 +26509,9 @@ cat >>conftest.$ac_ext <<_ACEOF #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif #include _ACEOF @@ -26108,6 +26556,9 @@ cat >>conftest.$ac_ext <<_ACEOF #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif _ACEOF @@ -26157,6 +26608,9 @@ cat >>conftest.$ac_ext <<_ACEOF #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif _ACEOF @@ -26201,6 +26655,9 @@ cat >>conftest.$ac_ext <<_ACEOF #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif _ACEOF @@ -26246,6 +26703,9 @@ cat >>conftest.$ac_ext <<_ACEOF #if HAVE_INTTYPES_H #include #endif +#if HAVE_STDINT_H +#include +#endif #include _ACEOF @@ -28224,6 +28684,212 @@ fi + + + + + + + + if test X$ac_cv_func_snprintf = Xyes; then + { $as_echo "$as_me:$LINENO: checking for standard-conformant snprintf" >&5 +$as_echo_n "checking for standard-conformant snprintf... " >&6; } +if test "${bash_cv_func_snprintf+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + { $as_echo "$as_me:$LINENO: WARNING: cannot check standard snprintf if cross-compiling" >&5 +$as_echo "$as_me: WARNING: cannot check standard snprintf if cross-compiling" >&2;} + bash_cv_func_snprintf=yes + +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + +main() +{ + int n; + n = snprintf (0, 0, "%s", "0123456"); + exit(n != 7); +} + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + bash_cv_func_snprintf=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +bash_cv_func_snprintf=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_snprintf" >&5 +$as_echo "$bash_cv_func_snprintf" >&6; } + if test $bash_cv_func_snprintf = no; then + ac_cv_func_snprintf=no + fi + fi + if test $ac_cv_func_snprintf = no; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SNPRINTF 0 +_ACEOF + + fi + + + + + + + + + + + if test X$ac_cv_func_vsnprintf = Xyes; then + { $as_echo "$as_me:$LINENO: checking for standard-conformant vsnprintf" >&5 +$as_echo_n "checking for standard-conformant vsnprintf... " >&6; } +if test "${bash_cv_func_vsnprintf+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + { $as_echo "$as_me:$LINENO: WARNING: cannot check standard vsnprintf if cross-compiling" >&5 +$as_echo "$as_me: WARNING: cannot check standard vsnprintf if cross-compiling" >&2;} + bash_cv_func_vsnprintf=yes + +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#if HAVE_STDARG_H +#include +#else +#include +#endif +#include +#include + +static int +#if HAVE_STDARG_H +foo(const char *fmt, ...) +#else +foo(format, va_alist) + const char *format; + va_dcl +#endif +{ + va_list args; + int n; + +#if HAVE_STDARG_H + va_start(args, fmt); +#else + va_start(args); +#endif + n = vsnprintf(0, 0, fmt, args); + va_end (args); + return n; +} + +main() +{ + int n; + n = foo("%s", "0123456"); + exit(n != 7); +} + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + bash_cv_func_vsnprintf=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +bash_cv_func_vsnprintf=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_vsnprintf" >&5 +$as_echo "$bash_cv_func_vsnprintf" >&6; } + if test $bash_cv_func_vsnprintf = no; then + ac_cv_func_vsnprintf=no + fi + fi + if test $ac_cv_func_vsnprintf = no; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_VSNPRINTF 0 +_ACEOF + + fi + + + if test "$ac_cv_func_putenv" = "yes"; then @@ -29971,7 +30637,7 @@ _ACEOF *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;; +opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE" ;; esac case "${host_os}-${CC}" in @@ -30504,7 +31170,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bash $as_me 4.0-release, which was +This file was extended by bash $as_me 4.1-release, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -30567,7 +31233,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -bash config.status 4.0-release +bash config.status 4.1-release configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index ee34c4b..843bd70 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl -dnl Configure script for bash-4.0 +dnl Configure script for bash-4.1 dnl dnl report bugs to chet@po.cwru.edu dnl @@ -21,9 +21,9 @@ dnl Process this file with autoconf to produce a configure script. # You should have received a copy of the GNU General Public License # along with this program. If not, see . -AC_REVISION([for Bash 4.0, version 4.013])dnl +AC_REVISION([for Bash 4.1, version 4.019])dnl -define(bashvers, 4.0) +define(bashvers, 4.1) define(relstatus, release) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) @@ -185,6 +185,7 @@ opt_debugger=yes opt_single_longdoc_strings=yes opt_casemod_attrs=yes opt_casemod_expansions=yes +opt_extglob_default=no dnl options that affect how bash is compiled and linked opt_static_link=no @@ -204,7 +205,7 @@ if test $opt_minimal_config = yes; then opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no opt_net_redirs=no opt_progcomp=no opt_separate_help=no opt_multibyte=yes opt_cond_regexp=no opt_coproc=no - opt_casemod_attrs=no opt_casemod_expansions=no + opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no fi AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval) @@ -223,6 +224,7 @@ AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enabl AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval) AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval) AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval) +AC_ARG_ENABLE(extended-glob-default, AC_HELP_STRING([--enable-extended-glob-default], [force extended pattern matching to be enabled by default]), opt_extglob_default=$enableval) AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval) AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval) AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval) @@ -296,6 +298,11 @@ fi if test $opt_extended_glob = yes ; then AC_DEFINE(EXTENDED_GLOB) fi +if test $opt_extglob_default = yes; then +AC_DEFINE(EXTGLOB_DEFAULT, 1) +else +AC_DEFINE(EXTGLOB_DEFAULT, 0) +fi if test $opt_cond_command = yes ; then AC_DEFINE(COND_COMMAND) fi @@ -500,8 +507,8 @@ then case "$ac_cv_rl_version" in 5*|6*|7*|8*|9*) ;; *) opt_with_installed_readline=no - AC_MSG_WARN(installed readline library is too old to be linked with bash) - AC_MSG_WARN(using private bash version) + AC_MSG_WARN([installed readline library is too old to be linked with bash]) + AC_MSG_WARN([using private bash version]) ;; esac fi @@ -651,7 +658,8 @@ BASH_HEADER_INTTYPES AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ - stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h) + stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h \ + syslog.h) AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \ sys/resource.h sys/param.h sys/socket.h sys/stat.h \ sys/time.h sys/times.h sys/types.h sys/wait.h) @@ -723,12 +731,13 @@ AC_CHECK_FUNCS(bcopy bzero confstr fnmatch \ getaddrinfo gethostbyname getservbyname getservent inet_aton \ memmove pathconf putenv raise regcomp regexec \ setenv setlinebuf setlocale setvbuf siginterrupt strchr \ - sysconf tcgetattr times ttyname tzset unsetenv) + sysconf syslog tcgetattr times ttyname tzset unsetenv) -AC_CHECK_FUNCS(vsnprintf snprintf vasprintf asprintf) +AC_CHECK_FUNCS(vasprintf asprintf) AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit) AC_CHECK_FUNCS(getpwent getpwnam getpwuid) -AC_REPLACE_FUNCS(getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr) +AC_REPLACE_FUNCS(getcwd memset) +AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr) AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax) AC_REPLACE_FUNCS(fdprintf) @@ -919,6 +928,8 @@ BASH_FUNC_GETCWD fi BASH_FUNC_POSIX_SETJMP BASH_FUNC_STRCOLL +BASH_FUNC_SNPRINTF +BASH_FUNC_VSNPRINTF dnl If putenv or unsetenv is not present, set the right define so the dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant @@ -1025,7 +1036,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; -opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE" ;; +opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE" ;; esac dnl Stanza for OS/compiler pair-specific flags diff --git a/copy_cmd.c b/copy_cmd.c index 7020c60..911d34f 100644 --- a/copy_cmd.c +++ b/copy_cmd.c @@ -113,7 +113,15 @@ copy_redirect (redirect) REDIRECT *new_redirect; new_redirect = (REDIRECT *)xmalloc (sizeof (REDIRECT)); +#if 0 FASTCOPY ((char *)redirect, (char *)new_redirect, (sizeof (REDIRECT))); +#else + *new_redirect = *redirect; /* let the compiler do the fast structure copy */ +#endif + + if (redirect->rflags & REDIR_VARASSIGN) + new_redirect->redirector.filename = copy_word (redirect->redirector.filename); + switch (redirect->instruction) { case r_reading_until: diff --git a/dispose_cmd.c b/dispose_cmd.c index 4c25ae5..c624605 100644 --- a/dispose_cmd.c +++ b/dispose_cmd.c @@ -309,6 +309,10 @@ dispose_redirects (list) { t = list; list = list->next; + + if (t->rflags & REDIR_VARASSIGN) + dispose_word (t->redirector.filename); + switch (t->instruction) { case r_reading_until: diff --git a/doc/FAQ b/doc/FAQ index 29d453a..bef8106 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,4 +1,4 @@ -This is the Bash FAQ, version 4.01, for Bash version 4.0. +This is the Bash FAQ, version 4.11, for Bash version 4.1. This document contains a set of frequently-asked questions concerning Bash, the GNU Bourne-Again Shell. Bash is a freely-available command @@ -36,9 +36,9 @@ A10) What is the bash `posix mode'? Section B: The latest version -B1) What's new in version 4.0? -B2) Are there any user-visible incompatibilities between bash-4.0, - bash-3.2, and bash-2.05b? +B1) What's new in version 4.1? +B2) Are there any user-visible incompatibilities between bash-4.1 and + previous bash versions? Section C: Differences from other Unix shells @@ -81,6 +81,7 @@ E12) Why don't negative offsets in substring expansion work like I expect? E13) Why does filename completion misbehave if a colon appears in the filename? E14) Why does quoting the pattern argument to the regular expression matching conditional operator (=~) cause matching to stop working? +E15) Tell me more about the shell compatibility level. Section F: Things to watch out for on certain Unix versions @@ -143,26 +144,26 @@ of Case Western Reserve University. A2) What's the latest version? -The latest version is 4.0, first made available on 20 February, 2009. +The latest version is 4.1, first made available on 31 December, 2009. A3) Where can I get it? Bash is the GNU project's shell, and so is available from the master GNU archive site, ftp.gnu.org, and its mirrors. The latest version is also available for FTP from ftp.cwru.edu. -The following URLs tell how to get version 4.0: +The following URLs tell how to get version 4.1: -ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0.tar.gz -ftp://ftp.cwru.edu/pub/bash/bash-4.0.tar.gz +ftp://ftp.gnu.org/pub/gnu/bash/bash-4.1.tar.gz +ftp://ftp.cwru.edu/pub/bash/bash-4.1.tar.gz Formatted versions of the documentation are available with the URLs: -ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-4.0.tar.gz -ftp://ftp.cwru.edu/pub/bash/bash-doc-4.0.tar.gz +ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-4.1.tar.gz +ftp://ftp.cwru.edu/pub/bash/bash-doc-4.1.tar.gz Any patches for the current version are available with the URL: -ftp://ftp.cwru.edu/pub/bash/bash-4.0-patches/ +ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/ A4) On what machines will bash run? @@ -194,7 +195,7 @@ http://www.cygwin.com/. Cygnus originally ported bash-1.14.7, and that port was part of their early GNU-Win32 (the original name) releases. Cygnus has also done -ports of bash-2.05b and bash-3.2 to the CYGWIN environment, and both +ports of bash-3.2 and bash-4.0 to the CYGWIN environment, and both are available as part of their current release. Bash-2.05b and later versions should require no local Cygnus changes to @@ -218,7 +219,7 @@ Mark began to work with bash-2.05, but I don't know the current status. Bash-3.0 compiles and runs with no modifications under Microsoft's Services for Unix (SFU), once known as Interix. I do not anticipate any problems -with building bash-4.0, but will gladly accept any patches that are needed. +with building bash-4.1, but will gladly accept any patches that are needed. A6) How can I build bash with gcc? @@ -387,16 +388,124 @@ They are also listed in a section in the Bash Reference Manual Section B: The latest version -B1) What's new in version 4.0? +B1) What's new in version 4.1? -Bash-4.0 is the fourth major release of bash. There are numerous new features, -some experimental. Depending on community reception, the experimental -features will evolve. +Bash-4.1 is the first revision to the fourth major release of bash. -Bash-4.0 contains the following new features (see the manual page for -complete descriptions and the CHANGES and NEWS files in the bash-4.0 +Bash-4.1 contains the following new features (see the manual page for +complete descriptions and the CHANGES and NEWS files in the bash-4.1 distribution): +o Here-documents within $(...) command substitutions may once more be + delimited by the closing right paren, instead of requiring a newline. + +o Bash's file status checks (executable, readable, etc.) now take file + system ACLs into account on file systems that support them. + +o Bash now passes environment variables with names that are not valid + shell variable names through into the environment passed to child + processes. + +o The `execute-unix-command' readline function now attempts to clear and + reuse the current line rather than move to a new one after the command + executes. + +o `printf -v' can now assign values to array indices. + +o New `complete -E' and `compopt -E' options that work on the "empty" + completion: completion attempted on an empty command line. + +o New complete/compgen/compopt -D option to define a `default' completion: + a completion to be invoked on command for which no completion has been + defined. If this function returns 124, programmable completion is + attempted again, allowing a user to dynamically build a set of completions + as completion is attempted by having the default completion function + install individual completion functions each time it is invoked. + +o When displaying associative arrays, subscripts are now quoted. + +o Changes to dabbrev-expand to make it more `emacs-like': no space appended + after matches, completions are not sorted, and most recent history entries + are presented first. + +o The [[ and (( commands are now subject to the setting of `set -e' and the + ERR trap. + +o The source/. builtin now removes NUL bytes from the file before attempting + to parse commands. + +o There is a new configuration option (in config-top.h) that forces bash to + forward all history entries to syslog. + +o A new variable $BASHOPTS to export shell options settable using `shopt' to + child processes. + +o There is a new confgure option that forces the extglob option to be + enabled by default. + +o New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace + output to that file descriptor. + +o If the optional left-hand-side of a redirection is of the form {var}, the + shell assigns the file descriptor used to $var or uses $var as the file + descriptor to move or close, depending on the redirection operator. + +o The < and > operators to the [[ conditional command now do string + comparison according to the current locale. + +o Programmable completion now uses the completion for `b' instead of `a' + when completion is attempted on a line like: a $(b c. + +o Force extglob on temporarily when parsing the pattern argument to + the == and != operators to the [[ command, for compatibility. + +o Changed the behavior of interrupting the wait builtin when a SIGCHLD is + received and a trap on SIGCHLD is set to be Posix-mode only. + +o The read builtin has a new `-N nchars' option, which reads exactly NCHARS + characters, ignoring delimiters like newline. + +o The mapfile/readarray builtin no longer stores the commands it invokes via + callbacks in the history list. + +o There is a new `compat40' shopt option. + +o The < and > operators to [[ do string comparisons using the current locale + only if the compatibility level is greater than 40 (set to 41 by default). + +o New bindable readline function: menu-complete-backward. + +o In the readline vi-mode insertion keymap, C-n is now bound to menu-complete + by default, and C-p to menu-complete-backward. + +o When in readline vi command mode, repeatedly hitting ESC now does nothing, + even when ESC introduces a bound key sequence. This is closer to how + historical vi behaves. + +o New bindable readline function: skip-csi-sequence. Can be used as a + default to consume key sequences generated by keys like Home and End + without having to bind all keys. + +o New bindable readline variable: skip-completed-text, active when + completing in the middle of a word. If enabled, it means that characters + in the completion that match characters in the remainder of the word are + "skipped" rather than inserted into the line. + +o The pre-readline-6.0 version of menu completion is available as + "old-menu-complete" for users who do not like the readline-6.0 version. + +o New bindable readline variable: echo-control-characters. If enabled, and + the tty ECHOCTL bit is set, controls the echoing of characters + corresponding to keyboard-generated signals. + +o New bindable readline variable: enable-meta-key. Controls whether or not + readline sends the smm/rmm sequences if the terminal indicates it has a + meta key that enables eight-bit characters. + +A short feature history dating from Bash-2.0: + +Bash-4.0 contained the following new features: + o When using substring expansion on the positional parameters, a starting index of 0 now causes $0 to be prefixed to the list. @@ -536,8 +645,6 @@ o New bindable readline functions shell-backward-kill-word and shell-kill-word which kill words backward and forward, but use the same word boundaries as shell-forward-word and shell-backward-word. -A short feature history dating from Bash-2.0: - Bash-3.2 contained the following new features: o Bash-3.2 now checks shell scripts for NUL characters rather than non-printing @@ -794,13 +901,14 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone) lots of code now smaller and faster test suite greatly expanded -B2) Are there any user-visible incompatibilities between bash-4.0, bash-3.2, - and bash-2.05b? +B2) Are there any user-visible incompatibilities between bash-4.1 and + previous bash versions? -There are a few incompatibilities between version 4.0 and version 3.2. -They are detailed in the file COMPAT in the bash distribution. That file -is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org -if if you find something that's not mentioned there. +There are a few incompatibilities between version 4.1 and previous +versions. They are detailed in the file COMPAT in the bash distribution. +That file is not meant to be all-encompassing; send mail to +bash-maintainers@gnu.org (or bug-bash@gnu.org if you would like +community discussion) if if you find something that's not mentioned there. Section C: Differences from other Unix shells @@ -837,7 +945,7 @@ Things bash has that sh does not: HISTFILESIZE, HISTCONTROL, HISTIGNORE, GLOBIGNORE, GROUPS, PROMPT_COMMAND, FCEDIT, FIGNORE, IGNOREEOF, INPUTRC, SHELLOPTS, OPTERR, HOSTFILE, TMOUT, FUNCNAME, histchars, - auto_resume, PROMPT_DIRTRIM + auto_resume, PROMPT_DIRTRIM, BASHOPTS, BASH_XTRACEFD DEBUG trap ERR trap variable arrays with new compound assignment syntax @@ -848,7 +956,7 @@ Things bash has that sh does not: bash return builtin will exit a file sourced with `.' builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t. export -n/-f/-p/name=value, pwd -L/-P, - read -e/-p/-a/-t/-n/-d/-s/-u/-i, + read -e/-p/-a/-t/-n/-d/-s/-u/-i/-N, readonly -a/-f/name=value, trap -l, set +o, set -b/-m/-o option/-h/-p/-B/-C/-H/-P, unset -f/-v, ulimit -i/-m/-p/-q/-u/-x, @@ -894,6 +1002,7 @@ Things bash has that sh does not: case-modifying word expansions and variable attributes associative arrays coprocesses using the `coproc' reserved word and variables + shell assignment of a file descriptor used in a redirection to a variable Things sh has that bash does not: uses variable SHACCT to do shell accounting @@ -950,7 +1059,7 @@ Things bash has or uses that ksh88 does not: builtins: bind, builtin, command, declare, dirs, echo -e/-E, enable, exec -l/-c/-a, fc -s, export -n/-f/-p, hash, help, history, jobs -x/-r/-s, kill -s/-n/-l, local, logout, popd, pushd, - read -e/-p/-a/-t/-n/-d/-s, readonly -a/-n/-f/-p, + read -e/-p/-a/-t/-n/-d/-s/-N, readonly -a/-n/-f/-p, set -o braceexpand/-o histexpand/-o interactive-comments/ -o notify/-o physical/-o posix/-o hashall/-o onecmd/ -h/-B/-C/-b/-H/-P, set +o, suspend, trap -l, type, @@ -979,6 +1088,7 @@ Things bash has or uses that ksh88 does not: case-modifying word expansions and variable attributes associative arrays coprocesses using the `coproc' reserved word and variables + shell assignment of a file descriptor used in a redirection to a variable Things ksh88 has or uses that bash does not: tracked aliases (alias -t) @@ -1006,9 +1116,9 @@ Implementation differences: C3) Which new features in ksh-93 are not in bash, and which are? -This list is current through ksh93t (11/04/2008) +This list is current through ksh93t+ (05/05/2009) -New things in ksh-93 not in bash-4.0: +New things in ksh-93 not in bash-4.1: floating point arithmetic and variables math library functions ${!name[sub]} name of subscript for associative array @@ -1031,10 +1141,11 @@ New things in ksh-93 not in bash-4.0: `.' can execute shell functions getopts -a printf %B, %H, %P, %R, %T, %Z modifiers, output base for %d, `=' flag - read -N (read -n differs, too)/-v + read -n/-N differ/-v set -o showme/-o multiline (bash default) `sleep' and `getconf' builtins (bash has loadable versions) typeset -n and `nameref' variables + [[ -R name ]] (checks whether or not name is a nameref) typeset -C/-S/-T/-X/-h/-s experimental `type' definitions (a la typedef) using typeset negative subscripts for indexed array variables @@ -1042,11 +1153,11 @@ New things in ksh-93 not in bash-4.0: associative array assignments using `;' as element separator command substitution $(n<#) expands to current byte offset for fd N new '${ ' form of command substitution, executed in current shell - new >;/<#pat/<##pat/<#/># redirections - redirection operators preceded with {varname} to store fd number in varname + new >;/<>;/<#pat/<##pat/<#/># redirections brace expansion printf-like formats + [[ -v var ]] operators (checks whether or not var is set) -New things in ksh-93 present in bash-4.0: +New things in ksh-93 present in bash-4.1: associative arrays [n]<&word- and [n]>&word- redirections (combination dup and close) for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command @@ -1080,6 +1191,8 @@ New things in ksh-93 present in bash-4.0: the `;&' case statement "fallthrough" pattern list terminator csh-style history expansion and set -H negative offsets in ${param:offset:length} + redirection operators preceded with {varname} to store fd number in varname + DEBUG can force skipping following command Section D: Why does bash do some things differently than other Unix shells? @@ -1641,6 +1754,32 @@ several options to the `shopt' builtin. If the `compat31' option is enabled, bash reverts to the bash-3.1 behavior with respect to quoting the rhs of the =~ operator. +E15) Tell me more about the shell compatibility level. + +Bash-4.0 introduced the concept of a `shell compatibility level', specified +as a set of options to the shopt builtin (compat31, compat32, compat40 at +this writing). There is only one current compatibility level -- each +option is mutually exclusive. This list does not mention behavior that is +standard for a particular version (e.g., setting compat32 means that quoting +the rhs of the regexp matching operator quotes special regexp characters in +the word, which is default behavior in bash-3.2 and above). + +compat31 set + - the < and > operators to the [[ command do not consider the current + locale when comparing strings + - quoting the rhs of the regexp matching operator (=~) has no + special effect + +compat32 set + - the < and > operators to the [[ command do not consider the current + locale when comparing strings + +compat40 set + - the < and > operators to the [[ command do not consider the current + locale when comparing strings + - interrupting a command list such as "a ; b ; c" causes the execution + of the entire list to be aborted + Section F: Things to watch out for on certain Unix versions F1) Why can't I use command line editing in my `cmdtool'? @@ -2049,9 +2188,9 @@ Some of the new ksh93 pattern matching operators, like backreferencing H5) When will the next release appear? -The next version will appear sometime in 2009. Never make predictions. +The next version will appear sometime in 2010. Never make predictions. -This document is Copyright 1995-2009 by Chester Ramey. +This document is Copyright 1995-2010 by Chester Ramey. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, and distribute diff --git a/doc/Makefile.in b/doc/Makefile.in index 2bbfc3c..3e0e68b 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -94,7 +94,7 @@ GROFF = groff HSUSER = $(RL_LIBDIR)/doc/hsuser.texi RLUSER = $(RL_LIBDIR)/doc/rluser.texi -BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/version.texi +BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/fdl.texi $(srcdir)/version.texi .SUFFIXES: .0 .1 .3 .ms .ps .txt .dvi .html .pdf diff --git a/doc/bash.0 b/doc/bash.0 index 82ef065..675cd2f 100644 --- a/doc/bash.0 +++ b/doc/bash.0 @@ -196,22 +196,23 @@ IINNVVOOCCAATTIIOONN If the shell is started with the effective user (group) id not equal to the real user (group) id, and the --pp option is not supplied, no startup files are read, shell functions are not inherited from the environment, - the SSHHEELLLLOOPPTTSS variable, if it appears in the environment, is ignored, - and the effective user id is set to the real user id. If the --pp option - is supplied at invocation, the startup behavior is the same, but the - effective user id is not reset. + the SSHHEELLLLOOPPTTSS, BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they + appear in the environment, are ignored, and the effective user id is + set to the real user id. If the --pp option is supplied at invocation, + the startup behavior is the same, but the effective user id is not + reset. DDEEFFIINNIITTIIOONNSS - The following definitions are used throughout the rest of this docu- + The following definitions are used throughout the rest of this docu- ment. bbllaannkk A space or tab. - wwoorrdd A sequence of characters considered as a single unit by the + wwoorrdd A sequence of characters considered as a single unit by the shell. Also known as a ttookkeenn. - nnaammee A _w_o_r_d consisting only of alphanumeric characters and under- - scores, and beginning with an alphabetic character or an under- + nnaammee A _w_o_r_d consisting only of alphanumeric characters and under- + scores, and beginning with an alphabetic character or an under- score. Also referred to as an iiddeennttiiffiieerr. mmeettaacchhaarraacctteerr - A character that, when unquoted, separates words. One of the + A character that, when unquoted, separates words. One of the following: || && ;; (( )) << >> ssppaaccee ttaabb ccoonnttrrooll ooppeerraattoorr @@ -222,81 +223,81 @@ DDEEFFIINNIITTIIOONNSS RREESSEERRVVEEDD WWOORRDDSS _R_e_s_e_r_v_e_d _w_o_r_d_s are words that have a special meaning to the shell. The following words are recognized as reserved when unquoted and either the - first word of a simple command (see SSHHEELLLL GGRRAAMMMMAARR below) or the third + first word of a simple command (see SSHHEELLLL GGRRAAMMMMAARR below) or the third word of a ccaassee or ffoorr command: - !! ccaassee ddoo ddoonnee eelliiff eellssee eessaacc ffii ffoorr ffuunnccttiioonn iiff iinn sseelleecctt tthheenn uunnttiill + !! ccaassee ddoo ddoonnee eelliiff eellssee eessaacc ffii ffoorr ffuunnccttiioonn iiff iinn sseelleecctt tthheenn uunnttiill wwhhiillee {{ }} ttiimmee [[[[ ]]]] SSHHEELLLL GGRRAAMMMMAARR SSiimmppllee CCoommmmaannddss - A _s_i_m_p_l_e _c_o_m_m_a_n_d is a sequence of optional variable assignments fol- - lowed by bbllaannkk-separated words and redirections, and terminated by a + A _s_i_m_p_l_e _c_o_m_m_a_n_d is a sequence of optional variable assignments fol- + lowed by bbllaannkk-separated words and redirections, and terminated by a _c_o_n_t_r_o_l _o_p_e_r_a_t_o_r. The first word specifies the command to be executed, - and is passed as argument zero. The remaining words are passed as + and is passed as argument zero. The remaining words are passed as arguments to the invoked command. - The return value of a _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or 128+_n if + The return value of a _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or 128+_n if the command is terminated by signal _n. PPiippeelliinneess - A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by one of + A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by one of the control operators || or ||&&. The format for a pipeline is: [ttiimmee [--pp]] [ ! ] _c_o_m_m_a_n_d [ [|||||&&] _c_o_m_m_a_n_d_2 ... ] - The standard output of _c_o_m_m_a_n_d is connected via a pipe to the standard - input of _c_o_m_m_a_n_d_2. This connection is performed before any redirec- + The standard output of _c_o_m_m_a_n_d is connected via a pipe to the standard + input of _c_o_m_m_a_n_d_2. This connection is performed before any redirec- tions specified by the command (see RREEDDIIRREECCTTIIOONN below). If ||&& is used, the standard error of _c_o_m_m_a_n_d is connected to _c_o_m_m_a_n_d_2's standard input - through the pipe; it is shorthand for 22>>&&11 ||. This implicit redirect- + through the pipe; it is shorthand for 22>>&&11 ||. This implicit redirect- ion of the standard error is performed after any redirections specified by the command. The return status of a pipeline is the exit status of the last command, - unless the ppiippeeffaaiill option is enabled. If ppiippeeffaaiill is enabled, the - pipeline's return status is the value of the last (rightmost) command - to exit with a non-zero status, or zero if all commands exit success- + unless the ppiippeeffaaiill option is enabled. If ppiippeeffaaiill is enabled, the + pipeline's return status is the value of the last (rightmost) command + to exit with a non-zero status, or zero if all commands exit success- fully. If the reserved word !! precedes a pipeline, the exit status of - that pipeline is the logical negation of the exit status as described - above. The shell waits for all commands in the pipeline to terminate + that pipeline is the logical negation of the exit status as described + above. The shell waits for all commands in the pipeline to terminate before returning a value. - If the ttiimmee reserved word precedes a pipeline, the elapsed as well as - user and system time consumed by its execution are reported when the - pipeline terminates. The --pp option changes the output format to that - specified by POSIX. The TTIIMMEEFFOORRMMAATT variable may be set to a format - string that specifies how the timing information should be displayed; + If the ttiimmee reserved word precedes a pipeline, the elapsed as well as + user and system time consumed by its execution are reported when the + pipeline terminates. The --pp option changes the output format to that + specified by POSIX. The TTIIMMEEFFOORRMMAATT variable may be set to a format + string that specifies how the timing information should be displayed; see the description of TTIIMMEEFFOORRMMAATT under SShheellll VVaarriiaabblleess below. - Each command in a pipeline is executed as a separate process (i.e., in + Each command in a pipeline is executed as a separate process (i.e., in a subshell). LLiissttss - A _l_i_s_t is a sequence of one or more pipelines separated by one of the + A _l_i_s_t is a sequence of one or more pipelines separated by one of the operators ;;, &&, &&&&, or ||||, and optionally terminated by one of ;;, &&, or <>. Of these list operators, &&&& and |||| have equal precedence, followed by ;; and &&, which have equal precedence. - A sequence of one or more newlines may appear in a _l_i_s_t instead of a + A sequence of one or more newlines may appear in a _l_i_s_t instead of a semicolon to delimit commands. - If a command is terminated by the control operator &&, the shell exe- - cutes the command in the _b_a_c_k_g_r_o_u_n_d in a subshell. The shell does not - wait for the command to finish, and the return status is 0. Commands - separated by a ;; are executed sequentially; the shell waits for each - command to terminate in turn. The return status is the exit status of + If a command is terminated by the control operator &&, the shell exe- + cutes the command in the _b_a_c_k_g_r_o_u_n_d in a subshell. The shell does not + wait for the command to finish, and the return status is 0. Commands + separated by a ;; are executed sequentially; the shell waits for each + command to terminate in turn. The return status is the exit status of the last command executed. - AND and OR lists are sequences of one of more pipelines separated by - the &&&& and |||| control operators, respectively. AND and OR lists are + AND and OR lists are sequences of one of more pipelines separated by + the &&&& and |||| control operators, respectively. AND and OR lists are executed with left associativity. An AND list has the form _c_o_m_m_a_n_d_1 &&&& _c_o_m_m_a_n_d_2 - _c_o_m_m_a_n_d_2 is executed if, and only if, _c_o_m_m_a_n_d_1 returns an exit status + _c_o_m_m_a_n_d_2 is executed if, and only if, _c_o_m_m_a_n_d_1 returns an exit status of zero. An OR list has the form @@ -304,46 +305,49 @@ SSHHEELLLL GGRRAAMMMMAARR _c_o_m_m_a_n_d_1 |||| _c_o_m_m_a_n_d_2 - _c_o_m_m_a_n_d_2 is executed if and only if _c_o_m_m_a_n_d_1 returns a non-zero exit - status. The return status of AND and OR lists is the exit status of + _c_o_m_m_a_n_d_2 is executed if and only if _c_o_m_m_a_n_d_1 returns a non-zero exit + status. The return status of AND and OR lists is the exit status of the last command executed in the list. CCoommppoouunndd CCoommmmaannddss A _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d is one of the following: - (_l_i_s_t) _l_i_s_t is executed in a subshell environment (see CCOOMMMMAANNDD EEXXEECCUU-- - TTIIOONN EENNVVIIRROONNMMEENNTT below). Variable assignments and builtin com- - mands that affect the shell's environment do not remain in - effect after the command completes. The return status is the + (_l_i_s_t) _l_i_s_t is executed in a subshell environment (see CCOOMMMMAANNDD EEXXEECCUU-- + TTIIOONN EENNVVIIRROONNMMEENNTT below). Variable assignments and builtin com- + mands that affect the shell's environment do not remain in + effect after the command completes. The return status is the exit status of _l_i_s_t. { _l_i_s_t; } - _l_i_s_t is simply executed in the current shell environment. _l_i_s_t - must be terminated with a newline or semicolon. This is known - as a _g_r_o_u_p _c_o_m_m_a_n_d. The return status is the exit status of - _l_i_s_t. Note that unlike the metacharacters (( and )), {{ and }} are + _l_i_s_t is simply executed in the current shell environment. _l_i_s_t + must be terminated with a newline or semicolon. This is known + as a _g_r_o_u_p _c_o_m_m_a_n_d. The return status is the exit status of + _l_i_s_t. Note that unlike the metacharacters (( and )), {{ and }} are _r_e_s_e_r_v_e_d _w_o_r_d_s and must occur where a reserved word is permitted - to be recognized. Since they do not cause a word break, they - must be separated from _l_i_s_t by whitespace or another shell + to be recognized. Since they do not cause a word break, they + must be separated from _l_i_s_t by whitespace or another shell metacharacter. ((_e_x_p_r_e_s_s_i_o_n)) - The _e_x_p_r_e_s_s_i_o_n is evaluated according to the rules described - below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If the value of the expres- - sion is non-zero, the return status is 0; otherwise the return + The _e_x_p_r_e_s_s_i_o_n is evaluated according to the rules described + below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If the value of the expres- + sion is non-zero, the return status is 0; otherwise the return status is 1. This is exactly equivalent to lleett ""_e_x_p_r_e_s_s_i_o_n"". [[[[ _e_x_p_r_e_s_s_i_o_n ]]]] - Return a status of 0 or 1 depending on the evaluation of the - conditional expression _e_x_p_r_e_s_s_i_o_n. Expressions are composed of - the primaries described below under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. - Word splitting and pathname expansion are not performed on the - words between the [[[[ and ]]]]; tilde expansion, parameter and - variable expansion, arithmetic expansion, command substitution, - process substitution, and quote removal are performed. Condi- + Return a status of 0 or 1 depending on the evaluation of the + conditional expression _e_x_p_r_e_s_s_i_o_n. Expressions are composed of + the primaries described below under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. + Word splitting and pathname expansion are not performed on the + words between the [[[[ and ]]]]; tilde expansion, parameter and + variable expansion, arithmetic expansion, command substitution, + process substitution, and quote removal are performed. Condi- tional operators such as --ff must be unquoted to be recognized as primaries. + When used with [[[[, The << and >> operators sort lexicographically + using the current locale. + When the ==== and !!== operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below under PPaatttteerrnn MMaattcchhiinngg. If the shell @@ -387,7 +391,7 @@ SSHHEELLLL GGRRAAMMMMAARR of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of the entire conditional expression. - ffoorr _n_a_m_e [ iinn _w_o_r_d ] ; ddoo _l_i_s_t ; ddoonnee + ffoorr _n_a_m_e [ [ iinn [ _w_o_r_d _._._. ] ] ; ] ddoo _l_i_s_t ; ddoonnee The list of words following iinn is expanded, generating a list of items. The variable _n_a_m_e is set to each element of this list in turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit- @@ -568,7 +572,8 @@ QQUUOOTTIINNGG as follows: \\aa alert (bell) \\bb backspace - \\ee an escape character + \\ee + \\EE an escape character \\ff form feed \\nn new line \\rr carriage return @@ -576,6 +581,7 @@ QQUUOOTTIINNGG \\vv vertical tab \\\\ backslash \\'' single quote + \\"" double quote \\_n_n_n the eight-bit character whose value is the octal value _n_n_n (one to three digits) \\xx_H_H the eight-bit character whose value is the hexadecimal @@ -585,10 +591,10 @@ QQUUOOTTIINNGG The expanded result is single-quoted, as if the dollar sign had not been present. - A double-quoted string preceded by a dollar sign ($$) will cause the - string to be translated according to the current locale. If the cur- - rent locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the string - is translated and replaced, the replacement is double-quoted. + A double-quoted string preceded by a dollar sign ($$"_s_t_r_i_n_g") will cause + the string to be translated according to the current locale. If the + current locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the + string is translated and replaced, the replacement is double-quoted. PPAARRAAMMEETTEERRSS A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num- @@ -692,6 +698,14 @@ PPAARRAAMMEETTEERRSS BBAASSHH Expands to the full file name used to invoke this instance of bbaasshh. + BBAASSHHOOPPTTSS + A colon-separated list of enabled shell options. Each word in + the list is a valid argument for the --ss option to the sshhoopptt + builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The options + appearing in BBAASSHHOOPPTTSS are those reported as _o_n by sshhoopptt. If + this variable is in the environment when bbaasshh starts up, each + shell option in the list will be enabled before reading any + startup files. This variable is read-only. BBAASSHHPPIIDD Expands to the process id of the current bbaasshh process. This differs from $$$$ under certain circumstances, such as subshells @@ -738,8 +752,8 @@ PPAARRAAMMEETTEERRSS $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}} is the line number in the source file where $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called (or $${{BBAASSHH__LLIINNEENNOO[[_$_i_-_1]]}} if refer- enced within another shell function). The corresponding source - file name is $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}}.. UUssee LLIINNEENNOO ttoo oobbttaaiinn tthhee ccuurr-- - rreenntt lliinnee nnuummbbeerr.. + file name is $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}}. Use LLIINNEENNOO to obtain the cur- + rent line number. BBAASSHH__RREEMMAATTCCHH An array variable whose members are assigned by the ==~~ binary operator to the [[[[ conditional command. The element with index @@ -805,18 +819,18 @@ PPAARRAAMMEETTEERRSS below). CCOOMMPP__WWOORRDDBBRREEAAKKSS - The set of characters that the Readline library treats as word + The set of characters that the rreeaaddlliinnee library treats as word separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS is unset, it loses its special properties, even if it is subse- quently reset. CCOOMMPP__WWOORRDDSS An array variable (see AArrrraayyss below) consisting of the individ- - ual words in the current command line. The words are split on - shell metacharacters as the shell parser would separate them. - This variable is available only in shell functions invoked by - the programmable completion facilities (see PPrrooggrraammmmaabbllee CCoommppllee-- - ttiioonn below). + ual words in the current command line. The line is split into + words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as + described above. This variable is available only in shell func- + tions invoked by the programmable completion facilities (see + PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). DDIIRRSSTTAACCKK An array variable (see AArrrraayyss below) containing the current con- @@ -938,195 +952,204 @@ PPAARRAAMMEETTEERRSS list of directories in which the shell looks for destination directories specified by the ccdd command. A sample value is ".:~:/usr". + BBAASSHH__XXTTRRAACCEEFFDD + If set to an integer corresponding to a valid file descriptor, + bbaasshh will write the trace output generated when _s_e_t _-_x is + enabled to that file descriptor. The file descriptor is closed + when BBAASSHH__XXTTRRAACCEEFFDD is unset or assigned a new value. Unsetting + BBAASSHH__XXTTRRAACCEEFFDD or assigning it the empty string causes the trace + output to be sent to the standard error. Note that setting + BBAASSHH__XXTTRRAACCEEFFDD to 2 (the standard error file descriptor) and then + unsetting it will result in the standard error being closed. CCOOLLUUMMNNSS - Used by the sseelleecctt builtin command to determine the terminal - width when printing selection lists. Automatically set upon + Used by the sseelleecctt builtin command to determine the terminal + width when printing selection lists. Automatically set upon receipt of a SIGWINCH. CCOOMMPPRREEPPLLYY An array variable from which bbaasshh reads the possible completions - generated by a shell function invoked by the programmable com- + generated by a shell function invoked by the programmable com- pletion facility (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). - EEMMAACCSS If bbaasshh finds this variable in the environment when the shell - starts with value "t", it assumes that the shell is running in + EEMMAACCSS If bbaasshh finds this variable in the environment when the shell + starts with value "t", it assumes that the shell is running in an emacs shell buffer and disables line editing. FFCCEEDDIITT The default editor for the ffcc builtin command. FFIIGGNNOORREE - A colon-separated list of suffixes to ignore when performing + A colon-separated list of suffixes to ignore when performing filename completion (see RREEAADDLLIINNEE below). A filename whose suf- - fix matches one of the entries in FFIIGGNNOORREE is excluded from the + fix matches one of the entries in FFIIGGNNOORREE is excluded from the list of matched filenames. A sample value is ".o:~". GGLLOOBBIIGGNNOORREE A colon-separated list of patterns defining the set of filenames to be ignored by pathname expansion. If a filename matched by a - pathname expansion pattern also matches one of the patterns in + pathname expansion pattern also matches one of the patterns in GGLLOOBBIIGGNNOORREE, it is removed from the list of matches. HHIISSTTCCOONNTTRROOLL - A colon-separated list of values controlling how commands are - saved on the history list. If the list of values includes - _i_g_n_o_r_e_s_p_a_c_e, lines which begin with a ssppaaccee character are not - saved in the history list. A value of _i_g_n_o_r_e_d_u_p_s causes lines + A colon-separated list of values controlling how commands are + saved on the history list. If the list of values includes + _i_g_n_o_r_e_s_p_a_c_e, lines which begin with a ssppaaccee character are not + saved in the history list. A value of _i_g_n_o_r_e_d_u_p_s causes lines matching the previous history entry to not be saved. A value of _i_g_n_o_r_e_b_o_t_h is shorthand for _i_g_n_o_r_e_s_p_a_c_e and _i_g_n_o_r_e_d_u_p_s. A value of _e_r_a_s_e_d_u_p_s causes all previous lines matching the current line - to be removed from the history list before that line is saved. - Any value not in the above list is ignored. If HHIISSTTCCOONNTTRROOLL is - unset, or does not include a valid value, all lines read by the + to be removed from the history list before that line is saved. + Any value not in the above list is ignored. If HHIISSTTCCOONNTTRROOLL is + unset, or does not include a valid value, all lines read by the shell parser are saved on the history list, subject to the value - of HHIISSTTIIGGNNOORREE. The second and subsequent lines of a multi-line - compound command are not tested, and are added to the history + of HHIISSTTIIGGNNOORREE. The second and subsequent lines of a multi-line + compound command are not tested, and are added to the history regardless of the value of HHIISSTTCCOONNTTRROOLL. HHIISSTTFFIILLEE The name of the file in which command history is saved (see HHIISS-- - TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset, - the command history is not saved when an interactive shell + TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset, + the command history is not saved when an interactive shell exits. HHIISSTTFFIILLEESSIIZZEE The maximum number of lines contained in the history file. When - this variable is assigned a value, the history file is trun- - cated, if necessary, by removing the oldest entries, to contain - no more than that number of lines. The default value is 500. + this variable is assigned a value, the history file is trun- + cated, if necessary, by removing the oldest entries, to contain + no more than that number of lines. The default value is 500. The history file is also truncated to this size after writing it when an interactive shell exits. HHIISSTTIIGGNNOORREE - A colon-separated list of patterns used to decide which command - lines should be saved on the history list. Each pattern is - anchored at the beginning of the line and must match the com- - plete line (no implicit `**' is appended). Each pattern is - tested against the line after the checks specified by HHIISSTTCCOONN-- - TTRROOLL are applied. In addition to the normal shell pattern + A colon-separated list of patterns used to decide which command + lines should be saved on the history list. Each pattern is + anchored at the beginning of the line and must match the com- + plete line (no implicit `**' is appended). Each pattern is + tested against the line after the checks specified by HHIISSTTCCOONN-- + TTRROOLL are applied. In addition to the normal shell pattern matching characters, `&&' matches the previous history line. `&&' - may be escaped using a backslash; the backslash is removed + may be escaped using a backslash; the backslash is removed before attempting a match. The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of HHIISSTTIIGGNNOORREE. HHIISSTTSSIIZZEE - The number of commands to remember in the command history (see + The number of commands to remember in the command history (see HHIISSTTOORRYY below). The default value is 500. HHIISSTTTTIIMMEEFFOORRMMAATT - If this variable is set and not null, its value is used as a + If this variable is set and not null, its value is used as a format string for _s_t_r_f_t_i_m_e(3) to print the time stamp associated - with each history entry displayed by the hhiissttoorryy builtin. If - this variable is set, time stamps are written to the history - file so they may be preserved across shell sessions. This uses - the history comment character to distinguish timestamps from + with each history entry displayed by the hhiissttoorryy builtin. If + this variable is set, time stamps are written to the history + file so they may be preserved across shell sessions. This uses + the history comment character to distinguish timestamps from other history lines. HHOOMMEE The home directory of the current user; the default argument for the ccdd builtin command. The value of this variable is also used when performing tilde expansion. HHOOSSTTFFIILLEE - Contains the name of a file in the same format as _/_e_t_c_/_h_o_s_t_s + Contains the name of a file in the same format as _/_e_t_c_/_h_o_s_t_s that should be read when the shell needs to complete a hostname. - The list of possible hostname completions may be changed while - the shell is running; the next time hostname completion is - attempted after the value is changed, bbaasshh adds the contents of - the new file to the existing list. If HHOOSSTTFFIILLEE is set, but has - no value, bbaasshh attempts to read _/_e_t_c_/_h_o_s_t_s to obtain the list of - possible hostname completions. When HHOOSSTTFFIILLEE is unset, the - hostname list is cleared. - IIFFSS The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word splitting - after expansion and to split lines into words with the rreeaadd + The list of possible hostname completions may be changed while + the shell is running; the next time hostname completion is + attempted after the value is changed, bbaasshh adds the contents of + the new file to the existing list. If HHOOSSTTFFIILLEE is set, but has + no value, or does not name a readable file, bbaasshh attempts to + read _/_e_t_c_/_h_o_s_t_s to obtain the list of possible hostname comple- + tions. When HHOOSSTTFFIILLEE is unset, the hostname list is cleared. + IIFFSS The _I_n_t_e_r_n_a_l _F_i_e_l_d _S_e_p_a_r_a_t_o_r that is used for word splitting + after expansion and to split lines into words with the rreeaadd builtin command. The default value is ``''. IIGGNNOORREEEEOOFF Controls the action of an interactive shell on receipt of an EEOOFF character as the sole input. If set, the value is the number of - consecutive EEOOFF characters which must be typed as the first - characters on an input line before bbaasshh exits. If the variable - exists but does not have a numeric value, or has no value, the - default value is 10. If it does not exist, EEOOFF signifies the + consecutive EEOOFF characters which must be typed as the first + characters on an input line before bbaasshh exits. If the variable + exists but does not have a numeric value, or has no value, the + default value is 10. If it does not exist, EEOOFF signifies the end of input to the shell. IINNPPUUTTRRCC - The filename for the rreeaaddlliinnee startup file, overriding the + The filename for the rreeaaddlliinnee startup file, overriding the default of _~_/_._i_n_p_u_t_r_c (see RREEAADDLLIINNEE below). - LLAANNGG Used to determine the locale category for any category not + LLAANNGG Used to determine the locale category for any category not specifically selected with a variable starting with LLCC__. - LLCC__AALLLL This variable overrides the value of LLAANNGG and any other LLCC__ + LLCC__AALLLL This variable overrides the value of LLAANNGG and any other LLCC__ variable specifying a locale category. LLCC__CCOOLLLLAATTEE - This variable determines the collation order used when sorting - the results of pathname expansion, and determines the behavior - of range expressions, equivalence classes, and collating + This variable determines the collation order used when sorting + the results of pathname expansion, and determines the behavior + of range expressions, equivalence classes, and collating sequences within pathname expansion and pattern matching. LLCC__CCTTYYPPEE - This variable determines the interpretation of characters and - the behavior of character classes within pathname expansion and + This variable determines the interpretation of characters and + the behavior of character classes within pathname expansion and pattern matching. LLCC__MMEESSSSAAGGEESS - This variable determines the locale used to translate double- + This variable determines the locale used to translate double- quoted strings preceded by a $$. LLCC__NNUUMMEERRIICC - This variable determines the locale category used for number + This variable determines the locale category used for number formatting. - LLIINNEESS Used by the sseelleecctt builtin command to determine the column - length for printing selection lists. Automatically set upon - receipt of a SIGWINCH. - MMAAIILL If this parameter is set to a file name and the MMAAIILLPPAATTHH vari- + LLIINNEESS Used by the sseelleecctt builtin command to determine the column + length for printing selection lists. Automatically set upon + receipt of a SSIIGGWWIINNCCHH. + MMAAIILL If this parameter is set to a file name and the MMAAIILLPPAATTHH vari- able is not set, bbaasshh informs the user of the arrival of mail in the specified file. MMAAIILLCCHHEECCKK - Specifies how often (in seconds) bbaasshh checks for mail. The - default is 60 seconds. When it is time to check for mail, the - shell does so before displaying the primary prompt. If this - variable is unset, or set to a value that is not a number + Specifies how often (in seconds) bbaasshh checks for mail. The + default is 60 seconds. When it is time to check for mail, the + shell does so before displaying the primary prompt. If this + variable is unset, or set to a value that is not a number greater than or equal to zero, the shell disables mail checking. MMAAIILLPPAATTHH - A colon-separated list of file names to be checked for mail. + A colon-separated list of file names to be checked for mail. The message to be printed when mail arrives in a particular file - may be specified by separating the file name from the message + may be specified by separating the file name from the message with a `?'. When used in the text of the message, $$__ expands to the name of the current mailfile. Example: MMAAIILLPPAATTHH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"' - BBaasshh supplies a default value for this variable, but the loca- - tion of the user mail files that it uses is system dependent + BBaasshh supplies a default value for this variable, but the loca- + tion of the user mail files that it uses is system dependent (e.g., /var/mail/$$UUSSEERR). OOPPTTEERRRR If set to the value 1, bbaasshh displays error messages generated by - the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a + the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). + OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a shell script is executed. - PPAATTHH The search path for commands. It is a colon-separated list of - directories in which the shell looks for commands (see CCOOMMMMAANNDD - EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the + PPAATTHH The search path for commands. It is a colon-separated list of + directories in which the shell looks for commands (see CCOOMMMMAANNDD + EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the value of PPAATTHH indicates the current directory. A null directory - name may appear as two adjacent colons, or as an initial or - trailing colon. The default path is system-dependent, and is - set by the administrator who installs bbaasshh. A common value is + name may appear as two adjacent colons, or as an initial or + trailing colon. The default path is system-dependent, and is + set by the administrator who installs bbaasshh. A common value is ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''. PPOOSSIIXXLLYY__CCOORRRREECCTT - If this variable is in the environment when bbaasshh starts, the - shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if - the ----ppoossiixx invocation option had been supplied. If it is set - while the shell is running, bbaasshh enables _p_o_s_i_x _m_o_d_e, as if the + If this variable is in the environment when bbaasshh starts, the + shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if + the ----ppoossiixx invocation option had been supplied. If it is set + while the shell is running, bbaasshh enables _p_o_s_i_x _m_o_d_e, as if the command _s_e_t _-_o _p_o_s_i_x had been executed. PPRROOMMPPTT__CCOOMMMMAANNDD If set, the value is executed as a command prior to issuing each primary prompt. PPRROOMMPPTT__DDIIRRTTRRIIMM - If set to a number greater than zero, the value is used as the + If set to a number greater than zero, the value is used as the number of trailing directory components to retain when expanding - the \\ww aanndd \\WW pprroommpptt ssttrriinngg eessccaappeess ((sseeee PPRROOMMPPTTIINNGG below). + the \\ww and \\WW prompt string escapes (see PPRROOMMPPTTIINNGG below). Characters removed are replaced with an ellipsis. - PPSS11 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below) - and used as the primary prompt string. The default value is + PPSS11 The value of this parameter is expanded (see PPRROOMMPPTTIINNGG below) + and used as the primary prompt string. The default value is ``\\ss--\\vv\\$$ ''. - PPSS22 The value of this parameter is expanded as with PPSS11 and used as + PPSS22 The value of this parameter is expanded as with PPSS11 and used as the secondary prompt string. The default is ``>> ''. PPSS33 The value of this parameter is used as the prompt for the sseelleecctt command (see SSHHEELLLL GGRRAAMMMMAARR above). - PPSS44 The value of this parameter is expanded as with PPSS11 and the - value is printed before each command bbaasshh displays during an - execution trace. The first character of PPSS44 is replicated mul- - tiple times, as necessary, to indicate multiple levels of indi- + PPSS44 The value of this parameter is expanded as with PPSS11 and the + value is printed before each command bbaasshh displays during an + execution trace. The first character of PPSS44 is replicated mul- + tiple times, as necessary, to indicate multiple levels of indi- rection. The default is ``++ ''. SSHHEELLLL The full pathname to the shell is kept in this environment vari- - able. If it is not set when the shell starts, bbaasshh assigns to + able. If it is not set when the shell starts, bbaasshh assigns to it the full pathname of the current user's login shell. TTIIMMEEFFOORRMMAATT - The value of this parameter is used as a format string specify- - ing how the timing information for pipelines prefixed with the - ttiimmee reserved word should be displayed. The %% character intro- - duces an escape sequence that is expanded to a time value or - other information. The escape sequences and their meanings are + The value of this parameter is used as a format string specify- + ing how the timing information for pipelines prefixed with the + ttiimmee reserved word should be displayed. The %% character intro- + duces an escape sequence that is expanded to a time value or + other information. The escape sequences and their meanings are as follows; the braces denote optional portions. %%%% A literal %%. %%[[_p]][[ll]]RR The elapsed time in seconds. @@ -1134,121 +1157,124 @@ PPAARRAAMMEETTEERRSS %%[[_p]][[ll]]SS The number of CPU seconds spent in system mode. %%PP The CPU percentage, computed as (%U + %S) / %R. - The optional _p is a digit specifying the _p_r_e_c_i_s_i_o_n, the number + The optional _p is a digit specifying the _p_r_e_c_i_s_i_o_n, the number of fractional digits after a decimal point. A value of 0 causes no decimal point or fraction to be output. At most three places - after the decimal point may be specified; values of _p greater - than 3 are changed to 3. If _p is not specified, the value 3 is + after the decimal point may be specified; values of _p greater + than 3 are changed to 3. If _p is not specified, the value 3 is used. - The optional ll specifies a longer format, including minutes, of - the form _M_Mm_S_S._F_Fs. The value of _p determines whether or not + The optional ll specifies a longer format, including minutes, of + the form _M_Mm_S_S._F_Fs. The value of _p determines whether or not the fraction is included. - If this variable is not set, bbaasshh acts as if it had the value - $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss%%33llSS''. If the value is null, no - timing information is displayed. A trailing newline is added + If this variable is not set, bbaasshh acts as if it had the value + $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss%%33llSS''. If the value is null, no + timing information is displayed. A trailing newline is added when the format string is displayed. - TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the + TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the default timeout for the rreeaadd builtin. The sseelleecctt command termi- nates if input does not arrive after TTMMOOUUTT seconds when input is - coming from a terminal. In an interactive shell, the value is - interpreted as the number of seconds to wait for input after - issuing the primary prompt. BBaasshh terminates after waiting for + coming from a terminal. In an interactive shell, the value is + interpreted as the number of seconds to wait for input after + issuing the primary prompt. BBaasshh terminates after waiting for that number of seconds if input does not arrive. - TTMMPPDDIIRR If set, BBaasshh uses its value as the name of a directory in which + TTMMPPDDIIRR If set, BBaasshh uses its value as the name of a directory in which BBaasshh creates temporary files for the shell's use. aauuttoo__rreessuummee This variable controls how the shell interacts with the user and - job control. If this variable is set, single word simple com- + job control. If this variable is set, single word simple com- mands without redirections are treated as candidates for resump- tion of an existing stopped job. There is no ambiguity allowed; - if there is more than one job beginning with the string typed, - the job most recently accessed is selected. The _n_a_m_e of a - stopped job, in this context, is the command line used to start - it. If set to the value _e_x_a_c_t, the string supplied must match - the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the - string supplied needs to match a substring of the name of a - stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo- - gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set - to any other value, the supplied string must be a prefix of a + if there is more than one job beginning with the string typed, + the job most recently accessed is selected. The _n_a_m_e of a + stopped job, in this context, is the command line used to start + it. If set to the value _e_x_a_c_t, the string supplied must match + the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the + string supplied needs to match a substring of the name of a + stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo- + gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set + to any other value, the supplied string must be a prefix of a stopped job's name; this provides functionality analogous to the %%_s_t_r_i_n_g job identifier. hhiissttcchhaarrss - The two or three characters which control history expansion and + The two or three characters which control history expansion and tokenization (see HHIISSTTOORRYY EEXXPPAANNSSIIOONN below). The first character - is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals - the start of a history expansion, normally `!!'. The second - character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as - shorthand for re-running the previous command entered, substi- - tuting one string for another in the command. The default is - `^^'. The optional third character is the character which indi- - cates that the remainder of the line is a comment when found as - the first character of a word, normally `##'. The history com- + is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals + the start of a history expansion, normally `!!'. The second + character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as + shorthand for re-running the previous command entered, substi- + tuting one string for another in the command. The default is + `^^'. The optional third character is the character which indi- + cates that the remainder of the line is a comment when found as + the first character of a word, normally `##'. The history com- ment character causes history substitution to be skipped for the - remaining words on the line. It does not necessarily cause the + remaining words on the line. It does not necessarily cause the shell parser to treat the rest of the line as a comment. AArrrraayyss - BBaasshh provides one-dimensional indexed and associative array variables. - Any variable may be used as an indexed array; the ddeeccllaarree builtin will - explicitly declare an array. There is no maximum limit on the size of - an array, nor any requirement that members be indexed or assigned con- - tiguously. Indexed arrays are referenced using integers (including - arithmetic expressions) and are zero-based; associative arrays are + BBaasshh provides one-dimensional indexed and associative array variables. + Any variable may be used as an indexed array; the ddeeccllaarree builtin will + explicitly declare an array. There is no maximum limit on the size of + an array, nor any requirement that members be indexed or assigned con- + tiguously. Indexed arrays are referenced using integers (including + arithmetic expressions) and are zero-based; associative arrays are referenced using arbitrary strings. - An indexed array is created automatically if any variable is assigned + An indexed array is created automatically if any variable is assigned to using the syntax _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e. The _s_u_b_s_c_r_i_p_t is treated as an arithmetic expression that must evaluate to a number greater than or - equal to zero. To explicitly declare an indexed array, use ddeeccllaarree --aa + equal to zero. To explicitly declare an indexed array, use ddeeccllaarree --aa _n_a_m_e (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). ddeeccllaarree --aa _n_a_m_e[[_s_u_b_s_c_r_i_p_t]] is also accepted; the _s_u_b_s_c_r_i_p_t is ignored. Associative arrays are created using ddeeccllaarree --AA _n_a_m_e. Attributes may be specified for an array variable using the ddeeccllaarree and - rreeaaddoonnllyy builtins. Each attribute applies to all members of an array. + rreeaaddoonnllyy builtins. Each attribute applies to all members of an array. - Arrays are assigned to using compound assignments of the form - _n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_- - _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require the bracket - and subscript. When assigning to indexed arrays, if the optional - brackets and subscript are supplied, that index is assigned to; other- + Arrays are assigned to using compound assignments of the form + _n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_- + _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require the bracket + and subscript. When assigning to indexed arrays, if the optional + brackets and subscript are supplied, that index is assigned to; other- wise the index of the element assigned is the last index assigned to by the statement plus one. Indexing starts at zero. When assigning to an associative array, the subscript is required. - This syntax is also accepted by the ddeeccllaarree builtin. Individual array - elements may be assigned to using the _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax + This syntax is also accepted by the ddeeccllaarree builtin. Individual array + elements may be assigned to using the _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax introduced above. - Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}. + Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}. The braces are required to avoid conflicts with pathname expansion. If - _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These - subscripts differ only when the word appears within double quotes. If + _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These + subscripts differ only when the word appears within double quotes. If the word is double-quoted, ${_n_a_m_e[*]} expands to a single word with the - value of each array member separated by the first character of the IIFFSS + value of each array member separated by the first character of the IIFFSS special variable, and ${_n_a_m_e[@]} expands each element of _n_a_m_e to a sep- - arate word. When there are no array members, ${_n_a_m_e[@]} expands to - nothing. If the double-quoted expansion occurs within a word, the - expansion of the first parameter is joined with the beginning part of - the original word, and the expansion of the last parameter is joined - with the last part of the original word. This is analogous to the - expansion of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss - above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_- - _s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele- - ments in the array. Referencing an array variable without a subscript + arate word. When there are no array members, ${_n_a_m_e[@]} expands to + nothing. If the double-quoted expansion occurs within a word, the + expansion of the first parameter is joined with the beginning part of + the original word, and the expansion of the last parameter is joined + with the last part of the original word. This is analogous to the + expansion of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss + above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_- + _s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele- + ments in the array. Referencing an array variable without a subscript is equivalent to referencing the array with a subscript of 0. + An array variable is considered set if a subscript has been assigned a + value. The null string is a valid value. + The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t] destroys the array element at index _s_u_b_s_c_r_i_p_t. Care must be taken to - avoid unwanted side effects caused by filename generation. uunnsseett _n_a_m_e, + avoid unwanted side effects caused by pathname expansion. uunnsseett _n_a_m_e, where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is ** or @@, removes the entire array. @@ -1382,15 +1408,15 @@ EEXXPPAANNSSIIOONN digit, or when _p_a_r_a_m_e_t_e_r is followed by a character which is not to be interpreted as part of its name. - If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point, a level of - variable indirection is introduced. BBaasshh uses the value of the vari- - able formed from the rest of _p_a_r_a_m_e_t_e_r as the name of the variable; - this variable is then expanded and that value is used in the rest of - the substitution, rather than the value of _p_a_r_a_m_e_t_e_r itself. This is - known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. The exceptions to this are the expansions - of ${!_p_r_e_f_i_x*} and ${!!_n_a_m_e[_@]} described below. The exclamation point - must immediately follow the left brace in order to introduce indirec- - tion. + If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point (!!), a + level of variable indirection is introduced. BBaasshh uses the value of + the variable formed from the rest of _p_a_r_a_m_e_t_e_r as the name of the vari- + able; this variable is then expanded and that value is used in the rest + of the substitution, rather than the value of _p_a_r_a_m_e_t_e_r itself. This + is known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. The exceptions to this are the expan- + sions of ${!_p_r_e_f_i_x*} and ${!!_n_a_m_e[_@]} described below. The exclamation + point must immediately follow the left brace in order to introduce + indirection. In each of the cases below, _w_o_r_d is subject to tilde expansion, parame- ter expansion, command substitution, and arithmetic expansion. @@ -1655,7 +1681,7 @@ EEXXPPAANNSSIIOONN The special pattern characters have the following meanings: ** Matches any string, including the null string. When the gglloobb-- - ssttaarr shell option is enabled, and ** is used in a filename expan- + ssttaarr shell option is enabled, and ** is used in a pathname expan- sion 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 @@ -1720,37 +1746,44 @@ RREEDDIIRREECCTTIIOONN anywhere within a _s_i_m_p_l_e _c_o_m_m_a_n_d or may follow a _c_o_m_m_a_n_d. Redirections are processed in the order they appear, from left to right. - In the following descriptions, if the file descriptor number is omit- - ted, and the first character of the redirection operator is <<, the re- - direction refers to the standard input (file descriptor 0). If the - first character of the redirection operator is >>, the redirection + Each redirection that may be preceded by a file descriptor number may + instead be preceded by a word of the form {_v_a_r_n_a_m_e}. In this case, for + each redirection operator except >&- and <&-, the shell will allocate a + file descriptor greater than 10 and assign it to _v_a_r_n_a_m_e. If >&- or + <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines the file + descriptor to close. + + In the following descriptions, if the file descriptor number is omit- + ted, and the first character of the redirection operator is <<, the re- + direction refers to the standard input (file descriptor 0). If the + first character of the redirection operator is >>, the redirection refers to the standard output (file descriptor 1). - The word following the redirection operator in the following descrip- - tions, unless otherwise noted, is subjected to brace expansion, tilde + The word following the redirection operator in the following descrip- + tions, unless otherwise noted, is subjected to brace expansion, tilde expansion, parameter expansion, command substitution, arithmetic expan- - sion, quote removal, pathname expansion, and word splitting. If it + sion, quote removal, pathname expansion, and word splitting. If it expands to more than one word, bbaasshh reports an error. - Note that the order of redirections is significant. For example, the + Note that the order of redirections is significant. For example, the command ls >> dirlist 2>>&&1 - directs both standard output and standard error to the file _d_i_r_l_i_s_t, + directs both standard output and standard error to the file _d_i_r_l_i_s_t, while the command ls 2>>&&1 >> dirlist - directs only the standard output to file _d_i_r_l_i_s_t, because the standard - error was duplicated as standard output before the standard output was - redirected to _d_i_r_l_i_s_t. + directs only the standard output to file _d_i_r_l_i_s_t, because the standard + error was duplicated from the standard output before the standard out- + put was redirected to _d_i_r_l_i_s_t. BBaasshh handles several filenames specially when they are used in redirec- tions, as described in the following table: //ddeevv//ffdd//_f_d - If _f_d is a valid integer, file descriptor _f_d is dupli- + If _f_d is a valid integer, file descriptor _f_d is dupli- cated. //ddeevv//ssttddiinn File descriptor 0 is duplicated. @@ -1760,22 +1793,22 @@ RREEDDIIRREECCTTIIOONN File descriptor 2 is duplicated. //ddeevv//ttccpp//_h_o_s_t//_p_o_r_t If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t - is an integer port number or service name, bbaasshh attempts + is an integer port number or service name, bbaasshh attempts to open a TCP connection to the corresponding socket. //ddeevv//uuddpp//_h_o_s_t//_p_o_r_t If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t - is an integer port number or service name, bbaasshh attempts + is an integer port number or service name, bbaasshh attempts to open a UDP connection to the corresponding socket. A failure to open or create a file causes the redirection to fail. - Redirections using file descriptors greater than 9 should be used with - care, as they may conflict with file descriptors the shell uses inter- + Redirections using file descriptors greater than 9 should be used with + care, as they may conflict with file descriptors the shell uses inter- nally. RReeddiirreeccttiinngg IInnppuutt Redirection of input causes the file whose name results from the expan- - sion of _w_o_r_d to be opened for reading on file descriptor _n, or the + sion of _w_o_r_d to be opened for reading on file descriptor _n, or the standard input (file descriptor 0) if _n is not specified. The general format for redirecting input is: @@ -1783,27 +1816,27 @@ RREEDDIIRREECCTTIIOONN [_n]<<_w_o_r_d RReeddiirreeccttiinngg OOuuttppuutt - Redirection of output causes the file whose name results from the + Redirection of output causes the file whose name results from the expansion of _w_o_r_d to be opened for writing on file descriptor _n, or the standard output (file descriptor 1) if _n is not specified. If the file - does not exist it is created; if it does exist it is truncated to zero + does not exist it is created; if it does exist it is truncated to zero size. The general format for redirecting output is: [_n]>>_w_o_r_d - If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett - builtin has been enabled, the redirection will fail if the file whose - name results from the expansion of _w_o_r_d exists and is a regular file. + If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett + builtin has been enabled, the redirection will fail if the file whose + name results from the expansion of _w_o_r_d exists and is a regular file. If the redirection operator is >>||, or the redirection operator is >> and the nnoocclloobbbbeerr option to the sseett builtin command is not enabled, the re- direction is attempted even if the file named by _w_o_r_d exists. AAppppeennddiinngg RReeddiirreecctteedd OOuuttppuutt - Redirection of output in this fashion causes the file whose name - results from the expansion of _w_o_r_d to be opened for appending on file - descriptor _n, or the standard output (file descriptor 1) if _n is not + Redirection of output in this fashion causes the file whose name + results from the expansion of _w_o_r_d to be opened for appending on file + descriptor _n, or the standard output (file descriptor 1) if _n is not specified. If the file does not exist it is created. The general format for appending output is: @@ -1812,11 +1845,11 @@ RREEDDIIRREECCTTIIOONN RReeddiirreeccttiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr - This construct allows both the standard output (file descriptor 1) and - the standard error output (file descriptor 2) to be redirected to the + This construct allows both the standard output (file descriptor 1) and + the standard error output (file descriptor 2) to be redirected to the file whose name is the expansion of _w_o_r_d. - There are two formats for redirecting standard output and standard + There are two formats for redirecting standard output and standard error: &&>>_w_o_r_d @@ -1830,8 +1863,8 @@ RREEDDIIRREECCTTIIOONN AAppppeennddiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr - This construct allows both the standard output (file descriptor 1) and - the standard error output (file descriptor 2) to be appended to the + This construct allows both the standard output (file descriptor 1) and + the standard error output (file descriptor 2) to be appended to the file whose name is the expansion of _w_o_r_d. The format for appending standard output and standard error is: @@ -1843,9 +1876,9 @@ RREEDDIIRREECCTTIIOONN >>>>_w_o_r_d 2>>&&1 HHeerree DDooccuummeennttss - This type of redirection instructs the shell to read input from the + This type of redirection instructs the shell to read input from the current source until a line containing only _d_e_l_i_m_i_t_e_r (with no trailing - blanks) is seen. All of the lines read up to that point are then used + blanks) is seen. All of the lines read up to that point are then used as the standard input for a command. The format of here-documents is: @@ -1854,18 +1887,18 @@ RREEDDIIRREECCTTIIOONN _h_e_r_e_-_d_o_c_u_m_e_n_t _d_e_l_i_m_i_t_e_r - No parameter expansion, command substitution, arithmetic expansion, or + No parameter expansion, command substitution, arithmetic expansion, or pathname expansion is performed on _w_o_r_d. If any characters in _w_o_r_d are - quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal on _w_o_r_d, and the - lines in the here-document are not expanded. If _w_o_r_d is unquoted, all - lines of the here-document are subjected to parameter expansion, com- - mand substitution, and arithmetic expansion. In the latter case, the - character sequence \\<> is ignored, and \\ must be used to quote + quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal on _w_o_r_d, and the + lines in the here-document are not expanded. If _w_o_r_d is unquoted, all + lines of the here-document are subjected to parameter expansion, com- + mand substitution, and arithmetic expansion. In the latter case, the + character sequence \\<> is ignored, and \\ must be used to quote the characters \\, $$, and ``. If the redirection operator is <<<<--, then all leading tab characters are - stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This - allows here-documents within shell scripts to be indented in a natural + stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This + allows here-documents within shell scripts to be indented in a natural fashion. HHeerree SSttrriinnggss @@ -1881,20 +1914,20 @@ RREEDDIIRREECCTTIIOONN [_n]<<&&_w_o_r_d is used to duplicate input file descriptors. If _w_o_r_d expands to one or - more digits, the file descriptor denoted by _n is made to be a copy of - that file descriptor. If the digits in _w_o_r_d do not specify a file - descriptor open for input, a redirection error occurs. If _w_o_r_d evalu- - ates to --, file descriptor _n is closed. If _n is not specified, the + more digits, the file descriptor denoted by _n is made to be a copy of + that file descriptor. If the digits in _w_o_r_d do not specify a file + descriptor open for input, a redirection error occurs. If _w_o_r_d evalu- + ates to --, file descriptor _n is closed. If _n is not specified, the standard input (file descriptor 0) is used. The operator [_n]>>&&_w_o_r_d - is used similarly to duplicate output file descriptors. If _n is not - specified, the standard output (file descriptor 1) is used. If the - digits in _w_o_r_d do not specify a file descriptor open for output, a re- - direction error occurs. As a special case, if _n is omitted, and _w_o_r_d + is used similarly to duplicate output file descriptors. If _n is not + specified, the standard output (file descriptor 1) is used. If the + digits in _w_o_r_d do not specify a file descriptor open for output, a re- + direction error occurs. As a special case, if _n is omitted, and _w_o_r_d does not expand to one or more digits, the standard output and standard error are redirected as described previously. @@ -1903,7 +1936,7 @@ RREEDDIIRREECCTTIIOONN [_n]<<&&_d_i_g_i_t-- - moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard + moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard input (file descriptor 0) if _n is not specified. _d_i_g_i_t is closed after being duplicated to _n. @@ -1911,7 +1944,7 @@ RREEDDIIRREECCTTIIOONN [_n]>>&&_d_i_g_i_t-- - moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard + moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard output (file descriptor 1) if _n is not specified. OOppeenniinngg FFiillee DDeessccrriippttoorrss ffoorr RReeaaddiinngg aanndd WWrriittiinngg @@ -1919,74 +1952,77 @@ RREEDDIIRREECCTTIIOONN [_n]<<>>_w_o_r_d - causes the file whose name is the expansion of _w_o_r_d to be opened for - both reading and writing on file descriptor _n, or on file descriptor 0 + causes the file whose name is the expansion of _w_o_r_d to be opened for + both reading and writing on file descriptor _n, or on file descriptor 0 if _n is not specified. If the file does not exist, it is created. AALLIIAASSEESS - _A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as - the first word of a simple command. The shell maintains a list of - aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin - commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The first word of each - simple command, if unquoted, is checked to see if it has an alias. If - so, that word is replaced by the text of the alias. The characters //, - $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters + _A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as + the first word of a simple command. The shell maintains a list of + aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin + commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The first word of each + simple command, if unquoted, is checked to see if it has an alias. If + so, that word is replaced by the text of the alias. The characters //, + $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters listed above may not appear in an alias name. The replacement text may - contain any valid shell input, including shell metacharacters. The - first word of the replacement text is tested for aliases, but a word - that is identical to an alias being expanded is not expanded a second - time. This means that one may alias llss to llss --FF, for instance, and - bbaasshh does not try to recursively expand the replacement text. If the - last character of the alias value is a _b_l_a_n_k, then the next command + contain any valid shell input, including shell metacharacters. The + first word of the replacement text is tested for aliases, but a word + that is identical to an alias being expanded is not expanded a second + time. This means that one may alias llss to llss --FF, for instance, and + bbaasshh does not try to recursively expand the replacement text. If the + last character of the alias value is a _b_l_a_n_k, then the next command word following the alias is also checked for alias expansion. Aliases are created and listed with the aalliiaass command, and removed with the uunnaalliiaass command. - There is no mechanism for using arguments in the replacement text. If - arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS + There is no mechanism for using arguments in the replacement text. If + arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS below). - Aliases are not expanded when the shell is not interactive, unless the - eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of + Aliases are not expanded when the shell is not interactive, unless the + eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). - The rules concerning the definition and use of aliases are somewhat - confusing. BBaasshh always reads at least one complete line of input - before executing any of the commands on that line. Aliases are - expanded when a command is read, not when it is executed. Therefore, - an alias definition appearing on the same line as another command does - not take effect until the next line of input is read. The commands + The rules concerning the definition and use of aliases are somewhat + confusing. BBaasshh always reads at least one complete line of input + before executing any of the commands on that line. Aliases are + expanded when a command is read, not when it is executed. Therefore, + an alias definition appearing on the same line as another command does + not take effect until the next line of input is read. The commands following the alias definition on that line are not affected by the new - alias. This behavior is also an issue when functions are executed. - Aliases are expanded when a function definition is read, not when the - function is executed, because a function definition is itself a com- + alias. This behavior is also an issue when functions are executed. + Aliases are expanded when a function definition is read, not when the + function is executed, because a function definition is itself a com- pound command. As a consequence, aliases defined in a function are not - available until after that function is executed. To be safe, always - put alias definitions on a separate line, and do not use aalliiaass in com- + available until after that function is executed. To be safe, always + put alias definitions on a separate line, and do not use aalliiaass in com- pound commands. For almost every purpose, aliases are superseded by shell functions. FFUUNNCCTTIIOONNSS - A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR, - stores a series of commands for later execution. When the name of a - shell function is used as a simple command name, the list of commands + A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR, + stores a series of commands for later execution. When the name of a + shell function is used as a simple command name, the list of commands associated with that function name is executed. Functions are executed - in the context of the current shell; no new process is created to - interpret them (contrast this with the execution of a shell script). - When a function is executed, the arguments to the function become the + in the context of the current shell; no new process is created to + interpret them (contrast this with the execution of a shell script). + When a function is executed, the arguments to the function become the positional parameters during its execution. The special parameter ## is - updated to reflect the change. Special parameter 0 is unchanged. The - first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func- - tion while the function is executing. All other aspects of the shell - execution environment are identical between a function and its caller - with the exception that the DDEEBBUUGG and RREETTUURRNN traps (see the description - of the ttrraapp builtin under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inher- - ited unless the function has been given the ttrraaccee attribute (see the - description of the ddeeccllaarree builtin below) or the --oo ffuunnccttrraaccee shell - option has been enabled with the sseett builtin (in which case all func- - tions inherit the DDEEBBUUGG and RREETTUURRNN traps). + updated to reflect the change. Special parameter 0 is unchanged. The + first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func- + tion while the function is executing. + + All other aspects of the shell execution environment are identical + between a function and its caller with these exceptions: the DDEEBBUUGG and + RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL + BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been + given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin + below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett + builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN + traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell + option has been enabled. Variables local to the function may be declared with the llooccaall builtin command. Ordinarily, variables and their values are shared between the @@ -2087,6 +2123,9 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS bolic links and operate on the target of the link, rather than the link itself. + When used with [[[[, The << and >> operators sort lexicographically using + the current locale. + --aa _f_i_l_e True if _f_i_l_e exists. --bb _f_i_l_e @@ -2127,20 +2166,20 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS --SS _f_i_l_e True if _f_i_l_e exists and is a socket. --NN _f_i_l_e - True if _f_i_l_e exists and has been modified since it was last + True if _f_i_l_e exists and has been modified since it was last read. _f_i_l_e_1 -nntt _f_i_l_e_2 - True if _f_i_l_e_1 is newer (according to modification date) than + True if _f_i_l_e_1 is newer (according to modification date) than _f_i_l_e_2, or if _f_i_l_e_1 exists and _f_i_l_e_2 does not. _f_i_l_e_1 -oott _f_i_l_e_2 - True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1 + True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1 does not. _f_i_l_e_1 --eeff _f_i_l_e_2 - True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num- + True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num- bers. --oo _o_p_t_n_a_m_e - True if shell option _o_p_t_n_a_m_e is enabled. See the list of - options under the description of the --oo option to the sseett + True if shell option _o_p_t_n_a_m_e is enabled. See the list of + options under the description of the --oo option to the sseett builtin below. --zz _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is zero. @@ -2149,122 +2188,121 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS True if the length of _s_t_r_i_n_g is non-zero. _s_t_r_i_n_g_1 ==== _s_t_r_i_n_g_2 - True if the strings are equal. == may be used in place of ==== for - strict POSIX compliance. + _s_t_r_i_n_g_1 == _s_t_r_i_n_g_2 + True if the strings are equal. == should be used with the tteesstt + command for POSIX conformance. _s_t_r_i_n_g_1 !!== _s_t_r_i_n_g_2 True if the strings are not equal. _s_t_r_i_n_g_1 << _s_t_r_i_n_g_2 - True if _s_t_r_i_n_g_1 sorts before _s_t_r_i_n_g_2 lexicographically in the - current locale. + True if _s_t_r_i_n_g_1 sorts before _s_t_r_i_n_g_2 lexicographically. _s_t_r_i_n_g_1 >> _s_t_r_i_n_g_2 - True if _s_t_r_i_n_g_1 sorts after _s_t_r_i_n_g_2 lexicographically in the - current locale. + True if _s_t_r_i_n_g_1 sorts after _s_t_r_i_n_g_2 lexicographically. _a_r_g_1 OOPP _a_r_g_2 - OOPP is one of --eeqq, --nnee, --lltt, --llee, --ggtt, or --ggee. These arithmetic - binary operators return true if _a_r_g_1 is equal to, not equal to, - less than, less than or equal to, greater than, or greater than - or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive + OOPP is one of --eeqq, --nnee, --lltt, --llee, --ggtt, or --ggee. These arithmetic + binary operators return true if _a_r_g_1 is equal to, not equal to, + less than, less than or equal to, greater than, or greater than + or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive or negative integers. SSIIMMPPLLEE CCOOMMMMAANNDD EEXXPPAANNSSIIOONN - When a simple command is executed, the shell performs the following + When a simple command is executed, the shell performs the following expansions, assignments, and redirections, from left to right. - 1. The words that the parser has marked as variable assignments - (those preceding the command name) and redirections are saved + 1. The words that the parser has marked as variable assignments + (those preceding the command name) and redirections are saved for later processing. - 2. The words that are not variable assignments or redirections are - expanded. If any words remain after expansion, the first word - is taken to be the name of the command and the remaining words + 2. The words that are not variable assignments or redirections are + expanded. If any words remain after expansion, the first word + is taken to be the name of the command and the remaining words are the arguments. 3. Redirections are performed as described above under RREEDDIIRREECCTTIIOONN. 4. The text after the == in each variable assignment undergoes tilde expansion, parameter expansion, command substitution, arithmetic - expansion, and quote removal before being assigned to the vari- + expansion, and quote removal before being assigned to the vari- able. If no command name results, the variable assignments affect the current - shell environment. Otherwise, the variables are added to the environ- - ment of the executed command and do not affect the current shell envi- - ronment. If any of the assignments attempts to assign a value to a - readonly variable, an error occurs, and the command exits with a non- + shell environment. Otherwise, the variables are added to the environ- + ment of the executed command and do not affect the current shell envi- + ronment. If any of the assignments attempts to assign a value to a + readonly variable, an error occurs, and the command exits with a non- zero status. - If no command name results, redirections are performed, but do not - affect the current shell environment. A redirection error causes the + If no command name results, redirections are performed, but do not + affect the current shell environment. A redirection error causes the command to exit with a non-zero status. - If there is a command name left after expansion, execution proceeds as - described below. Otherwise, the command exits. If one of the expan- - sions contained a command substitution, the exit status of the command - is the exit status of the last command substitution performed. If + If there is a command name left after expansion, execution proceeds as + described below. Otherwise, the command exits. If one of the expan- + sions contained a command substitution, the exit status of the command + is the exit status of the last command substitution performed. If there were no command substitutions, the command exits with a status of zero. CCOOMMMMAANNDD EEXXEECCUUTTIIOONN - After a command has been split into words, if it results in a simple - command and an optional list of arguments, the following actions are + After a command has been split into words, if it results in a simple + command and an optional list of arguments, the following actions are taken. - If the command name contains no slashes, the shell attempts to locate - it. If there exists a shell function by that name, that function is - invoked as described above in FFUUNNCCTTIIOONNSS. If the name does not match a - function, the shell searches for it in the list of shell builtins. If + If the command name contains no slashes, the shell attempts to locate + it. If there exists a shell function by that name, that function is + invoked as described above in FFUUNNCCTTIIOONNSS. If the name does not match a + function, the shell searches for it in the list of shell builtins. If a match is found, that builtin is invoked. - If the name is neither a shell function nor a builtin, and contains no - slashes, bbaasshh searches each element of the PPAATTHH for a directory con- - taining an executable file by that name. BBaasshh uses a hash table to - remember the full pathnames of executable files (see hhaasshh under SSHHEELLLL - BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A full search of the directories in PPAATTHH is - performed only if the command is not found in the hash table. If the + If the name is neither a shell function nor a builtin, and contains no + slashes, bbaasshh searches each element of the PPAATTHH for a directory con- + taining an executable file by that name. BBaasshh uses a hash table to + remember the full pathnames of executable files (see hhaasshh under SSHHEELLLL + BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A full search of the directories in PPAATTHH is + performed only if the command is not found in the hash table. If the search is unsuccessful, the shell searches for a defined shell function named ccoommmmaanndd__nnoott__ffoouunndd__hhaannddllee. If that function exists, it is invoked - with the original command and the original command's arguments as its - arguments, and the function's exit status becomes the exit status of - the shell. If that function is not defined, the shell prints an error + with the original command and the original command's arguments as its + arguments, and the function's exit status becomes the exit status of + the shell. If that function is not defined, the shell prints an error message and returns an exit status of 127. - If the search is successful, or if the command name contains one or + If the search is successful, or if the command name contains one or more slashes, the shell executes the named program in a separate execu- tion environment. Argument 0 is set to the name given, and the remain- ing arguments to the command are set to the arguments given, if any. - If this execution fails because the file is not in executable format, - and the file is not a directory, it is assumed to be a _s_h_e_l_l _s_c_r_i_p_t, a - file containing shell commands. A subshell is spawned to execute it. - This subshell reinitializes itself, so that the effect is as if a new - shell had been invoked to handle the script, with the exception that - the locations of commands remembered by the parent (see hhaasshh below + If this execution fails because the file is not in executable format, + and the file is not a directory, it is assumed to be a _s_h_e_l_l _s_c_r_i_p_t, a + file containing shell commands. A subshell is spawned to execute it. + This subshell reinitializes itself, so that the effect is as if a new + shell had been invoked to handle the script, with the exception that + the locations of commands remembered by the parent (see hhaasshh below under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS) are retained by the child. - If the program is a file beginning with ##!!, the remainder of the first - line specifies an interpreter for the program. The shell executes the + If the program is a file beginning with ##!!, the remainder of the first + line specifies an interpreter for the program. The shell executes the specified interpreter on operating systems that do not handle this exe- cutable format themselves. The arguments to the interpreter consist of - a single optional argument following the interpreter name on the first - line of the program, followed by the name of the program, followed by + a single optional argument following the interpreter name on the first + line of the program, followed by the name of the program, followed by the command arguments, if any. CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT - The shell has an _e_x_e_c_u_t_i_o_n _e_n_v_i_r_o_n_m_e_n_t, which consists of the follow- + The shell has an _e_x_e_c_u_t_i_o_n _e_n_v_i_r_o_n_m_e_n_t, which consists of the follow- ing: - +o open files inherited by the shell at invocation, as modified by + +o open files inherited by the shell at invocation, as modified by redirections supplied to the eexxeecc builtin - +o the current working directory as set by ccdd, ppuusshhdd, or ppooppdd, or + +o the current working directory as set by ccdd, ppuusshhdd, or ppooppdd, or inherited by the shell at invocation - +o the file creation mode mask as set by uummaasskk or inherited from + +o the file creation mode mask as set by uummaasskk or inherited from the shell's parent +o current traps set by ttrraapp @@ -2272,153 +2310,154 @@ CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENN +o shell parameters that are set by variable assignment or with sseett or inherited from the shell's parent in the environment - +o shell functions defined during execution or inherited from the + +o shell functions defined during execution or inherited from the shell's parent in the environment - +o options enabled at invocation (either by default or with com- + +o options enabled at invocation (either by default or with com- mand-line arguments) or by sseett +o options enabled by sshhoopptt +o shell aliases defined with aalliiaass - +o various process IDs, including those of background jobs, the - value of $$$$, and the value of $$PPPPIIDD + +o various process IDs, including those of background jobs, the + value of $$$$, and the value of PPPPIIDD - When a simple command other than a builtin or shell function is to be - executed, it is invoked in a separate execution environment that con- - sists of the following. Unless otherwise noted, the values are inher- + When a simple command other than a builtin or shell function is to be + executed, it is invoked in a separate execution environment that con- + sists of the following. Unless otherwise noted, the values are inher- ited from the shell. - +o the shell's open files, plus any modifications and additions + +o the shell's open files, plus any modifications and additions specified by redirections to the command +o the current working directory +o the file creation mode mask - +o shell variables and functions marked for export, along with + +o shell variables and functions marked for export, along with variables exported for the command, passed in the environment +o traps caught by the shell are reset to the values inherited from the shell's parent, and traps ignored by the shell are ignored - A command invoked in this separate environment cannot affect the + A command invoked in this separate environment cannot affect the shell's execution environment. - Command substitution, commands grouped with parentheses, and asynchro- + Command substitution, commands grouped with parentheses, and asynchro- nous commands are invoked in a subshell environment that is a duplicate - of the shell environment, except that traps caught by the shell are + of the shell environment, except that traps caught by the shell are reset to the values that the shell inherited from its parent at invoca- tion. Builtin commands that are invoked as part of a pipeline are also executed in a subshell environment. Changes made to the subshell envi- ronment cannot affect the shell's execution environment. Subshells spawned to execute command substitutions inherit the value of - the --ee option from the parent shell. When not in posix mode, Bash + the --ee option from the parent shell. When not in posix mode, Bash clears the --ee option in such subshells. - If a command is followed by a && and job control is not active, the - default standard input for the command is the empty file _/_d_e_v_/_n_u_l_l. - Otherwise, the invoked command inherits the file descriptors of the + If a command is followed by a && and job control is not active, the + default standard input for the command is the empty file _/_d_e_v_/_n_u_l_l. + Otherwise, the invoked command inherits the file descriptors of the calling shell as modified by redirections. EENNVVIIRROONNMMEENNTT - When a program is invoked it is given an array of strings called the + When a program is invoked it is given an array of strings called the _e_n_v_i_r_o_n_m_e_n_t. This is a list of _n_a_m_e-_v_a_l_u_e pairs, of the form _n_a_m_e=_v_a_l_u_e. - The shell provides several ways to manipulate the environment. On + The shell provides several ways to manipulate the environment. On invocation, the shell scans its own environment and creates a parameter - for each name found, automatically marking it for _e_x_p_o_r_t to child pro- - cesses. Executed commands inherit the environment. The eexxppoorrtt and - ddeeccllaarree --xx commands allow parameters and functions to be added to and + for each name found, automatically marking it for _e_x_p_o_r_t to child pro- + cesses. Executed commands inherit the environment. The eexxppoorrtt and + ddeeccllaarree --xx commands allow parameters and functions to be added to and deleted from the environment. If the value of a parameter in the envi- - ronment is modified, the new value becomes part of the environment, - replacing the old. The environment inherited by any executed command - consists of the shell's initial environment, whose values may be modi- - fied in the shell, less any pairs removed by the uunnsseett command, plus + ronment is modified, the new value becomes part of the environment, + replacing the old. The environment inherited by any executed command + consists of the shell's initial environment, whose values may be modi- + fied in the shell, less any pairs removed by the uunnsseett command, plus any additions via the eexxppoorrtt and ddeeccllaarree --xx commands. - The environment for any _s_i_m_p_l_e _c_o_m_m_a_n_d or function may be augmented - temporarily by prefixing it with parameter assignments, as described + The environment for any _s_i_m_p_l_e _c_o_m_m_a_n_d or function may be augmented + temporarily by prefixing it with parameter assignments, as described above in PPAARRAAMMEETTEERRSS. These assignment statements affect only the envi- ronment seen by that command. - If the --kk option is set (see the sseett builtin command below), then _a_l_l - parameter assignments are placed in the environment for a command, not + If the --kk option is set (see the sseett builtin command below), then _a_l_l + parameter assignments are placed in the environment for a command, not just those that precede the command name. - When bbaasshh invokes an external command, the variable __ is set to the - full file name of the command and passed to that command in its envi- + When bbaasshh invokes an external command, the variable __ is set to the + full file name of the command and passed to that command in its envi- ronment. EEXXIITT SSTTAATTUUSS - The exit status of an executed command is the value returned by the + The exit status of an executed command is the value returned by the _w_a_i_t_p_i_d system call or equivalent function. Exit statuses fall between - 0 and 255, though, as explained below, the shell may use values above + 0 and 255, though, as explained below, the shell may use values above 125 specially. Exit statuses from shell builtins and compound commands - are also limited to this range. Under certain circumstances, the shell + are also limited to this range. Under certain circumstances, the shell will use special values to indicate specific failure modes. For the shell's purposes, a command which exits with a zero exit status - has succeeded. An exit status of zero indicates success. A non-zero - exit status indicates failure. When a command terminates on a fatal + has succeeded. An exit status of zero indicates success. A non-zero + exit status indicates failure. When a command terminates on a fatal signal _N, bbaasshh uses the value of 128+_N as the exit status. - If a command is not found, the child process created to execute it - returns a status of 127. If a command is found but is not executable, + If a command is not found, the child process created to execute it + returns a status of 127. If a command is found but is not executable, the return status is 126. If a command fails because of an error during expansion or redirection, the exit status is greater than zero. - Shell builtin commands return a status of 0 (_t_r_u_e) if successful, and - non-zero (_f_a_l_s_e) if an error occurs while they execute. All builtins + Shell builtin commands return a status of 0 (_t_r_u_e) if successful, and + non-zero (_f_a_l_s_e) if an error occurs while they execute. All builtins return an exit status of 2 to indicate incorrect usage. - BBaasshh itself returns the exit status of the last command executed, - unless a syntax error occurs, in which case it exits with a non-zero + BBaasshh itself returns the exit status of the last command executed, + unless a syntax error occurs, in which case it exits with a non-zero value. See also the eexxiitt builtin command below. SSIIGGNNAALLSS - When bbaasshh is interactive, in the absence of any traps, it ignores + When bbaasshh is interactive, in the absence of any traps, it ignores SSIIGGTTEERRMM (so that kkiillll 00 does not kill an interactive shell), and SSIIGGIINNTT - is caught and handled (so that the wwaaiitt builtin is interruptible). In - all cases, bbaasshh ignores SSIIGGQQUUIITT. If job control is in effect, bbaasshh + is caught and handled (so that the wwaaiitt builtin is interruptible). In + all cases, bbaasshh ignores SSIIGGQQUUIITT. If job control is in effect, bbaasshh ignores SSIIGGTTTTIINN, SSIIGGTTTTOOUU, and SSIIGGTTSSTTPP. Non-builtin commands run by bbaasshh have signal handlers set to the values - inherited by the shell from its parent. When job control is not in - effect, asynchronous commands ignore SSIIGGIINNTT and SSIIGGQQUUIITT in addition to - these inherited handlers. Commands run as a result of command substi- + inherited by the shell from its parent. When job control is not in + effect, asynchronous commands ignore SSIIGGIINNTT and SSIIGGQQUUIITT in addition to + these inherited handlers. Commands run as a result of command substi- tution ignore the keyboard-generated job control signals SSIIGGTTTTIINN, SSIIGGTT-- TTOOUU, and SSIIGGTTSSTTPP. - The shell exits by default upon receipt of a SSIIGGHHUUPP. Before exiting, - an interactive shell resends the SSIIGGHHUUPP to all jobs, running or + The shell exits by default upon receipt of a SSIIGGHHUUPP. Before exiting, + an interactive shell resends the SSIIGGHHUUPP to all jobs, running or stopped. Stopped jobs are sent SSIIGGCCOONNTT to ensure that they receive the - SSIIGGHHUUPP. To prevent the shell from sending the signal to a particular - job, it should be removed from the jobs table with the ddiissoowwnn builtin - (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) or marked to not receive SSIIGGHHUUPP + SSIIGGHHUUPP. To prevent the shell from sending the signal to a particular + job, it should be removed from the jobs table with the ddiissoowwnn builtin + (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) or marked to not receive SSIIGGHHUUPP using ddiissoowwnn --hh. - If the hhuuppoonneexxiitt shell option has been set with sshhoopptt, bbaasshh sends a + If the hhuuppoonneexxiitt shell option has been set with sshhoopptt, bbaasshh sends a SSIIGGHHUUPP to all jobs when an interactive login shell exits. - If bbaasshh is waiting for a command to complete and receives a signal for + If bbaasshh is waiting for a command to complete and receives a signal for which a trap has been set, the trap will not be executed until the com- - mand completes. When bbaasshh is waiting for an asynchronous command via - the wwaaiitt builtin, the reception of a signal for which a trap has been + mand completes. When bbaasshh is waiting for an asynchronous command via + the wwaaiitt builtin, the reception of a signal for which a trap has been set will cause the wwaaiitt builtin to return immediately with an exit sta- tus greater than 128, immediately after which the trap is executed. JJOOBB CCOONNTTRROOLL - _J_o_b _c_o_n_t_r_o_l refers to the ability to selectively stop (_s_u_s_p_e_n_d) the + _J_o_b _c_o_n_t_r_o_l refers to the ability to selectively stop (_s_u_s_p_e_n_d) the execution of processes and continue (_r_e_s_u_m_e) their execution at a later - point. A user typically employs this facility via an interactive - interface supplied jointly by the system's terminal driver and bbaasshh. + point. A user typically employs this facility via an interactive + interface supplied jointly by the operating system kernel's terminal + driver and bbaasshh. The shell associates a _j_o_b with each pipeline. It keeps a table of currently executing jobs, which may be listed with the jjoobbss command. @@ -2439,10 +2478,12 @@ JJOOBB CCOONNTTRROOLL generated signals such as SSIIGGIINNTT. These processes are said to be in the _f_o_r_e_g_r_o_u_n_d. _B_a_c_k_g_r_o_u_n_d processes are those whose process group ID differs from the terminal's; such processes are immune to keyboard-gen- - erated signals. Only foreground processes are allowed to read from or - write to the terminal. Background processes which attempt to read from - (write to) the terminal are sent a SSIIGGTTTTIINN ((SSIIGGTTTTOOUU)) signal by the ter- - minal driver, which, unless caught, suspends the process. + erated signals. Only foreground processes are allowed to read from or, + if the user so specifies with stty tostop, write to the terminal. + Background processes which attempt to read from (write to when stty + tostop is in effect) the terminal are sent a SSIIGGTTTTIINN ((SSIIGGTTTTOOUU)) signal + by the kernel's terminal driver, which, unless caught, suspends the + process. If the operating system on which bbaasshh is running supports job control, bbaasshh contains facilities to use it. Typing the _s_u_s_p_e_n_d character (typ- @@ -2524,7 +2565,8 @@ PPRROOMMPPTTIINNGG \\vv the version of bbaasshh (e.g., 2.00) \\VV the release of bbaasshh, version + patch level (e.g., 2.00.0) \\ww the current working directory, with $$HHOOMMEE abbreviated - with a tilde (uses the $$PPRROOMMPPTT__DDIIRRTTRRIIMM variable) + with a tilde (uses the value of the PPRROOMMPPTT__DDIIRRTTRRIIMM vari- + able) \\WW the basename of the current working directory, with $$HHOOMMEE abbreviated with a tilde \\!! the history number of this command @@ -2532,66 +2574,66 @@ PPRROOMMPPTTIINNGG \\$$ if the effective UID is 0, a ##, otherwise a $$ \\_n_n_n the character corresponding to the octal number _n_n_n \\\\ a backslash - \\[[ begin a sequence of non-printing characters, which could - be used to embed a terminal control sequence into the + \\[[ begin a sequence of non-printing characters, which could + be used to embed a terminal control sequence into the prompt \\]] end a sequence of non-printing characters - The command number and the history number are usually different: the - history number of a command is its position in the history list, which - may include commands restored from the history file (see HHIISSTTOORRYY - below), while the command number is the position in the sequence of - commands executed during the current shell session. After the string - is decoded, it is expanded via parameter expansion, command substitu- - tion, arithmetic expansion, and quote removal, subject to the value of - the pprroommppttvvaarrss shell option (see the description of the sshhoopptt command + The command number and the history number are usually different: the + history number of a command is its position in the history list, which + may include commands restored from the history file (see HHIISSTTOORRYY + below), while the command number is the position in the sequence of + commands executed during the current shell session. After the string + is decoded, it is expanded via parameter expansion, command substitu- + tion, arithmetic expansion, and quote removal, subject to the value of + the pprroommppttvvaarrss shell option (see the description of the sshhoopptt command under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). RREEAADDLLIINNEE - This is the library that handles reading input when using an interac- + This is the library that handles reading input when using an interac- tive shell, unless the ----nnooeeddiittiinngg option is given at shell invocation. Line editing is also used when using the --ee option to the rreeaadd builtin. By default, the line editing commands are similar to those of emacs. A vi-style line editing interface is also available. Line editing can be - enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett - builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing - after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the + enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett + builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing + after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the sseett builtin. RReeaaddlliinnee NNoottaattiioonn In this section, the emacs-style notation is used to denote keystrokes. - Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi- - larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key- - boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key + Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi- + larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key- + boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key then the _x key. This makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x - means ESC-Control-_x, or press the Escape key then hold the Control key + means ESC-Control-_x, or press the Escape key then hold the Control key while pressing the _x key.) Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which normally act as - a repeat count. Sometimes, however, it is the sign of the argument - that is significant. Passing a negative argument to a command that - acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to - act in a backward direction. Commands whose behavior with arguments + a repeat count. Sometimes, however, it is the sign of the argument + that is significant. Passing a negative argument to a command that + acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to + act in a backward direction. Commands whose behavior with arguments deviates from this are noted below. - When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved + When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a _k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one unit, which can be yanked all at once. Commands which do not kill text separate the chunks of text on the kill ring. RReeaaddlliinnee IInniittiiaalliizzaattiioonn - Readline is customized by putting commands in an initialization file - (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of - the IINNPPUUTTRRCC variable. If that variable is unset, the default is - _~_/_._i_n_p_u_t_r_c. When a program which uses the readline library starts up, + Readline is customized by putting commands in an initialization file + (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of + the IINNPPUUTTRRCC variable. If that variable is unset, the default is + _~_/_._i_n_p_u_t_r_c. When a program which uses the readline library starts up, the initialization file is read, and the key bindings and variables are - set. There are only a few basic constructs allowed in the readline - initialization file. Blank lines are ignored. Lines beginning with a - ## are comments. Lines beginning with a $$ indicate conditional con- + set. There are only a few basic constructs allowed in the readline + initialization file. Blank lines are ignored. Lines beginning with a + ## are comments. Lines beginning with a $$ indicate conditional con- structs. Other lines denote key bindings and variable settings. - The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other + The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other programs that use this library may add their own commands and bindings. For example, placing @@ -2599,19 +2641,19 @@ RREEAADDLLIINNEE M-Control-u: universal-argument or C-Meta-u: universal-argument - into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_- + into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_- _s_a_l_-_a_r_g_u_m_e_n_t. - The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L, + The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L, _E_S_C, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and _T_A_B. - In addition to command names, readline allows keys to be bound to a + In addition to command names, readline allows keys to be bound to a string that is inserted when the key is pressed (a _m_a_c_r_o). RReeaaddlliinnee KKeeyy BBiinnddiinnggss - The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple. - All that is required is the name of the command or the text of a macro - and a key sequence to which it should be bound. The name may be speci- + The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple. + All that is required is the name of the command or the text of a macro + and a key sequence to which it should be bound. The name may be speci- fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or _C_o_n_t_r_o_l_- prefixes, or as a key sequence. @@ -2622,15 +2664,15 @@ RREEAADDLLIINNEE Meta-Rubout: backward-kill-word Control-o: "> output" - In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt, - _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to - run the macro expressed on the right hand side (that is, to insert the + In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt, + _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to + run the macro expressed on the right hand side (that is, to insert the text ``> output'' into the line). - In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs - from kkeeyynnaammee above in that strings denoting an entire key sequence may - be specified by placing the sequence within double quotes. Some GNU - Emacs style key escapes can be used, as in the following example, but + In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs + from kkeeyynnaammee above in that strings denoting an entire key sequence may + be specified by placing the sequence within double quotes. Some GNU + Emacs style key escapes can be used, as in the following example, but the symbolic character names are not recognized. "\C-u": universal-argument @@ -2638,7 +2680,7 @@ RREEAADDLLIINNEE "\e[11~": "Function Key 1" In this example, _C_-_u is again bound to the function uunniivveerrssaall--aarrgguummeenntt. - _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is + _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert the text ``Function Key 1''. The full set of GNU Emacs style escape sequences is @@ -2649,7 +2691,7 @@ RREEAADDLLIINNEE \\"" literal " \\'' literal ' - In addition to the GNU Emacs style escape sequences, a second set of + In addition to the GNU Emacs style escape sequences, a second set of backslash escapes is available: \\aa alert (bell) \\bb backspace @@ -2659,20 +2701,20 @@ RREEAADDLLIINNEE \\rr carriage return \\tt horizontal tab \\vv vertical tab - \\_n_n_n the eight-bit character whose value is the octal value + \\_n_n_n the eight-bit character whose value is the octal value _n_n_n (one to three digits) - \\xx_H_H the eight-bit character whose value is the hexadecimal + \\xx_H_H the eight-bit character whose value is the hexadecimal value _H_H (one or two hex digits) When entering the text of a macro, single or double quotes must be used to indicate a macro definition. Unquoted text is assumed to be a func- - tion name. In the macro body, the backslash escapes described above - are expanded. Backslash will quote any other character in the macro + tion name. In the macro body, the backslash escapes described above + are expanded. Backslash will quote any other character in the macro text, including " and '. - BBaasshh allows the current readline key bindings to be displayed or modi- - fied with the bbiinndd builtin command. The editing mode may be switched - during interactive use by using the --oo option to the sseett builtin com- + BBaasshh allows the current readline key bindings to be displayed or modi- + fied with the bbiinndd builtin command. The editing mode may be switched + during interactive use by using the --oo option to the sseett builtin com- mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). RReeaaddlliinnee VVaarriiaabblleess @@ -2682,132 +2724,147 @@ RREEAADDLLIINNEE sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e - Except where noted, readline variables can take the values OOnn or OOffff - (without regard to case). Unrecognized variable names are ignored. - When a variable value is read, empty or null values, "on" (case-insen- + Except where noted, readline variables can take the values OOnn or OOffff + (without regard to case). Unrecognized variable names are ignored. + When a variable value is read, empty or null values, "on" (case-insen- sitive), and "1" are equivalent to OOnn. All other values are equivalent to OOffff. The variables and their default values are: bbeellll--ssttyyllee ((aauuddiibbllee)) - Controls what happens when readline wants to ring the terminal + Controls what happens when readline wants to ring the terminal bell. If set to nnoonnee, readline never rings the bell. If set to - vviissiibbllee, readline uses a visible bell if one is available. If + vviissiibbllee, readline uses a visible bell if one is available. If set to aauuddiibbllee, readline attempts to ring the terminal's bell. bbiinndd--ttttyy--ssppeecciiaall--cchhaarrss ((OOnn)) - If set to OOnn, readline attempts to bind the control characters + If set to OOnn, readline attempts to bind the control characters treated specially by the kernel's terminal driver to their read- line equivalents. ccoommmmeenntt--bbeeggiinn ((````##'''')) - The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt + The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt command is executed. This command is bound to MM--## in emacs mode and to ## in vi command mode. ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff)) If set to OOnn, readline performs filename matching and completion in a case-insensitive fashion. ccoommpplleettiioonn--pprreeffiixx--ddiissppllaayy--lleennggtthh ((00)) - The length in characters of the common prefix of a list of pos- - sible completions that is displayed without modification. When - set to a value greater than zero, common prefixes longer than - this value are replaced with an ellipsis when displaying possi- + The length in characters of the common prefix of a list of pos- + sible completions that is displayed without modification. When + set to a value greater than zero, common prefixes longer than + this value are replaced with an ellipsis when displaying possi- ble completions. ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000)) - This determines when the user is queried about viewing the num- - ber of possible completions generated by the ppoossssiibbllee--ccoommppllee-- - ttiioonnss command. It may be set to any integer value greater than - or equal to zero. If the number of possible completions is + This determines when the user is queried about viewing the num- + ber of possible completions generated by the ppoossssiibbllee--ccoommppllee-- + ttiioonnss command. It may be set to any integer value greater than + or equal to zero. If the number of possible completions is greater than or equal to the value of this variable, the user is - asked whether or not he wishes to view them; otherwise they are + asked whether or not he wishes to view them; otherwise they are simply listed on the terminal. ccoonnvveerrtt--mmeettaa ((OOnn)) - If set to OOnn, readline will convert characters with the eighth + If set to OOnn, readline will convert characters with the eighth bit set to an ASCII key sequence by stripping the eighth bit and - prefixing an escape character (in effect, using escape as the + prefixing an escape character (in effect, using escape as the _m_e_t_a _p_r_e_f_i_x). ddiissaabbllee--ccoommpplleettiioonn ((OOffff)) If set to OOnn, readline will inhibit word completion. Completion - characters will be inserted into the line as if they had been + characters will be inserted into the line as if they had been mapped to sseellff--iinnsseerrtt. eeddiittiinngg--mmooddee ((eemmaaccss)) Controls whether readline begins with a set of key bindings sim- ilar to _e_m_a_c_s or _v_i. eeddiittiinngg--mmooddee can be set to either eemmaaccss or vvii. + eecchhoo--ccoonnttrrooll--cchhaarraacctteerrss ((OOnn)) + When set to OOnn, on operating systems that indicate they support + it, readline echoes a character corresponding to a signal gener- + ated from the keyboard. eennaabbllee--kkeeyyppaadd ((OOffff)) When set to OOnn, readline will try to enable the application key- - pad when it is called. Some systems need this to enable the + pad when it is called. Some systems need this to enable the arrow keys. + eennaabbllee--mmeettaa--kkeeyy ((OOnn)) + When set to OOnn, readline will try to enable any meta modifier + key the terminal claims to support when it is called. On many + terminals, the meta key is used to send eight-bit characters. eexxppaanndd--ttiillddee ((OOffff)) - If set to oonn, tilde expansion is performed when readline + If set to oonn, tilde expansion is performed when readline attempts word completion. hhiissttoorryy--pprreesseerrvvee--ppooiinntt ((OOffff)) - If set to oonn, the history code attempts to place point at the - same location on each history line retrieved with pprreevviioouuss--hhiiss-- + If set to oonn, the history code attempts to place point at the + same location on each history line retrieved with pprreevviioouuss--hhiiss-- ttoorryy or nneexxtt--hhiissttoorryy. hhiissttoorryy--ssiizzee ((00)) - Set the maximum number of history entries saved in the history + Set the maximum number of history entries saved in the history list. If set to zero, the number of entries in the history list is not limited. hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff)) - When set to OOnn, makes readline use a single line for display, + When set to OOnn, makes readline use a single line for display, scrolling the input horizontally on a single screen line when it - becomes longer than the screen width rather than wrapping to a + becomes longer than the screen width rather than wrapping to a new line. iinnppuutt--mmeettaa ((OOffff)) - If set to OOnn, readline will enable eight-bit input (that is, it - will not strip the high bit from the characters it reads), + If set to OOnn, readline will enable eight-bit input (that is, it + will not strip the high bit from the characters it reads), regardless of what the terminal claims it can support. The name mmeettaa--ffllaagg is a synonym for this variable. iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[CC--JJ'''')) - The string of characters that should terminate an incremental - search without subsequently executing the character as a com- - mand. If this variable has not been given a value, the charac- + The string of characters that should terminate an incremental + search without subsequently executing the character as a com- + mand. If this variable has not been given a value, the charac- ters _E_S_C and _C_-_J will terminate an incremental search. kkeeyymmaapp ((eemmaaccss)) - Set the current readline keymap. The set of valid keymap names - is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_- - _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is - equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the + Set the current readline keymap. The set of valid keymap names + is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_- + _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is + equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the value of eeddiittiinngg--mmooddee also affects the default keymap. mmaarrkk--ddiirreeccttoorriieess ((OOnn)) If set to OOnn, completed directory names have a slash appended. mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff)) - If set to OOnn, history lines that have been modified are dis- + If set to OOnn, history lines that have been modified are dis- played with a preceding asterisk (**). mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff)) If set to OOnn, completed names which are symbolic links to direc- - tories have a slash appended (subject to the value of + tories have a slash appended (subject to the value of mmaarrkk--ddiirreeccttoorriieess). mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn)) - This variable, when set to OOnn, causes readline to match files - whose names begin with a `.' (hidden files) when performing - filename completion, unless the leading `.' is supplied by the + This variable, when set to OOnn, causes readline to match files + whose names begin with a `.' (hidden files) when performing + filename completion, unless the leading `.' is supplied by the user in the filename to be completed. oouuttppuutt--mmeettaa ((OOffff)) - If set to OOnn, readline will display characters with the eighth + If set to OOnn, readline will display characters with the eighth bit set directly rather than as a meta-prefixed escape sequence. ppaaggee--ccoommpplleettiioonnss ((OOnn)) - If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis- + If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis- play a screenful of possible completions at a time. pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff)) - If set to OOnn, readline will display completions with matches - sorted horizontally in alphabetical order, rather than down the + If set to OOnn, readline will display completions with matches + sorted horizontally in alphabetical order, rather than down the screen. rreevveerrtt--aallll--aatt--nneewwlliinnee ((OOffff)) - If set to oonn, readline will undo all changes to history lines + If set to oonn, readline will undo all changes to history lines before returning when aacccceepptt--lliinnee is executed. By default, his- - tory lines may be modified and retain individual undo lists + tory lines may be modified and retain individual undo lists across calls to rreeaaddlliinnee. sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff)) - This alters the default behavior of the completion functions. + This alters the default behavior of the completion functions. If set to oonn, words which have more than one possible completion - cause the matches to be listed immediately instead of ringing + cause the matches to be listed immediately instead of ringing the bell. sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff)) - This alters the default behavior of the completion functions in + This alters the default behavior of the completion functions in a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to oonn, words - which have more than one possible completion without any possi- - ble partial completion (the possible completions don't share a - common prefix) cause the matches to be listed immediately + which have more than one possible completion without any possi- + ble partial completion (the possible completions don't share a + common prefix) cause the matches to be listed immediately instead of ringing the bell. + sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff)) + If set to OOnn, this alters the default completion behavior when + inserting a single match into the line. It's only active when + performing completion in the middle of a word. If enabled, + readline does not insert characters from the completion that + match characters after point in the word being completed, so + portions of the word following the cursor are not duplicated. vviissiibbllee--ssttaattss ((OOffff)) If set to OOnn, a character denoting a file's type as reported by _s_t_a_t(2) is appended to the filename when listing possible com- @@ -3157,7 +3214,11 @@ RREEAADDLLIINNEE moves _n positions forward in the list of matches; a negative argument may be used to move backward through the list. This command is intended to be bound to TTAABB, but is unbound by - default. + default.cc + mmeennuu--ccoommpplleettee--kkrrdd + Identicwwal to mmeennuu--ccoommpplleettee, but moves backward through the list + of possible completions, as if mmeennuu--ccoommpplleettee had been given a + negative argument. This command is unbound by default. ddeelleettee--cchhaarr--oorr--lliisstt Deletes the character under the cursor if not at the beginning or end of the line (like ddeelleettee--cchhaarr). If at the end of the @@ -3253,6 +3314,14 @@ RREEAADDLLIINNEE A character is read and point is moved to the previous occur- rence of that character. A negative count searches for subse- quent occurrences. + sskkiipp--ccssii--sseeqquueennccee (()) + Read enough characters to consume a multi-key sequence such as + those defined for keys like Home and End. Such sequences begin + with a Control Sequence Indicator (CSI), usually ESC-[. If this + sequence is bound to "\[", keys producing such sequences will + have no effect unless explicitly bound to a readline command, + instead of inserting stray characters into the editing buffer. + This is unbound by default, but usually bound to ESC-[. iinnsseerrtt--ccoommmmeenntt ((MM--##)) Without a numeric argument, the value of the readline ccoomm-- mmeenntt--bbeeggiinn variable is inserted at the beginning of the current @@ -3304,12 +3373,16 @@ RREEAADDLLIINNEE the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the pro- grammable completion facilities are invoked. - First, the command name is identified. If a compspec has been defined - for that command, the compspec is used to generate the list of possible - completions for the word. If the command word is a full pathname, a - compspec for the full pathname is searched for first. If no compspec - is found for the full pathname, an attempt is made to find a compspec - for the portion following the final slash. + First, the command name is identified. If the command word is the + empty string (completion attempted at the beginning of an empty line), + any compspec defined with the --EE option to ccoommpplleettee is used. If a + compspec has been defined for that command, the compspec is used to + generate the list of possible completions for the word. If the command + word is a full pathname, a compspec for the full pathname is searched + for first. If no compspec is found for the full pathname, an attempt + is made to find a compspec for the portion following the final slash. + If those searches to not result in a compspec, any compspec defined + with the --DD option to ccoommpplleettee is used as the default. Once a compspec has been found, it is used to generate the list of matching words. If a compspec is not found, the default bbaasshh comple- @@ -3320,7 +3393,7 @@ RREEAADDLLIINNEE --ff or --dd option is used for filename or directory name completion, the shell variable FFIIGGNNOORREE is used to filter the matches. - Any completions specified by a filename expansion pattern to the --GG + Any completions specified by a pathname expansion pattern to the --GG option are generated next. The words generated by the pattern need not match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not used to filter the matches, but the FFIIGGNNOORREE variable is used. @@ -3395,6 +3468,29 @@ RREEAADDLLIINNEE the value of the mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the setting of the mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess readline variable. + There is some support for dynamically modifying completions. This is + most useful when used in combination with a default completion speci- + fied with ccoommpplleettee --DD. It's possible for shell functions executed as + completion handlers to indicate that completion should be retried by + returning an exit status of 124. If a shell function returns 124, and + changes the compspec associated with the command on which completion is + being attempted (supplied as the first argument when the function is + executed), programmable completion restarts from the beginning, with an + attempt to find a compspec for that command. This allows a set of com- + pletions to be built dynamically as completion is attempted, rather + than being loaded all at once. + + For instance, assuming that there is a library of compspecs, each kept + in a file corresponding to the name of the command, the following + default completion function would load completions dynamically: + + _completion_loader() + { + . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124 + } + complete -D -F _completion_loader + + HHIISSTTOORRYY When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell provides access to the _c_o_m_m_a_n_d _h_i_s_t_o_r_y, the list of commands previously @@ -3418,13 +3514,13 @@ HHIISSTTOORRYY the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the lines are appended to the history file, otherwise the history file is over- written. If HHIISSTTFFIILLEE is unset, or if the history file is unwritable, - the history is not saved. If the variable is set, time stamps are - written to the history file, marked with the history comment character, - so they may be preserved across shell sessions. This uses the history - comment character to distinguish timestamps from other history lines. - After saving the history, the history file is truncated to contain no - more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE is not set, no trunca- - tion is performed. + the history is not saved. If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, time + stamps are written to the history file, marked with the history comment + character, so they may be preserved across shell sessions. This uses + the history comment character to distinguish timestamps from other his- + tory lines. After saving the history, the history file is truncated to + contain no more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE is not set, + no truncation is performed. The builtin command ffcc (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) may be used to list or edit and re-execute a portion of the history list. The hhiiss-- @@ -3478,17 +3574,17 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN Several shell options settable with the sshhoopptt builtin may be used to tailor the behavior of history expansion. If the hhiissttvveerriiffyy shell - option is enabled (see the description of the sshhoopptt builtin), and rreeaadd-- - lliinnee is being used, history substitutions are not immediately passed to - the shell parser. Instead, the expanded line is reloaded into the - rreeaaddlliinnee editing buffer for further modification. If rreeaaddlliinnee is being - used, and the hhiissttrreeeeddiitt shell option is enabled, a failed history sub- - stitution will be reloaded into the rreeaaddlliinnee editing buffer for correc- - tion. The --pp option to the hhiissttoorryy builtin command may be used to see - what a history expansion will do before using it. The --ss option to the - hhiissttoorryy builtin may be used to add commands to the end of the history - list without actually executing them, so that they are available for - subsequent recall. + option is enabled (see the description of the sshhoopptt builtin below), and + rreeaaddlliinnee is being used, history substitutions are not immediately + passed to the shell parser. Instead, the expanded line is reloaded + into the rreeaaddlliinnee editing buffer for further modification. If rreeaaddlliinnee + is being used, and the hhiissttrreeeeddiitt shell option is enabled, a failed + history substitution will be reloaded into the rreeaaddlliinnee editing buffer + for correction. The --pp option to the hhiissttoorryy builtin command may be + used to see what a history expansion will do before using it. The --ss + option to the hhiissttoorryy builtin may be used to add commands to the end of + the history list without actually executing them, so that they are + available for subsequent recall. The shell allows control of the various characters used by the history expansion mechanism (see the description of hhiissttcchhaarrss above under SShheellll @@ -3574,8 +3670,12 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS Unless otherwise noted, each builtin command documented in this section as accepting options preceded by -- accepts ---- to signify the end of the - options. For example, the ::, ttrruuee, ffaallssee, and tteesstt builtins do not - accept options. + options. The ::, ttrruuee, ffaallssee, and tteesstt builtins do not accept options + and do not treat ---- specially. The eexxiitt, llooggoouutt, bbrreeaakk, ccoonnttiinnuuee, lleett, + and sshhiifftt builtins accept and process arguments beginning with -- with- + out requiring ----. Other builtins that accept arguments but are not + specified as accepting options interpret arguments beginning with -- as + invalid options and require ---- to prevent this interpretation. :: [_a_r_g_u_m_e_n_t_s] No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s and performing any specified redirections. A zero exit code is @@ -3744,18 +3844,22 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS The return value is true unless an invalid option is supplied, or no matches were generated. - ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--EE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_p_a_t] - [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] + ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_- + _p_a_t] [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_f_i_x] _n_a_m_e [_n_a_m_e _._._.] - ccoommpplleettee --pprr [--EE] [_n_a_m_e ...] + ccoommpplleettee --pprr [--DDEE] [_n_a_m_e ...] Specify how arguments to each _n_a_m_e should be completed. If the --pp option is supplied, or if no options are supplied, existing completion specifications are printed in a way that allows them to be reused as input. The --rr option removes a completion spec- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com- - pletion specifications. The --EE option indicates that the - remaining options and actions should apply to ``empty'' command - completion; that is, completion attempted on a blank line. + pletion specifications. The --DD option indicates that the + remaining options and actions should apply to the ``default'' + command completion; that is, completion attempted on a command + for which no completion has previously been defined. The --EE + option indicates that the remaining options and actions should + apply to ``empty'' command completion; that is, completion + attempted on a blank line. The process of applying these completion specifications when word completion is attempted is described above under PPrroo-- @@ -3835,7 +3939,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS Names of all shell variables. May also be spec- ified as --vv. --GG _g_l_o_b_p_a_t - The filename expansion pattern _g_l_o_b_p_a_t is expanded to + The pathname expansion pattern _g_l_o_b_p_a_t is expanded to generate the possible completions. --WW _w_o_r_d_l_i_s_t The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS @@ -3852,7 +3956,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY array variable. --XX _f_i_l_t_e_r_p_a_t - _f_i_l_t_e_r_p_a_t is a pattern as used for filename expansion. + _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion. It is applied to the list of possible completions gener- ated by the preceding options and arguments, and each completion matching _f_i_l_t_e_r_p_a_t is removed from the list. @@ -3871,129 +3975,134 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS for a _n_a_m_e for which no specification exists, or an error occurs adding a completion specification. - ccoommppoopptt [--oo _o_p_t_i_o_n] [++oo _o_p_t_i_o_n] [_n_a_m_e] + ccoommppoopptt [--oo _o_p_t_i_o_n] [--DDEE] [++oo _o_p_t_i_o_n] [_n_a_m_e] Modify completion options for each _n_a_m_e according to the _o_p_t_i_o_ns, or for the currently-execution completion if no _n_a_m_es are supplied. If no _o_p_t_i_o_ns are given, display the completion options for each _n_a_m_e or the current completion. The possible values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin - described above. - - The return value is true unless an invalid option is supplied, an - attempt is made to modify the options for a _n_a_m_e for which no comple- + described above. The --DD option indicates that the remaining + options should apply to the ``default'' command completion; that + is, completion attempted on a command for which no completion + has previously been defined. The --EE option indicates that the + remaining options should apply to ``empty'' command completion; + that is, completion attempted on a blank line. + + The return value is true unless an invalid option is supplied, an + attempt is made to modify the options for a _n_a_m_e for which no comple- tion specification exists, or an output error occurs. ccoonnttiinnuuee [_n] Resume the next iteration of the enclosing ffoorr, wwhhiillee, uunnttiill, or - sseelleecctt loop. If _n is specified, resume at the _nth enclosing - loop. _n must be >= 1. If _n is greater than the number of - enclosing loops, the last enclosing loop (the ``top-level'' + sseelleecctt loop. If _n is specified, resume at the _nth enclosing + loop. _n must be >= 1. If _n is greater than the number of + enclosing loops, the last enclosing loop (the ``top-level'' loop) is resumed. The return value is 0 unless _n is not greater than or equal to 1. ddeeccllaarree [--aaAAffFFiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] ttyyppeesseett [--aaAAffFFiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] - Declare variables and/or give them attributes. If no _n_a_m_es are - given then display the values of variables. The --pp option will + Declare variables and/or give them attributes. If no _n_a_m_es are + given then display the values of variables. The --pp option will display the attributes and values of each _n_a_m_e. When --pp is used with _n_a_m_e arguments, additional options are ignored. When --pp is - supplied without _n_a_m_e arguments, it will display the attributes - and values of all variables having the attributes specified by - the additional options. If no other options are supplied with - --pp, ddeeccllaarree will display the attributes and values of all shell - variables. The --ff option will restrict the display to shell + supplied without _n_a_m_e arguments, it will display the attributes + and values of all variables having the attributes specified by + the additional options. If no other options are supplied with + --pp, ddeeccllaarree will display the attributes and values of all shell + variables. The --ff option will restrict the display to shell functions. The --FF option inhibits the display of function defi- - nitions; only the function name and attributes are printed. If - the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source + nitions; only the function name and attributes are printed. If + the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source file name and line number where the function is defined are dis- - played as well. The --FF option implies --ff. The following - options can be used to restrict output to variables with the + played as well. The --FF option implies --ff. The following + options can be used to restrict output to variables with the specified attribute or to give variables attributes: - --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss + --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss above). - --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss + --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss above). --ff Use function names only. --ii The variable is treated as an integer; arithmetic evalua- - tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN )) is performed when the - variable is assigned a value. - --ll When the variable is assigned a value, all upper-case - characters are converted to lower-case. The upper-case + tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN above) is performed when + the variable is assigned a value. + --ll When the variable is assigned a value, all upper-case + characters are converted to lower-case. The upper-case attribute is disabled. --rr Make _n_a_m_es readonly. These names cannot then be assigned values by subsequent assignment statements or unset. - --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions - inherit the DDEEBBUUGG and RREETTUURRNN traps from the calling - shell. The trace attribute has no special meaning for + --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions + inherit the DDEEBBUUGG and RREETTUURRNN traps from the calling + shell. The trace attribute has no special meaning for variables. - --uu When the variable is assigned a value, all lower-case - characters are converted to upper-case. The lower-case + --uu When the variable is assigned a value, all lower-case + characters are converted to upper-case. The lower-case attribute is disabled. - --xx Mark _n_a_m_es for export to subsequent commands via the + --xx Mark _n_a_m_es for export to subsequent commands via the environment. - Using `+' instead of `-' turns off the attribute instead, with + Using `+' instead of `-' turns off the attribute instead, with the exceptions that ++aa may not be used to destroy an array vari- - able and ++rr wwiillll nnoott rreemmoovvee tthhee rreeaaddoonnllyy aattttrriibbuuttee.. WWhheenn uusseedd - iinn aa ffuunnccttiioonn,, mmaakkeess eeaacchh _n_a_m_e llooccaall,, aass wwiitthh tthhee llooccaall command. + able and ++rr will not remove the readonly attribute. When used + in a function, makes each _n_a_m_e local, as with the llooccaall command. If a variable name is followed by =_v_a_l_u_e, the value of the vari- - able is set to _v_a_l_u_e. The return value is 0 unless an invalid - option is encountered, an attempt is made to define a function - using ``-f foo=bar'', an attempt is made to assign a value to a - readonly variable, an attempt is made to assign a value to an + able is set to _v_a_l_u_e. The return value is 0 unless an invalid + option is encountered, an attempt is made to define a function + using ``-f foo=bar'', an attempt is made to assign a value to a + readonly variable, an attempt is made to assign a value to an array variable without using the compound assignment syntax (see - AArrrraayyss above), one of the _n_a_m_e_s is not a valid shell variable + AArrrraayyss above), one of the _n_a_m_e_s is not a valid shell variable name, an attempt is made to turn off readonly status for a read- - only variable, an attempt is made to turn off array status for - an array variable, or an attempt is made to display a non-exis- + only variable, an attempt is made to turn off array status for + an array variable, or an attempt is made to display a non-exis- tent function with --ff. ddiirrss [[++_n]] [[--_n]] [[--ccppllvv]] - Without options, displays the list of currently remembered - directories. The default display is on a single line with - directory names separated by spaces. Directories are added to - the list with the ppuusshhdd command; the ppooppdd command removes + Without options, displays the list of currently remembered + directories. The default display is on a single line with + directory names separated by spaces. Directories are added to + the list with the ppuusshhdd command; the ppooppdd command removes entries from the list. ++_n Displays the _nth entry counting from the left of the list shown by ddiirrss when invoked without options, starting with zero. - --_n Displays the _nth entry counting from the right of the + --_n Displays the _nth entry counting from the right of the list shown by ddiirrss when invoked without options, starting with zero. --cc Clears the directory stack by deleting all of the entries. - --ll Produces a longer listing; the default listing format + --ll Produces a longer listing; the default listing format uses a tilde to denote the home directory. --pp Print the directory stack with one entry per line. - --vv Print the directory stack with one entry per line, pre- + --vv Print the directory stack with one entry per line, pre- fixing each entry with its index in the stack. - The return value is 0 unless an invalid option is supplied or _n + The return value is 0 unless an invalid option is supplied or _n indexes beyond the end of the directory stack. ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ...] - Without options, each _j_o_b_s_p_e_c is removed from the table of - active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nnoorr --rr - iiss ssuupppplliieedd,, tthhee sshheellll''ss nnoottiioonn ooff tthhee _c_u_r_r_e_n_t _j_o_b iiss uusseedd.. IIff - tthhee --hh ooppttiioonn iiss ggiivveenn,, eeaacchh _j_o_b_s_p_e_c is not removed from the ta- - ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the - shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither - the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. + Without options, each _j_o_b_s_p_e_c is removed from the table of + active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nor --rr + is supplied, the shell's notion of the _c_u_r_r_e_n_t _j_o_b is used. If + the --hh option is given, each _j_o_b_s_p_e_c is not removed from the ta- + ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the + shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither + the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If no _j_o_b_s_p_e_c is supplied, the --aa option means to remove or mark - all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts - operation to running jobs. The return value is 0 unless a _j_o_b_- + all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts + operation to running jobs. The return value is 0 unless a _j_o_b_- _s_p_e_c does not specify a valid job. eecchhoo [--nneeEE] [_a_r_g ...] - Output the _a_r_gs, separated by spaces, followed by a newline. + Output the _a_r_gs, separated by spaces, followed by a newline. The return status is always 0. If --nn is specified, the trailing - newline is suppressed. If the --ee option is given, interpreta- - tion of the following backslash-escaped characters is enabled. - The --EE option disables the interpretation of these escape char- - acters, even on systems where they are interpreted by default. - The xxppgg__eecchhoo shell option may be used to dynamically determine - whether or not eecchhoo expands these escape characters by default. - eecchhoo does not interpret ---- to mean the end of options. eecchhoo + newline is suppressed. If the --ee option is given, interpreta- + tion of the following backslash-escaped characters is enabled. + The --EE option disables the interpretation of these escape char- + acters, even on systems where they are interpreted by default. + The xxppgg__eecchhoo shell option may be used to dynamically determine + whether or not eecchhoo expands these escape characters by default. + eecchhoo does not interpret ---- to mean the end of options. eecchhoo interprets the following escape sequences: \\aa alert (bell) \\bb backspace @@ -4005,187 +4114,187 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS \\tt horizontal tab \\vv vertical tab \\\\ backslash - \\00_n_n_n the eight-bit character whose value is the octal value + \\00_n_n_n the eight-bit character whose value is the octal value _n_n_n (zero to three octal digits) - \\xx_H_H the eight-bit character whose value is the hexadecimal + \\xx_H_H the eight-bit character whose value is the hexadecimal value _H_H (one or two hex digits) eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...] - Enable and disable builtin shell commands. Disabling a builtin + Enable and disable builtin shell commands. Disabling a builtin allows a disk command which has the same name as a shell builtin - to be executed without specifying a full pathname, even though - the shell normally searches for builtins before disk commands. - If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are + to be executed without specifying a full pathname, even though + the shell normally searches for builtins before disk commands. + If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are enabled. For example, to use the tteesstt binary found via the PPAATTHH - instead of the shell builtin version, run ``enable -n test''. - The --ff option means to load the new builtin command _n_a_m_e from + instead of the shell builtin version, run ``enable -n test''. + The --ff option means to load the new builtin command _n_a_m_e from shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading. - The --dd option will delete a builtin previously loaded with --ff. + The --dd option will delete a builtin previously loaded with --ff. If no _n_a_m_e arguments are given, or if the --pp option is supplied, a list of shell builtins is printed. With no other option argu- - ments, the list consists of all enabled shell builtins. If --nn - is supplied, only disabled builtins are printed. If --aa is sup- - plied, the list printed includes all builtins, with an indica- - tion of whether or not each is enabled. If --ss is supplied, the - output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return - value is 0 unless a _n_a_m_e is not a shell builtin or there is an + ments, the list consists of all enabled shell builtins. If --nn + is supplied, only disabled builtins are printed. If --aa is sup- + plied, the list printed includes all builtins, with an indica- + tion of whether or not each is enabled. If --ss is supplied, the + output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return + value is 0 unless a _n_a_m_e is not a shell builtin or there is an error loading a new builtin from a shared object. eevvaall [_a_r_g ...] - The _a_r_gs are read and concatenated together into a single com- - mand. This command is then read and executed by the shell, and - its exit status is returned as the value of eevvaall. If there are + The _a_r_gs are read and concatenated together into a single com- + mand. This command is then read and executed by the shell, and + its exit status is returned as the value of eevvaall. If there are no _a_r_g_s, or only null arguments, eevvaall returns 0. eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]] - If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process - is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If + If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process + is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If the --ll option is supplied, the shell places a dash at the begin- - ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what + ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what _l_o_g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with - an empty environment. If --aa is supplied, the shell passes _n_a_m_e + an empty environment. If --aa is supplied, the shell passes _n_a_m_e as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can- - not be executed for some reason, a non-interactive shell exits, - unless the shell option eexxeeccffaaiill is enabled, in which case it - returns failure. An interactive shell returns failure if the + not be executed for some reason, a non-interactive shell exits, + unless the shell option eexxeeccffaaiill is enabled, in which case it + returns failure. An interactive shell returns failure if the file cannot be executed. If _c_o_m_m_a_n_d is not specified, any redi- rections take effect in the current shell, and the return status - is 0. If there is a redirection error, the return status is 1. + is 0. If there is a redirection error, the return status is 1. eexxiitt [_n] - Cause the shell to exit with a status of _n. If _n is omitted, + Cause the shell to exit with a status of _n. If _n is omitted, the exit status is that of the last command executed. A trap on EEXXIITT is executed before the shell terminates. eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ... eexxppoorrtt --pp - The supplied _n_a_m_e_s are marked for automatic export to the envi- - ronment of subsequently executed commands. If the --ff option is - given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or - if the --pp option is supplied, a list of all names that are - exported in this shell is printed. The --nn option causes the - export property to be removed from each _n_a_m_e. If a variable - name is followed by =_w_o_r_d, the value of the variable is set to - _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid - option is encountered, one of the _n_a_m_e_s is not a valid shell + The supplied _n_a_m_e_s are marked for automatic export to the envi- + ronment of subsequently executed commands. If the --ff option is + given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or + if the --pp option is supplied, a list of all names that are + exported in this shell is printed. The --nn option causes the + export property to be removed from each _n_a_m_e. If a variable + name is followed by =_w_o_r_d, the value of the variable is set to + _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid + option is encountered, one of the _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a func- tion. ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t] ffcc --ss [_p_a_t=_r_e_p] [_c_m_d] - Fix Command. In the first form, a range of commands from _f_i_r_s_t - to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may - be specified as a string (to locate the last command beginning - with that string) or as a number (an index into the history + Fix Command. In the first form, a range of commands from _f_i_r_s_t + to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may + be specified as a string (to locate the last command beginning + with that string) or as a number (an index into the history list, where a negative number is used as an offset from the cur- rent command number). If _l_a_s_t is not specified it is set to the - current command for listing (so that ``fc -l -10'' prints the + current command for listing (so that ``fc -l -10'' prints the last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not spec- - ified it is set to the previous command for editing and -16 for + ified it is set to the previous command for editing and -16 for listing. - The --nn option suppresses the command numbers when listing. The - --rr option reverses the order of the commands. If the --ll option - is given, the commands are listed on standard output. Other- - wise, the editor given by _e_n_a_m_e is invoked on a file containing - those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT - variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set. - If neither variable is set, _v_i is used. When editing is com- + The --nn option suppresses the command numbers when listing. The + --rr option reverses the order of the commands. If the --ll option + is given, the commands are listed on standard output. Other- + wise, the editor given by _e_n_a_m_e is invoked on a file containing + those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT + variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set. + If neither variable is set, _v_i is used. When editing is com- plete, the edited commands are echoed and executed. - In the second form, _c_o_m_m_a_n_d is re-executed after each instance - of _p_a_t is replaced by _r_e_p. A useful alias to use with this is - ``r="fc -s"'', so that typing ``r cc'' runs the last command + In the second form, _c_o_m_m_a_n_d is re-executed after each instance + of _p_a_t is replaced by _r_e_p. A useful alias to use with this is + ``r="fc -s"'', so that typing ``r cc'' runs the last command beginning with ``cc'' and typing ``r'' re-executes the last com- mand. - If the first form is used, the return value is 0 unless an - invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history - lines out of range. If the --ee option is supplied, the return + If the first form is used, the return value is 0 unless an + invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history + lines out of range. If the --ee option is supplied, the return value is the value of the last command executed or failure if an error occurs with the temporary file of commands. If the second - form is used, the return status is that of the command re-exe- - cuted, unless _c_m_d does not specify a valid history line, in + form is used, the return status is that of the command re-exe- + cuted, unless _c_m_d does not specify a valid history line, in which case ffcc returns failure. ffgg [_j_o_b_s_p_e_c] - Resume _j_o_b_s_p_e_c in the foreground, and make it the current job. + Resume _j_o_b_s_p_e_c in the foreground, and make it the current job. If _j_o_b_s_p_e_c is not present, the shell's notion of the _c_u_r_r_e_n_t _j_o_b - is used. The return value is that of the command placed into - the foreground, or failure if run when job control is disabled + is used. The return value is that of the command placed into + the foreground, or failure if run when job control is disabled or, when run with job control enabled, if _j_o_b_s_p_e_c does not spec- - ify a valid job or _j_o_b_s_p_e_c specifies a job that was started + ify a valid job or _j_o_b_s_p_e_c specifies a job that was started without job control. ggeettooppttss _o_p_t_s_t_r_i_n_g _n_a_m_e [_a_r_g_s] - ggeettooppttss is used by shell procedures to parse positional parame- - ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog- - nized; if a character is followed by a colon, the option is - expected to have an argument, which should be separated from it - by white space. The colon and question mark characters may not - be used as option characters. Each time it is invoked, ggeettooppttss - places the next option in the shell variable _n_a_m_e, initializing + ggeettooppttss is used by shell procedures to parse positional parame- + ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog- + nized; if a character is followed by a colon, the option is + expected to have an argument, which should be separated from it + by white space. The colon and question mark characters may not + be used as option characters. Each time it is invoked, ggeettooppttss + places the next option in the shell variable _n_a_m_e, initializing _n_a_m_e if it does not exist, and the index of the next argument to be processed into the variable OOPPTTIINNDD. OOPPTTIINNDD is initialized to - 1 each time the shell or a shell script is invoked. When an - option requires an argument, ggeettooppttss places that argument into - the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automati- - cally; it must be manually reset between multiple calls to + 1 each time the shell or a shell script is invoked. When an + option requires an argument, ggeettooppttss places that argument into + the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automati- + cally; it must be manually reset between multiple calls to ggeettooppttss within the same shell invocation if a new set of parame- ters is to be used. - When the end of options is encountered, ggeettooppttss exits with a - return value greater than zero. OOPPTTIINNDD is set to the index of + When the end of options is encountered, ggeettooppttss exits with a + return value greater than zero. OOPPTTIINNDD is set to the index of the first non-option argument, and nnaammee is set to ?. - ggeettooppttss normally parses the positional parameters, but if more + ggeettooppttss normally parses the positional parameters, but if more arguments are given in _a_r_g_s, ggeettooppttss parses those instead. - ggeettooppttss can report errors in two ways. If the first character - of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In - normal operation diagnostic messages are printed when invalid - options or missing option arguments are encountered. If the - variable OOPPTTEERRRR is set to 0, no error messages will be dis- + ggeettooppttss can report errors in two ways. If the first character + of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In + normal operation diagnostic messages are printed when invalid + options or missing option arguments are encountered. If the + variable OOPPTTEERRRR is set to 0, no error messages will be dis- played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon. If an invalid option is seen, ggeettooppttss places ? into _n_a_m_e and, if - not silent, prints an error message and unsets OOPPTTAARRGG. If - ggeettooppttss is silent, the option character found is placed in + not silent, prints an error message and unsets OOPPTTAARRGG. If + ggeettooppttss is silent, the option character found is placed in OOPPTTAARRGG and no diagnostic message is printed. - If a required argument is not found, and ggeettooppttss is not silent, - a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a - diagnostic message is printed. If ggeettooppttss is silent, then a - colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option + If a required argument is not found, and ggeettooppttss is not silent, + a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a + diagnostic message is printed. If ggeettooppttss is silent, then a + colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option character found. - ggeettooppttss returns true if an option, specified or unspecified, is + ggeettooppttss returns true if an option, specified or unspecified, is found. It returns false if the end of options is encountered or an error occurs. hhaasshh [--llrr] [--pp _f_i_l_e_n_a_m_e] [--ddtt] [_n_a_m_e] - For each _n_a_m_e, the full file name of the command is determined + For each _n_a_m_e, the full file name of the command is determined by searching the directories in $$PPAATTHH and remembered. If the --pp option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e is used as the full file name of the command. The --rr option causes - the shell to forget all remembered locations. The --dd option + the shell to forget all remembered locations. The --dd option causes the shell to forget the remembered location of each _n_a_m_e. - If the --tt option is supplied, the full pathname to which each - _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are - supplied with --tt, the _n_a_m_e is printed before the hashed full + If the --tt option is supplied, the full pathname to which each + _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are + supplied with --tt, the _n_a_m_e is printed before the hashed full pathname. The --ll option causes output to be displayed in a for- - mat that may be reused as input. If no arguments are given, or + mat that may be reused as input. If no arguments are given, or if only --ll is supplied, information about remembered commands is - printed. The return status is true unless a _n_a_m_e is not found + printed. The return status is true unless a _n_a_m_e is not found or an invalid option is supplied. hheellpp [--ddmmss] [_p_a_t_t_e_r_n] - Display helpful information about builtin commands. If _p_a_t_t_e_r_n - is specified, hheellpp gives detailed help on all commands matching - _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control + Display helpful information about builtin commands. If _p_a_t_t_e_r_n + is specified, hheellpp gives detailed help on all commands matching + _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control structures is printed. --dd Display a short description of each _p_a_t_t_e_r_n - --mm Display the description of each _p_a_t_t_e_r_n in a manpage-like + --mm Display the description of each _p_a_t_t_e_r_n in a manpage-like format --ss Display only a short usage synopsis for each _p_a_t_t_e_r_n The return status is 0 unless no command matches _p_a_t_t_e_r_n. @@ -4198,132 +4307,133 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS hhiissttoorryy --ss _a_r_g [_a_r_g _._._.] With no options, display the command history list with line num- bers. Lines listed with a ** have been modified. An argument of - _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE-- - FFOORRMMAATT is set and not null, it is used as a format string for - _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis- - played history entry. No intervening blank is printed between - the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is - supplied, it is used as the name of the history file; if not, - the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the + _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE-- + FFOORRMMAATT is set and not null, it is used as a format string for + _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis- + played history entry. No intervening blank is printed between + the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is + supplied, it is used as the name of the history file; if not, + the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the following meanings: --cc Clear the history list by deleting all the entries. --dd _o_f_f_s_e_t Delete the history entry at position _o_f_f_s_e_t. - --aa Append the ``new'' history lines (history lines entered - since the beginning of the current bbaasshh session) to the + --aa Append the ``new'' history lines (history lines entered + since the beginning of the current bbaasshh session) to the history file. - --nn Read the history lines not already read from the history - file into the current history list. These are lines - appended to the history file since the beginning of the + --nn Read the history lines not already read from the history + file into the current history list. These are lines + appended to the history file since the beginning of the current bbaasshh session. --rr Read the contents of the history file and use them as the current history. - --ww Write the current history to the history file, overwrit- + --ww Write the current history to the history file, overwrit- ing the history file's contents. - --pp Perform history substitution on the following _a_r_g_s and - display the result on the standard output. Does not - store the results in the history list. Each _a_r_g must be + --pp Perform history substitution on the following _a_r_g_s and + display the result on the standard output. Does not + store the results in the history list. Each _a_r_g must be quoted to disable normal history expansion. - --ss Store the _a_r_g_s in the history list as a single entry. - The last command in the history list is removed before + --ss Store the _a_r_g_s in the history list as a single entry. + The last command in the history list is removed before the _a_r_g_s are added. - If the HHIISSTTTTIIMMEEFFOORRMMAATT is set, the time stamp information associ- - ated with each history entry is written to the history file, - marked with the history comment character. When the history - file is read, lines beginning with the history comment character - followed immediately by a digit are interpreted as timestamps - for the previous history line. The return value is 0 unless an - invalid option is encountered, an error occurs while reading or - writing the history file, an invalid _o_f_f_s_e_t is supplied as an - argument to --dd, or the history expansion supplied as an argument - to --pp fails. + If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, the time stamp informa- + tion associated with each history entry is written to the his- + tory file, marked with the history comment character. When the + history file is read, lines beginning with the history comment + character followed immediately by a digit are interpreted as + timestamps for the previous history line. The return value is 0 + unless an invalid option is encountered, an error occurs while + reading or writing the history file, an invalid _o_f_f_s_e_t is sup- + plied as an argument to --dd, or the history expansion supplied as + an argument to --pp fails. jjoobbss [--llnnpprrss] [ _j_o_b_s_p_e_c ... ] jjoobbss --xx _c_o_m_m_a_n_d [ _a_r_g_s ... ] The first form lists the active jobs. The options have the fol- lowing meanings: --ll List process IDs in addition to the normal information. - --pp List only the process ID of the job's process group + --pp List only the process ID of the job's process group leader. - --nn Display information only about jobs that have changed - status since the user was last notified of their status. + --nn Display information only about jobs that have changed + status since the user was last notified of their status. --rr Restrict output to running jobs. --ss Restrict output to stopped jobs. - If _j_o_b_s_p_e_c is given, output is restricted to information about - that job. The return status is 0 unless an invalid option is + If _j_o_b_s_p_e_c is given, output is restricted to information about + that job. The return status is 0 unless an invalid option is encountered or an invalid _j_o_b_s_p_e_c is supplied. If the --xx option is supplied, jjoobbss replaces any _j_o_b_s_p_e_c found in - _c_o_m_m_a_n_d or _a_r_g_s with the corresponding process group ID, and + _c_o_m_m_a_n_d or _a_r_g_s with the corresponding process group ID, and executes _c_o_m_m_a_n_d passing it _a_r_g_s, returning its exit status. kkiillll [--ss _s_i_g_s_p_e_c | --nn _s_i_g_n_u_m | --_s_i_g_s_p_e_c] [_p_i_d | _j_o_b_s_p_e_c] ... kkiillll --ll [_s_i_g_s_p_e_c | _e_x_i_t___s_t_a_t_u_s] - Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes - named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive - signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or - a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not - present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the - signal names. If any arguments are supplied when --ll is given, - the names of the signals corresponding to the arguments are + Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes + named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive + signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or + a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not + present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the + signal names. If any arguments are supplied when --ll is given, + the names of the signals corresponding to the arguments are listed, and the return status is 0. The _e_x_i_t___s_t_a_t_u_s argument to - --ll is a number specifying either a signal number or the exit - status of a process terminated by a signal. kkiillll returns true - if at least one signal was successfully sent, or false if an + --ll is a number specifying either a signal number or the exit + status of a process terminated by a signal. kkiillll returns true + if at least one signal was successfully sent, or false if an error occurs or an invalid option is encountered. lleett _a_r_g [_a_r_g ...] Each _a_r_g is an arithmetic expression to be evaluated (see AARRIITTHH-- - MMEETTIICC EEVVAALLUUAATTIIOONN). If the last _a_r_g evaluates to 0, lleett returns - 1; 0 is returned otherwise. + MMEETTIICC EEVVAALLUUAATTIIOONN above). If the last _a_r_g evaluates to 0, lleett + returns 1; 0 is returned otherwise. llooccaall [_o_p_t_i_o_n] [_n_a_m_e[=_v_a_l_u_e] ...] - For each argument, a local variable named _n_a_m_e is created, and - assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted + For each argument, a local variable named _n_a_m_e is created, and + assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted by ddeeccllaarree. When llooccaall is used within a function, it causes the - variable _n_a_m_e to have a visible scope restricted to that func- + variable _n_a_m_e to have a visible scope restricted to that func- tion and its children. With no operands, llooccaall writes a list of - local variables to the standard output. It is an error to use + local variables to the standard output. It is an error to use llooccaall when not within a function. The return status is 0 unless - llooccaall is used outside a function, an invalid _n_a_m_e is supplied, + llooccaall is used outside a function, an invalid _n_a_m_e is supplied, or _n_a_m_e is a readonly variable. llooggoouutt Exit a login shell. - mmaappffiillee [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] + mmaappffiillee [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y] - rreeaaddaarrrraayy [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] + rreeaaddaarrrraayy [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y] - Read lines from the standard input into array variable _a_r_r_a_y, or - from file descriptor _f_d if the --uu option is supplied. The vari- - able MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if supplied, have - the following meanings: - --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are + Read lines from the standard input into the indexed array vari- + able _a_r_r_a_y, or from file descriptor _f_d if the --uu option is sup- + plied. The variable MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if + supplied, have the following meanings: + --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are copied. - --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default + --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default index is 0. --ss Discard the first _c_o_u_n_t lines read. - --tt Remove a trailing line from each line read. - --uu Read lines from file descriptor _f_d instead of the stan- + --tt Remove a trailing newline from each line read. + --uu Read lines from file descriptor _f_d instead of the stan- dard input. - --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The + --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The --cc option specifies _q_u_a_n_t_u_m. - --cc Specify the number of lines read between each call to + --cc Specify the number of lines read between each call to _c_a_l_l_b_a_c_k. - If --CC is specified without --cc, the default quantum is 5000. + If --CC is specified without --cc, the default quantum is 5000. When _c_a_l_l_b_a_c_k is evaluated, it is supplied the index of the next - array element to be assigned as an additional argument. _c_a_l_l_- - _b_a_c_k is evaluated after the line is read but before the array + array element to be assigned as an additional argument. _c_a_l_l_- + _b_a_c_k is evaluated after the line is read but before the array element is assigned. - If not supplied with an explicit origin, mmaappffiillee will clear + If not supplied with an explicit origin, mmaappffiillee will clear _a_r_r_a_y before assigning to it. - mmaappffiillee returns successfully unless an invalid option or option - argument is supplied, or _a_r_r_a_y is invalid or unassignable. + mmaappffiillee returns successfully unless an invalid option or option + argument is supplied, _a_r_r_a_y is invalid or unassignable, or if + _a_r_r_a_y is not an indexed array. ppooppdd [-nn] [+_n] [-_n] Removes entries from the directory stack. With no arguments, @@ -4406,8 +4516,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS occurs while reading the name of the current directory or an invalid option is supplied. - rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [-- _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt - _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] + rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp + _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] One line is read from the standard input, or from the file descriptor _f_d supplied as an argument to the --uu option, and the first word is assigned to the first _n_a_m_e, the second word to the @@ -4436,93 +4546,107 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS placed into the editing buffer before editing begins. --nn _n_c_h_a_r_s rreeaadd returns after reading _n_c_h_a_r_s characters rather than - waiting for a complete line of input. + waiting for a complete line of input, but honor a delim- + iter if fewer than _n_c_h_a_r_s characters are read before the + delimiter. + --NN _n_c_h_a_r_s + rreeaadd returns after reading exactly _n_c_h_a_r_s characters + rather than waiting for a complete line of input, unless + EOF is encountered or rreeaadd times out. Delimiter charac- + ters encountered in the input are not treated specially + and do not cause rreeaadd to return until _n_c_h_a_r_s characters + are read. --pp _p_r_o_m_p_t Display _p_r_o_m_p_t on standard error, without a trailing new- line, before attempting to read any input. The prompt is displayed only if input is coming from a terminal. --rr Backslash does not act as an escape character. The back- - slash is considered to be part of the line. In particu- - lar, a backslash-newline pair may not be used as a line + slash is considered to be part of the line. In particu- + lar, a backslash-newline pair may not be used as a line continuation. --ss Silent mode. If input is coming from a terminal, charac- ters are not echoed. --tt _t_i_m_e_o_u_t - Cause rreeaadd to time out and return failure if a complete - line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_- - _o_u_t may be a decimal number with a fractional portion - following the decimal point. This option is only effec- - tive if rreeaadd is reading input from a terminal, pipe, or - other special file; it has no effect when reading from - regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns success if - input is available on the specified file descriptor, - failure otherwise. The exit status is greater than 128 + Cause rreeaadd to time out and return failure if a complete + line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_- + _o_u_t may be a decimal number with a fractional portion + following the decimal point. This option is only effec- + tive if rreeaadd is reading input from a terminal, pipe, or + other special file; it has no effect when reading from + regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns success if + input is available on the specified file descriptor, + failure otherwise. The exit status is greater than 128 if the timeout is exceeded. --uu _f_d Read input from file descriptor _f_d. If no _n_a_m_e_s are supplied, the line read is assigned to the vari- - able RREEPPLLYY. The return code is zero, unless end-of-file is - encountered, rreeaadd times out (in which case the return code is - greater than 128), or an invalid file descriptor is supplied as + able RREEPPLLYY. The return code is zero, unless end-of-file is + encountered, rreeaadd times out (in which case the return code is + greater than 128), or an invalid file descriptor is supplied as the argument to --uu. rreeaaddoonnllyy [--aaAAppff] [_n_a_m_e[=_w_o_r_d] ...] - The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s - may not be changed by subsequent assignment. If the --ff option - is supplied, the functions corresponding to the _n_a_m_e_s are so - marked. The --aa option restricts the variables to indexed - arrays; the --AA option restricts the variables to associative - arrays. If no _n_a_m_e arguments are given, or if the --pp option is - supplied, a list of all readonly names is printed. The --pp - option causes output to be displayed in a format that may be - reused as input. If a variable name is followed by =_w_o_r_d, the - value of the variable is set to _w_o_r_d. The return status is 0 + The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s + may not be changed by subsequent assignment. If the --ff option + is supplied, the functions corresponding to the _n_a_m_e_s are so + marked. The --aa option restricts the variables to indexed + arrays; the --AA option restricts the variables to associative + arrays. If no _n_a_m_e arguments are given, or if the --pp option is + supplied, a list of all readonly names is printed. The --pp + option causes output to be displayed in a format that may be + reused as input. If a variable name is followed by =_w_o_r_d, the + value of the variable is set to _w_o_r_d. The return status is 0 unless an invalid option is encountered, one of the _n_a_m_e_s is not - a valid shell variable name, or --ff is supplied with a _n_a_m_e that + a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a function. rreettuurrnn [_n] - Causes a function to exit with the return value specified by _n. - If _n is omitted, the return status is that of the last command - executed in the function body. If used outside a function, but - during execution of a script by the .. (ssoouurrccee) command, it + Causes a function to exit with the return value specified by _n. + If _n is omitted, the return status is that of the last command + executed in the function body. If used outside a function, but + during execution of a script by the .. (ssoouurrccee) command, it causes the shell to stop executing that script and return either - _n or the exit status of the last command executed within the - script as the exit status of the script. If used outside a - function and not during execution of a script by .., the return + _n or the exit status of the last command executed within the + script as the exit status of the script. If used outside a + function and not during execution of a script by .., the return status is false. Any command associated with the RREETTUURRNN trap is - executed before execution resumes after the function or script. + executed before execution resumes after the function or script. sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n] [_a_r_g ...] sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n] [_a_r_g ...] - Without options, the name and value of each shell variable are + Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables. Read-only variables can- - not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. - The output is sorted according to the current locale. When - options are specified, they set or unset shell attributes. Any - arguments remaining after option processing are treated as val- + not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. + The output is sorted according to the current locale. When + options are specified, they set or unset shell attributes. Any + arguments remaining after option processing are treated as val- ues for the positional parameters and are assigned, in order, to - $$11, $$22, ...... $$_n. Options, if specified, have the following + $$11, $$22, ...... $$_n. Options, if specified, have the following meanings: - --aa Automatically mark variables and functions which are - modified or created for export to the environment of + --aa Automatically mark variables and functions which are + modified or created for export to the environment of subsequent commands. - --bb Report the status of terminated background jobs immedi- + --bb Report the status of terminated background jobs immedi- ately, rather than before the next primary prompt. This is effective only when job control is enabled. - --ee Exit immediately if a _s_i_m_p_l_e _c_o_m_m_a_n_d (see SSHHEELLLL GGRRAAMMMMAARR + --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a + single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in + parentheses, or one of the commands executed as part of + a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR above) exits with a non-zero status. The shell does not exit if the command that fails is part of the command list immediately following a wwhhiillee or uunnttiill keyword, - part of the test in an iiff statement, part of a command - executed in a &&&& or |||| list, any command in a pipeline - but the last, or if the command's return value is being - inverted via !!. Failing simple commands that are part - of shell functions or command lists enclosed in braces - or parentheses satisfying the above conditions do not - cause the shell to exit. A trap on EERRRR, if set, is exe- - cuted before the shell exits. + part of the test following the iiff or eelliiff reserved + words, part of any command executed in a &&&& or |||| list + except the command following the final &&&& or ||||, any + command in a pipeline but the last, or if the command's + return value is being inverted with !!. A trap on EERRRR, + if set, is executed before the shell exits. This option + applies to the shell environment and each subshell envi- + ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT + above), and may cause subshells to exit before executing + all the commands in the subshell. --ff Disable pathname expansion. --hh Remember the location of commands as they are looked up for execution. This is enabled by default. @@ -4549,11 +4673,11 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS is interactive, unless the shell is started with the ----nnooeeddiittiinngg option. This also affects the editing interface used for rreeaadd --ee. + eerrrreexxiitt Same as --ee. eerrrrttrraaccee Same as --EE. ffuunnccttrraaccee Same as --TT. - eerrrreexxiitt Same as --ee. hhaasshhaallll Same as --hh. hhiisstteexxppaanndd Same as --HH. @@ -4600,20 +4724,22 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and $$BBAASSHH__EENNVV files are not processed, shell functions are not inherited from the environment, and the SSHHEELLLLOOPPTTSS, - CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they appear in the - environment, are ignored. If the shell is started with - the effective user (group) id not equal to the real user - (group) id, and the --pp option is not supplied, these - actions are taken and the effective user id is set to - the real user id. If the --pp option is supplied at - startup, the effective user id is not reset. Turning - this option off causes the effective user and group ids - to be set to the real user and group ids. + BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they + appear in the environment, are ignored. If the shell is + started with the effective user (group) id not equal to + the real user (group) id, and the --pp option is not sup- + plied, these actions are taken and the effective user id + is set to the real user id. If the --pp option is sup- + plied at startup, the effective user id is not reset. + Turning this option off causes the effective user and + group ids to be set to the real user and group ids. --tt Exit after reading and executing one command. - --uu Treat unset variables as an error when performing param- - eter expansion. If expansion is attempted on an unset - variable, the shell prints an error message, and, if not - interactive, exits with a non-zero status. + --uu Treat unset variables and parameters other than the spe- + cial parameters "@" and "*" as an error when performing + parameter expansion. If expansion is attempted on an + unset variable or parameter, the shell prints an error + message, and, if not interactive, exits with a non-zero + status. --vv Print shell input lines as they are read. --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee command, sseelleecctt command, or arithmetic ffoorr command, dis- @@ -4732,61 +4858,70 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS If set, bbaasshh changes its behavior to that of version 3.1 with respect to quoted arguments to the conditional com- mand's =~ operator. + ccoommppaatt3322 + If set, bbaasshh changes its behavior to that of version 3.2 + with respect to locale-specific string comparison when + using the conditional command's < and > operators. + ccoommppaatt4400 + If set, bbaasshh changes its behavior to that of version 4.0 + with respect to locale-specific string comparison when + using the conditional command's < and > operators and + the effect of interrupting a command list. ddiirrssppeellll - If set, bbaasshh attempts spelling correction on directory - names during word completion if the directory name ini- + If set, bbaasshh attempts spelling correction on directory + names during word completion if the directory name ini- tially supplied does not exist. - ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in + ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in the results of pathname expansion. eexxeeccffaaiill If set, a non-interactive shell will not exit if it can- - not execute the file specified as an argument to the - eexxeecc builtin command. An interactive shell does not + not execute the file specified as an argument to the + eexxeecc builtin command. An interactive shell does not exit if eexxeecc fails. eexxppaanndd__aalliiaasseess - If set, aliases are expanded as described above under + If set, aliases are expanded as described above under AALLIIAASSEESS. This option is enabled by default for interac- tive shells. eexxttddeebbuugg - If set, behavior intended for use by debuggers is + If set, behavior intended for use by debuggers is enabled: 11.. The --FF option to the ddeeccllaarree builtin displays the source file name and line number corresponding to each function name supplied as an argument. - 22.. If the command run by the DDEEBBUUGG trap returns a - non-zero value, the next command is skipped and + 22.. If the command run by the DDEEBBUUGG trap returns a + non-zero value, the next command is skipped and not executed. - 33.. If the command run by the DDEEBBUUGG trap returns a - value of 2, and the shell is executing in a sub- - routine (a shell function or a shell script exe- - cuted by the .. or ssoouurrccee builtins), a call to + 33.. If the command run by the DDEEBBUUGG trap returns a + value of 2, and the shell is executing in a sub- + routine (a shell function or a shell script exe- + cuted by the .. or ssoouurrccee builtins), a call to rreettuurrnn is simulated. - 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described + 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described in their descriptions above. - 55.. Function tracing is enabled: command substitu- + 55.. Function tracing is enabled: command substitu- tion, shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps. - 66.. Error tracing is enabled: command substitution, - shell functions, and subshells invoked with (( + 66.. Error tracing is enabled: command substitution, + shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the EERRRROORR trap. eexxttgglloobb If set, the extended pattern matching features described above under PPaatthhnnaammee EExxppaannssiioonn are enabled. eexxttqquuoottee - If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed - within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double + If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed + within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double quotes. This option is enabled by default. ffaaiillgglloobb - If set, patterns which fail to match filenames during + If set, patterns which fail to match filenames during pathname expansion result in an expansion error. ffoorrccee__ffiiggnnoorree - If set, the suffixes specified by the FFIIGGNNOORREE shell - variable cause words to be ignored when performing word + If set, the suffixes specified by the FFIIGGNNOORREE shell + variable cause words to be ignored when performing word completion even if the ignored words are the only possi- ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a - description of FFIIGGNNOORREE. This option is enabled by + description of FFIIGGNNOORREE. This option is enabled by default. gglloobbssttaarr - If set, the pattern **** used in a filename expansion con- + If set, the pattern **** used in a pathname expansion con- text will match a files and zero or more directories and subdirectories. If the pattern is followed by a //, only directories and subdirectories match. @@ -4794,58 +4929,58 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS If set, shell error messages are written in the standard GNU error message format. hhiissttaappppeenndd - If set, the history list is appended to the file named - by the value of the HHIISSTTFFIILLEE variable when the shell + If set, the history list is appended to the file named + by the value of the HHIISSTTFFIILLEE variable when the shell exits, rather than overwriting the file. hhiissttrreeeeddiitt - If set, and rreeaaddlliinnee is being used, a user is given the + If set, and rreeaaddlliinnee is being used, a user is given the opportunity to re-edit a failed history substitution. hhiissttvveerriiffyy - If set, and rreeaaddlliinnee is being used, the results of his- - tory substitution are not immediately passed to the - shell parser. Instead, the resulting line is loaded + If set, and rreeaaddlliinnee is being used, the results of his- + tory substitution are not immediately passed to the + shell parser. Instead, the resulting line is loaded into the rreeaaddlliinnee editing buffer, allowing further modi- fication. hhoossttccoommpplleettee If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to - perform hostname completion when a word containing a @@ - is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE + perform hostname completion when a word containing a @@ + is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE above). This is enabled by default. hhuuppoonneexxiitt If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter- active login shell exits. iinntteerraaccttiivvee__ccoommmmeennttss If set, allow a word beginning with ## to cause that word - and all remaining characters on that line to be ignored - in an interactive shell (see CCOOMMMMEENNTTSS above). This + and all remaining characters on that line to be ignored + in an interactive shell (see CCOOMMMMEENNTTSS above). This option is enabled by default. - lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line + lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon separators where possible. llooggiinn__sshheellll - The shell sets this option if it is started as a login - shell (see IINNVVOOCCAATTIIOONN above). The value may not be + The shell sets this option if it is started as a login + shell (see IINNVVOOCCAATTIIOONN above). The value may not be changed. mmaaiillwwaarrnn - If set, and a file that bbaasshh is checking for mail has - been accessed since the last time it was checked, the - message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- + If set, and a file that bbaasshh is checking for mail has + been accessed since the last time it was checked, the + message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- played. nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn - If set, and rreeaaddlliinnee is being used, bbaasshh will not + If set, and rreeaaddlliinnee is being used, bbaasshh will not attempt to search the PPAATTHH for possible completions when completion is attempted on an empty line. nnooccaasseegglloobb - If set, bbaasshh matches filenames in a case-insensitive + If set, bbaasshh matches filenames in a case-insensitive fashion when performing pathname expansion (see PPaatthhnnaammee EExxppaannssiioonn above). nnooccaasseemmaattcchh - If set, bbaasshh matches patterns in a case-insensitive + If set, bbaasshh matches patterns in a case-insensitive fashion when performing matching while executing ccaassee or [[[[ conditional commands. nnuullllgglloobb - If set, bbaasshh allows patterns which match no files (see - PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, + If set, bbaasshh allows patterns which match no files (see + PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, rather than themselves. pprrooggccoommpp If set, the programmable completion facilities (see PPrroo-- @@ -4853,47 +4988,47 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS enabled by default. pprroommppttvvaarrss If set, prompt strings undergo parameter expansion, com- - mand substitution, arithmetic expansion, and quote - removal after being expanded as described in PPRROOMMPPTTIINNGG + mand substitution, arithmetic expansion, and quote + removal after being expanded as described in PPRROOMMPPTTIINNGG above. This option is enabled by default. rreessttrriicctteedd__sshheellll - The shell sets this option if it is started in + The shell sets this option if it is started in restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value - may not be changed. This is not reset when the startup - files are executed, allowing the startup files to dis- + may not be changed. This is not reset when the startup + files are executed, allowing the startup files to dis- cover whether or not a shell is restricted. sshhiifftt__vveerrbboossee - If set, the sshhiifftt builtin prints an error message when + If set, the sshhiifftt builtin prints an error message when the shift count exceeds the number of positional parame- ters. ssoouurrcceeppaatthh If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to - find the directory containing the file supplied as an + find the directory containing the file supplied as an argument. This option is enabled by default. xxppgg__eecchhoo - If set, the eecchhoo builtin expands backslash-escape + If set, the eecchhoo builtin expands backslash-escape sequences by default. ssuussppeenndd [--ff] - Suspend the execution of this shell until it receives a SSIIGGCCOONNTT + Suspend the execution of this shell until it receives a SSIIGGCCOONNTT signal. A login shell cannot be suspended; the --ff option can be used to override this and force the suspension. The return sta- - tus is 0 unless the shell is a login shell and --ff is not sup- + tus is 0 unless the shell is a login shell and --ff is not sup- plied, or if job control is not enabled. tteesstt _e_x_p_r [[ _e_x_p_r ]] - Return a status of 0 or 1 depending on the evaluation of the - conditional expression _e_x_p_r. Each operator and operand must be - a separate argument. Expressions are composed of the primaries - described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not + Return a status of 0 or 1 depending on the evaluation of the + conditional expression _e_x_p_r. Each operator and operand must be + a separate argument. Expressions are composed of the primaries + described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not accept any options, nor does it accept and ignore an argument of ---- as signifying the end of options. - Expressions may be combined using the following operators, + Expressions may be combined using the following operators, listed in decreasing order of precedence. The evaluation depends on the number of arguments; see below. !! _e_x_p_r True if _e_x_p_r is false. (( _e_x_p_r )) - Returns the value of _e_x_p_r. This may be used to override + Returns the value of _e_x_p_r. This may be used to override the normal precedence of operators. _e_x_p_r_1 -aa _e_x_p_r_2 True if both _e_x_p_r_1 and _e_x_p_r_2 are true. @@ -4910,73 +5045,78 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS null. 2 arguments If the first argument is !!, the expression is true if and - only if the second argument is null. If the first argu- - ment is one of the unary conditional operators listed - above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is + only if the second argument is null. If the first argu- + ment is one of the unary conditional operators listed + above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is true if the unary test is true. If the first argument is not a valid unary conditional operator, the expression is false. 3 arguments - If the second argument is one of the binary conditional + If the second argument is one of the binary conditional operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the result of the expression is the result of the binary test - using the first and third arguments as operands. The --aa - and --oo operators are considered binary operators when - there are three arguments. If the first argument is !!, - the value is the negation of the two-argument test using + using the first and third arguments as operands. The --aa + and --oo operators are considered binary operators when + there are three arguments. If the first argument is !!, + the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly (( and the third argument is exactly )), the result - is the one-argument test of the second argument. Other- + is the one-argument test of the second argument. Other- wise, the expression is false. 4 arguments If the first argument is !!, the result is the negation of - the three-argument expression composed of the remaining + the three-argument expression composed of the remaining arguments. Otherwise, the expression is parsed and eval- - uated according to precedence using the rules listed + uated according to precedence using the rules listed above. 5 or more arguments - The expression is parsed and evaluated according to + The expression is parsed and evaluated according to precedence using the rules listed above. - ttiimmeess Print the accumulated user and system times for the shell and + ttiimmeess Print the accumulated user and system times for the shell and for processes run from the shell. The return status is 0. ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...] - The command _a_r_g is to be read and executed when the shell - receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a - single _s_i_g_s_p_e_c) or --, each specified signal is reset to its - original disposition (the value it had upon entrance to the - shell). If _a_r_g is the null string the signal specified by each - _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. - If _a_r_g is not present and --pp has been supplied, then the trap - commands associated with each _s_i_g_s_p_e_c are displayed. If no - arguments are supplied or if only --pp is given, ttrraapp prints the - list of commands associated with each signal. The --ll option - causes the shell to print a list of signal names and their cor- - responding numbers. Each _s_i_g_s_p_e_c is either a signal name - defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are - case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c - is EEXXIITT (0) the command _a_r_g is executed on exit from the shell. - If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every - _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, _s_e_l_e_c_t command, every - arithmetic _f_o_r command, and before the first command executes in - a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the - description of the eexxttddeebbuugg option to the sshhoopptt builtin for - details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR, - the command _a_r_g is executed whenever a simple command has a - non-zero exit status, subject to the following conditions. The - EERRRR trap is not executed if the failed command is part of the - command list immediately following a wwhhiillee or uunnttiill keyword, - part of the test in an _i_f statement, part of a command executed - in a &&&& or |||| list, or if the command's return value is being - inverted via !!. These are the same conditions obeyed by the - eerrrreexxiitt option. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is exe- - cuted each time a shell function or a script executed with the .. - or ssoouurrccee builtins finishes executing. Signals ignored upon - entry to the shell cannot be trapped or reset. Trapped signals - that are not being ignored are reset to their original values in - a child process when it is created. The return status is false - if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. + The command _a_r_g is to be read and executed when the shell + receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a + single _s_i_g_s_p_e_c) or --, each specified signal is reset to its + original disposition (the value it had upon entrance to the + shell). If _a_r_g is the null string the signal specified by each + _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. + If _a_r_g is not present and --pp has been supplied, then the trap + commands associated with each _s_i_g_s_p_e_c are displayed. If no + arguments are supplied or if only --pp is given, ttrraapp prints the + list of commands associated with each signal. The --ll option + causes the shell to print a list of signal names and their cor- + responding numbers. Each _s_i_g_s_p_e_c is either a signal name + defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are + case insensitive and the SIG prefix is optional. + + If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit + from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- + cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, + _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the + first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR + above). Refer to the description of the eexxttddeebbuugg option to the + sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a + _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell + function or a script executed with the .. or ssoouurrccee builtins fin- + ishes executing. + + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim- + ple command has a non-zero exit status, subject to the following + conditions. The EERRRR trap is not executed if the failed command + is part of the command list immediately following a wwhhiillee or + uunnttiill keyword, part of the test in an _i_f statement, part of a + command executed in a &&&& or |||| list, or if the command's return + value is being inverted via !!. These are the same conditions + obeyed by the eerrrreexxiitt option. + + Signals ignored upon entry to the shell cannot be trapped or + reset. Trapped signals that are not being ignored are reset to + their original values in a subshell or subshell environment when + one is created. The return status is false if any _s_i_g_s_p_e_c is + invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] With no options, indicate how each _n_a_m_e would be interpreted if @@ -5024,7 +5164,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS children --ii The maximum number of pending signals --ll The maximum size that may be locked into memory - --mm The maximum resident set size + --mm The maximum resident set size (many systems do not honor + this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) --pp The pipe size in 512-byte blocks (this may not be set) @@ -5032,65 +5173,65 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell --xx The maximum number of file locks --TT The maximum number of threads If _l_i_m_i_t is given, it is the new value of the specified resource (the --aa option is display only). If no option is given, then --ff - is assumed. Values are in 1024-byte increments, except for --tt, - which is in seconds, --pp, which is in units of 512-byte blocks, - and --TT, --bb, --nn, and --uu, which are unscaled values. The return + is assumed. Values are in 1024-byte increments, except for --tt, + which is in seconds, --pp, which is in units of 512-byte blocks, + and --TT, --bb, --nn, and --uu, which are unscaled values. The return status is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If no options are supplied, or the --vv option is given, each _n_a_m_e - refers to a shell variable. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. Each unset vari- - able or function is removed from the environment passed to sub- - sequent commands. If any of RRAANNDDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, - FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special - properties, even if they are subsequently reset. The exit sta- - tus is true unless a _n_a_m_e is readonly. + refers to a shell variable. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. Each unset vari- + able or function is removed from the environment passed to sub- + sequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANNDDOOMM, SSEECCOONNDDSS, + LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they + lose their special properties, even if they are subsequently + reset. The exit status is true unless a _n_a_m_e is readonly. wwaaiitt [_n _._._.] - Wait for each specified process and return its termination sta- - tus. Each _n may be a process ID or a job specification; if a - job spec is given, all processes in that job's pipeline are - waited for. If _n is not given, all currently active child pro- - cesses are waited for, and the return status is zero. If _n - specifies a non-existent process or job, the return status is - 127. Otherwise, the return status is the exit status of the + Wait for each specified process and return its termination sta- + tus. Each _n may be a process ID or a job specification; if a + job spec is given, all processes in that job's pipeline are + waited for. If _n is not given, all currently active child pro- + cesses are waited for, and the return status is zero. If _n + specifies a non-existent process or job, the return status is + 127. Otherwise, the return status is the exit status of the last process or job waited for. RREESSTTRRIICCTTEEDD SSHHEELLLL If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at - invocation, the shell becomes restricted. A restricted shell is used - to set up an environment more controlled than the standard shell. It - behaves identically to bbaasshh with the exception that the following are + invocation, the shell becomes restricted. A restricted shell is used + to set up an environment more controlled than the standard shell. It + behaves identically to bbaasshh with the exception that the following are disallowed or not performed: +o changing directories with ccdd @@ -5099,16 +5240,16 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL +o specifying command names containing // - +o specifying a file name containing a // as an argument to the .. + +o specifying a file name containing a // as an argument to the .. builtin command - +o Specifying a filename containing a slash as an argument to the + +o Specifying a filename containing a slash as an argument to the --pp option to the hhaasshh builtin command - +o importing function definitions from the shell environment at + +o importing function definitions from the shell environment at startup - +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at + +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at startup +o redirecting output using the >, >|, <>, >&, &>, and >> redirect- @@ -5117,10 +5258,10 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL +o using the eexxeecc builtin command to replace the shell with another command - +o adding or deleting builtin commands with the --ff and --dd options + +o adding or deleting builtin commands with the --ff and --dd options to the eennaabbllee builtin command - +o Using the eennaabbllee builtin command to enable disabled shell + +o Using the eennaabbllee builtin command to enable disabled shell builtins +o specifying the --pp option to the ccoommmmaanndd builtin command @@ -5130,14 +5271,14 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL These restrictions are enforced after any startup files are read. When a command that is found to be a shell script is executed (see CCOOMM-- - MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell + MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell spawned to execute the script. SSEEEE AALLSSOO _B_a_s_h _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, Brian Fox and Chet Ramey _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey - _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_- + _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_- _t_i_e_s, IEEE _s_h(1), _k_s_h(1), _c_s_h(1) _e_m_a_c_s(1), _v_i(1) @@ -5153,7 +5294,7 @@ FFIILLEESS _~_/_._b_a_s_h_r_c The individual per-interactive-shell startup file _~_/_._b_a_s_h___l_o_g_o_u_t - The individual login shell cleanup file, executed when a login + The individual login shell cleanup file, executed when a login shell exits _~_/_._i_n_p_u_t_r_c Individual _r_e_a_d_l_i_n_e initialization file @@ -5163,18 +5304,18 @@ AAUUTTHHOORRSS bfox@gnu.org Chet Ramey, Case Western Reserve University - chet@po.cwru.edu + chet.ramey@case.edu BBUUGG RREEPPOORRTTSS If you find a bug in bbaasshh,, you should report it. But first, you should - make sure that it really is a bug, and that it appears in the latest - version of bbaasshh. The latest version is always available from + make sure that it really is a bug, and that it appears in the latest + version of bbaasshh. The latest version is always available from _f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_b_a_s_h_/. - Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g - command to submit a bug report. If you have a fix, you are encouraged - to mail that as well! Suggestions and `philosophical' bug reports may - be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup + Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g + command to submit a bug report. If you have a fix, you are encouraged + to mail that as well! Suggestions and `philosophical' bug reports may + be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ALL bug reports should include: @@ -5185,7 +5326,7 @@ BBUUGG RREEPPOORRTTSS A description of the bug behaviour A short script or `recipe' which exercises the bug - _b_a_s_h_b_u_g inserts the first three items automatically into the template + _b_a_s_h_b_u_g inserts the first three items automatically into the template it provides for filing a bug report. Comments and bug reports concerning this manual page should be directed @@ -5202,10 +5343,10 @@ BBUUGGSS Shell builtin commands and functions are not stoppable/restartable. Compound commands and command sequences of the form `a ; b ; c' are not - handled gracefully when process suspension is attempted. When a - process is stopped, the shell immediately executes the next command in - the sequence. It suffices to place the sequence of commands between - parentheses to force it into a subshell, which may be stopped as a + handled gracefully when process suspension is attempted. When a + process is stopped, the shell immediately executes the next command in + the sequence. It suffices to place the sequence of commands between + parentheses to force it into a subshell, which may be stopped as a unit. Array variables may not (yet) be exported. @@ -5214,4 +5355,4 @@ BBUUGGSS -GNU Bash-4.0 2008 December 29 BASH(1) +GNU Bash-4.1 2009 December 29 BASH(1) diff --git a/doc/bash.1 b/doc/bash.1 index f066140..1890b3c 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -5,12 +5,12 @@ .\" Case Western Reserve University .\" chet@po.cwru.edu .\" -.\" Last Change: Sat Feb 7 20:50:40 EST 2009 +.\" Last Change: Tue Dec 29 15:36:16 EST 2009 .\" .\" bash_builtins, strip all but Built-Ins section .if \n(zZ=1 .ig zZ .if \n(zY=1 .ig zY -.TH BASH 1 "2009 February 7" "GNU Bash-4.0" +.TH BASH 1 "2009 December 29" "GNU Bash-4.1" .\" .\" There's some problem with having a `@' .\" in a tagged paragraph with the BSD man macros. @@ -429,8 +429,15 @@ If the shell is started with the effective user (group) id not equal to the real user (group) id, and the \fB\-p\fP option is not supplied, no startup files are read, shell functions are not inherited from the environment, the .SM -.B SHELLOPTS -variable, if it appears in the environment, is ignored, +.BR SHELLOPTS , +.SM +.BR BASHOPTS , +.SM +.BR CDPATH , +and +.SM +.B GLOBIGNORE +variables, if they appear in the environment, are ignored, and the effective user id is set to the real user id. If the \fB\-p\fP option is supplied at invocation, the startup behavior is the same, but the effective user id is not reset. @@ -677,6 +684,10 @@ Conditional operators such as \fB\-f\fP must be unquoted to be recognized as primaries. .if t .sp 0.5 .if n .sp 1 +When used with \fB[[\fP, The \fB<\fP and \fB>\fP operators sort +lexicographically using the current locale. +.if t .sp 0.5 +.if n .sp 1 When the \fB==\fP and \fB!=\fP operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below under \fBPattern Matching\fP. @@ -705,10 +716,18 @@ of alphabetic characters. Any part of the pattern may be quoted to force it to be matched as a string. Substrings matched by parenthesized subexpressions within the regular -expression are saved in the array variable \fBBASH_REMATCH\fP. -The element of \fBBASH_REMATCH\fP with index 0 is the portion of the string +expression are saved in the array variable +.SM +.BR BASH_REMATCH . +The element of +.SM +.B BASH_REMATCH +with index 0 is the portion of the string matching the entire regular expression. -The element of \fBBASH_REMATCH\fP with index \fIn\fP is the portion of the +The element of +.SM +.B BASH_REMATCH +with index \fIn\fP is the portion of the string matching the \fIn\fPth parenthesized subexpression. .if t .sp 0.5 .if n .sp 1 @@ -752,7 +771,7 @@ operators do not evaluate \fIexpression2\fP if the value of the entire conditional expression. .RE .TP -\fBfor\fP \fIname\fP [ \fBin\fP \fIword\fP ] ; \fBdo\fP \fIlist\fP ; \fBdone\fP +\fBfor\fP \fIname\fP [ [ \fBin\fP [ \fIword ...\fP ] ] ; ] \fBdo\fP \fIlist\fP ; \fBdone\fP The list of words following \fBin\fP is expanded, generating a list of items. The variable \fIname\fP is set to each element of this list @@ -787,6 +806,7 @@ error, each preceded by a number. If the \fBin\fP .SM .B PARAMETERS below). The +.SM .B PS3 prompt is then displayed and a line read from the standard input. If the line consists of a number corresponding to one of @@ -797,6 +817,7 @@ are displayed again. If EOF is read, the command completes. Any other value read causes .I name to be set to null. The line read is saved in the variable +.SM .BR REPLY . The .I list @@ -1049,6 +1070,8 @@ alert (bell) backspace .TP .B \ee +.TP +.B \eE an escape character .TP .B \ef @@ -1071,6 +1094,9 @@ backslash .TP .B \e\(aq single quote +.TP +.B \e\(dq +double quote .TP .B \e\fInnn\fP the eight-bit character whose value is the octal value \fInnn\fP @@ -1088,8 +1114,8 @@ a control-\fIx\fP character The expanded result is single-quoted, as if the dollar sign had not been present. .PP -A double-quoted string preceded by a dollar sign (\fB$\fP) will cause -the string to be translated according to the current locale. +A double-quoted string preceded by a dollar sign (\fB$\fP\(dq\fIstring\fP\(dq) +will cause the string to be translated according to the current locale. If the current locale is \fBC\fP or \fBPOSIX\fP, the dollar sign is ignored. If the string is translated and replaced, the replacement is @@ -1304,6 +1330,27 @@ The following variables are set by the shell: Expands to the full file name used to invoke this instance of .BR bash . .TP +.B BASHOPTS +A colon-separated list of enabled shell options. Each word in +the list is a valid argument for the +.B \-s +option to the +.B shopt +builtin command (see +.SM +.B "SHELL BUILTIN COMMANDS" +below). The options appearing in +.SM +.B BASHOPTS +are those reported as +.I on +by \fBshopt\fP. +If this variable is in the environment when +.B bash +starts up, each shell option in the list will be enabled before +reading any startup files. +This variable is read-only. +.TP .B BASHPID Expands to the process id of the current \fBbash\fP process. This differs from \fB$$\fP under certain circumstances, such as subshells @@ -1322,9 +1369,12 @@ The number of parameters to the current subroutine (shell function or script executed with \fB.\fP or \fBsource\fP) is at the top of the stack. When a subroutine is executed, the number of parameters passed is pushed onto -\fBBASH_ARGC\fP. -The shell sets \fBBASH_ARGC\fP only when in extended debugging mode -(see the description of the +.SM +.BR BASH_ARGC . +The shell sets +.SM +.B BASH_ARGC +only when in extended debugging mode (see the description of the .B extdebug option to the .B shopt @@ -1335,8 +1385,13 @@ An array variable containing all of the parameters in the current \fBbash\fP execution call stack. The final parameter of the last subroutine call is at the top of the stack; the first parameter of the initial call is at the bottom. When a subroutine is executed, the parameters supplied -are pushed onto \fBBASH_ARGV\fP. -The shell sets \fBBASH_ARGV\fP only when in extended debugging mode +are pushed onto +.SM +.BR BASH_ARGV . +The shell sets +.SM +.B BASH_ARGV +only when in extended debugging mode (see the description of the .B extdebug option to the @@ -1359,13 +1414,18 @@ The command argument to the \fB\-c\fP invocation option. .TP .B BASH_LINENO An array variable whose members are the line numbers in source files -corresponding to each member of \fBFUNCNAME\fP. +corresponding to each member of +.SM +.BR FUNCNAME . \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP is the line number in the source file where \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP was called (or \fB${BASH_LINENO[\fP\fI$i-1\fP\fB]}\fP if referenced within another shell function). The corresponding source file name is \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fP. -Use \fBLINENO\fP to obtain the current line number. +Use +.SM +.B LINENO +to obtain the current line number. .TP .B BASH_REMATCH An array variable whose members are assigned by the \fB=~\fP binary @@ -1378,7 +1438,10 @@ This variable is read-only. .TP .B BASH_SOURCE An array variable whose members are the source filenames corresponding -to the elements in the \fBFUNCNAME\fP array variable. +to the elements in the +.SM +.B FUNCNAME +array variable. .TP .B BASH_SUBSHELL Incremented by one each time a subshell or subshell environment is spawned. @@ -1409,7 +1472,9 @@ The build version. The release status (e.g., \fIbeta1\fP). .TP .B BASH_VERSINFO[\fR5\fP] -The value of \fBMACHTYPE\fP. +The value of +.SM +.BR MACHTYPE . .PD .RE .TP @@ -1472,7 +1537,9 @@ subsequently reset. An array variable (see \fBArrays\fP below) consisting of the individual words in the current command line. The line is split into words as \fBreadline\fP would split it, using -\fBCOMP_WORDBREAKS\fP as described above. +.SM +.B COMP_WORDBREAKS +as described above. This variable is available only in shell functions invoked by the programmable completion facilities (see \fBProgrammable Completion\fP below). @@ -1711,6 +1778,28 @@ A sample value is .if t \f(CW".:~:/usr"\fP. .if n ".:~:/usr". .TP +.B BASH_XTRACEFD +If set to an integer corresponding to a valid file descriptor, \fBbash\fP +will write the trace output generated when +.if t \f(CWset -x\fP +.if n \fIset -x\fP +is enabled to that file descriptor. +The file descriptor is closed when +.SM +.B BASH_XTRACEFD +is unset or assigned a new value. +Unsetting +.SM +.B BASH_XTRACEFD +or assigning it the empty string causes the +trace output to be sent to the standard error. +Note that setting +.SM +.B BASH_XTRACEFD +to 2 (the standard error file +descriptor) and then unsetting it will result in the standard error +being closed. +.TP .B COLUMNS Used by the \fBselect\fP builtin command to determine the terminal width when printing selection lists. Automatically set upon receipt of a SIGWINCH. @@ -1775,12 +1864,17 @@ A value of causes all previous lines matching the current line to be removed from the history list before that line is saved. Any value not in the above list is ignored. -If \fBHISTCONTROL\fP is unset, or does not include a valid value, +If +.SM +.B HISTCONTROL +is unset, or does not include a valid value, all lines read by the shell parser are saved on the history list, subject to the value of +.SM .BR HISTIGNORE . The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of +.SM .BR HISTCONTROL . .TP .B HISTFILE @@ -1804,6 +1898,7 @@ should be saved on the history list. Each pattern is anchored at the beginning of the line and must match the complete line (no implicit `\fB*\fP' is appended). Each pattern is tested against the line after the checks specified by +.SM .B HISTCONTROL are applied. In addition to the normal shell pattern matching characters, `\fB&\fP' @@ -1811,6 +1906,7 @@ matches the previous history line. `\fB&\fP' may be escaped using a backslash; the backslash is removed before attempting a match. The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of +.SM .BR HISTIGNORE . .TP .B HISTSIZE @@ -1847,7 +1943,8 @@ adds the contents of the new file to the existing list. If .SM .B HOSTFILE -is set, but has no value, \fBbash\fP attempts to read +is set, but has no value, or does not name a readable file, +\fBbash\fP attempts to read .FN /etc/hosts to obtain the list of possible hostname completions. When @@ -1898,7 +1995,10 @@ Used to determine the locale category for any category not specifically selected with a variable starting with \fBLC_\fP. .TP .B LC_ALL -This variable overrides the value of \fBLANG\fP and any other +This variable overrides the value of +.SM +.B LANG +and any other \fBLC_\fP variable specifying a locale category. .TP .B LC_COLLATE @@ -1921,7 +2021,9 @@ This variable determines the locale category used for number formatting. .TP .B LINES Used by the \fBselect\fP builtin command to determine the column length -for printing selection lists. Automatically set upon receipt of a SIGWINCH. +for printing selection lists. Automatically set upon receipt of a +.SM +.BR SIGWINCH . .TP .B MAIL If this parameter is set to a file name and the @@ -1977,8 +2079,10 @@ the shell looks for commands (see .SM .B COMMAND EXECUTION below). -A zero-length (null) directory name in the value of \fBPATH\fP indicates the -current directory. +A zero-length (null) directory name in the value of +.SM +.B PATH +indicates the current directory. A null directory name may appear as two adjacent colons, or as an initial or trailing colon. The default path is system-dependent, @@ -2004,7 +2108,7 @@ prompt. .TP .B PROMPT_DIRTRIM If set to a number greater than zero, the value is used as the number of -trailing directory components to retain when expanding the \fB\ew\fB and +trailing directory components to retain when expanding the \fB\ew\fP and \fB\eW\fP prompt string escapes (see .SM .B PROMPTING @@ -2019,6 +2123,7 @@ below) and used as the primary prompt string. The default value is .TP .B PS2 The value of this parameter is expanded as with +.SM .B PS1 and used as the secondary prompt string. The default is ``\fB> \fP''. @@ -2033,6 +2138,7 @@ above). .TP .B PS4 The value of this parameter is expanded as with +.SM .B PS1 and the value is printed before each command .B bash @@ -2096,10 +2202,16 @@ If the value is null, no timing information is displayed. A trailing newline is added when the format string is displayed. .TP .B TMOUT -If set to a value greater than zero, \fBTMOUT\fP is treated as the +If set to a value greater than zero, +.SM +.B TMOUT +is treated as the default timeout for the \fBread\fP builtin. The \fBselect\fP command terminates if input does not arrive -after \fBTMOUT\fP seconds when input is coming from a terminal. +after +.SM +.B TMOUT +seconds when input is coming from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. .B Bash @@ -2236,12 +2348,15 @@ ${\fIname\fP[\fIsubscript\fP]}. If \fIsubscript\fP is \fB*\fP or Referencing an array variable without a subscript is equivalent to referencing the array with a subscript of 0. .PP +An array variable is considered set if a subscript has been assigned a +value. The null string is a valid value. +.PP The .B unset builtin is used to destroy arrays. \fBunset\fP \fIname\fP[\fIsubscript\fP] destroys the array element at index \fIsubscript\fP. -Care must be taken to avoid unwanted side effects caused by filename -generation. +Care must be taken to avoid unwanted side effects caused by pathname +expansion. \fBunset\fP \fIname\fP, where \fIname\fP is an array, or \fBunset\fP \fIname\fP[\fIsubscript\fP], where \fIsubscript\fP is \fB*\fP or \fB@\fP, removes the entire array. @@ -2473,7 +2588,7 @@ is followed by a character which is not to be interpreted as part of its name. .PD .PP -If the first character of \fIparameter\fP is an exclamation point, +If the first character of \fIparameter\fP is an exclamation point (\fB!\fP), a level of variable indirection is introduced. \fBBash\fP uses the value of the variable formed from the rest of \fIparameter\fP as the name of the variable; this variable is then @@ -3021,7 +3136,7 @@ The special pattern characters have the following meanings: .B * Matches any string, including the null string. When the \fBglobstar\fP shell option is enabled, and \fB*\fP is used in -a filename expansion context, two adjacent \fB*\fPs used as a single +a pathname expansion context, two adjacent \fB*\fPs used as a single pattern will match all files and zero or more directories and subdirectories. If followed by a \fB/\fP, two adjacent \fB*\fPs will match only directories @@ -3044,7 +3159,10 @@ or a .B ^ then any character not enclosed is matched. The sorting order of characters in range expressions is determined by -the current locale and the value of the \fBLC_COLLATE\fP shell variable, +the current locale and the value of the +.SM +.B LC_COLLATE +shell variable, if set. A .B \- @@ -3143,6 +3261,14 @@ or may follow a Redirections are processed in the order they appear, from left to right. .PP +Each redirection that may be preceded by a file descriptor number +may instead be preceded by a word of the form {\fIvarname\fP}. +In this case, for each redirection operator except +>&- and <&-, the shell will allocate a file descriptor greater +than 10 and assign it to \fIvarname\fP. If >&- or <&- is preceded +by {\fIvarname\fP}, the value of \fIvarname\fP defines the file +descriptor to close. +.PP In the following descriptions, if the file descriptor number is omitted, and the first character of the redirection operator is .BR < , @@ -3578,9 +3704,10 @@ The first element of the .B FUNCNAME variable is set to the name of the function while the function is executing. +.PP All other aspects of the shell execution environment are identical between a function and its caller -with the exception that the +with these exceptions: the .SM .B DEBUG and @@ -3597,7 +3724,12 @@ below) are not inherited unless the function has been given the builtin below) or the \fB\-o functrace\fP shell option has been enabled with the \fBset\fP builtin -(in which case all functions inherit the \fBDEBUG\fP and \fBRETURN\fP traps). +(in which case all functions inherit the \fBDEBUG\fP and \fBRETURN\fP traps), +and the +.SM +.B ERR +trap is not inherited unless the \fB\-o errtrace\fP shell option has +been enabled. .PP Variables local to the function may be declared with the .B local @@ -3759,6 +3891,10 @@ descriptor 0, 1, or 2, respectively, is checked. .PP Unless otherwise specified, primaries that operate on files follow symbolic links and operate on the target of the link, rather than the link itself. +.if t .sp 0.5 +.if n .sp 1 +When used with \fB[[\fP, The \fB<\fP and \fB>\fP operators sort +lexicographically using the current locale. .sp 1 .PD 0 .TP @@ -3862,19 +3998,21 @@ True if the length of is non-zero. .TP \fIstring1\fP \fB==\fP \fIstring2\fP -True if the strings are equal. \fB=\fP may be used in place of -\fB==\fP for strict POSIX compliance. +.PD 0 +.TP +\fIstring1\fP \fB=\fP \fIstring2\fP +.PD +True if the strings are equal. \fB=\fP should be used +with the \fBtest\fP command for POSIX conformance. .TP \fIstring1\fP \fB!=\fP \fIstring2\fP True if the strings are not equal. .TP \fIstring1\fP \fB<\fP \fIstring2\fP -True if \fIstring1\fP sorts before \fIstring2\fP lexicographically -in the current locale. +True if \fIstring1\fP sorts before \fIstring2\fP lexicographically. .TP \fIstring1\fP \fB>\fP \fIstring2\fP -True if \fIstring1\fP sorts after \fIstring2\fP lexicographically -in the current locale. +True if \fIstring1\fP sorts after \fIstring2\fP lexicographically. .TP .I \fIarg1\fP \fBOP\fP \fIarg2\fP .SM @@ -4005,7 +4143,7 @@ arguments, if any. .SH COMMAND EXECUTION ENVIRONMENT The shell has an \fIexecution environment\fP, which consists of the following: -.sp 1 +.if n .sp 1 .IP \(bu open files inherited by the shell at invocation, as modified by redirections supplied to the \fBexec\fP builtin @@ -4032,14 +4170,16 @@ options enabled by \fBshopt\fP shell aliases defined with \fBalias\fP .IP \(bu various process IDs, including those of background jobs, the value -of \fB$$\fP, and the value of \fB$PPID\fP +of \fB$$\fP, and the value of +.SM +.B PPID .PP When a simple command other than a builtin or shell function is to be executed, it is invoked in a separate execution environment that consists of the following. Unless otherwise noted, the values are inherited from the shell. -.sp 1 +.if n .sp 1 .IP \(bu the shell's open files, plus any modifications and additions specified by redirections to the command @@ -4255,7 +4395,7 @@ refers to the ability to selectively stop (\fIsuspend\fP) the execution of processes and continue (\fIresume\fP) their execution at a later point. A user typically employs this facility via an interactive interface supplied jointly -by the system's terminal driver and +by the operating system kernel's terminal driver and .BR bash . .PP The shell associates a @@ -4293,12 +4433,15 @@ These processes are said to be in the .I Background processes are those whose process group ID differs from the terminal's; such processes are immune to keyboard-generated signals. -Only foreground processes are allowed to read from or write to the -terminal. Background processes which attempt to read from (write to) the +Only foreground processes are allowed to read from or, if the +user so specifies with \f(CWstty tostop\fP, write to the +terminal. +Background processes which attempt to read from (write to when +\f(CWstty tostop\fP is in effect) the terminal are sent a .SM .B SIGTTIN (SIGTTOU) -signal by the terminal driver, +signal by the kernel's terminal driver, which, unless caught, suspends the process. .PP If the operating system on which @@ -4493,11 +4636,19 @@ the version of \fBbash\fP (e.g., 2.00) the release of \fBbash\fP, version + patch level (e.g., 2.00.0) .TP .B \ew -the current working directory, with \fB$HOME\fP abbreviated with a tilde -(uses the \fB$PROMPT_DIRTRIM\fP variable) +the current working directory, with +.SM +.B $HOME +abbreviated with a tilde +(uses the value of the +.SM +.B PROMPT_DIRTRIM +variable) .TP .B \eW -the basename of the current working directory, with \fB$HOME\fP +the basename of the current working directory, with +.SM +.B $HOME abbreviated with a tilde .TP .B \e! @@ -4897,11 +5048,21 @@ can be set to either or .BR vi . .TP +.B echo\-control\-characters (On) +When set to \fBOn\fP, on operating systems that indicate they support it, +readline echoes a character corresponding to a signal generated from the +keyboard. +.TP .B enable\-keypad (Off) When set to \fBOn\fP, readline will try to enable the application keypad when it is called. Some systems need this to enable the arrow keys. .TP +.B enable\-meta\-key (On) +When set to \fBOn\fP, readline will try to enable any meta modifier +key the terminal claims to support when it is called. On many terminals, +the meta key is used to send eight-bit characters. +.TP .B expand\-tilde (Off) If set to \fBon\fP, tilde expansion is performed when readline attempts word completion. @@ -5000,6 +5161,14 @@ possible partial completion (the possible completions don't share a common prefix) cause the matches to be listed immediately instead of ringing the bell. .TP +.B skip\-completed\-text (Off) +If set to \fBOn\fP, this alters the default completion behavior when +inserting a single match into the line. It's only active when +performing completion in the middle of a word. If enabled, readline +does not insert characters from the completion that match characters +after point in the word being completed, so portions of the word +following the cursor are not duplicated. +.TP .B visible\-stats (Off) If set to \fBOn\fP, a character denoting a file's type as reported by \fIstat\fP(2) is appended to the filename when listing possible @@ -5484,6 +5653,11 @@ through the list. This command is intended to be bound to \fBTAB\fP, but is unbound by default. .TP +.B menu\-complete-\backward +Identical to \fBmenu\-complete\fP, but moves backward through the list +of possible completions, as if \fBmenu\-complete\fP had been given a +negative argument. This command is unbound by default. +.TP .B delete\-char\-or\-list Deletes the character under the cursor if not at the beginning or end of the line (like \fBdelete\-char\fP). @@ -5616,6 +5790,15 @@ character. A negative count searches for previous occurrences. A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent occurrences. .TP +.B skip\-csi\-sequence () +Read enough characters to consume a multi-key sequence such as those +defined for keys like Home and End. Such sequences begin with a +Control Sequence Indicator (CSI), usually ESC\-[. If this sequence is +bound to "\e[", keys producing such sequences will have no effect +unless explicitly bound to a readline command, instead of inserting +stray characters into the editing buffer. This is unbound by default, +but usually bound to ESC\-[. +.TP .B insert\-comment (M\-#) Without a numeric argument, the value of the readline .B comment\-begin @@ -5682,12 +5865,17 @@ using the \fBcomplete\fP builtin (see below), the programmable completion facilities are invoked. .PP First, the command name is identified. +If the command word is the empty string (completion attempted at the +beginning of an empty line), any compspec defined with +the \fB\-E\fP option to \fBcomplete\fP is used. If a compspec has been defined for that command, the compspec is used to generate the list of possible completions for the word. If the command word is a full pathname, a compspec for the full pathname is searched for first. If no compspec is found for the full pathname, an attempt is made to find a compspec for the portion following the final slash. +If those searches to not result in a compspec, any compspec defined with +the \fB\-D\fP option to \fBcomplete\fP is used as the default. .PP Once a compspec has been found, it is used to generate the list of matching words. @@ -5707,7 +5895,7 @@ variable .B FIGNORE is used to filter the matches. .PP -Any completions specified by a filename expansion pattern to the +Any completions specified by a pathname expansion pattern to the \fB\-G\fP option are generated next. The words generated by the pattern need not match the word being completed. @@ -5820,6 +6008,35 @@ the programmable completion functions force readline to append a slash to completed names which are symbolic links to directories, subject to the value of the \fBmark\-directories\fP readline variable, regardless of the setting of the \fBmark-symlinked\-directories\fP readline variable. +.PP +There is some support for dynamically modifying completions. This is +most useful when used in combination with a default completion specified +with \fBcomplete -D\fP. +It's possible for shell functions executed as completion +handlers to indicate that completion should be retried by returning an +exit status of 124. If a shell function returns 124, and changes +the compspec associated with the command on which completion is being +attempted (supplied as the first argument when the function is executed), +programmable completion restarts from the beginning, with an +attempt to find a compspec for that command. This allows a set of +completions to be built dynamically as completion is attempted, rather than +being loaded all at once. +.PP +For instance, assuming that there is a library of compspecs, each kept in a +file corresponding to the name of the command, the following default +completion function would load completions dynamically: +.PP +\f(CW_completion_loader() +.br +{ +.br + . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124 +.br +} +.br +complete -D -F _completion_loader +.br +\fP .SH HISTORY When the .B \-o history @@ -5828,7 +6045,10 @@ option to the builtin is enabled, the shell provides access to the \fIcommand history\fP, the list of commands previously typed. -The value of the \fBHISTSIZE\fP variable is used as the +The value of the +.SM +.B HISTSIZE +variable is used as the number of commands to save in a history list. The text of the last .SM @@ -5888,7 +6108,7 @@ is unset, or if the history file is unwritable, the history is not saved. If the .SM -.HISTTIMEFORMAT +.B HISTTIMEFORMAT variable is set, time stamps are written to the history file, marked with the history comment character, so they may be preserved across shell sessions. @@ -5994,7 +6214,7 @@ If the .B histverify shell option is enabled (see the description of the .B shopt -builtin), and +builtin below), and .B readline is being used, history substitutions are not immediately passed to the shell parser. @@ -6218,8 +6438,14 @@ section as accepting options preceded by accepts .B \-\- to signify the end of the options. -For example, the \fB:\fP, \fBtrue\fP, \fBfalse\fP, and \fBtest\fP builtins -do not accept options. +The \fB:\fP, \fBtrue\fP, \fBfalse\fP, and \fBtest\fP builtins +do not accept options and do not treat \fB\-\-\fP specially. +The \fBexit\fP, \fBlogout\fP, \fBbreak\fP, \fBcontinue\fP, \fBlet\fP, +and \fBshift\fP builtins accept and process arguments beginning with +\fB\-\fP without requiring \fB\-\-\fP. +Other builtins that accept arguments but are not specified as accepting +options interpret arguments beginning with \fB\-\fP as invalid options and +require \fB\-\-\fP to prevent this interpretation. .sp .5 .PD 0 .TP @@ -6381,13 +6607,17 @@ Remove any current binding for \fIkeyseq\fP. Cause \fIshell\-command\fP to be executed whenever \fIkeyseq\fP is entered. When \fIshell\-command\fP is executed, the shell sets the +.SM .B READLINE_LINE variable to the contents of the \fBreadline\fP line buffer and the +.SM .B READLINE_POINT variable to the current location of the insertion point. If the executed command changes the value of +.SM .B READLINE_LINE or +.SM .BR READLINE_POINT , those new values will be reflected in the editing state. .PD @@ -6475,7 +6705,10 @@ option forces symbolic links to be followed. An argument of is equivalent to .SM .BR $OLDPWD . -If a non-empty directory name from \fBCDPATH\fP is used, or if +If a non-empty directory name from +.SM +.B CDPATH +is used, or if \fB\-\fP is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output. @@ -6496,6 +6729,7 @@ are executed. If the option is given, the search for .I command is performed using a default value for +.SM .B PATH that is guaranteed to find all of the standard utilities. If either the @@ -6545,12 +6779,12 @@ will be displayed. The return value is true unless an invalid option is supplied, or no matches were generated. .TP -\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-E\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] +\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-DE\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] .br [\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP] .PD 0 .TP -\fBcomplete\fP \fB\-pr\fP [\fB\-E\fP] [\fIname\fP ...] +\fBcomplete\fP \fB\-pr\fP [\fB\-DE\fP] [\fIname\fP ...] .PD Specify how arguments to each \fIname\fP should be completed. If the \fB\-p\fP option is supplied, or if no options are supplied, @@ -6559,6 +6793,9 @@ them to be reused as input. The \fB\-r\fP option removes a completion specification for each \fIname\fP, or, if no \fIname\fPs are supplied, all completion specifications. +The \fB\-D\fP option indicates that the remaining options and actions should +apply to the ``default'' command completion; that is, completion attempted +on a command for which no completion has previously been defined. The \fB\-E\fP option indicates that the remaining options and actions should apply to ``empty'' command completion; that is, completion attempted on a blank line. @@ -6690,7 +6927,7 @@ Names of all shell variables. May also be specified as \fB\-v\fP. .RE .TP 8 \fB\-G\fP \fIglobpat\fP -The filename expansion pattern \fIglobpat\fP is expanded to generate +The pathname expansion pattern \fIglobpat\fP is expanded to generate the possible completions. .TP 8 \fB\-W\fP \fIwordlist\fP @@ -6715,7 +6952,7 @@ of the array variable. .TP 8 \fB\-X\fP \fIfilterpat\fP -\fIfilterpat\fP is a pattern as used for filename expansion. +\fIfilterpat\fP is a pattern as used for pathname expansion. It is applied to the list of possible completions generated by the preceding options and arguments, and each completion matching \fIfilterpat\fP is removed from the list. @@ -6738,7 +6975,7 @@ a \fIname\fP for which no specification exists, or an error occurs adding a completion specification. .RE .TP -\fBcompopt\fP [\fB\-o\fP \fIoption\fP] [\fB+o\fP \fIoption\fP] [\fIname\fP] +\fBcompopt\fP [\fB\-o\fP \fIoption\fP] [\fB\-DE\fP] [\fB+o\fP \fIoption\fP] [\fIname\fP] Modify completion options for each \fIname\fP according to the \fIoption\fPs, or for the currently-execution completion if no \fIname\fPs are supplied. @@ -6746,6 +6983,12 @@ If no \fIoption\fPs are given, display the completion options for each \fIname\fP or the current completion. The possible values of \fIoption\fP are those valid for the \fBcomplete\fP builtin described above. +The \fB\-D\fP option indicates that the remaining options should +apply to the ``default'' command completion; that is, completion attempted +on a command for which no completion has previously been defined. +The \fB\-E\fP option indicates that the remaining options should +apply to ``empty'' command completion; that is, completion attempted on a +blank line. .PP The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a \fIname\fP for which no completion @@ -6823,8 +7066,8 @@ Use function names only. .B \-i The variable is treated as an integer; arithmetic evaluation (see .SM -.B "ARITHMETIC EVALUATION" ") " -is performed when the variable is assigned a value. +.B "ARITHMETIC EVALUATION" +above) is performed when the variable is assigned a value. .TP .B \-l When the variable is assigned a value, all upper-case characters are @@ -6853,7 +7096,7 @@ Mark \fIname\fPs for export to subsequent commands via the environment. Using `+' instead of `\-' turns off the attribute instead, with the exceptions that \fB+a\fP -may not be used to destroy an array variable and \fB+r\fB will not +may not be used to destroy an array variable and \fB+r\fP will not remove the readonly attribute. When used in a function, makes each @@ -6926,7 +7169,7 @@ Without options, each is removed from the table of active jobs. If .I jobspec -is not present, and neither \fB\-a\fB nor \fB\-r\fP is supplied, +is not present, and neither \fB\-a\fP nor \fB\-r\fP is supplied, the shell's notion of the \fIcurrent job\fP is used. If the \fB\-h\fP option is given, each .I jobspec @@ -7295,7 +7538,9 @@ is to be used. .sp 1 When the end of options is encountered, \fBgetopts\fP exits with a return value greater than zero. -\fBOPTIND\fP is set to the index of the first non-option argument, +.SM +.B OPTIND +is set to the index of the first non-option argument, and \fBname\fP is set to ?. .sp 1 .B getopts @@ -7407,7 +7652,7 @@ is printed. .B \-d Display a short description of each \fIpattern\fP .TP -.B \ -m +.B \-m Display the description of each \fIpattern\fP in a manpage-like format .TP .B \-s @@ -7439,7 +7684,10 @@ have been modified. An argument of lists only the last .I n lines. -If the shell variable \fBHISTTIMEFORMAT\fP is set and not null, +If the shell variable +.SM +.B HISTTIMEFORMAT +is set and not null, it is used as a format string for \fIstrftime\fP(3) to display the time stamp associated with each displayed history entry. No intervening blank is printed between the formatted time stamp @@ -7491,7 +7739,10 @@ history list is removed before the are added. .PD .PP -If the \fBHISTTIMEFORMAT\fP is set, the time stamp information +If the +.SM +.B HISTTIMEFORMAT +variable is set, the time stamp information associated with each history entry is written to the history file, marked with the history comment character. When the history file is read, lines beginning with the history @@ -7606,7 +7857,8 @@ Each .I arg is an arithmetic expression to be evaluated (see .SM -.BR "ARITHMETIC EVALUATION" ). +.B "ARITHMETIC EVALUATION" +above). If the last .I arg evaluates to 0, @@ -7644,14 +7896,17 @@ Exit a login shell. .TP \fBreadarray\fP [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP] .PD -Read lines from the standard input into array variable +Read lines from the standard input into the indexed array variable .IR array , or from file descriptor .IR fd if the .B \-u option is supplied. -The variable \fBMAPFILE\fP is the default \fIarray\fP. +The variable +.SM +.B MAPFILE +is the default \fIarray\fP. Options, if supplied, have the following meanings: .RS .PD 0 @@ -7672,7 +7927,7 @@ The default index is 0. Discard the first \fIcount\fP lines read. .TP .B \-t -Remove a trailing line from each line read. +Remove a trailing newline from each line read. .TP .B \-u Read lines from file descriptor \fIfd\fP instead of the standard input. @@ -7702,7 +7957,8 @@ If not supplied with an explicit origin, \fBmapfile\fP will clear \fIarray\fP before assigning to it. .PP \fBmapfile\fP returns successfully unless an invalid option or option -argument is supplied, or \fIarray\fP is invalid or unassignable. +argument is supplied, \fIarray\fP is invalid or unassignable, or if +\fIarray\fP is not an indexed array. .RE .TP \fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP] @@ -7849,7 +8105,7 @@ The return status is 0 unless an error occurs while reading the name of the current directory or an invalid option is supplied. .TP -\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-i\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fIname\fP ...] +\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-i\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-N\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fIname\fP ...] One line is read from the standard input, or from the file descriptor \fIfd\fP supplied as an argument to the \fB\-u\fP option, and the first word is assigned to the first @@ -7903,7 +8159,16 @@ buffer before editing begins. .TP .B \-n \fInchars\fP \fBread\fP returns after reading \fInchars\fP characters rather than -waiting for a complete line of input. +waiting for a complete line of input, but honor a delimiter if fewer +than \fInchars\fP characters are read before the delimiter. +.TP +.B \-N \fInchars\fP +\fBread\fP returns after reading exactly \fInchars\fP characters rather +than waiting for a complete line of input, unless EOF is encountered or +\fBread\fP times out. +Delimiter characters encountered in the input are +not treated specially and do not cause \fBread\fP to return until +\fInchars\fP characters are read. .TP .B \-p \fIprompt\fP Display \fIprompt\fP on standard error, without a @@ -8062,6 +8327,7 @@ being inverted with A trap on \fBERR\fP, if set, is executed before the shell exits. This option applies to the shell environment and each subshell environment separately (see +.SM .B "COMMAND EXECUTION ENVIRONMENT" above), and may cause subshells to exit before executing all the commands in the subshell. @@ -8113,6 +8379,10 @@ with the option. This also affects the editing interface used for \fBread \-e\fP. .TP 8 +.B errexit +Same as +.BR \-e . +.TP 8 .B errtrace Same as .BR \-E . @@ -8121,10 +8391,6 @@ Same as Same as .BR \-T . .TP 8 -.B errexit -Same as -.BR \-e . -.TP 8 .B hashall Same as .BR \-h . @@ -8241,8 +8507,12 @@ files are not processed, shell functions are not inherited from the environment, and the .SM .BR SHELLOPTS , +.SM +.BR BASHOPTS , +.SM .BR CDPATH , and +.SM .B GLOBIGNORE variables, if they appear in the environment, are ignored. If the shell is started with the effective user (group) id not equal to the @@ -8455,7 +8725,10 @@ longer exists, a normal path search is performed. If set, \fBbash\fP lists the status of any stopped and running jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a second exit is attempted without an -intervening command (see \fBJOB CONTROL\fP above). The shell always +intervening command (see +.SM +.B "JOB CONTROL" +above). The shell always postpones exiting if any jobs are stopped. .TP 8 .B checkwinsize @@ -8480,6 +8753,19 @@ If set, changes its behavior to that of version 3.1 with respect to quoted arguments to the conditional command's =~ operator. .TP 8 +.B compat32 +If set, +.B bash +changes its behavior to that of version 3.2 with respect to locale-specific +string comparison when using the conditional command's < and > operators. +.TP 8 +.B compat40 +If set, +.B bash +changes its behavior to that of version 4.0 with respect to locale-specific +string comparison when using the conditional command's < and > operators +and the effect of interrupting a command list. +.TP 8 .B dirspell If set, .B bash @@ -8526,8 +8812,12 @@ executed by the \fB.\fP or \fBsource\fP builtins), a call to \fBreturn\fP is simulated. .TP .B 4. -\fBBASH_ARGC\fP and \fBBASH_ARGV\fP are updated as described in their -descriptions above. +.SM +.B BASH_ARGC +and +.SM +.B BASH_ARGV +are updated as described in their descriptions above. .TP .B 5. Function tracing is enabled: command substitution, shell functions, and @@ -8554,17 +8844,22 @@ If set, patterns which fail to match filenames during pathname expansion result in an expansion error. .TP 8 .B force_fignore -If set, the suffixes specified by the \fBFIGNORE\fP shell variable +If set, the suffixes specified by the +.SM +.B FIGNORE +shell variable cause words to be ignored when performing word completion even if the ignored words are the only possible completions. See .SM \fBSHELL VARIABLES\fP -above for a description of \fBFIGNORE\fP. +above for a description of +.SM +.BR FIGNORE . This option is enabled by default. .TP 8 .B globstar -If set, the pattern \fB**\fP used in a filename expansion context will +If set, the pattern \fB**\fP used in a pathname expansion context will match a files and zero or more directories and subdirectories. If the pattern is followed by a \fB/\fP, only directories and subdirectories match. @@ -8576,6 +8871,7 @@ message format. .B histappend If set, the history list is appended to the file named by the value of the +.SM .B HISTFILE variable when the shell exits, rather than overwriting the file. .TP 8 @@ -8642,7 +8938,10 @@ If set, and .B readline is being used, .B bash -will not attempt to search the \fBPATH\fP for possible completions when +will not attempt to search the +.SM +.B PATH +for possible completions when completion is attempted on an empty line. .TP 8 .B nocaseglob @@ -8859,6 +9158,8 @@ Each is either a signal name defined in <\fIsignal.h\fP>, or a signal number. Signal names are case insensitive and the SIG prefix is optional. +.if t .sp 0.5 +.if n .sp 1 If a .I sigspec is @@ -8886,6 +9187,17 @@ If a .I sigspec is .SM +.BR RETURN , +the command +.I arg +is executed each time a shell function or a script executed with the +\fB.\fP or \fBsource\fP builtins finishes executing. +.if t .sp 0.5 +.if n .sp 1 +If a +.I sigspec +is +.SM .BR ERR , the command .I arg @@ -8910,18 +9222,11 @@ list, or if the command's return value is being inverted via .BR ! . These are the same conditions obeyed by the \fBerrexit\fP option. -If a -.I sigspec -is -.SM -.BR RETURN , -the command -.I arg -is executed each time a shell function or a script executed with the -\fB.\fP or \fBsource\fP builtins finishes executing. +.if t .sp 0.5 +.if n .sp 1 Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their original -values in a child process when it is created. +values in a subshell or subshell environment when one is created. The return status is false if any .I sigspec is invalid; otherwise @@ -9167,6 +9472,8 @@ Each unset variable or function is removed from the environment passed to subsequent commands. If any of .SM +.BR COMP_WORDBREAKS , +.SM .BR RANDOM , .SM .BR SECONDS , @@ -9223,10 +9530,14 @@ with the exception that the following are disallowed or not performed: changing directories with \fBcd\fP .IP \(bu setting or unsetting the values of +.SM .BR SHELL , +.SM .BR PATH , +.SM .BR ENV , or +.SM .B BASH_ENV .IP \(bu specifying command names containing @@ -9246,7 +9557,10 @@ builtin command .IP \(bu importing function definitions from the shell environment at startup .IP \(bu -parsing the value of \fBSHELLOPTS\fP from the shell environment at startup +parsing the value of +.SM +.B SHELLOPTS +from the shell environment at startup .IP \(bu redirecting output using the >, >|, <>, >&, &>, and >> redirection operators .IP \(bu diff --git a/doc/bash.html b/doc/bash.html index 4841764..2aa2825 100644 --- a/doc/bash.html +++ b/doc/bash.html @@ -3,7 +3,7 @@ -
BASH(1)2008 December 29BASH(1) +BASH(1)2009 December 29BASH(1)

Index @@ -555,10 +555,20 @@ or allow them to be specified. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the -p option is not supplied, no startup files are read, shell functions are not inherited from the environment, the -SHELLOPTS +SHELLOPTS, + + +BASHOPTS, + + +CDPATH, -variable, if it appears in the environment, is ignored, +and +GLOBIGNORE + + +variables, if they appear in the environment, are ignored, and the effective user id is set to the real user id. If the -p option is supplied at invocation, the startup behavior is the same, but the effective user id is not reset. @@ -895,6 +905,11 @@ as primaries.

+When used with [[, The < and > operators sort +lexicographically using the current locale. +

+ + When the == and != operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below under Pattern Matching. @@ -926,10 +941,21 @@ of alphabetic characters. Any part of the pattern may be quoted to force it to be matched as a string. Substrings matched by parenthesized subexpressions within the regular -expression are saved in the array variable BASH_REMATCH. -The element of BASH_REMATCH with index 0 is the portion of the string +expression are saved in the array variable +BASH_REMATCH. + + +The element of +BASH_REMATCH + + +with index 0 is the portion of the string matching the entire regular expression. -The element of BASH_REMATCH with index n is the portion of the +The element of +BASH_REMATCH + + +with index n is the portion of the string matching the nth parenthesized subexpression.

@@ -984,7 +1010,7 @@ operators do not evaluate expression2 if the value of the entire conditional expression. -

for name [ in word ] ; do list ; done
+
for name [ [ in [ word ... ] ] ; ] do list ; done
The list of words following in is expanded, generating a list of items. The variable name is set to each element of this list @@ -1020,8 +1046,9 @@ error, each preceded by a number. If the in below). The -PS3 +PS3 + prompt is then displayed and a line read from the standard input. If the line consists of a number corresponding to one of the displayed words, then the value of @@ -1033,8 +1060,9 @@ other value read causes name to be set to null. The line read is saved in the variable -REPLY. +REPLY. + The list @@ -1352,6 +1380,9 @@ backspace
\e
+
\E + +
an escape character
\f @@ -1381,6 +1412,10 @@ backslash
single quote +
\dq + +
+double quote
\nnn
@@ -1404,8 +1439,8 @@ The expanded result is single-quoted, as if the dollar sign had not been present.

-A double-quoted string preceded by a dollar sign ($) will cause -the string to be translated according to the current locale. +A double-quoted string preceded by a dollar sign ($dqstringdq) +will cause the string to be translated according to the current locale. If the current locale is C or POSIX, the dollar sign is ignored. If the string is translated and replaced, the replacement is @@ -1695,6 +1730,34 @@ The following variables are set by the shell: Expands to the full file name used to invoke this instance of bash. +

BASHOPTS + +
+A colon-separated list of enabled shell options. Each word in +the list is a valid argument for the +-s + +option to the +shopt + +builtin command (see +SHELL BUILTIN COMMANDS + + +below). The options appearing in +BASHOPTS + + +are those reported as +on + +by shopt. +If this variable is in the environment when +bash + +starts up, each shell option in the list will be enabled before +reading any startup files. +This variable is read-only.
BASHPID
@@ -1717,9 +1780,14 @@ The number of parameters to the current subroutine (shell function or script executed with . or source) is at the top of the stack. When a subroutine is executed, the number of parameters passed is pushed onto -BASH_ARGC. -The shell sets BASH_ARGC only when in extended debugging mode -(see the description of the +BASH_ARGC. + + +The shell sets +BASH_ARGC + + +only when in extended debugging mode (see the description of the extdebug option to the @@ -1733,8 +1801,15 @@ An array variable containing all of the parameters in the current bash execution call stack. The final parameter of the last subroutine call is at the top of the stack; the first parameter of the initial call is at the bottom. When a subroutine is executed, the parameters supplied -are pushed onto BASH_ARGV. -The shell sets BASH_ARGV only when in extended debugging mode +are pushed onto +BASH_ARGV. + + +The shell sets +BASH_ARGV + + +only when in extended debugging mode (see the description of the extdebug @@ -1763,13 +1838,20 @@ The command argument to the -c invocation option.
An array variable whose members are the line numbers in source files -corresponding to each member of FUNCNAME. +corresponding to each member of +FUNCNAME. + + ${BASH_LINENO[$i]} is the line number in the source file where ${FUNCNAME[$i]} was called (or ${BASH_LINENO[$i-1]} if referenced within another shell function). -The corresponding source file name is ${BASH_SOURCE[$i]}. -Use LINENO to obtain the current line number. +The corresponding source file name is ${BASH_SOURCE[$i]}. +Use +LINENO + + +to obtain the current line number.
BASH_REMATCH
@@ -1784,7 +1866,11 @@ This variable is read-only.
An array variable whose members are the source filenames corresponding -to the elements in the FUNCNAME array variable. +to the elements in the +FUNCNAME + + +array variable.
BASH_SUBSHELL
@@ -1825,7 +1911,10 @@ The release status (e.g., beta1).
BASH_VERSINFO[5]
-The value of MACHTYPE. +The value of +MACHTYPE. + + @@ -1885,7 +1974,7 @@ below).
COMP_WORDBREAKS
-The set of characters that the Readline library treats as word +The set of characters that the readline library treats as word separators when performing word completion. If COMP_WORDBREAKS @@ -1898,8 +1987,11 @@ subsequently reset.
An array variable (see Arrays below) consisting of the individual words in the current command line. -The words are split on shell metacharacters as the shell parser would -separate them. +The line is split into words as readline would split it, using +COMP_WORDBREAKS + + +as described above. This variable is available only in shell functions invoked by the programmable completion facilities (see Programmable Completion below). @@ -2204,6 +2296,32 @@ command. A sample value is ".:~:/usr". +
BASH_XTRACEFD + +
+If set to an integer corresponding to a valid file descriptor, bash +will write the trace output generated when +set -x + +is enabled to that file descriptor. +The file descriptor is closed when +BASH_XTRACEFD + + +is unset or assigned a new value. +Unsetting +BASH_XTRACEFD + + +or assigning it the empty string causes the +trace output to be sent to the standard error. +Note that setting +BASH_XTRACEFD + + +to 2 (the standard error file +descriptor) and then unsetting it will result in the standard error +being closed.
COLUMNS
@@ -2285,15 +2403,21 @@ A value of causes all previous lines matching the current line to be removed from the history list before that line is saved. Any value not in the above list is ignored. -If HISTCONTROL is unset, or does not include a valid value, +If +HISTCONTROL + + +is unset, or does not include a valid value, all lines read by the shell parser are saved on the history list, subject to the value of -HISTIGNORE. +HISTIGNORE. + The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of -HISTCONTROL. +HISTCONTROL. +
HISTFILE
@@ -2320,16 +2444,18 @@ should be saved on the history list. Each pattern is anchored at the beginning of the line and must match the complete line (no implicit `*' is appended). Each pattern is tested against the line after the checks specified by -HISTCONTROL +HISTCONTROL + are applied. In addition to the normal shell pattern matching characters, `&' matches the previous history line. `&' may be escaped using a backslash; the backslash is removed before attempting a match. The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of -HISTIGNORE. +HISTIGNORE. +
HISTSIZE
@@ -2374,7 +2500,8 @@ If HOSTFILE -is set, but has no value, bash attempts to read +is set, but has no value, or does not name a readable file, +bash attempts to read /etc/hosts @@ -2443,7 +2570,11 @@ selected with a variable starting with LC_.
LC_ALL
-This variable overrides the value of LANG and any other +This variable overrides the value of +LANG + + +and any other LC_ variable specifying a locale category.
LC_COLLATE @@ -2471,7 +2602,10 @@ This variable determines the locale category used for number formatting.
Used by the select builtin command to determine the column length -for printing selection lists. Automatically set upon receipt of a SIGWINCH. +for printing selection lists. Automatically set upon receipt of a +SIGWINCH. + +
MAIL
@@ -2544,8 +2678,11 @@ the shell looks for commands (see below). -A zero-length (null) directory name in the value of PATH indicates the -current directory. +A zero-length (null) directory name in the value of +PATH + + +indicates the current directory. A null directory name may appear as two adjacent colons, or as an initial or trailing colon. The default path is system-dependent, @@ -2576,8 +2713,8 @@ prompt.
If set to a number greater than zero, the value is used as the number of -trailing directory components to retain when expanding the \w and -\W prompt string escapes (see +trailing directory components to retain when expanding the \w and +\W prompt string escapes (see PROMPTING @@ -2595,8 +2732,9 @@ below) and used as the primary prompt string. The default value is
The value of this parameter is expanded as with -PS1 +PS1 + and used as the secondary prompt string. The default is ``> ''.
PS3 @@ -2614,8 +2752,9 @@ above).
The value of this parameter is expanded as with -PS1 +PS1 + and the value is printed before each command bash @@ -2692,10 +2831,18 @@ A trailing newline is added when the format string is displayed.
TMOUT
-If set to a value greater than zero, TMOUT is treated as the +If set to a value greater than zero, +TMOUT + + +is treated as the default timeout for the read builtin. The select command terminates if input does not arrive -after TMOUT seconds when input is coming from a terminal. +after +TMOUT + + +seconds when input is coming from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash @@ -2866,13 +3013,17 @@ Referencing an array variable without a subscript is equivalent to referencing the array with a subscript of 0.

+An array variable is considered set if a subscript has been assigned a +value. The null string is a valid value. +

+ The unset builtin is used to destroy arrays. unset name[subscript] destroys the array element at index subscript. -Care must be taken to avoid unwanted side effects caused by filename -generation. +Care must be taken to avoid unwanted side effects caused by pathname +expansion. unset name, where name is an array, or unset name[subscript], where subscript is * or @, removes the entire array. @@ -3180,7 +3331,7 @@ interpreted as part of its name.

-If the first character of parameter is an exclamation point, +If the first character of parameter is an exclamation point (!), a level of variable indirection is introduced. Bash uses the value of the variable formed from the rest of parameter as the name of the variable; this variable is then @@ -3858,7 +4009,7 @@ 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 +a pathname 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 @@ -3886,7 +4037,11 @@ or a then any character not enclosed is matched. The sorting order of characters in range expressions is determined by -the current locale and the value of the LC_COLLATE shell variable, +the current locale and the value of the +LC_COLLATE + + +shell variable, if set. A - @@ -4013,6 +4168,15 @@ Redirections are processed in the order they appear, from left to right.

+Each redirection that may be preceded by a file descriptor number +may instead be preceded by a word of the form {varname}. +In this case, for each redirection operator except +>&- and <&-, the shell will allocate a file descriptor greater +than 10 and assign it to varname. If >&- or <&- is preceded +by {varname}, the value of varname defines the file +descriptor to close. +

+ In the following descriptions, if the file descriptor number is omitted, and the first character of the redirection operator is <, @@ -4060,7 +4224,7 @@ ls 2>&1 > dirlist directs only the standard output to file dirlist, -because the standard error was duplicated as standard output +because the standard error was duplicated from the standard output before the standard output was redirected to dirlist. @@ -4625,9 +4789,11 @@ The first element of the variable is set to the name of the function while the function is executing. +

+ All other aspects of the shell execution environment are identical between a function and its caller -with the exception that the +with these exceptions: the DEBUG @@ -4649,7 +4815,13 @@ below) are not inherited unless the function has been given the builtin below) or the -o functrace shell option has been enabled with the set builtin -(in which case all functions inherit the DEBUG and RETURN traps). +(in which case all functions inherit the DEBUG and RETURN traps), +and the +ERR + + +trap is not inherited unless the -o errtrace shell option has +been enabled.

Variables local to the function may be declared with the @@ -4858,6 +5030,11 @@ Unless otherwise specified, primaries that operate on files follow symbolic links and operate on the target of the link, rather than the link itself.

+ +When used with [[, The < and > operators sort +lexicographically using the current locale. +

+

-a file @@ -4984,16 +5161,17 @@ True if the length of is non-zero.
string1 == string2
-True if the strings are equal. = may be used in place of -== for strict POSIX compliance. + +
string1 = string2
+ +True if the strings are equal. = should be used +with the test command for POSIX conformance.
string1 != string2
True if the strings are not equal.
string1 < string2
-True if string1 sorts before string2 lexicographically -in the current locale. +True if string1 sorts before string2 lexicographically.
string1 > string2
-True if string1 sorts after string2 lexicographically -in the current locale. +True if string1 sorts after string2 lexicographically.
arg1 OP arg2
@@ -5160,7 +5338,7 @@ arguments, if any. The shell has an execution environment, which consists of the following: -

+

*
open files inherited by the shell at invocation, as modified by @@ -5188,7 +5366,10 @@ options enabled by shopt shell aliases defined with alias
*
various process IDs, including those of background jobs, the value -of $$, and the value of $PPID +of $$, and the value of +PPID + +

@@ -5197,7 +5378,7 @@ is to be executed, it is invoked in a separate execution environment that consists of the following. Unless otherwise noted, the values are inherited from the shell. -

+

*
the shell's open files, plus any modifications and additions specified @@ -5481,7 +5662,7 @@ refers to the ability to selectively stop (suspend) the execution of processes and continue (resume) their execution at a later point. A user typically employs this facility via an interactive interface supplied jointly -by the system's terminal driver and +by the operating system kernel's terminal driver and bash.

@@ -5534,13 +5715,16 @@ These processes are said to be in the processes are those whose process group ID differs from the terminal's; such processes are immune to keyboard-generated signals. -Only foreground processes are allowed to read from or write to the -terminal. Background processes which attempt to read from (write to) the +Only foreground processes are allowed to read from or, if the +user so specifies with stty tostop, write to the +terminal. +Background processes which attempt to read from (write to when +stty tostop is in effect) the terminal are sent a SIGTTIN (SIGTTOU) -signal by the terminal driver, +signal by the kernel's terminal driver, which, unless caught, suspends the process.

@@ -5804,12 +5988,23 @@ the release of bash, version + patch level (e.g., 2.00.0)

\w
-the current working directory, with $HOME abbreviated with a tilde -(uses the $PROMPT_DIRTRIM variable) +the current working directory, with +$HOME + + +abbreviated with a tilde +(uses the value of the +PROMPT_DIRTRIM + + +variable)
\W
-the basename of the current working directory, with $HOME +the basename of the current working directory, with +$HOME + + abbreviated with a tilde
\! @@ -6350,12 +6545,24 @@ can be set to either or vi. +
echo-control-characters (On) + +
+When set to On, on operating systems that indicate they support it, +readline echoes a character corresponding to a signal generated from the +keyboard.
enable-keypad (Off)
When set to On, readline will try to enable the application keypad when it is called. Some systems need this to enable the arrow keys. +
enable-meta-key (On) + +
+When set to On, readline will try to enable any meta modifier +key the terminal claims to support when it is called. On many terminals, +the meta key is used to send eight-bit characters.
expand-tilde (Off)
@@ -6477,6 +6684,15 @@ words which have more than one possible completion without any possible partial completion (the possible completions don't share a common prefix) cause the matches to be listed immediately instead of ringing the bell. +
skip-completed-text (Off) + +
+If set to On, this alters the default completion behavior when +inserting a single match into the line. It's only active when +performing completion in the middle of a word. If enabled, readline +does not insert characters from the completion that match characters +after point in the word being completed, so portions of the word +following the cursor are not duplicated.
visible-stats (Off)
@@ -7099,6 +7315,12 @@ of matches; a negative argument may be used to move backward through the list. This command is intended to be bound to TAB, but is unbound by default. +
menu-complete-rd + +
+Identical to menu-complete, but moves backward through the list +of possible completions, as if menu-complete had been given a +negative argument. This command is unbound by default.
delete-char-or-list
@@ -7275,6 +7497,16 @@ character. A negative count searches for previous occurrences.
A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent occurrences. +
skip-csi-sequence () + +
+Read enough characters to consume a multi-key sequence such as those +defined for keys like Home and End. Such sequences begin with a +Control Sequence Indicator (CSI), usually ESC-[. If this sequence is +bound to "\[", keys producing such sequences will have no effect +unless explicitly bound to a readline command, instead of inserting +stray characters into the editing buffer. This is unbound by default, +but usually bound to ESC-[.
insert-comment (M-#)
@@ -7359,12 +7591,17 @@ below), the programmable completion facilities are invoked.

First, the command name is identified. +If the command word is the empty string (completion attempted at the +beginning of an empty line), any compspec defined with +the -E option to complete is used. If a compspec has been defined for that command, the compspec is used to generate the list of possible completions for the word. If the command word is a full pathname, a compspec for the full pathname is searched for first. If no compspec is found for the full pathname, an attempt is made to find a compspec for the portion following the final slash. +If those searches to not result in a compspec, any compspec defined with +the -D option to complete is used as the default.

Once a compspec has been found, it is used to generate the list of @@ -7390,7 +7627,7 @@ variable is used to filter the matches.

-Any completions specified by a filename expansion pattern to the +Any completions specified by a pathname expansion pattern to the -G option are generated next. The words generated by the pattern need not match the word being completed. @@ -7524,6 +7761,43 @@ the programmable completion functions force readline to append a slash to completed names which are symbolic links to directories, subject to the value of the mark-directories readline variable, regardless of the setting of the mark-symlinked-directories readline variable. +

+ +There is some support for dynamically modifying completions. This is +most useful when used in combination with a default completion specified +with complete -D. +It's possible for shell functions executed as completion +handlers to indicate that completion should be retried by returning an +exit status of 124. If a shell function returns 124, and changes +the compspec associated with the command on which completion is being +attempted (supplied as the first argument when the function is executed), +programmable completion restarts from the beginning, with an +attempt to find a compspec for that command. This allows a set of +completions to be built dynamically as completion is attempted, rather than +being loaded all at once. +

+ +For instance, assuming that there is a library of compspecs, each kept in a +file corresponding to the name of the command, the following default +completion function would load completions dynamically: +

+ +_completion_loader() +
+ +{ +
+ +       . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
+
+ +} +
+ +complete -D -F _completion_loader +
+ +
 

HISTORY

@@ -7536,7 +7810,11 @@ option to the builtin is enabled, the shell provides access to the command history, the list of commands previously typed. -The value of the HISTSIZE variable is used as the +The value of the +HISTSIZE + + +variable is used as the number of commands to save in a history list. The text of the last HISTSIZE @@ -7610,7 +7888,8 @@ If is unset, or if the history file is unwritable, the history is not saved. If the - +HISTTIMEFORMAT + variable is set, time stamps are written to the history file, marked with the history comment character, so @@ -7744,7 +8023,7 @@ If the shell option is enabled (see the description of the shopt -builtin), and +builtin below), and readline is being used, history substitutions are not immediately passed to @@ -8060,8 +8339,14 @@ accepts -- to signify the end of the options. -For example, the :, true, false, and test builtins -do not accept options. +The :, true, false, and test builtins +do not accept options and do not treat -- specially. +The exit, logout, break, continue, let, +and shift builtins accept and process arguments beginning with +- without requiring --. +Other builtins that accept arguments but are not specified as accepting +options interpret arguments beginning with - as invalid options and +require -- to prevent this interpretation.

@@ -8251,18 +8536,22 @@ Remove any current binding for keyseq. Cause shell-command to be executed whenever keyseq is entered. When shell-command is executed, the shell sets the -READLINE_LINE +READLINE_LINE + variable to the contents of the readline line buffer and the -READLINE_POINT +READLINE_POINT + variable to the current location of the insertion point. If the executed command changes the value of -READLINE_LINE +READLINE_LINE + or -READLINE_POINT, +READLINE_POINT, + those new values will be reflected in the editing state.
@@ -8370,7 +8659,11 @@ is equivalent to $OLDPWD. -If a non-empty directory name from CDPATH is used, or if +If a non-empty directory name from +CDPATH + + +is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output. @@ -8395,8 +8688,9 @@ option is given, the search for command is performed using a default value for -PATH +PATH + that is guaranteed to find all of the standard utilities. If either the -V @@ -8456,12 +8750,12 @@ will be displayed.

The return value is true unless an invalid option is supplied, or no matches were generated. -

complete [-abcdefgjksuv] [-o comp-option] [-E] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command]
+
complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command]

[-X filterpat] [-P prefix] [-S suffix] name [name ...] -
complete -pr [-E] [name ...]
+
complete -pr [-DE] [name ...]
Specify how arguments to each name should be completed. If the -p option is supplied, or if no options are supplied, @@ -8470,6 +8764,9 @@ them to be reused as input. The -r option removes a completion specification for each name, or, if no names are supplied, all completion specifications. +The -D option indicates that the remaining options and actions should +apply to the ``default'' command completion; that is, completion attempted +on a command for which no completion has previously been defined. The -E option indicates that the remaining options and actions should apply to ``empty'' command completion; that is, completion attempted on a blank line. @@ -8635,7 +8932,7 @@ Names of all shell variables. May also be specified as -v.
-G globpat
-The filename expansion pattern globpat is expanded to generate +The pathname expansion pattern globpat is expanded to generate the possible completions.
-W wordlist
The wordlist is split using the characters in the @@ -8658,7 +8955,7 @@ of the array variable.
-X filterpat
-filterpat is a pattern as used for filename expansion. +filterpat is a pattern as used for pathname expansion. It is applied to the list of possible completions generated by the preceding options and arguments, and each completion matching filterpat is removed from the list. @@ -8681,7 +8978,7 @@ a name for which no specification exists, or an error occurs adding a completion specification. -
compopt [-o option] [+o option] [name]
+
compopt [-o option] [-DE] [+o option] [name]
Modify completion options for each name according to the options, or for the currently-execution completion if no names are supplied. @@ -8689,6 +8986,12 @@ If no options are given, display the completion options for each name or the current completion. The possible values of option are those valid for the complete builtin described above. +The -D option indicates that the remaining options should +apply to the ``default'' command completion; that is, completion attempted +on a command for which no completion has previously been defined. +The -E option indicates that the remaining options should +apply to ``empty'' command completion; that is, completion attempted on a +blank line.

@@ -8786,10 +9089,10 @@ Use function names only.

The variable is treated as an integer; arithmetic evaluation (see -ARITHMETIC EVALUATION ) +ARITHMETIC EVALUATION -is performed when the variable is assigned a value. +above) is performed when the variable is assigned a value.
-l
@@ -8825,11 +9128,11 @@ Mark names for export to subsequent commands via the environment. Using `+' instead of `-' turns off the attribute instead, with the exceptions that +a -may not be used to destroy an array variable and +r will not +may not be used to destroy an array variable and +r will not remove the readonly attribute. When used in a function, makes each -name local, as with the +name local, as with the local command. @@ -8913,7 +9216,7 @@ is removed from the table of active jobs. If jobspec -is not present, and neither -a nor -r is supplied, +is not present, and neither -a nor -r is supplied, the shell's notion of the current job is used. If the -h option is given, each jobspec @@ -9373,7 +9676,10 @@ is to be used.

When the end of options is encountered, getopts exits with a return value greater than zero. -OPTIND is set to the index of the first non-option argument, +OPTIND + + +is set to the index of the first non-option argument, and name is set to ?.

getopts @@ -9516,7 +9822,7 @@ is printed.

Display a short description of each pattern -
 -m +
-m
Display the description of each pattern in a manpage-like format @@ -9550,7 +9856,11 @@ lists only the last n lines. -If the shell variable HISTTIMEFORMAT is set and not null, +If the shell variable +HISTTIMEFORMAT + + +is set and not null, it is used as a format string for strftime(3) to display the time stamp associated with each displayed history entry. No intervening blank is printed between the formatted time stamp @@ -9614,7 +9924,11 @@ are added.

-If the HISTTIMEFORMAT is set, the time stamp information +If the +HISTTIMEFORMAT + + +variable is set, the time stamp information associated with each history entry is written to the history file, marked with the history comment character. When the history file is read, lines beginning with the history @@ -9758,9 +10072,10 @@ Each arg is an arithmetic expression to be evaluated (see -ARITHMETIC EVALUATION). +ARITHMETIC EVALUATION +above). If the last arg @@ -9806,7 +10121,7 @@ Exit a login shell.

readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
-Read lines from the standard input into array variable +Read lines from the standard input into the indexed array variable array, or from file descriptor @@ -9816,7 +10131,11 @@ if the -u option is supplied. -The variable MAPFILE is the default array. +The variable +MAPFILE + + +is the default array. Options, if supplied, have the following meanings:
@@ -9845,7 +10164,7 @@ Discard the first count lines read.
-t
-Remove a trailing line from each line read. +Remove a trailing newline from each line read.
-u
@@ -9887,7 +10206,8 @@ before assigning to it.

mapfile returns successfully unless an invalid option or option -argument is supplied, or array is invalid or unassignable. +argument is supplied, array is invalid or unassignable, or if +array is not an indexed array.

popd [-n] [+n] [-n]
@@ -10054,7 +10374,7 @@ option is used, the pathname printed may contain symbolic links. The return status is 0 unless an error occurs while reading the name of the current directory or an invalid option is supplied. -
read [-ers] [-a aname] [-d delim] [- text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
+
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
One line is read from the standard input, or from the file descriptor fd supplied as an argument to the -u option, and the first word is assigned to the first @@ -10123,7 +10443,17 @@ buffer before editing begins.
read returns after reading nchars characters rather than -waiting for a complete line of input. +waiting for a complete line of input, but honor a delimiter if fewer +than nchars characters are read before the delimiter. +
-N nchars + +
+read returns after reading exactly nchars characters rather +than waiting for a complete line of input, unless EOF is encountered or +read times out. +Delimiter characters encountered in the input are +not treated specially and do not cause read to return until +nchars characters are read.
-p prompt
@@ -10281,7 +10611,10 @@ effective only when job control is enabled.
-e
-Exit immediately if a simple command (see +Exit immediately if a pipeline (which may consist of a single +simple command), a subshell command enclosed in parentheses, +or one of the commands executed as part of a command list enclosed +by braces (see SHELL GRAMMAR @@ -10294,25 +10627,32 @@ or until keyword, -part of the test in an +part of the test following the if -statement, part of a command executed in a +or +elif + +reserved words, part of any command executed in a && or || -list, +list except the command following the final && or ||, any command in a pipeline but the last, or if the command's return value is -being inverted via +being inverted with !. -Failing simple commands that are part of shell functions or command lists -enclosed in braces or parentheses satisfying the above conditions do not -cause the shell to exit. A trap on ERR, if set, is executed before the shell exits. +This option applies to the shell environment and each subshell environment +separately (see +COMMAND EXECUTION ENVIRONMENT + + +above), and may cause +subshells to exit before executing all the commands in the subshell.
-f
@@ -10374,23 +10714,23 @@ with the option. This also affects the editing interface used for read -e. -
errtrace +
errexit
Same as --E. +-e. -
functrace +
errtrace
Same as --T. +-E. -
errexit +
functrace
Same as --e. +-T.
hashall @@ -10557,11 +10897,16 @@ environment, and the SHELLOPTS, -CDPATH, +BASHOPTS, + + +CDPATH, + and -GLOBIGNORE +GLOBIGNORE + variables, if they appear in the environment, are ignored. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the -p option is not supplied, these actions @@ -10577,9 +10922,10 @@ Exit after reading and executing one command.
-u
-Treat unset variables as an error when performing +Treat unset variables and parameters other than the special +parameters "@" and "*" as an error when performing parameter expansion. If expansion is attempted on an -unset variable, the shell prints an error message, and, +unset variable or parameter, the shell prints an error message, and, if not interactive, exits with a non-zero status.
-v @@ -10832,7 +11178,11 @@ longer exists, a normal path search is performed. If set, bash lists the status of any stopped and running jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a second exit is attempted without an -intervening command (see JOB CONTROL above). The shell always +intervening command (see +JOB CONTROL + + +above). The shell always postpones exiting if any jobs are stopped.
checkwinsize @@ -10863,6 +11213,23 @@ If set, changes its behavior to that of version 3.1 with respect to quoted arguments to the conditional command's =~ operator. +
compat32 + +
+If set, +bash + +changes its behavior to that of version 3.2 with respect to locale-specific +string comparison when using the conditional command's < and > operators. +
compat40 + +
+If set, +bash + +changes its behavior to that of version 4.0 with respect to locale-specific +string comparison when using the conditional command's < and > operators +and the effect of interrupting a command list.
dirspell
@@ -10925,8 +11292,14 @@ executed by the . or source builtins), a call to
4.
-BASH_ARGC and BASH_ARGV are updated as described in their -descriptions above. +BASH_ARGC + + +and +BASH_ARGV + + +are updated as described in their descriptions above.
5.
@@ -10960,17 +11333,24 @@ result in an expansion error.
force_fignore
-If set, the suffixes specified by the FIGNORE shell variable +If set, the suffixes specified by the +FIGNORE + + +shell variable cause words to be ignored when performing word completion even if the ignored words are the only possible completions. See SHELL VARIABLES -above for a description of FIGNORE. +above for a description of +FIGNORE. + + This option is enabled by default.
globstar
-If set, the pattern ** used in a filename expansion context will +If set, the pattern ** used in a pathname expansion context will match a files and zero or more directories and subdirectories. If the pattern is followed by a /, only directories and subdirectories match. @@ -10984,8 +11364,9 @@ message format.
If set, the history list is appended to the file named by the value of the -HISTFILE +HISTFILE + variable when the shell exits, rather than overwriting the file.
histreedit @@ -11072,7 +11453,11 @@ If set, and is being used, bash -will not attempt to search the PATH for possible completions when +will not attempt to search the +PATH + + +for possible completions when completion is attempted on an empty line.
nocaseglob @@ -11331,6 +11716,9 @@ Each is either a signal name defined in <signal.h>, or a signal number. Signal names are case insensitive and the SIG prefix is optional. +

+ + If a sigspec @@ -11365,6 +11753,21 @@ If a sigspec is +RETURN, + + +the command +arg + +is executed each time a shell function or a script executed with the +. or source builtins finishes executing. +

+ + +If a +sigspec + +is ERR, @@ -11399,21 +11802,12 @@ being inverted via !. These are the same conditions obeyed by the errexit option. -If a -sigspec - -is -RETURN, +

- -the command -arg -is executed each time a shell function or a script executed with the -. or source builtins finishes executing. Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their original -values in a child process when it is created. +values in a subshell or subshell environment when one is created. The return status is false if any sigspec @@ -11591,7 +11985,7 @@ The maximum size that may be locked into memory

-m
-The maximum resident set size +The maximum resident set size (many systems do not honor this limit)
-n
@@ -11733,6 +12127,9 @@ is removed. Each unset variable or function is removed from the environment passed to subsequent commands. If any of +COMP_WORDBREAKS, + + RANDOM, @@ -11809,15 +12206,19 @@ with the exception that the following are disallowed or not performed: changing directories with cd
*
setting or unsetting the values of -SHELL, +SHELL, -PATH, + +PATH, -ENV, + +ENV, + or -BASH_ENV +BASH_ENV +
*
specifying command names containing / @@ -11841,7 +12242,11 @@ builtin command
*
importing function definitions from the shell environment at startup
*
-parsing the value of SHELLOPTS from the shell environment at startup +parsing the value of +SHELLOPTS + + +from the shell environment at startup
*
redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
*
@@ -11957,7 +12362,7 @@ Brian Fox, Free Software Foundation Chet Ramey, Case Western Reserve University
-chet@po.cwru.edu +chet.ramey@case.edu  

BUG REPORTS

@@ -12055,7 +12460,7 @@ There may be only one active coprocess at a time.
-
GNU Bash-4.02008 December 29BASH(1) +GNU Bash-4.12009 December 29BASH(1)

@@ -12161,6 +12566,6 @@ There may be only one active coprocess at a time.
This document was created by man2html from bash.1.
-Time: 05 February 2009 08:05:34 EST +Time: 30 December 2009 13:07:38 EST diff --git a/doc/bash.pdf b/doc/bash.pdf index 563daf1484403d4ed18d977e6d2d431a8b0f3950..cb36c5e173e7aa1ea2edda48f0d66aae8093932c 100644 GIT binary patch literal 288296 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
GP9IAIlk`Uu3QO05|2wLik3aU7l7 zeKj$DlTUe=TrdARJFHukgT#7i(*qLLB0~G-YOwV^=ST5Lr1ifu(zG_(8V*{X+#Pwt zlPBYN)1c3nvVtf-8bW@PujH1@w4Eh`5j)Bjv${SSdQCeDVQu{ z7%^gOa7)wh*_B2M&s+Wy=&2d879m_cviN0!6uJEp4Soj;^`( z^PY02ex$MHUMjM~^pZeY4xXqg`c`>ovP4Eg$dOsy668_INOLWd0rM z3O>1=xTR-Ctqw6&rgkri(on0Qh3jr+DecM>^DpCAe+qHI#P`(Jv-5DWeL0rAF}K?& z^V=&NOf^qhdsfFENMY(ehS;=31l&WeK}aoUOxuP zDQ_5hLUE~R0D}|4ppC_4qSTd&MdgqmS^-PWACn%{2^EDu-#>NKNuTGu#DbXH{k69{ z(HyFCMCm372t^G z^^?fXSrcQt52akgWSEZ>i-BD(sF|>z2N}7;$h@E%e3iaklXtkydRl2Ri=C2)WPcJN zAqnN+Sx83IR^!fdO`mC2BYZ?MH~gbXH-+i(Swm_&j!_yEL&-*g2GHA^*L8OyDGnlG z0J~I;i)AFg4Fl9yF_&+AzsKuK8grU)FX*6}^kwa1&>-n61q*bZ4Y}#t{Gz1+kH1%W zR20FsKPYz|KP5N#8K|QHTcu1F99BXpFWz|lHRk>u<3$JKW*y_r)`<(yvscjKi4EnH z_uh^pFQ|VBuQio~ElF@}5EdJf6B2B$_TdE*w9CDDJAjY|?KcImeM?J>KX%nwV^dzK z*+xBq65t5qh?P=!vmjfo^4B-FRjIiLkzlexF&mt@i1p?yshFlfeJNNN{P|0TW?5wx z#8R@VB>4G;g>lm>>u4`{H_@wdi(M*jw-F>9+W51iBqblgj7M5dId2y{{o(tZY}f3( zYX;DD>SVag%pMN>UNVbRtfM(XA$dus4!2uu8L7btDq4(UIju{$$2-Hd(9^&#MC`BL zU?<>G5WV)r@j=(ouk!!B#TWch4O0nlHQUrkn>_oRrY>Ilsm9@90+ylQzyssc|v~jjsE3% zTF+iTSH57b4!T7xA*IZR7*7{*CuTdXonIC@&`1w=j%36f~DGrguh=%T$Szf=fKdn%t zo(Pp};*u#>qTQ^P#vBCr_$Q;2Ol?(`zh94^C_X~YBA|*DlwK@ZEmetx)jaP^yDKC} zjI1R{R1qiXlk*mKj?~d-AAc|W`AP~ZQ&erMND2Qgwsxwx7!ziNWrgdUdWfkKVI%PD zvtzTmDVc>+M139(9+oSkZUNmdp3H2+`mV&RMu2Y3nf@Wm4h6DPw5`&aU)E#n`nBS{ z0x{t}aSU23??zEu@bEPtETR%`yRB-y;*`6tidt8(S+JR4TUJ%qy37`{^85QtyH>*2 zBGu8#umHjkV)v}iwwXsOd?__BU5FK+=@rWY)$_t{k{! zbUbI<8SE|+s$q-qjUW#4?Z8yF20-S*g0z4$Xf}Z=oWUH z2NE3SqN7-WqgDu7i^c#MZ(jHk_EsJJsj4PoyP%O_+@zrHEO)m!+h1xTq(0zwrYf&d z_!Zt+FRe7zDchH4T9a*F9b^SBW{>19w!KwdMLL}oPHW2Dj%EtS-c+!`m!XYTO$P~0 zpI!j=rU%-ey>{C)P(!@DXr7|728%Q}1pVu#+GVzpU0(?sAYn(L;~9pyC|>nV0fQc$8!VA~6F zenx^1Gopw->fJ?Y%kSxrkiF9N2f*+Bc%?!em=n64)N5ik=02{ONbrkMvKOmf;#}Am zskCXg`y|!Qd_fjvk%YC|J!L-Rp>V8~xRo$~*U!uKfOM$lfc)1#6N5P`kR`jaO31m)Zg)doa10lI z%t(Dxr(1%|S3#X;ud>TXecHw$ZV2+d6qkG@CoEG&v+TuA)v>0>R}Eq8sD-Z7q)>&{ z%^dEYdMZDj#?2BVr(sL=G%n%IOOt`A!{G1=Ja=8yokb47Onx(nx7mcytN1h9Cvx^H zIP#!e`f@23B+*Gxg>(WM*XLbIDL4Z>)IMjFXS(#)Gc7nX5tj&a`bCmnZhAGUs4TyQ z)^lys>&7&QbKWo|A|mDzbSWQyGnd>f)8}S5=m$Jl3wZ?U?k$tgy{}&%ZTI*0dcGm- z_oWoxZxBW)E}uS43uV-zX6GXmQq+{LS4yrj+Z9Lq62cYh>BkR~g1 zGE9n~@}`pLN#~e!#}UE4}z8fZE*{6eK@VHoHAvS+Vay?#+2`x7ULJ z`_4Y_>v*O%U#c}#4)CpRieBZMY5{UeqiQEwk1aj*x=GE@7LF3Ca=reDvF1lx##n3T zV(!;rF#6Vt9S@=qvG2rWGuu_oy?|{V`m|OQH=$^P4kXR!2Et0B+8ZN=jXqg71uH_Z zJ}5LGNkWV(Jmfe4GN$uX>B_T#2qBJ(+?x^t?9`77(v(F+Ja+LSjZh$qU`YX_Dl6z~ z^;fF=!Xe?KMC}TuyyE=q891>*ZT?wOYgFn6W%l1wBwPV=Nar$s*Qf{(PVarzx;2SQ zezbgr&~u*)%HnNMSqM3uFo$c)TRA~0^HkBovr>&5SxJoD=)P~A`HN$D`{L2H2Xf$7 zT%p%IqPM1+OFXKP&J;z|NQ%xmi!=ixjdp9o9vQNg z(@f{_YU0v=wb>ZkV2{E|Eh#0G@}-t4gIJ^qCwv1(B3w!227pVaVhx&9Qw6~ZC7dLs zgGz2EEs*!EbSv47!X9%ehhVUZgR4R{RD>KSZGm-tD@%H^U=m@gv=x3p zUQr3PSl5s=z2U?0$Vc}K>ZkI^MWSlLSy*XY`{wZ1B;<~I)8Ot*SNZi#E$|Z?7HUEuV`3 zn-UnBi5DX6V3qyVL;N!4P=+mn%vTYV%NuT!{*c^X<>$r$EzmKHRfI&m;30q7xEdG* zBU3=6RrGn~{VF0yUTT#R69}=`C^;lUV*G!#3W06C)uD5ml*H)uFCT9H>8xnxd(yoC zU2dr8^q*V?WY3+~zLZv&1BmzU%%yx6@3Ob!9fog8_muTozIW}m>s)^M2jotr#mxSG zvC$%10B`5}dkovVjac9Z5-?-xAyC&hQ%%;k$L<;;I`s+?193Tqms!KGU6W873!kRe8hL+FW*bm*gIT#AD5J6(acA*L#18K(XA8MD(@LAy%3i!i7^*|C3M= ze(`}<)CA~Mu* zrD8U2Vb0t57B@&g!i_Ev3COC&*bYhk-pTTS^Qq*8Waq^<+zRSSl+am885dchPClGO zfYrW`)8Wf(jI`PCj#bZE%wUOTiUIA7!Te3nOT;?|PMFy)bCze0@OI*KqhX}QZ@g)^ z>z`*Ps(r0*zR4ASndG|$r**T`p(UTWhl}@PsoE)v<|CTy&*c?L`i)!^Kg*QNTX-9* zg#yQ&+}x2<0{vol4IyDUl&~xs%WhZ5f|L57q8dmsLY^0p1l^wrX3`LT?lCSR{nV*l zHAPCAUCO*O)q0=G?$b?xGVxZ0X6{9+*tSn^q{qYG9uN8JhTYER_? z&2o{X+nzwEYA>2Kw53y~U~&ZXLEk-1u(cBc0AKNtB2Xbt0VH;fKM}@wTuRO9v`0CF zSt9rrKAu*a-=f?!bK`w}gJmuPSdNL7DFv5C-4nH z6~E|hcl0p%T4_Yv>e!C~MKDlk3uH_|Urpno95+EgSkS4t78=05sO zuYCWCKKbljl>PnY7Jo8Pv`KmAHZcuJwrECe6WJg7tj3SyByr(xi$8APk4FU}uvDRt z4`f@A>l1J36o|M)9+Ze~Ci!G??_{^RUqdM*L~n@o?I*B1M9vn*z5a&jDD2e^MfrEAjs$i%DLg44GF;V za%_0;2DTv>($G)&L~IP-;v4AZ5OYqV8sZ&HclhB+i`Vr1@!nC;JNb~DaClO2;@WE->-$iIStU@X7{+;L?8b@>j&_zy-Jm``(e%hg8%t}Czfcn z`w!n@|J`mgv#@ghPrJ?bAKGoU|69AQy`8*0hU~XrFG!6Dp)$>64zV7=E7^wPAf1kH zr6!e@;~aG281)-W9jIdV4ELGleLN=*7vkVbnSM3heR5FNK;9$&cJPzZh*$a||2x2^ z>*Li8c^6(o>RID!N3Xa4$Xm$t?{;3%dAkN6bdt7f*Vs*Jf9JM-27;GbR8=)OP0iJ( zD>`35XZHse*N7^EHbpH;ti78?OPyAxcsru{&n#m9$XABibB=nMFk?5Vzj=S*e81l; zs?P$q97_7VC7p}*D}CK(8m(q>DsSI$b-?Zqd^JtCrXy`Fb@#D?0K@AMR|x6rz`Oj= zo$93u7Y(5wPHpG!o70zhtc*-Xok3o+vR0e$3LCYRn^|j$3|cMaQu(^Sm2a5Y=&#*? z_Ymxx8J9Q1YX9?)ai<4D3o?a~b-r$1)dp+k$MgK&<@2G*QxpLz8PlO%^4(BeJ6Q@X zfqg!U;PU(EZ9SQEY=A??o>P4Mrd{NeweyG&JayHlId9I&hHbIj^4hn_%5HVvuWtWH zZ??QocAU@V=&WxPIWq(ja~amt(@+_Td2I}E8JUQ((6q|&81I0(gvAX#2|Esm0Q^-( z(c?n<5QE}6MD?AQs$Xgjn1|K(A&!^Ij!+MeSFZ{RVu6M-D(SSaJ-a?C>9W$iR{e^@ zy<73{elfO#FXTl~1m6W;#ptMJr#pY>`T6S}(fpCcW@-+}wOG>25i0JEERZHPE+10Of^Kgr)EjJ*RTcGL zKw%##tC>Nyl8&(jF(}{6Ju&+`-yhC17>e%vKOV*{>iZJ(zn;$3f(oXZiTz)%W@i=Z zG0IZkLqBqG7k``-?NlX1T)G6REVpyz@6|;c8QWtBjcfx)|GtCyTW+sRwDBcad%*vx zw&bihW)dd6>;7TANO;|S*r*l75MaI0W5qrYcyr@n)#K5XcwuDqxRGil`3BDPZnas{ zE@o>O1shtkDrUQce*ReW+s{R+_(Xodc$wWbG9|5V+?%FJ0=(piwL`Xkh|^T+WfZ!n zBVZv4{Q}GKyC>8kvAP8H;6{zrF8=HyK)Q|aj+A%%o6Vn~A*;UmtZ5}%?5;@v(SU+x zDTeUO@d7c1$Qth-H7*hn>xo!fz!57Nq4}msVwzLRn~Pgms{n((yE(lHmWl3PaZVq` z=Zp0_){w;XY}vCN5q1a-pQ&j}>Ad5!Z=0A-SlaHK4HD)(RNcnG=-N)K0RmH3)qs_A z{&eS{1m5fd@mX{*h-(Dlna6zQT}OiFCcZo5@mwENpl_6>khNhhgQLsSz#_*Bi32Fu+70c5xWS zfAKKHj>>iXg99EpUT=Epyr`&QvZk~{5Tq0zit#{_sE5`2!hwV^NC7~CFF;RW~j8`6OGjFpz>zc(E4+^PXz)(KoiomiQkb=HUGgtGccd~w_diK=i8;N5l*Hbnfu-+?kLONFVUle#12aNY%5nsFrf z(|Nfisj3}PS|F4%i65DAQ42R@*en+$C+k?=3JT&vqz}{?j-5@5N_iw$Wu%@3YBKQF z8l;_7=-_}ohhumn_FTyU&ruLHi^@VsEF%q3js)uF{%0o+rw##V2;(XBVX5&EvGugS z1ze04k@&R(Iz@Mm#zGFfgbEB+ET|DFG5ns$Hh@u!--6do3HWkd{2YZ#_D@CR}aKIJS#A^h}SoH+^VfU}1A)fn%)?@oz7za9DC_`H@^3|6fLq^^_6)$N$W z;bY70p4DkTpyyu^XA4@MsFAXWJ@^JLP&*p$xy9mWcr)AB<>{|s(JaCim!TY-9eTIr z)THLqS&V}HcVPJ}fS=*9={rGKuv2uoEDB^k+ zDS&LtM1KAZs6QMAJh?Aw8Bj+JuMxm{WsB%E4GSyb%xVvJrvM*A|t}=Jg zR#%rYAx+`?1sZ5rE+?~B>0Y%)R~a_ig@2&EQBr%gj25Psa-ip@z+2_ZfPh@-4@f0A z4rD@iPxWle1lXf!Z`cOfZlJtHMu@z-(Bv*9OrgGG6(mySp#YQMVay-U&!=jPR+26< zS6M`fRW*4V=b9lKd}OO=7&Fr3nJnzNiXDP1l-`P2)B>HWjGaTb%o5&6C#cDOB?^xy z1^L(7A;Opna#t~Td*QTKO>DEu#Um{6FOys=I(BFq0LOsP!7L1=vM8$gKbgoceWY+l#R>#Y2WZi?cS@rw<(u8);0#Av)xdG2&ikG9r8YEgY!TJ!GJX@qu! zN1Vo|Xy=9*!BM?%QN|gS0p3?SO~}VnAV<6vB=&V9B2IT5S2M+|+O3hc{&s=2x zrg^iZom46_WmLC!>7=Rh$S^%+RC3zT!^WSK5`p4(Pxqj(Q?RmUmqmB+4_Fjxr}D4U z8=Bca`!kdR#$-|*)pxK{3aCu|gQkK2m78h&BQ z&<}0Jh;e>`OQjBUo`wX=8ocOkPirwTzC)i7G-s9tJZVTjBcvw=QyK^qh)A# zjCNO5&sZD6smqCaoIc-px=)0E6;!`pBVs7|xDQW>K_FXod21IJk^uvd(6$D6E%qi4@sqC>AU;x(AV zhjEqvSv#FYWYF(x;czAVmBzBUot;tkT-bQOdii>mmJQLLnGan>R(^fyi7yA_w<1Da zeK5>GGaVEpb?(?y#NcTJp!iOW*DI9&k^+Bqrg+IZeUIH!XbG%8X!vjWTfkTiA4 zj0>FHJqky$pOguhHy-_q-t^a68!zvSiRuARXn!NR!*{$iertJm4A%AZPKI)I>*_OT zZ%f5K%{ir@%$aaKeh^+s8{KOs2K6s4yNIC9m3cvd~Lp$bm2QGyA6pvKpf zH^x4bg!^aC`?Jd?dYPUwdy2W=u?!=}HX+VWBx~|CAbR_HLEnJ%##HN70G$q&D}Z?3 zm04TZ0E^rZ^Kj9MxwQF$%hD0#P7Y6ksA^9MgC*Z~Ks&3O@%?{&Dz3-|CrRR>1 zlifx|c7-$-5BjT_Fc9e9f_aiK)AwLh+>Lqr;16*`2Hn4Kli?ron=-Inr)&mUnI1%# z!OoXxF z`*NDs+@LbP(r2p0*=ttYyKJzR6*BJN$0`{!PCmUIMh&Pcu1;QEp$X>1m_kP-_fB&B z*`dvdj?Y}Tz>(Yp36fnJKQKx`nOo}&9vQdJ!z53Lbz=I=MC9gETG-6XF*ItK!b6X+ zb-w4mo#lCr$!fYB68Hr)h3cU znG(j&+-VO}w<6f?dY>f!Ms;Y|bRwDOJKHZ7K7MFYEsO;+!C92n6`&=(Zb?+-kd$(b z1t;4plP81H=_Kyk`r^WD`_@%fT8C%b#3JC@G(UmTf5+sX(;154hyl0@Ow&`AXf$%X z=gkOji*T+yJZtAf050yheBTJd_4_pNP>1l{Kvf6N%ot=Pt#8QoZ9KU*oN?WY>a@YA zbEbT4s3Vw5Ro;hMSnU#M@ua5rebG2?g)#zDpF*M2Rk4p+Aam6v-WkKJRF<=;{49kw zBy^h|y;Tn@sVC3*(}RfPY9@G|=TQ~vOyRQuAbl8TZ-mnlPH*TPlm6)3p}ZFSBixjq zP|!hn5ma|h2jz`Bn!km#>E_{DpWQXfoR#~5!9>v?l8y0L+h**hkZY?Dh?^51Na!|A z3_}^jK({h!rM9wDw}gHrp~}oCOI%UJ1z^X7+@qWkV&jSS{eU?3VU{$2dH1!TRwgD`3fk`R zQy>_29u`HER#}NRyIRl3`2q18^XDh%b+Vl0=2Fi~z9IPz$yo8S6XK?S^rTaW)w&}Z z`?0G*$+mk(!mxcy-(0k_*p~I%=#&gXj%2CkV6)7k_^z5=t0)#b#RQnPyq+-74z@H{1k%9e^obF;2c>w5Nf`bvB5X?OZ3Oup|P3 zjux?E){B49Mwsm6KH!CS(-&tS3%RrCmS}MNdriLWuE?@n)=PCnkH`B3qO|u-E_Hpl0!o7Pix=GbGS{GV2j3JYIK-V z>E5MJmoUn{?Wq{%9v!mT zQm1faJE3##mqx9MKFP;d%T~S%*N7$I#MaD~ zos9rs$xYM>mj`D!j*F|^SZ8J7f=7bcdaloWs<}HREf0MFkJK!I+7C0=N7R`s_>hdJ zT_gl^2RArNrkkE_5dl$Pt2(z)yT;M?2fiJ|{w^gu@&kI>OW0(&uB`R+yM{x!J;^}0 zZRClMq>wop3nUubMD3wte!1urqAnN_KrhMIq8u^MOY8bA;O&-9GxgEBg$n;M)-=4a zksAya?Dc^j+rdgGLu1K$(B);0{7GxeZDb7SbymYjqgl2g7?FqBa z3u-pPOh_O}phQUX$M21AQtiO{wQKno)TxFtn|waLw%WF8ifd45vb_`i{n-#nx%SV- zBvcb@Vh4N>m4aUj>$j7zu-3E{@!cLF==IfW$8t$qKH6nZ)s+H=NdQ>aADIAf8^#VG zHf70bQc$({4%-{#Fe~wGhd!?c>vwK#aHEicOilDd*#K=_42tr!XfWo3!nwTtfWNo1 zC`s%^GnQG9w6OP?Ho70sOXJQ=jJcb*Y^M&m2 z^|H~6hL~HQU*M%6q|wJHct=RD@+pDf8*MY035+FCxl}TjDf7wSV7QybS5bNKc%+LQ zkAQn&=4;R!Ov!6D!eX$2r`7o zk)QS%XG;6ZK?qLO!dysAyFt_uu#wA44H5y_*xaSF*OkMCI0CuNni7N%c!m+Y77+XV zh~Jzduxqc50cyx0j;$as&R>#r9KykUKSQF9;g{+4zZZeNCU#g2(OREs|pxJ5VrYSTO5zn~>ALI-boki28)4QNCbScI! z(Bl2E6UY*RX4OpeGtNAxxPs*Q)iNhD|5NzbJoBPmRzxerD>Y>OgBD$$VCWhAPE35v z27kyTx4X%iG7v8U+Ic$UL=OT~SB+2}u-XdSY%|fhus5g}YP9OOrmxnP2$ z(WR3Q>qkT%ve^%9KM?Xv4C;J=iLXY2rJ;vg*{qZ-ncC*%ceT2l9pykCNEh3y*6}TtCopsr&2#e%0(BQuNl>)b{ zV=~Q4LTOgLTC^PTfd;jUt?WQu5g7Y<`NNRyJ+_oSC}dv}HG2%+_=_#wx1x|7+b{hn z$Su7OrM~1YrUWvs`*dfu%(Xz%vN8iu(u173^`CxVl(_+uLty9wDvsqeg4wVnel=>Z zhW$RkbEN9l?^T>2uIL_5X_C}Dp0jJ8WTa=2aS=vU;}QUj+))uuJ78y&g=QRMCBhO#B^TxdyiP&-iCqt@H=wnXBbp zqFLt|)_mA!iQr+mKwn0sn4k!G&g-OOU3!(SfLOn|f0apIsW2YaA+>Q>{^QOT20~cP z=P>O2=m3HLMdhCs>^e&F+Hjg>I2=_H;Q_~-b<;&cPwgdMd0ys5WfGNQ0`ya(-*-u} z0Ne;f#;9tijK!GT!zM{)eb@0ewIdZe`s<&0+C1656PDA?JzGB*g?)=QRMlX zP!_)*m_*Q}u|m5UzbEaht;3D%DRw)UYf5+Ls&Vtcvk|vix7D^QC-ji{P<^j0A^x8( zVLylskJdzEeeoY~cw#^$CM$wvUMLB|lcOiM66JEi=T{g0qQ#LBdlniMI&aqOUrpBC zj_BGV+^(@6O1SndNAxEwgLYFYoa73qywxsg*jVtNb=2M9vap-3`#RxvLKC+HgiQ0C z8TlzH=kvqSQMwS5-G+7ZP$F1=+Sgf&bO>ar=va7Yl}U9Mo7MXz>REv) zM4Tz|ppR_sP&DrS#y!ybYr#rj;Ou1gjo~%z5OGoP!$ekN2V!;y%y?@;&tlVmc_Am-Q%h#4)sD9kpdTce6QU2hls|cJns#?(=SdS{;qtMv9aRZ zgP9$7J7OeG-0^>v{2qk}{=uuziEiGH6xkNqo6!DMci`WnYA>f;9Tcf_wtcg?e=r{a z^uwQ5{T~9)f73}8=Ko*dVgCy#sd>;Kp#_FxGf1sDw$tf=a%xx_K=Fc`q zMzz5`5%1IyVVqY`g!*<&$AM6mXZ1Mj-&clwzt{IA9~lL5CA12OFODnBk52&UKfj0v zzQwZ+N&_#Z1Hq@g3cLs#*j_hFg9rOf>}3yPuH%7AD{Pe z-(yw!o(a=6?CRF*C!*VaYeW@3s6%W0#o!&kbL%NDoN&6OOLe))dcq_0P3mv(9p1pO z^Sfr^iQhkNI(Au2nEV4r;9j&-!6i_cKRq*2Kg@7VqFkNV(;{r@eEJUUd-m2GCcCX69PWEvk5e}oeWL-( z3ENeb6RX{QJe;?2O`K4u=oy@blTkhn?!>;lP|cCk=M%xPdEHN!GKd*UR~fUaUb}NN zd?x5cUhnm*1`Ks31rba(0aM1G?AMWA171_tRr-9M5%xNN)$Qs-8|}#Yz;rIv9$6KW z%C}???V&u8sor*_s@Kqabm2`mB+0v~#XI$0rU2C@D)v{e`n=0*+k&*Xqxbzkl$i`H zre?jrA+@k*?hZoMscnf)vv=J|+itSuq#H;m0Tv^XdxH?gk*|YKgwdU28_j~8P1#Y` z=E#m1mjwCL%|5?G!5L6YDE(pt&&aWVY$Lp}AaA0L4A^D~%&VJKnGyZ`D{|*8c#U;= z+H1$VY$w2@COT%^PLKO=Nm+v#Pr@R>g0=Z&Bt^NBY2)$FD?)+n)lLoxZ1&UE1LbQn zOv#&|tjti}-!GDJel6-y+L%fj;CE$W9`hcM>kw3JMp(r6JhcO+IcJhW!v69`!$+zW zaUM8T4fmB0iBhrc=Wi8iCnE8x{FbGFbj(1m>oH;J#64><&I2nni#T7h|Bb=oxoK}B z1%~J*#h-(lUJ8u(q;Y{8vZ&<;4 zDjI-oo%pO)24!ld(m4SeA?U8B&{wSJ^k-9wtdkOUwTe>4sKyK1PyjDmx_oMg9|KLy znv!wW)Y*tgt_RFPsAriETj)dw|6s4FKHEb2(Zt~URrEO+CWJ!q8go;`A$YLLN}>j zRNI>-6t6H~2db;*DW`gn-hf0Qjys!A#+)i844c3?e$2 z0V&h6@IvwEI%7RWWWMZnbr$M%CAPn=fKIWPK)@i{nfhr+3M71XEDO0nRK5*m+m$~? zy8fCb!MeP_&d5Vm(2idCKy{DUXxjA!?xl72;+q-11hg_b@_^9e-tCaRxe+6M!t(uZ zf!(Ze2uzm6RyM$SgW-Zh{0#T8PG^0S%Z`(^b+BY(X8H$Hjm0=`lHh1#1ulT{C81Lq zM^Hm&S)E0i*11eb&yi{%@8AGqbhSeihOTEcXgVizX>I+qOAClfoE$z+O$ycABZggvz4|$mAUJZg7n*vq@%Qr9%7DuD(ccm{^v!vl*3(^f(zA zs)SZR71^PzFh*J}1$gAJAhU^lxh)kn$5NM_%MC((?sj>GBABiqG(@{l~O4S zWvctqpTRmO8XoKeHL?`rhv=7z(PYU|AhQAyiJM00jQ2=}Zm22YOqg1qdU}ziLI@1% z7b>#_WEk|aqq0pB)C6fc1+{Cfnfn8;VWa<8g7PXBqj2t`#&F}7pcIF2cF6@i_)#O< zxBmUyuAC`)pJ(dD&_G6yEM4Btwzgmb3cJZGz7_|C5~(QwYUEdUr5m>s@pBV4cYP&d zkpyxlyy%;mj{*2zxx3B_vq%b@zb4X9+0}TmwBoKq8K|rc$Eu^*3-1ZyPsC0gyFzVn zbo(>=TJ^SFZxB@C{8t;W{{WWJ@A1Uv*_9aeLY!c)s*iwMMW}(E&TF$F!bY`L0{jsQ za4V?U9xvA6u&c-w4J0_;+LY^yB@WBoC6Bt$%M}8pPRUwqcF&#lY`(!P?xIkY8HhrV zhnaw?zU4?nl8m@l$uOfWTj~{l$`nA0px$xi-!irQ;MA<3LZL%0l4H-?bd<~GviMef>U>) z-WDD6iN|5(F>^v?_^4_x@U@qV*y{puxnU);mFRRKm7|BG;*&|hi zRxJ;IDuJ2;5Q+_;$`&Ij`f{|gZs{RW*uAA%vyv(I5ftVGj?b=5Z|j9~yN@bWRwe>< zQALs*vVCQ)O1k7xq_5*t69_sAT%Z=`^hu)qxlJk>jC;g9&4%QLUnLVO7Zx}#eHf?w z$Et>X_RLlcm+)5YgFgpK?ZmQ^u$#2Fi2Jj2c}ZJ>%T>vqN|T9w64?9ld~R{_XbEOK ziV{HtpVm4exGGeA&cVGiV}sq8L|0Npt-(&DAd*DTaxEXnxdGKv;rB?ci>v@rh+a7k zZlaIOlyKs5eQ}Dr4TUu6n_#*u?B_mm{M)bj3^wHgsEI$jh7@$MCmLv(IT>l{%9yHv zG)m*zGLnsE$rDB}2PzwPN}I8qFg9>)U;P}-VMDp7zcZ6meK_JU!^RiOE3&Mj4PCS5 zSCB=Y;;qH3gAL1QWDhGfVBn-J!M0o%BI}A9UX!qbXa>qAeFHuu+Z?-71?$q+6Q{cE z70x1+!1#uG`cN4zPI$A@F1z+!c?S{3`gg|;0^ z1l8siSVF?ttT=v4@g^@oM)qWUyQv{JV(BC+c<@@!bTwdI+1gxw&*A6pwE3#)Q-TIc z86-BJWvK(g31Gc5P2is^#rKyr_qa3s6I$q5k|_w>b*iu+cWo&9;shf(9q+=$xv?k> z{&?HaIZNjj=FmVMA2955@F*)Cl5MD5iFRvVa5I<~yZDJ<8k}&RK2OJxLd=$PUmSN1 z=(e&dCcfu3dW?YU8?BM|xjd(0!2ieCIW=b%u-i7aZL?#(v2EM7t&VNmwylnB+fF*@ zSSNc|owF~_cd>uMx>!|fJ#)-48-*seGtr>W>cEs|^8IVcXAXz)($ViSIB!*bu?J0= zjQuXB0vh7LcnnYa&(K0)0@a;fu7a>V=Hc*jb11-j8@(?kN%vuv&wH=mtmfV^2ifW+ z?MCcx4==Vy^G*;XlqgTfL74^l-h-}Y_9oHt3EA#wngN&pZ zQc#1u?k+QCDrSG=mUrG}gkM3%W|IkpO;mBWmK9#4F-N1z7CbkI4r8(7tH!u?Bw?QS zshu+rNa@*)D|E;wu*0>$Jj`DVHrktCN=C98nx#bJ>KgkOT!(PVO7MQpu@aA*#~`^) z>H@xTn3akE23`QCE-e+qfiIr%&|DWG^NkmN2FBW&f{^>(bvBLqy*NEVR^)@$vReOe z&ZwR@K%E%W{92;DNW8e_9DPe4K%Ig!O z9yCQP{|#ytYH_u{$g$iM$0(iCx}#`=3g3=t5jr?{#0Jt5R`u?bI+#5}?mE&yq*g`m z%pw1;eo8BJtN=J^d}S6Q&gkEO&=8gLQxZp0+PY>%4oSEoJVT`{n7!M z)3hJ=-{doWvs9w!*k}c^`K1;$+@crOrDNhK!2lbHjsA(R+SI%l3w+DPD>!!R&4gc- zyFgjmxs2B9vuc!+@JS~z9@yTAjG!=-@Zq<)2r}@hi=0h*U?NY;qFn|vizdGUmn{uv znk<%s})~#+Uzf^dyxB~-4+%4;&F`8+jkN{T`8RtXq$j#UYgfn4^69zvU zd~>>_n&~_>f+vh~eV21HyXf8Tdj5NCE4;7)5te7S6LlmAY1sh2^3?nNT9&ut^J3_D zARa{NjV=wS9;!B*a1w{yPtFc&{3c0fka5zVp|3cBJ<(P`*#6ot3(qLxHm_5Lj4%zl zu>=anh^gV2T>4BPyAkE+-hG~IB#aXLM{BMTE^?5;y=1C+vSXxCi@ToLM)|f%8sw>L zS(CP&U&}U!J)9|bFR^g$O?M+oMKnc(kL{?l6C61_{|Z~=!p!S)jK>c`X!5iY%+bwt zjxcq5TQas5WlNvt9Ty+{pv0OtOB^Dv*Z>q1X|lLYO1MQL6Xf@6-~wiF+RiN?plEt_ zP<^8?{U*?|Q7UC6#LibGoFSW!OBK8xZQ0dtH_$;I(%(f;<=@~Z_4BC&*FvI=q zQ^#7ni`FNX)*;?55{aafvyD?zV zs^l_r%Cw2{F)f#a1sf}8Xqo100k*TbG1IeB8Y()|dUWppvbI_vXkDYDl#4marhQ;h z$ZaVZgY7hlmaJsn4#VULrYGwZvFYnH;gk@S_+f|zehaW7Sf?X9Hdq-!#5c72-P*a{ zxqm$92Q35@|NnQH|Gu{TR}jt0%J@IjIQxGHqS^mfL3E0ib<);|>t}Bti2lkDS(mNL z;rdJ%8Z|kyDvV}=SW2V&HM1K;7px-$7BCk5DgPS(@Hf-x6K=Yu7&S)J0?^s0Z?^Z$ z^%t8IRvgNk@z?fM-H#s(n>XeM8^{0R)BW@sUWQG0HE)XBsj0I=O+A_S3TmVAYV_+~ z0KF|oQ>0c_8@K4`i`?zet@-^&z$2xMR^BuuZDq5nIgxg@@NrW0W0CN$v0q>0&U{t| z(o{D}ADjHy^X@kl6JipltZP;YxOCGQJKfoEaA-$V-}ejs+sR?rV_X%hVMM&;$6eU6 z{>tv6QHUn3{FK$*F&(B==3j3%rpc&8y~Jqs#)&B$0(QSoZ0SU$Z$HfEZPx0>Y(J?( zzcPyZ5u`-&5>NH|V6hRou#*Pt5sQnW^Nxs%Ft=4X%D3Hyb+)XEl8SnbT8v525wPg$ z)w>SI%Xk?u*sYvG#|y-H-|A_!t9Z#=$A=9MJVe>Hoa-e90J@9=^>o*B)wn&Ep=f)8 zlr315{Yg|!dVOt7Uw7-uw4>EK{RLss;GBJ?qs>V9P3t_wh)q`!0ZObfp0VchS&U+T ziZo#(t1Jrl<(@fR1}%zSd(GeFqT~pXsb@Nr)Kg41I?V}iK&!NdRLJO-LVT-bCwt6DByjtR$r2$gsSo- zc+AUg^vn^wjJ*5Ev1cCnsiVg56bhAHSk}?3ao|NxN)4t-Dc1kQswpq496pU$$~wL) z9l}cmm6BxmXGo1{SOO&vcQvCMFD`7b*0yz?q1lx7eZTmikKcgp_Fb7ZccfxnJa0=a zv%uQTekngNLzIHHsTN0A{tjd}9df$fzRL^KHq4XWl-h|Hxk-l^boP_=$88%ma2za$ zA0q^FedY{`{Ppc<`2MENeS&^lVRcmbm^+Z8TVNtCCx6)jP4B}OfcAg|n$Oz<$ z@6&~W+z_)QhD77MiK!7J(?d7Ha*0XrsVF-YpXJvFxmJJnJ2%UY&p>jFUeBEpV!We1 zwb2@{%qx9NO#{To{epc~c=vG>xwSKHbB1B71KDG$k-5#!s~kXsPV-|d^%CM7R}mZj zMBZm-pwb+#oFJjC5v1Gqb46`IokNQdr6E?g9>gG*R%#d!cTzI>M_-GOVoMzm^V zg_?bd{U%58Oh_?nXLJf-64VH?H&=~XPXa=|6!2ab=nFHwPA zLF|QA{cz%RzP5@5`&&HAr7iH5dYq?Or6hKvw(U|Q&_=C+RvO;{K1d6jb`J%kE1W{x z1cA%2iY(6cY=-&8A4uIY70(L`cafA_SpEHYE9(3A?@SVfY z^F|zVbq0o{rW;+MZaMwU_=pI?#*f#CJ2VBS8?g;r?)gib@v&f?^#O#&$$>s<+@F#K zmSc$0cqkE8TRLm;*l1t8av;Y`PrO_&vBJdfr3ivs^sOMhRE>jVSuJ*Y|df zWNES~aE#Blp>2|Ari#=F`Nn&hQ3P$}gqU$=N~=;Fu?>Ci0AQ88VT z1ebBEOb4#9b{5Y%WM~SRWxte{Ib*QJ?Vg3Dq(4vzC7sPUNk2L44cQd8s-Mp>@^Q&T zk}`D5QV`7)sqxe_W5rk(((kd$DQmi5>C{WDBM^s8zS`gnz44;ag54^GX5#V)qFMg~ zlD2|@X|9pqi;7J8@?E=x+#&dRC)MDU<&DLs%L3irbU+bez{RlihjI85JRj>@RyQ=i zqIJMkLNWb{%6~sR2J}AvbTJmb7s`=vGQFw*aa8k5m^7*fku3X+XQjFkAb%#KUL2MF zTAmTLJEKgITtV4-TCiX5LgOpY$O@pb>!3gpQ6f{4i%H5_`Bj@gC-`f2)bRlr2wK6? zO^rseH!2z|Krk1yIY$j{q?7Us1Dl(lgaXFd_-N9ap#Ho{X2tH*f*oja2&QJa3!jl% zY06VUgjw26zrPIApAReYn}ht3q??#zhkBydOep>X68vOWwI=*fo%d}{_Gf`Vcp zs{(?sn2(U6V{HLh4-3BgG-J88}B7* zMk*v;zpVF*roSj^z!fU`WFat_riM-=oPuRpRn;^p3n>6T%`Wl4WjE02(As=@tD^0A+MJv3Oxed<*Vp)ICU;@VS^wD6>f+i`wUYv$Q?R z5=u0rSt!hjDZ1KLco;#Y^S;I-weBDH%cf;+e6Z7?`G1 ziX9=5eP5CQ99SHK8`50|*zM%Ti3j1s9DYlIE?IImAz>J6upU==mS;H=d;tsj`!$u2 z`IL}WZoD$*T*t%Agbh{JR5t@EKI0dM)bH%O1-G+oL}1PP@BP88)3mpn;WP)UG@0fk z-|d#L!LAFWf7xacp^;dS5H|uHkC( z$Eog>M9nn{r6uHDs$w#bK!em;;AgjlVXETZDB=%v7;{F! z*cOd{wghYlM_Z5VsQs1n_(P20d+gd)QD-8-E8}SKnB+873tDexD>E|NL0wqfKJ1_V zUR}15C`Ar&*R2gEp)+htDobG1t`^7!bA6wVg>Xu4T=1mZmwcp3FN6Yz}^ewjdh8LKtrIqp&L4+01J6R)H5wOdGs=6~M3!O^3 zs*u`~WARFlznWueXS>O-0>rma&}`zeMp|E4Gj__=LggSGc9~P679-UWsmrw^h%p}L zf=E8n(@I-L3;)ViNiyH;X=|HtNm!K(Mp*!!0?ddb`aAqV_rLoA70#GFR%$RTo7?Iy^ixl!_KVl3o~}sDi+eyP}41 zIr@t~wpb03D54{+6^xL&_UhO-iiws(imq%%Tr|u$ZQ~+#R63P!PyT-5>OiqnqIv)# z$Obr)l-&GD%jD97g@Bw%DwZSBwa)|(IwTV+#@)z8T`2_t$;%F|2Qy|8#BeA+z9pM$ z%r~~f(=0x{i0J`%7!iPE>DGNV@CEli`lp{YEFn|kwbzwRvpAXUR;>tZ2XI!6oMYFd zgllKvVtU%1Jh8H7k{h!Q#n=_M^P*8dK>A&sDsZ78Ny>q`%113gwUynxKK9w;biLas zcK=bxP9Pe1SItBpdOxH`+DDQhso*if%%D5wCGldMsrG*qlpd-?Sc7h%z4a}Nu+yvX z2?Ci`-o%ZT@0*I>rtF(XLIMhf72$%%$cWiEfcuR>x8&afx-*Qae8Mh|R;y8Sw0K?k z;3~R@&T4y6uH!>YqR@M!4g#{`keGI+Vj6g(WKmvLkNc8AML%DQR=IR;zA9UDsAh3P`e6^3hT1U`K-Ed^HG@{bfKKfyrqMZC(RTUE^o7U0! zpJ3EycL#p>C+xQE@>XjYuG@}5)orvj#gsQciEFU1tD%;2HZVx)r2j87=C)IXlR5De zmC+T+@PP9k3oo!Y#W?)}U$7^b*Q^@fNoR!`J7pC)2A`GFY0U@=XLioDooae8)v?}# z6X&@=I$zN;-E%Vg_d~24{BfXX*ffhjyJCz`u zY88FK+w)kvQO=ZAACnhIIznLWp72QSnuKFDFTNdQ$#i`RFM=iHQN~;=ksO5KY#Dkm z1#Xv@H3(GA^%t8E65uK#Lz((hE#1$q4&_(X59&8FTm8W5ZX|LfN+oud4&cdRGS7LO zfvA=fv6{`q*1K@X1Lg(|`x5{BXEM8TDeB=!g1kZn>;9JC$+WTn$-vjwA!qNqC0*Ga zkQmOtIaRMbv(7>3YZ5dh;?iny4R(iDKPiQu*v@lg=7n0by7W>4&7HgePwOclczlw- zZ$eK#1@-wUm9+TEMu(;Aei#AYjC6(wrOtg0L# z6m3PkfK-)Exna9hKze}?2^P-Rz_e_BAH+tNaWY@9_AB)^J(0U$-ab%_u_1e_2&yH{ zmSx7ydt$A)M#U&iK^>AhxV~%a+UH^ogwPpf{7S96gcoOqzt4*P-9$38oz- zoJn+qV+WB`4#jHZ%ZJ723=mQ~?wvf08XPFCgoD6G$*FjXPqvHh*T1eMXkMa^fR5Cp z$i^)rI=IM0tiukY@seiIeK>RPe3mPjeZ843oEvYdxPjI3-tLh$(D^xj|#? zBe1pC+l?SgJV+TekHc;9j*sX~DMAQ+SAUX$`*Rt-`s9Pje-=))_X)H7F@4aTP^eB% zFE9C_Mpf>Zrr>Wx}0@mkVl06aQVA!zw5b`E3o z4t7{YkH_Mez)9_h`TH!a$0`W}!pRP!Jq;QzgZ4cXW7-_A$$|0tSACKoD?BhFpPO=* z@?Jo(pMWNbh+{#8+IFd&t-k= z@!@g2ZgPDI8At=h)!=HGH<_TG=f{^ac*n@upnTM6<=nY<8JWueePX2s`NmU+SAr)4 ztQOXMRJRqL6tXX^z)Vb={Nd~w7Fr9##pkOKyb}*)$7`+dR@{`G~6N9iy zO+7M$>1>CL&RHE8xp8;qr0OC8?X1c@=Z}1#8wdCI?y!r|QzKL&#K%N-#fT&My5yn%V1m=dCC5bON`dMVoKs21^ zn?+NW@QbsYM%Ce&0kN0Z7st$Ey*Z^8;Hl<5>rF7{=m4I&XB%yLOx(+qBz5J)sYXBo z5#Amjn*}X_(e@kstd{QPWta2{zojfszQe#_FUTG^|D}&noFRMquVp~=t_=u^0L)zZ z^+$tG_G%W!Q1O$Q#9g*{A0F4ah`oFP`-L*pIcsI25=jCOd0U#Q{U)2S98av;@Pe!; zSOQhdBU|~BQVQJy@@SG~SiVi?OmDO`w345Nli4%SbDw%S(q|L*>n(6NzWG&Y*qxr6 zpm*hH8TV@yV))r|(j->Y&XbVMZT5KQ$pQQ>9CJ9fi*hZX=l3~L%gPE^oVvrUZtNA8 zPV3p?awqji7*mD$i!4)>cPI2;H-odtx->naH`PEA9bl~^B)}won>I@!e8SY;RZ|I2hg`K$GgwS5pW@Ys`b5(ANvD!+?Wq^nevCJ zpLZ!3V@4L&91&D3vm9w|iGxKi*P*3YQT!C)On22PfS@ZQ{?vmR z4x}>9dqo9N4sN-8-P_onJ_ zCPNOwHl|yI369q(U6ObUw6G}ll`YfJG@zMehWVnj_fK*i{Tiqa?KBJO`GN_o7OKrz z%)2ecU8p9DXqVmVf6RM!Tt-4N&}Nk;+Ec#{(Q#qSp@(LI_kev>T#79uN$;0qU0OZ} z6O&AP^iG$pe#Iaz_=_3zxiJ@6B1z}$1*?>yPj+hItA;D*hNu-86f25-g54hB&QItR zX_F6Cl3#WrBPC3?3gZiQ$Wn97UrKtTNn!>fa=yswzWVGABf}3W?4BQ+Y99WjEspR! z5q#@V1v=1_@x85R;h$ozC~iz`)&&i>RBQ<$nzY?qzC7SJ62;(F=tPeJQ<1B@_9Dhn z+D#Pg{a8xPUzKT|^Z^y$jM2dGluUK!ER%g!|{m9;ls%w=*rv_Yd@=R97M4p$ZcdGynJbnSdP+zoW9s$*I7>Mg5R9 zqGQ7ZHyp0#{R7#!3Om%DWy;?%Q(ag0Bl3?gFj|WhgYy{5Ge|CS`I981>O0gMTkwwH zLBS8OWUNfKrGw+&DL7Mr@&neU<1uAGG$V>Ig*gQ1H*O{qtmT!tq){D^^$1`nImFRz z58@IwPfXJ$0Usg)4Blju!d^REPd&~=Oo4z!SqJF9OwAbYLdLr)akz29KdR8Ra5wD< z7q#*rn*7M+P9qM5PgEX~glPf1NgFe7keMqnDRAf*ISp)+WKDi4e?4z0WED^a{gugX zG#2Pv{Zuen5LtkOn2PQWx~nK<)7WzlXL$$EUId0BqB);^lvwphz$^%QJKviz=5>J< z`8v{Sb{@pjHnqX-vaR~D!I+zHbI@V?t->1w{s~v|=e|G)9^#-iZ)q?BY{8C$h@^ zgFq46trc>fmAvS&4QZt&NBspR7GJ4kypQ73%#0l#@Er^fopy{NGPnXW`;a@J?06AU z|7xyS-_cobg(vVyM~)}ign}eY8H!zzW^OKQh4uRU+&o{eE+X-MH3$<<{|@rN_%OTs z{e^$<@c5kds6NK`-IMzYv%ZPi*rqV7`;y-EbB|^IE5BU(4!wAdE&(9~3B(~HmaMP? zm<5GHKhIwbQrSfiIMb6fbx_CQto*zV?uelRHyPFwGZ6asjP2`^@y29+5OW2UB1VC1OO-8+dm$URUS5cFB36M6nMh|@Bdv;Cy6 zo*jHY9Rdq@E}TS>y>xO8*e7FB(q5mQUO%P-g)E8v*Vlm(AL2Zm*qB5>RYSj=ZO3MG zcDYcCezFnaAO}Zai0_&oA4)5q$>Gz>GO-GWy18f3^{mXp|YJO>t1&RKHuLm#=f>M&;=5u%)t5E29DuGCSae zotpj#{Xq#+<#doMx<4VY5oBL_@p*6UCUW};M7Q*MB=FB=WP}$(314eOzRvZr>q9l~ zxF0)^)51S|J{cf5pe<}fnXOeAUP>1;I)ZnJWETLft7^)rd1h*g-V@G%-usC2qQdu%}U0G{}i&b$HygPfNeD9zx@LO|b($5})I<*_Cy`28a>Xd1BR*2!caiKi zMk11MxsE5fPiA?w^VTHoh)SnLUX9R-JlA)Pp7$&MVo(Id+wUFJ*sH#`6 zH@nn7Q+Eg(C@afEPhU(Msxwp06k4zaZSqY2=6k0^h?TwTvm#V*T{slJVR{hou&>3| za5%I=Au7|~`#Ryk)2drzu&MGB_UDu5IpAehri;%Qfqo@xG={McnGpij$j|WQYi(X6 z@WWUplkdFJsi9T0>d56QdiAj_Z%Q&5a;%XxJez{H`isrg`VX+p8QvKZQ`1e7ymC+E zY00;2if*EByHS7!WZ53C$>mPqT6ho@YXrvI&l=U|pE66N+*&Z8f&1;O;5#k5*5Kou zd189GA$`M)wm%tsfTr*XV*NSjkN4scOvr%wQ^bh?M>gcHg96lmB zJooZs<=YU4PZQ-F3>ECG?kr!b+wa7mqLR5I$93n?@5nR)8Bg`R4r|{ZY#$%LZlDn_(O5Q8HJB&Ffu=rpkN`(b+4PecoU3R9MuO~_{$OkdiXsAXW)yME z+v?Dq{x_6HcL?eG|tYpikH zEzm!l=@gnc>n+txBJZGs8ELjPT&<`LylKp1n7JA7tA`fQ&^A2qi_LwauJSpazaC;X zm4=0eSQLajkUgi1@{XvX>J`1-h z+Yk_}R7Uo+^K92;*-mJPW;PsK=M8r4qg)kFVwjs#S$G}teAbn~A${IS4#TJChVDLg zhCOWH16T}8xg?payL34_HO&_2RwAbmIUIhp2o{h+$l)%y%FpN5=V^&3>%?1fBI>%!MLz^jP_;@hXz1FM4{N#;=05J97}?9Zp5q- zOF=Bg_oCoJXH@l1`~?~%X4Mofy%03{jE{5OVNcm{>;O3!f@-J3SHBB>A6ce9d&p(4 z0D;~%(^kD*M6+HE@JboLPtEsHx1I^@iph;3077f*H1@yWmLs!$zX7Tw+U`S9Wm-ws z4^lmgof|b|^P+_N;VA1LtYC*QXWmJ# zs)ZIhIORj5NNoJUdi6m3HZx_~MfwjH%aJY*^q)4~Tf>b89XZ2NvV}+yn1!_8E)Rdl z)DCf>MG{JrGP<@UwLU_Rhs!aiu}`J~0R*H-8J1y})LP6h6nIbj1(iekB18UoVc=*L zyYkQTsL{x3@OnGry+iFv93>#VOU=RyX2`F#fl9dJcqV0b9)q{nId;h6E&9<|uWSD% z`Z!J+H6opzYDI^ z|DMO@2+HgJ{!+Iu?_)}oRfdcmq)>I-pu6Y}FpGm7#A&zX+jub$y!PIZ?BhP=!r+!yf_1mQdUX*}4klqbpeMCylh0 z=y>yYe@5&P-c9A-%bP`uYs!!^_*cYsqe&A3hy^K{NTOwo9AioJr)R%lero@y(WvYH z|Bv8*|K9y~?VpwNe`^1L|3F&+{#Ud`iPommrWnf4d~$xbHhR5OFcVAr8?kCbp-GQ5 zw`N8ykHkArVthC{^cYaNG{HUi7y9R6?vJF8=-R3AI5GzWl4Y@Nv8?NE{J)DZ;@@2x zIo;h7Jy|zo|NKUN11R(4(slOEf2(o-eLOHBfFOCopsAiYOB;TS*zotHeqPW4)4ZW` zqx`xgG>iH+BBeDY2^Y;ZoHz0%Y2*nfwZC&X`28}PGFxl5W37elNN`5}h4_Z)#TO@p zhwbT{FlTQVKjuEmpY8csT8z%Xpiy2&l1L;gRNJ4t zgwYb7$0OiXF~S#;&BnCYOZWUrSe*b()%<*u59pCaF=_CtyNl{KdsW5#fbeH&V7Me!>@o0V*~G=X3i^?6}V`CB2zn5iBpc z@H5`VwPyn2wBgNPo62=K=ZOshYiphV-mNHZsSus}F2l+Vv3W>Y2r6PcB|YX;0WGUK zlSF~cnm9)p;myoPvlTUNE;x)56j$?H`mCsXNM z2+c$+ZIIY=pap{LqK8VY%9~D0LNmC+kmy0`)tyeO$rO=wnm#zYK;??IG|Udct8k&I zt-q}sc6rpb$+pJigL~a1ZoJ1sHc%SY(yXuAY@<)9IS$8uHO!9<`kOg_27&5f z>!Kcfik0)Fw-*j}scO?X3e3y;hyLMzNautI#Eg3&hNLK)qCGFU0}=xTTb!4nK5gJn zi49a88~4N*@d$osBaaX#R*NR35jQYp$|EW_xcYe&R%^M*5;~BZ{Z@(IQYGkC-~AA6 zTTOS>C=fchs1O!Z(w!s6IqhcF^j@Ec(pbQdIYJ%(loj^kXOm6Wq`g4Cf!>$0D>`Ax zdj2G0w-~>Gg$6qqci`<0aN5W46mY3gC2&u$sUN~oQ11mmeY7Ip@*_|fK3&11PXupP zhk>$V({C4OW$=IBYSAfH)3d{97&ur_%R8K)FsEwkSY6cWTvH-Z3dHJs_0tV)BW#k1 zK&}NCIn>N(Bg5g{u?qk*yEbTDyT98Kf7XsPL7e;OtM>$!b7C_8UfV-BAXClaA3F-C z71)f=G2b)Cp3RU41`7dl%k)x(X!699o)8H)Gzi$y1)$C5F6FWk=vLAEjl@_@0O;91 zJ=#*TB);}2B1toh<1X~Zr)jQ=(yd_T7U{?Rl|??3S}3TODt-8-v52|Q*Dpm9 z#@586xB}^BWkTQM9SlPf^*ZcUhe-W14n$5x)G1;EvN!#%&reT3Bi4SXz=AA-(R`yz zvX_r2(b5SGrw=p_@;4@!7r69~rk{gu2H0O!J7{Xk$+odxmJ4mDM=z>pQ^RwCCJ(IM~_W_5Xq{6q1z&awW_;&6Y*m+!Z~JS0@c*VbuxeS zDOV5;A`-2j7((d|*i1hEwvBed{v64^kVJP98G>q7MlP257zfo1Ow_^J|Ncq=ElI0} zIxqO=D#}IM3X>Y|p-B~8=^tY$>{=h07sowyYb5_9CG5v><2wA5 z5t$nu%)$$E&Eb)*nFgtuwmyZC`L+Jg)yNQ=lgs!k@b%l>3o7tL!TGkIR9Er_Y!q|r ztR9w}%6X08K={y23yE&z zZ~Yi+rX^3-7;**$mXyWicN~yGL0yXFLT`}_uvqDu%|`2rxN* zBhQ6VmYQc__zq}+-E*@xyS9`n?(LDPek*|^cM88kH2}coxTtRTK4zLt+#)DTb8}E+ z9qXfTb*axsPtnW)KQsr+m%~oxC`pv|^*H*_mb5`%maF*XAbR@9Ze9$dYeE!{Z}7{R}2#S(tw33r}F)NC7$Mzo*ft=RPi-K9psG!vEx>(g@WffYKn=7h*(N2rw#w2+7F`xRw~a>OEk78wQJhQ zPqRQbiS-d>h1g178#+1RydiuN9R#+=zT^#3G0fjJs2?uQVeCb;4gTxA%f5FK@ajeh z$@vvb0991kn}x9_&&T&gq0nK_ZFY04+>-Wh*35WGTke0_mF`Q`skWDIRaN1>NZTXc zj=69A3M?X@)Sp!+Ok{+JmGdiGm*kxVst8jnR4VNUS+q}=R@ zD(H|i2q+95R_Ljkm0KMuKjzeY#-@|S-fDI7j;2cas+~)A_!9TqCGw6=8&xVzR^RKJ z3DuH~U|P{^&g)WIwRb-?a4gp{31GxdCTwY-B1eq@+oHvc6aTSwJF~l`9;FA|Ea6eV zL}+u|UxGDjEtiy%WH!R;3<0!drCo1inlD4D%oY|{G?Kpnf4nYCq6*Z#1%%53%yeZF z6~PKBMJ-0So?4*5jjiA$3Th~Zb@InrJ>+g7pW|^dk|q7+H-()h<2hs67KyE0H@2*x zD9rg=TY3Ra(vdUx7O(yAwyrR+rEX`=mrg(JXbOH#i)QZV`{m>k2x#1q$<=qQScY80 zHc2A`#_z%bWMJyaZ?Ll*9CSGp9U&_w?hYZdWF1=^Zj$nRw>n?vKw#x8Vmp#5^b6od zQl>13Y?dyH73&+Rb$YWoz?|k`hskokUb^NIGP#xzB z^4aBnxlrXUH}1)k(rKE%!#@;R{s*j+IaB3Bk`4k$gx%Qrc_TJ7I#U@aj8MM%Zkpb! zh3QeWQ;Q>&Y8rt{v}LkEYW_zCdmXUhpoMxK$f_nzA~C3v_%MfLQ~ZtTMZ+H|FO1*K zz32z&vIB>Y3V{yaIQW#bjKHrquleBuvdL>!7wHneg2JI><|?w|prlmnUaSPTz&`dg zXLQFAt6_nz4#sIIA=wE?yV|wPn5PZVCAYn}PdUBq5UNjJAmSb+)>9g`Y5J5jwGo~6 zp5sE>&O0Quw{5)ag)MukR;(_F#)qig=7;%ORu@bbd=+(^St&tCy;azkdTdg$PJ)o8 zZHI4rl$UU^P19wr0F1tihPUBBR;?W7#Cz24#=oMC0i~UZTp`Rk*|Bt)A#w#y=Y0xI z<>AnKgicFQ)aa8zHtk>fvqU5kMO5ELFa>eS2mFIsl+;5Km`Nlyg&esQ#K!^hq6r0A zU!94E$eoEL_r*V!zq&~^_>H(chBIZrOrO`+{1y1!bsH2aPqF-bs2t4}Ka+>XIWvpg zzs_LFldFwal_;!bBvvsrCpT5m3MFwOy+aOyQYs#0Wwdp|)V#taf_xa(_jq_Q1l;IH zZ)KG1P3ZUfHsU|@J)hO5A(fNmpPF@~15i#~c27%6U(NP!jY&+z18@N+e(J@P&_#&! z0==r)A0J;u?g;$Cn)Cd&h+rVpGKIvPCT_XPogm~k8btsxNom3*SF?>S$h~Y7$L8Ix zu>;LT#r0Apa2Q{%6ExL~+>wmbpRa8vwzwUdqgN$oX?1Ss>G@I9sxPXcb06?h=gN$c zs4AM`am+9tQmL&t>TjIoaO1bwrD7b4@CNv6R&0wCK-(UHy;Z z0&w(O_t*@SurW?$7&jlO{k}O@Wm;V!6Tzc=F3+LM!p*57|LGG}b1?izPpp%jxZ}z# zx&p&oY0bj5D=LzWdmqPp`;S+`=K62y|8P3^e;G0(+y7+99RDFh=J;P_$Tgaqv0FcS zf3_zYockcoKM2z&Ii5`>!)hd&;XP6WZlLMHPcw`s@uZ1OnEXeu|7afKIF|u>%}vbl z0!YnTja8Rk7b~hEZ$;m9Pnf%3+4Z)+_ZtXr-M#Pb0w*!kzslB{($q1nXW>cQ zRQIlvb9J`$sDQJ{`J@~BWm()>`W*E9+B)9=VEd{B?TYaw9_N+aPzzHrLT;|V_do6r zV+QTjuE=|^-+HU`9eWplY8sbwgDJ$?kW9RTvpk7qyR0^As=TQG)b_d}_&(zQBDS;_ z@A|#7JU1r_o{4FupS$bj#9nkX{5iEt7wh%%xfZbL)fJV~W3yQ#$V!B#vqQalT0;|F zX0Q6K`-wivatK05VYNP5n&_2eo^m%*&26Zg*a6IglKI}rS10e;c97e|dn3wX@haBC z;Sj{Zve5;*i2{fvVQ6XPtyeFzv(q2j9+PhYx-WTt_P4C`l&#!pBqtE>oJEYp%;@pVs7sAr$3?w|BIXmR+L zxtI*g-@i-%IOVb2yVTcfus)(N|JLLnb7jd&T4fPek!9!5{=T_J(+5U^{7*X-;W`K_pdk} zfDt5%R)YT3OS(>L8n)=Ag(*G4HI&|2`oE=$W>7uuN089>X+ z!@>w-{sI2=)U0S_DM-5`dtog)Oy0xNNe34Gy%3LkJCAcaS_@V#uc!CPk?oI%rUvQQ zIV`ITQJ*_T;}w~RY$E%;(`pFh=v1lGSvA#NH^m(H-^ArtxCVZ_$_mMjiJ%jxy z>y&H@TSAYh9G%UY^NUQlv*1^5GNIUg&p0`3vS^ts@1||0+4)TWW5@WMbr_7G%I0?c zj>@3M%az~iQ{eWW{jt`fe33Hs&A{qjWk-Rgd~*o*8j$QRO_v+LX6%Qn5lh^H$_CWH zl;u{Ox7qvkI8s0~#S@>;ie4GS_sd}*XYqGb4>v28?S-&jWZ{POLtZP-zwN7N0)fJY z0?WnCSor6EnRX4tt8ts#w2tleJ`h$!@1-6F$78!j9{rKI9>`l$?w*VTMDCn7{{Ggd zdECI=_6FX|HnuF}+MHh01-dgpvAW*lUfqh)wv$g#TSkO&*Fd+Mgzo{iVBAkafD;r+ zZYbx(lmlf_;?Wtj#U}`wr@EeiKv(tjFui84YkZ&0yruRh%A<{OZLn&0weLR6p zO`EP=xl&Yrmp_P$pqzKxPhOzHJi_$}M8?AM->v&-(aYxGK2D7v|L_jos?&xsxk)^r~8SYw^&jkIo{$17Z-AsI*;l zvskQh7146kzboHL)-f_R9x@>GFTZs3QDTk^%xqTZ^Qdj-lyu7MUJ*Uq=lX~eXB z09ho!ZYw<&UsT^f^0m;NzlMR9Bo1AY~JM6f3;G{>b81>2n=hO z{YH$eg7cGlP`K%hK2a|^$rqC3YE0x%?4Y=m|3!G$kURd#SPim_(H6-XG$5|#;8z`{ zDFGCi%AMUJ^C#DF>4f51%;p35K!-t>aIMDfsr34m-BtC_R}u%xQ|2!J|I|YnHAb z2aziDWG3?9Q9I~AXWK^OJq3dCEWyU+ae;;FDhN=_b7AsRL%%zr)9D%;^zbF4Nmynk zr9FtB{^w{m16CHmRyS?igcK*3R0Jmnmx-ndsch8E#V>GGBdCHj!{v%rWyLKrd7-_a zW)eiJKevS*)b!SdWJ{G-RP<&g02B7TKUiERXAKg5KflCx50qCh9fkVQaG9;nB5ZzGvOJ<0^(0mxI2+4v_26-0)Bsbz2%!Jku}wRnQXc`+pdFr{GSbFxxw} zZQJhH?AW&cv2EM7?WAMdwrx8dem!&Q%&D(tF6REddaHKrXRY7b>$z0o$y)hr3YetO zCC6fv1rO%|^XG4; z&XyYA;)H;m6yvPCKoxfgHnCNxOT&&jB02U5I{_Kgr8o~G`5W0XkxOV{KLYK*&_?Yk zK4f&tJoGYzt7=|Ff6%>ON#v`Qc91kv1`q4OnY%M!(p&^VPq%{& zqmdiWJMMv(FnjCcb6eD${LK_BqN+F6%dGsp(uB!M_$5w~*!G86A&_teh=OHhj0@op zbo)ldEtMc1A^nms`Fd7z`VF|Mc>3jZYhk-j`kzDQ%blDaJvw^-CF5x#2w`8m_$IgS z;5M{=!mMH8wYKBn{LYD~5~U3mRPQ~Pqgj@H1z4O6`9!L_q!NB;q}HEvOOlD(di{Gl0Pbwm1#f&DCSUn&M4DO%XoZ%5h>&9$SEJEv=H&c=vhi zBf{cZGLR=}&g@6d77c^iEp^Hx9jVz2FO_^@2-m^lpj2I;oPtl3;oZo6E+bR7d?Co9 z1YnoRs4$m^dZAv!H&oebspI0<+XLXWY$%cAsa@>KOb(rRNtvLTm{}odTNSBut-Q*d zNHGP%?pF?&WEOQ4zpE0(WQkZv7MUT|j@ZKA-mKpRzjiCbSwujx&bQ5~@rdX-nEm^t zrGFRZQFe5k;~x;B**d>E(ou`xQ$k(n3Pe7u9ILe1m@NI*8eTF&wRz5*cSEq2Iizld zH@tBz25%Qsdm8#bk+`Q^XskpEN{|A{b}nOXiT z%gXsbAWY8x6~avUk0L(~6ra4hJ?-*JWD$@qwOk`RnoC}5ntSW(LHDYG1fmG5$Yd!? zvt+w5-^gzVc~BxCrPLAam!&o`6o7LczfZ?LqaK#1o}}N??eh1{$1bbg=5EN&?A!W| zPkYo6Xzq9OhSx2@O{!rZ>aAf&nbZ4;p;H+~cvrNCW`9uE9l?v+cPAkx;!nS@JKKTK zKolM#U-hlK9+=b>U)R=O!k_Q)IDYyrwAvGoMt4@M&Yaab-`M zWUK0puL6vJTH=&ZVm@c)Uks=_Y<19H$AAs(mY$Si7am1z?3K_}^|of1sKaMDe8+1& zVg%Q9faj&~@eaR6E23GQzj?IZs}`(ge1Oh?OZmiznPJtlBD2Q3mFp(&&b9L%!Dd%o zzWJ^?r@Iw>I#EqCc2c8iL9&*t!?7<{o>I&9B7_XuaYkG|<}xqmxhzavw2?0I&ts6n zt^et(X%j*hA}C*8u~4R12v@wXrG9P~<^HqLUFZreu4nQ}etD@T(n&+hp~^ZSjLAN_ zWfyMYJAA)pKr=7Z@2T}};W2PnNHKVd@v`WyC8uwl2d~Szt3~_sV;_^VQt}_N6fm{V zd|FI1)=aYSi>!qQ6tTe^ki?9{G-g-j@LTtgvxL7|`^{Pl)eWwYK^2iGwzT{KEYso+ z`i~E3#8LpPzD^h3N}&q7uyR5%-Ak)4D^W_fH10S%65;8_0K?1p#=Lv>>5=`D20^5R^EdZyMn6HT3ym7m(Hg8(CKgDn{NfKP z9aW<1ZJvgldjLr{qF=)R2Fd^3!)Vv4}yz_uzPnZ|vZZ=|m2Ku?U zZMTs|UMeHACh8b8fpACNAQPmvj+boG-)qGV@gZijhRn$Y%%F!q7y+sQHq zl7{Vs9T)ak6?4pR&WHHi_p7u%kdLChG>8KPkOftD=i(1SxkKOL)uCQTpnP?N3|ns0nmzOh5Y}vOs_9@Gm+0oBJeyQXWw!~N{MU0%5=<2_hA8R{wk?5P zW@zz%JU9qV#CU!@&iqfEauUKXy-zgNef9%_4bHn2G2&u9hIdw z);pEj)7=>3QvMa{>IcXr2hzarB-m8x!m6BhAypvWEino9_cesTA$}E=o#6NpN_D zS71OarVKVzmI1k>5itZ;+jw&Hkc5a~80^&`4OzuR`a)yLsrt#>;*DnOG9uL*wWwbO zDL`p12t>QWvhkHGjUJ25UYg#eC5#h`eQ3}Q9ZCjy8;#ofNT4v#nHad+;)!3U;6$k6 zQUS*ZMCA$hb>Qf4G;g?yrgI1${IGOot344<4p<{1PQTM0!*0l$#5WkeKxt~IGl#BO z^-beROJ8(cFz~fpWvIyGtE(DoLmc&xMMx+}8UJl?*CyQTCgMF8&PMVy3sDiSK^DDV z%AAI~=~$`2MGng6pmB2r0gM2yIBWCrdnHYt$_#yxEm6>u+G+AXpL;QaXx3mdZIA9%`l=s6*C5vorl=MY$=3Y>RtO)jri!7u zsuG|^x0Ay-R9WRN2yAB5uljPhjm{krj0imdPSKljhKaa!$4DVL#?18;-E7Za$3i4N zhmcqR?ltolqBtKJ>c@t+3jb~F*;&t&R`loNyj})zKi(fYi`$G>xI~=i=0FsVt)g;1 z2<|{wNi(g#x~1wnSdHP*sn-$QiSI?v?!1zdVTYz26qo7F=)6xcJOJ@2{B3#D+KQt0+bls*I4}u{1X1Te3CA+68 z)z$Xfv9$Vy5aPJK7&n{Fcq4KbquHKtUJS2jr(T#yIgbY3w9J$3tRhnSuM;ZlIP-+r zwbnSrM6#wr|As5a^sEfJK^bhpKT>0d=R}K3!&+hlVk-)nD?(KJljiz;&vV#oz=qIh(bNrj-@Gb z+;hxey~!3q-OwXZL2+b?j2=zkpnL_{Amk#(dREhl${%f8bCFCimw_Xim;v_aKFjRc zCqq9=1)ma{00x0;)4=f+A;il9)!*#;y$ZMtkgDBOH6t3=Gw(-xtd=W38pS$3&!ZoY zhaZoOyZfL&otwo&u!qo*TrA+VE@nU|_+PbrE0^>0pyw`qkX)^p$%_Q*As2EDmC4>s^v%Yc^T>-HYjL`?23sDmLk zcW_;pOfQUM?~Y}|^)qif^-52oGWShOjtir+X-f3CK_7iZ5?KpX(8}y0h%@mMUrSd3 zTac)5=Udm9$$IGpp*K!vy@an(j{SA6UG6w4Jp(lS)m>Gl=AQAgo21{lPE z*L-nd1vHN#Hp9%EgbK^Cii8AW`b$f`JdZ+{QfNP?JHb;5#{$|;&1jQcmd;KitB1L6 zO23>B-~?4RZTnyOmtM+siF2_80gYR=BvA`(OP1yOx80|azBAkce*3Ga_CT(J9_w3WpcS$#?Af3Bx%P2v<^DPMnq?sB)S(8*YKYN}9wj;444IyynuCv?}xiJfZ5Hl@jm*}_^ zUc)UW=iN%MNtky#l0{)XTa#`CRtCoJBe6UeF#eR-^m%Y7o@UlR+RhHlr^b>#<}lYWv^u#+Dli`#AF4R25i7(me z;42hOVm>t7uYP5%%d)V}-Mdr248^E}|3N$bUxvfV!u9{O6W9O1aJc?g45#ED!#VuN zaQcZBkDvC26Iq9Ph#JiBDs>=a{tl8EYiE z=!6n8H}&NT<+4b^E+zv#$)Bm+2lvNo#)?;_t>7KRx7+=bL3m|Y-p4Xt&)Zwu7DFPV z+uEUvXy5kD-81;~G)Km1vH0Vi?fVhGpY4+yH|yXM8L);iR=SQVThUZVhofy>+fTpm z=NbKdHR#;XDz z?<9u>SluE*ReKzz9MWP)4e^)9OcL1lik_Vob!3vPUf~={6DzD7o??vMl>~CK_rX7% zONafmUCNBon*YLk>TpF@m;1RF=Re`1SOA#1Y~p*B#$C) zyzGv_ts4j7le!2l9tys}^EQgU7MBD;Dw3BGxUGn)PLM`0vK2cieDWD4~a}1ZZM}cJ-2t> zmbhtT@4RhmO+kta6G*rNJL9W`6T}0?=;7*ya!f6dI=l=w8+dsMFDetSA5X<4+P)lP z`yX@w#y1Ghf@-2|@>8FMby2#ccF5rV8^OL7D6mQXql|&_xV|=b;IrvbLNm{@k&pgS zuZ`tYeB=ESbn@#?T+TskKA9hBR_R=mLhE_*yVHYe`LOM)5Uz8LyDDe# z3_5=yp|OXgOz!V$cf!*l1CPJ+nez>CAlk#>WzH!w<7dm1l|l16DP6!mm%Z$P_-R2o z6<lp8>VdGtnIjHpUnoF-) zr4@Bx?r0Dm)7lF>*ZUBZpMt)<3Fz`*z!N=+LoiKjsSl>ov@sT?&a>)cHVwZI^SQl)IYQsRv+z+`w(`Ap)=>)afQfXaC2W?O~O4+x*w zfUGc?F)UDaLt&RFWQjfPDajNr0hAE15(G!od#I#7u+g-4qa@Oek#trPV7yyMPw2<{ z{<=@gJ1P_#6CNC*YS1i%qn=ff>3Wr~6cLQ&p;U2{-zDx&YTsFyRjjca*-Xih@W&FH zfIe>_Ns7umtEkKo{;Q#WI?z_r4>9)G2+8W+=fJAb?uf1lafC8>T zA^Tkf`YY{u>_ygagNT&n4cN7Bb~4XZY-!D(1LO>-{3<-$M^RXEF+O}2YgLwHk>4np z6Vj=~&D{l58zbU+OYSn z`A9`MvHD>kQHj`S?r#(@XwP09vO;_T7{8uG!_KS4Sw-XEo*Qfvx;7oAx1#hMccbqAczGN3Ytus`i#VrPhEz%SraV9RlK*&G{WvdBM@C5mU zg=sYt$iXYj3IREKE?I z!w489olzXn!aS)VqAI5SdhshOFGGEdYP55&mY=P~_arzjyT7)joZ8KdfMRpHL{|NN zS1@sol`cRus%ow)?#wwYcg_=&HRUJAiF&Yr?Wld}HUeAj9#D^$vV;q{vL(bh)L;1V z%oZAEWa`LNqR1_EJmfJ}K+D>J3)~s;J3Fz!;rfMSVO7=~j*ipp$<-t@I6+qxmU>MU zVz!$vl9oS`hu?v8C=jcc$DJ+Pwgr-AJxuRcT1Vw>3X$r9(5&r?KcN}*9NP^pG( z4RRvM0>yB?@^Js!HrV6}OSZ9wImnp<-0>@ZXW~6Q6nj-}FIF1MJ$hux-Dr3MmykOy z>g4U(@lH7LxU)$CLOF1Br9wwMxdNV4Sx_+(nODy||Gglq3K~;7{WdcE^nuisy;KCh z^T7IWs)+C|^;wVpiNwh^p^d0xad?u=qn!K0?;>T{7NzkI}HAt*6-yE?|+aE)|J>4VeFW+EI*myn<@*k zgeQb8!`dbEOkySuQ($9O9K5agRUMUNNNTCeW-*9TXvrd8D9`+k`xR(_I)3CC=o%KQ zSy{d5cA6Xcn4fi96Rw1YoM!2n*<7dy_yt-S=eW{P^p)-OBYD%ZR+ zqZS4%%O-lR*if9H4;ok84utbnAO@ok%}xFX=>bZBXcjUH{LOlG-q#OocZQ~K=)$)k z^9RvfRL?<_&sh?yc(=`(&$)UoC4T!Ntu7p$DbcC<|z0`Z8#-7sViZl%uofzZJK~yzZ;~i`{sidtwiMXO z_(B!WsD{K^JT@06e?f!YDN~6bKWdSN_qUyfe0&dt`gWkGXGwHaOEKJ;j0kf7c+@WM~VR8}-Xy8f_j2wz17s_?neFm^gz=smE*H zjT#!Mo=}@(=b}FjI9o^dvqSbr1Viz~X5IQ=Sgoo9>K_5&yjtDV1)&rDg2QiGuLkS! zZ%2OlgB9{B^0i8EG@K~P&r&iWO4J;XC?&qy9H*8CP1p8`reEz#00*fd$3L+H=oz1u z)6zjyS$UPP2?71|DNUg5Ns=uq`$0H{{ZFZ6l14nX301H_ty||rI(>9Q;ASyKg(ETh zj*O4C;D#!Ug;$*nR`rTD(Q3-((u6gqVP87U5mI66OWHe%g5*l9R!&y@%{hXmGlg^o z)oD)th5G4wdO96ku(F_o<9~M0%X4=Wga}nHVj3Rk#sdK~kLpk$6Z0%ty}}BiYP?e@ zzXVY;Ux2&|d6mdu{+3^?FJ+VnD|-lu7G#|uEd3Gq72`S2jn1shBL#jA9B@Iq(u=z> zMN~{`ha1AJDy%E#_x91-^*U_778uB(4bes^boGct_HC{?aflE-Rf zR>?bo)^!3!xnjwdK+wKTROVlW3Pbl_h_8unW4T#)&?}l3?cXJZq6nVvp6||ws8Ivy zVo#&qE2CBFgpRHPI$~E|pWVIh&gfO3Q{GDwFRnh#k-`a$E-{PXUyVDu7QoDtT$9qs z806Z7b%CvRwW~j&M0hb`>5+|n1UjGi~omzuY$I!}JJfB-yUUP;m0na(OnDS&iRXQM%QQn7pPYh>+Nl<-P zK`Twj2Wx}BKAbBfg1MxjO|aCoP7!w);#Qpn%~h>fnY8o*XpJLGm)5;YpzzKyPP&J)O*J01 zdqgLyLsF2Q`vUC!h_6_Gr9{a{)zZ||ZO~U~VQogsx&Xe5N__bx)ebKe5lBT0nVz2_ zN5{633gqVJ!Y*#S z*9r-Ai8$b$KUJxL2rEBn?*W-3FY^PuH2ZxO?~P0hg$og@l>9m5j`l?Dole?G%```y zk3zT;NQWsc94Lm_$w|$HQ-4B}K`55?W$Nf4j5L!1Z@KX^0&|0e71KF6q25PeCDBU6 z%p3-m#$zVpb<2=MfE93bs2nbC+^eaqH|c@Ea~0RkRKroPG-WGRf+<4@PIBD7O0*i;l z(v2Lo*zSX>&Q3S^UZ3|1_QBqxlbcw6*S9xIU{Re-(#;wcixels&8bys4b}-I!?m-W zdP^W2Ng7#G|7S*vissbShK7UI3wLgXfwAwkKj_0XmT9qa9%plVmnA4pez^F##4c!I zrrfNjOk-&^&^s2`K`VrzzBzR8d1C<@|AiCF0nId-om1RN-vpnV{SQTi3J*>7Ziw z*=9JCX_>eVB)V}lgnEsbB+>~yZR=m7#Ot-Uu`r6s;10lYm|WWJ0j4^* zjkhWhMf2#X9$3jj(I7sV%&ISTO zY+O3w^~M`~m;aPKuIWedmdhU5h$0tzA1KseHV@6ykSw9>?=}^uzY(Elm$2)1%|p|} z`fQPJ+T1CUggYP%2jD&v_-d7(8+H`JP8<@_F$$$AQ-N|oEv^4%oLHiVlvEc+j_u*u zy=7m?ga~=U=ZVkk1QI-Prca^edR8-EL%bEJO-VJ?g7EvWr-xem*9qfvz6eG(K{6#y zpb|vhctJ&lUEp*PXz1@u#seYy-G9hsX*56B;ac72XAo@peRflBe<$QE^2rbxZVSRh zlZnXin{+Y!0FQp#Nc{A9l@pCY5#*TE^=hwsRXQ`5d#e*Z9t2HI&^r}8F|vxA?h0~M zhJ^CX&7CJ5jH)UL$8;F8*ep0suF{MRq%VcyS2 zw3}7dSL@jVS?Fz>WhkG0b8iA&@4MxZ^@IYlL%$f&2T1k|3Y9?X+)?*YEn4)*F)_`% zFXve8m|-CDjGH9ys50K!G~>jtlo)o_xO`qp=odDr174_RqU0th^G)PXO{%m^1p#I8=L7_RUTzGM z3UOA(2mAXkiY!5a!*6MQ8}sQ-4HnnKX#OCO6{I*;X}+1Gv0+Ekjo>Rg&{A4_D50^r z9G1f!E~r%qAQpKpx|4iHm|X{Bd0mt0g+^q_sEq)NrF*KCIA0iIV{5Q^%AVWgt_@LHN?zwOG_+nJM2B^i7m(KR+>sCey1EU_{_Ffi4e7wW~2 zksjt-MRaqDEf;Tre0|(BzBrfB&+MHzyYf$ebAgI##-Uvb>_WgU1E-QN8yXDz)|ski z)e`ErtlmLRkk{y}{^~>glv}ny0%p>b0V2c}eH+zl;SXnnIG(m3JO(wNelb&<>=^3C zxPwdHQ+Q(KgKno5zAUBIG^8>U8p=ccwtNUp1pZl#&<}0T5j7?;^t}CJiXZ%fnjg;* zgJ;d4O^*21rHFKR@SFgF{gHdpnBjCIwk{I^e! zpusSRa!Okov&(@$7GilCwvLbUa7Q5@G12%Xt~d{V`rid$K{Th;G!!RCehm>3J4R$H zyN-U(#T;#LkmV&mI!!IKoKv`WRR%Vpjdqv0v`}>RDnQ#EBsV3vHC5=U*<|Edh}baL zpytUd@nYyzOQDvd`kj6peQV~xD3LoRi+8_}Xrndk&nB^|?&M;554lBUrB}O$jwcMT zoakRjUQ^b&k--)pT}lIIi>^MjUfvXQ3lvlg9Q+W9J|0^r^_0eCrXH{$)ZMB0ngj*O zx^aqh$I5U}d6+qYDyLUlalEz~I9QkhUvE38L<9L#G#54Pyk6rPHf=l$gICo z+ptR%6)%xzfVB%EkS!Y3@Lvuph0cnKDC=W$kxK1zdOM>(P;SS=v^nd^w>-xqFJy#WQSEdOy_ka1V zH1=dn=kFAA9#?5@)#p_e?4GQ!iZ&}zt>FEmtI z)F%MsR$$U9g2X!UM^ExmLZ*QyG`X1`OVjRcX^Zgqm`U$V_EfyK%$)lq71op2EVfTJ zOw1|~Thk(XTGS&um884kV6VPXwISAsoC6Rxpr%~D0&pQM)MZqE->u-wk9o1j`ls?I z!lqT}0k>dt?a91JGe}zS%#`8&ttO>5+qmcn?jkA6ijlX5W?3&HEMyA4>K;KtE^Vhu zbsW{?fU>L3$D7+3_=D^*sSStbvYWj`@omOMIM@(tn%7Z^j|ojZumFygjy`JE*{bZm zIZXqU2U_FTSx_(urItH8dk3&?H5;w`dH(CO{v=nRqo+>KXeh#7Mj|P7*}T_JmP3$* z5jApsqD9tLI2Jgn$ZEF@D$Juv-&!6yUA!pWC=@F{D=QhCsbFob{5T`_2x_KRZ5q*f z&f=9gzu7;Z&a79wze~eZX@Aa5<9wW;hse9UC(h)#n{_EP(Vo3{(VdR2QjD#eDQ3Is z^mC<3fR`bEYm!&<&kXacaObHha=W1iA9zwOYoniy-0QC$p@@g&Kq-P^Zz!{UE$+K# zaDP=fcN=HyN&l?K3e$Gy5w!c_e1}iqn61roDcYTNXV%xgm9_G~-a2I%BTh2{s3u*z znuUJ$W)fSxuXBByZ7|Q28faplbs=oN3jFAHb7%!r>D3t}q-v%^@Cw6!i>*`+vg%#r zNLw~ZqLE#1J})!AJ?cNhjt~8J=JTIw zc~!rwacnS?icFTwr;0C5D;}c&9FQPpfuxvv)~uxBN$FAk#OvP+xVq0zw{{;DXwa=# zC1hu?n$N&JLnF%|GYfp%br5{rF^IP=hv)C^y}CYGh+cyn{S;e0d2?qX;lZ%U8aA`Z zmqsP<_!p)ZXoP6cu<6DHp3aUe`t1>E{1%}TCO4dS=7%X62rN3cMeFkW%bZU*de*Kv zjy>orbvGrzyc;BR0#9RSKLG9CKTj5Y^&mE%nV2pq{K++>MeQcVwOck>EJ_%J`4Pg? z;*>Y6p;$5(%;L4-vOle~pA)Bj+F#B0C|4wgncKI7H@Dse9qIV1lniK+N@&D2ais$f z7J2Vpe{uJtUldOo7y{>`iR{bm?BQz8H2foBXNKF36i=EQawl-OAPbL{y6yE@1)>lN zw)9{n#)-P^{_b`JhIW_)dTffg+$sw)Y-kaM7@H>}5-R-2!Xyz$eovYq(`LYqHKPJn zg^_*XFCIGV2lJ{~P+;)ym1}z{-`WHogstE@ybR`hd1AU~{`Au+Q5=Gs&{Oo^zhf4R zx~XYwWGSkqS;kwfbj>Uv{lMRV%_f^F`Bgqj6cW za;fp~?@gpngk#i^#-4#HC`~6^W%w1m1FAX6EQXsY3Q3Uee4K| zH4F#LX%Xtti0Vv01 z>$1Ww0oz+Pom}#E8gk)@vC|m#Fdev_gK!tQd3#NO>J|#_xl_-SnkF2DJRc#C1bKcN z*vGsO$QqX%&SV~b*!6w`q+Y@!QWODnb+IMrml3SgKUO5IC;M<5mQn}+JdyNB4$;z` zEB|pY=e8zl!hp&{C#nXr9359l{gEXr-;M>T_PPZ}xMAt?{D75qn_pG18-mp>>!5n+ zpm>}X7B2%o#t??cBfwFguKvq3lkC4OKXi4iaj3ReT4wE&5HMI5p?IeSOmuUpQf-R5 zp)bgjY5dtaBI!)AwuGBcpV4Wa3zwD`u~7v6R_Pydo3 zdK$zzm)tb>wmI1AQFL}Q8xw~*LmJrGUE#a+s2v2k<-CGEA+XZOyv7L9)zn}Pd%_Q> z2Iw#;A2>ki2(L=z+O$*^+X{PTsJbZnHoRb8PtZvzcRTa|L++gA{B;i5IroI!@d}t^ zLYWR+`=xBJj|LLH8ctgD&PXV9%m+7bNH3Vc{ z_m6jb5Ucn&wDiY*NH?D!i!c(XIJb(a#P#3CPZO@Fwj-2M+V}TS8_B@d&{~*}SF}`e zm@S52)#KftL+Jq{2$nG6uvX8&I_=aRKqw2E!ur!mDI!N*;^0}1`3DmizDW!|tFUR$ zlEz@}yKC%9EnL~zvi(#8+y_6EmrKi9w8z<=)bhHr1!9`jaai`?KG+D=IK+#CLaM zOo@jve?9dMqrrtW)9nh1SPEa{NVa7dcRRXlGlv#5bi09T99GE%`4DRQ2(j9v1LX;+ zoSJLnrXb(g8li?}q#?(2Yy{nHjxQdAogj4A{jnHFF}norpFI2^09(3%gnMl0q-q$q-RgKw%g^klSnwsft&AK(P)3mlr3yPG= zS3X12k~`=tZRo4nGk#(T3-0eSpg=0J;|PV=ExL4yQ-0mfp6%1z zcJtw|afJdXf9Lz{AKnG?V}{V@vYFiIgq?K(DED-~f$X>G<90h3vwSaTG#bscKw~@Km)#^^sR=?L2NoT+vhg1b&1!9CvCYg-0yxu+J2a_L zZs0ZYE(}zF=p4MVijZ%2RI~k`jlNq_e2h->jPKyEJu_MELvfWTRQ1b_h{2li6RNJw znkKg3htqe}Bn2+p)|>;4pQ`l-QW$|30d7r;^kc@y;3#HM#&tw!8UE9A?7kJztr_!d}_okG^8&Q z=F<~7^3wBqJ=K3U5`_!tNjZ!!#gfl>ONBkDOX$i zTkqpiSxJd_3UiRVGE-6;f#G_~n4xG|7}Xea1{$@3UAKs1pYl*}3<{L1LX-VjB8`mJ zef-+hYV1(t_rL-RFDX)uK#xc_A!T4V%V7q~rpT&o_rB5_#kky6?5=<%EXF`yVCYmb zv5*qsa?G;j2&;H`y&+PO^;^1dG#4s`0T3$g;o;43a3QEBPMzS9agDQD*y8-YjDnYY za#tP_{xG;NjIBw1@;Yaa+6xe-GWro!9))-UcJ)$gd{sG269c1e8{)I1V5pR^QU8an)r z<&|sVcjXsSXn^F}8lwrzB$kP_=7?QZh>8*McZ&W(^pS@vGiV=kN%LF74Y;rR$qPg? zw^J+Ok)vgtqDF#!6nedAW^|}1O*gePy3+k=K@~>5KqV0!VRF1(FBgZo&_Z!rHq(78 zcQ!crz^GH3}htzq(Sc0b6C!l^&5=vN@9$ z4}o9;E^1-^fsU}%rveK4OL#O3{5sR>;`Ujz>_4^D&N&<8LyeLl-O7bx29}evH+Z3^U`zlEp(!DkjU_^~0ViQ#$e5p_ zHY`jsMxBY!lr^Kr-xetWXWlyGjyMKxVuO+|00AY7&D`n z9xZQws*8;;%bLRRkr@bIIrz+#=?f(l5xfb@1~nNW)drtcqAheNE#6#6C6}#75QQ+! zv%cy)i)^Mm9(Ie$W|jOqp!(=&3Bl~8EYEUN#ECJ$E~tW#8E~utM*TqFs>U(0W@fDa zb*CNZmx6dk$*keLj4qK{{L`0*pwb=2t5y3t9$BO&L9*!%?E+<-lzu((8G(A1eud3D zNL%v-ySYfld}B&C%?c79S#!Zj`T^bz%C*VsoU1m|TxsYum9@7R7_6I^#(j9A1NrA% zTj8Qs9y5e(P3Vab^)XD;(*xTSQpjMO`b~PSXzRjpgTj7x;*vve=i6!4W_u`>{lli) z?_x7dK}jWp`>m5}0lmM`(o(?T0MpN}RjGu+IuGx!lb4h0tRgrN^rnT#_OvVxDr_1L zdp~i>3E%nUPGB1-aWDRGxd}|#z4ED5rlw~yy>Az4EiiQ{yr0S( z{A@(+_-pr2@;0o$0}EfnJ(o-&_k#G!f>0Anskg>{0d^CGXlb9|1%wUiIf? zQa+a7b`9h+?<#iG9Awdv$|+GbBHt?+%X`EN_Q}g^?dt=H{BtPv z)2lP-G^g}t`&-B;-D1`p3-f$U9Y=1uK8N4)M{RBCdLo+g^-x zQFh7W-V{89n9t}H4-WvNTB(Y9sg=Qe=RVrt9troDH=YOu8N(W{%kr!AH8`dhdIc6V zqN4_2Vgu{9@=@RC6L8L!iU{A03>A@YLYr+=Nr-Gpe=^$VP_eY(^&*0y+mOco@5*&Q z$6u^$3aiE-nNIz==iVvUsq7C{N0U;4L8(M%`8EvMZvE|t>rlg$w!OSOxDmRo`gNHt zA~T*xS7% zbqwnVJ{IrS)~wB43N8c=7?_X|!$7U6etoVc6ANw{#XgAacy)oDDOK8(;#3ZI?0or& zQ4$^aCKe;6wRt?~2>&?a_8N>YcUD@-i>AIm!bG96Dt$x7M}>{D+n9JZ+f*=W+5>T-XvJw zS_@eDO6E;gU56!Gl2cVK%N501dcumi85Ca<&C-y+u7>9EmTZ4{=K)WMjHTR92Yo}a z_AJzU-Aa=KR`UbRtcw>xd@qYFi?UW=-39^1?W0wH^KOjtBx{>qF5u*O+Sx#9=!*Bs zO7ROnT;nb`Njq7HFb7KY43e9`S%dsvonk5=P1xU@shUCwx|2A)u|^pww*+{*JU`5> z>_?+e8FHyZ_ka`4D^BZ|4+f2w=@E?udNv2y!=!7cSok#fF2}vvYhx6FJ3aAN6oOf5 zCl!BRZI9m)KoQe|xuHHqXBjPtRuxsC4^cIFRD=nS)&HelU{^h)bS7e**5wu=KED_~ zC-cDhR~IG#<(tq>qlq(Yozfhf+-SUgTc2pz8Au;U4SrN!8_9|=ZJ{^E>|D6czvMrf zLsJC7%?cY@mi$xz|JxJ=OrcE2Yi5+vpDZvG1gKCl@0DRlpmcPs9qCi7k}HDf#?Yz* zQDVuWf7{-N^n)J>`KZ-50}2Hv&wGWPsYq;DdQ=1eai$Xs$#owBHG~??$PoV#_kn?d zC-W=P{lx*No7cM|8CuM+eBaSx9GAb>>G}a4s{w zrm+(eqKzDRW>7`A06a2@bg$5gRY^g+|7ETe`kx zuDcqKWa98%(uL6T0~LdZsD@EaPijE!as+|aptUuDpuZFJvynpMd*}!p)|xsYgAnEBrDWTj#cN8M+d*JFS#xurAKi1omid z+L~*TF%6ynBw7gfK>%O=0h=0|?^*8`7yzPpvllei6m}7?S^3IAbC-j2CYYbE5I&j0 zZ$@Fg6AQ=?$$=y2F884372%R2vgoU1+tb)sS1($>D;MEsY@eYH2iRsf;qq46>oeW~ zlrME!LQ2(k(8<5`fvkFerM^;@E(d?l2*9ZcY2EeJr{z{l#L-g6gI&>@_puF_{5_wx zLtgm7Ub-ERevt8pH-_M4eOF{SdLh^v2+qwi=ZIPa1Mkh$|3d%%#EczbhyEXg$bY5K znVDJtONcQ44~``B|H_fv*4(t+l>Cnp;wMsY4ZbVf@e%%*oc^mT__b(={=OZ^%tA6- zDkTvmMc&=|-a@~v3tGkw&U>OhBSWy%L9>6yU%9MGtG56N6|Iu+gJ*NP$BVE?mIrn| z?#_<&!$$lG#Kg~($GJC~UU&*j%dDPTQ9kuDgIQ2PMv)F%j!f&utpDrv@wm4iiH;l& zmI77dkIu9PNy8q%BO6@c=PxypypwaCn&a;VT@-J-yz(FY`f%eB-9d|Nv5PENj`{XxvL3$UiGvDF@ggpkpp)@(>f_?Hhi{E$_{mms4bGgT$(KB zmG54aA^T}=y;LA?591w;4|S7l6j}?!tGHg z5klixjDL5h)pm9<*KHT*@==0>)vMoClyj_T@j;|0ghFF-Jju5YD`8KYp(q0-ZHCF7 z0!!Nu0feW5Mh&uD_waztg)^`uw4A3VQD!koiVeiT1ZrYH&Ae!+Q@x`B3V*2B6Hb<4 zmaV=T=qf)E`1?f=-K}x~I zpj$Oh(y@#!t)ls1cZ1bGFd<_JvZ_nAJgM z?DfLyj;k(37QN4ESU8jrj%#I%LY|G9XVSUH61693eov@G!Kr(NaLN|A`2R8XPF;dP zOV(}Lwr$(CD{b4Xv~AnAZQHhO+qb&M9o-M#dFWrTUt`Y|F&BYxEk$C~uzY$0BZY1T zMpA=YFz=CX2;WS7B@2|L(^BVQ{EN4OlXb+uL#&JBNfjnrc*_2IMG`YhP6#&T^86Wt znWzD4Hj|hO1vuE|tsG!8GTu-ZFiJCReQhOzfFaSFvS0Zpyf{GPxkA8ms-#RYh_o+v zJv0qKUX^XMz6!(*#xl91Fl-?8`?5ipY98DiGF_pvvW>2D>ndo(z*I>T8kNV?xW4JEK=vbVS-3>T-xe~UZLO8cT*2Zh0vckEVOEP#b|6xK;Ht^2VSq#?tslid0k zKFYE3hcW*S^~7dVVBABA+@O8J9z_;rMGT6?zg zH)*jp!B&wfQ(4KAUGQfbHiFi#k~2-&SLH$!GYmZ6Y4(NpB?Q6Ep0a$p$z(2DB&TxX z06^73wi+Zs6Yr+N9z3sQR0Vu7Fyf|)Ghfd)0bk?MoDnj@-000w>0O$J+)+rto0y&Q zseRnt%b&~FUE6(~gAvm2(a1zy{5DfagXVaguX4iVT0A5Euno-TF5nxiOFE!?NIP&pmRY2fb zM^q>hc;!onR=id5a#lyMNjp=&=ZSCCIv?YtuXZiG>kZ^W#ds|T!eH8ww+bkaaNJxYfrQd`_hvi_o?$97vs^=`2aL`I^A34J!14AOM0B){V zgRSXhL&s8ycCje6wTdBttf7f`*^0%pI~>yJ?Co%0Mo}sZ-e}A$a)!I`MCKT>AM++h zS30*#zd?Y37{+SYzoW>9o1_XcJlN(`W54W&Il5pEv zy$BUd9JfCj=3^1+WkO121I?? zUiJ^FnFWYnRpIWq&D5t~YK|^lTi;eBa$u1-SBFrx_15f0(Vn~(NdAhP<;=pOPBgrN z8if(QSXgOyhMlejePHqltjjV=Bsf42S3?LO#C^s3#%S8aiE}4@KF%zs|A0#&V=t?X zrIykw?CD6sP|77?FNfC|X3zg=j>1e^J=uXcN&RpxA(slB9iE6U83&Uy5>NvnN zzk3QG*`-Jq8XnL1n8AGx?Zv2L4rj<9DavF4ht#+m`~t9NoDic0QgR}7p#_pCs!jn` z_!8Y>uqFRpIz^oqCp+5QBDn1Nmk}EAP%i~^d55|u#iH{%6JA*7bs8~nUpZupG)&~4 zMNq&SR{=!0t9MW-J6#m;M2e4e7yZc^NXTHH{dPTXf%n5DY<)%c-c!ff!ktNgve@0D zV`mxc_9?O>bkVK}Z1YJYJOHooCDqnq_JhS~HolJ}(JrFnBSEPv)P9SR?fW~K$+p`~e0m^^+E-5_Py zUiAKWIzOQ&DT)eui+yk0+U zY1r601I8HV7#9(75>)-n+`HbszA)o}z%xOVC5j&uu6&kFg3cH+e)dBCdYTROMc@AT@|qmTyIyJi)$%@d z2ZyJ}R2%KFf}cQ|7B2acvPgh3h{_3>H;_x@VZpb@+CQAtwt*{PLXwj z4+y`yFTKY{K5m4d9Ii%Ofd;a(&X+f_O15G$1)4Yu3l9R%pYV|Z!g*G&ydynXZzf3P z{s`eu)63rRv|*nzhb7);w0Zkao^aFxvs5{xjLxwN>_2wn#C>Jd6)lk|9a70~L5qTA#DnomSE z@LoqdFi=1?VxENO`$xe55KZdI-e5EfE9XuJ$kdrbE+p9~w^xceOQ!&aa6sTFK2d7J zVo52Z6Vc_U$URO)rzj4m$egX(_-4&B+Rwo3K`)bls`E4qXP045h=WWoT&3P2LL+^! zUCk)Q_CUPmH~83+W8LIo(D?C-xly>#_NZEl=AK2X>-8O(CfSoDZd6<$o~j|()eQ#r zcMB{CH?wcbF#jqeGJ6^nd3d#O5K?>u(p18dbTY1u?HxEwSX;KadssO>`VblTr)e@ksCeB3odG>u(fx$**0ZXMCpn0mPzyoXpRb( zxH1tKMSY-XQA14%AaulltSNu5>uzhOjzMB6?OkluPmtrI^0<~kOc0|TpxEGKY?UGZ zK$I1y@1jGS;Kz)06Gv1KHfX$daAHgh68pnFQm~!U2*!ht0uq-KRG>=WDH?DN zh^X0jZ9v>>n-lP<#hFNO^qEy#(u3NLIfC0o6#*UMCIkhzDkL_X9S105GliNr?@l^{ z(!%$#T9ToavYCNWx{9hL0VgfiQO`NSs#&eNj~z;A*%}vD)G};En&$$j@6bxz!z-3sGCllEbe_m2k|I}b}Y=;Y!t@m7gVRRQ#dh~hIs{pnM)8!n{!))AqAI+ zCuR5FrRgPUw(sIK6=HOhU{R?g%P&ALv@&ZqLYVr|AAIZpXqlNhSxeElpa#wAz(-dC zxwp~hBz4FZki>OI5&+S}lEq+B{d0NKiIe(AB$8|T9f}p#%^?RZ*B3%D90;e-4(+@O zLwd}{;%KpDf|b?s!78$8atm5-oCHe*x-+6g2u2zDaq9b)6<0gy;U|3{Lk8$OQ%9w> zd45Kq06c_G{k3O@arBiZ+9TlZTgyp%WLP5G2=v!ZAv*ecx4Yqp^>b+$3%a$Lzcm%2 z4*9WUHORMl?HL9H2^nt>`RB5OdTTz%Dhe@x*g63bKuUiAx`nE`j_pup2CJ)%7{xMD zvLSN?Os~2r@R?}jSyPp*%^16qf~nyA%lB*Hfxmf+Z;O7kHd)gjKHLiW=kyH9tgvy5 zGxB5_$7Pzw5wa2LVl|xud;rf3=LryNo8ew?l}TpCAg2p&XbSGjNIlM|<|FuGg6!i~ zsW%VWjStXHBL%27qk*piOlJv|!LBxb4YE#$9tGnr;aK!l2>Q*}aR)cT&=$(1=QGn${*MjZ zxo+tyx<&%nb-iw)jzQ_)={p`dKjW$uNTbmfidmX4h%GZ@0eyZDYv(ZL0 zf|a9RkAAyue4Fq`48ffDEq8`s{s)Bxh+AV;akAMwOQIH#QRAtVN+fd@EAEYytb}CIyxp9F~Ew9(Y)T{(Y8-F zP!S5r@J#761U_65FD;{!m}(3_ceYfk)GmVs3~U*MB(mk zD$L#%%Y}tmWHF`sThzHr=t#lq`9hTkN#cpNQI&ocfJC|j^7Is6_m!A==0zs-&3Iy} ztota7It;OjmehRe?s|jv0=b7DtvL&?U>dBHkEzzwS4m!WCksY}+kO5zwofN;AuB*+ zwW&5-#!HLZ$Q_y)$Iz?MV%R<_F4KShB<4!du5k$SUqd4tQ~ouQI~>{+1$MINZVEA0 zBSpLJqTV+g6g&Yf7JG9ZXHmuUVRj-^ZR^6*LJP72Bf|rHGHteu%}u^6%;n|NRJvOj zjC}`vX;C}#lB#FGRBjAu2=WPuOshS6);JTDx}4DQ*9*zlO;53knyeTXg*_^HwT>{= zw2gx%mrl|4-u4eLm*$a+G0*6v=n+HiHS@N3eJ}+NNiJ`xS(`USu2ZXPJV3DY38O;? zpY;pUiG*E20`?hko@l?GNgKVCf(`+)`NV!sLE||j1JjQ4P*TL}#0!aqDh&qgMVOae zX{J3hioVF%ZsKL<;9Fi!bmWR?Qv~MHb|e!AYdlb%L{_PMsJH%zp{ zu#JGu0DPs0byS;a5JGmuYn$ePj&o$XvlHFrOZuRdzTeYfZEc-*KmT_r>}9Xh82 z={5g=4a|tl=5%9g=;rn%s{MH8HX9pmQ!Af}7~*({SUfa6kE(>_;Iq#fQEY32V3-Se@41o7!KRv=Q$0KxfSd>2b`{DmOt3-(}^v;K|c z40*$^%=8`P{{;ucf;;^WpNRiq#|$k0`-x!s5A2xf|HO`))i-Sq#}NOqb0zG~IwZ)>M=N3;oJ)^r<&r8->S@9>E zOQkw?s1)%2e)4C=wXt@$*m!fs>w(tG&J5qoUsvF&)=T^*r7`#qu~-Uc)y&VsAfKV#GohNOL57>(cUz1=cgk+hwkJk1kEd1`Q>Vo2WEwR0_99?@Yr z9{5_~N%jkz`K$5cjl#302|~E>Ise&Xj;auwz>#TeoxgMDDm4Qv=FK17WhScXsKnlu zU$z9R5RFn%)>0%d(j#Lt0tQ+}J3Q?`me&!rnZS4y#9ZG)nZ=Dm@R44bgw&;t(#*JklY!O*DCRhGh6NYF=tj7pM+-(0L27*FE zH5Nz;HaGDU#)7oGTdGaAdVs7fwOzSeU~qLRbIitj)n^U$<9HRml~1y#asy<%RA(Hz zjfV1|Po|h8j(@C`&jY5NQwWo?0eRMVF`TkUyQg8J7x03UqMnwfM8vPtBRCU641)$q z2ILIjxYsS_k+ldY_=%`NyJ5EO9thwMs9x;SQ)qlfOhIvHKLZ?6WEYp+KIS zK3o~DGy-)!y<m6Mxe#vv#TvoJhAHx& z3u_d4J26ioSw9TZ_91wioZO)>fc`K5(eh^SB@|lBVb42F%F;doz!E{b>wg|CyLc{I z5H3;TVWjiah-A2yQ&I`~huL6fL6q)L&gM-a?u!>nDEEkp4hSR+RflVSFk(Rg_knh$ zmBR|O>5Q#NoRNj8O08)Ox$m)8@OA5CbLCfq<{Otb1nXdBZrN$$7^@3#JA0sK#CLzE zfCeZ#bPW)42%+0#AzDLyCfhUU*O`_|j=Pq)71cAeKwrN0k1>2uzba$k?3=dKG0e=u zuQ`?m#iK#V{?90~fA*X%ze+%mS&dvpeq+94@3@?x9|y2Rkgg{PU$m5W6?Od}3`1e5J;UwiWS97oypXSJ|M4P`6&u)go*rp*JAToM{?kA+=@LSIV>`F zDvC&uCWeshnPu+wxJ9M_IVOyD7A;-p78UnB?K`o;t1oHMC z!b)PEH+wRjU<)X;!*AUPu+ad+LgBrr5z0S*g0#%kF>H7sSxbHh%vT>hGTI5AN;4ev znm8r0%Z$CvvomEH%_QuZ`=IQ(4PEm{DOIfwBfz%0`TmnfBi3E^#hmf1zlZ zGe*cB8O$Gbg*L~}6DgYO@|2vk8mb@aJ~U1$Zu1l^dY?~}dGa!0PPO_^YE(uQ<>0|H z(&V)E+;;w)HEHXERCNNQptZ1{bUx`q=pWUq;56*b{>L3%BP(IciTy2M0eKU&*%NdL z8Ahaia6fGe3e~*w3QqYT?){sWDCfY|85tKMmZ+bBVXGqu($zG*6b2rZWv-ZN>V#zu z0Xi1aao^sZ_v2?4R1fU*Z@rAF4%v#k%Lwue!N6^gp`>UBDffKTR3L)l(A3RuWs*s) z^})CS!UDzTMi@GavMNok5vb6XCyE#1YP=tV1<7n1HNWa&@Fl*?kX%bTQ8Z1ka%Qc` zl|>OZV`3+h%KJ`eKMPP3-aSZASI3H~f?{=H$Bp&IxBbN;taI>O$5`3nW##autLD(_ zLbTP^8j(&BV?P0bKG^(z)AvW%fH6I=gds=%q`z%qoSkVk>R%ZJx6z3?zBtCg z=JD0;-Lo$kWGCAHJDmLY$noEVlab+nDsq^Z{sZA;`o9s*|58)`|B3)SpbnQ&r+(IC zDbWNIPo;!IxATX=8hio!e}DIXj({7>U%~&HOZe9E!lqQaX?}nC5h9E@8-PRNf)EU2-ErXKwWovLB0&cbPp5r5tjInx*B%( zPXE2I?rAFomKu5_Hu8qDXx3E0ee-Y<&jVr?^V>ys8|!QL>Yo3zzvH4hAkD757x~(s zeIe1RAkw?G{Bir)QN_j88IA#Mt42b;Y*3ofK;X`N2sy2Y31;~_3v6nT}EJAoOFZRw%i+v|D-Zi3$6AxH@ z4-1-SrYuZ2vzt6v4=Q7?ei+p&*|hxAvHjM-KNcd@$#b67pW=-B;#yIU$X#l1>D{Km zXQrcG5;8B!Y<;NcY$)$jKYdnYh~iLT&V@^3gR7s?46do4!6Q)nfuSJ%%pdgJ`k_E+ zx?Tm19dmZiD0@MVAlt2{2!>EQ>(5nXL9D#QAVn%HKZJa<*|F1h z4%z?CzpM?N07@XKgmMI70sKgR`IpuR&RT7aq4W*zgW?gGjf0|I>dcozfg8>t(2bxl zi|V~;UPlXPV^3HiMuqL$f$cLQM0UT4$&^)|4Z6>PSBccnotK4X18iHktver19J0*L zRv3{-LHr~f&;{o7Y`<3ZC z_LV3P7QdP{e{8`__RntlDDcfNz50S+l0ra@fsVv>vCI=J4tpx+O#t3DEz1XCuPL8n z4ve<)?%}Fk`)$X8#%Pwz22C~(^qCh$xY79p6#xrHs3HXv=Q*2SjIc?TMwdW%wP{v*Os24` zUZ89MXy}a5+$S%BSh222KX*ATO&)OFnX+){ zf~9$3X0FT;lD&y%-BGPq3t0+q4~4Y$Sk?S!aDXCie|0P8K1)=aJqjO*&rT{#h7DBV z6uOp9G#NvmaeEH3jIBIIFdqc;_j%b10d+c|F+;gfn|f$giCAgX4;a^x!mp;~fD4mr zQJgs${S@w9F4`=}-3AftY253xN99k65%~cMj&qe(4b6yODidEGse!qq)`rn;n_N{c z!Sdk}dPSW@ℜ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 bzJnGX;lYVOw@ASOcA#|98XD#{7SjJ8_TyUd literal 281941 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
-Obx4}zOP2zRAa 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ɾjE@zYUsM`1i0ZbrV^q-v(Rh7Jal8-$~tN8 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.5 E F0(.)A -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(1)195.95 E 0 Cg EP +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(1)190.955 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP @@ -452,8 +452,8 @@ F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en) (if [ \255n "$BASH_ENV" ]; then . "$BASH_ENV"; fi)144 709.2 Q F0 -.2(bu) 108 727.2 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E F3 -.666(PA)2.5 G (TH)-.189 E F0 -.25(va)2.25 G -(riable is not used to search for the \214le name.).25 E(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(2)195.95 E 0 Cg EP +(riable is not used to search for the \214le name.).25 E(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(2)190.955 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP @@ -526,15 +526,17 @@ E F2 -.1(rs)3.386 G(hd).1 E F0 .886(does not generally in)3.386 F -.2 (ser \(group\) id not equal to the real user \(group\) id, and the).15 F F13.708 E F0 .536(option is not supplied, no startup \214les are \ read, shell functions are not inherited from the en)108 326.4 R .535 -(vironment, the)-.4 F F3(SHELLOPTS)108 338.4 Q F0 -.25(va)2.459 G .21 -(riable, if it appears in the en).25 F .21 -(vironment, is ignored, and the ef)-.4 F(fecti)-.25 E .51 -.15(ve u)-.25 -H .21(ser id is set to the real).15 F .261(user id.)108 350.4 R .261 -(If the)5.261 F F12.761 E F0 .261(option is supplied at in)2.761 F --.2(vo)-.4 G .261(cation, the startup beha).2 F .261 -(vior is the same, b)-.2 F .261(ut the ef)-.2 F(fecti)-.25 E .561 -.15 -(ve u)-.25 H .261(ser id).15 F(is not reset.)108 362.4 Q/F5 10.95 -/Times-Bold@0 SF(DEFINITIONS)72 379.2 Q F0(The follo)108 391.2 Q +(vironment, the)-.4 F F3(SHELLOPTS)108 338.4 Q F4(,)A F3 -.27(BA)2.959 G +(SHOPTS).27 E F4(,)A F3(CDP)2.959 E -.855(AT)-.666 G(H).855 E F4(,)A F0 +(and)2.959 E F3(GLOBIGNORE)3.209 E F0 -.25(va)2.959 G .709 +(riables, if the).25 F 3.209(ya)-.15 G .71(ppear in the en)-3.209 F .71 +(vironment, are)-.4 F .905(ignored, and the ef)108 350.4 R(fecti)-.25 E +1.205 -.15(ve u)-.25 H .904(ser id is set to the real user id.).15 F +.904(If the)5.904 F F13.404 E F0 .904(option is supplied at in) +3.404 F -.2(vo)-.4 G .904(cation, the).2 F(startup beha)108 362.4 Q +(vior is the same, b)-.2 E(ut the ef)-.2 E(fecti)-.25 E .3 -.15(ve u) +-.25 H(ser id is not reset.).15 E/F5 10.95/Times-Bold@0 SF(DEFINITIONS) +72 379.2 Q F0(The follo)108 391.2 Q (wing de\214nitions are used throughout the rest of this document.)-.25 E F1(blank)108 403.2 Q F0 2.5(As)11.54 G(pace or tab)-2.5 E(.)-.4 E F1 -.1(wo)108 415.2 S(rd).1 E F0 2.5(As)13.88 G @@ -578,8 +580,8 @@ F .175(xit status, or 128+)-.15 F F2(n)A F0 .176 F1(Pipelines)87 691.2 Q F0(A)108 703.2 Q F2(pipeline)2.996 E F0 .496(is\ a sequence of one or more commands separated by one of the control ope\ rators)2.996 F F1(|)2.996 E F0(or)2.996 E F1(|&)2.996 E F0 5.496(.T)C -(he)-5.496 E(format for a pipeline is:)108 715.2 Q(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(3)195.95 E 0 Cg EP +(he)-5.496 E(format for a pipeline is:)108 715.2 Q(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(3)190.955 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup BP @@ -698,8 +700,8 @@ E(\(\()108 703.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144 2.552(wu)-.25 G(nder)-2.552 E F4 .052(ARITHMETIC EV)2.552 F(ALU)-1.215 E (A-)-.54 E(TION)144 727.2 Q/F5 9/Times-Roman@0 SF(.)A F0 .411(If the v) 4.911 F .411(alue of the e)-.25 F .411(xpression is non-zero, the retur\ -n status is 0; otherwise the return status)-.15 F(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(4)195.95 E 0 Cg EP +n status is 0; otherwise the return status)-.15 F(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(4)190.955 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup BP @@ -724,116 +726,118 @@ F1([[)3.633 E F0(and)144 148.8 Q F1(]])2.964 E F0 2.964(;t)C .464 (tution, process substitution, and quote remo)144 160.8 R -.25(va)-.15 G 3.581(la).25 G 1.081(re performed.)-3.581 F 1.081 (Conditional operators such as)6.081 F F13.581 E F0 -(must be unquoted to be recognized as primaries.)144 172.8 Q .503 -(When the)144 190.8 R F1(==)3.003 E F0(and)3.002 E F1(!=)3.002 E F0 .502 -(operators are used, the string to the right of the operator is conside\ -red a pat-)3.002 F 1.224 -(tern and matched according to the rules described belo)144 202.8 R -3.724(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.725(nM)-.15 -G(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225(he shell)-3.725 -F(option)144 214.8 Q F1(nocasematch)3.405 E F0 .904 +(must be unquoted to be recognized as primaries.)144 172.8 Q +(When used with)144 190.8 Q F1([[)2.5 E F0 2.5(,T)C(he)-2.5 E F1(<)2.5 E +F0(and)2.5 E F1(>)2.5 E F0(operators sort le)2.5 E +(xicographically using the current locale.)-.15 E .503(When the)144 +208.8 R F1(==)3.003 E F0(and)3.002 E F1(!=)3.002 E F0 .502(operators ar\ +e used, the string to the right of the operator is considered a pat-) +3.002 F 1.224(tern and matched according to the rules described belo)144 +220.8 R 3.724(wu)-.25 G(nder)-3.724 E F1 -.1(Pa)3.724 G(tter).1 E 3.725 +(nM)-.15 G(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225 +(he shell)-3.725 F(option)144 232.8 Q F1(nocasematch)3.405 E F0 .904 (is enabled, the match is performed without re)3.405 F -.05(ga)-.15 G -.904(rd to the case of alphabetic).05 F 2.751(characters. The)144 226.8 +.904(rd to the case of alphabetic).05 F 2.751(characters. The)144 244.8 R .251(return v)2.751 F .251(alue is 0 if the string matches \()-.25 F F1(==)A F0 2.751(\)o)C 2.751(rd)-2.751 G .251(oes not match \()-2.751 F -F1(!=)A F0 2.751(\)t)C .252(he pattern, and)-2.751 F 2.5(1o)144 238.8 S +F1(!=)A F0 2.751(\)t)C .252(he pattern, and)-2.751 F 2.5(1o)144 256.8 S 2.5(therwise. An)-2.5 F 2.5(yp)-.15 G(art of the pattern may be quoted \ to force it to be matched as a string.)-2.5 E .243 -(An additional binary operator)144 256.8 R(,)-.4 E F1(=~)2.743 E F0 +(An additional binary operator)144 274.8 R(,)-.4 E F1(=~)2.743 E F0 2.743(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243 (ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E F1(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F 1.953 (used, the string to the right of the operator is considered an e)144 -268.8 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954 -(xpression and)-.15 F .207(matched accordingly \(as in)144 280.8 R F2 +286.8 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954 +(xpression and)-.15 F .207(matched accordingly \(as in)144 298.8 R F2 -.37(re)2.707 G -.1(ge)-.03 G(x)-.1 E F0 2.707(\(3\)\). The)B .207 (return v)2.707 F .207 (alue is 0 if the string matches the pattern, and 1)-.25 F 3.345 -(otherwise. If)144 292.8 R .845(the re)3.345 F .845(gular e)-.15 F .846 +(otherwise. If)144 310.8 R .845(the re)3.345 F .845(gular e)-.15 F .846 (xpression is syntactically incorrect, the conditional e)-.15 F -(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 304.8 S +(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 322.8 S .667(lue is 2.).25 F .667(If the shell option)5.667 F F1(nocasematch) 3.167 E F0 .667(is enabled, the match is performed without re)3.167 F -.05(ga)-.15 G .666(rd to).05 F .378(the case of alphabetic characters.) -144 316.8 R(An)5.378 E 2.878(yp)-.15 G .378 +144 334.8 R(An)5.378 E 2.878(yp)-.15 G .378 (art of the pattern may be quoted to force it to be matched)-2.878 F -.265(as a string.)144 328.8 R .265 +.265(as a string.)144 346.8 R .265 (Substrings matched by parenthesized sube)5.265 F .265 (xpressions within the re)-.15 F .265(gular e)-.15 F .265(xpression are) --.15 F(sa)144 340.8 Q -.15(ve)-.2 G 3.117(di).15 G 3.117(nt)-3.117 G -.617(he array v)-3.117 F(ariable)-.25 E F1 -.3(BA)3.117 G(SH_REMA).3 E -(TCH)-.95 E F0 5.617(.T)C .617(he element of)-5.617 F F1 -.3(BA)3.118 G -(SH_REMA).3 E(TCH)-.95 E F0 .618(with inde)3.118 F(x)-.15 E 6.883(0i)144 -352.8 S 6.883(st)-6.883 G 4.382 -(he portion of the string matching the entire re)-6.883 F 4.382(gular e) --.15 F 6.882(xpression. The)-.15 F 4.382(element of)6.882 F F1 -.3(BA) -144 364.8 S(SH_REMA).3 E(TCH)-.95 E F0 2.087(with inde)4.587 F(x)-.15 E -F2(n)4.587 E F0 2.088(is the portion of the string matching the)4.587 F -F2(n)4.588 E F0 2.088(th parenthesized)B(sube)144 376.8 Q(xpression.) --.15 E .786(Expressions may be combined using the follo)144 394.8 R .785 +-.15 F(sa)144 358.8 Q -.15(ve)-.2 G 3.096(di).15 G 3.097(nt)-3.096 G +.597(he array v)-3.097 F(ariable)-.25 E F3 -.27(BA)3.097 G(SH_REMA).27 E +(TCH)-.855 E F4(.)A F0 .597(The element of)5.097 F F3 -.27(BA)3.097 G +(SH_REMA).27 E(TCH)-.855 E F0 .597(with inde)2.847 F 3.097(x0i)-.15 G(s) +-3.097 E .049(the portion of the string matching the entire re)144 370.8 +R .049(gular e)-.15 F 2.549(xpression. The)-.15 F .049(element of)2.549 +F F3 -.27(BA)2.549 G(SH_REMA).27 E(TCH)-.855 E F0(with inde)144 382.8 Q +(x)-.15 E F2(n)2.5 E F0(is the portion of the string matching the)2.5 E +F2(n)2.5 E F0(th parenthesized sube)A(xpression.)-.15 E .785 +(Expressions may be combined using the follo)144 400.8 R .786 (wing operators, listed in decreasing order of prece-)-.25 F(dence:)144 -406.8 Q F1(\()144 424.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(\)) -2.5 E F0 .522(Returns the v)180 436.8 R .522(alue of)-.25 F F2 -.2(ex) +412.8 Q F1(\()144 430.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(\)) +2.5 E F0 .523(Returns the v)180 442.8 R .522(alue of)-.25 F F2 -.2(ex) 3.022 G(pr).2 E(ession)-.37 E F0 5.522(.T)C .522(his may be used to o) -5.522 F -.15(ve)-.15 G .522(rride the normal precedence of).15 F -(operators.)180 448.8 Q F1(!)144 460.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession) --.37 E F0 -.35(Tr)180 472.8 S(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E -(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F2 -.2(ex)144 484.8 S(pr).2 E +(operators.)180 454.8 Q F1(!)144 466.8 Q F2 -.2(ex)2.5 G(pr).2 E(ession) +-.37 E F0 -.35(Tr)180 478.8 S(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E +(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F2 -.2(ex)144 490.8 S(pr).2 E (ession1)-.37 E F1(&&)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 --.35(Tr)180 496.8 S(ue if both).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1) +-.35(Tr)180 502.8 S(ue if both).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1) -.37 E F0(and)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(are true.) -2.52 E F2 -.2(ex)144 508.8 S(pr).2 E(ession1)-.37 E/F5 10/Symbol SF -2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 520.8 +2.52 E F2 -.2(ex)144 514.8 S(pr).2 E(ession1)-.37 E/F5 10/Symbol SF +2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 526.8 S(ue if either).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E -F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 537.6 -Q F1(&&)3.299 E F0(and)3.299 E F53.298 E F0 .798 +F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 543.6 +Q F1(&&)3.298 E F0(and)3.298 E F53.298 E F0 .798 (operators do not e)3.298 F -.25(va)-.25 G(luate).25 E F2 -.2(ex)3.298 G (pr).2 E(ession2)-.37 E F0 .798(if the v)3.298 F .798(alue of)-.25 F F2 --.2(ex)3.298 G(pr).2 E(ession1)-.37 E F0 .798(is suf)3.298 F .798 -(\214cient to)-.25 F(determine the return v)144 549.6 Q +-.2(ex)3.298 G(pr).2 E(ession1)-.37 E F0 .799(is suf)3.298 F .799 +(\214cient to)-.25 F(determine the return v)144 555.6 Q (alue of the entire conditional e)-.25 E(xpression.)-.15 E F1 -.25(fo) -108 566.4 S(r).25 E F2(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d) --.37 E F0 2.5(];)2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 -.423(The list of w)144 578.4 R .423(ords follo)-.1 F(wing)-.25 E F1(in) -2.923 E F0 .423(is e)2.923 F .423(xpanded, generating a list of items.) --.15 F .424(The v)5.424 F(ariable)-.25 E F2(name)2.924 E F0 .424 -(is set to)2.924 F .653(each element of this list in turn, and)144 590.4 -R F2(list)3.153 E F0 .653(is e)3.153 F -.15(xe)-.15 G .653 -(cuted each time.).15 F .653(If the)5.653 F F1(in)3.153 E F2(wor)3.153 E -(d)-.37 E F0 .653(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 -.648(command e)144 602.4 R -.15(xe)-.15 G(cutes).15 E F2(list)3.148 E F0 -.648(once for each positional parameter that is set \(see)3.148 F F3 --.666(PA)3.149 G(RAMETERS).666 E F0(belo)2.899 E(w\).)-.25 E .154 -(The return status is the e)144 614.4 R .153 -(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.653 -(cutes. If).15 F .153(the e)2.653 F .153(xpansion of the items)-.15 F -(follo)144 626.4 Q(wing)-.25 E F1(in)2.5 E F0 +108 572.4 S(r).25 E F2(name)2.5 E F0 2.5([[)2.5 G F1(in)A F0([)2.5 E F2 +(wor)2.5 E 2.5(d.)-.37 G(..)-2.5 E F0 2.5(]];])2.5 G F1(do)A F2(list)2.5 +E F0(;)2.5 E F1(done)2.5 E F0 .424(The list of w)144 584.4 R .424 +(ords follo)-.1 F(wing)-.25 E F1(in)2.924 E F0 .423(is e)2.924 F .423 +(xpanded, generating a list of items.)-.15 F .423(The v)5.423 F(ariable) +-.25 E F2(name)2.923 E F0 .423(is set to)2.923 F .653 +(each element of this list in turn, and)144 596.4 R F2(list)3.153 E F0 +.653(is e)3.153 F -.15(xe)-.15 G .653(cuted each time.).15 F .653 +(If the)5.653 F F1(in)3.153 E F2(wor)3.153 E(d)-.37 E F0 .653 +(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 .649(command e) +144 608.4 R -.15(xe)-.15 G(cutes).15 E F2(list)3.149 E F0 .648 +(once for each positional parameter that is set \(see)3.148 F F3 -.666 +(PA)3.148 G(RAMETERS).666 E F0(belo)2.898 E(w\).)-.25 E .153 +(The return status is the e)144 620.4 R .153 +(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.654 +(cutes. If).15 F .154(the e)2.654 F .154(xpansion of the items)-.15 F +(follo)144 632.4 Q(wing)-.25 E F1(in)2.5 E F0 (results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G -(cuted, and the return status is 0.).15 E F1 -.25(fo)108 643.2 S(r).25 E +(cuted, and the return status is 0.).15 E F1 -.25(fo)108 649.2 S(r).25 E F0(\(\()2.5 E F2 -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr2).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5 E F2 -(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.235(First, the arithmetic e) -144 655.2 R(xpression)-.15 E F2 -.2(ex)3.735 G(pr1).2 E F0 1.235(is e) -3.735 F -.25(va)-.25 G 1.236 -(luated according to the rules described belo).25 F 3.736(wu)-.25 G -(nder)-3.736 E F3 .562(ARITHMETIC EV)144 667.2 R(ALU)-1.215 E -.855(AT) --.54 G(ION).855 E F4(.)A F0 .562(The arithmetic e)5.062 F(xpression)-.15 -E F2 -.2(ex)3.062 G(pr2).2 E F0 .561(is then e)3.061 F -.25(va)-.25 G -.561(luated repeatedly until).25 F .591(it e)144 679.2 R -.25(va)-.25 G -.591(luates to zero.).25 F .592(Each time)5.591 F F2 -.2(ex)3.092 G(pr2) +(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.236(First, the arithmetic e) +144 661.2 R(xpression)-.15 E F2 -.2(ex)3.736 G(pr1).2 E F0 1.235(is e) +3.736 F -.25(va)-.25 G 1.235 +(luated according to the rules described belo).25 F 3.735(wu)-.25 G +(nder)-3.735 E F3 .561(ARITHMETIC EV)144 673.2 R(ALU)-1.215 E -.855(AT) +-.54 G(ION).855 E F4(.)A F0 .561(The arithmetic e)5.061 F(xpression)-.15 +E F2 -.2(ex)3.061 G(pr2).2 E F0 .562(is then e)3.062 F -.25(va)-.25 G +.562(luated repeatedly until).25 F .592(it e)144 685.2 R -.25(va)-.25 G +.592(luates to zero.).25 F .592(Each time)5.592 F F2 -.2(ex)3.092 G(pr2) .2 E F0 -.25(eva)3.092 G .592(luates to a non-zero v).25 F(alue,)-.25 E -F2(list)3.092 E F0 .592(is e)3.092 F -.15(xe)-.15 G .592 -(cuted and the arith-).15 F .229(metic e)144 691.2 R(xpression)-.15 E F2 --.2(ex)2.729 G(pr3).2 E F0 .229(is e)2.729 F -.25(va)-.25 G 2.729 +F2(list)3.092 E F0 .591(is e)3.092 F -.15(xe)-.15 G .591 +(cuted and the arith-).15 F .228(metic e)144 697.2 R(xpression)-.15 E F2 +-.2(ex)2.728 G(pr3).2 E F0 .229(is e)2.728 F -.25(va)-.25 G 2.729 (luated. If).25 F(an)2.729 E 2.729(ye)-.15 G .229 (xpression is omitted, it beha)-2.879 F -.15(ve)-.2 G 2.729(sa).15 G -2.729(si)-2.729 G 2.729(fi)-2.729 G 2.728(te)-2.729 G -.25(va)-2.978 G -.228(luates to 1.).25 F .227(The return v)144 703.2 R .227 -(alue is the e)-.25 F .227(xit status of the last command in)-.15 F F2 -(list)2.728 E F0 .228(that is e)2.728 F -.15(xe)-.15 G .228(cuted, or f) -.15 F .228(alse if an)-.1 F 2.728(yo)-.15 G 2.728(ft)-2.728 G(he)-2.728 -E -.15(ex)144 715.2 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(5)195.95 E 0 Cg EP +2.729(si)-2.729 G 2.729(fi)-2.729 G 2.729(te)-2.729 G -.25(va)-2.979 G +.229(luates to 1.).25 F .228(The return v)144 709.2 R .228 +(alue is the e)-.25 F .228(xit status of the last command in)-.15 F F2 +(list)2.728 E F0 .227(that is e)2.728 F -.15(xe)-.15 G .227(cuted, or f) +.15 F .227(alse if an)-.1 F 2.727(yo)-.15 G 2.727(ft)-2.727 G(he)-2.727 +E -.15(ex)144 721.2 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(5)190.955 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup BP @@ -841,69 +845,69 @@ BP /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) -.35 E/F1 10/Times-Bold@0 SF(select)108 84 Q/F2 10/Times-Italic@0 SF (name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)-.37 E F0 2.5(];)2.5 G -F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .433(The list of w)144 -96 R .433(ords follo)-.1 F(wing)-.25 E F1(in)2.933 E F0 .432(is e)2.933 -F .432(xpanded, generating a list of items.)-.15 F .432(The set of e) -5.432 F .432(xpanded w)-.15 F(ords)-.1 E .842 +F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .432(The list of w)144 +96 R .432(ords follo)-.1 F(wing)-.25 E F1(in)2.932 E F0 .432(is e)2.932 +F .432(xpanded, generating a list of items.)-.15 F .433(The set of e) +5.433 F .433(xpanded w)-.15 F(ords)-.1 E .843 (is printed on the standard error)144 108 R 3.342(,e)-.4 G .842 (ach preceded by a number)-3.342 F 5.842(.I)-.55 G 3.342(ft)-5.842 G(he) --3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .843 -(is omitted, the posi-)3.343 F .064(tional parameters are printed \(see) -144 120 R/F3 9/Times-Bold@0 SF -.666(PA)2.564 G(RAMETERS).666 E F0(belo) -2.314 E 2.564(w\). The)-.25 F F1(PS3)2.564 E F0 .064 -(prompt is then displayed and a)2.564 F .213 +-3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .842 +(is omitted, the posi-)3.342 F .201(tional parameters are printed \(see) +144 120 R/F3 9/Times-Bold@0 SF -.666(PA)2.701 G(RAMETERS).666 E F0(belo) +2.451 E 2.701(w\). The)-.25 F F3(PS3)2.701 E F0 .201 +(prompt is then displayed and a)2.451 F .214 (line read from the standard input.)144 132 R .213 -(If the line consists of a number corresponding to one of the dis-)5.213 -F 1.538(played w)144 144 R 1.538(ords, then the v)-.1 F 1.538(alue of) --.25 F F2(name)4.398 E F0 1.537(is set to that w)4.218 F 4.037(ord. If) --.1 F 1.537(the line is empty)4.037 F 4.037(,t)-.65 G 1.537(he w)-4.037 -F 1.537(ords and)-.1 F .065(prompt are displayed ag)144 156 R 2.565 -(ain. If)-.05 F .065(EOF is read, the command completes.)2.565 F(An) -5.066 E 2.566(yo)-.15 G .066(ther v)-2.566 F .066(alue read causes)-.25 -F F2(name)144 168 Q F0 .76(to be set to null.)3.44 F .76 -(The line read is sa)5.76 F -.15(ve)-.2 G 3.259(di).15 G 3.259(nt)-3.259 -G .759(he v)-3.259 F(ariable)-.25 E F1(REPL)3.259 E(Y)-.92 E F0 5.759 -(.T)C(he)-5.759 E F2(list)3.349 E F0 .759(is e)3.939 F -.15(xe)-.15 G -.759(cuted after).15 F .071(each selection until a)144 180 R F1(br)2.571 -E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571 -(cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1(select) -2.571 E F0 .071(is the e)2.571 F .072(xit status of the)-.15 F +(If the line consists of a number corresponding to one of the dis-)5.214 +F 1.537(played w)144 144 R 1.537(ords, then the v)-.1 F 1.537(alue of) +-.25 F F2(name)4.397 E F0 1.537(is set to that w)4.217 F 4.037(ord. If) +-.1 F 1.538(the line is empty)4.038 F 4.038(,t)-.65 G 1.538(he w)-4.038 +F 1.538(ords and)-.1 F .066(prompt are displayed ag)144 156 R 2.566 +(ain. If)-.05 F .065(EOF is read, the command completes.)2.566 F(An) +5.065 E 2.565(yo)-.15 G .065(ther v)-2.565 F .065(alue read causes)-.25 +F F2(name)144 168 Q F0 .972(to be set to null.)3.652 F .972 +(The line read is sa)5.972 F -.15(ve)-.2 G 3.473(di).15 G 3.473(nt) +-3.473 G .973(he v)-3.473 F(ariable)-.25 E F3(REPL)3.473 E(Y)-.828 E/F4 +9/Times-Roman@0 SF(.)A F0(The)5.473 E F2(list)3.563 E F0 .973(is e)4.153 +F -.15(xe)-.15 G .973(cuted after).15 F .072(each selection until a)144 +180 R F1(br)2.571 E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 +G 2.571(cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1 +(select)2.571 E F0 .071(is the e)2.571 F .071(xit status of the)-.15 F (last command e)144 192 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0 2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)-.15 G(cuted.).15 E F1(case)108 208.8 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5 E F0 2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2 (pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0(;; ] ...) -2.5 E F1(esac)2.5 E F0(A)144 220.8 Q F1(case)3.265 E F0 .764 -(command \214rst e)3.265 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0 +2.5 E F1(esac)2.5 E F0(A)144 220.8 Q F1(case)3.264 E F0 .764 +(command \214rst e)3.264 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0 3.264(,a)C .764(nd tries to match it ag)-3.264 F .764(ainst each)-.05 F -F2(pattern)3.264 E F0 .764(in turn, using the)3.264 F .595 +F2(pattern)3.264 E F0 .765(in turn, using the)3.264 F .596 (same matching rules as for pathname e)144 232.8 R .595(xpansion \(see) --.15 F F1 -.1(Pa)3.095 G .596(thname Expansion).1 F F0(belo)3.096 E -3.096(w\). The)-.25 F F2(wor)3.096 E(d)-.37 E F0(is)3.096 E -.15(ex)144 +-.15 F F1 -.1(Pa)3.095 G .595(thname Expansion).1 F F0(belo)3.095 E +3.095(w\). The)-.25 F F2(wor)3.095 E(d)-.37 E F0(is)3.095 E -.15(ex)144 244.8 S 1.092(panded using tilde e).15 F 1.092 (xpansion, parameter and v)-.15 F 1.092(ariable e)-.25 F 1.092 (xpansion, arithmetic substitution, com-)-.15 F 1.268 (mand substitution, process substitution and quote remo)144 256.8 R -.25 (va)-.15 G 3.768(l. Each).25 F F2(pattern)3.768 E F0 -.15(ex)3.768 G -1.269(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 268.8 R +1.268(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 268.8 R .353(xpansion, parameter and v)-.15 F .353(ariable e)-.25 F .353 -(xpansion, arithmetic substitution, command substi-)-.15 F 1.516 -(tution, and process substitution.)144 280.8 R 1.516 -(If the shell option)6.516 F F1(nocasematch)4.016 E F0 1.517 -(is enabled, the match is per)4.017 F(-)-.2 E 1.347(formed without re) -144 292.8 R -.05(ga)-.15 G 1.347 -(rd to the case of alphabetic characters.).05 F 1.346 +(xpansion, arithmetic substitution, command substi-)-.15 F 1.517 +(tution, and process substitution.)144 280.8 R 1.517 +(If the shell option)6.517 F F1(nocasematch)4.016 E F0 1.516 +(is enabled, the match is per)4.016 F(-)-.2 E 1.346(formed without re) +144 292.8 R -.05(ga)-.15 G 1.346 +(rd to the case of alphabetic characters.).05 F 1.347 (When a match is found, the corre-)6.347 F(sponding)144 304.8 Q F2(list) -2.776 E F0 .277(is e)2.776 F -.15(xe)-.15 G 2.777(cuted. If).15 F(the) +2.777 E F0 .277(is e)2.777 F -.15(xe)-.15 G 2.777(cuted. If).15 F(the) 2.777 E F1(;;)2.777 E F0 .277 (operator is used, no subsequent matches are attempted after the)2.777 F -.849(\214rst pattern match.)144 316.8 R(Using)5.849 E F1(;&)3.349 E F0 +.848(\214rst pattern match.)144 316.8 R(Using)5.848 E F1(;&)3.348 E F0 .849(in place of)3.349 F F1(;;)3.349 E F0 .849(causes e)3.349 F -.15(xe) --.15 G .849(cution to continue with the).15 F F2(list)3.348 E F0 -(associated)3.348 E .077(with the ne)144 328.8 R .077 -(xt set of patterns.)-.15 F(Using)5.077 E F1(;;&)2.577 E F0 .078 -(in place of)2.577 F F1(;;)2.578 E F0 .078 -(causes the shell to test the ne)2.578 F .078(xt pattern list in)-.15 F +-.15 G .849(cution to continue with the).15 F F2(list)3.349 E F0 +(associated)3.349 E .078(with the ne)144 328.8 R .078 +(xt set of patterns.)-.15 F(Using)5.078 E F1(;;&)2.578 E F0 .078 +(in place of)2.578 F F1(;;)2.578 E F0 .077 +(causes the shell to test the ne)2.578 F .077(xt pattern list in)-.15 F .227(the statement, if an)144 340.8 R 1.527 -.65(y, a)-.15 H .227(nd e) .65 F -.15(xe)-.15 G .227(cute an).15 F 2.727(ya)-.15 G(ssociated)-2.727 E F2(list)2.727 E F0 .227(on a successful match.)2.727 F .227(The e) @@ -913,81 +917,81 @@ Q(Otherwise, it is the e)5 E(xit status of the last command e)-.15 E (list)2.5 E F0(;)A F1(then)2.5 E F2(list;)2.5 E F0([)2.5 E F1(elif)2.5 E F2(list)2.5 E F0(;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;].)C(.. [)-2.5 E F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 381.6 Q F1 -(if)2.977 E F2(list)3.067 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978 +(if)2.978 E F2(list)3.068 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978 (cuted. If).15 F .478(its e)2.978 F .478(xit status is zero, the)-.15 F F1(then)2.978 E F2(list)2.978 E F0 .478(is e)2.978 F -.15(xe)-.15 G -2.978(cuted. Otherwise,).15 F(each)2.978 E F1(elif)2.978 E F2(list)2.978 -E F0 1.088(is e)144 393.6 R -.15(xe)-.15 G 1.088 +2.978(cuted. Otherwise,).15 F(each)2.978 E F1(elif)2.977 E F2(list)2.977 +E F0 1.087(is e)144 393.6 R -.15(xe)-.15 G 1.087 (cuted in turn, and if its e).15 F 1.087 (xit status is zero, the corresponding)-.15 F F1(then)3.587 E F2(list) -3.587 E F0 1.087(is e)3.587 F -.15(xe)-.15 G 1.087(cuted and the).15 F -.103(command completes.)144 405.6 R .103(Otherwise, the)5.103 F F1(else) +3.587 E F0 1.088(is e)3.588 F -.15(xe)-.15 G 1.088(cuted and the).15 F +.104(command completes.)144 405.6 R .103(Otherwise, the)5.104 F F1(else) 2.603 E F2(list)2.603 E F0 .103(is e)2.603 F -.15(xe)-.15 G .103 (cuted, if present.).15 F .103(The e)5.103 F .103(xit status is the e) --.15 F .104(xit sta-)-.15 F(tus of the last command e)144 417.6 Q -.15 +-.15 F .103(xit sta-)-.15 F(tus of the last command e)144 417.6 Q -.15 (xe)-.15 G(cuted, or zero if no condition tested true.).15 E F1(while) 108 434.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list)2.5 E F0(;)A F1 (done)2.5 E(until)108 446.4 Q F2(list)2.5 E F0(;)A F1(do)2.5 E F2(list) -2.5 E F0(;)A F1(done)2.5 E F0(The)144 458.4 Q F1(while)3.104 E F0 .603 -(command continuously e)3.104 F -.15(xe)-.15 G .603(cutes the).15 F F1 +2.5 E F0(;)A F1(done)2.5 E F0(The)144 458.4 Q F1(while)3.103 E F0 .603 +(command continuously e)3.103 F -.15(xe)-.15 G .603(cutes the).15 F F1 (do)3.103 E F2(list)3.103 E F0 .603(as long as the last command in)3.103 -F F2(list)3.103 E F0(returns)3.103 E .47(an e)144 470.4 R .47 -(xit status of zero.)-.15 F(The)5.47 E F1(until)2.97 E F0 .471 -(command is identical to the)2.97 F F1(while)2.971 E F0 .471(command, e) -2.971 F .471(xcept that the test)-.15 F .096(is ne)144 482.4 R -.05(ga) --.15 G .096(ted; the).05 F F1(do)2.596 E F2(list)2.686 E F0 .095(is e) -3.276 F -.15(xe)-.15 G .095(cuted as long as the last command in).15 F -F2(list)2.685 E F0 .095(returns a non-zero e)3.275 F .095(xit status.) --.15 F 1.306(The e)144 494.4 R 1.306(xit status of the)-.15 F F1(while) -3.806 E F0(and)3.806 E F1(until)3.807 E F0 1.307(commands is the e)3.807 -F 1.307(xit status of the last)-.15 F F1(do)3.807 E F2(list)3.807 E F0 -(command)3.807 E -.15(exe)144 506.4 S(cuted, or zero if none w).15 E +F F2(list)3.104 E F0(returns)3.104 E .471(an e)144 470.4 R .471 +(xit status of zero.)-.15 F(The)5.471 E F1(until)2.971 E F0 .471 +(command is identical to the)2.971 F F1(while)2.97 E F0 .47(command, e) +2.97 F .47(xcept that the test)-.15 F .095(is ne)144 482.4 R -.05(ga) +-.15 G .095(ted; the).05 F F1(do)2.595 E F2(list)2.685 E F0 .095(is e) +3.275 F -.15(xe)-.15 G .095(cuted as long as the last command in).15 F +F2(list)2.685 E F0 .096(returns a non-zero e)3.276 F .096(xit status.) +-.15 F 1.307(The e)144 494.4 R 1.307(xit status of the)-.15 F F1(while) +3.807 E F0(and)3.807 E F1(until)3.807 E F0 1.307(commands is the e)3.807 +F 1.306(xit status of the last)-.15 F F1(do)3.806 E F2(list)3.806 E F0 +(command)3.806 E -.15(exe)144 506.4 S(cuted, or zero if none w).15 E (as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F1(Copr)87 523.2 Q(ocesses)-.18 -E F0(A)108 535.2 Q F2(copr)3.713 E(ocess)-.45 E F0 1.213 -(is a shell command preceded by the)3.713 F F1(copr)3.712 E(oc)-.18 E F0 -(reserv)3.712 E 1.212(ed w)-.15 F 3.712(ord. A)-.1 F 1.212 -(coprocess is e)3.712 F -.15(xe)-.15 G 1.212(cuted asyn-).15 F .574(chr\ +E F0(A)108 535.2 Q F2(copr)3.712 E(ocess)-.45 E F0 1.212 +(is a shell command preceded by the)3.712 F F1(copr)3.713 E(oc)-.18 E F0 +(reserv)3.713 E 1.213(ed w)-.15 F 3.713(ord. A)-.1 F 1.213 +(coprocess is e)3.713 F -.15(xe)-.15 G 1.213(cuted asyn-).15 F .575(chr\ onously in a subshell, as if the command had been terminated with the) -108 547.2 R F1(&)3.075 E F0 .575(control operator)3.075 F 3.075(,w)-.4 G -.575(ith a tw)-3.075 F(o-)-.1 E -.1(wa)108 559.2 S 2.5(yp).1 G +108 547.2 R F1(&)3.074 E F0 .574(control operator)3.074 F 3.074(,w)-.4 G +.574(ith a tw)-3.074 F(o-)-.1 E -.1(wa)108 559.2 S 2.5(yp).1 G (ipe established between the e)-2.5 E -.15(xe)-.15 G (cuting shell and the coprocess.).15 E(The format for a coprocess is:) 108 576 Q F1(copr)144 592.8 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27 E F0(])A F2(command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ections)-.37 E -F0(])A .923(This creates a coprocess named)108 609.6 R F2 -.27(NA)3.423 -G(ME).27 E F0 5.923(.I)C(f)-5.923 E F2 -.27(NA)3.423 G(ME).27 E F0 .922 -(is not supplied, the def)3.423 F .922(ault name is)-.1 F F2(COPR)3.422 -E(OC)-.4 E F0(.)A F2 -.27(NA)5.922 G(ME).27 E F0 .64 +F0(])A .922(This creates a coprocess named)108 609.6 R F2 -.27(NA)3.422 +G(ME).27 E F0 5.922(.I)C(f)-5.922 E F2 -.27(NA)3.422 G(ME).27 E F0 .923 +(is not supplied, the def)3.422 F .923(ault name is)-.1 F F2(COPR)3.423 +E(OC)-.4 E F0(.)A F2 -.27(NA)5.923 G(ME).27 E F0 .64 (must not be supplied if)108 621.6 R F2(command)3.14 E F0 .64(is a)3.14 F F2 .64(simple command)3.14 F F0 .64(\(see abo)3.14 F -.15(ve)-.15 G .64(\); otherwise, it is interpreted as the \214rst).15 F -.1(wo)108 633.6 S .163(rd of the simple command.).1 F .163(When the coproc is e) 5.163 F -.15(xe)-.15 G .163(cuted, the shell creates an array v).15 F -.163(ariable \(see)-.25 F F1(Arrays)2.662 E F0(belo)108 645.6 Q .511 -(w\) named)-.25 F F2 -.27(NA)3.011 G(ME).27 E F0 .511(in the conte)3.011 +.163(ariable \(see)-.25 F F1(Arrays)2.663 E F0(belo)108 645.6 Q .512 +(w\) named)-.25 F F2 -.27(NA)3.012 G(ME).27 E F0 .512(in the conte)3.012 F .511(xt of the e)-.15 F -.15(xe)-.15 G .511(cuting shell.).15 F .511 -(The standard output of)5.511 F F2(command)3.212 E F0 .512(is connected) -3.782 F .811(via a pipe to a \214le descriptor in the e)108 657.6 R -.15 -(xe)-.15 G .81(cuting shell, and that \214le descriptor is assigned to) -.15 F F2 -.27(NA)3.31 G(ME).27 E F0 3.31([0]. The)B .716 -(standard input of)108 669.6 R F2(command)3.416 E F0 .716 -(is connected via a pipe to a \214le descriptor in the e)3.986 F -.15 -(xe)-.15 G .717(cuting shell, and that \214le).15 F .703 -(descriptor is assigned to)108 681.6 R F2 -.27(NA)3.203 G(ME).27 E F0 -3.203([1]. This)B .703(pipe is established before an)3.203 F 3.202(yr) --.15 G .702(edirections speci\214ed by the com-)-3.202 F 1.183 -(mand \(see)108 693.6 R F3(REDIRECTION)3.683 E F0(belo)3.433 E 3.683 -(w\). The)-.25 F 1.183(\214le descriptors can be utilized as ar)3.683 F -1.184(guments to shell commands)-.18 F .07 +(The standard output of)5.511 F F2(command)3.211 E F0 .511(is connected) +3.781 F .81(via a pipe to a \214le descriptor in the e)108 657.6 R -.15 +(xe)-.15 G .811(cuting shell, and that \214le descriptor is assigned to) +.15 F F2 -.27(NA)3.311 G(ME).27 E F0 3.311([0]. The)B .717 +(standard input of)108 669.6 R F2(command)3.417 E F0 .716 +(is connected via a pipe to a \214le descriptor in the e)3.987 F -.15 +(xe)-.15 G .716(cuting shell, and that \214le).15 F .702 +(descriptor is assigned to)108 681.6 R F2 -.27(NA)3.202 G(ME).27 E F0 +3.202([1]. This)B .703(pipe is established before an)3.203 F 3.203(yr) +-.15 G .703(edirections speci\214ed by the com-)-3.203 F 1.184 +(mand \(see)108 693.6 R F3(REDIRECTION)3.684 E F0(belo)3.434 E 3.684 +(w\). The)-.25 F 1.183(\214le descriptors can be utilized as ar)3.684 F +1.183(guments to shell commands)-.18 F .07 (and redirections using standard w)108 705.6 R .07(ord e)-.1 F 2.57 (xpansions. The)-.15 F .07(process id of the shell spa)2.57 F .07 -(wned to e)-.15 F -.15(xe)-.15 G .07(cute the copro-).15 F .631 +(wned to e)-.15 F -.15(xe)-.15 G .07(cute the copro-).15 F .632 (cess is a)108 717.6 R -.25(va)-.2 G .631(ilable as the v).25 F .631 (alue of the v)-.25 F(ariable)-.25 E F2 -.27(NA)3.131 G(ME).27 E F0 3.131(_PID. The)B F1(wait)3.131 E F0 -.2(bu)3.131 G .631 (iltin command may be used to w).2 F(ait)-.1 E -(for the coprocess to terminate.)108 729.6 Q(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(6)195.95 E 0 Cg EP +(for the coprocess to terminate.)108 729.6 Q(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(6)190.955 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP @@ -995,18 +999,18 @@ BP /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) -.35 E(The return status of a coprocess is the e)108 84 Q(xit status of) -.15 E/F1 10/Times-Italic@0 SF(command)2.5 E F0(.)A/F2 10/Times-Bold@0 -SF(Shell Function De\214nitions)87 100.8 Q F0 2.698(As)108 112.8 S .198 -(hell function is an object that is called lik)-2.698 F 2.698(eas)-.1 G -.198(imple command and e)-2.698 F -.15(xe)-.15 G .197 +SF(Shell Function De\214nitions)87 100.8 Q F0 2.697(As)108 112.8 S .198 +(hell function is an object that is called lik)-2.697 F 2.698(eas)-.1 G +.198(imple command and e)-2.698 F -.15(xe)-.15 G .198 (cutes a compound command with).15 F 2.5(an)108 124.8 S .5 -.25(ew s) -2.5 H(et of positional parameters.).25 E (Shell functions are declared as follo)5 E(ws:)-.25 E([)108 141.6 Q F2 (function)2.5 E F0(])2.5 E F1(name)2.5 E F0(\(\))2.5 E F1 (compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ection)-.37 -E F0(])A 1.402(This de\214nes a function named)144 153.6 R F1(name)3.902 +E F0(])A 1.403(This de\214nes a function named)144 153.6 R F1(name)3.902 E F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402(ed w)-.15 F(ord)-.1 E F2 -(function)3.902 E F0 1.402(is optional.)3.902 F 1.403(If the)6.402 F F2 -(function)3.903 E F0(reserv)144 165.6 Q .162(ed w)-.15 F .162 +(function)3.902 E F0 1.402(is optional.)3.902 F 1.402(If the)6.402 F F2 +(function)3.902 E F0(reserv)144 165.6 Q .162(ed w)-.15 F .162 (ord is supplied, the parentheses are optional.)-.1 F(The)5.162 E F1 (body)2.662 E F0 .162(of the function is the compound)2.662 F(command) 144 177.6 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084 @@ -1015,17 +1019,17 @@ E F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402(ed w)-.15 F(ord)-.1 E F2 (of commands between { and }, b)2.544 F .044(ut may be an)-.2 F 2.544 (yc)-.15 G .044(ommand listed under)-2.544 F F2 .044(Compound Commands) 2.544 F F0(abo)144 201.6 Q -.15(ve)-.15 G(.).15 E F1 -(compound\255command)6.67 E F0 1.67(is e)4.17 F -.15(xe)-.15 G 1.671 +(compound\255command)6.671 E F0 1.671(is e)4.171 F -.15(xe)-.15 G 1.671 (cuted whene).15 F -.15(ve)-.25 G(r).15 E F1(name)4.171 E F0 1.671 -(is speci\214ed as the name of a simple)4.171 F 3.009(command. An)144 +(is speci\214ed as the name of a simple)4.171 F 3.008(command. An)144 213.6 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F/F3 9 /Times-Bold@0 SF(REDIRECTION)3.009 E F0(belo)2.759 E .509 -(w\) speci\214ed when a function is de\214ned are)-.25 F .58 -(performed when the function is e)144 225.6 R -.15(xe)-.15 G 3.08 -(cuted. The).15 F -.15(ex)3.081 G .581 +(w\) speci\214ed when a function is de\214ned are)-.25 F .581 +(performed when the function is e)144 225.6 R -.15(xe)-.15 G 3.081 +(cuted. The).15 F -.15(ex)3.081 G .58 (it status of a function de\214nition is zero unless a).15 F .177(synta\ x error occurs or a readonly function with the same name already e)144 -237.6 R 2.677(xists. When)-.15 F -.15(exe)2.677 G .177(cuted, the).15 F +237.6 R 2.678(xists. When)-.15 F -.15(exe)2.678 G .178(cuted, the).15 F -.15(ex)144 249.6 S .64(it status of a function is the e).15 F .64 (xit status of the last command e)-.15 F -.15(xe)-.15 G .64 (cuted in the body).15 F 5.64(.\()-.65 G(See)-5.64 E F3(FUNC-)3.14 E @@ -1034,4447 +1038,4589 @@ x error occurs or a readonly function with the same name already e)144 290.4 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282 -.15(ve s)-.25 H .982(hell in which the).15 F F2(interacti)3.482 E -.1 (ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F2(shopt)3.482 E -F0 -.2(bu)108 302.4 S .951(iltin is enabled \(see).2 F F3 .952(SHELL B) -3.451 F(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952 -(w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F2(#)3.452 E -F0 .952(causes that w)3.452 F(ord)-.1 E .605 +F0 -.2(bu)108 302.4 S .952(iltin is enabled \(see).2 F F3 .952(SHELL B) +3.452 F(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952 +(w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F2(#)3.451 E +F0 .951(causes that w)3.451 F(ord)-.1 E .604 (and all remaining characters on that line to be ignored.)108 314.4 R -.604(An interacti)5.605 F .904 -.15(ve s)-.25 H .604(hell without the) -.15 F F2(interacti)3.104 E -.1(ve)-.1 G(_com-).1 E(ments)108 326.4 Q F0 -1.336(option enabled does not allo)3.836 F 3.836(wc)-.25 G 3.836 -(omments. The)-3.836 F F2(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E -F0 1.337(option is on by def)3.837 F 1.337(ault in)-.1 F(interacti)108 +.605(An interacti)5.605 F .905 -.15(ve s)-.25 H .605(hell without the) +.15 F F2(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 326.4 Q F0 +1.337(option enabled does not allo)3.837 F 3.837(wc)-.25 G 3.836 +(omments. The)-3.837 F F2(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E +F0 1.336(option is on by def)3.836 F 1.336(ault in)-.1 F(interacti)108 338.4 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 355.2 S -.438(OT) -.11 G(ING).438 E F1(Quoting)108 367.2 Q F0 .478(is used to remo)2.978 F +.11 G(ING).438 E F1(Quoting)108 367.2 Q F0 .477(is used to remo)2.977 F .777 -.15(ve t)-.15 H .477 (he special meaning of certain characters or w).15 F .477 -(ords to the shell.)-.1 F .477(Quoting can be)5.477 F .184 +(ords to the shell.)-.1 F .478(Quoting can be)5.478 F .185 (used to disable special treatment for special characters, to pre)108 -379.2 R -.15(ve)-.25 G .185(nt reserv).15 F .185(ed w)-.15 F .185 +379.2 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184 (ords from being recognized as)-.1 F(such, and to pre)108 391.2 Q -.15 -(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .289(Each of the)108 -408 R F1(metac)2.789 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288 -(listed abo)2.789 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS) +(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .288(Each of the)108 +408 R F1(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288 +(listed abo)2.788 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS) 2.788 E F0 .288(has special meaning to the shell and must be)2.538 F -(quoted if it is to represent itself.)108 420 Q 1.344 +(quoted if it is to represent itself.)108 420 Q 1.345 (When the command history e)108 436.8 R 1.344(xpansion f)-.15 F 1.344 (acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594 -(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.595 E 1.345(w\), the) +(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.594 E 1.344(w\), the) -.25 F F1(history e)108 448.8 Q(xpansion)-.2 E F0(character)2.5 E 2.5 (,u)-.4 G(sually)-2.5 E F2(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5 E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E (There are three quoting mechanisms: the)108 465.6 Q F1(escape c)2.5 E (har)-.15 E(acter)-.15 E F0 2.5(,s).73 G -(ingle quotes, and double quotes.)-2.5 E 2.975(An)108 482.4 S .475 -(on-quoted backslash \()-2.975 F F2(\\)A F0 2.974(\)i)C 2.974(st)-2.974 +(ingle quotes, and double quotes.)-2.5 E 2.974(An)108 482.4 S .474 +(on-quoted backslash \()-2.974 F F2(\\)A F0 2.974(\)i)C 2.974(st)-2.974 G(he)-2.974 E F1 .474(escape c)2.974 F(har)-.15 E(acter)-.15 E F0 5.474 (.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474(es the literal v)-.15 F -.474(alue of the ne)-.25 F .474(xt character that)-.15 F(follo)108 494.4 -Q 1.553(ws, with the e)-.25 F 1.553(xception of . If)-.25 F(a)4.053 E F2(\\)4.053 E F0( pair appears, and the backslash is not itself)-.25 F 1.123 -(quoted, the)108 506.4 R F2(\\)3.623 E F0( pair appears, and the backslash is not itself)-.25 F 1.122 +(quoted, the)108 506.4 R F2(\\)3.622 E F0( is treated as a line continuation \(that is, it is remo)-.25 F --.15(ve)-.15 G 3.622(df).15 G 1.122(rom the input stream and)-3.622 F +-.15(ve)-.15 G 3.622(df).15 G 1.123(rom the input stream and)-3.622 F (ef)108 518.4 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295 (Enclosing characters in single quotes preserv)108 535.2 R .295 (es the literal v)-.15 F .295(alue of each character within the quotes.) -.25 F 2.795(As)5.295 G(in-)-2.795 E (gle quote may not occur between single quotes, e)108 547.2 Q -.15(ve) --.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .034 +-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .033 (Enclosing characters in double quotes preserv)108 564 R .034 (es the literal v)-.15 F .034 (alue of all characters within the quotes, with the)-.25 F -.15(ex)108 -576 S .827(ception of).15 F F2($)3.327 E F0(,)A F2<92>3.328 E F0(,)A F2 +576 S .828(ception of).15 F F2($)3.328 E F0(,)A F2<92>3.328 E F0(,)A F2 (\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828 (xpansion is enabled,)-.15 F F2(!)3.328 E F0 5.828(.T)C .828 (he characters)-5.828 F F2($)3.328 E F0(and)3.328 E F2<92>3.328 E F0 -.828(retain their special)3.328 F .075(meaning within double quotes.)108 +.827(retain their special)3.328 F .074(meaning within double quotes.)108 588 R .074(The backslash retains its special meaning only when follo) -5.075 F .074(wed by one of the)-.25 F(follo)108 600 Q .204 -(wing characters:)-.25 F F2($)2.704 E F0(,)A F2<92>2.704 E F0(,)A F2(") -3.537 E F0(,).833 E F2(\\)2.704 E F0 2.704(,o)C(r)-2.704 E F2() -2.705 E F0 5.205(.A)C .205 -(double quote may be quoted within double quotes by pre-)-2.5 F .082 +5.074 F .075(wed by one of the)-.25 F(follo)108 600 Q .205 +(wing characters:)-.25 F F2($)2.705 E F0(,)A F2<92>2.705 E F0(,)A F2(") +3.538 E F0(,).833 E F2(\\)2.705 E F0 2.705(,o)C(r)-2.705 E F2() +2.705 E F0 5.205(.A)C .204 +(double quote may be quoted within double quotes by pre-)-2.5 F .081 (ceding it with a backslash.)108 612 R .082(If enabled, history e)5.082 -F .082(xpansion will be performed unless an)-.15 F F2(!)2.581 E F0 .081 -(appearing in double)5.081 F(quotes is escaped using a backslash.)108 +F .082(xpansion will be performed unless an)-.15 F F2(!)2.582 E F0 .082 +(appearing in double)5.082 F(quotes is escaped using a backslash.)108 624 Q(The backslash preceding the)5 E F2(!)2.5 E F0(is not remo)5 E -.15 (ve)-.15 G(d.).15 E(The special parameters)108 640.8 Q F2(*)2.5 E F0 (and)2.5 E F2(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H (pecial meaning when in double quotes \(see).15 E F3 -.666(PA)2.5 G -(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 657.6 S .211 -(rds of the form).8 F F2($)2.711 E F0<08>A F1(string)A F0 2.711<0861>C -.211(re treated specially)-2.711 F 5.211(.T)-.65 G .211(he w)-5.211 F -.211(ord e)-.1 F .212(xpands to)-.15 F F1(string)2.712 E F0 2.712(,w)C -.212(ith backslash-escaped char)-2.712 F(-)-.2 E .605 -(acters replaced as speci\214ed by the ANSI C standard.)108 669.6 R .604 +(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 657.6 S .212 +(rds of the form).8 F F2($)2.712 E F0<08>A F1(string)A F0 2.712<0861>C +.211(re treated specially)-2.712 F 5.211(.T)-.65 G .211(he w)-5.211 F +.211(ord e)-.1 F .211(xpands to)-.15 F F1(string)2.711 E F0 2.711(,w)C +.211(ith backslash-escaped char)-2.711 F(-)-.2 E .604 +(acters replaced as speci\214ed by the ANSI C standard.)108 669.6 R .605 (Backslash escape sequences, if present, are decoded)5.605 F(as follo) 108 681.6 Q(ws:)-.25 E F2(\\a)144 693.6 Q F0(alert \(bell\))28.22 E F2 (\\b)144 705.6 Q F0(backspace)27.66 E F2(\\e)144 717.6 Q F0 -(an escape character)28.78 E(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(7)195.95 E 0 Cg EP +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(7)190.955 E 0 Cg EP %%Page: 8 8 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(\\f)144 84 Q F0(form feed)29.89 E F1(\\n) -144 96 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 108 Q F0 -(carriage return)28.78 E F1(\\t)144 120 Q F0(horizontal tab)29.89 E F1 -(\\v)144 132 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 144 Q F0 -(backslash)30.44 E F1<5c08>144 156 Q F0(single quote)30.44 E F1(\\)144 -168 Q/F2 10/Times-Italic@0 SF(nnn)A F0(the eight-bit character whose v) -18.22 E(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0 -(\(one to three digits\))2.5 E F1(\\x)144 180 Q F2(HH)A F0 -(the eight-bit character whose v)13.78 E(alue is the he)-.25 E -(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh) --.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\c)144 192 Q F2(x)A F0 2.5 -(ac)24.34 G(ontrol-)-2.5 E F2(x)A F0(character)2.5 E(The e)108 208.8 Q(\ -xpanded result is single-quoted, as if the dollar sign had not been pre\ -sent.)-.15 E 2.985(Ad)108 225.6 S .485 -(ouble-quoted string preceded by a dollar sign \()-2.985 F F1($)A F0 -2.986(\)w)C .486(ill cause the string to be translated according to the) --2.986 F .118(current locale.)108 237.6 R .118(If the current locale is) -5.118 F F1(C)2.618 E F0(or)2.618 E F1(POSIX)2.618 E F0 2.618(,t)C .117 -(he dollar sign is ignored.)-2.618 F .117 -(If the string is translated and)5.117 F -(replaced, the replacement is double-quoted.)108 249.6 Q/F3 10.95 -/Times-Bold@0 SF -.81(PA)72 266.4 S(RAMETERS).81 E F0(A)108 278.4 Q F2 -(par)4.592 E(ameter)-.15 E F0 .842(is an entity that stores v)4.072 F -3.342(alues. It)-.25 F .842(can be a)3.342 F F2(name)3.343 E F0 3.343 -(,an).18 G(umber)-3.343 E 3.343(,o)-.4 G 3.343(ro)-3.343 G .843 -(ne of the special characters)-3.343 F .823(listed belo)108 290.4 R +-.35 E/F1 10/Times-Bold@0 SF(\\E)144 84 Q F0(an escape character)26.55 E +F1(\\f)144 96 Q F0(form feed)29.89 E F1(\\n)144 108 Q F0(ne)27.66 E 2.5 +(wl)-.25 G(ine)-2.5 E F1(\\r)144 120 Q F0(carriage return)28.78 E F1 +(\\t)144 132 Q F0(horizontal tab)29.89 E F1(\\v)144 144 Q F0 -.15(ve) +28.22 G(rtical tab).15 E F1(\\\\)144 156 Q F0(backslash)30.44 E F1<5c08> +144 168 Q F0(single quote)30.44 E F1(\\")144 180 Q F0(double quote)27.67 +E F1(\\)144 192 Q/F2 10/Times-Italic@0 SF(nnn)A F0 +(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E +(alue)-.25 E F2(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)144 +204 Q F2(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he) +-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E +2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\c)144 216 Q F2(x)A +F0 2.5(ac)24.34 G(ontrol-)-2.5 E F2(x)A F0(character)2.5 E(The e)108 +232.8 Q(xpanded result is single-quoted, as if the dollar sign had not \ +been present.)-.15 E 2.64(Ad)108 249.6 S .14 +(ouble-quoted string preceded by a dollar sign \()-2.64 F F1($)A F0(")A +F2(string)A F0 .14("\) will cause the string to be translated according) +B .495(to the current locale.)108 261.6 R .495(If the current locale is) +5.495 F F1(C)2.995 E F0(or)2.995 E F1(POSIX)2.995 E F0 2.995(,t)C .495 +(he dollar sign is ignored.)-2.995 F .496(If the string is trans-)5.496 +F(lated and replaced, the replacement is double-quoted.)108 273.6 Q/F3 +10.95/Times-Bold@0 SF -.81(PA)72 290.4 S(RAMETERS).81 E F0(A)108 302.4 Q +F2(par)4.593 E(ameter)-.15 E F0 .843(is an entity that stores v)4.073 F +3.343(alues. It)-.25 F .843(can be a)3.343 F F2(name)3.342 E F0 3.342 +(,an).18 G(umber)-3.342 E 3.342(,o)-.4 G 3.342(ro)-3.342 G .842 +(ne of the special characters)-3.342 F .822(listed belo)108 314.4 R 3.323(wu)-.25 G(nder)-3.323 E F1 .823(Special P)3.323 F(arameters)-.1 E F0 5.823(.A)C F2(variable)-2.21 E F0 .823(is a parameter denoted by a) 3.503 F F2(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823 -(riable has a).25 F F2(value)108 302.4 Q F0 .368(and zero or more)2.868 -F F2(attrib)2.868 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369 -(utes are assigned using the)-.2 F F1(declar)2.869 E(e)-.18 E F0 -.2(bu) -2.869 G .369(iltin command \(see).2 F F1(declar)2.869 E(e)-.18 E F0 -(belo)108 314.4 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9/Times-Bold@0 SF(SHELL B) +(riable has a).25 F F2(value)108 326.4 Q F0 .369(and zero or more)2.869 +F F2(attrib)2.869 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369 +(utes are assigned using the)-.2 F F1(declar)2.868 E(e)-.18 E F0 -.2(bu) +2.868 G .368(iltin command \(see).2 F F1(declar)2.868 E(e)-.18 E F0 +(belo)108 338.4 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9/Times-Bold@0 SF(SHELL B) 2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0 -2.755(Ap)108 331.2 S .255(arameter is set if it has been assigned a v) --2.755 F 2.754(alue. The)-.25 F .254(null string is a v)2.754 F .254 -(alid v)-.25 F 2.754(alue. Once)-.25 F 2.754(av)2.754 G .254 -(ariable is set, it)-3.004 F(may be unset only by using the)108 343.2 Q +2.754(Ap)108 355.2 S .254(arameter is set if it has been assigned a v) +-2.754 F 2.754(alue. The)-.25 F .254(null string is a v)2.754 F .255 +(alid v)-.25 F 2.755(alue. Once)-.25 F 2.755(av)2.755 G .255 +(ariable is set, it)-3.005 F(may be unset only by using the)108 367.2 Q F1(unset)2.5 E F0 -.2(bu)2.5 G(iltin command \(see).2 E F4(SHELL B)2.5 E -(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 360 Q +(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 384 Q F2(variable)2.79 E F0(may be assigned to by a statement of the form)2.68 -E F2(name)144 376.8 Q F0(=[)A F2(value)A F0(])A(If)108 393.6 Q F2(value) -3.022 E F0 .232(is not gi)2.912 F -.15(ve)-.25 G .232(n, the v).15 F -.232(ariable is assigned the null string.)-.25 F(All)5.233 E F2(values) -3.023 E F0(under)3.003 E .233(go tilde e)-.18 F .233 -(xpansion, parameter)-.15 F .515(and v)108 405.6 R .515(ariable e)-.25 F +E F2(name)144 400.8 Q F0(=[)A F2(value)A F0(])A(If)108 417.6 Q F2(value) +3.023 E F0 .233(is not gi)2.913 F -.15(ve)-.25 G .233(n, the v).15 F +.232(ariable is assigned the null string.)-.25 F(All)5.232 E F2(values) +3.022 E F0(under)3.002 E .232(go tilde e)-.18 F .232 +(xpansion, parameter)-.15 F .515(and v)108 429.6 R .515(ariable e)-.25 F .515(xpansion, command substitution, arithmetic e)-.15 F .515 (xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see) --3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 417.6 Q 2.698 -(w\). If)-.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F1 +-3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 441.6 Q 2.699 +(w\). If)-.25 F .199(the v)2.699 F .199(ariable has its)-.25 F F1 (integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value) -2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .199 -(luated as an arithmetic e).25 F .199(xpression e)-.15 F -.15(ve)-.25 G -(n).15 E .902(if the $\(\(...\)\) e)108 429.6 R .902 +2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .198 +(luated as an arithmetic e).25 F .198(xpression e)-.15 F -.15(ve)-.25 G +(n).15 E .901(if the $\(\(...\)\) e)108 453.6 R .901 (xpansion is not used \(see)-.15 F F1 .901(Arithmetic Expansion)3.401 F -F0(belo)3.401 E 3.401(w\). W)-.25 F .901 -(ord splitting is not performed,)-.8 F 1.178(with the e)108 441.6 R -1.178(xception of)-.15 F F1("$@")3.678 E F0 1.178(as e)3.678 F 1.179 -(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.179(Special P) -3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179 -(xpansion is not)-.15 F 3.649(performed. Assignment)108 453.6 R 1.149 -(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F1 -(alias)3.648 E F0(,)A F1(declar)3.648 E(e)-.18 E F0(,)A F1(typeset)3.648 -E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 465.6 S(adonly).18 E F0 +F0(belo)3.401 E 3.402(w\). W)-.25 F .902 +(ord splitting is not performed,)-.8 F 1.179(with the e)108 465.6 R +1.179(xception of)-.15 F F1("$@")3.679 E F0 1.179(as e)3.679 F 1.179 +(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.178(Special P) +3.678 F(arameters)-.1 E F0 6.178(.P)C 1.178(athname e)-6.328 F 1.178 +(xpansion is not)-.15 F 3.648(performed. Assignment)108 477.6 R 1.148 +(statements may also appear as ar)3.648 F 1.149(guments to the)-.18 F F1 +(alias)3.649 E F0(,)A F1(declar)3.649 E(e)-.18 E F0(,)A F1(typeset)3.649 +E F0(,)A F1(export)3.649 E F0(,)A F1 -.18(re)108 489.6 S(adonly).18 E F0 2.5(,a)C(nd)-2.5 E F1(local)2.5 E F0 -.2(bu)2.5 G(iltin commands.).2 E -.376(In the conte)108 482.4 R .376 +.377(In the conte)108 506.4 R .377 (xt where an assignment statement is assigning a v)-.15 F .376 -(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377 +(alue to a shell v)-.25 F .376(ariable or array inde)-.25 F .376 (x, the +=)-.15 F .257 -(operator can be used to append to or add to the v)108 494.4 R(ariable') +(operator can be used to append to or add to the v)108 518.4 R(ariable') -.25 E 2.757(sp)-.55 G(re)-2.757 E .257(vious v)-.25 F 2.757(alue. When) --.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .372 -(for which the inte)108 506.4 R .372(ger attrib)-.15 F .372 +-.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .373 +(for which the inte)108 530.4 R .373(ger attrib)-.15 F .372 (ute has been set,)-.2 F F2(value)2.872 E F0 .372(is e)2.872 F -.25(va) --.25 G .372(luated as an arithmetic e).25 F .373 -(xpression and added to the)-.15 F -.25(va)108 518.4 S(riable').25 E -2.889(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F +-.25 G .372(luated as an arithmetic e).25 F .372 +(xpression and added to the)-.15 F -.25(va)108 542.4 S(riable').25 E +2.888(sc)-.55 G .388(urrent v)-2.888 F .388(alue, which is also e)-.25 F -.25(va)-.25 G 2.889(luated. When).25 F .389 -(+= is applied to an array v)2.889 F .388(ariable using compound)-.25 F -.185(assignment \(see)108 530.4 R F1(Arrays)2.685 E F0(belo)2.685 E .185 +(+= is applied to an array v)2.889 F .389(ariable using compound)-.25 F +.186(assignment \(see)108 554.4 R F1(Arrays)2.686 E F0(belo)2.686 E .186 (w\), the v)-.25 F(ariable')-.25 E 2.685(sv)-.55 G .185 -(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.686(wv) --.25 G .186(alues are)-2.936 F 1.385(appended to the array be)108 542.4 -R 1.384(ginning at one greater than the array')-.15 F 3.884(sm)-.55 G -1.384(aximum inde)-3.884 F 3.884(x\()-.15 G 1.384(for inde)-3.884 F -.15 -(xe)-.15 G 3.884(da).15 G 1.384(rrays\) or)-3.884 F .122 -(added as additional k)108 554.4 R -.15(ey)-.1 G.15 E .122 +(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.685(wv) +-.25 G .185(alues are)-2.935 F 1.384(appended to the array be)108 566.4 +R 1.384(ginning at one greater than the array')-.15 F 3.885(sm)-.55 G +1.385(aximum inde)-3.885 F 3.885(x\()-.15 G 1.385(for inde)-3.885 F -.15 +(xe)-.15 G 3.885(da).15 G 1.385(rrays\) or)-3.885 F .123 +(added as additional k)108 578.4 R -.15(ey)-.1 G.15 E .123 (alue pairs in an associati)-.25 F .423 -.15(ve a)-.25 H(rray).15 E -5.123(.W)-.65 G .123(hen applied to a string-v)-5.123 F .123(alued v) --.25 F(ariable,)-.25 E F2(value)2.623 E F0(is e)108 566.4 Q +5.123(.W)-.65 G .122(hen applied to a string-v)-5.123 F .122(alued v) +-.25 F(ariable,)-.25 E F2(value)2.622 E F0(is e)108 590.4 Q (xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G -(alue.)-2.75 E F1 -.2(Po)87 583.2 S(sitional P).2 E(arameters)-.1 E F0 -(A)108 595.2 Q F2 .706(positional par)4.456 F(ameter)-.15 E F0 .706(is \ +(alue.)-2.75 E F1 -.2(Po)87 607.2 S(sitional P).2 E(arameters)-.1 E F0 +(A)108 619.2 Q F2 .705(positional par)4.455 F(ameter)-.15 E F0 .706(is \ a parameter denoted by one or more digits, other than the single digit \ -0.)3.936 F(Posi-)5.705 E .444 -(tional parameters are assigned from the shell')108 607.2 R 2.944(sa) +0.)3.935 F(Posi-)5.706 E .445 +(tional parameters are assigned from the shell')108 631.2 R 2.944(sa) -.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1 -(ke).2 G .445(d, and may be reassigned using).1 F(the)108 619.2 Q F1 -(set)3.334 E F0 -.2(bu)3.334 G .834(iltin command.).2 F .833(Positional\ - parameters may not be assigned to with assignment statements.)5.834 F -(The)5.833 E .334(positional parameters are temporarily replaced when a\ - shell function is e)108 631.2 R -.15(xe)-.15 G .334(cuted \(see).15 F -F4(FUNCTIONS)2.834 E F0(belo)2.584 E(w\).)-.25 E 1.404(When a positiona\ -l parameter consisting of more than a single digit is e)108 648 R 1.403 -(xpanded, it must be enclosed in)-.15 F(braces \(see)108 660 Q F4(EXP) -2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1(Special P)87 676.8 Q -(arameters)-.1 E F0 1.674(The shell treats se)108 688.8 R -.15(ve)-.25 G -1.674(ral parameters specially).15 F 6.675(.T)-.65 G 1.675 +(ke).2 G .444(d, and may be reassigned using).1 F(the)108 643.2 Q F1 +(set)3.333 E F0 -.2(bu)3.333 G .833(iltin command.).2 F .834(Positional\ + parameters may not be assigned to with assignment statements.)5.833 F +(The)5.834 E .334(positional parameters are temporarily replaced when a\ + shell function is e)108 655.2 R -.15(xe)-.15 G .333(cuted \(see).15 F +F4(FUNCTIONS)2.833 E F0(belo)2.583 E(w\).)-.25 E 1.403(When a positiona\ +l parameter consisting of more than a single digit is e)108 672 R 1.404 +(xpanded, it must be enclosed in)-.15 F(braces \(see)108 684 Q F4(EXP) +2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1(Special P)87 700.8 Q +(arameters)-.1 E F0 1.675(The shell treats se)108 712.8 R -.15(ve)-.25 G +1.675(ral parameters specially).15 F 6.675(.T)-.65 G 1.674 (hese parameters may only be referenced; assignment to)-6.675 F -(them is not allo)108 700.8 Q(wed.)-.25 E F1(*)108 712.8 Q F0 .606 -(Expands to the positional parameters, starting from one.)31 F .605 -(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F 1.432 -(ble quotes, it e)144 724.8 R 1.432(xpands to a single w)-.15 F 1.432 -(ord with the v)-.1 F 1.433 -(alue of each parameter separated by the \214rst)-.25 F(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(8)195.95 E 0 Cg EP +(them is not allo)108 724.8 Q(wed.)-.25 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(8)190.955 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .335(character of the)144 84 R/F1 9/Times-Bold@0 SF(IFS)2.835 E -F0 .335(special v)2.585 F 2.835(ariable. That)-.25 F .335(is, ")2.835 F -/F2 10/Times-Bold@0 SF($*)A F0 2.834("i)C 2.834(se)-2.834 G(qui)-2.834 E --.25(va)-.25 G .334(lent to ").25 F F2($1)A/F3 10/Times-Italic@0 SF(c)A -F2($2)A F3(c)A F2(...)A F0 .334(", where)B F3(c)3.034 E F0 .334 -(is the \214rst)3.144 F .487(character of the v)144 96 R .487 -(alue of the)-.25 F F1(IFS)2.987 E F0 -.25(va)2.737 G 2.987(riable. If) -.25 F F1(IFS)2.987 E F0 .487 -(is unset, the parameters are separated by spaces.)2.737 F(If)144 108 Q -F1(IFS)2.5 E F0(is null, the parameters are joined without interv)2.25 E -(ening separators.)-.15 E F2(@)108 120 Q F0 .606 -(Expands to the positional parameters, starting from one.)26.7 F .605 -(When the e)5.605 F .605(xpansion occurs within dou-)-.15 F .113 -(ble quotes, each parameter e)144 132 R .113(xpands to a separate w)-.15 -F 2.614(ord. That)-.1 F .114(is, ")2.614 F F2($@)A F0 2.614("i)C 2.614 -(se)-2.614 G(qui)-2.614 E -.25(va)-.25 G .114(lent to ").25 F F2($1)A F0 -2.614("")C F2($2)-2.614 E F0 2.614(".)C(..)-2.614 E .135 -(If the double-quoted e)144 144 R .135(xpansion occurs within a w)-.15 F -.135(ord, the e)-.1 F .134(xpansion of the \214rst parameter is joined) --.15 F .15(with the be)144 156 R .15(ginning part of the original w)-.15 -F .151(ord, and the e)-.1 F .151 -(xpansion of the last parameter is joined with)-.15 F .338 -(the last part of the original w)144 168 R 2.838(ord. When)-.1 F .337 -(there are no positional parameters, ")2.838 F F2($@)A F0 2.837("a)C(nd) --2.837 E F2($@)2.837 E F0 -.15(ex)2.837 G(pand).15 E -(to nothing \(i.e., the)144 180 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve) --.15 G(d\).).15 E F2(#)108 192 Q F0 -(Expands to the number of positional parameters in decimal.)31 E F2(?) -108 204 Q F0(Expands to the e)31 E(xit status of the most recently e) --.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F2108 -216 Q F0 .881 +-.35 E/F1 10/Times-Bold@0 SF(*)108 84 Q F0 .605 +(Expands to the positional parameters, starting from one.)31 F .606 +(When the e)5.605 F .606(xpansion occurs within dou-)-.15 F .084 +(ble quotes, it e)144 96 R .084(xpands to a single w)-.15 F .084 +(ord with the v)-.1 F .084 +(alue of each parameter separated by the \214rst char)-.25 F(-)-.2 E +.003(acter of the)144 108 R/F2 9/Times-Bold@0 SF(IFS)2.503 E F0 .003 +(special v)2.253 F 2.503(ariable. That)-.25 F .003(is, ")2.503 F F1($*)A +F0 2.503("i)C 2.503(se)-2.503 G(qui)-2.503 E -.25(va)-.25 G .003 +(lent to ").25 F F1($1)A/F3 10/Times-Italic@0 SF(c)A F1($2)A F3(c)A F1 +(...)A F0 .003(", where)B F3(c)2.703 E F0 .004(is the \214rst char)2.813 +F(-)-.2 E .769(acter of the v)144 120 R .769(alue of the)-.25 F F2(IFS) +3.269 E F0 -.25(va)3.019 G 3.269(riable. If).25 F F2(IFS)3.268 E F0 .768 +(is unset, the parameters are separated by spaces.)3.018 F(If)5.768 E F2 +(IFS)144 132 Q F0(is null, the parameters are joined without interv)2.25 +E(ening separators.)-.15 E F1(@)108 144 Q F0 .605 +(Expands to the positional parameters, starting from one.)26.7 F .606 +(When the e)5.605 F .606(xpansion occurs within dou-)-.15 F .114 +(ble quotes, each parameter e)144 156 R .114(xpands to a separate w)-.15 +F 2.614(ord. That)-.1 F .113(is, ")2.613 F F1($@)A F0 2.613("i)C 2.613 +(se)-2.613 G(qui)-2.613 E -.25(va)-.25 G .113(lent to ").25 F F1($1)A F0 +2.613("")C F1($2)-2.613 E F0 2.613(".)C(..)-2.613 E .134 +(If the double-quoted e)144 168 R .134(xpansion occurs within a w)-.15 F +.135(ord, the e)-.1 F .135(xpansion of the \214rst parameter is joined) +-.15 F .151(with the be)144 180 R .151(ginning part of the original w) +-.15 F .151(ord, and the e)-.1 F .15 +(xpansion of the last parameter is joined with)-.15 F .337 +(the last part of the original w)144 192 R 2.837(ord. When)-.1 F .338 +(there are no positional parameters, ")2.837 F F1($@)A F0 2.838("a)C(nd) +-2.838 E F1($@)2.838 E F0 -.15(ex)2.838 G(pand).15 E +(to nothing \(i.e., the)144 204 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve) +-.15 G(d\).).15 E F1(#)108 216 Q F0 +(Expands to the number of positional parameters in decimal.)31 E F1(?) +108 228 Q F0(Expands to the e)31 E(xit status of the most recently e) +-.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F1108 +240 Q F0 .882 (Expands to the current option \215ags as speci\214ed upon in)30.3 F -.2 -(vo)-.4 G .881(cation, by the).2 F F2(set)3.382 E F0 -.2(bu)3.382 G .882 +(vo)-.4 G .881(cation, by the).2 F F1(set)3.381 E F0 -.2(bu)3.381 G .881 (iltin command, or).2 F(those set by the shell itself \(such as the)144 -228 Q F22.5 E F0(option\).)2.5 E F2($)108 240 Q F0 .214 +252 Q F12.5 E F0(option\).)2.5 E F1($)108 264 Q F0 .214 (Expands to the process ID of the shell.)31 F .214 (In a \(\) subshell, it e)5.214 F .214 (xpands to the process ID of the current)-.15 F -(shell, not the subshell.)144 252 Q F2(!)108 264 Q F0 +(shell, not the subshell.)144 276 Q F1(!)108 288 Q F0 (Expands to the process ID of the most recently e)32.67 E -.15(xe)-.15 G -(cuted background \(asynchronous\) command.).15 E F2(0)108 276 Q F0 -1.691(Expands to the name of the shell or shell script.)31 F 1.692 -(This is set at shell initialization.)6.692 F(If)6.692 E F2(bash)4.192 E -F0(is)4.192 E(in)144 288 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578 -(ith a \214le of commands,)-3.078 F F2($0)3.078 E F0 .578 -(is set to the name of that \214le.)3.078 F(If)5.577 E F2(bash)3.077 E -F0 .577(is started with the)3.077 F F23.077 E F0 .368 -(option, then)144 300 R F2($0)2.869 E F0 .369(is set to the \214rst ar) +(cuted background \(asynchronous\) command.).15 E F1(0)108 300 Q F0 +1.692(Expands to the name of the shell or shell script.)31 F 1.691 +(This is set at shell initialization.)6.692 F(If)6.691 E F1(bash)4.191 E +F0(is)4.191 E(in)144 312 Q -.2(vo)-.4 G -.1(ke).2 G 3.077(dw).1 G .577 +(ith a \214le of commands,)-3.077 F F1($0)3.077 E F0 .578 +(is set to the name of that \214le.)3.077 F(If)5.578 E F1(bash)3.078 E +F0 .578(is started with the)3.078 F F13.078 E F0 .369 +(option, then)144 324 R F1($0)2.869 E F0 .369(is set to the \214rst ar) 2.869 F .369(gument after the string to be e)-.18 F -.15(xe)-.15 G .369 -(cuted, if one is present.).15 F(Other)5.369 E(-)-.2 E -(wise, it is set to the \214le name used to in)144 312 Q -.2(vo)-.4 G --.1(ke).2 G F2(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5 -H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F2(_)108 -324 Q F0 .055(At shell startup, set to the absolute pathname used to in) -31 F -.2(vo)-.4 G .255 -.1(ke t).2 H .054 -(he shell or shell script being e).1 F -.15(xe)-.15 G(cuted).15 E .691 -(as passed in the en)144 336 R .691(vironment or ar)-.4 F .691 -(gument list.)-.18 F(Subsequently)5.691 E 3.191(,e)-.65 G .692 -(xpands to the last ar)-3.341 F .692(gument to the)-.18 F(pre)144 348 Q -.571(vious command, after e)-.25 F 3.071(xpansion. Also)-.15 F .571 -(set to the full pathname used to in)3.071 F -.2(vo)-.4 G .77 -.1(ke e) -.2 H .57(ach command).1 F -.15(exe)144 360 S 1.6 +(cuted, if one is present.).15 F(Other)5.368 E(-)-.2 E +(wise, it is set to the \214le name used to in)144 336 Q -.2(vo)-.4 G +-.1(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5 +H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F1(_)108 +348 Q F0 .054(At shell startup, set to the absolute pathname used to in) +31 F -.2(vo)-.4 G .255 -.1(ke t).2 H .055 +(he shell or shell script being e).1 F -.15(xe)-.15 G(cuted).15 E .692 +(as passed in the en)144 360 R .692(vironment or ar)-.4 F .691 +(gument list.)-.18 F(Subsequently)5.691 E 3.191(,e)-.65 G .691 +(xpands to the last ar)-3.341 F .691(gument to the)-.18 F(pre)144 372 Q +.57(vious command, after e)-.25 F 3.07(xpansion. Also)-.15 F .571 +(set to the full pathname used to in)3.071 F -.2(vo)-.4 G .771 -.1(ke e) +.2 H .571(ach command).1 F -.15(exe)144 384 S 1.6 (cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6 (xported to that command.)-.15 F 1.6(When checking mail, this)6.6 F (parameter holds the name of the mail \214le currently being check)144 -372 Q(ed.)-.1 E F2(Shell V)87 388.8 Q(ariables)-.92 E F0(The follo)108 -400.8 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F2 -.3(BA) -108 417.6 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E --.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F2(bash)2.5 E F0(.)A -F2 -.3(BA)108 429.6 S(SHPID).3 E F0 .361 -(Expands to the process id of the current)144 441.6 R F2(bash)2.861 E F0 -2.861(process. This)2.861 F(dif)2.86 E .36(fers from)-.25 F F2($$)2.86 E -F0 .36(under certain circum-)2.86 F -(stances, such as subshells that do not require)144 453.6 Q F2(bash)2.5 -E F0(to be re-initialized.)2.5 E F2 -.3(BA)108 465.6 S(SH_ALIASES).3 E -F0 1.195(An associati)144 477.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v) +396 Q(ed.)-.1 E F1(Shell V)87 412.8 Q(ariables)-.92 E F0(The follo)108 +424.8 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F1 -.3(BA) +108 441.6 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E +-.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A +F1 -.3(BA)108 453.6 S(SHOPTS).3 E F0 2.548(Ac)144 465.6 S .049 +(olon-separated list of enabled shell options.)-2.548 F .049(Each w) +5.049 F .049(ord in the list is a v)-.1 F .049(alid ar)-.25 F .049 +(gument for the)-.18 F F12.549 E F0 1.398(option to the)144 477.6 +R F1(shopt)3.898 E F0 -.2(bu)3.898 G 1.398(iltin command \(see).2 F F2 +1.398(SHELL B)3.898 F(UIL)-.09 E 1.398(TIN COMMANDS)-.828 F F0(belo) +3.648 E 3.898(w\). The)-.25 F(options)3.898 E .476(appearing in)144 +489.6 R F2 -.27(BA)2.976 G(SHOPTS).27 E F0 .476(are those reported as) +2.726 F F3(on)3.206 E F0(by)3.217 E F1(shopt)2.977 E F0 5.477(.I)C 2.977 +(ft)-5.477 G .477(his v)-2.977 F .477(ariable is in the en)-.25 F +(vironment)-.4 E(when)144 501.6 Q F1(bash)3.142 E F0 .642(starts up, ea\ +ch shell option in the list will be enabled before reading an)3.142 F +3.141(ys)-.15 G .641(tartup \214les.)-3.141 F(This v)144 513.6 Q +(ariable is read-only)-.25 E(.)-.65 E F1 -.3(BA)108 525.6 S(SHPID).3 E +F0 .36(Expands to the process id of the current)144 537.6 R F1(bash) +2.861 E F0 2.861(process. This)2.861 F(dif)2.861 E .361(fers from)-.25 F +F1($$)2.861 E F0 .361(under certain circum-)2.861 F +(stances, such as subshells that do not require)144 549.6 Q F1(bash)2.5 +E F0(to be re-initialized.)2.5 E F1 -.3(BA)108 561.6 S(SH_ALIASES).3 E +F0 1.195(An associati)144 573.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v) .15 F 1.195(ariable whose members correspond to the internal list of al\ -iases as main-)-.25 F .319(tained by the)144 489.6 R F2(alias)2.819 E F0 --.2(bu)2.819 G .318(iltin Elements added to this array appear in the al\ +iases as main-)-.25 F .318(tained by the)144 585.6 R F1(alias)2.818 E F0 +-.2(bu)2.818 G .318(iltin Elements added to this array appear in the al\ ias list; unsetting array ele-).2 F(ments cause aliases to be remo)144 -501.6 Q -.15(ve)-.15 G 2.5(df).15 G(rom the alias list.)-2.5 E F2 -.3 -(BA)108 513.6 S(SH_ARGC).3 E F0 .934(An array v)144 525.6 R .934 +597.6 Q -.15(ve)-.15 G 2.5(df).15 G(rom the alias list.)-2.5 E F1 -.3 +(BA)108 609.6 S(SH_ARGC).3 E F0 .935(An array v)144 621.6 R .935 (ariable whose v)-.25 F .934 (alues are the number of parameters in each frame of the current)-.25 F -F2(bash)3.435 E F0 -.15(exe)144 537.6 S .535(cution call stack.).15 F +F1(bash)3.434 E F0 -.15(exe)144 633.6 S .535(cution call stack.).15 F .535(The number of parameters to the current subroutine \(shell functio\ -n or script)5.535 F -.15(exe)144 549.6 S .141(cuted with).15 F F2(.) -2.641 E F0(or)2.641 E F2(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa) --2.641 G 2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142 -(When a subroutine is e)5.142 F -.15(xe)-.15 G .142 -(cuted, the number of).15 F 1.525(parameters passed is pushed onto)144 -561.6 R F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 6.524(.T)C 1.524 -(he shell sets)-6.524 F F2 -.3(BA)4.024 G(SH_ARGC).3 E F0 1.524 -(only when in)4.024 F -.15(ex)144 573.6 S(tended deb).15 E -(ugging mode \(see the description of the)-.2 E F2(extdeb)2.5 E(ug)-.2 E -F0(option to the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E -(w\))-.25 E F2 -.3(BA)108 585.6 S(SH_ARGV).3 E F0 .979(An array v)144 -597.6 R .979(ariable containing all of the parameters in the current) --.25 F F2(bash)3.48 E F0 -.15(exe)3.48 G .98(cution call stack.).15 F -(The)5.98 E .275(\214nal parameter of the last subroutine call is at th\ -e top of the stack; the \214rst parameter of the initial)144 609.6 R -1.424(call is at the bottom.)144 621.6 R 1.424(When a subroutine is e) +n or script)5.535 F -.15(exe)144 645.6 S .142(cuted with).15 F F1(.) +2.642 E F0(or)2.642 E F1(sour)2.642 E(ce)-.18 E F0 2.642(\)i)C 2.642(sa) +-2.642 G 2.642(tt)-2.642 G .142(he top of the stack.)-2.642 F .141 +(When a subroutine is e)5.141 F -.15(xe)-.15 G .141 +(cuted, the number of).15 F 2.63(parameters passed is pushed onto)144 +657.6 R F2 -.27(BA)5.13 G(SH_ARGC).27 E/F4 9/Times-Roman@0 SF(.)A F0 +2.63(The shell sets)7.13 F F2 -.27(BA)5.131 G(SH_ARGC).27 E F0 2.631 +(only when in)4.881 F -.15(ex)144 669.6 S(tended deb).15 E +(ugging mode \(see the description of the)-.2 E F1(extdeb)2.5 E(ug)-.2 E +F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E +(w\))-.25 E F1 -.3(BA)108 681.6 S(SH_ARGV).3 E F0 .98(An array v)144 +693.6 R .979(ariable containing all of the parameters in the current) +-.25 F F1(bash)3.479 E F0 -.15(exe)3.479 G .979(cution call stack.).15 F +(The)5.979 E .275(\214nal parameter of the last subroutine call is at t\ +he top of the stack; the \214rst parameter of the initial)144 705.6 R +1.424(call is at the bottom.)144 717.6 R 1.424(When a subroutine is e) 6.424 F -.15(xe)-.15 G 1.424 -(cuted, the parameters supplied are pushed onto).15 F F2 -.3(BA)144 -633.6 S(SH_ARGV).3 E F0 6.091(.T)C 1.091(he shell sets)-6.091 F F2 -.3 -(BA)3.591 G(SH_ARGV).3 E F0 1.091(only when in e)3.591 F 1.091 -(xtended deb)-.15 F 1.09(ugging mode \(see the)-.2 F(description of the) -144 645.6 Q F2(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F2(shopt)2.5 -E F0 -.2(bu)2.5 G(iltin belo).2 E(w\))-.25 E F2 -.3(BA)108 657.6 S -(SH_CMDS).3 E F0 .667(An associati)144 669.6 R .967 -.15(ve a)-.25 H -.667(rray v).15 F .668(ariable whose members correspond to the internal\ - hash table of commands)-.25 F .147(as maintained by the)144 681.6 R F2 -(hash)2.647 E F0 -.2(bu)2.646 G 2.646(iltin. Elements).2 F .146 -(added to this array appear in the hash table; unsetting)2.646 F -(array elements cause commands to be remo)144 693.6 Q -.15(ve)-.15 G 2.5 -(df).15 G(rom the hash table.)-2.5 E F2 -.3(BA)108 705.6 S(SH_COMMAND).3 -E F0 1.242(The command currently being e)144 717.6 R -.15(xe)-.15 G -1.243(cuted or about to be e).15 F -.15(xe)-.15 G 1.243 -(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F -(command as the result of a trap, in which case it is the command e)144 -729.6 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(9)195.95 E 0 Cg EP +(cuted, the parameters supplied are pushed onto).15 F F2 -.27(BA)144 +729.6 S(SH_ARGV).27 E F4(.)A F0 2.197(The shell sets)6.697 F F2 -.27(BA) +4.697 G(SH_ARGV).27 E F0 2.197(only when in e)4.447 F 2.197(xtended deb) +-.15 F 2.197(ugging mode \(see the)-.2 F(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(9)190.955 E 0 Cg EP %%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_EXECUTION_STRING).3 E F0 -(The command ar)144 96 Q(gument to the)-.18 E F12.5 E F0(in)2.5 E --.2(vo)-.4 G(cation option.).2 E F1 -.3(BA)108 108 S(SH_LINENO).3 E F0 -.034(An array v)144 120 R .034(ariable whose members are the line numbe\ -rs in source \214les corresponding to each mem-)-.25 F 2.944(ber of)144 -132 R F1(FUNCN)5.444 E(AME)-.2 E F0(.)A F1(${B)7.944 E(ASH_LINENO[)-.3 E -/F2 10/Times-Italic@0 SF($i)A F1(]})A F0 2.944 -(is the line number in the source \214le where)5.444 F F1(${FUNCN)144 -144 Q(AME[)-.2 E F2($i)A F1(]})A F0 -.1(wa)3.312 G 3.311(sc).1 G .811 -(alled \(or)-3.311 F F1(${B)3.311 E(ASH_LINENO[)-.3 E F2($i-1)A F1(]})A -F0 .811(if referenced within another shell)3.311 F 4.567 -(function\). The)144 156 R 2.067(corresponding source \214le name is) -4.567 F F1(${B)4.567 E(ASH_SOURCE[)-.3 E F2($i)A F1(]})A F0 7.067(.U)C -(se)-7.067 E F1(LINENO)4.567 E F0(to)4.567 E -(obtain the current line number)144 168 Q(.)-.55 E F1 -.3(BA)108 180 S -(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144 192 R .006 -(ariable whose members are assigned by the)-.25 F F1(=~)2.506 E F0 .005 -(binary operator to the)2.506 F F1([[)2.505 E F0 .005(conditional com-) -2.505 F 2.506(mand. The)144 204 R .007(element with inde)2.506 F 2.507 +-.35 E(description of the)144 84 Q/F1 10/Times-Bold@0 SF(extdeb)2.5 E +(ug)-.2 E F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G +(iltin belo).2 E(w\))-.25 E F1 -.3(BA)108 96 S(SH_CMDS).3 E F0 .668 +(An associati)144 108 R .968 -.15(ve a)-.25 H .668(rray v).15 F .668(ar\ +iable whose members correspond to the internal hash table of commands) +-.25 F .146(as maintained by the)144 120 R F1(hash)2.646 E F0 -.2(bu) +2.646 G 2.646(iltin. Elements).2 F .146 +(added to this array appear in the hash table; unsetting)2.646 F +(array elements cause commands to be remo)144 132 Q -.15(ve)-.15 G 2.5 +(df).15 G(rom the hash table.)-2.5 E F1 -.3(BA)108 144 S(SH_COMMAND).3 E +F0 1.243(The command currently being e)144 156 R -.15(xe)-.15 G 1.243 +(cuted or about to be e).15 F -.15(xe)-.15 G 1.242 +(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.242(cuting a).15 F +(command as the result of a trap, in which case it is the command e)144 +168 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108 +180 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 192 Q +(gument to the)-.18 E F12.5 E F0(in)2.5 E -.2(vo)-.4 G +(cation option.).2 E F1 -.3(BA)108 204 S(SH_LINENO).3 E F0 .034 +(An array v)144 216 R .034(ariable whose members are the line numbers i\ +n source \214les corresponding to each mem-)-.25 F 3.491(ber of)144 228 +R/F2 9/Times-Bold@0 SF(FUNCN)5.991 E(AME)-.18 E/F3 9/Times-Roman@0 SF(.) +A F1(${B)7.991 E(ASH_LINENO[)-.3 E/F4 10/Times-Italic@0 SF($i)A F1(]})A +F0 3.491(is the line number in the source \214le where)5.991 F F1 +(${FUNCN)144 240 Q(AME[)-.2 E F4($i)A F1(]})A F0 -.1(wa)3.311 G 3.311 +(sc).1 G .811(alled \(or)-3.311 F F1(${B)3.311 E(ASH_LINENO[)-.3 E F4 +($i-1)A F1(]})A F0 .811(if referenced within another shell)3.311 F 4.987 +(function\). The)144 252 R 2.487(corresponding source \214le name is) +4.987 F F1(${B)4.986 E(ASH_SOURCE[)-.3 E F4($i)A F1(]})A F0 7.486(.U)C +(se)-7.486 E F2(LINENO)4.986 E F0(to)4.736 E +(obtain the current line number)144 264 Q(.)-.55 E F1 -.3(BA)108 276 S +(SH_REMA).3 E(TCH)-.95 E F0 .005(An array v)144 288 R .005 +(ariable whose members are assigned by the)-.25 F F1(=~)2.506 E F0 .006 +(binary operator to the)2.506 F F1([[)2.506 E F0 .006(conditional com-) +2.506 F 2.507(mand. The)144 300 R .007(element with inde)2.507 F 2.507 (x0i)-.15 G 2.507(st)-2.507 G .007 -(he portion of the string matching the entire re)-2.507 F .007(gular e) --.15 F(xpression.)-.15 E .998(The element with inde)144 216 R(x)-.15 E -F2(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F -F2(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E 2.5 -(sion. This)144 228 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E -F1 -.3(BA)108 240 S(SH_SOURCE).3 E F0 .889(An array v)144 252 R .889(ar\ -iable whose members are the source \214lenames corresponding to the ele\ -ments in the)-.25 F F1(FUNCN)144 264 Q(AME)-.2 E F0(array v)2.5 E -(ariable.)-.25 E F1 -.3(BA)108 276 S(SH_SUBSHELL).3 E F0 .402 -(Incremented by one each time a subshell or subshell en)144 288 R .401 -(vironment is spa)-.4 F 2.901(wned. The)-.15 F .401(initial v)2.901 F -.401(alue is)-.25 F(0.)144 300 Q F1 -.3(BA)108 312 S(SH_VERSINFO).3 E F0 -2.644(Ar)144 324 S .144(eadonly array v)-2.644 F .144 +(he portion of the string matching the entire re)-2.507 F .006(gular e) +-.15 F(xpression.)-.15 E .997(The element with inde)144 312 R(x)-.15 E +F4(n)3.497 E F0 .997(is the portion of the string matching the)3.497 F +F4(n)3.498 E F0 .998(th parenthesized sube)B(xpres-)-.15 E 2.5 +(sion. This)144 324 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E +F1 -.3(BA)108 336 S(SH_SOURCE).3 E F0 .89(An array v)144 348 R .889(ari\ +able whose members are the source \214lenames corresponding to the elem\ +ents in the)-.25 F F2(FUNCN)144 360 Q(AME)-.18 E F0(array v)2.25 E +(ariable.)-.25 E F1 -.3(BA)108 372 S(SH_SUBSHELL).3 E F0 .401 +(Incremented by one each time a subshell or subshell en)144 384 R .401 +(vironment is spa)-.4 F 2.902(wned. The)-.15 F .402(initial v)2.902 F +.402(alue is)-.25 F(0.)144 396 Q F1 -.3(BA)108 408 S(SH_VERSINFO).3 E F0 +2.645(Ar)144 420 S .145(eadonly array v)-2.645 F .144 (ariable whose members hold v)-.25 F .144 -(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145 -(.T)C(he)-5.145 E -.25(va)144 336 S +(ersion information for this instance of)-.15 F F1(bash)2.644 E F0 5.144 +(.T)C(he)-5.144 E -.25(va)144 432 S (lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3 -(BA)144 354 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E -(ersion number \(the)-.15 E F2 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3 -(BA)144 366 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E -(ersion number \(the)-.15 E F2(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA) -144 378 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15 -(ve)-.25 G(l.).15 E F1 -.3(BA)144 390 S(SH_VERSINFO[).3 E F0(3)A F1(])A -F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 402 S +(BA)144 450 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E +(ersion number \(the)-.15 E F4 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3 +(BA)144 462 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E +(ersion number \(the)-.15 E F4(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA) +144 474 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15 +(ve)-.25 G(l.).15 E F1 -.3(BA)144 486 S(SH_VERSINFO[).3 E F0(3)A F1(])A +F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 498 S (SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)24.74 E -F2(beta1)2.5 E F0(\).)A F1 -.3(BA)144 414 S(SH_VERSINFO[).3 E F0(5)A F1 -(])A F0(The v)24.74 E(alue of)-.25 E F1(MA)2.5 E(CHTYPE)-.55 E F0(.)A F1 --.3(BA)108 430.8 S(SH_VERSION).3 E F0 -(Expands to a string describing the v)144 442.8 Q +F4(beta1)2.5 E F0(\).)A F1 -.3(BA)144 510 S(SH_VERSINFO[).3 E F0(5)A F1 +(])A F0(The v)24.74 E(alue of)-.25 E F2(MA)2.5 E(CHTYPE)-.495 E F3(.)A +F1 -.3(BA)108 526.8 S(SH_VERSION).3 E F0 +(Expands to a string describing the v)144 538.8 Q (ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108 -459.6 Q(ORD)-.1 E F0 .397(An inde)144 471.6 R 2.897(xi)-.15 G(nto)-2.897 +555.6 Q(ORD)-.1 E F0 .396(An inde)144 567.6 R 2.896(xi)-.15 G(nto)-2.896 E F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396 -(ord containing the current cursor position.)-.1 F .396(This v)5.396 F -(ari-)-.25 E 1.18(able is a)144 483.6 R -.25(va)-.2 G 1.181 +(ord containing the current cursor position.)-.1 F .397(This v)5.397 F +(ari-)-.25 E 1.181(able is a)144 579.6 R -.25(va)-.2 G 1.181 (ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681 -(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F -1.181(acilities \(see)-.1 F F1(Pr)144 495.6 Q(ogrammable Completion)-.18 -E F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 512.4 Q F0(The k)144 524.4 Q +(db).1 G 3.681(yt)-3.681 G 1.18(he programmable completion f)-3.681 F +1.18(acilities \(see)-.1 F F1(Pr)144 591.6 Q(ogrammable Completion)-.18 +E F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 608.4 Q F0(The k)144 620.4 Q .3 -.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G .3 -.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t) -.2 H(he current completion function.).1 E F1(COMP_LINE)108 541.2 Q F0 -1.208(The current command line.)144 553.2 R 1.208(This v)6.208 F 1.208 +.2 H(he current completion function.).1 E F1(COMP_LINE)108 637.2 Q F0 +1.207(The current command line.)144 649.2 R 1.208(This v)6.208 F 1.208 (ariable is a)-.25 F -.25(va)-.2 G 1.208 -(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F -2.848(mands in)144 565.2 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349 +(ilable only in shell functions and e).25 F 1.208(xternal com-)-.15 F +2.849(mands in)144 661.2 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349 (yt)-5.349 G 2.849(he programmable completion f)-5.349 F 2.849 -(acilities \(see)-.1 F F1(Pr)5.349 E 2.849(ogrammable Completion)-.18 F -F0(belo)144 577.2 Q(w\).)-.25 E F1(COMP_POINT)108 594 Q F0 .667 -(The inde)144 606 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666 -(he current cursor position relati)-3.167 F .966 -.15(ve t)-.25 H 3.166 +(acilities \(see)-.1 F F1(Pr)5.349 E 2.848(ogrammable Completion)-.18 F +F0(belo)144 673.2 Q(w\).)-.25 E F1(COMP_POINT)108 690 Q F0 .666 +(The inde)144 702 R 3.166(xo)-.15 G 3.166(ft)-3.166 G .666 +(he current cursor position relati)-3.166 F .966 -.15(ve t)-.25 H 3.166 (ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15 -F .666(If the)5.666 F .534 +F .667(If the)5.667 F .535 (current cursor position is at the end of the current command, the v)144 -618 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1 -(${#COMP_LINE})144 630 Q F0 7.006(.T)C 2.006(his v)-7.006 F 2.006 -(ariable is a)-.25 F -.25(va)-.2 G 2.005 -(ilable only in shell functions and e).25 F 2.005(xternal commands)-.15 -F(in)144 642 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G -(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E -(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_TYPE)108 -658.8 Q F0 .041(Set to an inte)144 670.8 R .041(ger v)-.15 F .041(alue \ -corresponding to the type of completion attempted that caused a complet\ -ion)-.25 F .338(function to be called:)144 682.8 R F2 -.5(TA)2.837 G(B) -.5 E F0 2.837(,f)C .337(or normal completion,)-2.837 F F2(?)2.837 E F0 -2.837(,f)C .337(or listing completions after successi)-2.837 F .637 -.15 -(ve t)-.25 H(abs,).15 E F2(!)144 694.8 Q F0 4.091(,f)C 1.591 -(or listing alternati)-4.091 F -.15(ve)-.25 G 4.092(so).15 G 4.092(np) --4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F2(@)4.092 -E F0 4.092(,t)C 4.092(ol)-4.092 G 1.592(ist completions if the w)-4.092 -F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 706.8 R F2(%)4.053 E -F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)6.552 F -1.552(ariable is a)-.25 F -.25(va)-.2 G 1.552 -(ilable only in shell functions and).25 F -.15(ex)144 718.8 S 2.928 -(ternal commands in).15 F -.2(vo)-.4 G -.1(ke).2 G 5.429(db).1 G 5.429 -(yt)-5.429 G 2.929(he programmable completion f)-5.429 F 2.929 -(acilities \(see)-.1 F F1(Pr)5.429 E(ogrammable)-.18 E(Completion)144 -730.8 Q F0(belo)2.5 E(w\).)-.25 E(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(10)190.95 E 0 Cg EP +714 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1 +(${#COMP_LINE})144 726 Q F0 7.005(.T)C 2.005(his v)-7.005 F 2.005 +(ariable is a)-.25 F -.25(va)-.2 G 2.006 +(ilable only in shell functions and e).25 F 2.006(xternal commands)-.15 +F(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(10)185.955 E 0 Cg EP %%Page: 11 11 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(COMP_W)108 84 Q(ORDBREAKS)-.1 E F0 1.336 -(The set of characters that the)144 96 R F1 -.18(re)3.836 G(adline).18 E -F0 1.336(library treats as w)3.836 F 1.335 -(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If) -144 108 R/F2 9/Times-Bold@0 SF(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626 -(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G -3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G -(ubse-)-3.126 E(quently reset.)144 120 Q F1(COMP_W)108 136.8 Q(ORDS)-.1 -E F0 .654(An array v)144 148.8 R .654(ariable \(see)-.25 F F1(Arrays) -3.154 E F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F .653 -(vidual w)-.25 F .653(ords in the current command)-.1 F 3.537(line. The) -144 160.8 R 1.037(line is split into w)3.537 F 1.037(ords as)-.1 F F1 --.18(re)3.537 G(adline).18 E F0 -.1(wo)3.537 G 1.037 -(uld split it, using).1 F F1(COMP_W)3.538 E(ORDBREAKS)-.1 E F0(as)3.538 -E .832(described abo)144 172.8 R -.15(ve)-.15 G 5.832(.T).15 G .832 -(his v)-5.832 F .832(ariable is a)-.25 F -.25(va)-.2 G .831 -(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.331 -(db).1 G 3.331(yt)-3.331 G .831(he programmable)-3.331 F(completion f) -144 184.8 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 -E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108 201.6 Q -.55(AC)-.9 G(K).55 E -F0 2.26(An array v)144 213.6 R 2.26(ariable \(see)-.25 F F1(Arrays)4.76 +-.35 E(in)144 84 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G +(he programmable completion f)-2.5 E(acilities \(see)-.1 E/F1 10 +/Times-Bold@0 SF(Pr)2.5 E(ogrammable Completion)-.18 E F0(belo)2.5 E +(w\).)-.25 E F1(COMP_TYPE)108 100.8 Q F0 .042(Set to an inte)144 112.8 R +.042(ger v)-.15 F .041(alue corresponding to the type of completion att\ +empted that caused a completion)-.25 F .337(function to be called:)144 +124.8 R/F2 10/Times-Italic@0 SF -.5(TA)2.837 G(B).5 E F0 2.837(,f)C .337 +(or normal completion,)-2.837 F F2(?)2.837 E F0 2.837(,f)C .337 +(or listing completions after successi)-2.837 F .638 -.15(ve t)-.25 H +(abs,).15 E F2(!)144 136.8 Q F0 4.092(,f)C 1.592(or listing alternati) +-4.092 F -.15(ve)-.25 G 4.092(so).15 G 4.092(np)-4.092 G 1.592(artial w) +-4.092 F 1.592(ord completion,)-.1 F F2(@)4.092 E F0 4.092(,t)C 4.092 +(ol)-4.092 G 1.592(ist completions if the w)-4.092 F 1.591(ord is not) +-.1 F 1.552(unmodi\214ed, or)144 148.8 R F2(%)4.052 E F0 4.052(,f)C +1.552(or menu completion.)-4.052 F 1.552(This v)6.552 F 1.552 +(ariable is a)-.25 F -.25(va)-.2 G 1.552 +(ilable only in shell functions and).25 F -.15(ex)144 160.8 S 2.929 +(ternal commands in).15 F -.2(vo)-.4 G -.1(ke).2 G 5.429(db).1 G 5.429 +(yt)-5.429 G 2.929(he programmable completion f)-5.429 F 2.929 +(acilities \(see)-.1 F F1(Pr)5.428 E(ogrammable)-.18 E(Completion)144 +172.8 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 189.6 Q(ORDBREAKS)-.1 E +F0 1.335(The set of characters that the)144 201.6 R F1 -.18(re)3.836 G +(adline).18 E F0 1.336(library treats as w)3.836 F 1.336 +(ord separators when performing w)-.1 F(ord)-.1 E 3.126(completion. If) +144 213.6 R/F3 9/Times-Bold@0 SF(COMP_W)3.126 E(ORDBREAKS)-.09 E F0 .626 +(is unset, it loses its special properties, e)2.876 F -.15(ve)-.25 G +3.125(ni).15 G 3.125(fi)-3.125 G 3.125(ti)-3.125 G 3.125(ss)-3.125 G +(ubse-)-3.125 E(quently reset.)144 225.6 Q F1(COMP_W)108 242.4 Q(ORDS) +-.1 E F0 .653(An array v)144 254.4 R .653(ariable \(see)-.25 F F1 +(Arrays)3.153 E F0(belo)3.153 E .654(w\) consisting of the indi)-.25 F +.654(vidual w)-.25 F .654(ords in the current command)-.1 F 4.333 +(line. The)144 266.4 R 1.832(line is split into w)4.332 F 1.832(ords as) +-.1 F F1 -.18(re)4.332 G(adline).18 E F0 -.1(wo)4.332 G 1.832 +(uld split it, using).1 F F3(COMP_W)4.332 E(ORDBREAKS)-.09 E F0(as)4.082 +E .831(described abo)144 278.4 R -.15(ve)-.15 G 5.831(.T).15 G .831 +(his v)-5.831 F .831(ariable is a)-.25 F -.25(va)-.2 G .832 +(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.332 +(db).1 G 3.332(yt)-3.332 G .832(he programmable)-3.332 F(completion f) +144 290.4 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 +E F0(belo)2.5 E(w\).)-.25 E F1(DIRST)108 307.2 Q -.55(AC)-.9 G(K).55 E +F0 2.26(An array v)144 319.2 R 2.26(ariable \(see)-.25 F F1(Arrays)4.76 E F0(belo)4.76 E 2.26 (w\) containing the current contents of the directory stack.)-.25 F -1.095(Directories appear in the stack in the order the)144 225.6 R 3.594 -(ya)-.15 G 1.094(re displayed by the)-3.594 F F1(dirs)3.594 E F0 -.2(bu) -3.594 G 3.594(iltin. Assigning).2 F(to)3.594 E 1.431 -(members of this array v)144 237.6 R 1.432 +1.094(Directories appear in the stack in the order the)144 331.2 R 3.594 +(ya)-.15 G 1.095(re displayed by the)-3.594 F F1(dirs)3.595 E F0 -.2(bu) +3.595 G 3.595(iltin. Assigning).2 F(to)3.595 E 1.432 +(members of this array v)144 343.2 R 1.432 (ariable may be used to modify directories already in the stack, b)-.25 -F 1.432(ut the)-.2 F F1(pushd)144 249.6 Q F0(and)2.746 E F1(popd)2.746 E +F 1.431(ut the)-.2 F F1(pushd)144 355.2 Q F0(and)2.746 E F1(popd)2.746 E F0 -.2(bu)2.746 G .246(iltins must be used to add and remo).2 F .546 -.15(ve d)-.15 H 2.746(irectories. Assignment).15 F .246(to this v)2.746 -F(ariable)-.25 E .35(will not change the current directory)144 261.6 R -5.35(.I)-.65 G(f)-5.35 E F2(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35 -(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.851 -(ni).15 G(f)-2.851 E(it is subsequently reset.)144 273.6 Q F1(EUID)108 -290.4 Q F0 1.104(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u) --.25 H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103 -(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103 -(ariable is)-.25 F(readonly)144 302.4 Q(.)-.65 E F1(FUNCN)108 319.2 Q -(AME)-.2 E F0 .478(An array v)144 331.2 R .479 +F(ariable)-.25 E .351(will not change the current directory)144 367.2 R +5.35(.I)-.65 G(f)-5.35 E F3(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35 +(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.85 +(ni).15 G(f)-2.85 E(it is subsequently reset.)144 379.2 Q F1(EUID)108 +396 Q F0 1.103(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)-.25 +H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103 +(nitialized at shell startup.)-3.603 F 1.104(This v)6.103 F 1.104 +(ariable is)-.25 F(readonly)144 408 Q(.)-.65 E F1(FUNCN)108 424.8 Q(AME) +-.2 E F0 .479(An array v)144 436.8 R .479 (ariable containing the names of all shell functions currently in the e) --.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277 -(The element with inde)144 343.2 R 2.777(x0i)-.15 G 2.777(st)-2.777 G -.276(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe) --.15 G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F -.25(element is)144 355.2 R/F3 10/Courier@0 SF("main")2.75 E F0 5.25(.T)C +-.25 F -.15(xe)-.15 G .478(cution call stack.).15 F .276 +(The element with inde)144 448.8 R 2.776(x0i)-.15 G 2.776(st)-2.776 G +.276(he name of an)-2.776 F 2.777(yc)-.15 G(urrently-e)-2.777 E -.15(xe) +-.15 G .277(cuting shell function.).15 F .277(The bottom-most)5.277 F +.25(element is)144 460.8 R/F4 10/Courier@0 SF("main")2.75 E F0 5.25(.T)C .25(his v)-5.25 F .25(ariable e)-.25 F .25 (xists only when a shell function is e)-.15 F -.15(xe)-.15 G 2.75 -(cuting. Assignments).15 F(to)2.75 E F2(FUNCN)144 367.2 Q(AME)-.18 E F0 -(ha)2.635 E .685 -.15(ve n)-.2 H 2.885(oe).15 G -.25(ff)-2.885 G .385 -(ect and return an error status.).25 F(If)5.385 E F2(FUNCN)2.885 E(AME) --.18 E F0 .384(is unset, it loses its special)2.634 F(properties, e)144 -379.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss) --2.5 G(ubsequently reset.)-2.5 E F1(GR)108 396 Q(OUPS)-.3 E F0 1.228 -(An array v)144 408 R 1.228(ariable containing the list of groups of wh\ -ich the current user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E -.597(ments to)144 420 R F2(GR)3.097 E(OUPS)-.27 E F0(ha)2.847 E .897 +(cuting. Assignments).15 F(to)2.75 E F3(FUNCN)144 472.8 Q(AME)-.18 E F0 +(ha)2.634 E .684 -.15(ve n)-.2 H 2.884(oe).15 G -.25(ff)-2.884 G .384 +(ect and return an error status.).25 F(If)5.385 E F3(FUNCN)2.885 E(AME) +-.18 E F0 .385(is unset, it loses its special)2.635 F(properties, e)144 +484.8 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss) +-2.5 G(ubsequently reset.)-2.5 E F1(GR)108 501.6 Q(OUPS)-.3 E F0 1.229 +(An array v)144 513.6 R 1.228(ariable containing the list of groups of \ +which the current user is a member)-.25 F 6.228(.A)-.55 G(ssign-)-6.228 +E .596(ments to)144 525.6 R F3(GR)3.096 E(OUPS)-.27 E F0(ha)2.847 E .897 -.15(ve n)-.2 H 3.097(oe).15 G -.25(ff)-3.097 G .597 -(ect and return an error status.).25 F(If)5.597 E F2(GR)3.097 E(OUPS) +(ect and return an error status.).25 F(If)5.597 E F3(GR)3.097 E(OUPS) -.27 E F0 .597(is unset, it loses its spe-)2.847 F(cial properties, e) -144 432 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5 -(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 448.8 Q F0 .355 -(The history number)144 460.8 R 2.855(,o)-.4 G 2.855(ri)-2.855 G(nde) --2.855 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356 -(he history list, of the current command.)-2.856 F(If)5.356 E F2 -(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F -(loses its special properties, e)144 472.8 Q -.15(ve)-.25 G 2.5(ni).15 G +144 537.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5 +(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 554.4 Q F0 .356 +(The history number)144 566.4 R 2.856(,o)-.4 G 2.856(ri)-2.856 G(nde) +-2.856 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356 +(he history list, of the current command.)-2.856 F(If)5.356 E F3 +(HISTCMD)2.855 E F0 .355(is unset, it)2.605 F +(loses its special properties, e)144 578.4 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1 -(HOSTN)108 489.6 Q(AME)-.2 E F0 -(Automatically set to the name of the current host.)144 501.6 Q F1 -(HOSTTYPE)108 518.4 Q F0 .223(Automatically set to a string that unique\ -ly describes the type of machine on which)144 530.4 R F1(bash)2.722 E F0 -.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 542.4 R -(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 559.2 Q F0 -1.408(Each time this parameter is referenced, the shell substitutes a d\ -ecimal number representing the)144 571.2 R .078(current sequential line\ - number \(starting with 1\) within a script or function.)144 583.2 R -.078(When not in a script or)5.078 F .306(function, the v)144 595.2 R -.306(alue substituted is not guaranteed to be meaningful.)-.25 F(If) -5.307 E F2(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F -(special properties, e)144 607.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi) --2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 -624 Q(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully de\ -scribes the system type on which)144 636 R F1(bash)3.398 E F0 .898(is e) -3.398 F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144 648 Q -/F4 10/Times-Italic@0 SF(cpu-company-system)2.5 E F0 2.5(format. The)2.5 -F(def)2.5 E(ault is system-dependent.)-.1 E F1(OLDPWD)108 664.8 Q F0 -(The pre)144 676.8 Q(vious w)-.25 E(orking directory as set by the)-.1 E -F1(cd)2.5 E F0(command.)2.5 E F1(OPT)108 693.6 Q(ARG)-.9 E F0 1.626 -(The v)144 705.6 R 1.627(alue of the last option ar)-.25 F 1.627 -(gument processed by the)-.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G -1.627(iltin command \(see).2 F F2(SHELL)4.127 E -.09(BU)144 717.6 S(IL) -.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(11)190.95 E 0 Cg EP +(HOSTN)108 595.2 Q(AME)-.2 E F0 +(Automatically set to the name of the current host.)144 607.2 Q F1 +(HOSTTYPE)108 624 Q F0 .222(Automatically set to a string that uniquely\ + describes the type of machine on which)144 636 R F1(bash)2.723 E F0 +.223(is e)2.723 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 648 R(def) +2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 664.8 Q F0 1.408(Ea\ +ch time this parameter is referenced, the shell substitutes a decimal n\ +umber representing the)144 676.8 R .078(current sequential line number \ +\(starting with 1\) within a script or function.)144 688.8 R .079 +(When not in a script or)5.078 F .307(function, the v)144 700.8 R .307 +(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.306 E +F3(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F +(special properties, e)144 712.8 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi) +-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(11)185.955 E 0 Cg EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(OPTIND)108 84 Q F0 1.652(The inde)144 96 R -4.152(xo)-.15 G 4.152(ft)-4.152 G 1.652(he ne)-4.152 F 1.652(xt ar)-.15 -F 1.652(gument to be processed by the)-.18 F F1(getopts)4.151 E F0 -.2 -(bu)4.151 G 1.651(iltin command \(see).2 F/F2 9/Times-Bold@0 SF(SHELL) -4.151 E -.09(BU)144 108 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E -(w\).)-.25 E F1(OSTYPE)108 124.8 Q F0 .329(Automatically set to a strin\ -g that describes the operating system on which)144 136.8 R F1(bash)2.83 -E F0 .33(is e)2.83 F -.15(xe)-.15 G 2.83(cuting. The).15 F(def)144 148.8 -Q(ault is system-dependent.)-.1 E F1(PIPEST)108 165.6 Q -.95(AT)-.9 G -(US).95 E F0 .61(An array v)144 177.6 R .61(ariable \(see)-.25 F F1 -(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61 -(xit status v)-.15 F .61(alues from the processes in)-.25 F -(the most-recently-e)144 189.6 Q -.15(xe)-.15 G(cuted fore).15 E +-.35 E/F1 10/Times-Bold@0 SF(MA)108 84 Q(CHTYPE)-.55 E F0 .898(Automati\ +cally set to a string that fully describes the system type on which)144 +96 R F1(bash)3.398 E F0 .899(is e)3.398 F -.15(xe)-.15 G .899 +(cuting, in).15 F(the standard GNU)144 108 Q/F2 10/Times-Italic@0 SF +(cpu-company-system)2.5 E F0 2.5(format. The)2.5 F(def)2.5 E +(ault is system-dependent.)-.1 E F1(OLDPWD)108 124.8 Q F0(The pre)144 +136.8 Q(vious w)-.25 E(orking directory as set by the)-.1 E F1(cd)2.5 E +F0(command.)2.5 E F1(OPT)108 153.6 Q(ARG)-.9 E F0 1.627(The v)144 165.6 +R 1.627(alue of the last option ar)-.25 F 1.627(gument processed by the) +-.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.626(iltin command \(see).2 +F/F3 9/Times-Bold@0 SF(SHELL)4.126 E -.09(BU)144 177.6 S(IL).09 E +(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 194.4 Q +F0 1.651(The inde)144 206.4 R 4.151(xo)-.15 G 4.151(ft)-4.151 G 1.651 +(he ne)-4.151 F 1.651(xt ar)-.15 F 1.652(gument to be processed by the) +-.18 F F1(getopts)4.152 E F0 -.2(bu)4.152 G 1.652(iltin command \(see).2 +F F3(SHELL)4.152 E -.09(BU)144 218.4 S(IL).09 E(TIN COMMANDS)-.828 E F0 +(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108 235.2 Q F0 .329(Automatically se\ +t to a string that describes the operating system on which)144 247.2 R +F1(bash)2.829 E F0 .329(is e)2.829 F -.15(xe)-.15 G 2.829(cuting. The) +.15 F(def)144 259.2 Q(ault is system-dependent.)-.1 E F1(PIPEST)108 276 +Q -.95(AT)-.9 G(US).95 E F0 .61(An array v)144 288 R .61(ariable \(see) +-.25 F F1(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e) +-.25 F .61(xit status v)-.15 F .61(alues from the processes in)-.25 F +(the most-recently-e)144 300 Q -.15(xe)-.15 G(cuted fore).15 E (ground pipeline \(which may contain only a single command\).)-.15 E F1 -(PPID)108 206.4 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G +(PPID)108 316.8 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G 2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E -F1(PWD)108 223.2 Q F0(The current w)12.67 E +F1(PWD)108 333.6 Q F0(The current w)12.67 E (orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1 -(RANDOM)108 240 Q F0 .565 -(Each time this parameter is referenced, a random inte)144 252 R .566 -(ger between 0 and 32767 is generated.)-.15 F(The)5.566 E .01 -(sequence of random numbers may be initialized by assigning a v)144 264 -R .01(alue to)-.25 F F2(RANDOM)2.51 E/F3 9/Times-Roman@0 SF(.)A F0(If) -4.51 E F2(RANDOM)2.51 E F0(is)2.26 E -(unset, it loses its special properties, e)144 276 Q -.15(ve)-.25 G 2.5 -(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.) --2.5 E F1(REPL)108 292.8 Q(Y)-.92 E F0 -(Set to the line of input read by the)144 304.8 Q F1 -.18(re)2.5 G(ad) +(RANDOM)108 350.4 Q F0 .566 +(Each time this parameter is referenced, a random inte)144 362.4 R .565 +(ger between 0 and 32767 is generated.)-.15 F(The)5.565 E .01 +(sequence of random numbers may be initialized by assigning a v)144 +374.4 R .01(alue to)-.25 F F3(RANDOM)2.51 E/F4 9/Times-Roman@0 SF(.)A F0 +(If)4.51 E F3(RANDOM)2.51 E F0(is)2.26 E +(unset, it loses its special properties, e)144 386.4 Q -.15(ve)-.25 G +2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G +(ubsequently reset.)-2.5 E F1(REPL)108 403.2 Q(Y)-.92 E F0 +(Set to the line of input read by the)144 415.2 Q F1 -.18(re)2.5 G(ad) .18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E -(guments are supplied.)-.18 E F1(SECONDS)108 321.6 Q F0 .795(Each time \ -this parameter is referenced, the number of seconds since shell in)144 -333.6 R -.2(vo)-.4 G .795(cation is returned.).2 F .713(If a v)144 345.6 -R .712(alue is assigned to)-.25 F F2(SECONDS)3.212 E F3(,)A F0 .712 -(the v)2.962 F .712 -(alue returned upon subsequent references is the number)-.25 F .407 -(of seconds since the assignment plus the v)144 357.6 R .408 -(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .408 -(is unset, it loses its special)2.658 F(properties, e)144 369.6 Q -.15 -(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G -(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 386.4 Q F0 3.263(Ac)144 -398.4 S .763(olon-separated list of enabled shell options.)-3.263 F .763 +(guments are supplied.)-.18 E F1(SECONDS)108 432 Q F0 .795(Each time th\ +is parameter is referenced, the number of seconds since shell in)144 444 +R -.2(vo)-.4 G .795(cation is returned.).2 F .712(If a v)144 456 R .712 +(alue is assigned to)-.25 F F3(SECONDS)3.212 E F4(,)A F0 .712(the v) +2.962 F .712(alue returned upon subsequent references is the number)-.25 +F .408(of seconds since the assignment plus the v)144 468 R .408 +(alue assigned.)-.25 F(If)5.408 E F3(SECONDS)2.908 E F0 .407 +(is unset, it loses its special)2.658 F(properties, e)144 480 Q -.15(ve) +-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G +(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 496.8 Q F0 3.262(Ac)144 +508.8 S .763(olon-separated list of enabled shell options.)-3.262 F .763 (Each w)5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F -.763(gument for the)-.18 F F1144 410.4 Q F0 1.173(option to the) -3.673 F F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F -F2 1.174(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo) -3.424 E 3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 422.4 -R F2(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F/F4 10 -/Times-Italic@0 SF(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0 -5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .019 -(ariable is in the en)-.25 F(vironment)-.4 E(when)144 434.4 Q F1(bash) -3.141 E F0 .642(starts up, each shell option in the list will be enable\ -d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142 -F(This v)144 446.4 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 -463.2 Q(VL)-.92 E F0(Incremented by one each time an instance of)144 -475.2 Q F1(bash)2.5 E F0(is started.)2.5 E F1(UID)108 492 Q F0 +.763(gument for the)-.18 F F1144 520.8 Q F0 1.174(option to the) +3.674 F F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F +F3 1.173(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo) +3.423 E 3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144 +532.8 R F3(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F F2 +(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0 5.019(.I)C 2.519 +(ft)-5.019 G .019(his v)-2.519 F .02(ariable is in the en)-.25 F +(vironment)-.4 E(when)144 544.8 Q F1(bash)3.142 E F0 .642(starts up, ea\ +ch shell option in the list will be enabled before reading an)3.142 F +3.141(ys)-.15 G .641(tartup \214les.)-3.141 F(This v)144 556.8 Q +(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 573.6 Q(VL)-.92 E F0 +(Incremented by one each time an instance of)144 585.6 Q F1(bash)2.5 E +F0(is started.)2.5 E F1(UID)108 602.4 Q F0 (Expands to the user ID of the current user)17.67 E 2.5(,i)-.4 G (nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25 -E(.)-.65 E .994(The follo)108 508.8 R .994(wing v)-.25 F .994 +E(.)-.65 E .993(The follo)108 619.2 R .993(wing v)-.25 F .994 (ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1 -(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993 -(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 520.8 -Q -.65(w.)-.25 G F1 -.3(BA)108 537.6 S(SH_ENV).3 E F0 .505 -(If this parameter is set when)144 549.6 R F1(bash)3.005 E F0 .505(is e) -3.005 F -.15(xe)-.15 G .506(cuting a shell script, its v).15 F .506 -(alue is interpreted as a \214lename)-.25 F .355 -(containing commands to initialize the shell, as in)144 561.6 R F4 -(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354(he v)-5.354 F .354 -(alue of)-.25 F F2 -.27(BA)2.854 G(SH_ENV).27 E F0 .354(is subjected) -2.604 F .525(to parameter e)144 573.6 R .525 +(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994 +(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 631.2 +Q -.65(w.)-.25 G F1 -.3(BA)108 648 S(SH_ENV).3 E F0 .506 +(If this parameter is set when)144 660 R F1(bash)3.006 E F0 .506(is e) +3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F .505 +(alue is interpreted as a \214lename)-.25 F .354 +(containing commands to initialize the shell, as in)144 672 R F2 +(~/.bashr)2.855 E(c)-.37 E F0 5.355(.T).31 G .355(he v)-5.355 F .355 +(alue of)-.25 F F3 -.27(BA)2.855 G(SH_ENV).27 E F0 .355(is subjected) +2.605 F .525(to parameter e)144 684 R .525 (xpansion, command substitution, and arithmetic e)-.15 F .525 -(xpansion before being interpreted)-.15 F(as a \214le name.)144 585.6 Q -F2 -.666(PA)5 G(TH)-.189 E F0 -(is not used to search for the resultant \214le name.)2.25 E F1(CDP)108 -597.6 Q -.95(AT)-.74 G(H).95 E F0 1.248(The search path for the)144 -609.6 R F1(cd)3.748 E F0 3.748(command. This)3.748 F 1.247 -(is a colon-separated list of directories in which the)3.748 F 3.795 -(shell looks for destination directories speci\214ed by the)144 621.6 R -F1(cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796 -(alue is)-.25 F/F5 10/Courier@0 SF(".:~:/usr")144 633.6 Q F0(.)A F1 -(COLUMNS)108 645.6 Q F0 .425(Used by the)144 657.6 R F1(select)2.925 E -F0 -.2(bu)2.925 G .425(iltin command to determine the terminal width wh\ -en printing selection lists.).2 F -(Automatically set upon receipt of a SIGWINCH.)144 669.6 Q F1(COMPREPL) -108 681.6 Q(Y)-.92 E F0 .847(An array v)144 693.6 R .848 -(ariable from which)-.25 F F1(bash)3.348 E F0 .848 -(reads the possible completions generated by a shell function)3.348 F -(in)144 705.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G -(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E -(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(12)190.95 E 0 Cg EP +(xpansion before being interpreted)-.15 F(as a \214le name.)144 696 Q F3 +-.666(PA)5 G(TH)-.189 E F0 +(is not used to search for the resultant \214le name.)2.25 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(12)185.955 E 0 Cg EP %%Page: 13 13 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(EMA)108 84 Q(CS)-.55 E F0(If)144 96 Q F1 -(bash)2.536 E F0 .036(\214nds this v)2.536 F .036(ariable in the en)-.25 -F .036(vironment when the shell starts with v)-.4 F(alue)-.25 E/F2 10 -/Courier@0 SF(t)2.535 E F0 2.535(,i)C 2.535(ta)-2.535 G .035 -(ssumes that the)-2.535 F(shell is running in an emacs shell b)144 108 Q -(uf)-.2 E(fer and disables line editing.)-.25 E F1(FCEDIT)108 120 Q F0 -(The def)144 132 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G -(iltin command.).2 E F1(FIGNORE)108 144 Q F0 2.598(Ac)144 156 S .098 +-.35 E/F1 10/Times-Bold@0 SF(CDP)108 84 Q -.95(AT)-.74 G(H).95 E F0 +1.247(The search path for the)144 96 R F1(cd)3.747 E F0 3.747 +(command. This)3.747 F 1.248 +(is a colon-separated list of directories in which the)3.747 F 3.796 +(shell looks for destination directories speci\214ed by the)144 108 R F1 +(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795 +(alue is)-.25 F/F2 10/Courier@0 SF(".:~:/usr")144 120 Q F0(.)A F1 -.3 +(BA)108 132 S(SH_XTRA).3 E(CEFD)-.55 E F0 .48(If set to an inte)144 144 +R .48(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25 F +(,)-.4 E F1(bash)2.981 E F0 .481(will write the trace output gener)2.981 +F(-)-.2 E 3.114(ated when)144 156 R F2 3.114(set -x)5.614 F F0 3.114 +(is enabled to that \214le descriptor)5.614 F 8.114(.T)-.55 G 3.114 +(he \214le descriptor is closed when)-8.114 F/F3 9/Times-Bold@0 SF -.27 +(BA)144 168 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138 +(is unset or assigned a ne)2.388 F 2.638(wv)-.25 G 2.638 +(alue. Unsetting)-2.888 F F3 -.27(BA)2.638 G(SH_XTRA).27 E(CEFD)-.495 E +F0 .138(or assigning it)2.388 F 2.531(the empty string causes the trace\ + output to be sent to the standard error)144 180 R 7.53(.N)-.55 G 2.53 +(ote that setting)-7.53 F F3 -.27(BA)144 192 S(SH_XTRA).27 E(CEFD)-.495 +E F0 .74(to 2 \(the standard error \214le descriptor\) and then unsetti\ +ng it will result in the)2.99 F(standard error being closed.)144 204 Q +F1(COLUMNS)108 216 Q F0 .425(Used by the)144 228 R F1(select)2.925 E F0 +-.2(bu)2.925 G .425(iltin command to determine the terminal width when \ +printing selection lists.).2 F +(Automatically set upon receipt of a SIGWINCH.)144 240 Q F1(COMPREPL)108 +252 Q(Y)-.92 E F0 .847(An array v)144 264 R .848(ariable from which)-.25 +F F1(bash)3.348 E F0 .848 +(reads the possible completions generated by a shell function)3.348 F +(in)144 276 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G +(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E +(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(EMA)108 288 Q +(CS)-.55 E F0(If)144 300 Q F1(bash)2.536 E F0 .036(\214nds this v)2.536 +F .036(ariable in the en)-.25 F .036 +(vironment when the shell starts with v)-.4 F(alue)-.25 E F2(t)2.535 E +F0 2.535(,i)C 2.535(ta)-2.535 G .035(ssumes that the)-2.535 F +(shell is running in an emacs shell b)144 312 Q(uf)-.2 E +(fer and disables line editing.)-.25 E F1(FCEDIT)108 324 Q F0(The def) +144 336 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G +(iltin command.).2 E F1(FIGNORE)108 348 Q F0 2.598(Ac)144 360 S .098 (olon-separated list of suf)-2.598 F<8c78>-.25 E .098 -(es to ignore when performing \214lename completion \(see)-.15 F/F3 9 -/Times-Bold@0 SF(READLINE)2.599 E F0(belo)144 168 Q 2.705(w\). A)-.25 F -.205(\214lename whose suf)2.705 F .205 -(\214x matches one of the entries in)-.25 F F3(FIGNORE)2.705 E F0 .205 -(is e)2.455 F .204(xcluded from the list)-.15 F(of matched \214lenames.) -144 180 Q 2.5(As)5 G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.) -A F1(GLOBIGNORE)108 192 Q F0 3.118(Ac)144 204 S .618(olon-separated lis\ -t of patterns de\214ning the set of \214lenames to be ignored by pathna\ -me e)-3.118 F(xpan-)-.15 E 3.132(sion. If)144 216 R 3.132<618c>3.132 G -.632(lename matched by a pathname e)-3.132 F .632 +(es to ignore when performing \214lename completion \(see)-.15 F F3 +(READLINE)2.599 E F0(belo)144 372 Q 2.705(w\). A)-.25 F .205 +(\214lename whose suf)2.705 F .205(\214x matches one of the entries in) +-.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .204 +(xcluded from the list)-.15 F(of matched \214lenames.)144 384 Q 2.5(As)5 +G(ample v)-2.5 E(alue is)-.25 E F2(".o:~")2.5 E F0(.)A F1(GLOBIGNORE)108 +396 Q F0 3.118(Ac)144 408 S .618(olon-separated list of patterns de\214\ +ning the set of \214lenames to be ignored by pathname e)-3.118 F(xpan-) +-.15 E 3.132(sion. If)144 420 R 3.132<618c>3.132 G .632 +(lename matched by a pathname e)-3.132 F .632 (xpansion pattern also matches one of the patterns in)-.15 F F3 -(GLOBIGNORE)144 228 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E +(GLOBIGNORE)144 432 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E -.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)-2.5 E F1 -(HISTCONTR)108 240 Q(OL)-.3 E F0 2.653(Ac)144 252 S .153 +(HISTCONTR)108 444 Q(OL)-.3 E F0 2.653(Ac)144 456 S .153 (olon-separated list of v)-2.653 F .153(alues controlling ho)-.25 F 2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15 G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .154(If the list) -5.153 F .491(of v)144 264 R .491(alues includes)-.25 F/F5 10 +5.153 F .491(of v)144 468 R .491(alues includes)-.25 F/F5 10 /Times-Italic@0 SF(ignor)2.991 E(espace)-.37 E F0 2.991(,l).18 G .491 (ines which be)-2.991 F .491(gin with a)-.15 F F1(space)2.991 E F0 .49 (character are not sa)2.991 F -.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99 -G .49(he his-)-2.99 F .557(tory list.)144 276 R 3.057(Av)5.557 G .557 +G .49(he his-)-2.99 F .557(tory list.)144 480 R 3.057(Av)5.557 G .557 (alue of)-3.307 F F5(ignor)3.067 E(edups)-.37 E F0 .557 (causes lines matching the pre)3.327 F .558 (vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.959 -(Av)144 288 S .459(alue of)-3.209 F F5(ignor)2.969 E(eboth)-.37 E F0 +(Av)144 492 S .459(alue of)-3.209 F F5(ignor)2.969 E(eboth)-.37 E F0 .459(is shorthand for)3.239 F F5(ignor)2.959 E(espace)-.37 E F0(and) 2.959 E F5(ignor)2.958 E(edups)-.37 E F0 5.458(.A)C -.25(va)-2.5 G .458 (lue of).25 F F5(er)2.958 E(asedups)-.15 E F0(causes)2.958 E .698 -(all pre)144 300 R .698 +(all pre)144 504 R .698 (vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G 3.198(df).15 G .699(rom the history list before that line is)-3.198 F -(sa)144 312 Q -.15(ve)-.2 G 4.297(d. An).15 F 4.297(yv)-.15 G 1.797 -(alue not in the abo)-4.547 F 2.097 -.15(ve l)-.15 H 1.797 -(ist is ignored.).15 F(If)6.797 E F1(HISTCONTR)4.297 E(OL)-.3 E F0 1.797 -(is unset, or does not)4.297 F .612(include a v)144 324 R .612(alid v) --.25 F .612(alue, all lines read by the shell parser are sa)-.25 F -.15 -(ve)-.2 G 3.112(do).15 G 3.112(nt)-3.112 G .612 -(he history list, subject to the)-3.112 F -.25(va)144 336 S .986(lue of) -.25 F F1(HISTIGNORE)3.486 E F0 5.986(.T)C .986 -(he second and subsequent lines of a multi-line compound command)-5.986 -F(are not tested, and are added to the history re)144 348 Q -.05(ga)-.15 -G(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR)2.5 E(OL)-.3 E F0(.) -A F1(HISTFILE)108 360 Q F0 .181 -(The name of the \214le in which command history is sa)144 372 R -.15 +(sa)144 516 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264 +(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263 +(ist is ignored.).15 F(If)5.263 E F3(HISTCONTR)2.763 E(OL)-.27 E F0 .263 +(is unset, or does not include)2.513 F 2.941(av)144 528 S .441(alid v) +-3.191 F .441(alue, all lines read by the shell parser are sa)-.25 F +-.15(ve)-.2 G 2.942(do).15 G 2.942(nt)-2.942 G .442 +(he history list, subject to the v)-2.942 F .442(alue of)-.25 F F3 +(HISTIGNORE)144 540 Q F4(.)A F0 1.981(The second and subsequent lines o\ +f a multi-line compound command are not)6.482 F +(tested, and are added to the history re)144 552 Q -.05(ga)-.15 G +(rdless of the v).05 E(alue of)-.25 E F3(HISTCONTR)2.5 E(OL)-.27 E F4(.) +A F1(HISTFILE)108 564 Q F0 .181 +(The name of the \214le in which command history is sa)144 576 R -.15 (ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y) -.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v) --.1 F(alue)-.25 E(is)144 384 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5 +-.1 F(alue)-.25 E(is)144 588 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5 (fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5 (dw).15 G(hen an interacti)-2.5 E .3 -.15(ve s)-.25 H(hell e).15 E -(xits.)-.15 E F1(HISTFILESIZE)108 396 Q F0 1.623 -(The maximum number of lines contained in the history \214le.)144 408 R +(xits.)-.15 E F1(HISTFILESIZE)108 600 Q F0 1.623 +(The maximum number of lines contained in the history \214le.)144 612 R 1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144 -420 S .305(lue, the history \214le is truncated, if necessary).25 F +624 S .305(lue, the history \214le is truncated, if necessary).25 F 2.805(,b)-.65 G 2.805(yr)-2.805 G(emo)-2.805 E .305 (ving the oldest entries, to contain no more)-.15 F .602 -(than that number of lines.)144 432 R .602(The def)5.602 F .602(ault v) +(than that number of lines.)144 636 R .602(The def)5.602 F .602(ault v) -.1 F .602(alue is 500.)-.25 F .601 (The history \214le is also truncated to this size)5.602 F -(after writing it when an interacti)144 444 Q .3 -.15(ve s)-.25 H -(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 456 Q F0 2.657(Ac)144 468 S +(after writing it when an interacti)144 648 Q .3 -.15(ve s)-.25 H +(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 660 Q F0 2.657(Ac)144 672 S .157(olon-separated list of patterns used to decide which command lines\ should be sa)-2.657 F -.15(ve)-.2 G 2.658(do).15 G 2.658(nt)-2.658 G -.158(he his-)-2.658 F .708(tory list.)144 480 R .708 +.158(he his-)-2.658 F .708(tory list.)144 684 R .708 (Each pattern is anchored at the be)5.708 F .707 (ginning of the line and must match the complete line)-.15 F .625 -(\(no implicit `)144 492 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125 +(\(no implicit `)144 696 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125 (ppended\). Each)-3.125 F .626(pattern is tested ag)3.125 F .626 -(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144 -504 Q(OL)-.3 E F0 1.155(are applied.)3.655 F 1.154 -(In addition to the normal shell pattern matching characters, `)6.154 F -F1(&)A F0(')A 2.514(matches the pre)144 516 R 2.514(vious history line.) +(ainst the line after the checks speci\214ed by)-.05 F F3(HISTCONTR)144 +708 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793 +(In addition to the normal shell pattern matching characters, `)6.793 F +F1(&)A F0(')A 2.514(matches the pre)144 720 R 2.514(vious history line.) -.25 F(`)7.514 E F1(&)A F0 5.014('m)C 2.514 -(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 528 -Q -.15(ve)-.15 G 3.353(db).15 G .853(efore attempting a match.)-3.353 F -.852(The second and subsequent lines of a multi-line compound)5.852 F -(command are not tested, and are added to the history re)144 540 Q -.05 -(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTIGNORE)2.5 E F0 -(.)A F1(HISTSIZE)108 552 Q F0 1.942 -(The number of commands to remember in the command history \(see)144 564 -R F3(HIST)4.443 E(OR)-.162 E(Y)-.315 E F0(belo)4.193 E 4.443(w\). The) --.25 F(def)144 576 Q(ault v)-.1 E(alue is 500.)-.25 E F1(HISTTIMEFORMA) -108 588 Q(T)-.95 E F0 .952(If this v)144 600 R .952 +(ay be escaped using a backslash; the backslash is)-5.014 F +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(13)185.955 E 0 Cg EP +%%Page: 14 14 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E(remo)144 84 Q -.15(ve)-.15 G 3.353(db).15 G .853 +(efore attempting a match.)-3.353 F .852 +(The second and subsequent lines of a multi-line compound)5.852 F +(command are not tested, and are added to the history re)144 96 Q -.05 +(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E/F1 9/Times-Bold@0 SF +(HISTIGNORE)2.5 E/F2 9/Times-Roman@0 SF(.)A/F3 10/Times-Bold@0 SF +(HISTSIZE)108 108 Q F0 1.942 +(The number of commands to remember in the command history \(see)144 120 +R F1(HIST)4.443 E(OR)-.162 E(Y)-.315 E F0(belo)4.193 E 4.443(w\). The) +-.25 F(def)144 132 Q(ault v)-.1 E(alue is 500.)-.25 E F3(HISTTIMEFORMA) +108 144 Q(T)-.95 E F0 .952(If this v)144 156 R .952 (ariable is set and not null, its v)-.25 F .951 -(alue is used as a format string for)-.25 F F5(strftime)3.451 E F0 .951 -(\(3\) to print the)B .672 -(time stamp associated with each history entry displayed by the)144 612 -R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v) +(alue is used as a format string for)-.25 F/F4 10/Times-Italic@0 SF +(strftime)3.451 E F0 .951(\(3\) to print the)B .672 +(time stamp associated with each history entry displayed by the)144 168 +R F3(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v) 3.173 F .673(ariable is)-.25 F .144 -(set, time stamps are written to the history \214le so the)144 624 R +(set, time stamps are written to the history \214le so the)144 180 R 2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144 (ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\ - character to distinguish timestamps from other history lines.)144 636 Q -F1(HOME)108 648 Q F0 1.27 -(The home directory of the current user; the def)144 660 R 1.27(ault ar) --.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27 -(iltin command.).2 F(The)6.27 E -.25(va)144 672 S(lue of this v).25 E -(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1 -(HOSTFILE)108 684 Q F0 1.015 -(Contains the name of a \214le in the same format as)144 696 R F5 + character to distinguish timestamps from other history lines.)144 192 Q +F3(HOME)108 204 Q F0 1.27 +(The home directory of the current user; the def)144 216 R 1.27(ault ar) +-.1 F 1.27(gument for the)-.18 F F3(cd)3.77 E F0 -.2(bu)3.77 G 1.27 +(iltin command.).2 F(The)6.27 E -.25(va)144 228 S(lue of this v).25 E +(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F3 +(HOSTFILE)108 240 Q F0 1.015 +(Contains the name of a \214le in the same format as)144 252 R F4 (/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F -.55(needs to complete a hostname.)144 708 R .551 +.55(needs to complete a hostname.)144 264 R .551 (The list of possible hostname completions may be changed while)5.551 F -1.059(the shell is running; the ne)144 720 R 1.059 +1.059(the shell is running; the ne)144 276 R 1.059 (xt time hostname completion is attempted after the v)-.15 F 1.058 -(alue is changed,)-.25 F(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E -(13)190.95 E 0 Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(bash)144 84 Q F0 .715 -(adds the contents of the ne)3.215 F 3.215<778c>-.25 G .715(le to the e) --3.215 F .715(xisting list.)-.15 F(If)5.716 E/F2 9/Times-Bold@0 SF -(HOSTFILE)3.216 E F0 .716(is set, b)2.966 F .716(ut has no v)-.2 F -(alue,)-.25 E F1(bash)144 96 Q F0 2.236(attempts to read)4.736 F/F3 10 -/Times-Italic@0 SF(/etc/hosts)6.401 E F0 2.235 -(to obtain the list of possible hostname completions.)6.401 F(When)7.235 -E F2(HOSTFILE)144 108 Q F0(is unset, the hostname list is cleared.)2.25 -E F1(IFS)108 120 Q F0(The)20.44 E F3 .555(Internal F)3.635 F .555 +(alue is changed,)-.25 F F3(bash)144 288 Q F0 .138 +(adds the contents of the ne)2.638 F 2.638<778c>-.25 G .138(le to the e) +-2.638 F .138(xisting list.)-.15 F(If)5.138 E F1(HOSTFILE)2.638 E F0 +.138(is set, b)2.388 F .139(ut has no v)-.2 F .139(alue, or)-.25 F .518 +(does not name a readable \214le,)144 300 R F3(bash)3.018 E F0 .518 +(attempts to read)3.018 F F4(/etc/hosts)4.683 E F0 .517 +(to obtain the list of possible host-)4.683 F(name completions.)144 312 +Q(When)5 E F1(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.) +2.25 E F3(IFS)108 324 Q F0(The)20.44 E F4 .555(Internal F)3.635 F .555 (ield Separ)-.45 F(ator)-.15 E F0 .555(that is used for w)3.785 F .556 (ord splitting after e)-.1 F .556(xpansion and to split lines into)-.15 -F -.1(wo)144 132 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2 +F -.1(wo)144 336 S(rds with the).1 E F3 -.18(re)2.5 G(ad).18 E F0 -.2 (bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E -(`')-.25 E('.)-.74 E F1(IGNOREEOF)108 144 Q -F0 .503(Controls the action of an interacti)144 156 R .803 -.15(ve s) --.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503 +(`')-.25 E('.)-.74 E F3(IGNOREEOF)108 348 Q +F0 .503(Controls the action of an interacti)144 360 R .803 -.15(ve s) +-.25 H .503(hell on receipt of an).15 F F1(EOF)3.003 E F0 .503 (character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v) -144 168 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2 +144 372 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F1 (EOF)3.076 E F0 .426 (characters which must be typed as the \214rst characters)2.676 F .303 -(on an input line before)144 180 R F1(bash)2.802 E F0 -.15(ex)2.802 G +(on an input line before)144 384 R F3(bash)2.802 E F0 -.15(ex)2.802 G 2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302 (xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302 -(umeric v).15 F .302(alue, or has)-.25 F(no v)144 192 Q(alue, the def) +(umeric v).15 F .302(alue, or has)-.25 F(no v)144 396 Q(alue, the def) -.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E -F2(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1 -(INPUTRC)108 204 Q F0 1.435(The \214lename for the)144 216 R F1 -.18(re) +F1(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F3 +(INPUTRC)108 408 Q F0 1.435(The \214lename for the)144 420 R F3 -.18(re) 3.936 G(adline).18 E F0 1.436(startup \214le, o)3.936 F -.15(ve)-.15 G -1.436(rriding the def).15 F 1.436(ault of)-.1 F F3(~/.inputr)5.602 E(c) --.37 E F0(\(see)5.602 E F2(READLINE)3.936 E F0(belo)144 228 Q(w\).)-.25 -E F1(LANG)108 240 Q F0 1.24(Used to determine the locale cate)7.11 F +1.436(rriding the def).15 F 1.436(ault of)-.1 F F4(~/.inputr)5.602 E(c) +-.37 E F0(\(see)5.602 E F1(READLINE)3.936 E F0(belo)144 432 Q(w\).)-.25 +E F3(LANG)108 444 Q F0 1.24(Used to determine the locale cate)7.11 F 1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.239 (gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E -(starting with)144 252 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 264 Q F0 .764 -(This v)144 276 R .764(ariable o)-.25 F -.15(ve)-.15 G .764 -(rrides the v).15 F .764(alue of)-.25 F F1(LANG)3.264 E F0 .764(and an) -3.264 F 3.264(yo)-.15 G(ther)-3.264 E F1(LC_)3.264 E F0 -.25(va)3.264 G -.764(riable specifying a locale cate-).25 F(gory)144 288 Q(.)-.65 E F1 -(LC_COLLA)108 300 Q(TE)-.95 E F0 .412(This v)144 312 R .412(ariable det\ +(starting with)144 456 Q F3(LC_)2.5 E F0(.)A F3(LC_ALL)108 468 Q F0 .973 +(This v)144 480 R .973(ariable o)-.25 F -.15(ve)-.15 G .973 +(rrides the v).15 F .973(alue of)-.25 F F1(LANG)3.473 E F0 .973(and an) +3.223 F 3.473(yo)-.15 G(ther)-3.473 E F3(LC_)3.473 E F0 -.25(va)3.473 G +.974(riable specifying a locale cate-).25 F(gory)144 492 Q(.)-.65 E F3 +(LC_COLLA)108 504 Q(TE)-.95 E F0 .412(This v)144 516 R .412(ariable det\ ermines the collation order used when sorting the results of pathname e) --.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 324 R 1.464 +-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 528 R 1.464 (vior of range e)-.2 F 1.465(xpressions, equi)-.15 F -.25(va)-.25 G 1.465(lence classes, and collating sequences).25 F(within pathname e)144 -336 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 348 Q F0 -1.936(This v)144 360 R 1.936 +540 Q(xpansion and pattern matching.)-.15 E F3(LC_CTYPE)108 552 Q F0 +1.936(This v)144 564 R 1.936 (ariable determines the interpretation of characters and the beha)-.25 F -1.935(vior of character classes)-.2 F(within pathname e)144 372 Q -(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 384 Q(GES)-.55 E -F0(This v)144 396 Q(ariable determines the locale used to translate dou\ -ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC) -108 408 Q F0(This v)144 420 Q(ariable determines the locale cate)-.25 E -(gory used for number formatting.)-.15 E F1(LINES)108 432 Q F0 1.218 -(Used by the)5.99 F F1(select)3.718 E F0 -.2(bu)3.718 G 1.219(iltin com\ +1.935(vior of character classes)-.2 F(within pathname e)144 576 Q +(xpansion and pattern matching.)-.15 E F3(LC_MESSA)108 588 Q(GES)-.55 E +F0(This v)144 600 Q(ariable determines the locale used to translate dou\ +ble-quoted strings preceded by a)-.25 E F3($)2.5 E F0(.)A F3(LC_NUMERIC) +108 612 Q F0(This v)144 624 Q(ariable determines the locale cate)-.25 E +(gory used for number formatting.)-.15 E F3(LINES)108 636 Q F0 1.218 +(Used by the)5.99 F F3(select)3.718 E F0 -.2(bu)3.718 G 1.219(iltin com\ mand to determine the column length for printing selection lists.).2 F -(Automatically set upon receipt of a SIGWINCH.)144 444 Q F1(MAIL)108 456 -Q F0 .188(If this parameter is set to a \214le name and the)8.78 F F2 -(MAILP)2.687 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.437 G .187 -(riable is not set,).25 F F1(bash)2.687 E F0 .187(informs the user)2.687 -F(of the arri)144 468 Q -.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G -(ail in the speci\214ed \214le.)-2.5 E F1(MAILCHECK)108 480 Q F0 .098 -(Speci\214es ho)144 492 R 2.598(wo)-.25 G .098(ften \(in seconds\)) --2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def) +(Automatically set upon receipt of a)144 648 Q F1(SIGWINCH)2.5 E F2(.)A +F3(MAIL)108 660 Q F0 .188 +(If this parameter is set to a \214le name and the)8.78 F F1(MAILP)2.687 +E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.437 G .187(riable is not set,) +.25 F F3(bash)2.687 E F0 .187(informs the user)2.687 F(of the arri)144 +672 Q -.25(va)-.25 G 2.5(lo).25 G 2.5(fm)-2.5 G +(ail in the speci\214ed \214le.)-2.5 E F3(MAILCHECK)108 684 Q F0 .098 +(Speci\214es ho)144 696 R 2.598(wo)-.25 G .098(ften \(in seconds\)) +-2.598 F F3(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def) 5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224 (to check for mail, the shell does so before displaying the primary pro\ -mpt.)144 504 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066 -(or set to a v)144 516 R .066(alue that is not a number greater than or\ - equal to zero, the shell disables mail checking.)-.25 F F1(MAILP)108 -528 Q -.95(AT)-.74 G(H).95 E F0 2.815(Ac)144 540 S .314 -(olon-separated list of \214le names to be check)-2.815 F .314 -(ed for mail.)-.1 F .314(The message to be printed when mail)5.314 F -(arri)144 552 Q -.15(ve)-.25 G 3.42(si).15 G 3.42(nap)-3.42 G .92(artic\ -ular \214le may be speci\214ed by separating the \214le name from the m\ -essage with a)-3.42 F 2.808(`?'. When)144 564 R .308(used in the te) -2.808 F .308(xt of the message,)-.15 F F1($_)2.808 E F0 -.15(ex)2.808 G -.308(pands to the name of the current mail\214le.).15 F(Exam-)5.307 E -(ple:)144 576 Q F1(MAILP)144 588 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A +mpt.)144 708 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066 +(or set to a v)144 720 R .066(alue that is not a number greater than or\ + equal to zero, the shell disables mail checking.)-.25 F(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(14)185.955 E 0 Cg EP +%%Page: 15 15 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(MAILP)108 84 Q -.95(AT)-.74 G(H).95 E F0 +2.815(Ac)144 96 S .314(olon-separated list of \214le names to be check) +-2.815 F .314(ed for mail.)-.1 F .314 +(The message to be printed when mail)5.314 F(arri)144 108 Q -.15(ve)-.25 +G 3.42(si).15 G 3.42(nap)-3.42 G .92(articular \214le may be speci\214e\ +d by separating the \214le name from the message with a)-3.42 F 2.808 +(`?'. When)144 120 R .308(used in the te)2.808 F .308 +(xt of the message,)-.15 F F1($_)2.808 E F0 -.15(ex)2.808 G .308 +(pands to the name of the current mail\214le.).15 F(Exam-)5.307 E(ple:) +144 132 Q F1(MAILP)144 144 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A (ar/mail/bfox?"Y)-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H -(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 600 Q F0 .388 +(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 156 Q F0 .388 (supplies a def)2.888 F .388(ault v)-.1 F .388(alue for this v)-.25 F .388(ariable, b)-.25 F .389 (ut the location of the user mail \214les that it uses is)-.2 F -(system dependent \(e.g., /v)144 612 Q(ar/mail/)-.25 E F1($USER)A F0 -(\).)A F1(OPTERR)108 624 Q F0 .39(If set to the v)144 636 R .39(alue 1,) +(system dependent \(e.g., /v)144 168 Q(ar/mail/)-.25 E F1($USER)A F0 +(\).)A F1(OPTERR)108 180 Q F0 .39(If set to the v)144 192 R .39(alue 1,) -.25 F F1(bash)2.89 E F0 .389(displays error messages generated by the) 2.889 F F1(getopts)2.889 E F0 -.2(bu)2.889 G .389(iltin command \(see).2 -F F2 .359(SHELL B)144 648 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0 -(belo)2.609 E(w\).)-.25 E F2(OPTERR)5.359 E F0 .36 -(is initialized to 1 each time the shell is in)2.609 F -.2(vo)-.4 G -.1 -(ke).2 G(d).1 E(or a shell script is e)144 660 Q -.15(xe)-.15 G(cuted.) -.15 E F1 -.74(PA)108 672 S(TH)-.21 E F0 .588 +F/F2 9/Times-Bold@0 SF .359(SHELL B)144 204 R(UIL)-.09 E .359 +(TIN COMMANDS)-.828 F F0(belo)2.609 E(w\).)-.25 E F2(OPTERR)5.359 E F0 +.36(is initialized to 1 each time the shell is in)2.609 F -.2(vo)-.4 G +-.1(ke).2 G(d).1 E(or a shell script is e)144 216 Q -.15(xe)-.15 G +(cuted.).15 E F1 -.74(PA)108 228 S(TH)-.21 E F0 .588 (The search path for commands.)9.91 F .587 (It is a colon-separated list of directories in which the shell looks) -5.588 F .471(for commands \(see)144 684 R F2 .471(COMMAND EXECUTION) +5.588 F .471(for commands \(see)144 240 R F2 .471(COMMAND EXECUTION) 2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472 -(zero-length \(null\) directory name in the)2.972 F -.25(va)144 696 S -.345(lue of).25 F F1 -.74(PA)2.845 G(TH)-.21 E F0 .345 -(indicates the current directory)2.845 F 5.345(.A)-.65 G .344 -(null directory name may appear as tw)-2.5 F 2.844(oa)-.1 G(djacent) --2.844 E .867(colons, or as an initial or trailing colon.)144 708 R .868 +(zero-length \(null\) directory name in the)2.972 F -.25(va)144 252 S +.536(lue of).25 F F2 -.666(PA)3.036 G(TH)-.189 E F0 .535 +(indicates the current directory)2.786 F 5.535(.A)-.65 G .535 +(null directory name may appear as tw)-2.5 F 3.035(oa)-.1 G(djacent) +-3.035 E .867(colons, or as an initial or trailing colon.)144 264 R .868 (The def)5.868 F .868(ault path is system-dependent, and is set by the) --.1 F 26.329(administrator who installs)144 720 R F1(bash)28.829 E F0 -31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F(GNU Bash-4.0) -72 768 Q(2009 February 7)140.96 E(14)190.95 E 0 Cg EP -%%Page: 15 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Courier@0 SF -(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 84 Q F0(.)A/F2 -10/Times-Bold@0 SF(POSIXL)108 96 Q(Y_CORRECT)-.92 E F0 .471(If this v) -144 108 R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F2 -(bash)2.971 E F0 .471(starts, the shell enters)2.971 F/F3 10 -/Times-Italic@0 SF .472(posix mode)2.972 F F0 .472(before reading)2.972 -F .011(the startup \214les, as if the)144 120 R F2(\255\255posix)2.511 E -F0(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F -.011(If it is set while the shell is)5.011 F(running,)144 132 Q F2(bash) -2.5 E F0(enables)2.5 E F3(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5 -(ft)-2.5 G(he command)-2.5 E F1(set -o posix)2.5 E F0(had been e)2.5 E --.15(xe)-.15 G(cuted.).15 E F2(PR)108 144 Q(OMPT_COMMAND)-.3 E F0 -(If set, the v)144 156 Q(alue is e)-.25 E -.15(xe)-.15 G -(cuted as a command prior to issuing each primary prompt.).15 E F2(PR) -108 168 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676 -(If set to a number greater than zero, the v)144 180 R .676 -(alue is used as the number of trailing directory compo-)-.25 F .34 -(nents to retain when e)144 192 R .34(xpanding the)-.15 F F2 .339 -(\\w and \\W pr)2.84 F .339(ompt string escapes \(see)-.18 F/F4 9 -/Times-Bold@0 SF(PR)2.839 E(OMPTING)-.27 E F0(belo)2.589 E(w\).)-.25 E -(Characters remo)144 204 Q -.15(ve)-.15 G 2.5(da).15 G -(re replaced with an ellipsis.)-2.5 E F2(PS1)108 216 Q F0 .064(The v) +-.1 F 26.329(administrator who installs)144 276 R F1(bash)28.829 E F0 +31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F/F3 10 +/Courier@0 SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 288 +Q F0(.)A F1(POSIXL)108 300 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 312 +R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F1(bash) +2.971 E F0 .471(starts, the shell enters)2.971 F/F4 10/Times-Italic@0 SF +.472(posix mode)2.972 F F0 .472(before reading)2.972 F .011 +(the startup \214les, as if the)144 324 R F1(\255\255posix)2.511 E F0 +(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F .011 +(If it is set while the shell is)5.011 F(running,)144 336 Q F1(bash)2.5 +E F0(enables)2.5 E F4(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft) +-2.5 G(he command)-2.5 E F3(set -o posix)2.5 E F0(had been e)2.5 E -.15 +(xe)-.15 G(cuted.).15 E F1(PR)108 348 Q(OMPT_COMMAND)-.3 E F0 +(If set, the v)144 360 Q(alue is e)-.25 E -.15(xe)-.15 G +(cuted as a command prior to issuing each primary prompt.).15 E F1(PR) +108 372 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676 +(If set to a number greater than zero, the v)144 384 R .676 +(alue is used as the number of trailing directory compo-)-.25 F .923 +(nents to retain when e)144 396 R .923(xpanding the)-.15 F F1(\\w)3.423 +E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see) +3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E +(Characters remo)144 408 Q -.15(ve)-.15 G 2.5(da).15 G +(re replaced with an ellipsis.)-2.5 E F1(PS1)108 420 Q F0 .064(The v) 19.33 F .065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15 -F F4(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065 -(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 228 R -(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F2(\\s\255\\v\\$)A F0 --.74('')2.5 G(.).74 E F2(PS2)108 240 Q F0 .005(The v)19.33 F .005 -(alue of this parameter is e)-.25 F .005(xpanded as with)-.15 F F2(PS1) -2.505 E F0 .004(and used as the secondary prompt string.)2.505 F(The) -5.004 E(def)144 252 Q(ault is `)-.1 E(`)-.74 E F2(>)A F0 -.74('')2.5 G -(.).74 E F2(PS3)108 264 Q F0 1.115(The v)19.33 F 1.115 -(alue of this parameter is used as the prompt for the)-.25 F F2(select) -3.615 E F0 1.116(command \(see)3.616 F F4 1.116(SHELL GRAM-)3.616 F(MAR) -144 276 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F2(PS4)108 288 Q F0 -1.099(The v)19.33 F 1.099(alue of this parameter is e)-.25 F 1.099 -(xpanded as with)-.15 F F2(PS1)3.599 E F0 1.099(and the v)3.599 F 1.098 -(alue is printed before each com-)-.25 F(mand)144 300 Q F2(bash)3.725 E -F0 1.225(displays during an e)3.725 F -.15(xe)-.15 G 1.225 -(cution trace.).15 F 1.226(The \214rst character of)6.225 F F4(PS4)3.726 -E F0 1.226(is replicated multiple)3.476 F(times, as necessary)144 312 Q -2.5(,t)-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G -(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F2(+)A F0 --.74('')2.5 G(.).74 E F2(SHELL)108 324 Q F0 .664 -(The full pathname to the shell is k)144 336 R .664(ept in this en)-.1 F +F F2(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065 +(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 432 R +(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0 +-.74('')2.5 G(.).74 E F1(PS2)108 444 Q F0 .118(The v)19.33 F .118 +(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F F2(PS1) +2.617 E F0 .117(and used as the secondary prompt string.)2.367 F(The) +5.117 E(def)144 456 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G +(.).74 E F1(PS3)108 468 Q F0 1.115(The v)19.33 F 1.115 +(alue of this parameter is used as the prompt for the)-.25 F F1(select) +3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR) +144 480 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 492 Q F0 +.101(The v)19.33 F .101(alue of this parameter is e)-.25 F .101 +(xpanded as with)-.15 F F2(PS1)2.6 E F0 .1(and the v)2.35 F .1 +(alue is printed before each command)-.25 F F1(bash)144 504 Q F0 .291 +(displays during an e)2.791 F -.15(xe)-.15 G .292(cution trace.).15 F +.292(The \214rst character of)5.292 F F2(PS4)2.792 E F0 .292 +(is replicated multiple times, as)2.542 F(necessary)144 516 Q 2.5(,t) +-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G +(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0 +-.74('')2.5 G(.).74 E F1(SHELL)108 528 Q F0 .664 +(The full pathname to the shell is k)144 540 R .664(ept in this en)-.1 F .664(vironment v)-.4 F 3.164(ariable. If)-.25 F .663 -(it is not set when the shell)3.164 F(starts,)144 348 Q F2(bash)2.5 E F0 +(it is not set when the shell)3.164 F(starts,)144 552 Q F1(bash)2.5 E F0 (assigns to it the full pathname of the current user')2.5 E 2.5(sl)-.55 -G(ogin shell.)-2.5 E F2(TIMEFORMA)108 360 Q(T)-.95 E F0 .826(The v)144 -372 R .826 +G(ogin shell.)-2.5 E F1(TIMEFORMA)108 564 Q(T)-.95 E F0 .826(The v)144 +576 R .826 (alue of this parameter is used as a format string specifying ho)-.25 F 3.327(wt)-.25 G .827(he timing information for)-3.327 F .649 -(pipelines pre\214x)144 384 R .649(ed with the)-.15 F F2(time)3.149 E F0 +(pipelines pre\214x)144 588 R .649(ed with the)-.15 F F1(time)3.149 E F0 (reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F -(The)5.648 E F2(%)3.148 E F0 .648(character introduces)3.148 F .711 -(an escape sequence that is e)144 396 R .711(xpanded to a time v)-.15 F +(The)5.648 E F1(%)3.148 E F0 .648(character introduces)3.148 F .711 +(an escape sequence that is e)144 600 R .711(xpanded to a time v)-.15 F .712(alue or other information.)-.25 F .712(The escape sequences)5.712 F -(and their meanings are as follo)144 408 Q -(ws; the braces denote optional portions.)-.25 E F2(%%)144 426 Q F0 2.5 -(Al)30 G(iteral)-2.5 E F2(%)2.5 E F0(.)A F2(%[)144 438 Q F3(p)A F2 -(][l]R)A F0(The elapsed time in seconds.)11.68 E F2(%[)144 450 Q F3(p)A -F2(][l]U)A F0(The number of CPU seconds spent in user mode.)11.68 E F2 -(%[)144 462 Q F3(p)A F2(][l]S)A F0 -(The number of CPU seconds spent in system mode.)13.34 E F2(%P)144 474 Q +(and their meanings are as follo)144 612 Q +(ws; the braces denote optional portions.)-.25 E F1(%%)144 630 Q F0 2.5 +(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 642 Q F4(p)A F1 +(][l]R)A F0(The elapsed time in seconds.)11.68 E F1(%[)144 654 Q F4(p)A +F1(][l]U)A F0(The number of CPU seconds spent in user mode.)11.68 E F1 +(%[)144 666 Q F4(p)A F1(][l]S)A F0 +(The number of CPU seconds spent in system mode.)13.34 E F1(%P)144 678 Q F0(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87 -(The optional)144 490.8 R F3(p)3.37 E F0 .87(is a digit specifying the) -3.37 F F3(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87 +(The optional)144 694.8 R F4(p)3.37 E F0 .87(is a digit specifying the) +3.37 F F4(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87 (he number of fractional digits after a decimal)-3.37 F 2.525(point. A) -144 502.8 R -.25(va)2.525 G .025 +144 706.8 R -.25(va)2.525 G .025 (lue of 0 causes no decimal point or fraction to be output.).25 F .026 (At most three places after the)5.025 F .538 -(decimal point may be speci\214ed; v)144 514.8 R .538(alues of)-.25 F F3 +(decimal point may be speci\214ed; v)144 718.8 R .538(alues of)-.25 F F4 (p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E -F3(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 526.8 Q -(alue 3 is used.)-.25 E .667(The optional)144 543.6 R F2(l)3.167 E F0 +F4(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 730.8 Q +(alue 3 is used.)-.25 E(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E +(15)185.955 E 0 Cg EP +%%Page: 16 16 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E .667(The optional)144 84 R/F1 10/Times-Bold@0 SF(l)3.167 E F0 .668(speci\214es a longer format, including minutes, of the form)3.168 F -F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.168(s. The)B -.25(va) -3.168 G(lue).25 E(of)144 555.6 Q F3(p)2.5 E F0 +/F2 10/Times-Italic@0 SF(MM)3.168 E F0(m)A F2(SS)A F0(.)A F2(FF)A F0 +3.168(s. The)B -.25(va)3.168 G(lue).25 E(of)144 96 Q F2(p)2.5 E F0 (determines whether or not the fraction is included.)2.5 E .001 -(If this v)144 572.4 R .001(ariable is not set,)-.25 F F2(bash)2.501 E -F0 .001(acts as if it had the v)2.501 F(alue)-.25 E F2($\010\\nr)2.5 E +(If this v)144 112.8 R .001(ariable is not set,)-.25 F F1(bash)2.501 E +F0 .001(acts as if it had the v)2.501 F(alue)-.25 E F1($\010\\nr)2.5 E (eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS\010)-.18 E F0(.)A .494(If the v)144 -584.4 R .494(alue is null, no timing information is displayed.)-.25 F +124.8 R .494(alue is null, no timing information is displayed.)-.25 F 2.994(At)5.494 G .494(railing ne)-2.994 F .494 (wline is added when the for)-.25 F(-)-.2 E(mat string is displayed.)144 -596.4 Q F2(TMOUT)108 613.2 Q F0 .718(If set to a v)144 625.2 R .717 -(alue greater than zero,)-.25 F F2(TMOUT)3.217 E F0 .717 -(is treated as the def)3.217 F .717(ault timeout for the)-.1 F F2 -.18 -(re)3.217 G(ad).18 E F0 -.2(bu)3.217 G(iltin.).2 E(The)144 637.2 Q F2 -(select)2.542 E F0 .042(command terminates if input does not arri)2.542 -F .342 -.15(ve a)-.25 H(fter).15 E F2(TMOUT)2.542 E F0 .042 -(seconds when input is com-)2.542 F .886(ing from a terminal.)144 649.2 +136.8 Q F1(TMOUT)108 153.6 Q F0 .941(If set to a v)144 165.6 R .941 +(alue greater than zero,)-.25 F/F3 9/Times-Bold@0 SF(TMOUT)3.441 E F0 +.941(is treated as the def)3.191 F .941(ault timeout for the)-.1 F F1 +-.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441 G(iltin.).2 E(The)144 177.6 Q +F1(select)2.81 E F0 .31(command terminates if input does not arri)2.81 F +.611 -.15(ve a)-.25 H(fter).15 E F3(TMOUT)2.811 E F0 .311 +(seconds when input is com-)2.561 F .886(ing from a terminal.)144 189.6 R .886(In an interacti)5.886 F 1.185 -.15(ve s)-.25 H .885(hell, the v) .15 F .885(alue is interpreted as the number of seconds to)-.25 F -.1 -(wa)144 661.2 S .546(it for input after issuing the primary prompt.).1 F -F2(Bash)5.546 E F0 .546(terminates after w)3.046 F .546 +(wa)144 201.6 S .546(it for input after issuing the primary prompt.).1 F +F1(Bash)5.546 E F0 .546(terminates after w)3.046 F .546 (aiting for that number of)-.1 F(seconds if input does not arri)144 -673.2 Q -.15(ve)-.25 G(.).15 E F2(TMPDIR)108 690 Q F0 .274(If set,)144 -702 R F2(Bash)2.774 E F0 .274(uses its v)2.774 F .274 -(alue as the name of a directory in which)-.25 F F2(Bash)2.773 E F0 .273 -(creates temporary \214les for the)2.773 F(shell')144 714 Q 2.5(su)-.55 -G(se.)-2.5 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(15)190.95 E -0 Cg EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(auto_r)108 84 Q(esume)-.18 E F0 .53(This v) -144 96 R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531 +213.6 Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 230.4 Q F0 .274(If set,)144 +242.4 R F1(Bash)2.774 E F0 .274(uses its v)2.774 F .274 +(alue as the name of a directory in which)-.25 F F1(Bash)2.773 E F0 .273 +(creates temporary \214les for the)2.773 F(shell')144 254.4 Q 2.5(su) +-.55 G(se.)-2.5 E F1(auto_r)108 271.2 Q(esume)-.18 E F0 .53(This v)144 +283.2 R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531 (he shell interacts with the user and job control.)-3.03 F .531 -(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 108 R +(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 295.2 R .538(ord simple commands without redirections are treated as candidates\ - for resumption of an)-.1 F -.15(ex)144 120 S .366(isting stopped job) + for resumption of an)-.1 F -.15(ex)144 307.2 S .366(isting stopped job) .15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)-5.366 F .366 (wed; if there is more than one job be)-.25 F .367(ginning with)-.15 F 1.125(the string typed, the job most recently accessed is selected.)144 -132 R(The)6.125 E/F2 10/Times-Italic@0 SF(name)3.985 E F0 1.124 -(of a stopped job, in this)3.805 F(conte)144 144 Q 1.132 +319.2 R(The)6.125 E F2(name)3.985 E F0 1.124(of a stopped job, in this) +3.805 F(conte)144 331.2 Q 1.132 (xt, is the command line used to start it.)-.15 F 1.133(If set to the v) 6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133 (he string supplied must)-3.633 F .625 -(match the name of a stopped job e)144 156 R .624(xactly; if set to)-.15 -F F2(substring)3.124 E F0 3.124(,t).22 G .624 +(match the name of a stopped job e)144 343.2 R .624(xactly; if set to) +-.15 F F2(substring)3.124 E F0 3.124(,t).22 G .624 (he string supplied needs to match a)-3.124 F .884 -(substring of the name of a stopped job)144 168 R 5.884(.T)-.4 G(he) +(substring of the name of a stopped job)144 355.2 R 5.884(.T)-.4 G(he) -5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885 -(vides functionality analogous to)-.15 F(the)144 180 Q F1(%?)3.334 E F0 -.834(job identi\214er \(see)5.834 F/F3 9/Times-Bold@0 SF .834(JOB CONTR) -3.334 F(OL)-.27 E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an) -3.334 F 3.334(yo)-.15 G .834(ther v)-3.334 F .833 -(alue, the supplied string)-.25 F .315 -(must be a pre\214x of a stopped job')144 192 R 2.816(sn)-.55 G .316 +(vides functionality analogous to)-.15 F(the)144 367.2 Q F1(%?)3.334 E +F0 .834(job identi\214er \(see)5.834 F F3 .834(JOB CONTR)3.334 F(OL)-.27 +E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an)3.334 F 3.334(yo) +-.15 G .834(ther v)-3.334 F .833(alue, the supplied string)-.25 F .315 +(must be a pre\214x of a stopped job')144 379.2 R 2.816(sn)-.55 G .316 (ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F -F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 204 Q(.)-.55 E -F1(histchars)108 220.8 Q F0 2.07(The tw)144 232.8 R 4.57(oo)-.1 G 4.57 -(rt)-4.57 G 2.07(hree characters which control history e)-4.57 F 2.07 +F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 391.2 Q(.)-.55 +E F1(histchars)108 408 Q F0 2.07(The tw)144 420 R 4.57(oo)-.1 G 4.57(rt) +-4.57 G 2.07(hree characters which control history e)-4.57 F 2.07 (xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F3(HIST)4.569 E(OR) --.162 E(Y)-.315 E(EXP)144 244.8 Q(ANSION)-.666 E F0(belo)3.465 E 3.715 +-.162 E(Y)-.315 E(EXP)144 432 Q(ANSION)-.666 E F0(belo)3.465 E 3.715 (w\). The)-.25 F 1.215(\214rst character is the)3.715 F F2 1.216 (history e)3.715 F(xpansion)-.2 E F0(character)3.716 E 3.716(,t)-.4 G 1.216(he character which)-3.716 F .798(signals the start of a history e) -144 256.8 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B -.798(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G -(ubstitu-)-3.298 E(tion)144 268.8 Q F0(character)2.739 E 2.739(,w)-.4 G +144 444 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B .798 +(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G +(ubstitu-)-3.298 E(tion)144 456 Q F0(character)2.739 E 2.739(,w)-.4 G .239(hich is used as shorthand for re-running the pre)-2.739 F .24 (vious command entered, substitut-)-.25 F .576 -(ing one string for another in the command.)144 280.8 R .575(The def) -5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .575 +(ing one string for another in the command.)144 468 R .575(The def)5.575 +F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .575 (optional third character is the)3.075 F .223(character which indicates\ that the remainder of the line is a comment when found as the \214rst \ -char)144 292.8 R(-)-.2 E 1.294(acter of a w)144 304.8 R 1.294 +char)144 480 R(-)-.2 E 1.294(acter of a w)144 492 R 1.294 (ord, normally `)-.1 F F1(#)A F0 3.794('. The)B 1.293 (history comment character causes history substitution to be)3.794 F -.379(skipped for the remaining w)144 316.8 R .379(ords on the line.)-.1 -F .38(It does not necessarily cause the shell parser to treat)5.379 F -(the rest of the line as a comment.)144 328.8 Q F1(Arrays)87 345.6 Q -(Bash)108 357.6 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F --.15(xe)-.15 G 3.391(da).15 G .891(nd associati)-3.391 F 1.191 -.15 -(ve a)-.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G -.89(ariable may be used as an)-3.641 F(inde)108 369.6 Q -.15(xe)-.15 G +.379(skipped for the remaining w)144 504 R .379(ords on the line.)-.1 F +.38(It does not necessarily cause the shell parser to treat)5.379 F +(the rest of the line as a comment.)144 516 Q F1(Arrays)87 532.8 Q(Bash) +108 544.8 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F -.15 +(xe)-.15 G 3.391(da).15 G .891(nd associati)-3.391 F 1.191 -.15(ve a) +-.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .89 +(ariable may be used as an)-3.641 F(inde)108 556.8 Q -.15(xe)-.15 G 2.573(da).15 G .073(rray; the)-2.573 F F1(declar)2.573 E(e)-.18 E F0 -.2 (bu)2.573 G .073(iltin will e).2 F .073(xplicitly declare an array)-.15 F 5.073(.T)-.65 G .074(here is no maximum limit on the size of)-5.073 F -.329(an array)108 381.6 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr) +.329(an array)108 568.8 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr) -.15 G .329(equirement that members be inde)-2.829 F -.15(xe)-.15 G 2.829(do).15 G 2.829(ra)-2.829 G .328(ssigned contiguously)-2.829 F 5.328(.I)-.65 G(nde)-5.328 E -.15(xe)-.15 G 2.828(da).15 G .328 -(rrays are refer)-2.828 F(-)-.2 E 1.386(enced using inte)108 393.6 R +(rrays are refer)-2.828 F(-)-.2 E 1.386(enced using inte)108 580.8 R 1.386(gers \(including arithmetic e)-.15 F 3.887(xpressions\) and)-.15 F 1.387(are zero-based; associati)3.887 F 1.687 -.15(ve a)-.25 H 1.387 -(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 405.6 -Q 2.463(An inde)108 422.4 R -.15(xe)-.15 G 4.963(da).15 G 2.463 +(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 592.8 +Q 2.463(An inde)108 609.6 R -.15(xe)-.15 G 4.963(da).15 G 2.463 (rray is created automatically if an)-4.963 F 4.963(yv)-.15 G 2.462 (ariable is assigned to using the syntax)-5.213 F F2(name)4.962 E F0([)A -F2(sub-)A(script)108 434.4 Q F0(]=)A F2(value)A F0 5.682(.T)C(he)-5.682 +F2(sub-)A(script)108 621.6 Q F0(]=)A F2(value)A F0 5.682(.T)C(he)-5.682 E F2(subscript)3.522 E F0 .682(is treated as an arithmetic e)3.862 F .682(xpression that must e)-.15 F -.25(va)-.25 G .682 -(luate to a number greater).25 F .75(than or equal to zero.)108 446.4 R +(luate to a number greater).25 F .75(than or equal to zero.)108 633.6 R 2.349 -.8(To e)5.749 H .749(xplicitly declare an inde).65 F -.15(xe)-.15 G 3.249(da).15 G(rray)-3.249 E 3.249(,u)-.65 G(se)-3.249 E F1(declar) 3.249 E 3.249<65ad>-.18 G(a)-3.249 E F2(name)3.249 E F0(\(see)3.249 E F3 -.749(SHELL B)3.249 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)108 458.4 Q F0 +.749(SHELL B)3.249 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)108 645.6 Q F0 (belo)2.25 E(w\).)-.25 E F1(declar)5 E 2.5<65ad>-.18 G(a)-2.5 E F2(name) 2.5 E F1([)A F2(subscript)A F1(])A F0(is also accepted; the)2.5 E F2 -(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 475.2 Q .3 -.15 +(subscript)2.5 E F0(is ignored.)2.5 E(Associati)108 662.4 Q .3 -.15 (ve a)-.25 H(rrays are created using).15 E F1(declar)2.5 E 2.5<65ad>-.18 -G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108 492 Q .94 +G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108 679.2 Q .94 (utes may be speci\214ed for an array v)-.2 F .941(ariable using the) -.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.441 E F1 -.18(re)3.441 G (adonly).18 E F0 -.2(bu)3.441 G 3.441(iltins. Each).2 F(attrib)3.441 E -(ute)-.2 E(applies to all members of an array)108 504 Q(.)-.65 E 1.647 -(Arrays are assigned to using compound assignments of the form)108 520.8 -R F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647 +(ute)-.2 E(applies to all members of an array)108 691.2 Q(.)-.65 E 1.647 +(Arrays are assigned to using compound assignments of the form)108 708 R +F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647 (... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.147(,w)C 1.647(here each) --4.147 F F2(value)108 532.8 Q F0 .122(is of the form [)2.622 F F2 +-4.147 F F2(value)108 720 Q F0 .122(is of the form [)2.622 F F2 (subscript)A F0(]=)A F2(string)A F0 5.122(.I)C(nde)-5.122 E -.15(xe)-.15 G 2.622(da).15 G .122(rray assignments do not require the brack)-2.622 F -.122(et and subscript.)-.1 F .164(When assigning to inde)108 544.8 R --.15(xe)-.15 G 2.663(da).15 G .163(rrays, if the optional brack)-2.663 F -.163(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G -2.663(sa)-2.663 G(ssigned)-2.663 E 1.41(to; otherwise the inde)108 556.8 -R 3.91(xo)-.15 G 3.91(ft)-3.91 G 1.41 -(he element assigned is the last inde)-3.91 F 3.911(xa)-.15 G 1.411 -(ssigned to by the statement plus one.)-3.911 F(Inde)108 568.8 Q -(xing starts at zero.)-.15 E(When assigning to an associati)108 585.6 Q -.3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.) --2.5 E .24(This syntax is also accepted by the)108 602.4 R F1(declar) -2.74 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239 -(vidual array elements may be assigned to using the)-.25 F F2(name)108 -614.4 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0 -(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E(An)108 631.2 Q 3.575 -(ye)-.15 G 1.075(lement of an array may be referenced using ${)-3.575 F -F2(name)A F0([)A F2(subscript)A F0 3.575(]}. The)B 1.076 -(braces are required to a)3.576 F -.2(vo)-.2 G(id).2 E 1.542 -(con\215icts with pathname e)108 643.2 R 4.041(xpansion. If)-.15 F F2 -(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0(or)4.041 E F1(*)4.041 E -F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F 1.541 -(xpands to all members of)-.15 F F2(name)4.041 E F0(.)A 1.056 -(These subscripts dif)108 655.2 R 1.056(fer only when the w)-.25 F 1.057 +.122(et and subscript.)-.1 F(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(16)185.955 E 0 Cg EP +%%Page: 17 17 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E .164(When assigning to inde)108 84 R -.15(xe)-.15 G 2.663(da).15 +G .163(rrays, if the optional brack)-2.663 F .163 +(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G 2.663 +(sa)-2.663 G(ssigned)-2.663 E 1.41(to; otherwise the inde)108 96 R 3.91 +(xo)-.15 G 3.91(ft)-3.91 G 1.41(he element assigned is the last inde) +-3.91 F 3.911(xa)-.15 G 1.411(ssigned to by the statement plus one.) +-3.911 F(Inde)108 108 Q(xing starts at zero.)-.15 E +(When assigning to an associati)108 124.8 Q .3 -.15(ve a)-.25 H(rray).15 +E 2.5(,t)-.65 G(he subscript is required.)-2.5 E .24 +(This syntax is also accepted by the)108 141.6 R/F1 10/Times-Bold@0 SF +(declar)2.74 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239 +(vidual array elements may be assigned to using the)-.25 F/F2 10 +/Times-Italic@0 SF(name)108 153.6 Q F0([)A F2(subscript)A F0(]=)A F2 +(value)A F0(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E(An)108 +170.4 Q 3.575(ye)-.15 G 1.075 +(lement of an array may be referenced using ${)-3.575 F F2(name)A F0([)A +F2(subscript)A F0 3.575(]}. The)B 1.076(braces are required to a)3.576 F +-.2(vo)-.2 G(id).2 E 1.542(con\215icts with pathname e)108 182.4 R 4.041 +(xpansion. If)-.15 F F2(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0 +(or)4.041 E F1(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e) +-.1 F 1.541(xpands to all members of)-.15 F F2(name)4.041 E F0(.)A 1.056 +(These subscripts dif)108 194.4 R 1.056(fer only when the w)-.25 F 1.057 (ord appears within double quotes.)-.1 F 1.057(If the w)6.057 F 1.057 -(ord is double-quoted,)-.1 F(${)108 667.2 Q F2(name)A F0 .521([*]} e)B +(ord is double-quoted,)-.1 F(${)108 206.4 Q F2(name)A F0 .521([*]} e)B .521(xpands to a single w)-.15 F .521(ord with the v)-.1 F .52 (alue of each array member separated by the \214rst character)-.25 F -1.374(of the)108 679.2 R F3(IFS)3.874 E F0 1.374(special v)3.624 F 1.375 -(ariable, and ${)-.25 F F2(name)A F0 1.375([@]} e)B 1.375 -(xpands each element of)-.15 F F2(name)3.875 E F0 1.375(to a separate w) -3.875 F 3.875(ord. When)-.1 F 2.028(there are no array members, ${)108 -691.2 R F2(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F -2.027(If the double-quoted e)7.028 F 2.027(xpansion occurs)-.15 F .758 -(within a w)108 703.2 R .759(ord, the e)-.1 F .759 +1.374(of the)108 218.4 R/F3 9/Times-Bold@0 SF(IFS)3.874 E F0 1.374 +(special v)3.624 F 1.375(ariable, and ${)-.25 F F2(name)A F0 1.375 +([@]} e)B 1.375(xpands each element of)-.15 F F2(name)3.875 E F0 1.375 +(to a separate w)3.875 F 3.875(ord. When)-.1 F 2.028 +(there are no array members, ${)108 230.4 R F2(name)A F0 2.028([@]} e)B +2.028(xpands to nothing.)-.15 F 2.027(If the double-quoted e)7.028 F +2.027(xpansion occurs)-.15 F .758(within a w)108 242.4 R .759 +(ord, the e)-.1 F .759 (xpansion of the \214rst parameter is joined with the be)-.15 F .759 (ginning part of the original w)-.15 F(ord,)-.1 E .516(and the e)108 -715.2 R .516(xpansion of the last parameter is joined with the last par\ +254.4 R .516(xpansion of the last parameter is joined with the last par\ t of the original w)-.15 F 3.015(ord. This)-.1 F .515(is analogous)3.015 -F .227(to the e)108 727.2 R .228(xpansion of the special parameters)-.15 +F .227(to the e)108 266.4 R .228(xpansion of the special parameters)-.15 F F1(*)2.728 E F0(and)2.728 E F1(@)2.728 E F0(\(see)2.728 E F1 .228 (Special P)2.728 F(arameters)-.1 E F0(abo)2.728 E -.15(ve)-.15 G 2.728 -(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(16)190.95 E 0 Cg EP -%%Page: 17 17 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E -.15(ex)108 84 S .886(pands to the length of ${).15 F/F1 10 -/Times-Italic@0 SF(name)A F0([)A F1(subscript)A F0 3.386(]}. If)B F1 -(subscript)3.386 E F0(is)3.386 E/F2 10/Times-Bold@0 SF(*)3.386 E F0(or) -3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886 -(xpansion is the number of ele-)-.15 F .462(ments in the array)108 96 R -5.462(.R)-.65 G .462(eferencing an array v)-5.462 F .463 +(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 278.4 +S .886(pands to the length of ${).15 F F2(name)A F0([)A F2(subscript)A +F0 3.386(]}. If)B F2(subscript)3.386 E F0(is)3.386 E F1(*)3.386 E F0(or) +3.386 E F1(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886 +(xpansion is the number of ele-)-.15 F .462(ments in the array)108 290.4 +R 5.462(.R)-.65 G .462(eferencing an array v)-5.462 F .463 (ariable without a subscript is equi)-.25 F -.25(va)-.25 G .463 -(lent to referencing the array).25 F(with a subscript of 0.)108 108 Q -(The)108 124.8 Q F2(unset)2.767 E F0 -.2(bu)2.767 G .267 -(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F2(unset) -5.267 E F1(name)2.767 E F0([)A F1(subscript)A F0 2.767(]d)C(estro)-2.767 -E .267(ys the array element at inde)-.1 F(x)-.15 E F1(sub-)2.766 E -(script)108 136.8 Q F0 6.38(.C)C 1.38(are must be tak)-6.38 F 1.38 -(en to a)-.1 F -.2(vo)-.2 G 1.38(id unw).2 F 1.38(anted side ef)-.1 F -1.38(fects caused by \214lename generation.)-.25 F F2(unset)6.38 E F1 -(name)3.88 E F0(,)A(where)108 148.8 Q F1(name)2.5 E F0(is an array)2.5 E -2.5(,o)-.65 G(r)-2.5 E F2(unset)2.5 E F1(name)2.5 E F0([)A F1(subscript) -A F0(], where)A F1(subscript)2.5 E F0(is)2.5 E F2(*)2.5 E F0(or)2.5 E F2 -(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G -(he entire array)-2.5 E(.)-.65 E(The)108 165.6 Q F2(declar)3.574 E(e) --.18 E F0(,)A F2(local)3.574 E F0 3.574(,a)C(nd)-3.574 E F2 -.18(re) -3.574 G(adonly).18 E F0 -.2(bu)3.574 G 1.073(iltins each accept a).2 F -F23.573 E F0 1.073(option to specify an inde)3.573 F -.15(xe)-.15 -G 3.573(da).15 G 1.073(rray and a)-3.573 F F23.573 E F0 .751 -(option to specify an associati)108 177.6 R 1.051 -.15(ve a)-.25 H(rray) -.15 E 5.751(.T)-.65 G(he)-5.751 E F2 -.18(re)3.251 G(ad).18 E F0 -.2(bu) -3.251 G .752(iltin accepts a).2 F F23.252 E F0 .752 -(option to assign a list of w)3.252 F .752(ords read)-.1 F .502 -(from the standard input to an array)108 189.6 R 5.502(.T)-.65 G(he) --5.502 E F2(set)3.002 E F0(and)3.002 E F2(declar)3.002 E(e)-.18 E F0 -.2 +(lent to referencing the array).25 F(with a subscript of 0.)108 302.4 Q +.168(An array v)108 319.2 R .168 +(ariable is considered set if a subscript has been assigned a v)-.25 F +2.668(alue. The)-.25 F .168(null string is a v)2.668 F .168(alid v)-.25 +F(alue.)-.25 E(The)108 336 Q F1(unset)2.766 E F0 -.2(bu)2.766 G .267 +(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F1(unset) +5.267 E F2(name)2.767 E F0([)A F2(subscript)A F0 2.767(]d)C(estro)-2.767 +E .267(ys the array element at inde)-.1 F(x)-.15 E F2(sub-)2.767 E +(script)108 348 Q F0 6.205(.C)C 1.205(are must be tak)-6.205 F 1.205 +(en to a)-.1 F -.2(vo)-.2 G 1.205(id unw).2 F 1.205(anted side ef)-.1 F +1.204(fects caused by pathname e)-.25 F(xpansion.)-.15 E F1(unset)6.204 +E F2(name)3.704 E F0(,)A(where)108 360 Q F2(name)2.5 E F0(is an array) +2.5 E 2.5(,o)-.65 G(r)-2.5 E F1(unset)2.5 E F2(name)2.5 E F0([)A F2 +(subscript)A F0(], where)A F2(subscript)2.5 E F0(is)2.5 E F1(*)2.5 E F0 +(or)2.5 E F1(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G +(he entire array)-2.5 E(.)-.65 E(The)108 376.8 Q F1(declar)3.573 E(e) +-.18 E F0(,)A F1(local)3.573 E F0 3.573(,a)C(nd)-3.573 E F1 -.18(re) +3.573 G(adonly).18 E F0 -.2(bu)3.573 G 1.073(iltins each accept a).2 F +F13.573 E F0 1.073(option to specify an inde)3.573 F -.15(xe)-.15 +G 3.574(da).15 G 1.074(rray and a)-3.574 F F13.574 E F0 .752 +(option to specify an associati)108 388.8 R 1.052 -.15(ve a)-.25 H(rray) +.15 E 5.752(.T)-.65 G(he)-5.752 E F1 -.18(re)3.252 G(ad).18 E F0 -.2(bu) +3.252 G .752(iltin accepts a).2 F F13.252 E F0 .751 +(option to assign a list of w)3.251 F .751(ords read)-.1 F .502 +(from the standard input to an array)108 400.8 R 5.502(.T)-.65 G(he) +-5.502 E F1(set)3.002 E F0(and)3.002 E F1(declar)3.002 E(e)-.18 E F0 -.2 (bu)3.002 G .502(iltins display array v).2 F .502(alues in a w)-.25 F -.502(ay that allo)-.1 F(ws)-.25 E(them to be reused as assignments.)108 -201.6 Q/F3 10.95/Times-Bold@0 SF(EXP)72 218.4 Q(ANSION)-.81 E F0 .76(Ex\ +.503(ay that allo)-.1 F(ws)-.25 E(them to be reused as assignments.)108 +412.8 Q/F4 10.95/Times-Bold@0 SF(EXP)72 429.6 Q(ANSION)-.81 E F0 .76(Ex\ pansion is performed on the command line after it has been split into w) -108 230.4 R 3.26(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26 -(nk).15 G .76(inds of)-3.26 F -.15(ex)108 242.4 S .37 -(pansion performed:).15 F F1(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E -F0(,).24 E F1 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F1(par) -2.869 E .369(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1 -.369(command sub-)2.869 F(stitution)108 254.4 Q F0(,).24 E F1 -(arithmetic e)2.5 E(xpansion)-.2 E F0(,).24 E F1(wor)2.5 E 2.5(ds)-.37 G -(plitting)-2.5 E F0 2.5(,a).22 G(nd)-2.5 E F1(pathname e)2.5 E(xpansion) --.2 E F0(.).24 E .47(The order of e)108 271.2 R .471 +108 441.6 R 3.26(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26 +(nk).15 G .76(inds of)-3.26 F -.15(ex)108 453.6 S .369 +(pansion performed:).15 F F2(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E +F0(,).24 E F2 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F2(par) +2.869 E .369(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F2 +.37(command sub-)2.869 F(stitution)108 465.6 Q F0(,).24 E F2 +(arithmetic e)2.5 E(xpansion)-.2 E F0(,).24 E F2(wor)2.5 E 2.5(ds)-.37 G +(plitting)-2.5 E F0 2.5(,a).22 G(nd)-2.5 E F2(pathname e)2.5 E(xpansion) +-.2 E F0(.).24 E .471(The order of e)108 482.4 R .471 (xpansions is: brace e)-.15 F .471(xpansion, tilde e)-.15 F .471 -(xpansion, parameter)-.15 F 2.971(,v)-.4 G .471 -(ariable and arithmetic e)-3.221 F(xpansion)-.15 E -(and command substitution \(done in a left-to-right f)108 283.2 Q +(xpansion, parameter)-.15 F 2.971(,v)-.4 G .47(ariable and arithmetic e) +-3.221 F(xpansion)-.15 E +(and command substitution \(done in a left-to-right f)108 494.4 Q (ashion\), w)-.1 E(ord splitting, and pathname e)-.1 E(xpansion.)-.15 E -(On systems that can support it, there is an additional e)108 300 Q -(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F1(pr)2.5 E -(ocess substitution)-.45 E F0(.)A 1.487(Only brace e)108 316.8 R 1.487 -(xpansion, w)-.15 F 1.487(ord splitting, and pathname e)-.1 F 1.487 -(xpansion can change the number of w)-.15 F 1.486(ords of the)-.1 F -.15 -(ex)108 328.8 S 1.164(pansion; other e).15 F 1.164(xpansions e)-.15 F -1.164(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665 -(ord. The)-.1 F 1.165(only e)3.665 F 1.165(xceptions to this are the) --.15 F -.15(ex)108 340.8 S(pansions of ").15 E F2($@)A F0 2.5("a)C(nd ") --2.5 E F2(${)A F1(name)A F2([@]})A F0 2.5("a)C 2.5(se)-2.5 G -(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0 -SF -.666(PA)2.5 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F2 -(Brace Expansion)87 357.6 Q F1(Br)108.58 369.6 Q .606(ace e)-.15 F -(xpansion)-.2 E F0 .606 +(On systems that can support it, there is an additional e)108 511.2 Q +(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F2(pr)2.5 E +(ocess substitution)-.45 E F0(.)A 1.486(Only brace e)108 528 R 1.486 +(xpansion, w)-.15 F 1.486(ord splitting, and pathname e)-.1 F 1.487 +(xpansion can change the number of w)-.15 F 1.487(ords of the)-.1 F -.15 +(ex)108 540 S 1.165(pansion; other e).15 F 1.165(xpansions e)-.15 F +1.165(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665 +(ord. The)-.1 F 1.164(only e)3.665 F 1.164(xceptions to this are the) +-.15 F -.15(ex)108 552 S(pansions of ").15 E F1($@)A F0 2.5("a)C(nd ") +-2.5 E F1(${)A F2(name)A F1([@]})A F0 2.5("a)C 2.5(se)-2.5 G +(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E F3 -.666(PA)2.5 G +(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F1(Brace Expansion)87 568.8 +Q F2(Br)108.58 580.8 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606 (is a mechanism by which arbitrary strings may be generated.)3.346 F -.606(This mechanism is similar)5.606 F(to)108 381.6 Q F1 .415 +.606(This mechanism is similar)5.606 F(to)108 592.8 Q F2 .415 (pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415 (ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F .415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G -(he)-2.915 E .152(form of an optional)108 393.6 R F1(pr)2.652 E(eamble) +(he)-2.915 E .151(form of an optional)108 604.8 R F2(pr)2.651 E(eamble) -.37 E F0 2.651(,f).18 G(ollo)-2.651 E .151 (wed by either a series of comma-separated strings or a sequence e)-.25 -F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 405.6 R -.563(wed by an optional)-.25 F F1(postscript)3.063 E F0 5.563(.T).68 G +F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 616.8 R +.563(wed by an optional)-.25 F F2(postscript)3.063 E F0 5.563(.T).68 G .563(he preamble is pre\214x)-5.563 F .563(ed to each string)-.15 F .659 (contained within the braces, and the postscript is then appended to ea\ -ch resulting string, e)108 417.6 R .658(xpanding left to)-.15 F(right.) -108 429.6 Q .718(Brace e)108 446.4 R .719(xpansions may be nested.)-.15 +ch resulting string, e)108 628.8 R .659(xpanding left to)-.15 F(right.) +108 640.8 Q .719(Brace e)108 657.6 R .719(xpansions may be nested.)-.15 F .719(The results of each e)5.719 F .719 (xpanded string are not sorted; left to right order is)-.15 F(preserv) -108 458.4 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F2({)A F0 -(d,c,b)A F2(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.243(As) -108 475.2 S .743(equence e)-3.243 F .743(xpression tak)-.15 F .743 -(es the form)-.1 F F2({)3.243 E F1(x)A F2(..)A F1(y)A F2([..)A F1(incr)A -F2(]})A F0 3.243(,w)C(here)-3.243 E F1(x)3.243 E F0(and)3.242 E F1(y) -3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,) --.15 F(and)108 487.2 Q F1(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G +108 669.6 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F1({)A F0 +(d,c,b)A F1(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.242(As) +108 686.4 S .742(equence e)-3.242 F .742(xpression tak)-.15 F .742 +(es the form)-.1 F F1({)3.242 E F2(x)A F1(..)A F2(y)A F1([..)A F2(incr)A +F1(]})A F0 3.242(,w)C(here)-3.242 E F2(x)3.242 E F0(and)3.243 E F2(y) +3.243 E F0 .743(are either inte)3.243 F .743(gers or single characters,) +-.15 F(and)108 698.4 Q F2(incr)3.032 E F0 3.032(,a)C 3.032(no)-3.032 G .532(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G .532(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532 -(xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108 -499.2 R F1(x)2.578 E F0(and)2.578 E F1(y)2.578 E F0 2.578(,i)C(nclusi) --2.578 E -.15(ve)-.25 G 5.078(.S).15 G .078(upplied inte)-5.078 F .077 -(gers may be pre\214x)-.15 F .077(ed with)-.15 F F1(0)2.577 E F0 .077 -(to force each term to ha)2.577 F .377 -.15(ve t)-.2 H(he).15 E .014 -(same width.)108 511.2 R .014(When either)5.014 F F1(x)2.514 E F0(or) -2.514 E F1(y)2.514 E F0(be)2.514 E .015(gins with a zero, the shell att\ -empts to force all generated terms to contain)-.15 F 1.143 -(the same number of digits, zero-padding where necessary)108 523.2 R -6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F -(xpression)-.15 E -.15(ex)108 535.2 S .541(pands to each character le) -.15 F .541(xicographically between)-.15 F F1(x)3.041 E F0(and)3.042 E F1 -(y)3.042 E F0 3.042(,i)C(nclusi)-3.042 E -.15(ve)-.25 G 5.542(.N).15 G -.542(ote that both)-5.542 F F1(x)3.042 E F0(and)3.042 E F1(y)3.042 E F0 -.542(must be of)3.042 F .183(the same type.)108 547.2 R .182 -(When the increment is supplied, it is used as the dif)5.183 F .182 -(ference between each term.)-.25 F .182(The def)5.182 F(ault)-.1 E -(increment is 1 or -1 as appropriate.)108 559.2 Q .581(Brace e)108 576 R -.581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581(ther e) --3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582 -(haracters special to other e)-3.082 F(xpansions)-.15 E .016 -(are preserv)108 588 R .016(ed in the result.)-.15 F .016 -(It is strictly te)5.016 F(xtual.)-.15 E F2(Bash)5.016 E F0 .015 -(does not apply an)2.516 F 2.515(ys)-.15 G .015 -(yntactic interpretation to the con-)-2.515 F(te)108 600 Q(xt of the e) --.15 E(xpansion or the te)-.15 E(xt between the braces.)-.15 E 3.632(Ac) -108 616.8 S 1.132(orrectly-formed brace e)-3.632 F 1.132(xpansion must \ -contain unquoted opening and closing braces, and at least one)-.15 F -3.441(unquoted comma or a v)108 628.8 R 3.441(alid sequence e)-.25 F -5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441 -(ncorrectly formed brace e)-5.941 F 3.44(xpansion is left)-.15 F 2.755 -(unchanged. A)108 640.8 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0 -.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255 -(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.911 -(sion. T)108 652.8 R 2.911(oa)-.8 G -.2(vo)-3.111 G .411 -(id con\215icts with parameter e).2 F .411(xpansion, the string)-.15 F -F2(${)2.911 E F0 .41(is not considered eligible for brace e)2.911 F -(xpan-)-.15 E(sion.)108 664.8 Q 1.476(This construct is typically used \ -as shorthand when the common pre\214x of the strings to be generated is) -108 681.6 R(longer than in the abo)108 693.6 Q .3 -.15(ve ex)-.15 H -(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 710.4 Q -.65(w,)-.25 -G(dist,b).65 E(ugs})-.2 E(or)108 722.4 Q(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(17)190.95 E 0 Cg EP +(xpression e)-.15 F .531(xpands to each)-.15 F .077(number between)108 +710.4 R F2(x)2.577 E F0(and)2.577 E F2(y)2.577 E F0 2.577(,i)C(nclusi) +-2.577 E -.15(ve)-.25 G 5.077(.S).15 G .077(upplied inte)-5.077 F .077 +(gers may be pre\214x)-.15 F .077(ed with)-.15 F F2(0)2.577 E F0 .078 +(to force each term to ha)2.578 F .378 -.15(ve t)-.2 H(he).15 E .015 +(same width.)108 722.4 R .015(When either)5.015 F F2(x)2.515 E F0(or) +2.515 E F2(y)2.515 E F0(be)2.515 E .014(gins with a zero, the shell att\ +empts to force all generated terms to contain)-.15 F(GNU Bash-4.1)72 768 +Q(2009 December 29)135.965 E(17)185.955 E 0 Cg EP %%Page: 18 18 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(cho)144 84 Q(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E -(x?.?*,ho)-.15 E(w_e)-.25 E(x}})-.15 E .618(Brace e)108 100.8 R .618 +-.35 E 1.143(the same number of digits, zero-padding where necessary)108 +84 R 6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F +(xpression)-.15 E -.15(ex)108 96 S .542(pands to each character le).15 F +.542(xicographically between)-.15 F/F1 10/Times-Italic@0 SF(x)3.042 E F0 +(and)3.042 E F1(y)3.042 E F0 3.042(,i)C(nclusi)-3.042 E -.15(ve)-.25 G +5.542(.N).15 G .542(ote that both)-5.542 F F1(x)3.041 E F0(and)3.041 E +F1(y)3.041 E F0 .541(must be of)3.041 F .182(the same type.)108 108 R +.182(When the increment is supplied, it is used as the dif)5.182 F .183 +(ference between each term.)-.25 F .183(The def)5.183 F(ault)-.1 E +(increment is 1 or -1 as appropriate.)108 120 Q .582(Brace e)108 136.8 R +.582(xpansion is performed before an)-.15 F 3.082(yo)-.15 G .581(ther e) +-3.082 F .581(xpansions, and an)-.15 F 3.081(yc)-.15 G .581 +(haracters special to other e)-3.081 F(xpansions)-.15 E .015 +(are preserv)108 148.8 R .015(ed in the result.)-.15 F .015 +(It is strictly te)5.015 F(xtual.)-.15 E/F2 10/Times-Bold@0 SF(Bash) +5.016 E F0 .016(does not apply an)2.516 F 2.516(ys)-.15 G .016 +(yntactic interpretation to the con-)-2.516 F(te)108 160.8 Q +(xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.) +-.15 E 3.633(Ac)108 177.6 S 1.133(orrectly-formed brace e)-3.633 F 1.132 +(xpansion must contain unquoted opening and closing braces, and at leas\ +t one)-.15 F 3.44(unquoted comma or a v)108 189.6 R 3.441 +(alid sequence e)-.25 F 5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441 +(ncorrectly formed brace e)-5.941 F 3.441(xpansion is left)-.15 F 2.755 +(unchanged. A)108 201.6 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0 +.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255 +(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.91 +(sion. T)108 213.6 R 2.91(oa)-.8 G -.2(vo)-3.11 G .41 +(id con\215icts with parameter e).2 F .411(xpansion, the string)-.15 F +F2(${)2.911 E F0 .411(is not considered eligible for brace e)2.911 F +(xpan-)-.15 E(sion.)108 225.6 Q 1.476(This construct is typically used \ +as shorthand when the common pre\214x of the strings to be generated is) +108 242.4 R(longer than in the abo)108 254.4 Q .3 -.15(ve ex)-.15 H +(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 271.2 Q -.65(w,)-.25 +G(dist,b).65 E(ugs})-.2 E(or)108 283.2 Q(cho)144 295.2 Q +(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15 E(w_e) +-.25 E(x}})-.15 E .618(Brace e)108 312 R .618 (xpansion introduces a slight incompatibility with historical v)-.15 F -.618(ersions of)-.15 F/F1 10/Times-Bold@0 SF(sh)3.118 E F0(.)A F1(sh) -5.618 E F0 .618(does not treat open-)3.118 F .247 -(ing or closing braces specially when the)108 112.8 R 2.747(ya)-.15 G -.247(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248 -(es them in the output.)-.15 F F1(Bash)5.248 E F0(remo)108 124.8 Q -.15 +.618(ersions of)-.15 F F2(sh)3.118 E F0(.)A F2(sh)5.618 E F0 .618 +(does not treat open-)3.118 F .248 +(ing or closing braces specially when the)108 324 R 2.748(ya)-.15 G .247 +(ppear as part of a w)-2.748 F .247(ord, and preserv)-.1 F .247 +(es them in the output.)-.15 F F2(Bash)5.247 E F0(remo)108 336 Q -.15 (ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03 (ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03 -(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F1(sh) -3.53 E F0(as)3.53 E/F2 10/Times-Italic@0 SF(\214le{1,2})108 136.8 Q F0 -.514(appears identically in the output.)3.014 F .515(The same w)5.515 F -.515(ord is output as)-.1 F F2 .515(\214le1 \214le2)4.925 F F0 .515 -(after e)3.035 F .515(xpansion by)-.15 F F1(bash)3.015 E F0(.)A .437 -(If strict compatibility with)108 148.8 R F1(sh)2.936 E F0 .436 -(is desired, start)2.936 F F1(bash)2.936 E F0 .436(with the)2.936 F F1 -(+B)2.936 E F0 .436(option or disable brace e)2.936 F .436 -(xpansion with the)-.15 F F1(+B)108 160.8 Q F0(option to the)2.5 E F1 -(set)2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E -(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1 -.18(Ti) -87 177.6 S(lde Expansion).18 E F0 1.086(If a w)108 189.6 R 1.086(ord be) --.1 F 1.086(gins with an unquoted tilde character \(`)-.15 F F1(~)A F0 -1.087('\), all of the characters preceding the \214rst unquoted)B .185(\ -slash \(or all characters, if there is no unquoted slash\) are consider\ -ed a)108 201.6 R F2(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685 -(fn)-5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\ -\214x are quoted, the characters in the tilde-pre\214x follo)108 213.6 R -.726(wing the tilde are treated as a possible)-.25 F F2(lo)108 225.6 Q -.523(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523 +(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh) +3.53 E F0(as)3.53 E F1(\214le{1,2})108 348 Q F0 .515 +(appears identically in the output.)3.015 F .515(The same w)5.515 F .515 +(ord is output as)-.1 F F1 .514(\214le1 \214le2)4.925 F F0 .514(after e) +3.034 F .514(xpansion by)-.15 F F2(bash)3.014 E F0(.)A .436 +(If strict compatibility with)108 360 R F2(sh)2.936 E F0 .436 +(is desired, start)2.936 F F2(bash)2.936 E F0 .436(with the)2.936 F F2 +(+B)2.936 E F0 .436(option or disable brace e)2.936 F .437 +(xpansion with the)-.15 F F2(+B)108 372 Q F0(option to the)2.5 E F2(set) +2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09 +E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2 -.18(Ti)87 388.8 S +(lde Expansion).18 E F0 1.087(If a w)108 400.8 R 1.087(ord be)-.1 F +1.087(gins with an unquoted tilde character \(`)-.15 F F2(~)A F0 1.086 +('\), all of the characters preceding the \214rst unquoted)B .185(slash\ + \(or all characters, if there is no unquoted slash\) are considered a) +108 412.8 R F1(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685(fn) +-5.185 G .185(one of the characters)-2.685 F .726(in the tilde-pre\214x\ + are quoted, the characters in the tilde-pre\214x follo)108 424.8 R .725 +(wing the tilde are treated as a possible)-.25 F F1(lo)108 436.8 Q .522 +(gin name)-.1 F F0 5.522(.I)C 3.022(ft)-5.522 G .522 (his login name is the null string, the tilde is replaced with the v) --3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 237.6 Q/F4 -9/Times-Roman@0 SF(.)A F0(If)4.786 E F3(HOME)2.786 E F0 .287 -(is unset, the home directory of the user e)2.536 F -.15(xe)-.15 G .287 -(cuting the shell is substituted instead.).15 F(Other)5.287 E(-)-.2 E(w\ +-3.022 F .523(alue of the shell parameter)-.25 F F3(HOME)108 448.8 Q/F4 +9/Times-Roman@0 SF(.)A F0(If)4.787 E F3(HOME)2.787 E F0 .287 +(is unset, the home directory of the user e)2.537 F -.15(xe)-.15 G .286 +(cuting the shell is substituted instead.).15 F(Other)5.286 E(-)-.2 E(w\ ise, the tilde-pre\214x is replaced with the home directory associated \ -with the speci\214ed login name.)108 249.6 Q .093 -(If the tilde-pre\214x is a `~+', the v)108 266.4 R .092 +with the speci\214ed login name.)108 460.8 Q .092 +(If the tilde-pre\214x is a `~+', the v)108 477.6 R .092 (alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092 -(replaces the tilde-pre\214x.)2.342 F .092(If the tilde-pre\214x is) -5.092 F 3.403(a`)108 278.4 S .903(~\255', the v)-3.403 F .903 +(replaces the tilde-pre\214x.)2.342 F .093(If the tilde-pre\214x is) +5.093 F 3.404(a`)108 489.6 S .904(~\255', the v)-3.404 F .904 (alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0 -.904(if it is set, is substituted.)3.154 F .904(If the characters follo) -5.904 F .904(wing the)-.25 F 1.642 -(tilde in the tilde-pre\214x consist of a number)108 290.4 R F2(N)4.142 -E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.641 -(ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F 1.437(replaced w\ +.904(if it is set, is substituted.)3.154 F .903(If the characters follo) +5.903 F .903(wing the)-.25 F 1.641 +(tilde in the tilde-pre\214x consist of a number)108 501.6 R F1(N)4.141 +E F0 4.142(,o)C 1.642(ptionally pre\214x)-4.142 F 1.642 +(ed by a `+' or a `\255', the tilde-pre\214x is)-.15 F 1.438(replaced w\ ith the corresponding element from the directory stack, as it w)108 -302.4 R 1.438(ould be displayed by the)-.1 F F1(dirs)3.938 E F0 -.2(bu) -108 314.4 S .455(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.955(dw).1 G -.455(ith the tilde-pre\214x as an ar)-2.955 F 2.954(gument. If)-.18 F -.454(the characters follo)2.954 F .454 +513.6 R 1.437(ould be displayed by the)-.1 F F2(dirs)3.937 E F0 -.2(bu) +108 525.6 S .454(iltin in).2 F -.2(vo)-.4 G -.1(ke).2 G 2.954(dw).1 G +.454(ith the tilde-pre\214x as an ar)-2.954 F 2.954(gument. If)-.18 F +.454(the characters follo)2.954 F .455 (wing the tilde in the tilde-pre\214x)-.25 F (consist of a number without a leading `+' or `\255', `+' is assumed.) -108 326.4 Q(If the login name is in)108 343.2 Q -.25(va)-.4 G +108 537.6 Q(If the login name is in)108 554.4 Q -.25(va)-.4 G (lid, or the tilde e).25 E(xpansion f)-.15 E(ails, the w)-.1 E -(ord is unchanged.)-.1 E .166(Each v)108 360 R .167 +(ord is unchanged.)-.1 E .167(Each v)108 571.2 R .167 (ariable assignment is check)-.25 F .167(ed for unquoted tilde-pre\214x) --.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E -F0 .167(or the \214rst)2.667 F F1(=)2.667 E F0 5.167(.I)C(n)-5.167 E -.282(these cases, tilde e)108 372 R .282(xpansion is also performed.) +-.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F2(:)2.667 E +F0 .167(or the \214rst)2.667 F F2(=)2.666 E F0 5.166(.I)C(n)-5.166 E +.281(these cases, tilde e)108 583.2 R .282(xpansion is also performed.) -.15 F(Consequently)5.282 E 2.782(,o)-.65 G .282 (ne may use \214le names with tildes in assign-)-2.782 F(ments to)108 -384 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E -.855(AT)-.666 -G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)-.666 G(H).855 E -F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E(alue.)-.25 -E F1 -.1(Pa)87 400.8 S(rameter Expansion).1 E F0 1.605(The `)108 412.8 R -F1($)A F0 4.105('c)C 1.605(haracter introduces parameter e)-4.105 F -1.606(xpansion, command substitution, or arithmetic e)-.15 F 4.106 -(xpansion. The)-.15 F .407(parameter name or symbol to be e)108 424.8 R -.407(xpanded may be enclosed in braces, which are optional b)-.15 F .406 -(ut serv)-.2 F 2.906(et)-.15 G 2.906(op)-2.906 G(ro-)-2.906 E .032 -(tect the v)108 436.8 R .032(ariable to be e)-.25 F .032 -(xpanded from characters immediately follo)-.15 F .033 -(wing it which could be interpreted as part)-.25 F(of the name.)108 -448.8 Q 1.19 +595.2 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25 E -.855(AT) +-.666 G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)-.666 G(H) +.855 E F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E +(alue.)-.25 E F2 -.1(Pa)87 612 S(rameter Expansion).1 E F0 1.606(The `) +108 624 R F2($)A F0 4.106('c)C 1.606(haracter introduces parameter e) +-4.106 F 1.605(xpansion, command substitution, or arithmetic e)-.15 F +4.105(xpansion. The)-.15 F .406(parameter name or symbol to be e)108 636 +R .407(xpanded may be enclosed in braces, which are optional b)-.15 F +.407(ut serv)-.2 F 2.907(et)-.15 G 2.907(op)-2.907 G(ro-)-2.907 E .033 +(tect the v)108 648 R .033(ariable to be e)-.25 F .033 +(xpanded from characters immediately follo)-.15 F .032 +(wing it which could be interpreted as part)-.25 F(of the name.)108 660 +Q 1.189 (When braces are used, the matching ending brace is the \214rst `)108 -465.6 R F1(})A F0 3.689('n)C 1.189 -(ot escaped by a backslash or within a)-3.689 F 2.15 -(quoted string, and not within an embedded arithmetic e)108 477.6 R 2.15 -(xpansion, command substitution, or parameter)-.15 F -.15(ex)108 489.6 S -(pansion.).15 E(${)108 506.4 Q F2(par)A(ameter)-.15 E F0(})A 1.205 -(The v)144 518.4 R 1.205(alue of)-.25 F F2(par)3.705 E(ameter)-.15 E F0 -1.204(is substituted.)3.705 F 1.204(The braces are required when)6.204 F -F2(par)4.954 E(ameter)-.15 E F0 1.204(is a positional)4.434 F .264 -(parameter with more than one digit, or when)144 530.4 R F2(par)4.014 E -(ameter)-.15 E F0 .264(is follo)3.494 F .264 -(wed by a character which is not to)-.25 F -(be interpreted as part of its name.)144 542.4 Q 1.509 -(If the \214rst character of)108 559.2 R F2(par)4.009 E(ameter)-.15 E F0 -1.509(is an e)4.009 F 1.509(xclamation point, a le)-.15 F -.15(ve)-.25 G -4.009(lo).15 G 4.008(fv)-4.009 G 1.508 -(ariable indirection is introduced.)-4.258 F F1(Bash)108 571.2 Q F0 .106 -(uses the v)2.606 F .106(alue of the v)-.25 F .106 -(ariable formed from the rest of)-.25 F F2(par)2.606 E(ameter)-.15 E F0 -.106(as the name of the v)2.606 F .106(ariable; this v)-.25 F(ari-)-.25 -E .352(able is then e)108 583.2 R .352(xpanded and that v)-.15 F .351 -(alue is used in the rest of the substitution, rather than the v)-.25 F -.351(alue of)-.25 F F2(par)2.851 E(ame-)-.15 E(ter)108 595.2 Q F0 2.519 -(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F2(indir) -2.519 E .019(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019 -F .02(xceptions to this are the e)-.15 F .02(xpansions of ${!)-.15 F F2 -(pr)A(e\214x)-.37 E F0 .02(*} and)B(${)108 607.2 Q F1(!)A F2(name)A F0 -([)A F2(@)A F0 .763(]} described belo)B 4.563 -.65(w. T)-.25 H .763 -(he e).65 F .763(xclamation point must immediately follo)-.15 F 3.263 -(wt)-.25 G .763(he left brace in order to)-3.263 F -(introduce indirection.)108 619.2 Q .334(In each of the cases belo)108 -636 R -.65(w,)-.25 G F2(wor)3.484 E(d)-.37 E F0 .334 -(is subject to tilde e)2.834 F .334(xpansion, parameter e)-.15 F .334 -(xpansion, command substitution,)-.15 F(and arithmetic e)108 648 Q -(xpansion.)-.15 E .698(When not performing substring e)108 664.8 R .698 -(xpansion, using the forms documented belo)-.15 F -.65(w,)-.25 G F1 -(bash)3.848 E F0 .697(tests for a parameter)3.198 F -(that is unset or null.)108 676.8 Q(Omitting the colon results in a tes\ -t only for a parameter that is unset.)5 E(${)108 693.6 Q F2(par)A -(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})A F1 .722(Use Default V) -144 705.6 R(alues)-.92 E F0 5.722(.I)C(f)-5.722 E F2(par)4.472 E(ameter) --.15 E F0 .723(is unset or null, the e)3.952 F .723(xpansion of)-.15 F -F2(wor)3.563 E(d)-.37 E F0 .723(is substituted.)3.993 F(Other)5.723 E(-) --.2 E(wise, the v)144 717.6 Q(alue of)-.25 E F2(par)3.75 E(ameter)-.15 E -F0(is substituted.)3.23 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E -(18)190.95 E 0 Cg EP +676.8 R F2(})A F0 3.69('n)C 1.19(ot escaped by a backslash or within a) +-3.69 F 2.15(quoted string, and not within an embedded arithmetic e)108 +688.8 R 2.15(xpansion, command substitution, or parameter)-.15 F -.15 +(ex)108 700.8 S(pansion.).15 E(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(18)185.955 E 0 Cg EP %%Page: 19 19 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10 -/Times-Bold@0 SF(:=)A F1(wor)A(d)-.37 E F0(})A F2 2.005 -(Assign Default V)144 96 R(alues)-.92 E F0 7.005(.I)C(f)-7.005 E F1(par) -5.755 E(ameter)-.15 E F0 2.005(is unset or null, the e)5.235 F 2.004 -(xpansion of)-.15 F F1(wor)4.844 E(d)-.37 E F0 2.004(is assigned to) -5.274 F F1(par)144 108 Q(ameter)-.15 E F0 5.278(.T).73 G .278(he v) --5.278 F .278(alue of)-.25 F F1(par)4.028 E(ameter)-.15 E F0 .278 -(is then substituted.)3.508 F .279 +-.35 E(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E F0(})A +1.204(The v)144 96 R 1.204(alue of)-.25 F F1(par)3.704 E(ameter)-.15 E +F0 1.204(is substituted.)3.704 F 1.204(The braces are required when) +6.204 F F1(par)4.955 E(ameter)-.15 E F0 1.205(is a positional)4.435 F +.264(parameter with more than one digit, or when)144 108 R F1(par)4.014 +E(ameter)-.15 E F0 .264(is follo)3.494 F .264 +(wed by a character which is not to)-.25 F +(be interpreted as part of its name.)144 120 Q .685 +(If the \214rst character of)108 136.8 R F1(par)3.185 E(ameter)-.15 E F0 +.685(is an e)3.185 F .685(xclamation point \()-.15 F/F2 10/Times-Bold@0 +SF(!)A F0 .685(\), a le)B -.15(ve)-.25 G 3.186(lo).15 G 3.186(fv)-3.186 +G .686(ariable indirection is introduced.)-3.436 F F2(Bash)108 148.8 Q +F0 .106(uses the v)2.606 F .106(alue of the v)-.25 F .106 +(ariable formed from the rest of)-.25 F F1(par)2.606 E(ameter)-.15 E F0 +.106(as the name of the v)2.606 F .106(ariable; this v)-.25 F(ari-)-.25 +E .351(able is then e)108 160.8 R .351(xpanded and that v)-.15 F .352 +(alue is used in the rest of the substitution, rather than the v)-.25 F +.352(alue of)-.25 F F1(par)2.852 E(ame-)-.15 E(ter)108 172.8 Q F0 2.52 +(itself. This)2.52 F .02(is kno)2.52 F .02(wn as)-.25 F F1(indir)2.52 E +.02(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019 F .019 +(xceptions to this are the e)-.15 F .019(xpansions of ${!)-.15 F F1(pr)A +(e\214x)-.37 E F0 .019(*} and)B(${)108 184.8 Q F2(!)A F1(name)A F0([)A +F1(@)A F0 .762(]} described belo)B 4.563 -.65(w. T)-.25 H .763(he e).65 +F .763(xclamation point must immediately follo)-.15 F 3.263(wt)-.25 G +.763(he left brace in order to)-3.263 F(introduce indirection.)108 196.8 +Q .334(In each of the cases belo)108 213.6 R -.65(w,)-.25 G F1(wor)3.484 +E(d)-.37 E F0 .334(is subject to tilde e)2.834 F .334 +(xpansion, parameter e)-.15 F .334(xpansion, command substitution,)-.15 +F(and arithmetic e)108 225.6 Q(xpansion.)-.15 E .697 +(When not performing substring e)108 242.4 R .698 +(xpansion, using the forms documented belo)-.15 F -.65(w,)-.25 G F2 +(bash)3.848 E F0 .698(tests for a parameter)3.198 F +(that is unset or null.)108 254.4 Q(Omitting the colon results in a tes\ +t only for a parameter that is unset.)5 E(${)108 271.2 Q F1(par)A +(ameter)-.15 E F2<3aad>A F1(wor)A(d)-.37 E F0(})A F2 .723(Use Default V) +144 283.2 R(alues)-.92 E F0 5.723(.I)C(f)-5.723 E F1(par)4.473 E(ameter) +-.15 E F0 .723(is unset or null, the e)3.953 F .722(xpansion of)-.15 F +F1(wor)3.562 E(d)-.37 E F0 .722(is substituted.)3.992 F(Other)5.722 E(-) +-.2 E(wise, the v)144 295.2 Q(alue of)-.25 E F1(par)3.75 E(ameter)-.15 E +F0(is substituted.)3.23 E(${)108 307.2 Q F1(par)A(ameter)-.15 E F2(:=)A +F1(wor)A(d)-.37 E F0(})A F2 2.004(Assign Default V)144 319.2 R(alues) +-.92 E F0 7.004(.I)C(f)-7.004 E F1(par)5.754 E(ameter)-.15 E F0 2.005 +(is unset or null, the e)5.234 F 2.005(xpansion of)-.15 F F1(wor)4.845 E +(d)-.37 E F0 2.005(is assigned to)5.275 F F1(par)144 331.2 Q(ameter)-.15 +E F0 5.279(.T).73 G .279(he v)-5.279 F .279(alue of)-.25 F F1(par)4.029 +E(ameter)-.15 E F0 .278(is then substituted.)3.508 F .278 (Positional parameters and special param-)5.278 F -(eters may not be assigned to in this w)144 120 Q(ay)-.1 E(.)-.65 E(${) -108 132 Q F1(par)A(ameter)-.15 E F2(:?)A F1(wor)A(d)-.37 E F0(})A F2 -.535(Display Err)144 144 R .535(or if Null or Unset)-.18 F F0 5.535(.I)C -(f)-5.535 E F1(par)4.285 E(ameter)-.15 E F0 .535 +(eters may not be assigned to in this w)144 343.2 Q(ay)-.1 E(.)-.65 E +(${)108 355.2 Q F1(par)A(ameter)-.15 E F2(:?)A F1(wor)A(d)-.37 E F0(})A +F2 .535(Display Err)144 367.2 R .535(or if Null or Unset)-.18 F F0 5.535 +(.I)C(f)-5.535 E F1(par)4.285 E(ameter)-.15 E F0 .535 (is null or unset, the e)3.765 F .535(xpansion of)-.15 F F1(wor)3.035 E -(d)-.37 E F0 .535(\(or a mes-)3.035 F .661(sage to that ef)144 156 R -.661(fect if)-.25 F F1(wor)3.501 E(d)-.37 E F0 .662(is not present\) is\ - written to the standard error and the shell, if it is not)3.931 F -(interacti)144 168 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,) +(d)-.37 E F0 .535(\(or a mes-)3.035 F .662(sage to that ef)144 379.2 R +.662(fect if)-.25 F F1(wor)3.502 E(d)-.37 E F0 .661(is not present\) is\ + written to the standard error and the shell, if it is not)3.932 F +(interacti)144 391.2 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,) -2.65 F(the v)2.5 E(alue of)-.25 E F1(par)2.5 E(ameter)-.15 E F0 -(is substituted.)2.5 E(${)108 180 Q F1(par)A(ameter)-.15 E F2(:+)A F1 -(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 192 R .745(nate V)-.15 F +(is substituted.)2.5 E(${)108 403.2 Q F1(par)A(ameter)-.15 E F2(:+)A F1 +(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 415.2 R .745(nate V)-.15 F (alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E(ameter)-.15 E F0 .745(is null or unset, nothing is substituted, otherwise the e)3.975 F -(xpan-)-.15 E(sion of)144 204 Q F1(wor)2.84 E(d)-.37 E F0 -(is substituted.)3.27 E(${)108 216 Q F1(par)A(ameter)-.15 E F2(:)A F1 -(of)A(fset)-.18 E F0(})A(${)108 228 Q F1(par)A(ameter)-.15 E F2(:)A F1 -(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .796 -(Substring Expansion.)144 240 R F0 .796(Expands to up to)5.796 F F1 +(xpan-)-.15 E(sion of)144 427.2 Q F1(wor)2.84 E(d)-.37 E F0 +(is substituted.)3.27 E(${)108 439.2 Q F1(par)A(ameter)-.15 E F2(:)A F1 +(of)A(fset)-.18 E F0(})A(${)108 451.2 Q F1(par)A(ameter)-.15 E F2(:)A F1 +(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .797 +(Substring Expansion.)144 463.2 R F0 .796(Expands to up to)5.797 F F1 (length)3.296 E F0 .796(characters of)3.296 F F1(par)3.296 E(ameter)-.15 -E F0 .797(starting at the character)3.296 F .229(speci\214ed by)144 252 -R F1(of)2.729 E(fset)-.18 E F0 5.229(.I)C(f)-5.229 E F1(length)2.729 E -F0 .229(is omitted, e)2.729 F .229(xpands to the substring of)-.15 F F1 -(par)2.729 E(ameter)-.15 E F0 .228(starting at the char)2.728 F(-)-.2 E -.432(acter speci\214ed by)144 264 R F1(of)2.933 E(fset)-.18 E F0(.)A F1 -(length)5.433 E F0(and)2.933 E F1(of)2.933 E(fset)-.18 E F0 .433 -(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F/F3 9/Times-Bold@0 -SF .433(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144 276 S(ION).855 -E F0(belo)2.577 E(w\).)-.25 E F1(length)5.327 E F0 .327(must e)2.827 F --.25(va)-.25 G .326(luate to a number greater than or equal to zero.).25 -F(If)5.326 E F1(of)2.826 E(fset)-.18 E F0 -.25(eva)2.826 G(luates).25 E -.015(to a number less than zero, the v)144 288 R .015 +E F0 .796(starting at the character)3.296 F .228(speci\214ed by)144 +475.2 R F1(of)2.728 E(fset)-.18 E F0 5.228(.I)C(f)-5.228 E F1(length) +2.728 E F0 .229(is omitted, e)2.729 F .229(xpands to the substring of) +-.15 F F1(par)2.729 E(ameter)-.15 E F0 .229(starting at the char)2.729 F +(-)-.2 E .433(acter speci\214ed by)144 487.2 R F1(of)2.933 E(fset)-.18 E +F0(.)A F1(length)5.433 E F0(and)2.933 E F1(of)2.933 E(fset)-.18 E F0 +.433(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F/F3 9 +/Times-Bold@0 SF .432(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144 +499.2 S(ION).855 E F0(belo)2.576 E(w\).)-.25 E F1(length)5.326 E F0 .326 +(must e)2.826 F -.25(va)-.25 G .326 +(luate to a number greater than or equal to zero.).25 F(If)5.327 E F1 +(of)2.827 E(fset)-.18 E F0 -.25(eva)2.827 G(luates).25 E .016 +(to a number less than zero, the v)144 511.2 R .015 (alue is used as an of)-.25 F .015(fset from the end of the v)-.25 F -.016(alue of)-.25 F F1(par)2.516 E(ameter)-.15 E F0 5.016(.I)C(f)-5.016 -E F1(par)144 300 Q(ameter)-.15 E F0(is)3.25 E F2(@)3.25 E F0 3.25(,t)C +.015(alue of)-.25 F F1(par)2.515 E(ameter)-.15 E F0 5.015(.I)C(f)-5.015 +E F1(par)144 523.2 Q(ameter)-.15 E F0(is)3.25 E F2(@)3.25 E F0 3.25(,t)C .75(he result is)-3.25 F F1(length)3.25 E F0 .75 (positional parameters be)3.25 F .75(ginning at)-.15 F F1(of)3.25 E (fset)-.18 E F0 5.75(.I)C(f)-5.75 E F1(par)3.25 E(ameter)-.15 E F0 .75 -(is an)3.25 F(inde)144 312 Q -.15(xe)-.15 G 2.701(da).15 G .201 -(rray name subscripted by @ or *, the result is the)-2.701 F F1(length) -2.701 E F0 .202(members of the array be)2.701 F(ginning)-.15 E 1.283 -(with ${)144 324 R F1(par)A(ameter)-.15 E F0([)A F1(of)A(fset)-.18 E F0 -3.783(]}. A)B(ne)3.783 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1(of) -3.933 E(fset)-.18 E F0 1.282(is tak)3.782 F 1.282(en relati)-.1 F 1.582 --.15(ve t)-.25 H 3.782(oo).15 G 1.282(ne greater than the maximum)-3.782 -F(inde)144 336 Q 3.434(xo)-.15 G 3.434(ft)-3.434 G .934 -(he speci\214ed array)-3.434 F 5.934(.S)-.65 G .935(ubstring e)-5.934 F -.935(xpansion applied to an associati)-.15 F 1.235 -.15(ve a)-.25 H .935 -(rray produces unde-).15 F .262(\214ned results.)144 348 R .261 -(Note that a ne)5.262 F -.05(ga)-.15 G(ti).05 E .561 -.15(ve o)-.25 H +(is an)3.25 F(inde)144 535.2 Q -.15(xe)-.15 G 2.702(da).15 G .201 +(rray name subscripted by @ or *, the result is the)-2.702 F F1(length) +2.701 E F0 .201(members of the array be)2.701 F(ginning)-.15 E 1.282 +(with ${)144 547.2 R F1(par)A(ameter)-.15 E F0([)A F1(of)A(fset)-.18 E +F0 3.782(]}. A)B(ne)3.782 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G F1 +(of)3.932 E(fset)-.18 E F0 1.282(is tak)3.782 F 1.282(en relati)-.1 F +1.582 -.15(ve t)-.25 H 3.782(oo).15 G 1.283(ne greater than the maximum) +-3.782 F(inde)144 559.2 Q 3.435(xo)-.15 G 3.435(ft)-3.435 G .935 +(he speci\214ed array)-3.435 F 5.935(.S)-.65 G .935(ubstring e)-5.935 F +.935(xpansion applied to an associati)-.15 F 1.234 -.15(ve a)-.25 H .934 +(rray produces unde-).15 F .261(\214ned results.)144 571.2 R .261 +(Note that a ne)5.261 F -.05(ga)-.15 G(ti).05 E .561 -.15(ve o)-.25 H -.25(ff).15 G .261 (set must be separated from the colon by at least one space to).25 F -.2 -(avo)144 360 S .154(id being confused with the :- e).2 F 2.655 -(xpansion. Substring)-.15 F(inde)2.655 E .155 +(avo)144 583.2 S .155(id being confused with the :- e).2 F 2.655 +(xpansion. Substring)-.15 F(inde)2.655 E .154 (xing is zero-based unless the positional)-.15 F .532 -(parameters are used, in which case the inde)144 372 R .532 +(parameters are used, in which case the inde)144 595.2 R .532 (xing starts at 1 by def)-.15 F 3.032(ault. If)-.1 F F1(of)3.032 E(fset) -.18 E F0 .532(is 0, and the posi-)3.032 F(tional parameters are used,) -144 384 Q F2($0)2.5 E F0(is pre\214x)2.5 E(ed to the list.)-.15 E(${)108 -400.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 412.8 Q F2(!)A -F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .084(Names matching pr)144 424.8 -R(e\214x.)-.18 E F0 .084(Expands to the names of v)5.084 F .084 -(ariables whose names be)-.25 F .085(gin with)-.15 F F1(pr)2.585 E -(e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258 -(rated by the \214rst character of the)144 436.8 R F3(IFS)2.758 E F0 -.257(special v)2.507 F 2.757(ariable. When)-.25 F F1(@)2.757 E F0 .257 -(is used and the e)2.757 F .257(xpansion appears)-.15 F -(within double quotes, each v)144 448.8 Q(ariable name e)-.25 E -(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 465.6 Q F2(!)A F1(name) -A F0([)A F1(@)A F0(]})A(${)108 477.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0 -(]})A F2 2.035(List of array k)144 489.6 R(eys.)-.1 E F0(If)7.036 E F1 +144 607.2 Q F2($0)2.5 E F0(is pre\214x)2.5 E(ed to the list.)-.15 E(${) +108 624 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 636 Q F2(!)A +F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .085(Names matching pr)144 648 R +(e\214x.)-.18 E F0 .084(Expands to the names of v)5.085 F .084 +(ariables whose names be)-.25 F .084(gin with)-.15 F F1(pr)2.584 E +(e\214x)-.37 E F0 2.584(,s)C(epa-)-2.584 E .257 +(rated by the \214rst character of the)144 660 R F3(IFS)2.757 E F0 .257 +(special v)2.507 F 2.757(ariable. When)-.25 F F1(@)2.758 E F0 .258 +(is used and the e)2.758 F .258(xpansion appears)-.15 F +(within double quotes, each v)144 672 Q(ariable name e)-.25 E +(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 688.8 Q F2(!)A F1(name) +A F0([)A F1(@)A F0(]})A(${)108 700.8 Q F2(!)A F1(name)A F0([)A F1(*)A F0 +(]})A F2 2.036(List of array k)144 712.8 R(eys.)-.1 E F0(If)7.036 E F1 (name)4.536 E F0 2.036(is an array v)4.536 F 2.036(ariable, e)-.25 F 2.036(xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G(s\)) -.15 E .596(assigned in)144 501.6 R F1(name)3.096 E F0 5.596(.I)C(f) --5.596 E F1(name)3.096 E F0 .595(is not an array)3.096 F 3.095(,e)-.65 G -.595(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .595 -(is set and null otherwise.)3.095 F(When)5.595 E F1(@)144 513.6 Q F0 -(is used and the e)2.5 E(xpansion appears within double quotes, each k) --.15 E .3 -.15(ey ex)-.1 H(pands to a separate w).15 E(ord.)-.1 E(${)108 -530.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 542.4 S .47 -(rameter length.).1 F F0 .471(The length in characters of the v)5.47 F -.471(alue of)-.25 F F1(par)2.971 E(ameter)-.15 E F0 .471 -(is substituted.)2.971 F(If)5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144 -554.4 Q F0(is)4.439 E F2(*)3.709 E F0(or)3.709 E F2(@)3.709 E F0 3.708 +.15 E .595(assigned in)144 724.8 R F1(name)3.095 E F0 5.595(.I)C(f) +-5.595 E F1(name)3.095 E F0 .595(is not an array)3.095 F 3.095(,e)-.65 G +.595(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .596 +(is set and null otherwise.)3.095 F(When)5.596 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(19)185.955 E 0 Cg EP +%%Page: 20 20 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Italic@0 SF(@)144 84 Q F0(is used and the e)2.5 E +(xpansion appears within double quotes, each k)-.15 E .3 -.15(ey ex)-.1 +H(pands to a separate w).15 E(ord.)-.1 E(${)108 100.8 Q/F2 10 +/Times-Bold@0 SF(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 112.8 S +.471(rameter length.).1 F F0 .471(The length in characters of the v) +5.471 F .471(alue of)-.25 F F1(par)2.971 E(ameter)-.15 E F0 .47 +(is substituted.)2.97 F(If)5.47 E F1(par)4.22 E(ame-)-.15 E(ter)144 +124.8 Q F0(is)4.438 E F2(*)3.708 E F0(or)3.708 E F2(@)3.708 E F0 3.708 (,t)C 1.208(he v)-3.708 F 1.208 (alue substituted is the number of positional parameters.)-.25 F(If) -6.208 E F1(par)4.958 E(ameter)-.15 E F0 1.208(is an)4.438 F -(array name subscripted by)144 566.4 Q F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E +6.209 E F1(par)4.959 E(ameter)-.15 E F0 1.209(is an)4.439 F +(array name subscripted by)144 136.8 Q F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E F0 2.5(,t)C(he v)-2.5 E (alue substituted is the number of elements in the array)-.25 E(.)-.65 E -(${)108 583.2 Q F1(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A -(${)108 595.2 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A -F2(Remo)144 607.2 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196 +(${)108 153.6 Q F1(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A +(${)108 165.6 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A +F2(Remo)144 177.6 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196 (e\214x patter)-.18 F(n.)-.15 E F0(The)6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196(is e)4.466 F 1.196 -(xpanded to produce a pattern just as in path-)-.15 F .152(name e)144 -619.2 R 2.652(xpansion. If)-.15 F .152(the pattern matches the be)2.652 +(xpanded to produce a pattern just as in path-)-.15 F .151(name e)144 +189.6 R 2.651(xpansion. If)-.15 F .152(the pattern matches the be)2.652 F .152(ginning of the v)-.15 F .152(alue of)-.25 F F1(par)2.652 E -(ameter)-.15 E F0 2.652(,t).73 G .151(hen the result of)-2.652 F 1.4 -(the e)144 631.2 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4 +(ameter)-.15 E F0 2.652(,t).73 G .152(hen the result of)-2.652 F 1.4 +(the e)144 201.6 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4 (alue of)-.25 F F1(par)5.15 E(ameter)-.15 E F0 1.4 (with the shortest matching pattern \(the `)4.63 F(`)-.74 E F2(#)A F0 --.74('')C .281(case\) or the longest matching pattern \(the `)144 643.2 +-.74('')C .281(case\) or the longest matching pattern \(the `)144 213.6 R(`)-.74 E F2(##)A F0 1.761 -.74('' c)D .281(ase\) deleted.).74 F(If) 5.281 E F1(par)4.031 E(ameter)-.15 E F0(is)3.511 E F2(@)2.781 E F0(or) -2.781 E F2(*)2.781 E F0 2.781(,t)C .281(he pattern)-2.781 F(remo)144 -655.2 Q -.25(va)-.15 G 3.274(lo).25 G .774 +2.781 E F2(*)2.782 E F0 2.782(,t)C .282(he pattern)-2.782 F(remo)144 +225.6 Q -.25(va)-.15 G 3.274(lo).25 G .774 (peration is applied to each positional parameter in turn, and the e) --3.274 F .774(xpansion is the resul-)-.15 F .402(tant list.)144 667.2 R -(If)5.402 E F1(par)4.152 E(ameter)-.15 E F0 .401(is an array v)3.632 F +-3.274 F .774(xpansion is the resul-)-.15 F .401(tant list.)144 237.6 R +(If)5.401 E F1(par)4.151 E(ameter)-.15 E F0 .401(is an array v)3.631 F .401(ariable subscripted with)-.25 F F2(@)2.901 E F0(or)2.901 E F2(*) -2.901 E F0 2.901(,t)C .401(he pattern remo)-2.901 F -.25(va)-.15 G 2.901 -(lo).25 G(peration)-2.901 E -(is applied to each member of the array in turn, and the e)144 679.2 Q -(xpansion is the resultant list.)-.15 E(${)108 696 Q F1(par)A(ameter) --.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(19)190.95 E 0 Cg EP -%%Page: 20 20 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(${)108 84 Q/F1 10/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10 -/Times-Bold@0 SF(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 96 Q .346 -.1 -(ve m)-.1 H .146(atching suf\214x patter).1 F(n.)-.15 E F0(The)5.146 E -F1(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147 -(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 108 -S 3.088(pansion. If).15 F .588 +2.901 E F0 2.902(,t)C .402(he pattern remo)-2.902 F -.25(va)-.15 G 2.902 +(lo).25 G(peration)-2.902 E +(is applied to each member of the array in turn, and the e)144 249.6 Q +(xpansion is the resultant list.)-.15 E(${)108 266.4 Q F1(par)A(ameter) +-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 278.4 Q F1(par)A(ameter) +-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 290.4 Q .347 -.1 +(ve m)-.1 H .147(atching suf\214x patter).1 F(n.)-.15 E F0(The)5.147 E +F1(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F .146 +(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 +302.4 S 3.088(pansion. If).15 F .588 (the pattern matches a trailing portion of the e)3.088 F .588(xpanded v) -.15 F .588(alue of)-.25 F F1(par)3.088 E(ameter)-.15 E F0 3.088(,t).73 -G .588(hen the)-3.088 F .226(result of the e)144 120 R .226 +G .588(hen the)-3.088 F .226(result of the e)144 314.4 R .226 (xpansion is the e)-.15 F .226(xpanded v)-.15 F .226(alue of)-.25 F F1 (par)3.976 E(ameter)-.15 E F0 .226 -(with the shortest matching pattern \(the)3.456 F -.74(``)144 132 S F2 -(%).74 E F0 1.522 -.74('' c)D .042 +(with the shortest matching pattern \(the)3.456 F -.74(``)144 326.4 S F2 +(%).74 E F0 1.521 -.74('' c)D .042 (ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(%%)A F0 1.522 -.74('' c)D .042(ase\) deleted.).74 F(If)5.042 E F1(par)3.792 E -(ameter)-.15 E F0(is)3.272 E F2(@)2.541 E F0(or)2.541 E F2(*)2.541 E F0 -2.541(,t)C(he)-2.541 E .44(pattern remo)144 144 R -.25(va)-.15 G 2.94 -(lo).25 G .441 +(ameter)-.15 E F0(is)3.272 E F2(@)2.542 E F0(or)2.542 E F2(*)2.542 E F0 +2.542(,t)C(he)-2.542 E .441(pattern remo)144 338.4 R -.25(va)-.15 G +2.941(lo).25 G .441 (peration is applied to each positional parameter in turn, and the e) --2.94 F .441(xpansion is the)-.15 F .241(resultant list.)144 156 R(If) -5.241 E F1(par)3.991 E(ameter)-.15 E F0 .241(is an array v)3.471 F .241 -(ariable subscripted with)-.25 F F2(@)2.741 E F0(or)2.74 E F2(*)2.74 E -F0 2.74(,t)C .24(he pattern remo)-2.74 F -.25(va)-.15 G 2.74(lo).25 G -(per)-2.74 E(-)-.2 E -(ation is applied to each member of the array in turn, and the e)144 168 -Q(xpansion is the resultant list.)-.15 E(${)108 184.8 Q F1(par)A(ameter) --.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A F2 -.1(Pa)144 196.8 -S(tter).1 E 3.606(ns)-.15 G(ubstitution.)-3.606 E F0(The)6.106 E F1 -(pattern)3.606 E F0 1.106(is e)3.606 F 1.107 +-2.941 F .44(xpansion is the)-.15 F .24(resultant list.)144 350.4 R(If) +5.24 E F1(par)3.99 E(ameter)-.15 E F0 .24(is an array v)3.47 F .241 +(ariable subscripted with)-.25 F F2(@)2.741 E F0(or)2.741 E F2(*)2.741 E +F0 2.741(,t)C .241(he pattern remo)-2.741 F -.25(va)-.15 G 2.741(lo).25 +G(per)-2.741 E(-)-.2 E +(ation is applied to each member of the array in turn, and the e)144 +362.4 Q(xpansion is the resultant list.)-.15 E(${)108 379.2 Q F1(par)A +(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A F2 -.1(Pa) +144 391.2 S(tter).1 E 3.607(ns)-.15 G(ubstitution.)-3.607 E F0(The)6.107 +E F1(pattern)3.607 E F0 1.107(is e)3.607 F 1.106 (xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E -(sion.)144 208.8 Q F1 -.8(Pa)6.034 G -.15(ra).8 G(meter).15 E F0 1.034 -(is e)3.534 F 1.033(xpanded and the longest match of)-.15 F F1(pattern) -3.533 E F0(ag)3.533 E 1.033(ainst its v)-.05 F 1.033 -(alue is replaced with)-.25 F F1(string)144 220.8 Q F0 5.16(.I)C(f)-5.16 -E F1(pattern)2.66 E F0(be)2.66 E .16(gins with)-.15 F F2(/)2.66 E F0 -2.66(,a)C .161(ll matches of)-2.66 F F1(pattern)2.661 E F0 .161 -(are replaced with)2.661 F F1(string)2.661 E F0 5.161(.N)C .161 -(ormally only the)-5.161 F .807(\214rst match is replaced.)144 232.8 R -(If)5.807 E F1(pattern)3.307 E F0(be)3.307 E .807(gins with)-.15 F F2(#) -3.307 E F0 3.306(,i)C 3.306(tm)-3.306 G .806(ust match at the be)-3.306 -F .806(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 244.8 S .62 -(lue of).25 F F1(par)3.12 E(ameter)-.15 E F0 5.62(.I)C(f)-5.62 E F1 -(pattern)3.12 E F0(be)3.12 E .62(gins with)-.15 F F2(%)3.12 E F0 3.12 -(,i)C 3.121(tm)-3.12 G .621(ust match at the end of the e)-3.121 F .621 -(xpanded v)-.15 F .621(alue of)-.25 F F1(par)144 256.8 Q(ameter)-.15 E -F0 6.254(.I)C(f)-6.254 E F1(string)3.754 E F0 1.253(is null, matches of) +(sion.)144 403.2 Q F1 -.8(Pa)6.033 G -.15(ra).8 G(meter).15 E F0 1.033 +(is e)3.533 F 1.033(xpanded and the longest match of)-.15 F F1(pattern) +3.533 E F0(ag)3.533 E 1.034(ainst its v)-.05 F 1.034 +(alue is replaced with)-.25 F F1(string)144 415.2 Q F0 5.161(.I)C(f) +-5.161 E F1(pattern)2.661 E F0(be)2.661 E .161(gins with)-.15 F F2(/) +2.661 E F0 2.661(,a)C .161(ll matches of)-2.661 F F1(pattern)2.661 E F0 +.16(are replaced with)2.661 F F1(string)2.66 E F0 5.16(.N)C .16 +(ormally only the)-5.16 F .806(\214rst match is replaced.)144 427.2 R +(If)5.806 E F1(pattern)3.306 E F0(be)3.306 E .806(gins with)-.15 F F2(#) +3.306 E F0 3.306(,i)C 3.307(tm)-3.306 G .807(ust match at the be)-3.307 +F .807(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 439.2 S .621 +(lue of).25 F F1(par)3.121 E(ameter)-.15 E F0 5.621(.I)C(f)-5.621 E F1 +(pattern)3.121 E F0(be)3.121 E .621(gins with)-.15 F F2(%)3.121 E F0 +3.121(,i)C 3.121(tm)-3.121 G .62(ust match at the end of the e)-3.121 F +.62(xpanded v)-.15 F .62(alue of)-.25 F F1(par)144 451.2 Q(ameter)-.15 E +F0 6.253(.I)C(f)-6.253 E F1(string)3.753 E F0 1.253(is null, matches of) 3.753 F F1(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F2(/) -3.753 E F0(follo)3.753 E(wing)-.25 E F1(pattern)3.753 E F0 1.253(may be) -3.753 F 2.678(omitted. If)144 268.8 R F1(par)3.928 E(ameter)-.15 E F0 -(is)3.408 E F2(@)2.678 E F0(or)2.678 E F2(*)2.679 E F0 2.679(,t)C .179 +3.753 E F0(follo)3.753 E(wing)-.25 E F1(pattern)3.753 E F0 1.254(may be) +3.754 F 2.679(omitted. If)144 463.2 R F1(par)3.929 E(ameter)-.15 E F0 +(is)3.409 E F2(@)2.679 E F0(or)2.679 E F2(*)2.679 E F0 2.679(,t)C .178 (he substitution operation is applied to each positional parameter) --2.679 F .619(in turn, and the e)144 280.8 R .619 +-2.679 F .618(in turn, and the e)144 475.2 R .619 (xpansion is the resultant list.)-.15 F(If)5.619 E F1(par)4.369 E -(ameter)-.15 E F0 .618(is an array v)3.849 F .618 -(ariable subscripted with)-.25 F F2(@)144 292.8 Q F0(or)3.223 E F2(*) -3.223 E F0 3.223(,t)C .723(he substitution operation is applied to each\ - member of the array in turn, and the e)-3.223 F(xpan-)-.15 E -(sion is the resultant list.)144 304.8 Q(${)108 321.6 Q F1(par)A(ameter) --.15 E F2(^)A F1(pattern)A F0(})A(${)108 333.6 Q F1(par)A(ameter)-.15 E -F2(^^)A F1(pattern)A F0(})A(${)108 345.6 Q F1(par)A(ameter)-.15 E F2(,)A -F1(pattern)A F0(})A(${)108 357.6 Q F1(par)A(ameter)-.15 E F2(,,)A F1 -(pattern)A F0(})A F2 .438(Case modi\214cation.)144 369.6 R F0 .438 -(This e)5.438 F .437 -(xpansion modi\214es the case of alphabetic characters in)-.15 F F1(par) -2.937 E(ameter)-.15 E F0 5.437(.T)C(he)-5.437 E F1(pattern)144 381.6 Q -F0 .813(is e)3.313 F .813 -(xpanded to produce a pattern just as in pathname e)-.15 F 3.314 -(xpansion. The)-.15 F F2(^)3.314 E F0 .814(operator con)3.314 F -.15(ve) --.4 G(rts).15 E(lo)144 393.6 Q .181(wercase letters matching)-.25 F F1 +(ameter)-.15 E F0 .619(is an array v)3.849 F .619 +(ariable subscripted with)-.25 F F2(@)144 487.2 Q F0(or)3.224 E F2(*) +3.224 E F0 3.224(,t)C .723(he substitution operation is applied to each\ + member of the array in turn, and the e)-3.224 F(xpan-)-.15 E +(sion is the resultant list.)144 499.2 Q(${)108 516 Q F1(par)A(ameter) +-.15 E F2(^)A F1(pattern)A F0(})A(${)108 528 Q F1(par)A(ameter)-.15 E F2 +(^^)A F1(pattern)A F0(})A(${)108 540 Q F1(par)A(ameter)-.15 E F2(,)A F1 +(pattern)A F0(})A(${)108 552 Q F1(par)A(ameter)-.15 E F2(,,)A F1 +(pattern)A F0(})A F2 .437(Case modi\214cation.)144 564 R F0 .437(This e) +5.437 F .438(xpansion modi\214es the case of alphabetic characters in) +-.15 F F1(par)2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F1 +(pattern)144 576 Q F0 .814(is e)3.314 F .813 +(xpanded to produce a pattern just as in pathname e)-.15 F 3.313 +(xpansion. The)-.15 F F2(^)3.313 E F0 .813(operator con)3.313 F -.15(ve) +-.4 G(rts).15 E(lo)144 588 Q .18(wercase letters matching)-.25 F F1 (pattern)2.681 E F0 .181(to uppercase; the)2.681 F F2(,)2.681 E F0 .181 -(operator con)2.681 F -.15(ve)-.4 G .18(rts matching uppercase letters) -.15 F .085(to lo)144 405.6 R 2.585(wercase. The)-.25 F F2(^^)2.585 E F0 +(operator con)2.681 F -.15(ve)-.4 G .181(rts matching uppercase letters) +.15 F .085(to lo)144 600 R 2.585(wercase. The)-.25 F F2(^^)2.585 E F0 (and)2.585 E F2(,,)2.585 E F0 -.15(ex)2.585 G .085(pansions con).15 F -.15(ve)-.4 G .085(rt each matched character in the e).15 F .085 -(xpanded v)-.15 F .085(alue; the)-.25 F F2(^)2.585 E F0(and)144 417.6 Q -F2(,)3.435 E F0 -.15(ex)3.435 G .935(pansions match and con).15 F -.15 -(ve)-.4 G .934(rt only the \214rst character in the e).15 F .934 -(xpanded v)-.15 F 3.434(alue.. If)-.25 F F1(pattern)3.434 E F0(is)3.434 -E 1.12(omitted, it is treated lik)144 429.6 R 3.62(ea)-.1 G F2(?)A F0 -3.62(,w)C 1.12(hich matches e)-3.62 F -.15(ve)-.25 G 1.121(ry character) -.15 F 6.121(.I)-.55 G(f)-6.121 E F1(par)4.871 E(ameter)-.15 E F0(is) -4.351 E F2(@)3.621 E F0(or)3.621 E F2(*)3.621 E F0 3.621(,t)C 1.121 -(he case)-3.621 F 1.335(modi\214cation operation is applied to each pos\ -itional parameter in turn, and the e)144 441.6 R 1.335(xpansion is the) --.15 F 1.308(resultant list.)144 453.6 R(If)6.308 E F1(par)5.058 E -(ameter)-.15 E F0 1.308(is an array v)4.538 F 1.308 -(ariable subscripted with)-.25 F F2(@)3.808 E F0(or)3.808 E F2(*)3.808 E -F0 3.808(,t)C 1.308(he case modi\214cation)-3.808 F +(xpanded v)-.15 F .085(alue; the)-.25 F F2(^)2.585 E F0(and)144 612 Q F2 +(,)3.434 E F0 -.15(ex)3.434 G .934(pansions match and con).15 F -.15(ve) +-.4 G .934(rt only the \214rst character in the e).15 F .935(xpanded v) +-.15 F 3.435(alue.. If)-.25 F F1(pattern)3.435 E F0(is)3.435 E 1.121 +(omitted, it is treated lik)144 624 R 3.621(ea)-.1 G F2(?)A F0 3.621(,w) +C 1.121(hich matches e)-3.621 F -.15(ve)-.25 G 1.121(ry character).15 F +6.12(.I)-.55 G(f)-6.12 E F1(par)4.87 E(ameter)-.15 E F0(is)4.35 E F2(@) +3.62 E F0(or)3.62 E F2(*)3.62 E F0 3.62(,t)C 1.12(he case)-3.62 F 1.335 +(modi\214cation operation is applied to each positional parameter in tu\ +rn, and the e)144 636 R 1.335(xpansion is the)-.15 F 1.308 +(resultant list.)144 648 R(If)6.308 E F1(par)5.058 E(ameter)-.15 E F0 +1.308(is an array v)4.538 F 1.308(ariable subscripted with)-.25 F F2(@) +3.808 E F0(or)3.808 E F2(*)3.808 E F0 3.808(,t)C 1.308 +(he case modi\214cation)-3.808 F (operation is applied to each member of the array in turn, and the e)144 -465.6 Q(xpansion is the resultant list.)-.15 E F2(Command Substitution) -87 482.4 Q F1 1.698(Command substitution)108 494.4 R F0(allo)4.198 E -1.697(ws the output of a command to replace the command name.)-.25 F -1.697(There are tw)6.697 F(o)-.1 E(forms:)108 506.4 Q F2($\()144 528 Q -F1(command)A F2(\))1.666 E F0(or)108 540 Q F2<92>144 552 Q F1(command)A -F2<92>A(Bash)108 568.8 Q F0 .019(performs the e)2.519 F .019 -(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F1(command)2.519 E F0 -.02(and replacing the command substitution with the stan-)2.519 F .768 -(dard output of the command, with an)108 580.8 R 3.268(yt)-.15 G .768 -(railing ne)-3.268 F .768(wlines deleted.)-.25 F .768(Embedded ne)5.768 -F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 592.8 Q 3.218 -(ym)-.15 G .718(ay be remo)-3.218 F -.15(ve)-.15 G 3.218(dd).15 G .719 -(uring w)-3.218 F .719(ord splitting.)-.1 F .719 -(The command substitution)5.719 F F2($\(cat)3.219 E F1(\214le)3.219 E F2 -(\))A F0 .719(can be replaced by the)3.219 F(equi)108 604.8 Q -.25(va) --.25 G(lent b).25 E(ut f)-.2 E(aster)-.1 E F2($\(<)2.5 E F1(\214le)2.5 E -F2(\))A F0(.)A 1.724(When the old-style backquote form of substitution \ -is used, backslash retains its literal meaning e)108 621.6 R(xcept)-.15 -E .314(when follo)108 633.6 R .314(wed by)-.25 F F2($)2.814 E F0(,)A F2 -<92>2.814 E F0 2.814(,o)C(r)-2.814 E F2(\\)2.814 E F0 5.314(.T)C .315(h\ -e \214rst backquote not preceded by a backslash terminates the command \ -sub-)-5.314 F 3.887(stitution. When)108 645.6 R 1.387(using the $\() -3.887 F F1(command).833 E F0 3.887(\)f)1.666 G 1.386 -(orm, all characters between the parentheses mak)-3.887 F 3.886(eu)-.1 G -3.886(pt)-3.886 G 1.386(he com-)-3.886 F -(mand; none are treated specially)108 657.6 Q(.)-.65 E .894 -(Command substitutions may be nested.)108 674.4 R 2.494 -.8(To n)5.894 H -.894(est when using the backquoted form, escape the inner back-).8 F -(quotes with backslashes.)108 686.4 Q .422 -(If the substitution appears within double quotes, w)108 703.2 R .422 -(ord splitting and pathname e)-.1 F .422(xpansion are not performed)-.15 -F(on the results.)108 715.2 Q(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(20)190.95 E 0 Cg EP +660 Q(xpansion is the resultant list.)-.15 E F2(Command Substitution)87 +676.8 Q F1 1.697(Command substitution)108 688.8 R F0(allo)4.197 E 1.697 +(ws the output of a command to replace the command name.)-.25 F 1.698 +(There are tw)6.698 F(o)-.1 E(forms:)108 700.8 Q F2($\()144 722.4 Q F1 +(command)A F2(\))1.666 E F0(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(20)185.955 E 0 Cg EP %%Page: 21 21 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(Arithmetic Expansion)87 84 Q F0 1.034 -(Arithmetic e)108 96 R 1.034(xpansion allo)-.15 F 1.034(ws the e)-.25 F --.25(va)-.25 G 1.034(luation of an arithmetic e).25 F 1.035 +-.35 E(or)108 84 Q/F1 10/Times-Bold@0 SF<92>144 96 Q/F2 10 +/Times-Italic@0 SF(command)A F1<92>A(Bash)108 112.8 Q F0 .02 +(performs the e)2.52 F .02(xpansion by e)-.15 F -.15(xe)-.15 G(cuting) +.15 E F2(command)2.519 E F0 .019 +(and replacing the command substitution with the stan-)2.519 F .768 +(dard output of the command, with an)108 124.8 R 3.268(yt)-.15 G .768 +(railing ne)-3.268 F .768(wlines deleted.)-.25 F .768(Embedded ne)5.768 +F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 136.8 Q 3.219 +(ym)-.15 G .719(ay be remo)-3.219 F -.15(ve)-.15 G 3.219(dd).15 G .719 +(uring w)-3.219 F .719(ord splitting.)-.1 F .719 +(The command substitution)5.719 F F1($\(cat)3.219 E F2(\214le)3.219 E F1 +(\))A F0 .718(can be replaced by the)3.219 F(equi)108 148.8 Q -.25(va) +-.25 G(lent b).25 E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E +F1(\))A F0(.)A 1.724(When the old-style backquote form of substitution \ +is used, backslash retains its literal meaning e)108 165.6 R(xcept)-.15 +E .315(when follo)108 177.6 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1 +<92>2.815 E F0 2.815(,o)C(r)-2.815 E F1(\\)2.815 E F0 5.315(.T)C .314(h\ +e \214rst backquote not preceded by a backslash terminates the command \ +sub-)-5.315 F 3.886(stitution. When)108 189.6 R 1.386(using the $\() +3.886 F F2(command).833 E F0 3.886(\)f)1.666 G 1.387 +(orm, all characters between the parentheses mak)-3.886 F 3.887(eu)-.1 G +3.887(pt)-3.887 G 1.387(he com-)-3.887 F +(mand; none are treated specially)108 201.6 Q(.)-.65 E .894 +(Command substitutions may be nested.)108 218.4 R 2.494 -.8(To n)5.894 H +.894(est when using the backquoted form, escape the inner back-).8 F +(quotes with backslashes.)108 230.4 Q .422 +(If the substitution appears within double quotes, w)108 247.2 R .422 +(ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15 +F(on the results.)108 259.2 Q F1(Arithmetic Expansion)87 276 Q F0 1.035 +(Arithmetic e)108 288 R 1.035(xpansion allo)-.15 F 1.035(ws the e)-.25 F +-.25(va)-.25 G 1.034(luation of an arithmetic e).25 F 1.034 (xpression and the substitution of the result.)-.15 F -(The format for arithmetic e)108 108 Q(xpansion is:)-.15 E F1($\(\()144 -124.8 Q/F2 10/Times-Italic@0 SF -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A -F0(The)108 141.6 Q F2 -.2(ex)2.666 G(pr).2 E(ession)-.37 E F0 .165 -(is treated as if it were within double quotes, b)2.906 F .165 -(ut a double quote inside the parentheses is not)-.2 F 1.074 -(treated specially)108 153.6 R 6.074(.A)-.65 G 1.074(ll tok)-6.074 F +(The format for arithmetic e)108 300 Q(xpansion is:)-.15 E F1($\(\()144 +316.8 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 333.6 Q +F2 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 .165 +(is treated as if it were within double quotes, b)2.905 F .166 +(ut a double quote inside the parentheses is not)-.2 F 1.075 +(treated specially)108 345.6 R 6.075(.A)-.65 G 1.074(ll tok)-6.075 F 1.074(ens in the e)-.1 F 1.074(xpression under)-.15 F 1.074 -(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.075 -(xpansion, command)-.15 F(substitution, and quote remo)108 165.6 Q -.25 +(go parameter e)-.18 F 1.074(xpansion, string e)-.15 F 1.074 +(xpansion, command)-.15 F(substitution, and quote remo)108 357.6 Q -.25 (va)-.15 G 2.5(l. Arithmetic).25 F -.15(ex)2.5 G -(pansions may be nested.).15 E 1.379(The e)108 182.4 R -.25(va)-.25 G +(pansions may be nested.).15 E 1.378(The e)108 374.4 R -.25(va)-.25 G 1.378(luation is performed according to the rules listed belo).25 F 3.878(wu)-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV) 3.878 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.) -A F0(If)5.878 E F2 -.2(ex)108 194.4 S(pr).2 E(ession)-.37 E F0(is in) +A F0(If)5.879 E F2 -.2(ex)108 386.4 S(pr).2 E(ession)-.37 E F0(is in) 2.74 E -.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0 (prints a message indicating f)2.5 E(ailure and no substitution occurs.) --.1 E F1(Pr)87 211.2 Q(ocess Substitution)-.18 E F2(Pr)108 223.2 Q .97 +-.1 E F1(Pr)87 403.2 Q(ocess Substitution)-.18 E F2(Pr)108 415.2 Q .971 (ocess substitution)-.45 F F0 .971 -(is supported on systems that support named pipes \()3.47 F F2(FIFOs)A -F0 3.471(\)o)C 3.471(rt)-3.471 G(he)-3.471 E F1(/de)3.471 E(v/fd)-.15 E -F0 .971(method of)3.471 F .022(naming open \214les.)108 235.2 R .021 -(It tak)5.022 F .021(es the form of)-.1 F F1(<\()2.521 E F2(list)A F1 -(\)).833 E F0(or)2.521 E F1(>\()2.521 E F2(list)A F1(\)).833 E F0 5.021 -(.T)C .021(he process)-5.021 F F2(list)2.521 E F0 .021 -(is run with its input or output con-)2.521 F .058(nected to a)108 247.2 -R F2(FIFO)2.558 E F0 .058(or some \214le in)2.558 F F1(/de)2.558 E(v/fd) +(is supported on systems that support named pipes \()3.471 F F2(FIFOs)A +F0 3.47(\)o)C 3.47(rt)-3.47 G(he)-3.47 E F1(/de)3.47 E(v/fd)-.15 E F0 +.97(method of)3.47 F .021(naming open \214les.)108 427.2 R .021(It tak) +5.021 F .021(es the form of)-.1 F F1(<\()2.521 E F2(list)A F1(\)).833 E +F0(or)2.521 E F1(>\()2.521 E F2(list)A F1(\)).833 E F0 5.021(.T)C .021 +(he process)-5.021 F F2(list)2.521 E F0 .021 +(is run with its input or output con-)2.521 F .059(nected to a)108 439.2 +R F2(FIFO)2.559 E F0 .058(or some \214le in)2.559 F F1(/de)2.558 E(v/fd) -.15 E F0 5.058(.T)C .058(he name of this \214le is passed as an ar) --5.058 F .059(gument to the current com-)-.18 F .131 -(mand as the result of the e)108 259.2 R 2.631(xpansion. If)-.15 F(the) +-5.058 F .058(gument to the current com-)-.18 F .13 +(mand as the result of the e)108 451.2 R 2.63(xpansion. If)-.15 F(the) 2.63 E F1(>\()2.63 E F2(list)A F1(\)).833 E F0 .13 -(form is used, writing to the \214le will pro)2.63 F .13(vide input for) --.15 F F2(list)2.63 E F0(.)A(If the)108 271.2 Q F1(<\()2.5 E F2(list)A -F1(\)).833 E F0(form is used, the \214le passed as an ar)2.5 E +(form is used, writing to the \214le will pro)2.63 F .131 +(vide input for)-.15 F F2(list)2.631 E F0(.)A(If the)108 463.2 Q F1(<\() +2.5 E F2(list)A F1(\)).833 E F0 +(form is used, the \214le passed as an ar)2.5 E (gument should be read to obtain the output of)-.18 E F2(list)2.5 E F0 -(.)A .896(When a)108 288 R -.25(va)-.2 G .896(ilable, process substitut\ -ion is performed simultaneously with parameter and v).25 F .897 +(.)A .897(When a)108 480 R -.25(va)-.2 G .896(ilable, process substitut\ +ion is performed simultaneously with parameter and v).25 F .896 (ariable e)-.25 F(xpansion,)-.15 E -(command substitution, and arithmetic e)108 300 Q(xpansion.)-.15 E F1 --.75(Wo)87 316.8 S(rd Splitting).75 E F0 1.143 -(The shell scans the results of parameter e)108 328.8 R 1.142 -(xpansion, command substitution, and arithmetic e)-.15 F 1.142 -(xpansion that)-.15 F(did not occur within double quotes for)108 340.8 Q +(command substitution, and arithmetic e)108 492 Q(xpansion.)-.15 E F1 +-.75(Wo)87 508.8 S(rd Splitting).75 E F0 1.142 +(The shell scans the results of parameter e)108 520.8 R 1.143 +(xpansion, command substitution, and arithmetic e)-.15 F 1.143 +(xpansion that)-.15 F(did not occur within double quotes for)108 532.8 Q F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063 -(The shell treats each character of)108 357.6 R F3(IFS)2.563 E F0 .063 +(The shell treats each character of)108 549.6 R F3(IFS)2.563 E F0 .063 (as a delimiter)2.313 F 2.563(,a)-.4 G .063 (nd splits the results of the other e)-2.563 F .063(xpansions into w) --.15 F(ords)-.1 E 1.789(on these characters.)108 369.6 R(If)6.789 E F3 -(IFS)4.289 E F0 1.788(is unset, or its v)4.039 F 1.788(alue is e)-.25 F -(xactly)-.15 E F1()4.288 E F0 4.288(,t)C 1.788 -(he def)-4.288 F 1.788(ault, then)-.1 F .021(sequences of)108 381.6 R F1 -()2.521 E F0(,)A F1()2.521 E F0 2.521(,a)C(nd)-2.521 E F1 +-.15 F(ords)-.1 E 1.788(on these characters.)108 561.6 R(If)6.788 E F3 +(IFS)4.288 E F0 1.788(is unset, or its v)4.038 F 1.789(alue is e)-.25 F +(xactly)-.15 E F1()4.289 E F0 4.289(,t)C 1.789 +(he def)-4.289 F 1.789(ault, then)-.1 F .022(sequences of)108 573.6 R F1 +()2.522 E F0(,)A F1()2.522 E F0 2.521(,a)C(nd)-2.521 E F1 ()2.521 E F0 .021(at the be)2.521 F .021 -(ginning and end of the results of the pre)-.15 F .022(vious e)-.25 F -(xpan-)-.15 E .586(sions are ignored, and an)108 393.6 R 3.086(ys)-.15 G +(ginning and end of the results of the pre)-.15 F .021(vious e)-.25 F +(xpan-)-.15 E .585(sions are ignored, and an)108 585.6 R 3.086(ys)-.15 G .586(equence of)-3.086 F F3(IFS)3.086 E F0 .586 -(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .585 -(es to delimit w)-.15 F(ords.)-.1 E(If)108 405.6 Q F3(IFS)3.617 E F0 +(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .586 +(es to delimit w)-.15 F(ords.)-.1 E(If)108 597.6 Q F3(IFS)3.617 E F0 1.117(has a v)3.367 F 1.117(alue other than the def)-.25 F 1.117 (ault, then sequences of the whitespace characters)-.1 F F1(space)3.617 E F0(and)3.617 E F1(tab)3.617 E F0(are)3.617 E .315(ignored at the be) -108 417.6 R .315(ginning and end of the w)-.15 F .315 +108 609.6 R .315(ginning and end of the w)-.15 F .315 (ord, as long as the whitespace character is in the v)-.1 F .315 -(alue of)-.25 F F3(IFS)2.815 E F0(\(an)2.565 E F3(IFS)108 429.6 Q F0 -1.053(whitespace character\).)3.303 F(An)6.053 E 3.553(yc)-.15 G 1.053 -(haracter in)-3.553 F F3(IFS)3.553 E F0 1.053(that is not)3.303 F F3 -(IFS)3.553 E F0 1.054(whitespace, along with an)3.304 F 3.554(ya)-.15 G -(djacent)-3.554 E F3(IFS)3.554 E F0 .332 -(whitespace characters, delimits a \214eld.)108 441.6 R 2.832(As)5.332 G -.332(equence of)-2.832 F F3(IFS)2.832 E F0 .331 +(alue of)-.25 F F3(IFS)2.815 E F0(\(an)2.566 E F3(IFS)108 621.6 Q F0 +1.054(whitespace character\).)3.304 F(An)6.054 E 3.554(yc)-.15 G 1.054 +(haracter in)-3.554 F F3(IFS)3.554 E F0 1.053(that is not)3.303 F F3 +(IFS)3.553 E F0 1.053(whitespace, along with an)3.303 F 3.553(ya)-.15 G +(djacent)-3.553 E F3(IFS)3.553 E F0 .331 +(whitespace characters, delimits a \214eld.)108 633.6 R 2.831(As)5.331 G +.332(equence of)-2.831 F F3(IFS)2.832 E F0 .332 (whitespace characters is also treated as a delim-)2.582 F(iter)108 -453.6 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E -F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.878 -(Explicit null ar)108 470.4 R 1.878(guments \()-.18 F F1 .833("").833 G +645.6 Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E +F0(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.879 +(Explicit null ar)108 662.4 R 1.879(guments \()-.18 F F1 .833("").833 G F0(or)3.545 E F1 .833<0808>5.211 G F0 4.378(\)a)C 1.878(re retained.) --4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.879 -(guments, resulting from the)-.18 F -.15(ex)108 482.4 S .177 -(pansion of parameters that ha).15 F .477 -.15(ve n)-.2 H 2.677(ov).15 G -.177(alues, are remo)-2.927 F -.15(ve)-.15 G 2.676(d. If).15 F 2.676(ap) -2.676 G .176(arameter with no v)-2.676 F .176(alue is e)-.25 F .176 -(xpanded within)-.15 F(double quotes, a null ar)108 494.4 Q -(gument results and is retained.)-.18 E(Note that if no e)108 511.2 Q -(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 528 S -(thname Expansion).1 E F0 .37(After w)108 540 R .37 -(ord splitting, unless the)-.1 F F12.87 E F0 .37 -(option has been set,)2.87 F F1(bash)2.87 E F0 .371(scans each w)2.871 F -.371(ord for the characters)-.1 F F1(*)2.871 E F0(,)A F1(?)2.871 E F0 -2.871(,a)C(nd)-2.871 E F1([)2.871 E F0(.)A .678 -(If one of these characters appears, then the w)108 552 R .677 -(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F2(pattern)3.177 E -F0 3.177(,a).24 G .677(nd replaced with an alphabeti-)-3.177 F 1.456 -(cally sorted list of \214le names matching the pattern.)108 564 R 1.457 +-4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.878 +(guments, resulting from the)-.18 F -.15(ex)108 674.4 S .176 +(pansion of parameters that ha).15 F .476 -.15(ve n)-.2 H 2.676(ov).15 G +.176(alues, are remo)-2.926 F -.15(ve)-.15 G 2.676(d. If).15 F 2.677(ap) +2.677 G .177(arameter with no v)-2.677 F .177(alue is e)-.25 F .177 +(xpanded within)-.15 F(double quotes, a null ar)108 686.4 Q +(gument results and is retained.)-.18 E(Note that if no e)108 703.2 Q +(xpansion occurs, no splitting is performed.)-.15 E(GNU Bash-4.1)72 768 +Q(2009 December 29)135.965 E(21)185.955 E 0 Cg EP +%%Page: 22 22 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF -.1(Pa)87 84 S(thname Expansion).1 E F0 +.371(After w)108 96 R .371(ord splitting, unless the)-.1 F F12.871 +E F0 .371(option has been set,)2.871 F F1(bash)2.871 E F0 .37 +(scans each w)2.87 F .37(ord for the characters)-.1 F F1(*)2.87 E F0(,)A +F1(?)2.87 E F0 2.87(,a)C(nd)-2.87 E F1([)2.87 E F0(.)A .677 +(If one of these characters appears, then the w)108 108 R .677 +(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F/F2 10 +/Times-Italic@0 SF(pattern)3.177 E F0 3.177(,a).24 G .678 +(nd replaced with an alphabeti-)-3.177 F 1.457 +(cally sorted list of \214le names matching the pattern.)108 120 R 1.456 (If no matching \214le names are found, and the shell)6.457 F(option)108 -576 Q F1(nullglob)2.538 E F0 .038(is not enabled, the w)2.538 F .038 +132 Q F1(nullglob)2.537 E F0 .038(is not enabled, the w)2.537 F .038 (ord is left unchanged.)-.1 F .038(If the)5.038 F F1(nullglob)2.538 E F0 -.038(option is set, and no matches are)2.538 F .305(found, the w)108 588 -R .305(ord is remo)-.1 F -.15(ve)-.15 G 2.805(d. If).15 F(the)2.805 E F1 +.038(option is set, and no matches are)2.538 F .306(found, the w)108 144 +R .306(ord is remo)-.1 F -.15(ve)-.15 G 2.806(d. If).15 F(the)2.805 E F1 (failglob)2.805 E F0 .305 (shell option is set, and no matches are found, an error message)2.805 F -.929(is printed and the command is not e)108 600 R -.15(xe)-.15 G 3.428 +.928(is printed and the command is not e)108 156 R -.15(xe)-.15 G 3.428 (cuted. If).15 F .928(the shell option)3.428 F F1(nocaseglob)3.428 E F0 -.928(is enabled, the match is per)3.428 F(-)-.2 E .032 -(formed without re)108 612 R -.05(ga)-.15 G .032 -(rd to the case of alphabetic characters.).05 F .033 -(When a pattern is used for pathname e)5.033 F(xpansion,)-.15 E .105 -(the character)108 624 R F1 -.63(``)2.605 G -.55(.').63 G(')-.08 E F0 -.105(at the start of a name or immediately follo)5.105 F .104 -(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.604(,u)-.65 G -(nless)-2.604 E .887(the shell option)108 636 R F1(dotglob)3.387 E F0 -.887(is set.)3.387 F .888 -(When matching a pathname, the slash character must al)5.887 F -.1(wa) --.1 G .888(ys be matched).1 F -.15(ex)108 648 S(plicitly).15 E 6.166(.I) --.65 G 3.666(no)-6.166 G 1.166(ther cases, the)-3.666 F F1 -.63(``)3.666 +.929(is enabled, the match is per)3.429 F(-)-.2 E .033 +(formed without re)108 168 R -.05(ga)-.15 G .033 +(rd to the case of alphabetic characters.).05 F .032 +(When a pattern is used for pathname e)5.032 F(xpansion,)-.15 E .104 +(the character)108 180 R F1 -.63(``)2.604 G -.55(.').63 G(')-.08 E F0 +.104(at the start of a name or immediately follo)5.104 F .105 +(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.605(,u)-.65 G +(nless)-2.605 E .888(the shell option)108 192 R F1(dotglob)3.388 E F0 +.888(is set.)3.388 F .887 +(When matching a pathname, the slash character must al)5.888 F -.1(wa) +-.1 G .887(ys be matched).1 F -.15(ex)108 204 S(plicitly).15 E 6.165(.I) +-.65 G 3.665(no)-6.165 G 1.165(ther cases, the)-3.665 F F1 -.63(``)3.665 G -.55(.').63 G(')-.08 E F0 1.166(character is not treated specially) -6.166 F 6.165(.S)-.65 G 1.165(ee the description of)-6.165 F F1(shopt) -3.665 E F0(belo)3.665 E(w)-.25 E(under)108 660 Q F3 .477(SHELL B)2.977 F -(UIL)-.09 E .477(TIN COMMANDS)-.828 F F0 .477(for a description of the) -2.727 F F1(nocaseglob)2.978 E F0(,)A F1(nullglob)2.978 E F0(,)A F1 -(failglob)2.978 E F0 2.978(,a)C(nd)-2.978 E F1(dotglob)2.978 E F0 -(shell options.)108 672 Q(The)108 688.8 Q F3(GLOBIGNORE)2.631 E F0 .131 -(shell v)2.381 F .131 +6.165 F 6.166(.S)-.65 G 1.166(ee the description of)-6.166 F F1(shopt) +3.666 E F0(belo)3.666 E(w)-.25 E(under)108 216 Q/F3 9/Times-Bold@0 SF +.478(SHELL B)2.978 F(UIL)-.09 E .478(TIN COMMANDS)-.828 F F0 .477 +(for a description of the)2.728 F F1(nocaseglob)2.977 E F0(,)A F1 +(nullglob)2.977 E F0(,)A F1(failglob)2.977 E F0 2.977(,a)C(nd)-2.977 E +F1(dotglob)2.977 E F0(shell options.)108 228 Q(The)108 244.8 Q F3 +(GLOBIGNORE)2.63 E F0 .13(shell v)2.38 F .131 (ariable may be used to restrict the set of \214le names matching a)-.25 -F F2(pattern)2.63 E F0 5.13(.I).24 G(f)-5.13 E F3(GLO-)2.63 E(BIGNORE) -108 700.8 Q F0 2.015(is set, each matching \214le name that also matche\ -s one of the patterns in)4.264 F F3(GLOBIGNORE)4.515 E F0(is)4.265 E -(remo)108 712.8 Q -.15(ve)-.15 G 2.504(df).15 G .004 -(rom the list of matches.)-2.504 F .003(The \214le names)5.003 F F1 -.63 +F F2(pattern)2.631 E F0 5.131(.I).24 G(f)-5.131 E F3(GLO-)2.631 E +(BIGNORE)108 256.8 Q F0 2.015(is set, each matching \214le name that al\ +so matches one of the patterns in)4.265 F F3(GLOBIGNORE)4.515 E F0(is) +4.264 E(remo)108 268.8 Q -.15(ve)-.15 G 2.503(df).15 G .003 +(rom the list of matches.)-2.503 F .003(The \214le names)5.003 F F1 -.63 (``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F1 -.63(``)2.503 G(..) -.63 E -.63('')-.55 G F0 .003(are al)5.633 F -.1(wa)-.1 G .003 -(ys ignored when).1 F F3(GLOBIGNORE)2.503 E F0(is)2.253 E .045 -(set and not null.)108 724.8 R(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845 --.4(r, s).15 H(etting).4 E F3(GLOBIGNORE)2.545 E F0 .046 -(to a non-null v)2.296 F .046(alue has the ef)-.25 F .046 -(fect of enabling the)-.25 F F1(dotglob)2.546 E F0(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(21)190.95 E 0 Cg EP -%%Page: 22 22 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .614(shell option, so all other \214le names be)108 84 R .614 -(ginning with a)-.15 F/F1 10/Times-Bold@0 SF -.63(``)3.114 G -.55(.').63 -G(')-.08 E F0 .614(will match.)5.614 F 2.213 -.8(To g)5.614 H .613 -(et the old beha).8 F .613(vior of ignoring)-.2 F .456(\214le names be) -108 96 R .456(ginning with a)-.15 F F1 -.63(``)2.957 G -.55(.').63 G(') --.08 E F0 2.957(,m)C(ak)-2.957 E(e)-.1 E F1 -.63(``)2.957 G(.*').63 E(') --.63 E F0 .457(one of the patterns in)5.457 F/F2 9/Times-Bold@0 SF -(GLOBIGNORE)2.957 E/F3 9/Times-Roman@0 SF(.)A F0(The)4.957 E F1(dotglob) -2.957 E F0 .457(option is)2.957 F(disabled when)108 108 Q F2(GLOBIGNORE) -2.5 E F0(is unset.)2.25 E F1 -.1(Pa)108 124.8 S(tter).1 E 2.5(nM)-.15 G -(atching)-2.5 E F0(An)108 141.6 Q 3.138(yc)-.15 G .638(haracter that ap\ -pears in a pattern, other than the special pattern characters described\ - belo)-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 -153.6 R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab) -6.12 G 1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the) --.25 F .576(escaping backslash is discarded when matching.)108 165.6 R -.576(The special pattern characters must be quoted if the)5.576 F 3.076 -(ya)-.15 G(re)-3.076 E(to be matched literally)108 177.6 Q(.)-.65 E -(The special pattern characters ha)108 194.4 Q .3 -.15(ve t)-.2 H -(he follo).15 E(wing meanings:)-.25 E F1(*)108 211.2 Q F0 .455 -(Matches an)31 F 2.955(ys)-.15 G .455(tring, including the null string.) --2.955 F .455(When the)5.455 F F1(globstar)2.955 E F0 .455 -(shell option is enabled, and)2.955 F F1(*)2.955 E F0(is)2.955 E .576 -(used in a \214lename e)144 223.2 R .576(xpansion conte)-.15 F .575 -(xt, tw)-.15 F 3.075(oa)-.1 G(djacent)-3.075 E F1(*)3.075 E F0 3.075(su) -C .575(sed as a single pattern will match all \214les)-3.075 F 1.183 -(and zero or more directories and subdirectories.)144 235.2 R 1.183 +.63 E -.63('')-.55 G F0 .004(are al)5.633 F -.1(wa)-.1 G .004 +(ys ignored when).1 F F3(GLOBIGNORE)2.504 E F0(is)2.254 E .046 +(set and not null.)108 280.8 R(Ho)5.046 E(we)-.25 E -.15(ve)-.25 G .846 +-.4(r, s).15 H(etting).4 E F3(GLOBIGNORE)2.546 E F0 .046 +(to a non-null v)2.296 F .045(alue has the ef)-.25 F .045 +(fect of enabling the)-.25 F F1(dotglob)2.545 E F0 .613 +(shell option, so all other \214le names be)108 292.8 R .614 +(ginning with a)-.15 F F1 -.63(``)3.114 G -.55(.').63 G(')-.08 E F0 .614 +(will match.)5.614 F 2.214 -.8(To g)5.614 H .614(et the old beha).8 F +.614(vior of ignoring)-.2 F .457(\214le names be)108 304.8 R .457 +(ginning with a)-.15 F F1 -.63(``)2.957 G -.55(.').63 G(')-.08 E F0 +2.957(,m)C(ak)-2.957 E(e)-.1 E F1 -.63(``)2.957 G(.*').63 E(')-.63 E F0 +.457(one of the patterns in)5.457 F F3(GLOBIGNORE)2.957 E/F4 9 +/Times-Roman@0 SF(.)A F0(The)4.957 E F1(dotglob)2.956 E F0 .456 +(option is)2.956 F(disabled when)108 316.8 Q F3(GLOBIGNORE)2.5 E F0 +(is unset.)2.25 E F1 -.1(Pa)108 333.6 S(tter).1 E 2.5(nM)-.15 G(atching) +-2.5 E F0(An)108 350.4 Q 3.138(yc)-.15 G .638(haracter that appears in \ +a pattern, other than the special pattern characters described belo) +-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 362.4 +R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G +1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F +.576(escaping backslash is discarded when matching.)108 374.4 R .576 +(The special pattern characters must be quoted if the)5.576 F 3.076(ya) +-.15 G(re)-3.076 E(to be matched literally)108 386.4 Q(.)-.65 E +(The special pattern characters ha)108 403.2 Q .3 -.15(ve t)-.2 H +(he follo).15 E(wing meanings:)-.25 E F1(*)108 420 Q F0 .455(Matches an) +31 F 2.955(ys)-.15 G .455(tring, including the null string.)-2.955 F +.455(When the)5.455 F F1(globstar)2.955 E F0 .455 +(shell option is enabled, and)2.955 F F1(*)2.955 E F0(is)2.955 E .314 +(used in a pathname e)144 432 R .314(xpansion conte)-.15 F .314(xt, tw) +-.15 F 2.814(oa)-.1 G(djacent)-2.814 E F1(*)2.814 E F0 2.814(su)C .314 +(sed as a single pattern will match all \214les)-2.814 F 1.183 +(and zero or more directories and subdirectories.)144 444 R 1.183 (If follo)6.183 F 1.183(wed by a)-.25 F F1(/)3.683 E F0 3.683(,t)C 1.383 --.1(wo a)-3.683 H(djacent).1 E F1(*)3.683 E F0 3.684(sw)C 1.184 -(ill match)-3.684 F(only directories and subdirectories.)144 247.2 Q F1 -(?)108 259.2 Q F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E -(.)-.55 E F1([...])108 271.2 Q F0 .257(Matches an)21.84 F 2.757(yo)-.15 -G .257(ne of the enclosed characters.)-2.757 F 2.757(Ap)5.257 G .257 -(air of characters separated by a h)-2.757 F .256(yphen denotes a)-.05 F -/F4 10/Times-Italic@0 SF -.15(ra)144 283.2 S(ng).15 E 3.289(ee)-.1 G -(xpr)-3.489 E(ession)-.37 E F0 3.289(;a)C 1.089 -.15(ny c)-3.289 H .789 +-.1(wo a)-3.683 H(djacent).1 E F1(*)3.683 E F0 3.683(sw)C 1.183 +(ill match)-3.683 F(only directories and subdirectories.)144 456 Q F1(?) +108 468 Q F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 +E F1([...])108 480 Q F0 .256(Matches an)21.84 F 2.756(yo)-.15 G .257 +(ne of the enclosed characters.)-2.756 F 2.757(Ap)5.257 G .257 +(air of characters separated by a h)-2.757 F .257(yphen denotes a)-.05 F +F2 -.15(ra)144 492 S(ng).15 E 3.29(ee)-.1 G(xpr)-3.49 E(ession)-.37 E F0 +3.29(;a)C 1.09 -.15(ny c)-3.29 H .789 (haracter that sorts between those tw).15 F 3.289(oc)-.1 G .789 -(haracters, inclusi)-3.289 F -.15(ve)-.25 G 3.29(,u).15 G .79 -(sing the cur)-3.29 F(-)-.2 E .35(rent locale')144 295.2 R 2.85(sc)-.55 -G .35(ollating sequence and character set, is matched.)-2.85 F .349 -(If the \214rst character follo)5.349 F .349(wing the)-.25 F F1([)2.849 -E F0 .563(is a)144 307.2 R F1(!)3.063 E F0 .563(or a)5.563 F F1(^)3.063 -E F0 .564(then an)3.063 F 3.064(yc)-.15 G .564 -(haracter not enclosed is matched.)-3.064 F .564 -(The sorting order of characters in range)5.564 F -.15(ex)144 319.2 S -1.102(pressions is determined by the current locale and the v).15 F -1.102(alue of the)-.25 F F1(LC_COLLA)3.602 E(TE)-.95 E F0 1.102(shell v) -3.602 F(ari-)-.25 E .088(able, if set.)144 331.2 R(A)5.088 E F12.588 -E F0 .088(may be matched by including it as the \214rst or last charact\ -er in the set.)2.588 F(A)5.089 E F1(])2.589 E F0 .089(may be)2.589 F -(matched by including it as the \214rst character in the set.)144 343.2 -Q -.4(Wi)144 361.2 S(thin).4 E F1([)2.915 E F0(and)2.915 E F1(])2.915 E -F0(,)A F4 -.15(ch)2.915 G(ar).15 E .415(acter classes)-.15 F F0 .415 -(can be speci\214ed using the syntax)2.915 F F1([:)2.915 E F4(class)A F1 -(:])A F0 2.914(,w)C(here)-2.914 E F4(class)2.914 E F0 .414(is one of) -2.914 F(the follo)144 373.2 Q +(haracters, inclusi)-3.289 F -.15(ve)-.25 G 3.289(,u).15 G .789 +(sing the cur)-3.289 F(-)-.2 E .349(rent locale')144 504 R 2.849(sc)-.55 +G .349(ollating sequence and character set, is matched.)-2.849 F .35 +(If the \214rst character follo)5.349 F .35(wing the)-.25 F F1([)2.85 E +F0 .564(is a)144 516 R F1(!)3.064 E F0 .564(or a)5.564 F F1(^)3.064 E F0 +.564(then an)3.064 F 3.064(yc)-.15 G .564 +(haracter not enclosed is matched.)-3.064 F .563 +(The sorting order of characters in range)5.564 F -.15(ex)144 528 S .467 +(pressions is determined by the current locale and the v).15 F .467 +(alue of the)-.25 F F3(LC_COLLA)2.967 E(TE)-.855 E F0 .467(shell v)2.717 +F(ariable,)-.25 E 1.077(if set.)144 540 R(A)6.077 E F13.577 E F0 +1.077(may be matched by including it as the \214rst or last character i\ +n the set.)3.577 F(A)6.076 E F1(])3.576 E F0 1.076(may be)3.576 F +(matched by including it as the \214rst character in the set.)144 552 Q +-.4(Wi)144 570 S(thin).4 E F1([)2.914 E F0(and)2.914 E F1(])2.914 E F0 +(,)A F2 -.15(ch)2.914 G(ar).15 E .414(acter classes)-.15 F F0 .415 +(can be speci\214ed using the syntax)2.915 F F1([:)2.915 E F2(class)A F1 +(:])A F0 2.915(,w)C(here)-2.915 E F2(class)2.915 E F0 .415(is one of) +2.915 F(the follo)144 582 Q (wing classes de\214ned in the POSIX standard:)-.25 E F1 5.421 -(alnum alpha ascii blank cntrl digit graph lo)144 385.2 R 5.421 -(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 397.2 Q F0 -2.519(Ac)144 409.2 S .019(haracter class matches an)-2.519 F 2.519(yc) --.15 G .019(haracter belonging to that class.)-2.519 F(The)5.018 E F1 --.1(wo)2.518 G(rd).1 E F0 .018(character class matches)2.518 F -(letters, digits, and the character _.)144 421.2 Q -.4(Wi)144 439.2 S -(thin).4 E F1([)3.546 E F0(and)3.546 E F1(])3.546 E F0 3.546(,a)C(n) --3.546 E F4 1.046(equivalence class)3.546 F F0 1.046 -(can be speci\214ed using the syntax)3.546 F F1([=)3.547 E F4(c)A F1(=]) -A F0 3.547(,w)C 1.047(hich matches all)-3.547 F(characters with the sam\ +(alnum alpha ascii blank cntrl digit graph lo)144 594 R 5.421 +(wer print punct space upper w)-.1 F(ord)-.1 E(xdigit)144 606 Q F0 2.518 +(Ac)144 618 S .018(haracter class matches an)-2.518 F 2.518(yc)-.15 G +.019(haracter belonging to that class.)-2.518 F(The)5.019 E F1 -.1(wo) +2.519 G(rd).1 E F0 .019(character class matches)2.519 F +(letters, digits, and the character _.)144 630 Q -.4(Wi)144 648 S(thin) +.4 E F1([)3.547 E F0(and)3.547 E F1(])3.547 E F0 3.547(,a)C(n)-3.547 E +F2 1.046(equivalence class)3.546 F F0 1.046 +(can be speci\214ed using the syntax)3.546 F F1([=)3.546 E F2(c)A F1(=]) +A F0 3.546(,w)C 1.046(hich matches all)-3.546 F(characters with the sam\ e collation weight \(as de\214ned by the current locale\) as the charac\ -ter)144 451.2 Q F4(c)2.5 E F0(.)A -.4(Wi)144 469.2 S(thin).4 E F1([)2.5 -E F0(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5 E F4 -(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F4(symbol)2.5 E -F0(.)A .705(If the)108 486 R F1(extglob)3.205 E F0 .705 -(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2(bu) -3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704 -(xtended pattern matching operators)-.15 F .255(are recognized.)108 498 -R .255(In the follo)5.255 F .255(wing description, a)-.25 F F4 +ter)144 660 Q F2(c)2.5 E F0(.)A -.4(Wi)144 678 S(thin).4 E F1([)2.5 E F0 +(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5 E F2 +(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F2(symbol)2.5 E +F0(.)A .704(If the)108 694.8 R F1(extglob)3.204 E F0 .705 +(shell option is enabled using the)3.204 F F1(shopt)3.205 E F0 -.2(bu) +3.205 G .705(iltin, se).2 F -.15(ve)-.25 G .705(ral e).15 F .705 +(xtended pattern matching operators)-.15 F .256(are recognized.)108 +706.8 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F2 (pattern-list)2.755 E F0 .255 -(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E +(is a list of one or more patterns separated by a)2.755 F F1(|)2.755 E F0(.)A(Composite patterns may be formed using one or more of the follo) -108 510 Q(wing sub-patterns:)-.25 E F1(?\()144 534 Q F4(pattern-list) -.833 E F1(\)).833 E F0(Matches zero or one occurrence of the gi)180 546 -Q -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(*\()144 558 Q F4 -(pattern-list).833 E F1(\)).833 E F0 -(Matches zero or more occurrences of the gi)180 570 Q -.15(ve)-.25 G 2.5 -(np).15 G(atterns)-2.5 E F1(+\()144 582 Q F4(pattern-list).833 E F1(\)) -.833 E F0(Matches one or more occurrences of the gi)180 594 Q -.15(ve) --.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 606 Q F4(pattern-list).833 -E F1(\)).833 E F0(Matches one of the gi)180 618 Q -.15(ve)-.25 G 2.5(np) -.15 G(atterns)-2.5 E F1(!\()144 630 Q F4(pattern-list).833 E F1(\)).833 -E F0(Matches an)180 642 Q(ything e)-.15 E(xcept one of the gi)-.15 E --.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(Quote Remo)87 658.8 Q -.1 -(va)-.1 G(l).1 E F0 1.113(After the preceding e)108 670.8 R 1.113 -(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\) -3.613 E F0(,)A F1<08>3.612 E F0 3.612(,a)C(nd)-3.612 E F1(")4.445 E F0 -1.112(that did not result)4.445 F(from one of the abo)108 682.8 Q .3 --.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F5 -10.95/Times-Bold@0 SF(REDIRECTION)72 699.6 Q F0 .545 -(Before a command is e)108 711.6 R -.15(xe)-.15 G .545 -(cuted, its input and output may be).15 F F4 -.37(re)3.045 G(dir).37 E -(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F 2.77 -(by the shell.)108 723.6 R 2.769(Redirection may also be used to open a\ -nd close \214les for the current shell e)7.77 F -.15(xe)-.15 G(cution) -.15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(22)190.95 E 0 Cg EP +108 718.8 Q(wing sub-patterns:)-.25 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(22)185.955 E 0 Cg EP %%Page: 23 23 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(en)108 84 Q 3.36(vironment. The)-.4 F(follo)3.36 E .86 -(wing redirection operators may precede or appear an)-.25 F .86 -(ywhere within a)-.15 F/F1 10/Times-Italic@0 SF .86(simple com-)3.7 F -(mand)108 96 Q F0(or may follo)3.27 E 2.5(wa)-.25 G F1(command)A F0 5 -(.R).77 G(edirections are processed in the order the)-5 E 2.5(ya)-.15 G -(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .284(In the follo) -108 112.8 R .283(wing descriptions, if the \214le descriptor number is \ -omitted, and the \214rst character of the redirect-)-.25 F .512 -(ion operator is)108 124.8 R/F2 10/Times-Bold@0 SF(<)3.012 E F0 3.012 -(,t)C .512 +-.35 E/F1 10/Times-Bold@0 SF(?\()144 84 Q/F2 10/Times-Italic@0 SF +(pattern-list).833 E F1(\)).833 E F0 +(Matches zero or one occurrence of the gi)180 96 Q -.15(ve)-.25 G 2.5 +(np).15 G(atterns)-2.5 E F1(*\()144 108 Q F2(pattern-list).833 E F1(\)) +.833 E F0(Matches zero or more occurrences of the gi)180 120 Q -.15(ve) +-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 132 Q F2(pattern-list).833 +E F1(\)).833 E F0(Matches one or more occurrences of the gi)180 144 Q +-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 156 Q F2 +(pattern-list).833 E F1(\)).833 E F0(Matches one of the gi)180 168 Q +-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(!\()144 180 Q F2 +(pattern-list).833 E F1(\)).833 E F0(Matches an)180 192 Q(ything e)-.15 +E(xcept one of the gi)-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E +F1(Quote Remo)87 208.8 Q -.1(va)-.1 G(l).1 E F0 1.112 +(After the preceding e)108 220.8 R 1.112 +(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\) +3.613 E F0(,)A F1<08>3.613 E F0 3.613(,a)C(nd)-3.613 E F1(")4.446 E F0 +1.113(that did not result)4.446 F(from one of the abo)108 232.8 Q .3 +-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3 +10.95/Times-Bold@0 SF(REDIRECTION)72 249.6 Q F0 .545 +(Before a command is e)108 261.6 R -.15(xe)-.15 G .545 +(cuted, its input and output may be).15 F F2 -.37(re)3.045 G(dir).37 E +(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .616 +(by the shell.)108 273.6 R .617(Redirection may also be used to open an\ +d close \214les for the current shell e)5.616 F -.15(xe)-.15 G .617 +(cution en).15 F(viron-)-.4 E 3.275(ment. The)108 285.6 R(follo)3.275 E +.774(wing redirection operators may precede or appear an)-.25 F .774 +(ywhere within a)-.15 F F2 .774(simple command)3.614 F F0(or)4.044 E +(may follo)108 297.6 Q 2.5(wa)-.25 G F2(command)A F0 5(.R).77 G +(edirections are processed in the order the)-5 E 2.5(ya)-.15 G(ppear) +-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Each redirection tha\ +t may be preceded by a \214le descriptor number may instead be preceded\ + by a w)108 314.4 R .772(ord of)-.1 F .293(the form {)108 326.4 R F2 +(varname)A F0 2.793(}. In)B .293 +(this case, for each redirection operator e)2.793 F .293 +(xcept >&- and <&-, the shell will allocate)-.15 F 3.498<618c>108 338.4 +S .999(le descriptor greater than 10 and assign it to)-3.498 F F2 +(varname)3.499 E F0 5.999(.I)C 3.499(f>)-5.999 G .999 +(&- or <&- is preceded by {)-3.499 F F2(varname)A F0 .999(}, the)B -.25 +(va)108 350.4 S(lue of).25 E F2(varname)2.5 E F0 +(de\214nes the \214le descriptor to close.)2.5 E .284(In the follo)108 +367.2 R .283(wing descriptions, if the \214le descriptor number is omit\ +ted, and the \214rst character of the redirect-)-.25 F .512 +(ion operator is)108 379.2 R F1(<)3.012 E F0 3.012(,t)C .512 (he redirection refers to the standard input \(\214le descriptor 0\).) -3.012 F .512(If the \214rst character of the)5.512 F -(redirection operator is)108 136.8 Q F2(>)2.5 E F0 2.5(,t)C +(redirection operator is)108 391.2 Q F1(>)2.5 E F0 2.5(,t)C (he redirection refers to the standard output \(\214le descriptor 1\).) --2.5 E .825(The w)108 153.6 R .825(ord follo)-.1 F .824 +-2.5 E .825(The w)108 408 R .825(ord follo)-.1 F .824 (wing the redirection operator in the follo)-.25 F .824 (wing descriptions, unless otherwise noted, is sub-)-.25 F .772 -(jected to brace e)108 165.6 R .773(xpansion, tilde e)-.15 F .773 +(jected to brace e)108 420 R .773(xpansion, tilde e)-.15 F .773 (xpansion, parameter e)-.15 F .773 (xpansion, command substitution, arithmetic e)-.15 F(xpan-)-.15 E .844 -(sion, quote remo)108 177.6 R -.25(va)-.15 G .843(l, pathname e).25 F -.843(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843 -F .843(xpands to more than one w)-.15 F(ord,)-.1 E F2(bash)3.343 E F0 -(reports an error)108 189.6 Q(.)-.55 E -(Note that the order of redirections is signi\214cant.)108 206.4 Q -.15 -(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 223.2 Q F2(>)2.5 -E F0(dirlist 2)2.5 E F2(>&)A F0(1)A -(directs both standard output and standard error to the \214le)108 240 Q -F1(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 256.8 -Q F2(>&)A F0(1)A F2(>)2.5 E F0(dirlist)2.5 E .527 -(directs only the standard output to \214le)108 273.6 R F1(dirlist)3.027 -E F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527 +(sion, quote remo)108 432 R -.25(va)-.15 G .843(l, pathname e).25 F .843 +(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843 F +.843(xpands to more than one w)-.15 F(ord,)-.1 E F1(bash)3.343 E F0 +(reports an error)108 444 Q(.)-.55 E +(Note that the order of redirections is signi\214cant.)108 460.8 Q -.15 +(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 477.6 Q F1(>)2.5 +E F0(dirlist 2)2.5 E F1(>&)A F0(1)A +(directs both standard output and standard error to the \214le)108 494.4 +Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 +511.2 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527 +(directs only the standard output to \214le)108 528 R F2(dirlist)3.027 E +F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527 (as duplicated from the standard)-.1 F -(output before the standard output w)108 285.6 Q(as redirected to)-.1 E -F1(dirlist)2.5 E F0(.).68 E F2(Bash)108 302.4 Q F0 .599(handles se)3.099 -F -.15(ve)-.25 G .599(ral \214lenames specially when the).15 F 3.099(ya) +(output before the standard output w)108 540 Q(as redirected to)-.1 E F2 +(dirlist)2.5 E F0(.).68 E F1(Bash)108 556.8 Q F0 .599(handles se)3.099 F +-.15(ve)-.25 G .599(ral \214lenames specially when the).15 F 3.099(ya) -.15 G .598(re used in redirections, as described in the follo)-3.099 F -(wing)-.25 E(table:)108 314.4 Q F2(/de)144 331.2 Q(v/fd/)-.15 E F1(fd)A -F0(If)180 343.2 Q F1(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 -E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F1(fd)2.5 E F0(is duplicated.)2.5 -E F2(/de)144 355.2 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.) -180 367.2 Q F2(/de)144 379.2 Q(v/stdout)-.15 E F0 -(File descriptor 1 is duplicated.)180 391.2 Q F2(/de)144 403.2 Q -(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 415.2 Q F2(/de) -144 427.2 Q(v/tcp/)-.15 E F1(host)A F2(/)A F1(port)A F0(If)180 439.2 Q -F1(host)2.996 E F0 .496(is a v)2.996 F .496 -(alid hostname or Internet address, and)-.25 F F1(port)2.997 E F0 .497 +(wing)-.25 E(table:)108 568.8 Q F1(/de)144 585.6 Q(v/fd/)-.15 E F2(fd)A +F0(If)180 597.6 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 +E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F2(fd)2.5 E F0(is duplicated.)2.5 +E F1(/de)144 609.6 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.) +180 621.6 Q F1(/de)144 633.6 Q(v/stdout)-.15 E F0 +(File descriptor 1 is duplicated.)180 645.6 Q F1(/de)144 657.6 Q +(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 669.6 Q F1(/de) +144 681.6 Q(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 693.6 Q +F2(host)2.996 E F0 .496(is a v)2.996 F .496 +(alid hostname or Internet address, and)-.25 F F2(port)2.997 E F0 .497 (is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E -(vice name,)180 451.2 Q F2(bash)2.5 E F0 +(vice name,)180 705.6 Q F1(bash)2.5 E F0 (attempts to open a TCP connection to the corresponding sock)2.5 E(et.) --.1 E F2(/de)144 463.2 Q(v/udp/)-.15 E F1(host)A F2(/)A F1(port)A F0(If) -180 475.2 Q F1(host)2.997 E F0 .497(is a v)2.997 F .497 -(alid hostname or Internet address, and)-.25 F F1(port)2.996 E F0 .496 -(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E -(vice name,)180 487.2 Q F2(bash)2.5 E F0 -(attempts to open a UDP connection to the corresponding sock)2.5 E(et.) --.1 E 2.5(Af)108 504 S +-.1 E(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(23)185.955 E 0 Cg +EP +%%Page: 24 24 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(/de)144 84 Q(v/udp/)-.15 E/F2 10 +/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 96 Q F2(host)2.997 +E F0 .497(is a v)2.997 F .497(alid hostname or Internet address, and) +-.25 F F2(port)2.996 E F0 .496(is an inte)2.996 F .496 +(ger port number or ser)-.15 F(-)-.2 E(vice name,)180 108 Q F1(bash)2.5 +E F0(attempts to open a UDP connection to the corresponding sock)2.5 E +(et.)-.1 E 2.5(Af)108 124.8 S (ailure to open or create a \214le causes the redirection to f)-2.6 E (ail.)-.1 E .946(Redirections using \214le descriptors greater than 9 s\ -hould be used with care, as the)108 520.8 R 3.447(ym)-.15 G .947 +hould be used with care, as the)108 141.6 R 3.447(ym)-.15 G .947 (ay con\215ict with \214le)-3.447 F -(descriptors the shell uses internally)108 532.8 Q(.)-.65 E F2(Redir)87 -549.6 Q(ecting Input)-.18 E F0 .391 +(descriptors the shell uses internally)108 153.6 Q(.)-.65 E F1(Redir)87 +170.4 Q(ecting Input)-.18 E F0 .391 (Redirection of input causes the \214le whose name results from the e) -108 561.6 R .391(xpansion of)-.15 F F1(wor)3.231 E(d)-.37 E F0 .391 -(to be opened for read-)3.661 F(ing on \214le descriptor)108 573.6 Q F1 +108 182.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391 +(to be opened for read-)3.661 F(ing on \214le descriptor)108 194.4 Q F2 (n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G -(he standard input \(\214le descriptor 0\) if)-2.5 E F1(n)2.86 E F0 +(he standard input \(\214le descriptor 0\) if)-2.5 E F2(n)2.86 E F0 (is not speci\214ed.)2.74 E -(The general format for redirecting input is:)108 590.4 Q([)144 607.2 Q -F1(n)A F0(])A F2(<)A F1(wor)A(d)-.37 E F2(Redir)87 624 Q(ecting Output) +(The general format for redirecting input is:)108 211.2 Q([)144 228 Q F2 +(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 244.8 Q(ecting Output) -.18 E F0 .174 (Redirection of output causes the \214le whose name results from the e) -108 636 R .175(xpansion of)-.15 F F1(wor)3.015 E(d)-.37 E F0 .175 -(to be opened for writ-)3.445 F .825(ing on \214le descriptor)108 648 R -F1(n)3.325 E F0 3.325(,o).24 G 3.325(rt)-3.325 G .824 -(he standard output \(\214le descriptor 1\) if)-3.325 F F1(n)3.684 E F0 +108 256.8 R .175(xpansion of)-.15 F F2(wor)3.015 E(d)-.37 E F0 .175 +(to be opened for writ-)3.445 F .825(ing on \214le descriptor)108 268.8 +R F2(n)3.325 E F0 3.325(,o).24 G 3.325(rt)-3.325 G .824 +(he standard output \(\214le descriptor 1\) if)-3.325 F F2(n)3.684 E F0 .824(is not speci\214ed.)3.564 F .824(If the \214le does not)5.824 F --.15(ex)108 660 S(ist it is created; if it does e).15 E +-.15(ex)108 280.8 S(ist it is created; if it does e).15 E (xist it is truncated to zero size.)-.15 E -(The general format for redirecting output is:)108 676.8 Q([)144 693.6 Q -F1(n)A F0(])A F2(>)A F1(wor)A(d)-.37 E F0 .154 -(If the redirection operator is)108 710.4 R F2(>)2.654 E F0 2.654(,a)C -.154(nd the)-2.654 F F2(noclob)2.654 E(ber)-.1 E F0 .154(option to the) -2.654 F F2(set)2.655 E F0 -.2(bu)2.655 G .155 -(iltin has been enabled, the redirection).2 F 1.76(will f)108 722.4 R -1.76(ail if the \214le whose name results from the e)-.1 F 1.759 -(xpansion of)-.15 F F1(wor)4.259 E(d)-.37 E F0 -.15(ex)4.259 G 1.759 -(ists and is a re).15 F 1.759(gular \214le.)-.15 F 1.759(If the)6.759 F -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(23)190.95 E 0 Cg EP -%%Page: 24 24 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .594(redirection operator is)108 84 R/F1 10/Times-Bold@0 SF(>|) -3.094 E F0 3.094(,o)C 3.094(rt)-3.094 G .594(he redirection operator is) --3.094 F F1(>)3.094 E F0 .595(and the)3.094 F F1(noclob)3.095 E(ber)-.1 -E F0 .595(option to the)3.095 F F1(set)3.095 E F0 -.2(bu)3.095 G .595 -(iltin com-).2 F(mand is not enabled, the redirection is attempted e)108 -96 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)-2.5 E -/F2 10/Times-Italic@0 SF(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E -F1 -.25(Ap)87 112.8 S(pending Redir).25 E(ected Output)-.18 E F0 .642 -(Redirection of output in this f)108 124.8 R .642 +(The general format for redirecting output is:)108 297.6 Q([)144 314.4 Q +F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .154 +(If the redirection operator is)108 331.2 R F1(>)2.654 E F0 2.654(,a)C +.154(nd the)-2.654 F F1(noclob)2.654 E(ber)-.1 E F0 .154(option to the) +2.654 F F1(set)2.655 E F0 -.2(bu)2.655 G .155 +(iltin has been enabled, the redirection).2 F .658(will f)108 343.2 R +.658(ail if the \214le whose name results from the e)-.1 F .658 +(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .657 +(ists and is a re).15 F .657(gular \214le.)-.15 F .657(If the redi-) +5.657 F .408(rection operator is)108 355.2 R F1(>|)2.909 E F0 2.909(,o)C +2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E +F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409 +(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.909 G .409 +(iltin command).2 F(is not enabled, the redirection is attempted e)108 +367.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by) +-2.5 E F2(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87 +384 S(pending Redir).25 E(ected Output)-.18 E F0 .642 +(Redirection of output in this f)108 396 R .642 (ashion causes the \214le whose name results from the e)-.1 F .641 (xpansion of)-.15 F F2(wor)3.481 E(d)-.37 E F0 .641(to be)3.911 F .473 -(opened for appending on \214le descriptor)108 136.8 R F2(n)2.973 E F0 +(opened for appending on \214le descriptor)108 408 R F2(n)2.973 E F0 2.974(,o).24 G 2.974(rt)-2.974 G .474 (he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.334 E F0 .474(is not speci\214ed.)3.214 F(If)5.474 E(the \214le does not e)108 -148.8 Q(xist it is created.)-.15 E -(The general format for appending output is:)108 165.6 Q([)144 182.4 Q -F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 204 Q +420 Q(xist it is created.)-.15 E +(The general format for appending output is:)108 436.8 Q([)144 453.6 Q +F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 475.2 Q (ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .249 -(This construct allo)108 216 R .249(ws both the standard output \(\214l\ -e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F -(tor 2\) to be redirected to the \214le whose name is the e)108 228 Q -(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E(There are tw)108 -244.8 Q 2.5(of)-.1 G +(This construct allo)108 487.2 R .249(ws both the standard output \(\ +\214le descriptor 1\) and the standard error output \(\214le descrip-) +-.25 F(tor 2\) to be redirected to the \214le whose name is the e)108 +499.2 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E +(There are tw)108 516 Q 2.5(of)-.1 G (ormats for redirecting standard output and standard error:)-2.5 E F1 -(&>)144 261.6 Q F2(wor)A(d)-.37 E F0(and)108 273.6 Q F1(>&)144 285.6 Q -F2(wor)A(d)-.37 E F0(Of the tw)108 302.4 Q 2.5(of)-.1 G +(&>)144 532.8 Q F2(wor)A(d)-.37 E F0(and)108 544.8 Q F1(>&)144 556.8 Q +F2(wor)A(d)-.37 E F0(Of the tw)108 573.6 Q 2.5(of)-.1 G (orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E --.25(va)-.25 G(lent to).25 E F1(>)144 319.2 Q F2(wor)A(d)-.37 E F0(2)2.5 -E F1(>&)A F0(1)A F1 -.25(Ap)87 340.8 S +-.25(va)-.25 G(lent to).25 E F1(>)144 590.4 Q F2(wor)A(d)-.37 E F0(2)2.5 +E F1(>&)A F0(1)A F1 -.25(Ap)87 612 S (pending Standard Output and Standard Err).25 E(or)-.18 E F0 .248 -(This construct allo)108 352.8 R .249(ws both the standard output \(\ -\214le descriptor 1\) and the standard error output \(\214le descrip-) --.25 F(tor 2\) to be appended to the \214le whose name is the e)108 -364.8 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E +(This construct allo)108 624 R .249(ws both the standard output \(\214l\ +e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F +(tor 2\) to be appended to the \214le whose name is the e)108 636 Q +(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E (The format for appending standard output and standard error is:)108 -381.6 Q F1(&>>)144 398.4 Q F2(wor)A(d)-.37 E F0 -(This is semantically equi)108 415.2 Q -.25(va)-.25 G(lent to).25 E F1 -(>>)144 432 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A F1(Her)87 -448.8 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of redirection i\ -nstructs the shell to read input from the current source until a line c\ -ontaining only)108 460.8 R F2(delimiter)108.35 472.8 Q F0 .614 +652.8 Q F1(&>>)144 669.6 Q F2(wor)A(d)-.37 E F0 +(This is semantically equi)108 686.4 Q -.25(va)-.25 G(lent to).25 E F1 +(>>)144 703.2 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(24)185.955 E 0 Cg EP +%%Page: 25 25 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(Her)87 84 Q 2.5(eD)-.18 G(ocuments)-2.5 E +F0 .33(This type of redirection instructs the shell to read input from \ +the current source until a line containing only)108 96 R/F2 10 +/Times-Italic@0 SF(delimiter)108.35 108 Q F0 .614 (\(with no trailing blanks\) is seen.)3.844 F .615 (All of the lines read up to that point are then used as the stan-)5.615 -F(dard input for a command.)108 484.8 Q -(The format of here-documents is:)108 501.6 Q F1(<<)144 518.4 Q F0([)A -F1A F0(])A F2(wor)A(d)-.37 E(her)164 530.4 Q(e-document)-.37 E -(delimiter)144 542.4 Q F0 .128(No parameter e)108 559.2 R .127 +F(dard input for a command.)108 120 Q(The format of here-documents is:) +108 136.8 Q F1(<<)144 153.6 Q F0([)A F1A F0(])A F2(wor)A(d)-.37 E +(her)164 165.6 Q(e-document)-.37 E(delimiter)144 177.6 Q F0 .128 +(No parameter e)108 194.4 R .127 (xpansion, command substitution, arithmetic e)-.15 F .127 (xpansion, or pathname e)-.15 F .127(xpansion is performed)-.15 F(on)108 -571.2 Q F2(wor)3.274 E(d)-.37 E F0 5.774(.I).77 G 3.274(fa)-5.774 G +206.4 Q F2(wor)3.274 E(d)-.37 E F0 5.774(.I).77 G 3.274(fa)-5.774 G 1.074 -.15(ny c)-3.274 H .774(haracters in).15 F F2(wor)3.614 E(d)-.37 E F0 .774(are quoted, the)4.044 F F2(delimiter)3.624 E F0 .774 (is the result of quote remo)4.004 F -.25(va)-.15 G 3.275(lo).25 G(n) -3.275 E F2(wor)3.275 E(d)-.37 E F0 3.275(,a).77 G(nd)-3.275 E .905 -(the lines in the here-document are not e)108 583.2 R 3.405(xpanded. If) +(the lines in the here-document are not e)108 218.4 R 3.405(xpanded. If) -.15 F F2(wor)3.405 E(d)-.37 E F0 .904 (is unquoted, all lines of the here-document are)3.405 F .694 -(subjected to parameter e)108 595.2 R .695 +(subjected to parameter e)108 230.4 R .695 (xpansion, command substitution, and arithmetic e)-.15 F 3.195 (xpansion. In)-.15 F .695(the latter case, the)3.195 F -(character sequence)108 607.2 Q F1(\\)2.5 E F0(is ignored, and) +(character sequence)108 242.4 Q F1(\\)2.5 E F0(is ignored, and) 2.5 E F1(\\)2.5 E F0(must be used to quote the characters)2.5 E F1(\\) 2.5 E F0(,)A F1($)2.5 E F0 2.5(,a)C(nd)-2.5 E F1<92>2.5 E F0(.)A .602 -(If the redirection operator is)108 624 R F1(<<\255)3.101 E F0 3.101(,t) -C .601(hen all leading tab characters are stripped from input lines and\ - the line)-3.101 F(containing)108 636 Q F2(delimiter)2.5 E F0 5(.T).73 G -(his allo)-5 E +(If the redirection operator is)108 259.2 R F1(<<\255)3.101 E F0 3.101 +(,t)C .601(hen all leading tab characters are stripped from input lines\ + and the line)-3.101 F(containing)108 271.2 Q F2(delimiter)2.5 E F0 5 +(.T).73 G(his allo)-5 E (ws here-documents within shell scripts to be indented in a natural f) --.25 E(ashion.)-.1 E F1(Her)87 652.8 Q 2.5(eS)-.18 G(trings)-2.5 E F0 -2.5(Av)108 664.8 S(ariant of here documents, the format is:)-2.75 E F1 -(<<<)144 681.6 Q F2(wor)A(d)-.37 E F0(The)108 698.4 Q F2(wor)2.5 E(d) --.37 E F0(is e)2.5 E -(xpanded and supplied to the command on its standard input.)-.15 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(24)190.95 E 0 Cg EP -%%Page: 25 25 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(Duplicating File Descriptors)87 84 Q F0 -(The redirection operator)108 96 Q([)144 112.8 Q/F2 10/Times-Italic@0 SF -(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .126 -(is used to duplicate input \214le descriptors.)108 129.6 R(If)5.127 E -F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127 +-.25 E(ashion.)-.1 E F1(Her)87 288 Q 2.5(eS)-.18 G(trings)-2.5 E F0 2.5 +(Av)108 300 S(ariant of here documents, the format is:)-2.75 E F1(<<<) +144 316.8 Q F2(wor)A(d)-.37 E F0(The)108 333.6 Q F2(wor)2.5 E(d)-.37 E +F0(is e)2.5 E +(xpanded and supplied to the command on its standard input.)-.15 E F1 +(Duplicating File Descriptors)87 350.4 Q F0(The redirection operator)108 +362.4 Q([)144 379.2 Q F2(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .126 +(is used to duplicate input \214le descriptors.)108 396 R(If)5.127 E F2 +(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127 (pands to one or more digits, the \214le descriptor denoted).15 F(by)108 -141.6 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G +408 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G 2.958(ft)-2.958 G .457(hat \214le descriptor)-2.958 F 5.457(.I)-.55 G 2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.297 E(d)-.37 E F0 .457(do not specify a \214le descriptor open)3.727 F .149 -(for input, a redirection error occurs.)108 153.6 R(If)5.149 E F2(wor) +(for input, a redirection error occurs.)108 420 R(If)5.149 E F2(wor) 2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F12.649 E F0 2.65<2c8c>C .15(le descriptor)-2.65 F F2(n)3.01 E F0 .15(is closed.) 2.89 F(If)5.15 E F2(n)3.01 E F0 .15(is not speci\214ed,)2.89 F -(the standard input \(\214le descriptor 0\) is used.)108 165.6 Q -(The operator)108 182.4 Q([)144 199.2 Q F2(n)A F0(])A F1(>&)A F2(wor)A +(the standard input \(\214le descriptor 0\) is used.)108 432 Q +(The operator)108 448.8 Q([)144 465.6 Q F2(n)A F0(])A F1(>&)A F2(wor)A (d)-.37 E F0 .444 -(is used similarly to duplicate output \214le descriptors.)108 216 R(If) -5.444 E F2(n)3.304 E F0 .443 +(is used similarly to duplicate output \214le descriptors.)108 482.4 R +(If)5.444 E F2(n)3.304 E F0 .443 (is not speci\214ed, the standard output \(\214le descrip-)3.183 F 1.357 -(tor 1\) is used.)108 228 R 1.357(If the digits in)6.357 F F2(wor)4.197 -E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for output,\ - a redirection error)4.627 F 2.597(occurs. As)108 240 R 2.597(as)2.597 G -.097(pecial case, if)-2.597 F F2(n)2.596 E F0 .096(is omitted, and)2.596 -F F2(wor)2.596 E(d)-.37 E F0 .096(does not e)2.596 F .096 -(xpand to one or more digits, the standard out-)-.15 F -(put and standard error are redirected as described pre)108 252 Q -(viously)-.25 E(.)-.65 E F1(Mo)87 268.8 Q(ving File Descriptors)-.1 E F0 -(The redirection operator)108 280.8 Q([)144 297.6 Q F2(n)A F0(])A F1(<&) -A F2(digit)A F1A F0(mo)108 314.4 Q -.15(ve)-.15 G 3.035(st).15 G -.535(he \214le descriptor)-3.035 F F2(digit)3.035 E F0 .535 +(tor 1\) is used.)108 494.4 R 1.357(If the digits in)6.357 F F2(wor) +4.197 E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for o\ +utput, a redirection error)4.627 F 2.597(occurs. As)108 506.4 R 2.597 +(as)2.597 G .097(pecial case, if)-2.597 F F2(n)2.596 E F0 .096 +(is omitted, and)2.596 F F2(wor)2.596 E(d)-.37 E F0 .096(does not e) +2.596 F .096(xpand to one or more digits, the standard out-)-.15 F +(put and standard error are redirected as described pre)108 518.4 Q +(viously)-.25 E(.)-.65 E F1(Mo)87 535.2 Q(ving File Descriptors)-.1 E F0 +(The redirection operator)108 547.2 Q([)144 564 Q F2(n)A F0(])A F1(<&)A +F2(digit)A F1A F0(mo)108 580.8 Q -.15(ve)-.15 G 3.035(st).15 G .535 +(he \214le descriptor)-3.035 F F2(digit)3.035 E F0 .535 (to \214le descriptor)3.035 F F2(n)3.035 E F0 3.035(,o).24 G 3.035(rt) -3.035 G .536(he standard input \(\214le descriptor 0\) if)-3.035 F F2 -(n)3.036 E F0 .536(is not speci-)3.036 F(\214ed.)108 326.4 Q F2(digit)5 +(n)3.036 E F0 .536(is not speci-)3.036 F(\214ed.)108 592.8 Q F2(digit)5 E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A -(Similarly)108 343.2 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([) -144 360 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1A F0(mo)108 376.8 Q +(Similarly)108 609.6 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([) +144 626.4 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1A F0(mo)108 643.2 Q -.15(ve)-.15 G 2.786(st).15 G .286(he \214le descriptor)-2.786 F F2 (digit)2.786 E F0 .286(to \214le descriptor)2.786 F F2(n)2.786 E F0 2.786(,o).24 G 2.786(rt)-2.786 G .285 (he standard output \(\214le descriptor 1\) if)-2.786 F F2(n)2.785 E F0 -.285(is not speci-)2.785 F(\214ed.)108 388.8 Q F1 -(Opening File Descriptors f)87 405.6 Q(or Reading and Writing)-.25 E F0 -(The redirection operator)108 417.6 Q([)144 434.4 Q F2(n)A F0(])A F1(<>) -A F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108 -451.2 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349 +.285(is not speci-)2.785 F(\214ed.)108 655.2 Q F1 +(Opening File Descriptors f)87 672 Q(or Reading and Writing)-.25 E F0 +(The redirection operator)108 684 Q([)144 700.8 Q F2(n)A F0(])A F1(<>)A +F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108 +717.6 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349 (to be opened for both reading and writing on \214le)4.619 F(descriptor) -108 463.2 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G +108 729.6 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G (le descriptor 0 if)-2.5 E F2(n)2.86 E F0(is not speci\214ed.)2.74 E -(If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95 -/Times-Bold@0 SF(ALIASES)72 480 Q F2(Aliases)108 492 Q F0(allo)3.174 E -3.174(was)-.25 G .674(tring to be substituted for a w)-3.174 F .674 +(If the \214le does not e)5 E(xist, it is created.)-.15 E(GNU Bash-4.1) +72 768 Q(2009 December 29)135.965 E(25)185.955 E 0 Cg EP +%%Page: 26 26 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10.95/Times-Bold@0 SF(ALIASES)72 84 Q/F2 10/Times-Italic@0 SF +(Aliases)108 96 Q F0(allo)3.174 E 3.174(was)-.25 G .674 +(tring to be substituted for a w)-3.174 F .674 (ord when it is used as the \214rst w)-.1 F .673 (ord of a simple command.)-.1 F .394(The shell maintains a list of alia\ -ses that may be set and unset with the)108 504 R F1(alias)2.894 E F0 -(and)2.894 E F1(unalias)2.894 E F0 -.2(bu)2.894 G .394(iltin commands).2 -F(\(see)108 516 Q/F4 9/Times-Bold@0 SF 1.98(SHELL B)4.48 F(UIL)-.09 E -1.98(TIN COMMANDS)-.828 F F0(belo)4.23 E 4.48(w\). The)-.25 F 1.98 -(\214rst w)4.48 F 1.979(ord of each simple command, if unquoted, is)-.1 -F(check)108 528 Q .472(ed to see if it has an alias.)-.1 F .472 -(If so, that w)5.472 F .473(ord is replaced by the te)-.1 F .473 -(xt of the alias.)-.15 F .473(The characters)5.473 F F1(/)2.973 E F0(,)A -F1($)2.973 E F0(,)A F1<92>2.973 E F0(,)A(and)108 540 Q F1(=)3.612 E F0 -1.112(and an)3.612 F 3.612(yo)-.15 G 3.612(ft)-3.612 G 1.112(he shell) --3.612 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112 +ses that may be set and unset with the)108 108 R/F3 10/Times-Bold@0 SF +(alias)2.894 E F0(and)2.894 E F3(unalias)2.894 E F0 -.2(bu)2.894 G .394 +(iltin commands).2 F(\(see)108 120 Q/F4 9/Times-Bold@0 SF 1.98(SHELL B) +4.48 F(UIL)-.09 E 1.98(TIN COMMANDS)-.828 F F0(belo)4.23 E 4.48 +(w\). The)-.25 F 1.98(\214rst w)4.48 F 1.979 +(ord of each simple command, if unquoted, is)-.1 F(check)108 132 Q .472 +(ed to see if it has an alias.)-.1 F .472(If so, that w)5.472 F .473 +(ord is replaced by the te)-.1 F .473(xt of the alias.)-.15 F .473 +(The characters)5.473 F F3(/)2.973 E F0(,)A F3($)2.973 E F0(,)A F3<92> +2.973 E F0(,)A(and)108 144 Q F3(=)3.612 E F0 1.112(and an)3.612 F 3.612 +(yo)-.15 G 3.612(ft)-3.612 G 1.112(he shell)-3.612 F F2(metac)3.612 E +(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112 (or quoting characters listed abo)3.612 F 1.411 -.15(ve m)-.15 H 1.111 -(ay not appear in an alias).15 F 3.619(name. The)108 552 R 1.119 +(ay not appear in an alias).15 F 3.619(name. The)108 156 R 1.119 (replacement te)3.619 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G 1.119(alid shell input, including shell metacharacters.)-3.869 F 1.12 -(The \214rst)6.12 F -.1(wo)108 564 S .514(rd of the replacement te).1 F +(The \214rst)6.12 F -.1(wo)108 168 S .514(rd of the replacement te).1 F .514(xt is tested for aliases, b)-.15 F .514(ut a w)-.2 F .513 (ord that is identical to an alias being e)-.1 F .513(xpanded is)-.15 F -.295(not e)108 576 R .295(xpanded a second time.)-.15 F .296 -(This means that one may alias)5.295 F F1(ls)2.796 E F0(to)2.796 E F1 -.296(ls \255F)2.796 F F0 2.796(,f)C .296(or instance, and)-2.796 F F1 -(bash)2.796 E F0 .296(does not try)2.796 F .543(to recursi)108 588 R +.295(not e)108 180 R .295(xpanded a second time.)-.15 F .296 +(This means that one may alias)5.295 F F3(ls)2.796 E F0(to)2.796 E F3 +.296(ls \255F)2.796 F F0 2.796(,f)C .296(or instance, and)-2.796 F F3 +(bash)2.796 E F0 .296(does not try)2.796 F .543(to recursi)108 192 R -.15(ve)-.25 G .543(ly e).15 F .543(xpand the replacement te)-.15 F 3.043(xt. If)-.15 F .543(the last character of the alias v)3.043 F .542 (alue is a)-.25 F F2(blank)3.042 E F0 3.042(,t).67 G .542(hen the ne) --3.042 F(xt)-.15 E(command w)108 600 Q(ord follo)-.1 E +-3.042 F(xt)-.15 E(command w)108 204 Q(ord follo)-.1 E (wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15 -E(Aliases are created and listed with the)108 616.8 Q F1(alias)2.5 E F0 -(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F1 +E(Aliases are created and listed with the)108 220.8 Q F3(alias)2.5 E F0 +(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F3 (unalias)2.5 E F0(command.)2.5 E .284 -(There is no mechanism for using ar)108 633.6 R .284 +(There is no mechanism for using ar)108 237.6 R .284 (guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E .284(guments are needed, a shell func-)-.18 F(tion should be used \(see) -108 645.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22 -(Aliases are not e)108 662.4 R 1.22 +108 249.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22 +(Aliases are not e)108 266.4 R 1.22 (xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 3.72(,u) -.15 G 1.22(nless the)-3.72 F F1(expand_aliases)3.72 E F0 1.22 -(shell option is set)3.72 F(using)108 674.4 Q F1(shopt)2.5 E F0 -(\(see the description of)2.5 E F1(shopt)2.5 E F0(under)2.5 E F4 +.15 G 1.22(nless the)-3.72 F F3(expand_aliases)3.72 E F0 1.22 +(shell option is set)3.72 F(using)108 278.4 Q F3(shopt)2.5 E F0 +(\(see the description of)2.5 E F3(shopt)2.5 E F0(under)2.5 E F4 (SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E .435 (The rules concerning the de\214nition and use of aliases are some)108 -691.2 R .436(what confusing.)-.25 F F1(Bash)5.436 E F0(al)2.936 E -.1 +295.2 R .436(what confusing.)-.25 F F3(Bash)5.436 E F0(al)2.936 E -.1 (wa)-.1 G .436(ys reads at least).1 F .338 -(one complete line of input before e)108 703.2 R -.15(xe)-.15 G .338 +(one complete line of input before e)108 307.2 R -.15(xe)-.15 G .338 (cuting an).15 F 2.838(yo)-.15 G 2.838(ft)-2.838 G .338 (he commands on that line.)-2.838 F .337(Aliases are e)5.337 F .337 -(xpanded when)-.15 F 3.403(ac)108 715.2 S .904 +(xpanded when)-.15 F 3.403(ac)108 319.2 S .904 (ommand is read, not when it is e)-3.403 F -.15(xe)-.15 G 3.404 (cuted. Therefore,).15 F .904 (an alias de\214nition appearing on the same line as)3.404 F 1.162 -(another command does not tak)108 727.2 R 3.662(ee)-.1 G -.25(ff)-3.662 +(another command does not tak)108 331.2 R 3.662(ee)-.1 G -.25(ff)-3.662 G 1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F -1.161(The commands follo)6.161 F 1.161(wing the)-.25 F(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(25)190.95 E 0 Cg EP -%%Page: 26 26 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .277(alias de\214nition on that line are not af)108 84 R .277 +1.161(The commands follo)6.161 F 1.161(wing the)-.25 F .277 +(alias de\214nition on that line are not af)108 343.2 R .277 (fected by the ne)-.25 F 2.777(wa)-.25 G 2.777(lias. This)-2.777 F(beha) 2.777 E .277(vior is also an issue when functions)-.2 F .699(are e)108 -96 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F .699(\ -xpanded when a function de\214nition is read, not when the function is \ -e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494 -(because a function de\214nition is itself a compound command.)108 108 R -.495(As a consequence, aliases de\214ned in a func-)5.494 F .085 -(tion are not a)108 120 R -.25(va)-.2 G .084 +355.2 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F +.699(xpanded when a function de\214nition is read, not when the functio\ +n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494 +(because a function de\214nition is itself a compound command.)108 367.2 +R .495(As a consequence, aliases de\214ned in a func-)5.494 F .085 +(tion are not a)108 379.2 R -.25(va)-.2 G .084 (ilable until after that function is e).25 F -.15(xe)-.15 G 2.584 (cuted. T).15 F 2.584(ob)-.8 G 2.584(es)-2.584 G .084(afe, al)-2.584 F -.1(wa)-.1 G .084(ys put alias de\214nitions on a sepa-).1 F -(rate line, and do not use)108 132 Q/F1 10/Times-Bold@0 SF(alias)2.5 E -F0(in compound commands.)2.5 E -.15(Fo)108 148.8 S 2.5(ra).15 G(lmost e) --2.5 E -.15(ve)-.25 G -(ry purpose, aliases are superseded by shell functions.).15 E/F2 10.95 -/Times-Bold@0 SF(FUNCTIONS)72 165.6 Q F0 3.467(As)108 177.6 S .967 +(rate line, and do not use)108 391.2 Q F3(alias)2.5 E F0 +(in compound commands.)2.5 E -.15(Fo)108 408 S 2.5(ra).15 G(lmost e)-2.5 +E -.15(ve)-.25 G(ry purpose, aliases are superseded by shell functions.) +.15 E F1(FUNCTIONS)72 424.8 Q F0 3.467(As)108 436.8 S .967 (hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)-.15 -H(nder).15 E/F3 9/Times-Bold@0 SF .967(SHELL GRAMMAR)3.467 F/F4 9 -/Times-Roman@0 SF(,)A F0 .968(stores a series of commands for)3.217 F -1.002(later e)108 189.6 R -.15(xe)-.15 G 3.502(cution. When).15 F 1.002 -(the name of a shell function is used as a simple command name, the lis\ -t of com-)3.502 F .315(mands associated with that function name is e)108 -201.6 R -.15(xe)-.15 G 2.816(cuted. Functions).15 F .316(are e)2.816 F --.15(xe)-.15 G .316(cuted in the conte).15 F .316(xt of the current)-.15 -F .036(shell; no ne)108 213.6 R 2.536(wp)-.25 G .036 +H(nder).15 E F4 .967(SHELL GRAMMAR)3.467 F/F5 9/Times-Roman@0 SF(,)A F0 +.968(stores a series of commands for)3.217 F 1.002(later e)108 448.8 R +-.15(xe)-.15 G 3.502(cution. When).15 F 1.002(the name of a shell funct\ +ion is used as a simple command name, the list of com-)3.502 F .315 +(mands associated with that function name is e)108 460.8 R -.15(xe)-.15 +G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .316 +(cuted in the conte).15 F .316(xt of the current)-.15 F .036 +(shell; no ne)108 472.8 R 2.536(wp)-.25 G .036 (rocess is created to interpret them \(contrast this with the e)-2.536 F -.15(xe)-.15 G .036(cution of a shell script\).).15 F .035(When a)5.035 -F .639(function is e)108 225.6 R -.15(xe)-.15 G .639(cuted, the ar).15 F +F .639(function is e)108 484.8 R -.15(xe)-.15 G .639(cuted, the ar).15 F .639 (guments to the function become the positional parameters during its e) --.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 237.6 -R F1(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532 +-.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 496.8 +R F3(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532 (Special parameter 0 is unchanged.)5.532 F .532(The \214rst ele-)5.532 F -1.017(ment of the)108 249.6 R F3(FUNCN)3.517 E(AME)-.18 E F0 -.25(va) -3.267 G 1.017 -(riable is set to the name of the function while the function is e).25 F --.15(xe)-.15 G 3.518(cuting. All).15 F 1.285 -(other aspects of the shell e)108 261.6 R -.15(xe)-.15 G 1.285 -(cution en).15 F 1.285 -(vironment are identical between a function and its caller with the)-.4 -F -.15(ex)108 273.6 S 2.029(ception that the).15 F F3(DEB)4.529 E(UG) --.09 E F0(and)4.279 E F1(RETURN)4.529 E F0 2.029 -(traps \(see the description of the)4.529 F F1(trap)4.53 E F0 -.2(bu) -4.53 G 2.03(iltin under).2 F F3(SHELL)4.53 E -.09(BU)108 285.6 S(IL).09 -E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479 +(ment of the)108 508.8 Q F4(FUNCN)2.5 E(AME)-.18 E F0 -.25(va)2.25 G +(riable is set to the name of the function while the function is e).25 E +-.15(xe)-.15 G(cuting.).15 E 1.25(All other aspects of the shell e)108 +525.6 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25 +(vironment are identical between a function and its caller with)-.4 F +1.049(these e)108 537.6 R 3.548(xceptions: the)-.15 F F4(DEB)3.548 E(UG) +-.09 E F0(and)3.298 E F3(RETURN)3.548 E F0 1.048 +(traps \(see the description of the)3.548 F F3(trap)3.548 E F0 -.2(bu) +3.548 G 1.048(iltin under).2 F F4(SHELL)3.548 E -.09(BU)108 549.6 S(IL) +.09 E .478(TIN COMMANDS)-.828 F F0(belo)2.728 E .479 (w\) are not inherited unless the function has been gi)-.25 F -.15(ve) --.25 G 2.978(nt).15 G(he)-2.978 E F1(trace)2.978 E F0(attrib)2.978 E -.478(ute \(see)-.2 F .42(the description of the)108 297.6 R F3(declar) +-.25 G 2.979(nt).15 G(he)-2.979 E F3(trace)2.979 E F0(attrib)2.979 E +.479(ute \(see)-.2 F .421(the description of the)108 561.6 R F4(declar) 2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the) --.25 F F1 .42(\255o functrace)2.92 F F0 .42 -(shell option has been enabled with the)2.92 F F1(set)2.921 E F0 -.2(bu) -108 309.6 S(iltin \(in which case all functions inherit the).2 E F1(DEB) -2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps\).)2.5 E -1.11(Va) -108 326.4 S .656(riables local to the function may be declared with the) -1.11 F F1(local)3.155 E F0 -.2(bu)3.155 G .655(iltin command.).2 F -(Ordinarily)5.655 E 3.155(,v)-.65 G .655(ariables and)-3.405 F(their v) -108 338.4 Q(alues are shared between the function and its caller)-.25 E -(.)-.55 E .043(If the b)108 355.2 R .043(uiltin command)-.2 F F1 -.18 -(re)2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043 +-.25 F F3 .42(\255o functrace)2.92 F F0 .42 +(shell option has been enabled with the)2.92 F F3(set)2.92 E F0 -.2(bu) +108 573.6 S .071(iltin \(in which case all functions inherit the).2 F F3 +(DEB)2.572 E(UG)-.1 E F0(and)2.572 E F3(RETURN)2.572 E F0 .072 +(traps\), and the)2.572 F F4(ERR)2.572 E F0 .072(trap is not inher)2.322 +F(-)-.2 E(ited unless the)108 585.6 Q F3(\255o errtrace)2.5 E F0 +(shell option has been enabled.)2.5 E -1.11(Va)108 602.4 S .656 +(riables local to the function may be declared with the)1.11 F F3(local) +3.155 E F0 -.2(bu)3.155 G .655(iltin command.).2 F(Ordinarily)5.655 E +3.155(,v)-.65 G .655(ariables and)-3.405 F(their v)108 614.4 Q +(alues are shared between the function and its caller)-.25 E(.)-.55 E +.043(If the b)108 631.2 R .043(uiltin command)-.2 F F3 -.18(re)2.543 G +(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043 (cuted in a function, the function completes and e).15 F -.15(xe)-.15 G -.044(cution resumes with).15 F 1.012(the ne)108 367.2 R 1.012 +.044(cution resumes with).15 F 1.012(the ne)108 643.2 R 1.012 (xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G -1.011(ommand associated with the)-3.511 F F1(RETURN)3.511 E F0 1.011 -(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 379.2 R +1.011(ommand associated with the)-3.511 F F3(RETURN)3.511 E F0 1.011 +(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 655.2 R -.15(xe)-.15 G .213(cution resumes.).15 F .213 (When a function completes, the v)5.213 F .214 (alues of the positional parameters and the spe-)-.25 F(cial parameter) -108 391.2 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E +108 667.2 Q F3(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E 2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe) -2.65 G(cution.).15 E 1.359 -(Function names and de\214nitions may be listed with the)108 408 R F1 -3.858 E F0 1.358(option to the)3.858 F F1(declar)3.858 E(e)-.18 E -F0(or)3.858 E F1(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F -3.39(mands. The)108 420 R F13.39 E F0 .89(option to)3.39 F F1 -(declar)3.39 E(e)-.18 E F0(or)3.39 E F1(typeset)3.39 E F0 .89 +(Function names and de\214nitions may be listed with the)108 684 R F3 +3.858 E F0 1.358(option to the)3.858 F F3(declar)3.858 E(e)-.18 E +F0(or)3.858 E F3(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F +3.39(mands. The)108 696 R F33.39 E F0 .89(option to)3.39 F F3 +(declar)3.39 E(e)-.18 E F0(or)3.39 E F3(typeset)3.39 E F0 .89 (will list the function names only \(and optionally the source)3.39 F -.327(\214le and line number)108 432 R 2.827(,i)-.4 G 2.827(ft)-2.827 G -(he)-2.827 E F1(extdeb)2.827 E(ug)-.2 E F0 .326 +.327(\214le and line number)108 708 R 2.827(,i)-.4 G 2.827(ft)-2.827 G +(he)-2.827 E F3(extdeb)2.827 E(ug)-.2 E F0 .326 (shell option is enabled\).)2.827 F .326(Functions may be e)5.326 F .326 -(xported so that subshells)-.15 F 1.297(automatically ha)108 444 R 1.597 --.15(ve t)-.2 H 1.297(hem de\214ned with the).15 F F13.797 E F0 -1.297(option to the)3.797 F F1(export)3.798 E F0 -.2(bu)3.798 G 3.798 -(iltin. A).2 F 1.298(function de\214nition may be)3.798 F .161 -(deleted using the)108 456 R F12.661 E F0 .161(option to the)2.661 -F F1(unset)2.661 E F0 -.2(bu)2.661 G 2.661(iltin. Note).2 F .16 -(that shell functions and v)2.661 F .16(ariables with the same name)-.25 -F 1.325(may result in multiple identically-named entries in the en)108 -468 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825 -(hildren. Care)-3.825 F(should be tak)108 480 Q +(xported so that subshells)-.15 F 1.297(automatically ha)108 720 R 1.597 +-.15(ve t)-.2 H 1.297(hem de\214ned with the).15 F F33.797 E F0 +1.297(option to the)3.797 F F3(export)3.798 E F0 -.2(bu)3.798 G 3.798 +(iltin. A).2 F 1.298(function de\214nition may be)3.798 F(GNU Bash-4.1) +72 768 Q(2009 December 29)135.965 E(26)185.955 E 0 Cg EP +%%Page: 27 27 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E .161(deleted using the)108 84 R/F1 10/Times-Bold@0 SF2.661 +E F0 .161(option to the)2.661 F F1(unset)2.661 E F0 -.2(bu)2.661 G 2.661 +(iltin. Note).2 F .16(that shell functions and v)2.661 F .16 +(ariables with the same name)-.25 F 1.325 +(may result in multiple identically-named entries in the en)108 96 R +1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825 +(hildren. Care)-3.825 F(should be tak)108 108 Q (en in cases where this may cause a problem.)-.1 E -(Functions may be recursi)108 496.8 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol) +(Functions may be recursi)108 124.8 Q -.15(ve)-.25 G 5(.N).15 G 2.5(ol) -5 G(imit is imposed on the number of recursi)-2.5 E .3 -.15(ve c)-.25 H -(alls.).15 E F2(ARITHMETIC EV)72 513.6 Q(ALU)-1.478 E -1.04(AT)-.657 G -(ION)1.04 E F0 2.298(The shell allo)108 525.6 R 2.297(ws arithmetic e) --.25 F 2.297(xpressions to be e)-.15 F -.25(va)-.25 G 2.297 -(luated, under certain circumstances \(see the).25 F F1(let)4.797 E F0 -(and)4.797 E F1(declar)108 537.6 Q(e)-.18 E F0 -.2(bu)2.705 G .205 -(iltin commands and).2 F F1 .205(Arithmetic Expansion)2.705 F F0 2.705 -(\). Ev)B .205(aluation is done in \214x)-.25 F .206(ed-width inte)-.15 -F .206(gers with no)-.15 F .429(check for o)108 549.6 R -.15(ve)-.15 G -(r\215o).15 E 1.729 -.65(w, t)-.25 H .429(hough di).65 F .428 +(alls.).15 E/F2 10.95/Times-Bold@0 SF(ARITHMETIC EV)72 141.6 Q(ALU) +-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.298(The shell allo)108 153.6 R +2.297(ws arithmetic e)-.25 F 2.297(xpressions to be e)-.15 F -.25(va) +-.25 G 2.297(luated, under certain circumstances \(see the).25 F F1(let) +4.797 E F0(and)4.797 E F1(declar)108 165.6 Q(e)-.18 E F0 -.2(bu)2.705 G +.205(iltin commands and).2 F F1 .205(Arithmetic Expansion)2.705 F F0 +2.705(\). Ev)B .205(aluation is done in \214x)-.25 F .206(ed-width inte) +-.15 F .206(gers with no)-.15 F .429(check for o)108 177.6 R -.15(ve) +-.15 G(r\215o).15 E 1.729 -.65(w, t)-.25 H .429(hough di).65 F .428 (vision by 0 is trapped and \215agged as an error)-.25 F 5.428(.T)-.55 G .428(he operators and their prece-)-5.428 F 1.919(dence, associati)108 -561.6 R(vity)-.25 E 4.419(,a)-.65 G 1.919(nd v)-4.419 F 1.919 +189.6 R(vity)-.25 E 4.419(,a)-.65 G 1.919(nd v)-4.419 F 1.919 (alues are the same as in the C language.)-.25 F 1.92(The follo)6.92 F -1.92(wing list of operators is)-.25 F(grouped into le)108 573.6 Q -.15 +1.92(wing list of operators is)-.25 F(grouped into le)108 201.6 Q -.15 (ve)-.25 G(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve) --.25 G(ls are listed in order of decreasing precedence.).15 E/F5 10 -/Times-Italic@0 SF(id)108 590.4 Q F1(++)A F5(id)2.5 E F1A F0 -.25 -(va)144 602.4 S(riable post-increment and post-decrement).25 E F1(++)108 -614.4 Q F5(id)A F12.5 E F5(id)A F0 -.25(va)144 626.4 S -(riable pre-increment and pre-decrement).25 E F1 2.5108 638.4 S F0 -(unary minus and plus)19.6 E F1 2.5(!~)108 650.4 S F0 +-.25 G(ls are listed in order of decreasing precedence.).15 E/F3 10 +/Times-Italic@0 SF(id)108 218.4 Q F1(++)A F3(id)2.5 E F1A F0 -.25 +(va)144 230.4 S(riable post-increment and post-decrement).25 E F1(++)108 +242.4 Q F3(id)A F12.5 E F3(id)A F0 -.25(va)144 254.4 S +(riable pre-increment and pre-decrement).25 E F1 2.5108 266.4 S F0 +(unary minus and plus)19.6 E F1 2.5(!~)108 278.4 S F0 (logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108 -662.4 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 674.4 S F0 +290.4 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 302.4 S F0 (multiplication, di)10.72 E(vision, remainder)-.25 E F1 2.5<2bad>108 -686.4 S F0(addition, subtraction)19.6 E F1(<< >>)108 698.4 Q F0 -(left and right bitwise shifts)10.7 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(26)190.95 E 0 Cg EP -%%Page: 27 27 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(<= >= < >)108 84 Q F0(comparison)144 96 Q -F1(== !=)108 108 Q F0(equality and inequality)13.07 E F1(&)108 120 Q F0 -(bitwise AND)27.67 E F1(^)108 132 Q F0(bitwise e)32.67 E(xclusi)-.15 E -.3 -.15(ve O)-.25 H(R).15 E F1(|)108 144 Q F0(bitwise OR)33.8 E F1(&&) -108 156 Q F0(logical AND)19.34 E F1(||)108 168 Q F0(logical OR)31.6 E/F2 -10/Times-Italic@0 SF -.2(ex)108 180 S(pr).2 E F1(?)A F2 -.2(ex)C(pr).2 E -F1(:)A F2 -.2(ex)C(pr).2 E F0(conditional operator)144 192 Q F1 2.5(=*) -108 204 S 2.5(=/)-2.5 G 2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5 -(=<)-2.5 G(<= >>= &= ^= |=)-2.5 E F0(assignment)144 216 Q F2 -.2(ex)108 -228 S(pr1).2 E F1(,)2.5 E F2 -.2(ex)2.5 G(pr2).2 E F0(comma)144 240 Q -.68(Shell v)108 256.8 R .68(ariables are allo)-.25 F .68 +314.4 S F0(addition, subtraction)19.6 E F1(<< >>)108 326.4 Q F0 +(left and right bitwise shifts)10.7 E F1(<= >= < >)108 338.4 Q F0 +(comparison)144 350.4 Q F1(== !=)108 362.4 Q F0(equality and inequality) +13.07 E F1(&)108 374.4 Q F0(bitwise AND)27.67 E F1(^)108 386.4 Q F0 +(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F1(|)108 +398.4 Q F0(bitwise OR)33.8 E F1(&&)108 410.4 Q F0(logical AND)19.34 E F1 +(||)108 422.4 Q F0(logical OR)31.6 E F3 -.2(ex)108 434.4 S(pr).2 E F1(?) +A F3 -.2(ex)C(pr).2 E F1(:)A F3 -.2(ex)C(pr).2 E F0 +(conditional operator)144 446.4 Q F1 2.5(=*)108 458.4 S 2.5(=/)-2.5 G +2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G +(<= >>= &= ^= |=)-2.5 E F0(assignment)144 470.4 Q F3 -.2(ex)108 482.4 S +(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 494.4 Q .68 +(Shell v)108 511.2 R .68(ariables are allo)-.25 F .68 (wed as operands; parameter e)-.25 F .68 (xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F --.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 268.8 R 1.007(ithin an e)-.4 +-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 523.2 R 1.007(ithin an e)-.4 F 1.007(xpression, shell v)-.15 F 1.007 (ariables may also be referenced by name without using the parameter) --.25 F -.15(ex)108 280.8 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G +-.25 F -.15(ex)108 535.2 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G 1.041(hell v)-3.541 F 1.041(ariable that is null or unset e)-.25 F -.25 (va)-.25 G 1.04(luates to 0 when referenced by name without).25 F 1.466 -(using the parameter e)108 292.8 R 1.466(xpansion syntax.)-.15 F 1.467 +(using the parameter e)108 547.2 R 1.466(xpansion syntax.)-.15 F 1.467 (The v)6.466 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25 (va)-.25 G 1.467(luated as an arithmetic e).25 F(xpression)-.15 E 1.39 -(when it is referenced, or when a v)108 304.8 R 1.389 +(when it is referenced, or when a v)108 559.2 R 1.389 (ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he) --3.889 E F2(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389 +-3.889 E F3(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389 (ute using)-.2 F F1(declar)3.889 E 3.889(e-)-.18 G(i)-3.889 E F0(is) -3.889 E .343(assigned a v)108 316.8 R 2.843(alue. A)-.25 F .343(null v) +3.889 E .343(assigned a v)108 571.2 R 2.843(alue. A)-.25 F .343(null v) 2.843 F .343(alue e)-.25 F -.25(va)-.25 G .343(luates to 0.).25 F 2.843 (As)5.343 G .343(hell v)-2.843 F .343(ariable need not ha)-.25 F .643 -.15(ve i)-.2 H .343(ts inte).15 F .344(ger attrib)-.15 F .344 -(ute turned on)-.2 F(to be used in an e)108 328.8 Q(xpression.)-.15 E +(ute turned on)-.2 F(to be used in an e)108 583.2 Q(xpression.)-.15 E 1.406(Constants with a leading 0 are interpreted as octal numbers.)108 -345.6 R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F -(xadecimal.)-.15 E .589(Otherwise, numbers tak)108 357.6 R 3.089(et)-.1 -G .589(he form [)-3.089 F F2(base#)A F0 .589(]n, where)B F2(base)3.089 E +600 R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F +(xadecimal.)-.15 E .589(Otherwise, numbers tak)108 612 R 3.089(et)-.1 G +.589(he form [)-3.089 F F3(base#)A F0 .589(]n, where)B F3(base)3.089 E F0 .59(is a decimal number between 2 and 64 represent-)3.089 F .093 -(ing the arithmetic base, and)108 369.6 R F2(n)2.593 E F0 .093 -(is a number in that base.)2.593 F(If)5.093 E F2(base#)2.593 E F0 .092 +(ing the arithmetic base, and)108 624 R F3(n)2.593 E F0 .093 +(is a number in that base.)2.593 F(If)5.093 E F3(base#)2.593 E F0 .092 (is omitted, then base 10 is used.)2.593 F .092(The digits)5.092 F .064 -(greater than 9 are represented by the lo)108 381.6 R .064 +(greater than 9 are represented by the lo)108 636 R .064 (wercase letters, the uppercase letters, @, and _, in that order)-.25 F -5.065(.I)-.55 G(f)-5.065 E F2(base)2.565 E F0 .433 -(is less than or equal to 36, lo)108 393.6 R .432(wercase and uppercase\ - letters may be used interchangeably to represent num-)-.25 F -(bers between 10 and 35.)108 405.6 Q .234(Operators are e)108 422.4 R --.25(va)-.25 G .234(luated in order of precedence.).25 F(Sub-e)5.234 E -.234(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .235 -(luated \214rst and may).25 F -.15(ove)108 434.4 S -(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95 -/Times-Bold@0 SF(CONDITION)72 451.2 Q(AL EXPRESSIONS)-.219 E F0 .256 -(Conditional e)108 463.2 R .256(xpressions are used by the)-.15 F F1([[) -2.755 E F0 .255(compound command and the)2.755 F F1(test)2.755 E F0(and) -2.755 E F1([)2.755 E F0 -.2(bu)2.755 G .255(iltin commands to test).2 F -.77(\214le attrib)108 475.2 R .77 +5.065(.I)-.55 G(f)-5.065 E F3(base)2.565 E F0 .433 +(is less than or equal to 36, lo)108 648 R .432(wercase and uppercase l\ +etters may be used interchangeably to represent num-)-.25 F +(bers between 10 and 35.)108 660 Q .234(Operators are e)108 676.8 R -.25 +(va)-.25 G .234(luated in order of precedence.).25 F(Sub-e)5.234 E .234 +(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .235 +(luated \214rst and may).25 F -.15(ove)108 688.8 S +(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E F2 +(CONDITION)72 705.6 Q(AL EXPRESSIONS)-.219 E F0 .256(Conditional e)108 +717.6 R .256(xpressions are used by the)-.15 F F1([[)2.755 E F0 .255 +(compound command and the)2.755 F F1(test)2.755 E F0(and)2.755 E F1([) +2.755 E F0 -.2(bu)2.755 G .255(iltin commands to test).2 F .77 +(\214le attrib)108 729.6 R .77 (utes and perform string and arithmetic comparisons.)-.2 F .77 -(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.041 -(unary or binary primaries.)108 487.2 R 1.041(If an)6.041 F(y)-.15 E F2 -(\214le)3.541 E F0(ar)3.541 E 1.04 -(gument to one of the primaries is of the form)-.18 F F2(/de)3.54 E -(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 499.2 -Q F2(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E -F2(\214le)3.789 E F0(ar)3.789 E 1.289 -(gument to one of the primaries is one of)-.18 F F2(/de)3.789 E(v/stdin) --.15 E F0(,)A F2(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F2 -(/de)108 511.2 Q(v/stderr)-.15 E F0 2.5<2c8c>C +(Expressions are formed from the follo)5.77 F(wing)-.25 E(GNU Bash-4.1) +72 768 Q(2009 December 29)135.965 E(27)185.955 E 0 Cg EP +%%Page: 28 28 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E 1.041(unary or binary primaries.)108 84 R 1.041(If an)6.041 F(y) +-.15 E/F1 10/Times-Italic@0 SF(\214le)3.541 E F0(ar)3.541 E 1.04 +(gument to one of the primaries is of the form)-.18 F F1(/de)3.54 E +(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 96 Q +F1(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E F1 +(\214le)3.789 E F0(ar)3.789 E 1.289 +(gument to one of the primaries is one of)-.18 F F1(/de)3.789 E(v/stdin) +-.15 E F0(,)A F1(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F1 +(/de)108 108 Q(v/stderr)-.15 E F0 2.5<2c8c>C (le descriptor 0, 1, or 2, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5 (,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .722 (Unless otherwise speci\214ed, primaries that operate on \214les follo) -108 528 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar) --3.221 F(get)-.18 E(of the link, rather than the link itself.)108 540 Q -F1108 564 Q F2(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2 -(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F1108 576 Q F2(\214le) -2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is a block special \214le.).15 E F1108 588 Q F2(\214le) -2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is a character special \214le.).15 E F1108 600 Q F2 -(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and is a directory).15 E(.)-.65 E F1108 612 Q F2 -(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex) -2.5 G(ists.).15 E F1108 624 Q F2(\214le)2.5 E F0 -.35(Tr)12.25 G -(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E -(gular \214le.)-.15 E F1108 636 Q F2(\214le)2.5 E F0 -.35(Tr)10.58 -G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is set-group-id.).15 E F1108 648 Q F2(\214le)2.5 E F0 --.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is a symbolic link.).15 E F1108 660 Q F2(\214le)2.5 E F0 --.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G +108 124.8 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar) +-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 136.8 +Q(When used with)108 154.8 Q/F2 10/Times-Bold@0 SF([[)2.5 E F0 2.5(,T)C +(he)-2.5 E F2(<)2.5 E F0(and)2.5 E F2(>)2.5 E F0(operators sort le)2.5 E +(xicographically using the current locale.)-.15 E F2108 178.8 Q F1 +(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) +2.5 G(ists.).15 E F2108 190.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G +(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G +(ists and is a block special \214le.).15 E F2108 202.8 Q F1 +(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) +2.5 G(ists and is a character special \214le.).15 E F2108 214.8 Q +F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15 +(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F2108 226.8 Q F1 +(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) +2.5 G(ists.).15 E F2108 238.8 Q F1(\214le)2.5 E F0 -.35(Tr)12.25 G +(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E +(gular \214le.)-.15 E F2108 250.8 Q F1(\214le)2.5 E F0 -.35(Tr) +10.58 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G +(ists and is set-group-id.).15 E F2108 262.8 Q F1(\214le)2.5 E F0 +-.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G +(ists and is a symbolic link.).15 E F2108 274.8 Q F1(\214le)2.5 E +F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G (ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.) --2.5 E F1108 672 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E -F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).).15 -E F1108 684 Q F2(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2 -(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F1108 -696 Q F2(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F2(\214le)2.5 E F0 --.15(ex)2.5 G(ists and has a size greater than zero.).15 E F1108 -708 Q F2(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E F2 -(fd)4.47 E F0(is open and refers to a terminal.)3.27 E(GNU Bash-4.0)72 -768 Q(2009 February 7)140.96 E(27)190.95 E 0 Cg EP -%%Page: 28 28 +-2.5 E F2108 286.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 +E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).) +.15 E F2108 298.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E +F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F2108 +310.8 Q F1(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F1(\214le)2.5 E +F0 -.15(ex)2.5 G(ists and has a size greater than zero.).15 E F2 +108 322.8 Q F1(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E +F1(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F2108 +334.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E +F0 -.15(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F2 +108 346.8 Q F1(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1 +(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is writable.).15 E F2108 +358.8 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E +F0 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F2 +108 370.8 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1 +(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E +(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F2108 382.8 Q F1 +(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex) +2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15 +(ve g)-.25 H(roup id.).15 E F2108 394.8 Q F1(\214le)2.5 E F0 -.35 +(Tr)8.91 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G +(ists and is a symbolic link.).15 E F2108 406.8 Q F1(\214le)2.5 E +F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G +(ists and is a sock).15 E(et.)-.1 E F2108 418.8 Q F1(\214le)2.5 E +F0 -.35(Tr)8.36 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G +(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F1 +(\214le1)108 430.8 Q F02.5 E F2(nt)A F1(\214le2)2.5 E F0 -.35(Tr)144 +442.8 S .038(ue if).35 F F1(\214le1)2.538 E F0 .039(is ne)2.539 F .039 +(wer \(according to modi\214cation date\) than)-.25 F F1(\214le2)2.539 E +F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F1(\214le1)2.539 E F0 -.15 +(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .039(does not.) +2.539 F F1(\214le1)108 454.8 Q F02.5 E F2(ot)A F1(\214le2)2.5 E F0 +-.35(Tr)144 466.8 S(ue if).35 E F1(\214le1)2.5 E F0(is older than)2.5 E +F1(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F1(\214le2)2.5 E F0 +-.15(ex)2.5 G(ists and).15 E F1(\214le1)2.5 E F0(does not.)2.5 E F1 +(\214le1)108 478.8 Q F2(\255ef)2.5 E F1(\214le2)2.5 E F0 -.35(Tr)144 +490.8 S(ue if).35 E F1(\214le1)2.5 E F0(and)2.5 E F1(\214le2)2.5 E F0 +(refer to the same de)2.5 E(vice and inode numbers.)-.25 E F2108 +502.8 Q F1(optname)2.5 E F0 -.35(Tr)144 514.8 S 1.144 +(ue if shell option).35 F F1(optname)3.874 E F0 1.144(is enabled.)3.824 +F 1.143(See the list of options under the description of the)6.144 F F2 +3.643 E F0(option to the)144 526.8 Q F2(set)2.5 E F0 -.2(bu)2.5 G +(iltin belo).2 E -.65(w.)-.25 G F2108 538.8 Q F1(string)2.5 E F0 +-.35(Tr)144 550.8 S(ue if the length of).35 E F1(string)2.5 E F0 +(is zero.)2.5 E F1(string)108 562.8 Q F2108 574.8 Q F1(string)2.5 +E F0 -.35(Tr)144 586.8 S(ue if the length of).35 E F1(string)2.84 E F0 +(is non-zero.)2.72 E F1(string1)108 603.6 Q F2(==)2.5 E F1(string2)2.5 E +(string1)108 615.6 Q F2(=)2.5 E F1(string2)2.5 E F0 -.35(Tr)144 627.6 S +(ue if the strings are equal.).35 E F2(=)5 E F0(should be used with the) +2.5 E F2(test)2.5 E F0(command for POSIX conformance.)2.5 E F1(string1) +108 644.4 Q F2(!=)2.5 E F1(string2)2.5 E F0 -.35(Tr)144 656.4 S +(ue if the strings are not equal.).35 E F1(string1)108 673.2 Q F2(<)2.5 +E F1(string2)2.5 E F0 -.35(Tr)144 685.2 S(ue if).35 E F1(string1)2.5 E +F0(sorts before)2.5 E F1(string2)2.5 E F0(le)2.5 E(xicographically)-.15 +E(.)-.65 E F1(string1)108 702 Q F2(>)2.5 E F1(string2)2.5 E F0 -.35(Tr) +144 714 S(ue if).35 E F1(string1)2.5 E F0(sorts after)2.5 E F1(string2) +2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(28)185.955 E 0 Cg EP +%%Page: 29 29 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF108 84 Q/F2 10/Times-Italic@0 SF -(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F1108 96 Q -F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)2.5 E F0 -.15 -(ex)2.5 G(ists and is writable.).15 E F1108 108 Q F2(\214le)2.5 E -F0 -.35(Tr)10.58 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G -(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F1108 120 Q F2 -(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex) -2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15 -(ve u)-.25 H(ser id.).15 E F1108 132 Q F2(\214le)2.5 E F0 -.35(Tr) -7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E -(wned by the ef)-.25 E(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E -F1108 144 Q F2(\214le)2.5 E F0 -.35(Tr)8.91 G(ue if).35 E F2 -(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a symbolic link.).15 E F1 -108 156 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2 -(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F1 -108 168 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le) -2.5 E F0 -.15(ex)2.5 G(ists and has been modi\214ed since it w).15 E -(as last read.)-.1 E F2(\214le1)108 180 Q F02.5 E F1(nt)A F2 -(\214le2)2.5 E F0 -.35(Tr)144 192 S .038(ue if).35 F F2(\214le1)2.538 E -F0 .039(is ne)2.539 F .039 -(wer \(according to modi\214cation date\) than)-.25 F F2(\214le2)2.539 E -F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F2(\214le1)2.539 E F0 -.15 -(ex)2.539 G .039(ists and).15 F F2(\214le2)2.539 E F0 .039(does not.) -2.539 F F2(\214le1)108 204 Q F02.5 E F1(ot)A F2(\214le2)2.5 E F0 --.35(Tr)144 216 S(ue if).35 E F2(\214le1)2.5 E F0(is older than)2.5 E F2 -(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le2)2.5 E F0 --.15(ex)2.5 G(ists and).15 E F2(\214le1)2.5 E F0(does not.)2.5 E F2 -(\214le1)108 228 Q F1(\255ef)2.5 E F2(\214le2)2.5 E F0 -.35(Tr)144 240 S -(ue if).35 E F2(\214le1)2.5 E F0(and)2.5 E F2(\214le2)2.5 E F0 -(refer to the same de)2.5 E(vice and inode numbers.)-.25 E F1108 -252 Q F2(optname)2.5 E F0 -.35(Tr)144 264 S 1.144(ue if shell option).35 -F F2(optname)3.874 E F0 1.144(is enabled.)3.824 F 1.143 -(See the list of options under the description of the)6.144 F F1 -3.643 E F0(option to the)144 276 Q F1(set)2.5 E F0 -.2(bu)2.5 G -(iltin belo).2 E -.65(w.)-.25 G F1108 288 Q F2(string)2.5 E F0 --.35(Tr)144 300 S(ue if the length of).35 E F2(string)2.5 E F0(is zero.) -2.5 E F2(string)108 312 Q F1108 324 Q F2(string)2.5 E F0 -.35(Tr) -144 336 S(ue if the length of).35 E F2(string)2.84 E F0(is non-zero.) -2.72 E F2(string1)108 352.8 Q F1(==)2.5 E F2(string2)2.5 E F0 -.35(Tr) -144 364.8 S(ue if the strings are equal.).35 E F1(=)5 E F0 -(may be used in place of)2.5 E F1(==)2.5 E F0 -(for strict POSIX compliance.)2.5 E F2(string1)108 381.6 Q F1(!=)2.5 E -F2(string2)2.5 E F0 -.35(Tr)144 393.6 S -(ue if the strings are not equal.).35 E F2(string1)108 410.4 Q F1(<)2.5 -E F2(string2)2.5 E F0 -.35(Tr)144 422.4 S(ue if).35 E F2(string1)2.5 E -F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E -(xicographically in the current locale.)-.15 E F2(string1)108 439.2 Q F1 -(>)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 451.2 S(ue if).35 E F2(string1) -2.5 E F0(sorts after)2.5 E F2(string2)2.5 E F0(le)2.5 E -(xicographically in the current locale.)-.15 E F2(ar)108.33 468 Q(g1) --.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP)144 480 -Q F0 .385(is one of)2.634 F F1(\255eq)2.885 E F0(,)A F1(\255ne)2.885 E -F0(,)A F1(\255lt)2.885 E F0(,)A F1(\255le)2.885 E F0(,)A F1(\255gt)2.885 -E F0 2.885(,o)C(r)-2.885 E F1(\255ge)2.885 E F0 5.385(.T)C .385 -(hese arithmetic binary operators return true if)-5.385 F F2(ar)2.885 E -(g1)-.37 E F0 .845(is equal to, not equal to, less than, less than or e\ -qual to, greater than, or greater than or equal to)144 492 R F2(ar)144 -504 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.) --.65 E F2(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F2(ar)2.83 E(g2)-.37 E F0 +-.35 E/F1 10/Times-Italic@0 SF(ar)108.33 84 Q(g1)-.37 E/F2 10 +/Times-Bold@0 SF(OP)2.5 E F1(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF(OP) +144 96 Q F0 .385(is one of)2.634 F F2(\255eq)2.885 E F0(,)A F2(\255ne) +2.885 E F0(,)A F2(\255lt)2.885 E F0(,)A F2(\255le)2.885 E F0(,)A F2 +(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F2(\255ge)2.885 E F0 5.385(.T)C +.385(hese arithmetic binary operators return true if)-5.385 F F1(ar) +2.885 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, less th\ +an or equal to, greater than, or greater than or equal to)144 108 R F1 +(ar)144 120 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly).15 +E(.)-.65 E F1(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F1(ar)2.83 E(g2)-.37 E F0 (may be positi)2.52 E .3 -.15(ve o)-.25 H 2.5(rn).15 G -2.25 -.15(eg a) -2.5 H(ti).15 E .3 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E/F4 10.95 -/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 520.8 Q(ANSION)-.81 E F0 .613 -(When a simple command is e)108 532.8 R -.15(xe)-.15 G .614 +/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 136.8 Q(ANSION)-.81 E F0 .613 +(When a simple command is e)108 148.8 R -.15(xe)-.15 G .614 (cuted, the shell performs the follo).15 F .614(wing e)-.25 F .614 (xpansions, assignments, and redi-)-.15 F(rections, from left to right.) -108 544.8 Q 26(1. The)108 561.6 R -.1(wo)4.349 G 1.849 +108 160.8 Q 26(1. The)108 177.6 R -.1(wo)4.349 G 1.849 (rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.848 (ariable assignments \(those preceding the command)-.25 F -(name\) and redirections are sa)144 573.6 Q -.15(ve)-.2 G 2.5(df).15 G -(or later processing.)-2.5 E 26(2. The)108 590.4 R -.1(wo)3.663 G 1.163 +(name\) and redirections are sa)144 189.6 Q -.15(ve)-.2 G 2.5(df).15 G +(or later processing.)-2.5 E 26(2. The)108 206.4 R -.1(wo)3.663 G 1.163 (rds that are not v).1 F 1.164 (ariable assignments or redirections are e)-.25 F 3.664(xpanded. If)-.15 F(an)3.664 E 3.664(yw)-.15 G 1.164(ords remain)-3.764 F .776(after e)144 -602.4 R .776(xpansion, the \214rst w)-.15 F .776(ord is tak)-.1 F .775 +218.4 R .776(xpansion, the \214rst w)-.15 F .776(ord is tak)-.1 F .775 (en to be the name of the command and the remaining w)-.1 F(ords)-.1 E -(are the ar)144 614.4 Q(guments.)-.18 E 26(3. Redirections)108 631.2 R +(are the ar)144 230.4 Q(guments.)-.18 E 26(3. Redirections)108 247.2 R (are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F3 -(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 648 R(te) -3.216 E .717(xt after the)-.15 F F1(=)3.217 E F0 .717(in each v)3.217 F +(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 264 R(te) +3.216 E .717(xt after the)-.15 F F2(=)3.217 E F0 .717(in each v)3.217 F .717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717 (xpansion, parameter e)-.15 F(xpansion,)-.15 E .34 -(command substitution, arithmetic e)144 660 R .339 +(command substitution, arithmetic e)144 276 R .339 (xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339 -(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 672 Q .332 -(If no command name results, the v)108 688.8 R .332 +(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 288 Q .332 +(If no command name results, the v)108 304.8 R .332 (ariable assignments af)-.25 F .332(fect the current shell en)-.25 F -2.833(vironment. Otherwise,)-.4 F(the)2.833 E -.25(va)108 700.8 S .757 +2.833(vironment. Otherwise,)-.4 F(the)2.833 E -.25(va)108 316.8 S .757 (riables are added to the en).25 F .757(vironment of the e)-.4 F -.15 (xe)-.15 G .757(cuted command and do not af).15 F .757 -(fect the current shell en)-.25 F(vi-)-.4 E 3.176(ronment. If)108 712.8 +(fect the current shell en)-.25 F(vi-)-.4 E 3.176(ronment. If)108 328.8 R(an)3.176 E 3.176(yo)-.15 G 3.176(ft)-3.176 G .677 (he assignments attempts to assign a v)-3.176 F .677 (alue to a readonly v)-.25 F .677(ariable, an error occurs, and)-.25 F -(the command e)108 724.8 Q(xits with a non-zero status.)-.15 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(28)190.95 E 0 Cg EP -%%Page: 29 29 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .15(If no command name results, redirections are performed, b)108 -84 R .149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649 -(vironment. A)-.4 F(redirection error causes the command to e)108 96 Q -(xit with a non-zero status.)-.15 E 1.064 -(If there is a command name left after e)108 112.8 R 1.064(xpansion, e) +(the command e)108 340.8 Q(xits with a non-zero status.)-.15 E .15 +(If no command name results, redirections are performed, b)108 357.6 R +.149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649 +(vironment. A)-.4 F(redirection error causes the command to e)108 369.6 +Q(xit with a non-zero status.)-.15 E 1.064 +(If there is a command name left after e)108 386.4 R 1.064(xpansion, e) -.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F 4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .069(command e)108 -124.8 R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069 +398.4 R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069 (xpansions contained a command substitution, the e)-.15 F .068 -(xit status of the command)-.15 F .466(is the e)108 136.8 R .466 +(xit status of the command)-.15 F .466(is the e)108 410.4 R .466 (xit status of the last command substitution performed.)-.15 F .467 -(If there were no command substitutions, the)5.466 F(command e)108 148.8 -Q(xits with a status of zero.)-.15 E/F1 10.95/Times-Bold@0 SF -(COMMAND EXECUTION)72 165.6 Q F0 .547 -(After a command has been split into w)108 177.6 R .546 +(If there were no command substitutions, the)5.466 F(command e)108 422.4 +Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 439.2 Q F0 +.547(After a command has been split into w)108 451.2 R .546 (ords, if it results in a simple command and an optional list of ar)-.1 -F(gu-)-.18 E(ments, the follo)108 189.6 Q(wing actions are tak)-.25 E +F(gu-)-.18 E(ments, the follo)108 463.2 Q(wing actions are tak)-.25 E (en.)-.1 E .379(If the command name contains no slashes, the shell atte\ -mpts to locate it.)108 206.4 R .379(If there e)5.379 F .379 +mpts to locate it.)108 480 R .379(If there e)5.379 F .379 (xists a shell function by)-.15 F .246(that name, that function is in) -108 218.4 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G -.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E/F2 9 -/Times-Bold@0 SF(FUNCTIONS)2.746 E/F3 9/Times-Roman@0 SF(.)A F0 .246 -(If the name does not match a func-)4.746 F -(tion, the shell searches for it in the list of shell b)108 230.4 Q 2.5 +108 492 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G .246 +(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)2.746 +E F5(.)A F0 .246(If the name does not match a func-)4.746 F +(tion, the shell searches for it in the list of shell b)108 504 Q 2.5 (uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E (uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .309 -(If the name is neither a shell function nor a b)108 247.2 R .31 -(uiltin, and contains no slashes,)-.2 F/F4 10/Times-Bold@0 SF(bash)2.81 -E F0 .31(searches each element of)2.81 F(the)108 259.2 Q F2 -.666(PA) -3.163 G(TH)-.189 E F0 .662(for a directory containing an e)2.913 F -.15 -(xe)-.15 G .662(cutable \214le by that name.).15 F F4(Bash)5.662 E F0 -.662(uses a hash table to remember)3.162 F 1.914 -(the full pathnames of e)108 271.2 R -.15(xe)-.15 G 1.915 -(cutable \214les \(see).15 F F4(hash)4.415 E F0(under)4.415 E F2 1.915 -(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS)-.828 F F0(belo)4.165 E -4.415(w\). A)-.25 F(full)4.415 E .72(search of the directories in)108 -283.2 R F2 -.666(PA)3.22 G(TH)-.189 E F0 .719 +(If the name is neither a shell function nor a b)108 520.8 R .31 +(uiltin, and contains no slashes,)-.2 F F2(bash)2.81 E F0 .31 +(searches each element of)2.81 F(the)108 532.8 Q F3 -.666(PA)3.163 G(TH) +-.189 E F0 .662(for a directory containing an e)2.913 F -.15(xe)-.15 G +.662(cutable \214le by that name.).15 F F2(Bash)5.662 E F0 .662 +(uses a hash table to remember)3.162 F 1.914(the full pathnames of e)108 +544.8 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F2(hash)4.415 E +F0(under)4.415 E F3 1.915(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS) +-.828 F F0(belo)4.165 E 4.415(w\). A)-.25 F(full)4.415 E .72 +(search of the directories in)108 556.8 R F3 -.666(PA)3.22 G(TH)-.189 E +F0 .719 (is performed only if the command is not found in the hash table.)2.97 F .719(If the)5.719 F .956(search is unsuccessful, the shell searches for\ - a de\214ned shell function named)108 295.2 R F4(command_not_f)3.456 E -(ound_han-)-.25 E(dle)108 307.2 Q F0 5.278(.I)C 2.778(ft)-5.278 G .278 + a de\214ned shell function named)108 568.8 R F2(command_not_f)3.456 E +(ound_han-)-.25 E(dle)108 580.8 Q F0 5.278(.I)C 2.778(ft)-5.278 G .278 (hat function e)-2.778 F .278(xists, it is in)-.15 F -.2(vo)-.4 G -.1 (ke).2 G 2.778(dw).1 G .277 (ith the original command and the original command')-2.778 F 2.777(sa) --.55 G -.18(rg)-2.777 G(uments).18 E .775(as its ar)108 319.2 R .775 +-.55 G -.18(rg)-2.777 G(uments).18 E .775(as its ar)108 592.8 R .775 (guments, and the function')-.18 F 3.275(se)-.55 G .775 (xit status becomes the e)-3.425 F .775(xit status of the shell.)-.15 F .776(If that function is not)5.776 F -(de\214ned, the shell prints an error message and returns an e)108 331.2 +(de\214ned, the shell prints an error message and returns an e)108 604.8 Q(xit status of 127.)-.15 E 1.089(If the search is successful, or if th\ -e command name contains one or more slashes, the shell e)108 348 R -.15 -(xe)-.15 G 1.089(cutes the).15 F .197(named program in a separate e)108 -360 R -.15(xe)-.15 G .197(cution en).15 F 2.698(vironment. Ar)-.4 F .198 -(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198 -(n, and the remain-).15 F(ing ar)108 372 Q +e command name contains one or more slashes, the shell e)108 621.6 R +-.15(xe)-.15 G 1.089(cutes the).15 F .197(named program in a separate e) +108 633.6 R -.15(xe)-.15 G .197(cution en).15 F 2.698(vironment. Ar)-.4 +F .198(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198 +(n, and the remain-).15 F(ing ar)108 645.6 Q (guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15 -(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 388.8 R +(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 662.4 R -.15(xe)-.15 G 1.809(cution f).15 F 1.809 (ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.809 (cutable format, and the \214le is not a directory).15 F 4.309(,i)-.65 G -4.309(ti)-4.309 G(s)-4.309 E .677(assumed to be a)108 400.8 R/F5 10 -/Times-Italic@0 SF .678(shell script)3.177 F F0 3.178(,a\214)C .678 +4.309(ti)-4.309 G(s)-4.309 E .677(assumed to be a)108 674.4 R F1 .678 +(shell script)3.177 F F0 3.178(,a\214)C .678 (le containing shell commands.)-3.178 F 3.178(As)5.678 G .678 (ubshell is spa)-3.178 F .678(wned to e)-.15 F -.15(xe)-.15 G .678 (cute it.).15 F(This)5.678 E .33 -(subshell reinitializes itself, so that the ef)108 412.8 R .33 +(subshell reinitializes itself, so that the ef)108 686.4 R .33 (fect is as if a ne)-.25 F 2.829(ws)-.25 G .329(hell had been in)-2.829 F -.2(vo)-.4 G -.1(ke).2 G 2.829(dt).1 G 2.829(oh)-2.829 G .329 -(andle the script, with)-2.829 F 1.219(the e)108 424.8 R 1.219 +(andle the script, with)-2.829 F 1.219(the e)108 698.4 R 1.219 (xception that the locations of commands remembered by the parent \(see) --.15 F F4(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F2 -(SHELL)3.719 E -.09(BU)108 436.8 S(IL).09 E(TIN COMMANDS)-.828 E F3(\))A -F0(are retained by the child.)2.25 E .348(If the program is a \214le be) -108 453.6 R .348(ginning with)-.15 F F4(#!)2.848 E F0 2.848(,t)C .347(h\ -e remainder of the \214rst line speci\214es an interpreter for the pro-) --2.848 F 3.178(gram. The)108 465.6 R .678(shell e)3.178 F -.15(xe)-.15 G -.678(cutes the speci\214ed interpreter on operating systems that do not\ - handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.193(format themselv) -108 477.6 R 3.693(es. The)-.15 F(ar)3.693 E 1.193 -(guments to the interpreter consist of a single optional ar)-.18 F 1.192 -(gument follo)-.18 F 1.192(wing the)-.25 F 1.13 -(interpreter name on the \214rst line of the program, follo)108 489.6 R -1.131(wed by the name of the program, follo)-.25 F 1.131(wed by the)-.25 -F(command ar)108 501.6 Q(guments, if an)-.18 E -.65(y.)-.15 G F1 -(COMMAND EXECUTION ENVIR)72 518.4 Q(ONMENT)-.329 E F0(The shell has an) -108 530.4 Q F5 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F0 -2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108 -559.2 S 1.406(pen \214les inherited by the shell at in)-32.5 F -.2(vo) --.4 G 1.405(cation, as modi\214ed by redirections supplied to the).2 F -F4(exec)3.905 E F0 -.2(bu)144 571.2 S(iltin).2 E 32.5<8374>108 588 S -(he current w)-32.5 E(orking directory as set by)-.1 E F4(cd)2.5 E F0(,) -A F4(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F4(popd)2.5 E F0 2.5(,o)C 2.5(ri) --2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E 32.5 -<8374>108 604.8 S(he \214le creation mode mask as set by)-32.5 E F4 -(umask)2.5 E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent) --2.5 E 32.5<8363>108 621.6 S(urrent traps set by)-32.5 E F4(trap)2.5 E -F0 32.5<8373>108 638.4 S .256(hell parameters that are set by v)-32.5 F -.256(ariable assignment or with)-.25 F F4(set)2.756 E F0 .257 -(or inherited from the shell')2.756 F 2.757(sp)-.55 G(arent)-2.757 E -(in the en)144 650.4 Q(vironment)-.4 E 32.5<8373>108 667.2 S -(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G -(cution or inherited from the shell').15 E 2.5(sp)-.55 G -(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 684 S -(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E -(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F4(set)2.5 E -F0 32.5<836f>108 700.8 S(ptions enabled by)-32.5 E F4(shopt)2.5 E F0 -32.5<8373>108 717.6 S(hell aliases de\214ned with)-32.5 E F4(alias)2.5 E -F0(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(29)190.95 E 0 Cg EP +-.15 F F2(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F3 +(SHELL)3.719 E -.09(BU)108 710.4 S(IL).09 E(TIN COMMANDS)-.828 E F5(\))A +F0(are retained by the child.)2.25 E 1.375 +(If the program is a \214le be)108 727.2 R 1.374(ginning with)-.15 F F2 +(#!)3.874 E F0 3.874(,t)C 1.374 +(he remainder of the \214rst line speci\214es an interpreter for the) +-3.874 F(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(29)185.955 E 0 +Cg EP %%Page: 30 30 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E 32.5<8376>108 84 S +-.35 E 5.485(program. The)108 84 R 2.985(shell e)5.485 F -.15(xe)-.15 G +2.986(cutes the speci\214ed interpreter on operating systems that do no\ +t handle this).15 F -.15(exe)108 96 S .762(cutable format themselv).15 F +3.262(es. The)-.15 F(ar)3.262 E .761 +(guments to the interpreter consist of a single optional ar)-.18 F .761 +(gument fol-)-.18 F(lo)108 108 Q .156 +(wing the interpreter name on the \214rst line of the program, follo) +-.25 F .157(wed by the name of the program, follo)-.25 F(wed)-.25 E +(by the command ar)108 120 Q(guments, if an)-.18 E -.65(y.)-.15 G/F1 +10.95/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 136.8 Q(ONMENT)-.329 E +F0(The shell has an)108 148.8 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G +(ecution en).2 E(vir)-.4 E(onment)-.45 E F0 2.5(,w)C +(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108 165.6 S +1.406(pen \214les inherited by the shell at in)-32.5 F -.2(vo)-.4 G +1.405(cation, as modi\214ed by redirections supplied to the).2 F/F3 10 +/Times-Bold@0 SF(exec)3.905 E F0 -.2(bu)144 177.6 S(iltin).2 E 32.5 +<8374>108 194.4 S(he current w)-32.5 E(orking directory as set by)-.1 E +F3(cd)2.5 E F0(,)A F3(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F3(popd)2.5 E F0 +2.5(,o)C 2.5(ri)-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G +(cation).2 E 32.5<8374>108 211.2 S +(he \214le creation mode mask as set by)-32.5 E F3(umask)2.5 E F0 +(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)-2.5 E 32.5 +<8363>108 228 S(urrent traps set by)-32.5 E F3(trap)2.5 E F0 32.5<8373> +108 244.8 S .256(hell parameters that are set by v)-32.5 F .256 +(ariable assignment or with)-.25 F F3(set)2.756 E F0 .257 +(or inherited from the shell')2.756 F 2.757(sp)-.55 G(arent)-2.757 E +(in the en)144 256.8 Q(vironment)-.4 E 32.5<8373>108 273.6 S +(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G +(cution or inherited from the shell').15 E 2.5(sp)-.55 G +(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 290.4 S +(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E +(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F3(set)2.5 E +F0 32.5<836f>108 307.2 S(ptions enabled by)-32.5 E F3(shopt)2.5 E F0 +32.5<8373>108 324 S(hell aliases de\214ned with)-32.5 E F3(alias)2.5 E +F0 32.5<8376>108 340.8 S (arious process IDs, including those of background jobs, the v)-32.75 E -(alue of)-.25 E/F1 10/Times-Bold@0 SF($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 -E(alue of)-.25 E F1($PPID)2.5 E F0 .427 -(When a simple command other than a b)108 100.8 R .426 +(alue of)-.25 E F3($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E +/F4 9/Times-Bold@0 SF(PPID)2.5 E F0 .427 +(When a simple command other than a b)108 357.6 R .426 (uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .426 (cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.926(di).1 G 2.926(nas) --2.926 G(eparate)-2.926 E -.15(exe)108 112.8 S .133(cution en).15 F .133 +-2.926 G(eparate)-2.926 E -.15(exe)108 369.6 S .133(cution en).15 F .133 (vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F .134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F -(the shell.)108 124.8 Q 32.5<8374>108 153.6 S 1.056(he shell')-32.5 F +(the shell.)108 381.6 Q 32.5<8374>108 398.4 S 1.056(he shell')-32.5 F 3.556(so)-.55 G 1.056(pen \214les, plus an)-3.556 F 3.556(ym)-.15 G 1.056 (odi\214cations and additions speci\214ed by redirections to the com-) --3.556 F(mand)144 165.6 Q 32.5<8374>108 182.4 S(he current w)-32.5 E -(orking directory)-.1 E 32.5<8374>108 199.2 S -(he \214le creation mode mask)-32.5 E 32.5<8373>108 216 S .856(hell v) +-3.556 F(mand)144 410.4 Q 32.5<8374>108 427.2 S(he current w)-32.5 E +(orking directory)-.1 E 32.5<8374>108 444 S +(he \214le creation mode mask)-32.5 E 32.5<8373>108 460.8 S .856(hell v) -32.5 F .857(ariables and functions mark)-.25 F .857(ed for e)-.1 F .857 (xport, along with v)-.15 F .857(ariables e)-.25 F .857 -(xported for the command,)-.15 F(passed in the en)144 228 Q(vironment) --.4 E 32.5<8374>108 244.8 S .307 +(xported for the command,)-.15 F(passed in the en)144 472.8 Q(vironment) +-.4 E 32.5<8374>108 489.6 S .307 (raps caught by the shell are reset to the v)-32.5 F .306 (alues inherited from the shell')-.25 F 2.806(sp)-.55 G .306 -(arent, and traps ignored)-2.806 F(by the shell are ignored)144 256.8 Q -2.5(Ac)108 273.6 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G +(arent, and traps ignored)-2.806 F(by the shell are ignored)144 501.6 Q +2.5(Ac)108 518.4 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G 2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E (fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E (vironment.)-.4 E .577(Command substitution, commands grouped with pare\ -ntheses, and asynchronous commands are in)108 290.4 R -.2(vo)-.4 G -.1 -(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 302.4 S .245(ubshell en) +ntheses, and asynchronous commands are in)108 535.2 R -.2(vo)-.4 G -.1 +(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 547.2 S .245(ubshell en) -2.745 F .245(vironment that is a duplicate of the shell en)-.4 F .244 (vironment, e)-.4 F .244(xcept that traps caught by the shell are)-.15 F -.358(reset to the v)108 314.4 R .358 +.358(reset to the v)108 559.2 R .358 (alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4 G 2.858(cation. Builtin).2 F .359(commands that are in)2.859 F -.2(vo) --.4 G -.1(ke).2 G(d).1 E .857(as part of a pipeline are also e)108 326.4 +-.4 G -.1(ke).2 G(d).1 E .857(as part of a pipeline are also e)108 571.2 R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.356 (vironment. Changes)-.4 F .856(made to the subshell en)3.356 F(viron-) --.4 E(ment cannot af)108 338.4 Q(fect the shell')-.25 E 2.5(se)-.55 G +-.4 E(ment cannot af)108 583.2 Q(fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.376(Subshells spa)108 -355.2 R 1.376(wned to e)-.15 F -.15(xe)-.15 G 1.377 +600 R 1.376(wned to e)-.15 F -.15(xe)-.15 G 1.377 (cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F -F13.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When) -108 367.2 R(not in posix mode, Bash clears the)2.5 E F12.5 E F0 -(option in such subshells.)2.5 E .405(If a command is follo)108 384 R -.405(wed by a)-.25 F F1(&)2.905 E F0 .404(and job control is not acti) +F33.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When) +108 612 R(not in posix mode, Bash clears the)2.5 E F32.5 E F0 +(option in such subshells.)2.5 E .405(If a command is follo)108 628.8 R +.405(wed by a)-.25 F F3(&)2.905 E F0 .404(and job control is not acti) 2.905 F -.15(ve)-.25 G 2.904(,t).15 G .404(he def)-2.904 F .404 (ault standard input for the command)-.1 F .197(is the empty \214le)108 -396 R/F2 10/Times-Italic@0 SF(/de)2.697 E(v/null)-.15 E F0 5.197(.O)C -.197(therwise, the in)-5.197 F -.2(vo)-.4 G -.1(ke).2 G 2.697(dc).1 G -.198(ommand inherits the \214le descriptors of the calling shell)-2.697 -F(as modi\214ed by redirections.)108 408 Q/F3 10.95/Times-Bold@0 SF -(ENVIR)72 424.8 Q(ONMENT)-.329 E F0 2.354(When a program is in)108 436.8 -R -.2(vo)-.4 G -.1(ke).2 G 4.853(di).1 G 4.853(ti)-4.853 G 4.853(sg) --4.853 G -2.15 -.25(iv e)-4.853 H 4.853(na).25 G 4.853(na)-4.853 G 2.353 +640.8 R F2(/de)2.697 E(v/null)-.15 E F0 5.197(.O)C .197 +(therwise, the in)-5.197 F -.2(vo)-.4 G -.1(ke).2 G 2.697(dc).1 G .198 +(ommand inherits the \214le descriptors of the calling shell)-2.697 F +(as modi\214ed by redirections.)108 652.8 Q F1(ENVIR)72 669.6 Q(ONMENT) +-.329 E F0 2.354(When a program is in)108 681.6 R -.2(vo)-.4 G -.1(ke).2 +G 4.853(di).1 G 4.853(ti)-4.853 G 4.853(sg)-4.853 G -2.15 -.25(iv e) +-4.853 H 4.853(na).25 G 4.853(na)-4.853 G 2.353 (rray of strings called the)-4.853 F F2(en)4.853 E(vir)-.4 E(onment)-.45 -E F0 7.353(.T).68 G 2.353(his is a list of)-7.353 F F2(name)108 448.8 Q +E F0 7.353(.T).68 G 2.353(his is a list of)-7.353 F F2(name)108 693.6 Q F0A F2(value)A F0(pairs, of the form)2.5 E F2(name)2.5 E F0(=)A F2 -(value)A F0(.).18 E 1.485(The shell pro)108 465.6 R 1.485(vides se)-.15 +(value)A F0(.).18 E 1.485(The shell pro)108 710.4 R 1.485(vides se)-.15 F -.15(ve)-.25 G 1.485(ral w).15 F 1.485(ays to manipulate the en)-.1 F 3.985(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.486 -(cation, the shell scans its o).2 F(wn)-.25 E(en)108 477.6 Q .144(viron\ -ment and creates a parameter for each name found, automatically marking\ - it for)-.4 F F2 -.2(ex)2.643 G(port).2 E F0 .143(to child pro-)3.323 F -2.703(cesses. Ex)108 489.6 R .203(ecuted commands inherit the en)-.15 F -2.703(vironment. The)-.4 F F1(export)2.703 E F0(and)2.703 E F1(declar) -2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.704 -(wp)-.25 G(aram-)-2.704 E 1.153 -(eters and functions to be added to and deleted from the en)108 501.6 R -3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.153 -(alue of a parameter in the)-.25 F(en)108 513.6 Q .64 -(vironment is modi\214ed, the ne)-.4 F 3.14(wv)-.25 G .64 -(alue becomes part of the en)-3.39 F .64(vironment, replacing the old.) --.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 525.6 -R 3.08(ye)-.15 G -.15(xe)-3.23 G .58 -(cuted command consists of the shell').15 F 3.08(si)-.55 G .58 -(nitial en)-3.08 F .58(vironment, whose v)-.4 F .58(alues may be)-.25 F -.3(modi\214ed in the shell, less an)108 537.6 R 2.8(yp)-.15 G .3 -(airs remo)-2.8 F -.15(ve)-.15 G 2.8(db).15 G 2.801(yt)-2.8 G(he)-2.801 -E F1(unset)2.801 E F0 .301(command, plus an)2.801 F 2.801(ya)-.15 G .301 -(dditions via the)-2.801 F F1(export)2.801 E F0(and)2.801 E F1(declar) -108 549.6 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en)108 -566.4 R .563(vironment for an)-.4 F(y)-.15 E F2 .563(simple command) -3.403 F F0 .562 +(cation, the shell scans its o).2 F(wn)-.25 E(en)108 722.4 Q 1.431(viro\ +nment and creates a parameter for each name found, automatically markin\ +g it for)-.4 F F2 -.2(ex)3.93 G(port).2 E F0 1.43(to child)4.61 F +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(30)185.955 E 0 Cg EP +%%Page: 31 31 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E 4.177(processes. Ex)108 84 R 1.677 +(ecuted commands inherit the en)-.15 F 4.177(vironment. The)-.4 F/F1 10 +/Times-Bold@0 SF(export)4.178 E F0(and)4.178 E F1(declar)4.178 E 4.178 +<65ad>-.18 G(x)-4.178 E F0 1.678(commands allo)4.178 F(w)-.25 E .647 +(parameters and functions to be added to and deleted from the en)108 96 +R 3.147(vironment. If)-.4 F .646(the v)3.146 F .646 +(alue of a parameter in)-.25 F .513(the en)108 108 R .513 +(vironment is modi\214ed, the ne)-.4 F 3.013(wv)-.25 G .513 +(alue becomes part of the en)-3.263 F .513 +(vironment, replacing the old.)-.4 F .514(The en)5.514 F(vi-)-.4 E .523 +(ronment inherited by an)108 120 R 3.022(ye)-.15 G -.15(xe)-3.172 G .522 +(cuted command consists of the shell').15 F 3.022(si)-.55 G .522 +(nitial en)-3.022 F .522(vironment, whose v)-.4 F .522(alues may)-.25 F +.578(be modi\214ed in the shell, less an)108 132 R 3.078(yp)-.15 G .578 +(airs remo)-3.078 F -.15(ve)-.15 G 3.078(db).15 G 3.078(yt)-3.078 G(he) +-3.078 E F1(unset)3.078 E F0 .579(command, plus an)3.078 F 3.079(ya)-.15 +G .579(dditions via the)-3.079 F F1(export)3.079 E F0(and)108 144 Q F1 +(declar)2.5 E 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en) +108 160.8 R .563(vironment for an)-.4 F(y)-.15 E/F2 10/Times-Italic@0 SF +.563(simple command)3.403 F F0 .562 (or function may be augmented temporarily by pre\214xing it with)3.833 F -.202(parameter assignments, as described abo)108 578.4 R .502 -.15(ve i) --.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F5 +.202(parameter assignments, as described abo)108 172.8 R .502 -.15(ve i) +-.15 H(n).15 E/F3 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F4 9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702 F -.203(fect only the)-.25 F(en)108 590.4 Q -(vironment seen by that command.)-.4 E .81(If the)108 607.2 R F1 +.203(fect only the)-.25 F(en)108 184.8 Q +(vironment seen by that command.)-.4 E .81(If the)108 201.6 R F1 3.31 E F0 .81(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu) 3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0 -.81(parameter assignments are placed in)3.82 F(the en)108 619.2 Q +.81(parameter assignments are placed in)3.82 F(the en)108 213.6 Q (vironment for a command, not just those that precede the command name.) --.4 E(When)108 636 Q F1(bash)3.396 E F0(in)3.396 E -.2(vo)-.4 G -.1(ke) -.2 G 3.396(sa).1 G 3.397(ne)-3.396 G .897(xternal command, the v)-3.547 -F(ariable)-.25 E F1(_)3.397 E F0 .897 +-.4 E(When)108 230.4 Q F1(bash)3.396 E F0(in)3.396 E -.2(vo)-.4 G -.1 +(ke).2 G 3.396(sa).1 G 3.397(ne)-3.396 G .897(xternal command, the v) +-3.547 F(ariable)-.25 E F1(_)3.397 E F0 .897 (is set to the full \214le name of the command and)3.397 F -(passed to that command in its en)108 648 Q(vironment.)-.4 E F3(EXIT ST) -72 664.8 Q -1.04(AT)-.986 G(US)1.04 E F0 .151(The e)108 676.8 R .151 -(xit status of an e)-.15 F -.15(xe)-.15 G .151(cuted command is the v) -.15 F .15(alue returned by the)-.25 F F2(waitpid)2.65 E F0 .15 -(system call or equi)2.65 F -.25(va)-.25 G .15(lent func-).25 F 2.847 -(tion. Exit)108 688.8 R .347(statuses f)2.847 F .347 -(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F +(passed to that command in its en)108 242.4 Q(vironment.)-.4 E/F5 10.95 +/Times-Bold@0 SF(EXIT ST)72 259.2 Q -1.04(AT)-.986 G(US)1.04 E F0 .151 +(The e)108 271.2 R .151(xit status of an e)-.15 F -.15(xe)-.15 G .151 +(cuted command is the v).15 F .15(alue returned by the)-.25 F F2 +(waitpid)2.65 E F0 .15(system call or equi)2.65 F -.25(va)-.25 G .15 +(lent func-).25 F 2.847(tion. Exit)108 283.2 R .347(statuses f)2.847 F +.347(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F 1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .348(alues abo)-.25 -F .648 -.15(ve 1)-.15 H(25).15 E(specially)108 700.8 Q 5.674(.E)-.65 G +F .648 -.15(ve 1)-.15 H(25).15 E(specially)108 295.2 Q 5.674(.E)-.65 G .674(xit statuses from shell b)-5.674 F .673 (uiltins and compound commands are also limited to this range. Under)-.2 -F(certain circumstances, the shell will use special v)108 712.8 Q +F(certain circumstances, the shell will use special v)108 307.2 Q (alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)108 -729.6 S 3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G .873 +324 S 3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G .873 (urposes, a command which e)-3.372 F .873(xits with a zero e)-.15 F .873 (xit status has succeeded.)-.15 F .873(An e)5.873 F .873(xit status of) --.15 F(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(30)190.95 E 0 Cg -EP -%%Page: 31 31 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .049(zero indicates success.)108 84 R 2.549(An)5.049 G .049 +-.15 F .049(zero indicates success.)108 336 R 2.549(An)5.049 G .049 (on-zero e)-2.549 F .049(xit status indicates f)-.15 F 2.549 (ailure. When)-.1 F 2.549(ac)2.549 G .048(ommand terminates on a f) --2.549 F .048(atal sig-)-.1 F(nal)108 96 Q/F1 10/Times-Italic@0 SF(N)2.5 -E F0(,)A/F2 10/Times-Bold@0 SF(bash)2.5 E F0(uses the v)2.5 E -(alue of 128+)-.25 E F1(N)A F0(as the e)2.5 E(xit status.)-.15 E .404 -(If a command is not found, the child process created to e)108 112.8 R +-2.549 F .048(atal sig-)-.1 F(nal)108 348 Q F2(N)2.5 E F0(,)A F1(bash) +2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F2(N)A F0(as the e)2.5 E +(xit status.)-.15 E .404 +(If a command is not found, the child process created to e)108 364.8 R -.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405 -(If a command is)5.405 F(found b)108 124.8 Q(ut is not e)-.2 E -.15(xe) --.15 G(cutable, the return status is 126.).15 E(If a command f)108 141.6 +(If a command is)5.405 F(found b)108 376.8 Q(ut is not e)-.2 E -.15(xe) +-.15 G(cutable, the return status is 126.).15 E(If a command f)108 393.6 Q(ails because of an error during e)-.1 E (xpansion or redirection, the e)-.15 E(xit status is greater than zero.) --.15 E .081(Shell b)108 158.4 R .081 -(uiltin commands return a status of 0 \()-.2 F F1(true)A F0 2.581(\)i)C -2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F1(false)A F0 +-.15 E .081(Shell b)108 410.4 R .081 +(uiltin commands return a status of 0 \()-.2 F F2(true)A F0 2.581(\)i)C +2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F2(false)A F0 2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08(rror occurs while)-2.58 F -(the)108 170.4 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15 F -.2 +(the)108 422.4 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15 F -.2 (bu)2.5 G(iltins return an e).2 E -(xit status of 2 to indicate incorrect usage.)-.15 E F2(Bash)108 187.2 Q +(xit status of 2 to indicate incorrect usage.)-.15 E F1(Bash)108 439.2 Q F0 .201(itself returns the e)2.701 F .202 (xit status of the last command e)-.15 F -.15(xe)-.15 G .202 -(cuted, unless a syntax error occurs, in which case).15 F(it e)108 199.2 -Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F2 -(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G/F3 -10.95/Times-Bold@0 SF(SIGN)72 216 Q(ALS)-.219 E F0(When)108 228 Q F2 -(bash)3.183 E F0 .683(is interacti)3.183 F -.15(ve)-.25 G 3.183(,i).15 G -3.183(nt)-3.183 G .683(he absence of an)-3.183 F 3.183(yt)-.15 G .683 -(raps, it ignores)-3.183 F/F4 9/Times-Bold@0 SF(SIGTERM)3.183 E F0 .682 -(\(so that)2.933 F F2 .682(kill 0)3.182 F F0 .682(does not kill an)3.182 -F(interacti)108 240 Q .757 -.15(ve s)-.25 H .457(hell\), and).15 F F4 -(SIGINT)2.957 E F0 .458(is caught and handled \(so that the)2.707 F F2 -(wait)2.958 E F0 -.2(bu)2.958 G .458(iltin is interruptible\).).2 F .458 -(In all cases,)5.458 F F2(bash)108 252 Q F0(ignores)2.5 E F4(SIGQ)2.5 E -(UIT)-.09 E/F5 9/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E -(fect,)-.25 E F2(bash)2.5 E F0(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4 -(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4(SIGTSTP)2.5 E F5(.)A F0 -(Non-b)108 268.8 Q 1.065(uiltin commands run by)-.2 F F2(bash)3.565 E F0 -(ha)3.565 E 1.365 -.15(ve s)-.2 H 1.065(ignal handlers set to the v).15 -F 1.064(alues inherited by the shell from its)-.25 F 3.247(parent. When) -108 280.8 R .747(job control is not in ef)3.247 F .747 -(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.248 E F0(and) -2.998 E F4(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653 -(tion to these inherited handlers.)108 292.8 R .653 +(cuted, unless a syntax error occurs, in which case).15 F(it e)108 451.2 +Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1 +(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F5 +(SIGN)72 468 Q(ALS)-.219 E F0(When)108 480 Q F1(bash)3.183 E F0 .683 +(is interacti)3.183 F -.15(ve)-.25 G 3.183(,i).15 G 3.183(nt)-3.183 G +.683(he absence of an)-3.183 F 3.183(yt)-.15 G .683(raps, it ignores) +-3.183 F F3(SIGTERM)3.183 E F0 .682(\(so that)2.933 F F1 .682(kill 0) +3.182 F F0 .682(does not kill an)3.182 F(interacti)108 492 Q .757 -.15 +(ve s)-.25 H .457(hell\), and).15 F F3(SIGINT)2.957 E F0 .458 +(is caught and handled \(so that the)2.707 F F1(wait)2.958 E F0 -.2(bu) +2.958 G .458(iltin is interruptible\).).2 F .458(In all cases,)5.458 F +F1(bash)108 504 Q F0(ignores)2.5 E F3(SIGQ)2.5 E(UIT)-.09 E F4(.)A F0 +(If job control is in ef)4.5 E(fect,)-.25 E F1(bash)2.5 E F0(ignores)2.5 +E F3(SIGTTIN)2.5 E F4(,)A F3(SIGTT)2.25 E(OU)-.162 E F4(,)A F0(and)2.25 +E F3(SIGTSTP)2.5 E F4(.)A F0(Non-b)108 520.8 Q 1.065 +(uiltin commands run by)-.2 F F1(bash)3.565 E F0(ha)3.565 E 1.365 -.15 +(ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.064 +(alues inherited by the shell from its)-.25 F 3.247(parent. When)108 +532.8 R .747(job control is not in ef)3.247 F .747 +(fect, asynchronous commands ignore)-.25 F F3(SIGINT)3.248 E F0(and) +2.998 E F3(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653 +(tion to these inherited handlers.)108 544.8 R .653 (Commands run as a result of command substitution ignore the k)5.653 F --.15(ey)-.1 G(board-).15 E(generated job control signals)108 304.8 Q F4 -(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4 -(SIGTSTP)2.5 E F5(.)A F0 2.045(The shell e)108 321.6 R 2.045 -(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E -F5(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.346 --.15(ve s)-.25 H 2.046(hell resends the).15 F F4(SIGHUP)108 333.6 Q F0 +-.15(ey)-.1 G(board-).15 E(generated job control signals)108 556.8 Q F3 +(SIGTTIN)2.5 E F4(,)A F3(SIGTT)2.25 E(OU)-.162 E F4(,)A F0(and)2.25 E F3 +(SIGTSTP)2.5 E F4(.)A F0 2.045(The shell e)108 573.6 R 2.045 +(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F3(SIGHUP)4.545 E +F4(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.346 +-.15(ve s)-.25 H 2.046(hell resends the).15 F F3(SIGHUP)108 585.6 Q F0 1.005(to all jobs, running or stopped.)3.255 F 1.004 -(Stopped jobs are sent)6.005 F F4(SIGCONT)3.504 E F0 1.004 +(Stopped jobs are sent)6.005 F F3(SIGCONT)3.504 E F0 1.004 (to ensure that the)3.254 F 3.504(yr)-.15 G(ecei)-3.504 E 1.304 -.15 -(ve t)-.25 H(he).15 E F4(SIGHUP)108 345.6 Q F5(.)A F0 2.529 -.8(To p) +(ve t)-.25 H(he).15 E F3(SIGHUP)108 597.6 Q F4(.)A F0 2.529 -.8(To p) 5.429 H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal\ to a particular job, it should be remo).15 F -.15(ve)-.15 G 3.43(df).15 -G .93(rom the)-3.43 F 1.357(jobs table with the)108 357.6 R F2(diso) -3.857 E(wn)-.1 E F0 -.2(bu)3.857 G 1.357(iltin \(see).2 F F4 1.356 +G .93(rom the)-3.43 F 1.357(jobs table with the)108 609.6 R F1(diso) +3.857 E(wn)-.1 E F0 -.2(bu)3.857 G 1.357(iltin \(see).2 F F3 1.356 (SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.606 E -1.356(w\) or mark)-.25 F 1.356(ed to not recei)-.1 F -.15(ve)-.25 G F4 -(SIGHUP)108 369.6 Q F0(using)2.25 E F2(diso)2.5 E(wn \255h)-.1 E F0(.)A -.166(If the)108 386.4 R F2(huponexit)2.666 E F0 .166 -(shell option has been set with)2.666 F F2(shopt)2.666 E F0(,)A F2(bash) -2.666 E F0 .166(sends a)2.666 F F4(SIGHUP)2.666 E F0 .166 +1.356(w\) or mark)-.25 F 1.356(ed to not recei)-.1 F -.15(ve)-.25 G F3 +(SIGHUP)108 621.6 Q F0(using)2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A +.166(If the)108 638.4 R F1(huponexit)2.666 E F0 .166 +(shell option has been set with)2.666 F F1(shopt)2.666 E F0(,)A F1(bash) +2.666 E F0 .166(sends a)2.666 F F3(SIGHUP)2.666 E F0 .166 (to all jobs when an interacti)2.416 F -.15(ve)-.25 G(login shell e)108 -398.4 Q(xits.)-.15 E(If)108 415.2 Q F2(bash)3.047 E F0 .547(is w)3.047 F +650.4 Q(xits.)-.15 E(If)108 667.2 Q F1(bash)3.047 E F0 .547(is w)3.047 F .546(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G 3.046(sas).15 G .546(ignal for which a trap has been set, the trap) --3.046 F .662(will not be e)108 427.2 R -.15(xe)-.15 G .662 -(cuted until the command completes.).15 F(When)5.663 E F2(bash)3.163 E +-3.046 F .662(will not be e)108 679.2 R -.15(xe)-.15 G .662 +(cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .99 -(via the)108 439.2 R F2(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\ -eption of a signal for which a trap has been set will cause the).2 F F2 +(via the)108 691.2 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\ +eption of a signal for which a trap has been set will cause the).2 F F1 (wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F -(return immediately with an e)108 451.2 Q +(return immediately with an e)108 703.2 Q (xit status greater than 128, immediately after which the trap is e)-.15 -E -.15(xe)-.15 G(cuted.).15 E F3(JOB CONTR)72 468 Q(OL)-.329 E F1 -.25 -(Jo)108 480 S 4.567(bc).25 G(ontr)-4.567 E(ol)-.45 E F0 2.067 -(refers to the ability to selecti)5.077 F -.15(ve)-.25 G 2.067 -(ly stop \().15 F F1(suspend)A F0 4.567(\)t)C 2.068(he e)-4.567 F -.15 -(xe)-.15 G 2.068(cution of processes and continue).15 F(\()108 492 Q F1 +E -.15(xe)-.15 G(cuted.).15 E(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(31)185.955 E 0 Cg EP +%%Page: 32 32 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10.95/Times-Bold@0 SF(JOB CONTR)72 84 Q(OL)-.329 E/F2 10 +/Times-Italic@0 SF -.25(Jo)108 96 S 4.567(bc).25 G(ontr)-4.567 E(ol)-.45 +E F0 2.067(refers to the ability to selecti)5.077 F -.15(ve)-.25 G 2.067 +(ly stop \().15 F F2(suspend)A F0 4.567(\)t)C 2.068(he e)-4.567 F -.15 +(xe)-.15 G 2.068(cution of processes and continue).15 F(\()108 108 Q F2 -.37(re)C(sume).37 E F0 3.202(\)t)C .702(heir e)-3.202 F -.15(xe)-.15 G .702(cution at a later point.).15 F 3.202(Au)5.702 G .702 (ser typically emplo)-3.202 F .702(ys this f)-.1 F .702 (acility via an interacti)-.1 F 1.001 -.15(ve i)-.25 H(nterf).15 E(ace) --.1 E(supplied jointly by the system')108 504 Q 2.5(st)-.55 G -(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E F2(bash)2.5 E -F0(.)A .784(The shell associates a)108 520.8 R F1(job)5.024 E F0 .784 -(with each pipeline.)3.514 F .784(It k)5.784 F .785 -(eeps a table of currently e)-.1 F -.15(xe)-.15 G .785 -(cuting jobs, which may be).15 F .341(listed with the)108 532.8 R F2 -(jobs)2.841 E F0 2.841(command. When)2.841 F F2(bash)2.841 E F0 .341 -(starts a job asynchronously \(in the)2.841 F F1(bac)2.84 E(kgr)-.2 E -(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 544.8 -Q(e:)-.1 E([1] 25647)144 561.6 Q .241(indicating that this job is job n\ +-.1 E(supplied jointly by the operating system k)108 120 Q(ernel')-.1 E +2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E +/F3 10/Times-Bold@0 SF(bash)2.5 E F0(.)A .784(The shell associates a)108 +136.8 R F2(job)5.024 E F0 .784(with each pipeline.)3.514 F .784(It k) +5.784 F .785(eeps a table of currently e)-.1 F -.15(xe)-.15 G .785 +(cuting jobs, which may be).15 F .341(listed with the)108 148.8 R F3 +(jobs)2.841 E F0 2.841(command. When)2.841 F F3(bash)2.841 E F0 .341 +(starts a job asynchronously \(in the)2.841 F F2(bac)2.84 E(kgr)-.2 E +(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 160.8 +Q(e:)-.1 E([1] 25647)144 177.6 Q .241(indicating that this job is job n\ umber 1 and that the process ID of the last process in the pipeline ass\ -ociated)108 578.4 R .733(with this job is 25647.)108 590.4 R .732 +ociated)108 194.4 R .733(with this job is 25647.)108 206.4 R .732 (All of the processes in a single pipeline are members of the same job) -5.733 F(.)-.4 E F2(Bash)5.732 E F0(uses)3.232 E(the)108 602.4 Q F1(job) +5.733 F(.)-.4 E F3(Bash)5.732 E F0(uses)3.232 E(the)108 218.4 Q F2(job) 4.24 E F0(abstraction as the basis for job control.)2.73 E 3.062 -.8 -(To f)108 619.2 T 1.462(acilitate the implementation of the user interf) +(To f)108 235.2 T 1.462(acilitate the implementation of the user interf) .7 F 1.463(ace to job control, the operating system maintains the)-.1 F -.871(notion of a)108 631.2 R F1(curr)3.371 E .871(ent terminal pr)-.37 F +.871(notion of a)108 247.2 R F2(curr)3.371 E .871(ent terminal pr)-.37 F .871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .87 (embers of this process group \(processes whose process)-5.871 F .023 (group ID is equal to the current terminal process group ID\) recei)108 -643.2 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023 -(board-generated signals such as).15 F F4(SIG-)2.523 E(INT)108 655.2 Q -F5(.)A F0 1.347(These processes are said to be in the)5.847 F F1(for) -3.846 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F1(Bac)6.926 E -(kgr)-.2 E(ound)-.45 E F0 1.346(processes are those whose process)4.616 -F .145(group ID dif)108 667.2 R .145(fers from the terminal')-.25 F .146 +259.2 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023 +(board-generated signals such as).15 F/F4 9/Times-Bold@0 SF(SIG-)2.523 E +(INT)108 271.2 Q/F5 9/Times-Roman@0 SF(.)A F0 1.347 +(These processes are said to be in the)5.847 F F2(for)3.846 E -.4(eg) +-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F2(Bac)6.926 E(kgr)-.2 E(ound) +-.45 E F0 1.346(processes are those whose process)4.616 F .145 +(group ID dif)108 283.2 R .145(fers from the terminal')-.25 F .146 (s; such processes are immune to k)-.55 F -.15(ey)-.1 G .146 -(board-generated signals.).15 F .146(Only fore-)5.146 F .042 -(ground processes are allo)108 679.2 R .042 -(wed to read from or write to the terminal.)-.25 F .042 -(Background processes which attempt to)5.042 F 1.639 -(read from \(write to\) the terminal are sent a)108 691.2 R F4 1.64 -(SIGTTIN \(SIGTT)4.14 F(OU\))-.162 E F0 1.64(signal by the terminal dri) -3.89 F -.15(ve)-.25 G 2.44 -.4(r, w).15 H(hich,).4 E -(unless caught, suspends the process.)108 703.2 Q 1.088 -(If the operating system on which)108 720 R F2(bash)3.588 E F0 1.088 -(is running supports job control,)3.588 F F2(bash)3.587 E F0 1.087 -(contains f)3.587 F 1.087(acilities to use it.)-.1 F(GNU Bash-4.0)72 768 -Q(2009 February 7)140.96 E(31)190.95 E 0 Cg EP -%%Page: 32 32 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E -.8(Ty)108 84 S .301(ping the).8 F/F1 10/Times-Italic@0 SF -(suspend)3.141 E F0 .301(character \(typically)3.571 F/F2 10 -/Times-Bold@0 SF(^Z)2.801 E F0 2.801(,C)C .301 +(board-generated signals.).15 F .146(Only fore-)5.146 F .16 +(ground processes are allo)108 295.2 R .16(wed to read from or)-.25 F +2.66(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F6 +10/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter) +-2.66 F(-)-.2 E 3.051(minal. Background)108 307.2 R .551 +(processes which attempt to read from \(write to when)3.051 F F6 .551 +(stty tostop)3.051 F F0 .552(is in ef)3.052 F .552(fect\) the)-.25 F +.718(terminal are sent a)108 319.2 R F4 .718(SIGTTIN \(SIGTT)3.218 F +(OU\))-.162 E F0 .718(signal by the k)2.968 F(ernel')-.1 E 3.217(st)-.55 +G .717(erminal dri)-3.217 F -.15(ve)-.25 G 1.517 -.4(r, w).15 H .717 +(hich, unless caught, sus-).4 F(pends the process.)108 331.2 Q 1.087 +(If the operating system on which)108 348 R F3(bash)3.587 E F0 1.088 +(is running supports job control,)3.588 F F3(bash)3.588 E F0 1.088 +(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8(Ty)108 360 S +.302(ping the).8 F F2(suspend)3.142 E F0 .302(character \(typically) +3.572 F F3(^Z)2.801 E F0 2.801(,C)C .301 (ontrol-Z\) while a process is running causes that process to be)-2.801 -F 2.143(stopped and returns control to)108 96 R F2(bash)4.642 E F0 7.142 -(.T)C 2.142(yping the)-7.942 F F1 2.142(delayed suspend)4.992 F F0 2.142 -(character \(typically)5.412 F F2(^Y)4.642 E F0 4.642(,C)C(ontrol-Y\)) --4.642 E .021(causes the process to be stopped when it attempts to read\ - input from the terminal, and control to be returned)108 108 R(to)108 -120 Q F2(bash)3.392 E F0 5.892(.T)C .892 +F 2.142(stopped and returns control to)108 372 R F3(bash)4.642 E F0 +7.142(.T)C 2.142(yping the)-7.942 F F2 2.142(delayed suspend)4.992 F F0 +2.143(character \(typically)5.413 F F3(^Y)4.643 E F0 4.643(,C)C +(ontrol-Y\))-4.643 E .021(causes the process to be stopped when it atte\ +mpts to read input from the terminal, and control to be returned)108 384 +R(to)108 396 Q F3(bash)3.392 E F0 5.892(.T)C .892 (he user may then manipulate the state of this job, using the)-5.892 F -F2(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894 -(background, the)108 132 R F2(fg)3.394 E F0 .895 -(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F -F2(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F2(^Z) -3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 144 Q .949(fect immediately)-.25 -F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948 +F3(bg)3.392 E F0 .892(command to continue it in the)3.392 F .895 +(background, the)108 408 R F3(fg)3.395 E F0 .895 +(command to continue it in the fore)3.395 F .895(ground, or the)-.15 F +F3(kill)3.395 E F0 .894(command to kill it.)3.395 F(A)5.894 E F3(^Z) +3.394 E F0(tak)3.394 E(es)-.1 E(ef)108 420 Q .948(fect immediately)-.25 +F 3.448(,a)-.65 G .948(nd has the additional side ef)-3.448 F .948 (fect of causing pending output and typeahead to be dis-)-.25 F(carded.) -108 156 Q .777(There are a number of w)108 172.8 R .777 -(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F2 -(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 184.8 -Q F1(jobspec)A F0 3.458(\). Job)B(number)3.458 E F1(n)3.818 E F0 .957 -(may be referred to as)3.697 F F2(%n)3.457 E F0 5.957(.A)C .957 +108 432 Q .777(There are a number of w)108 448.8 R .777 +(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F3 +(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 460.8 +Q F2(jobspec)A F0 3.457(\). Job)B(number)3.457 E F2(n)3.817 E F0 .957 +(may be referred to as)3.697 F F3(%n)3.457 E F0 5.957(.A)C .957 (job may also be referred to using a pre\214x of the)-2.5 F .59(name us\ ed to start it, or using a substring that appears in its command line.) -108 196.8 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F2(%ce)3.09 E -F0 .59(refers to a)3.09 F(stopped)108 208.8 Q F2(ce)3.464 E F0(job)3.464 -E 5.964(.I)-.4 G 3.463(fap)-5.964 G .963 -(re\214x matches more than one job,)-3.463 F F2(bash)3.463 E F0 .963 -(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F2(%?ce)3.463 E -F0 3.463(,o)C 3.463(nt)-3.463 G .963(he other)-3.463 F .086 -(hand, refers to an)108 220.8 R 2.587(yj)-.15 G .087 -(ob containing the string)-2.587 F F2(ce)2.587 E F0 .087 +108 472.8 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F3(%ce)3.09 E +F0 .59(refers to a)3.09 F(stopped)108 484.8 Q F3(ce)3.463 E F0(job)3.463 +E 5.963(.I)-.4 G 3.463(fap)-5.963 G .963 +(re\214x matches more than one job,)-3.463 F F3(bash)3.463 E F0 .963 +(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F3(%?ce)3.463 E +F0 3.464(,o)C 3.464(nt)-3.464 G .964(he other)-3.464 F .087 +(hand, refers to an)108 496.8 R 2.587(yj)-.15 G .087 +(ob containing the string)-2.587 F F3(ce)2.587 E F0 .087 (in its command line.)2.587 F .087 -(If the substring matches more than one)5.087 F(job,)108 232.8 Q F2 +(If the substring matches more than one)5.087 F(job,)108 508.8 Q F3 (bash)2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018 -(he symbols)-5.018 F F2(%%)2.518 E F0(and)2.518 E F2(%+)2.518 E F0 .018 +(he symbols)-5.018 F F3(%%)2.518 E F0(and)2.518 E F3(%+)2.518 E F0 .018 (refer to the shell')2.518 F 2.518(sn)-.55 G .018(otion of the)-2.518 F -F1(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is) --2.518 F .494(the last job stopped while it w)108 244.8 R .495 +F2(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is) +-2.518 F .495(the last job stopped while it w)108 520.8 R .495 (as in the fore)-.1 F .495(ground or started in the background.)-.15 F -(The)5.495 E F1(pr)4.245 E -.15(ev)-.37 G .495(ious job).15 F F0 .495 -(may be)3.225 F .788(referenced using)108 256.8 R F2<25ad>3.288 E F0 -5.788(.I)C 3.288(ft)-5.788 G .787(here is only a single job,)-3.288 F F2 -(%+)3.287 E F0(and)3.287 E F2<25ad>3.287 E F0 .787 -(can both be used to refer to that job)3.287 F 5.787(.I)-.4 G(n)-5.787 E -.256(output pertaining to jobs \(e.g., the output of the)108 268.8 R F2 +(The)5.494 E F2(pr)4.244 E -.15(ev)-.37 G .494(ious job).15 F F0 .494 +(may be)3.224 F .787(referenced using)108 532.8 R F3<25ad>3.287 E F0 +5.787(.I)C 3.287(ft)-5.787 G .787(here is only a single job,)-3.287 F F3 +(%+)3.287 E F0(and)3.287 E F3<25ad>3.287 E F0 .788 +(can both be used to refer to that job)3.287 F 5.788(.I)-.4 G(n)-5.788 E +.257(output pertaining to jobs \(e.g., the output of the)108 544.8 R F3 (jobs)2.756 E F0 .256(command\), the current job is al)2.756 F -.1(wa) --.1 G .257(ys \215agged with a).1 F F2(+)2.757 E F0(,)A .411 -(and the pre)108 280.8 R .411(vious job with a)-.25 F F22.911 E F0 -5.411(.A)C .411(single % \(with no accompan)-2.5 F .41 +-.1 G .256(ys \215agged with a).1 F F3(+)2.756 E F0(,)A .41(and the pre) +108 556.8 R .41(vious job with a)-.25 F F32.91 E F0 5.41(.A)C .411 +(single % \(with no accompan)-2.5 F .411 (ying job speci\214cation\) also refers to the cur)-.15 F(-)-.2 E -(rent job)108 292.8 Q(.)-.4 E .443 -(Simply naming a job can be used to bring it into the fore)108 309.6 R -(ground:)-.15 E F2(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for) --.15 F F2 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C -(ringing)-2.944 E 1.473(job 1 from the background into the fore)108 -321.6 R 3.973(ground. Similarly)-.15 F(,)-.65 E F2 -.63(``)3.972 G 1.472 -(%1 &').63 F(')-.63 E F0 1.472(resumes job 1 in the background,)3.972 F -(equi)108 333.6 Q -.25(va)-.25 G(lent to).25 E F2 -.63(``)2.5 G(bg %1') -.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 350.4 R --.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally) -5.131 E(,)-.65 E F2(bash)2.631 E F0 -.1(wa)2.631 G .131 -(its until it is about to print a).1 F .158 -(prompt before reporting changes in a job')108 362.4 R 2.658(ss)-.55 G -.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157 -(ther output.)-2.657 F .157(If the)5.157 F F22.657 E F0 .157 -(option to)2.657 F(the)108 374.4 Q F2(set)3.951 E F0 -.2(bu)3.951 G -1.451(iltin command is enabled,).2 F F2(bash)3.951 E F0 1.452 -(reports such changes immediately)3.951 F 6.452(.A)-.65 G 1.752 -.15 -(ny t)-6.452 H 1.452(rap on).15 F/F3 9/Times-Bold@0 SF(SIGCHLD)3.952 E -F0(is)3.702 E -.15(exe)108 386.4 S(cuted for each child that e).15 E -(xits.)-.15 E .033(If an attempt to e)108 403.2 R(xit)-.15 E F2(bash) -2.533 E F0 .033(is made while jobs are stopped \(or)2.533 F 2.532(,i)-.4 -G 2.532(ft)-2.532 G(he)-2.532 E F2(checkjobs)2.532 E F0 .032 -(shell option has been enabled)2.532 F 2.019(using the)108 415.2 R F2 -(shopt)4.519 E F0 -.2(bu)4.519 G 2.019 -(iltin, running\), the shell prints a w).2 F 2.02 -(arning message, and, if the)-.1 F F2(checkjobs)4.52 E F0 2.02 -(option is)4.52 F .459(enabled, lists the jobs and their statuses.)108 -427.2 R(The)5.459 E F2(jobs)2.959 E F0 .458 -(command may then be used to inspect their status.)2.958 F .458(If a) -5.458 F .603(second attempt to e)108 439.2 R .604 +(rent job)108 568.8 Q(.)-.4 E .444 +(Simply naming a job can be used to bring it into the fore)108 585.6 R +(ground:)-.15 E F3(%1)2.943 E F0 .443(is a synon)2.943 F .443(ym for) +-.15 F F3 -.63(``)2.943 G .443(fg %1').63 F(')-.63 E F0 2.943(,b)C +(ringing)-2.943 E 1.472(job 1 from the background into the fore)108 +597.6 R 3.972(ground. Similarly)-.15 F(,)-.65 E F3 -.63(``)3.973 G 1.473 +(%1 &').63 F(')-.63 E F0 1.473(resumes job 1 in the background,)3.973 F +(equi)108 609.6 Q -.25(va)-.25 G(lent to).25 E F3 -.63(``)2.5 G(bg %1') +.63 E(')-.63 E F0(.)A .131(The shell learns immediately whene)108 626.4 +R -.15(ve)-.25 G 2.631(raj).15 G .131(ob changes state.)-2.631 F +(Normally)5.131 E(,)-.65 E F3(bash)2.631 E F0 -.1(wa)2.63 G .13 +(its until it is about to print a).1 F .157 +(prompt before reporting changes in a job')108 638.4 R 2.657(ss)-.55 G +.157(tatus so as to not interrupt an)-2.657 F 2.658(yo)-.15 G .158 +(ther output.)-2.658 F .158(If the)5.158 F F32.658 E F0 .158 +(option to)2.658 F(the)108 650.4 Q F3(set)3.952 E F0 -.2(bu)3.952 G +1.452(iltin command is enabled,).2 F F3(bash)3.952 E F0 1.451 +(reports such changes immediately)3.952 F 6.451(.A)-.65 G 1.751 -.15 +(ny t)-6.451 H 1.451(rap on).15 F F4(SIGCHLD)3.951 E F0(is)3.701 E -.15 +(exe)108 662.4 S(cuted for each child that e).15 E(xits.)-.15 E .032 +(If an attempt to e)108 679.2 R(xit)-.15 E F3(bash)2.532 E F0 .032 +(is made while jobs are stopped \(or)2.532 F 2.533(,i)-.4 G 2.533(ft) +-2.533 G(he)-2.533 E F3(checkjobs)2.533 E F0 .033 +(shell option has been enabled)2.533 F 2.02(using the)108 691.2 R F3 +(shopt)4.52 E F0 -.2(bu)4.52 G 2.02 +(iltin, running\), the shell prints a w).2 F 2.019 +(arning message, and, if the)-.1 F F3(checkjobs)4.519 E F0 2.019 +(option is)4.519 F .458(enabled, lists the jobs and their statuses.)108 +703.2 R(The)5.458 E F3(jobs)2.958 E F0 .459 +(command may then be used to inspect their status.)2.958 F .459(If a) +5.459 F .604(second attempt to e)108 715.2 R .604 (xit is made without an interv)-.15 F .604 (ening command, the shell does not print another w)-.15 F(arning,)-.1 E -(and an)108 451.2 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F4 -10.95/Times-Bold@0 SF(PR)72 468 Q(OMPTING)-.329 E F0 .645(When e)108 480 -R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,) --.65 E F2(bash)3.145 E F0 .645(displays the primary prompt)3.145 F F3 -(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.825 -(and the secondary prompt)108 492 R F3(PS2)4.325 E F0 1.825 -(when it needs more input to complete a command.)4.075 F F2(Bash)6.826 E -F0(allo)4.326 E 1.826(ws these)-.25 F 1.499(prompt strings to be custom\ +(and an)108 727.2 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(32)185.955 E 0 Cg EP +%%Page: 33 33 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10.95/Times-Bold@0 SF(PR)72 84 Q(OMPTING)-.329 E F0 .644 +(When e)108 96 R -.15(xe)-.15 G .644(cuting interacti).15 F -.15(ve)-.25 +G(ly).15 E(,)-.65 E/F2 10/Times-Bold@0 SF(bash)3.144 E F0 .645 +(displays the primary prompt)3.145 F/F3 9/Times-Bold@0 SF(PS1)3.145 E F0 +.645(when it is ready to read a command,)2.895 F 1.826 +(and the secondary prompt)108 108 R F3(PS2)4.326 E F0 1.825 +(when it needs more input to complete a command.)4.076 F F2(Bash)6.825 E +F0(allo)4.325 E 1.825(ws these)-.25 F 1.499(prompt strings to be custom\ ized by inserting a number of backslash-escaped special characters that\ - are)108 504 R(decoded as follo)108 516 Q(ws:)-.25 E F2(\\a)144 528 Q F0 -(an ASCII bell character \(07\))28.22 E F2(\\d)144 540 Q F0 + are)108 120 R(decoded as follo)108 132 Q(ws:)-.25 E F2(\\a)144 144 Q F0 +(an ASCII bell character \(07\))28.22 E F2(\\d)144 156 Q F0 (the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E -(ue May 26"\))-.45 E F2(\\D{)144 552 Q F1(format)A F2(})A F0(the)180 564 -Q F1(format)3.926 E F0 1.426(is passed to)3.926 F F1(strftime)3.926 E F0 -1.427(\(3\) and the result is inserted into the prompt string; an)B -(empty)180 576 Q F1(format)2.5 E F0 +(ue May 26"\))-.45 E F2(\\D{)144 168 Q/F4 10/Times-Italic@0 SF(format)A +F2(})A F0(the)180 180 Q F4(format)3.927 E F0 1.427(is passed to)3.927 F +F4(strftime)3.927 E F0 1.427 +(\(3\) and the result is inserted into the prompt string; an)B(empty)180 +192 Q F4(format)2.5 E F0 (results in a locale-speci\214c time representation.)2.5 E -(The braces are required)5 E F2(\\e)144 588 Q F0 -(an ASCII escape character \(033\))28.78 E F2(\\h)144 600 Q F0 -(the hostname up to the \214rst `.)27.66 E(')-.7 E F2(\\H)144 612 Q F0 -(the hostname)25.44 E F2(\\j)144 624 Q F0 +(The braces are required)5 E F2(\\e)144 204 Q F0 +(an ASCII escape character \(033\))28.78 E F2(\\h)144 216 Q F0 +(the hostname up to the \214rst `.)27.66 E(')-.7 E F2(\\H)144 228 Q F0 +(the hostname)25.44 E F2(\\j)144 240 Q F0 (the number of jobs currently managed by the shell)29.89 E F2(\\l)144 -636 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de) --2.5 E(vice name)-.25 E F2(\\n)144 648 Q F0(ne)27.66 E(wline)-.25 E F2 -(\\r)144 660 Q F0(carriage return)28.78 E F2(\\s)144 672 Q F0 +252 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de) +-2.5 E(vice name)-.25 E F2(\\n)144 264 Q F0(ne)27.66 E(wline)-.25 E F2 +(\\r)144 276 Q F0(carriage return)28.78 E F2(\\s)144 288 Q F0 (the name of the shell, the basename of)29.33 E F2($0)2.5 E F0 (\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F2(\\t)144 -684 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F2(\\T)144 -696 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F2(\\@)144 -708 Q F0(the current time in 12-hour am/pm format)23.92 E(GNU Bash-4.0) -72 768 Q(2009 February 7)140.96 E(32)190.95 E 0 Cg EP -%%Page: 33 33 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(\\A)144 84 Q F0 -(the current time in 24-hour HH:MM format)26 E F1(\\u)144 96 Q F0 -(the username of the current user)27.66 E F1(\\v)144 108 Q F0(the v) -28.22 E(ersion of)-.15 E F1(bash)2.5 E F0(\(e.g., 2.00\))2.5 E F1(\\V) -144 120 Q F0(the release of)26 E F1(bash)2.5 E F0 2.5(,v)C +300 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F2(\\T)144 +312 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F2(\\@)144 +324 Q F0(the current time in 12-hour am/pm format)23.92 E F2(\\A)144 336 +Q F0(the current time in 24-hour HH:MM format)26 E F2(\\u)144 348 Q F0 +(the username of the current user)27.66 E F2(\\v)144 360 Q F0(the v) +28.22 E(ersion of)-.15 E F2(bash)2.5 E F0(\(e.g., 2.00\))2.5 E F2(\\V) +144 372 Q F0(the release of)26 E F2(bash)2.5 E F0 2.5(,v)C (ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G(e.g., 2.00.0\)) --2.5 E F1(\\w)144 132 Q F0 4.288(the current w)26 F 4.288 -(orking directory)-.1 F 6.787(,w)-.65 G(ith)-6.787 E F1($HOME)6.787 E F0 -(abbre)6.787 E 4.287(viated with a tilde \(uses the)-.25 F F1($PR)180 -144 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 -.25(va)2.5 G(riable\)).25 E F1(\\W) -144 156 Q F0(the basename of the current w)23.22 E(orking directory)-.1 -E 2.5(,w)-.65 G(ith)-2.5 E F1($HOME)2.5 E F0(abbre)2.5 E -(viated with a tilde)-.25 E F1(\\!)144 168 Q F0 -(the history number of this command)29.89 E F1(\\#)144 180 Q F0 -(the command number of this command)28.22 E F1(\\$)144 192 Q F0 -(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E F1 -(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 204 Q/F2 10 -/Times-Italic@0 SF(nnn)A F0 -(the character corresponding to the octal number)18.22 E F2(nnn)2.5 E F1 -(\\\\)144 216 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 228 Q F0 -(be)29.89 E 1.257(gin a sequence of non-printing characters, which coul\ -d be used to embed a terminal)-.15 F(control sequence into the prompt) -180 240 Q F1(\\])144 252 Q F0(end a sequence of non-printing characters) -29.89 E .12(The command number and the history number are usually dif) -108 268.8 R .119(ferent: the history number of a command is its)-.25 F -1.585(position in the history list, which may include commands restored\ - from the history \214le \(see)108 280.8 R/F3 9/Times-Bold@0 SF(HIST) -4.085 E(OR)-.162 E(Y)-.315 E F0(belo)108 292.8 Q .541(w\), while the co\ -mmand number is the position in the sequence of commands e)-.25 F -.15 -(xe)-.15 G .54(cuted during the cur).15 F(-)-.2 E .546 -(rent shell session.)108 304.8 R .546 -(After the string is decoded, it is e)5.546 F .546 +-2.5 E F2(\\w)144 384 Q F0 .115(the current w)26 F .115 +(orking directory)-.1 F 2.615(,w)-.65 G(ith)-2.615 E F3($HOME)2.615 E F0 +(abbre)2.365 E .116(viated with a tilde \(uses the v)-.25 F .116 +(alue of the)-.25 F F3(PR)180 396 Q(OMPT_DIR)-.27 E(TRIM)-.36 E F0 -.25 +(va)2.25 G(riable\)).25 E F2(\\W)144 408 Q F0 +(the basename of the current w)23.22 E(orking directory)-.1 E 2.5(,w) +-.65 G(ith)-2.5 E F3($HOME)2.5 E F0(abbre)2.25 E(viated with a tilde) +-.25 E F2(\\!)144 420 Q F0(the history number of this command)29.89 E F2 +(\\#)144 432 Q F0(the command number of this command)28.22 E F2(\\$)144 +444 Q F0(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a) +.15 E F2(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F2($)2.5 E(\\)144 456 Q +F4(nnn)A F0(the character corresponding to the octal number)18.22 E F4 +(nnn)2.5 E F2(\\\\)144 468 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F2(\\[) +144 480 Q F0(be)29.89 E 1.257(gin a sequence of non-printing characters\ +, which could be used to embed a terminal)-.15 F +(control sequence into the prompt)180 492 Q F2(\\])144 504 Q F0 +(end a sequence of non-printing characters)29.89 E .119 +(The command number and the history number are usually dif)108 520.8 R +.12(ferent: the history number of a command is its)-.25 F 1.585(positio\ +n in the history list, which may include commands restored from the his\ +tory \214le \(see)108 532.8 R F3(HIST)4.084 E(OR)-.162 E(Y)-.315 E F0 +(belo)108 544.8 Q .541(w\), while the command number is the position in\ + the sequence of commands e)-.25 F -.15(xe)-.15 G .541 +(cuted during the cur).15 F(-)-.2 E .546(rent shell session.)108 556.8 R +.546(After the string is decoded, it is e)5.546 F .546 (xpanded via parameter e)-.15 F .546(xpansion, command substitu-)-.15 F -.352(tion, arithmetic e)108 316.8 R .352(xpansion, and quote remo)-.15 F --.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F1 -(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351(shell option \(see the)2.852 -F(description of the)108 328.8 Q F1(shopt)2.5 E F0(command under)2.5 E +.351(tion, arithmetic e)108 568.8 R .352(xpansion, and quote remo)-.15 F +-.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F2 +(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .352(shell option \(see the)2.852 +F(description of the)108 580.8 Q F2(shopt)2.5 E F0(command under)2.5 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).) --.25 E/F4 10.95/Times-Bold@0 SF(READLINE)72 345.6 Q F0 .15 +-.25 E F1(READLINE)72 597.6 Q F0 .151 (This is the library that handles reading input when using an interacti) -108 357.6 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F1 -(\255\255noediting)2.651 E F0(option)2.651 E 1.209(is gi)108 369.6 R --.15(ve)-.25 G 3.709(na).15 G 3.709(ts)-3.709 G 1.209(hell in)-3.709 F --.2(vo)-.4 G 3.709(cation. Line).2 F 1.208 -(editing is also used when using the)3.709 F F13.708 E F0 1.208 -(option to the)3.708 F F1 -.18(re)3.708 G(ad).18 E F0 -.2(bu)3.708 G -3.708(iltin. By).2 F(def)108 381.6 Q .949 +108 609.6 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F2 +(\255\255noediting)2.65 E F0(option)2.65 E 1.208(is gi)108 621.6 R -.15 +(ve)-.25 G 3.708(na).15 G 3.708(ts)-3.708 G 1.208(hell in)-3.708 F -.2 +(vo)-.4 G 3.708(cation. Line).2 F 1.208 +(editing is also used when using the)3.708 F F23.709 E F0 1.209 +(option to the)3.709 F F2 -.18(re)3.709 G(ad).18 E F0 -.2(bu)3.709 G +3.709(iltin. By).2 F(def)108 633.6 Q .95 (ault, the line editing commands are similar to those of emacs.)-.1 F -3.45(Av)5.95 G .95(i-style line editing interf)-3.45 F .95(ace is also) --.1 F -.2(av)108 393.6 S 3.35(ailable. Line)-.05 F .85 +3.449(Av)5.949 G .949(i-style line editing interf)-3.449 F .949 +(ace is also)-.1 F -.2(av)108 645.6 S 3.35(ailable. Line)-.05 F .85 (editing can be enabled at an)3.35 F 3.35(yt)-.15 G .85(ime using the) --3.35 F F1 .85(\255o emacs)3.35 F F0(or)3.35 E F1 .85(\255o vi)3.35 F F0 -.85(options to the)3.35 F F1(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E -(\(see)108 405.6 Q F3 .762(SHELL B)3.262 F(UIL)-.09 E .762(TIN COMMANDS) --.828 F F0(belo)3.012 E 3.262(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of) +-3.35 F F2 .85(\255o emacs)3.35 F F0(or)3.35 E F2 .85(\255o vi)3.35 F F0 +.85(options to the)3.35 F F2(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E +(\(see)108 657.6 Q F3 .763(SHELL B)3.263 F(UIL)-.09 E .763(TIN COMMANDS) +-.828 F F0(belo)3.013 E 3.263(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of) -3.263 F 3.263(fl)-.25 G .763 -(ine editing after the shell is running, use the)-3.263 F F1(+o)3.263 E -(emacs)108 417.6 Q F0(or)2.5 E F1(+o vi)2.5 E F0(options to the)2.5 E F1 -(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(Readline Notation)87 434.4 Q -F0 .568(In this section, the emacs-style notation is used to denote k) -108 446.4 R -.15(ey)-.1 G(strok).15 E 3.067(es. Control)-.1 F -.1(ke) -3.067 G .567(ys are denoted by C\255)-.05 F F2 -.1(ke)C(y)-.2 E F0(,)A -1.152(e.g., C\255n means Control\255N.)108 458.4 R(Similarly)6.152 E(,) --.65 E F2(meta)4.032 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255) --.05 F F2 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653(oM)-3.653 G 1.153 -(\255x means Meta\255X.)-3.653 F(\(On)6.153 E -.1(ke)108 470.4 S .831 -(yboards without a)-.05 F F2(meta)3.711 E F0 -.1(ke)3.591 G 2.131 -.65 -(y, M)-.05 H.65 E F2(x)A F0 .831(means ESC)3.331 F F2(x)3.331 E F0 -3.331(,i)C .83(.e., press the Escape k)-3.331 F 1.13 -.15(ey t)-.1 H .83 -(hen the).15 F F2(x)4.1 E F0 -.1(ke)3.86 G 4.63 -.65(y. T)-.05 H .83 -(his mak).65 F(es)-.1 E .599(ESC the)108 482.4 R F2 .599(meta pr)3.099 F -(e\214x)-.37 E F0 5.599(.T)C .599(he combination M\255C\255)-5.599 F F2 -(x)A F0 .599(means ESC\255Control\255)3.099 F F2(x)A F0 3.099(,o)C 3.099 -(rp)-3.099 G .6(ress the Escape k)-3.099 F .9 -.15(ey t)-.1 H .6 -(hen hold).15 F(the Control k)108 494.4 Q .3 -.15(ey w)-.1 H -(hile pressing the).15 E F2(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)) -.65 E .62(Readline commands may be gi)108 511.2 R -.15(ve)-.25 G 3.119 -(nn).15 G(umeric)-3.119 E F2(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G -.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E -(ho)108 523.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti) -.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619 +(ine editing after the shell is running, use the)-3.263 F F2(+o)3.262 E +(emacs)108 669.6 Q F0(or)2.5 E F2(+o vi)2.5 E F0(options to the)2.5 E F2 +(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F2(Readline Notation)87 686.4 Q +F0 .567(In this section, the emacs-style notation is used to denote k) +108 698.4 R -.15(ey)-.1 G(strok).15 E 3.068(es. Control)-.1 F -.1(ke) +3.068 G .568(ys are denoted by C\255)-.05 F F4 -.1(ke)C(y)-.2 E F0(,)A +1.153(e.g., C\255n means Control\255N.)108 710.4 R(Similarly)6.153 E(,) +-.65 E F4(meta)4.033 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255) +-.05 F F4 -.1(ke)C(y)-.2 E F0 3.652(,s)C 3.652(oM)-3.652 G 1.152 +(\255x means Meta\255X.)-3.652 F(\(On)6.152 E -.1(ke)108 722.4 S .83 +(yboards without a)-.05 F F4(meta)3.71 E F0 -.1(ke)3.59 G 2.13 -.65 +(y, M)-.05 H.65 E F4(x)A F0 .83(means ESC)3.33 F F4(x)3.33 E F0 3.33 +(,i)C .831(.e., press the Escape k)-3.33 F 1.131 -.15(ey t)-.1 H .831 +(hen the).15 F F4(x)4.101 E F0 -.1(ke)3.861 G 4.631 -.65(y. T)-.05 H +.831(his mak).65 F(es)-.1 E(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(33)185.955 E 0 Cg EP +%%Page: 34 34 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E .6(ESC the)108 84 R/F1 10/Times-Italic@0 SF .6(meta pr)3.1 F +(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F1(x)A F0 +.599(means ESC\255Control\255)3.099 F F1(x)A F0 3.099(,o)C 3.099(rp) +-3.099 G .599(ress the Escape k)-3.099 F .899 -.15(ey t)-.1 H .599 +(hen hold).15 F(the Control k)108 96 Q .3 -.15(ey w)-.1 H +(hile pressing the).15 E F1(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)) +.65 E .619(Readline commands may be gi)108 112.8 R -.15(ve)-.25 G 3.119 +(nn).15 G(umeric)-3.119 E F1(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G +.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.62 E(ho) +108 124.8 Q(we)-.25 E -.15(ve)-.25 G 1.419 -.4(r, i).15 H 3.119(ti).4 G +3.119(st)-3.119 G .619(he sign of the ar)-3.119 F .619 (gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne) .15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619 -(ument to a command that).18 F 1.019(acts in the forw)108 535.2 R 1.018 -(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C -1.018(auses that command to act in a backw)-3.518 F 1.018 -(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 547.2 Q +(ument to a command that).18 F 1.018(acts in the forw)108 136.8 R 1.018 +(ard direction \(e.g.,)-.1 F/F2 10/Times-Bold@0 SF(kill\255line)3.518 E +F0 3.518(\)c)C 1.018(auses that command to act in a backw)-3.518 F 1.019 +(ard direction.)-.1 F(Com-)6.019 E(mands whose beha)108 148.8 Q (vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo) --.25 E -.65(w.)-.25 G .811(When a command is described as)108 564 R F2 +-.25 E -.65(w.)-.25 G .812(When a command is described as)108 165.6 R F1 (killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811 -(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812 -(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F2 -(yank-)-3.312 E(ing)108 576 Q F0 2.529(\). The)B .029(killed te)2.529 F -.029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F2 +(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .811 +(or possible future retrie)-3.311 F -.25(va)-.25 G 3.311(l\().25 G F1 +(yank-)-3.311 E(ing)108 177.6 Q F0 2.529(\). The)B .029(killed te)2.529 +F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F1 .029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H .029(ills cause the te).15 F .029(xt to be accumulated into one unit,) --.15 F .567(which can be yank)108 588 R .567(ed all at once.)-.1 F .567 -(Commands which do not kill te)5.567 F .567 +-.15 F .567(which can be yank)108 189.6 R .567(ed all at once.)-.1 F +.567(Commands which do not kill te)5.567 F .567 (xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.) -108 600 Q F1(Readline Initialization)87 616.8 Q F0 .091(Readline is cus\ -tomized by putting commands in an initialization \214le \(the)108 628.8 -R F2(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091 -(name of this \214le)2.591 F .196(is tak)108 640.8 R .196(en from the v) --.1 F .196(alue of the)-.25 F F3(INPUTRC)2.696 E F0 -.25(va)2.446 G -2.696(riable. If).25 F .196(that v)2.696 F .196 -(ariable is unset, the def)-.25 F .196(ault is)-.1 F F2(~/.inputr)2.696 -E(c)-.37 E F0 5.196(.W).31 G .197(hen a)-5.196 F 1.034(program which us\ +108 201.6 Q F2(Readline Initialization)87 218.4 Q F0 .091(Readline is c\ +ustomized by putting commands in an initialization \214le \(the)108 +230.4 R F1(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .092 +(name of this \214le)2.591 F .197(is tak)108 242.4 R .196(en from the v) +-.1 F .196(alue of the)-.25 F/F3 9/Times-Bold@0 SF(INPUTRC)2.696 E F0 +-.25(va)2.446 G 2.696(riable. If).25 F .196(that v)2.696 F .196 +(ariable is unset, the def)-.25 F .196(ault is)-.1 F F1(~/.inputr)2.696 +E(c)-.37 E F0 5.196(.W).31 G .196(hen a)-5.196 F 1.034(program which us\ es the readline library starts up, the initialization \214le is read, a\ -nd the k)108 652.8 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25 -(va)108 664.8 S 1.149(riables are set.).25 F 1.149(There are only a fe) -6.149 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.15 -(wed in the readline initialization \214le.)-.25 F(Blank)6.15 E .737 -(lines are ignored.)108 676.8 R .737(Lines be)5.737 F .737 -(ginning with a)-.15 F F1(#)3.237 E F0 .737(are comments.)3.237 F .737 -(Lines be)5.737 F .737(ginning with a)-.15 F F1($)3.237 E F0 .736 -(indicate conditional)3.236 F 2.5(constructs. Other)108 688.8 R +nd the k)108 254.4 R 1.335 -.15(ey b)-.1 H 1.035(indings and).15 F -.25 +(va)108 266.4 S 1.15(riables are set.).25 F 1.15(There are only a fe) +6.15 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.149 +(wed in the readline initialization \214le.)-.25 F(Blank)6.149 E .736 +(lines are ignored.)108 278.4 R .737(Lines be)5.737 F .737 +(ginning with a)-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737 +(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .737 +(indicate conditional)3.237 F 2.5(constructs. Other)108 290.4 R (lines denote k)2.5 E .3 -.15(ey b)-.1 H(indings and v).15 E -(ariable settings.)-.25 E .986(The def)108 705.6 R .986(ault k)-.1 F --.15(ey)-.1 G .987(-bindings may be changed with an).15 F F2(inputr) +(ariable settings.)-.25 E .987(The def)108 307.2 R .987(ault k)-.1 F +-.15(ey)-.1 G .987(-bindings may be changed with an).15 F F1(inputr) 3.497 E(c)-.37 E F0 3.487(\214le. Other)3.797 F .987 -(programs that use this library may)3.487 F(add their o)108 717.6 Q -(wn commands and bindings.)-.25 E(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(33)190.95 E 0 Cg EP -%%Page: 34 34 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E -.15(Fo)108 84 S 2.5(re).15 G(xample, placing)-2.65 E -(M\255Control\255u: uni)144 100.8 Q -.15(ve)-.25 G(rsal\255ar).15 E -(gument)-.18 E(or)108 112.8 Q(C\255Meta\255u: uni)144 124.8 Q -.15(ve) --.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 136.8 Q/F1 10 -/Times-Italic@0 SF(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E -2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G -(cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument) --.37 E F0(.).68 E 1.261(The follo)108 153.6 R 1.261 -(wing symbolic character names are recognized:)-.25 F F1 -.4(RU)3.761 G -(BOUT).4 E F0(,)1.27 E F1(DEL)3.761 E F0(,).53 E F1(ESC)3.761 E F0(,).72 -E F1(LFD)3.761 E F0(,).28 E F1(NEWLINE)3.76 E F0(,).73 E F1(RET)3.76 E -F0(,)1.27 E F1(RETURN)108 165.6 Q F0(,)1.1 E F1(SPC)2.5 E F0(,).72 E F1 -(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G(nd)-2.5 E F1 -.5(TA)2.5 G -(B).5 E F0(.).27 E .209(In addition to command names, readline allo)108 -182.4 R .209(ws k)-.25 F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G -2.709(eb)-2.709 G .209(ound to a string that is inserted when the k) --2.709 F .509 -.15(ey i)-.1 H(s).15 E(pressed \(a)108 194.4 Q F1(macr) -2.5 E(o)-.45 E F0(\).)A/F2 10/Times-Bold@0 SF(Readline K)87 211.2 Q -(ey Bindings)-.25 E F0 .366(The syntax for controlling k)108 223.2 R -.666 -.15(ey b)-.1 H .366(indings in the).15 F F1(inputr)2.876 E(c)-.37 -E F0 .366(\214le is simple.)3.176 F .366 -(All that is required is the name of the)5.366 F .382(command or the te) -108 235.2 R .383(xt of a macro and a k)-.15 F .683 -.15(ey s)-.1 H .383 +(programs that use this library may)3.487 F(add their o)108 319.2 Q +(wn commands and bindings.)-.25 E -.15(Fo)108 336 S 2.5(re).15 G +(xample, placing)-2.65 E(M\255Control\255u: uni)144 352.8 Q -.15(ve)-.25 +G(rsal\255ar).15 E(gument)-.18 E(or)108 364.8 Q(C\255Meta\255u: uni)144 +376.8 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 388.8 +Q F1(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G +(\255C\255u e)-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F1 +(univer)2.5 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.26(The follo) +108 405.6 R 1.261(wing symbolic character names are recognized:)-.25 F +F1 -.4(RU)3.761 G(BOUT).4 E F0(,)1.27 E F1(DEL)3.761 E F0(,).53 E F1 +(ESC)3.761 E F0(,).72 E F1(LFD)3.761 E F0(,).28 E F1(NEWLINE)3.761 E F0 +(,).73 E F1(RET)3.761 E F0(,)1.27 E F1(RETURN)108 417.6 Q F0(,)1.1 E F1 +(SPC)2.5 E F0(,).72 E F1(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G +(nd)-2.5 E F1 -.5(TA)2.5 G(B).5 E F0(.).27 E .209 +(In addition to command names, readline allo)108 434.4 R .209(ws k)-.25 +F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209 +(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i) +-.1 H(s).15 E(pressed \(a)108 446.4 Q F1(macr)2.5 E(o)-.45 E F0(\).)A F2 +(Readline K)87 463.2 Q(ey Bindings)-.25 E F0 .366 +(The syntax for controlling k)108 475.2 R .666 -.15(ey b)-.1 H .366 +(indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366 +(\214le is simple.)3.176 F .366(All that is required is the name of the) +5.366 F .383(command or the te)108 487.2 R .383(xt of a macro and a k) +-.15 F .683 -.15(ey s)-.1 H .383 (equence to which it should be bound. The name may be speci-).15 F .853 -(\214ed in one of tw)108 247.2 R 3.353(ow)-.1 G .853 +(\214ed in one of tw)108 499.2 R 3.353(ow)-.1 G .853 (ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853 (ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr) 3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15 -(ey)-.1 G(sequence.)108 259.2 Q 1.541(When using the form)108 276 R F2 --.1(ke)4.041 G(yname).1 E F0(:)A F1(function\255name).833 E F0(or)4.041 +(ey)-.1 G(sequence.)108 511.2 Q 1.542(When using the form)108 528 R F2 +-.1(ke)4.042 G(yname).1 E F0(:)A F1(function\255name).833 E F0(or)4.042 E F1(macr)4.042 E(o)-.45 E F0(,)A F1 -.1(ke)4.042 G(yname)-.2 E F0 1.542 -(is the name of a k)4.222 F 1.842 -.15(ey s)-.1 H 1.542(pelled out in) -.15 F 2.5(English. F)108 288 R(or e)-.15 E(xample:)-.15 E -(Control-u: uni)144 312 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E -(Meta-Rubout: backw)144 324 Q(ard-kill-w)-.1 E(ord)-.1 E -(Control-o: "> output")144 336 Q .699(In the abo)108 352.8 R .998 -.15 +(is the name of a k)4.222 F 1.841 -.15(ey s)-.1 H 1.541(pelled out in) +.15 F 2.5(English. F)108 540 R(or e)-.15 E(xample:)-.15 E +(Control-u: uni)144 564 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E +(Meta-Rubout: backw)144 576 Q(ard-kill-w)-.1 E(ord)-.1 E +(Control-o: "> output")144 588 Q .698(In the abo)108 604.8 R .998 -.15 (ve ex)-.15 H(ample,).15 E F1(C\255u)3.038 E F0 .698 (is bound to the function)3.448 F F2(uni)3.198 E -.1(ve)-.1 G (rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M\255DEL)3.878 E F0 .698 -(is bound to the func-)3.728 F(tion)108 364.8 Q F2 -(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F1 -(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259 +(is bound to the func-)3.728 F(tion)108 616.8 Q F2 +(backward\255kill\255w)2.759 E(ord)-.1 E F0 2.759(,a)C(nd)-2.759 E F1 +(C\255o)2.599 E F0 .258(is bound to run the macro e)2.939 F .258 (xpressed on the right hand side \(that is, to)-.15 F(insert the te)108 -376.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0 -(into the line\).)2.5 E .056(In the second form,)108 393.6 R F2("k)2.556 -E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr) -2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055 -(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15 -(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284 -(denoting an entire k)108 405.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\ +628.8 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0 +(into the line\).)2.5 E .055(In the second form,)108 645.6 R F2("k)2.555 +E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.555 E F1(macr) +2.555 E(o)-.45 E F0(,)A F2 -.1(ke)2.555 G(yseq).1 E F0(dif)2.556 E .056 +(fers from)-.25 F F2 -.1(ke)2.556 G(yname).1 E F0(abo)2.556 E .356 -.15 +(ve i)-.15 H 2.556(nt).15 G .056(hat strings)-2.556 F 1.284 +(denoting an entire k)108 657.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\ ay be speci\214ed by placing the sequence within double quotes.).15 F -(Some)6.284 E .386(GNU Emacs style k)108 417.6 R .686 -.15(ey e)-.1 H -.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385 -(xample, b)-.15 F .385(ut the symbolic character names)-.2 F -(are not recognized.)108 429.6 Q("\\C\255u": uni)144 453.6 Q -.15(ve) +(Some)6.284 E .385(GNU Emacs style k)108 669.6 R .685 -.15(ey e)-.1 H +.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .386 +(xample, b)-.15 F .386(ut the symbolic character names)-.2 F +(are not recognized.)108 681.6 Q("\\C\255u": uni)144 705.6 Q -.15(ve) -.25 G(rsal\255ar).15 E(gument)-.18 E -("\\C\255x\\C\255r": re\255read\255init\255\214le)144 465.6 Q -("\\e[11~": "Function K)144 477.6 Q .3 -.15(ey 1)-.25 H(").15 E .314 -(In this e)108 494.4 R(xample,)-.15 E F1(C\255u)2.654 E F0 .314(is ag) -3.064 F .315(ain bound to the function)-.05 F F2(uni)2.815 E -.1(ve)-.1 -G(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0 -.315(is bound to the func-)3.545 F(tion)108 506.4 Q F2 -.18(re)2.5 G -.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1 -(ESC [ 1 1 ~)3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F3 -(Function Key 1)2.5 E F0(.)A -(The full set of GNU Emacs style escape sequences is)108 523.2 Q F2 -<5c43ad>144 535.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144 547.2 Q F0 -(meta pre\214x)18.08 E F2(\\e)144 559.2 Q F0(an escape character)28.78 E -F2(\\\\)144 571.2 Q F0(backslash)30.44 E F2(\\")144 583.2 Q F0 -(literal ")27.67 E F2<5c08>144 595.2 Q F0(literal \010)30.44 E(In addit\ -ion to the GNU Emacs style escape sequences, a second set of backslash \ -escapes is a)108 612 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 624 Q F0 -(alert \(bell\))28.22 E F2(\\b)144 636 Q F0(backspace)27.66 E F2(\\d)144 -648 Q F0(delete)27.66 E F2(\\f)144 660 Q F0(form feed)29.89 E F2(\\n)144 -672 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 684 Q F0(carriage return) -28.78 E F2(\\t)144 696 Q F0(horizontal tab)29.89 E F2(\\v)144 708 Q F0 --.15(ve)28.22 G(rtical tab).15 E(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(34)190.95 E 0 Cg EP +("\\C\255x\\C\255r": re\255read\255init\255\214le)144 717.6 Q +("\\e[11~": "Function K)144 729.6 Q .3 -.15(ey 1)-.25 H(").15 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(34)185.955 E 0 Cg EP %%Page: 35 35 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(\\)144 84 Q/F2 10/Times-Italic@0 SF(nnn)A -F0(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E -(alue)-.25 E F2(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)144 96 -Q F2(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)-.25 -E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5 -(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.142(When entering the te) -108 112.8 R 1.141(xt of a macro, single or double quotes must be used t\ -o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 124.8 R -.089(xt is assumed to be a function name.)-.15 F .09(In the macro body) -5.089 F 2.59(,t)-.65 G .09(he backslash escapes described abo)-2.59 F --.15(ve)-.15 G(are e)108 136.8 Q 2.5(xpanded. Backslash)-.15 F -(will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E -(xt, including " and \010.)-.15 E F1(Bash)108 153.6 Q F0(allo)2.93 E .43 -(ws the current readline k)-.25 F .73 -.15(ey b)-.1 H .429 -(indings to be displayed or modi\214ed with the).15 F F1(bind)2.929 E F0 --.2(bu)2.929 G .429(iltin command.).2 F .045 -(The editing mode may be switched during interacti)108 165.6 R .345 -.15 -(ve u)-.25 H .046(se by using the).15 F F12.546 E F0 .046 -(option to the)2.546 F F1(set)2.546 E F0 -.2(bu)2.546 G .046 -(iltin command).2 F(\(see)108 177.6 Q/F3 9/Times-Bold@0 SF(SHELL B)2.5 E -(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1 -(Readline V)87 194.4 Q(ariables)-.92 E F0 .044(Readline has v)108 206.4 -R .043(ariables that can be used to further customize its beha)-.25 F +-.35 E .315(In this e)108 84 R(xample,)-.15 E/F1 10/Times-Italic@0 SF +(C\255u)2.655 E F0 .315(is ag)3.065 F .315(ain bound to the function) +-.05 F/F2 10/Times-Bold@0 SF(uni)2.815 E -.1(ve)-.1 G(rsal\255ar).1 E +(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0 .314 +(is bound to the func-)3.544 F(tion)108 96 Q F2 -.18(re)2.5 G.18 E +(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)3.01 +E F0(is bound to insert the te)3.94 E(xt)-.15 E/F3 10/Courier@0 SF +(Function Key 1)2.5 E F0(.)A +(The full set of GNU Emacs style escape sequences is)108 112.8 Q F2 +<5c43ad>144 124.8 Q F0(control pre\214x)20.3 E F2<5c4dad>144 136.8 Q F0 +(meta pre\214x)18.08 E F2(\\e)144 148.8 Q F0(an escape character)28.78 E +F2(\\\\)144 160.8 Q F0(backslash)30.44 E F2(\\")144 172.8 Q F0 +(literal ")27.67 E F2<5c08>144 184.8 Q F0(literal \010)30.44 E(In addit\ +ion to the GNU Emacs style escape sequences, a second set of backslash \ +escapes is a)108 201.6 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 213.6 Q +F0(alert \(bell\))28.22 E F2(\\b)144 225.6 Q F0(backspace)27.66 E F2 +(\\d)144 237.6 Q F0(delete)27.66 E F2(\\f)144 249.6 Q F0(form feed)29.89 +E F2(\\n)144 261.6 Q F0(ne)27.66 E(wline)-.25 E F2(\\r)144 273.6 Q F0 +(carriage return)28.78 E F2(\\t)144 285.6 Q F0(horizontal tab)29.89 E F2 +(\\v)144 297.6 Q F0 -.15(ve)28.22 G(rtical tab).15 E F2(\\)144 309.6 Q +F1(nnn)A F0(the eight-bit character whose v)18.22 E(alue is the octal v) +-.25 E(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x) +144 321.6 Q F1(HH)A F0(the eight-bit character whose v)13.78 E +(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0 +(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.141 +(When entering the te)108 338.4 R 1.141(xt of a macro, single or double\ + quotes must be used to indicate a macro de\214nition.)-.15 F .09 +(Unquoted te)108 350.4 R .09(xt is assumed to be a function name.)-.15 F +.089(In the macro body)5.089 F 2.589(,t)-.65 G .089 +(he backslash escapes described abo)-2.589 F -.15(ve)-.15 G(are e)108 +362.4 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G +(ther character in the macro te)-2.5 E(xt, including " and \010.)-.15 E +F2(Bash)108 379.2 Q F0(allo)2.929 E .429(ws the current readline k)-.25 +F .729 -.15(ey b)-.1 H .429 +(indings to be displayed or modi\214ed with the).15 F F2(bind)2.93 E F0 +-.2(bu)2.93 G .43(iltin command.).2 F .046 +(The editing mode may be switched during interacti)108 391.2 R .346 -.15 +(ve u)-.25 H .046(se by using the).15 F F22.545 E F0 .045 +(option to the)2.545 F F2(set)2.545 E F0 -.2(bu)2.545 G .045 +(iltin command).2 F(\(see)108 403.2 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E +(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2 +(Readline V)87 420 Q(ariables)-.92 E F0 .043(Readline has v)108 432 R +.043(ariables that can be used to further customize its beha)-.25 F (vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043 -(riable may be set in the).25 F F2(inpu-)2.553 E(tr)108 218.4 Q(c)-.37 E -F0(\214le with a statement of the form)2.81 E F1(set)144 235.2 Q F2 +(riable may be set in the).25 F F1(inpu-)2.554 E(tr)108 444 Q(c)-.37 E +F0(\214le with a statement of the form)2.81 E F2(set)144 460.8 Q F1 (variable\255name value)2.5 E F0 .79(Except where noted, readline v)108 -252 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F(alues) --.25 E F1(On)3.29 E F0(or)3.29 E F1(Off)3.29 E F0 .79(\(without re)3.29 -F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)5.79 E .449(nized v) -108 264 R .448(ariable names are ignored.)-.25 F .448(When a v)5.448 F -.448(ariable v)-.25 F .448(alue is read, empty or null v)-.25 F .448 -(alues, "on" \(case-insensi-)-.25 F(ti)108 276 Q -.15(ve)-.25 G .467 -(\), and "1" are equi).15 F -.25(va)-.25 G .468(lent to).25 F F1(On) -2.968 E F0 5.468(.A)C .468(ll other v)-5.468 F .468(alues are equi)-.25 -F -.25(va)-.25 G .468(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .468 -(he v)-5.468 F .468(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 -288 S(lues are:).25 E F1(bell\255style \(audible\))108 304.8 Q F0 .011 -(Controls what happens when readline w)144 316.8 R .011 -(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F1(none)2.51 -E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94 -(rings the bell.)144 328.8 R .94(If set to)5.94 F F1(visible)3.44 E F0 -3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va) --.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A -(readline attempts to ring the terminal')144 340.8 Q 2.5(sb)-.55 G(ell.) --2.5 E F1(bind\255tty\255special\255chars \(On\))108 352.8 Q F0 .056 -(If set to)144 364.8 R F1(On)2.556 E F0 2.556(,r)C .056(eadline attempt\ -s to bind the control characters treated specially by the k)-2.556 F -(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 376.8 Q -.15 +477.6 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F +(alues)-.25 E F2(On)3.29 E F0(or)3.29 E F2(Off)3.29 E F0 .79 +(\(without re)3.29 F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-) +5.79 E .448(nized v)108 489.6 R .448(ariable names are ignored.)-.25 F +.448(When a v)5.448 F .448(ariable v)-.25 F .448 +(alue is read, empty or null v)-.25 F .449(alues, "on" \(case-insensi-) +-.25 F(ti)108 501.6 Q -.15(ve)-.25 G .468(\), and "1" are equi).15 F +-.25(va)-.25 G .468(lent to).25 F F2(On)2.968 E F0 5.468(.A)C .468 +(ll other v)-5.468 F .468(alues are equi)-.25 F -.25(va)-.25 G .468 +(lent to).25 F F2(Off)2.968 E F0 5.468(.T)C .467(he v)-5.468 F .467 +(ariables and their def)-.25 F(ault)-.1 E -.25(va)108 513.6 S(lues are:) +.25 E F2(bell\255style \(audible\))108 530.4 Q F0 .01 +(Controls what happens when readline w)144 542.4 R .011 +(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F2(none) +2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E +.94(rings the bell.)144 554.4 R .94(If set to)5.94 F F2(visible)3.44 E +F0 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25 +(va)-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F2(audible)3.44 E F0 +(,)A(readline attempts to ring the terminal')144 566.4 Q 2.5(sb)-.55 G +(ell.)-2.5 E F2(bind\255tty\255special\255chars \(On\))108 578.4 Q F0 +.055(If set to)144 590.4 R F2(On)2.555 E F0 2.555(,r)C .056(eadline att\ +empts to bind the control characters treated specially by the k)-2.555 F +(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 602.4 Q -.15 (ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va) --.25 G(lents.).25 E F1(comment\255begin \(`)108 388.8 Q(`#')-.63 E('\)) --.63 E F0 .884(The string that is inserted when the readline)144 400.8 R -F1(insert\255comment)3.385 E F0 .885(command is e)3.385 F -.15(xe)-.15 G -3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 412.8 Q F1 -(M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0 -(in vi command mode.)2.5 E F1(completion\255ignor)108 424.8 Q -(e\255case \(Off\))-.18 E F0(If set to)144 436.8 Q F1(On)2.5 E F0 2.5 +-.25 G(lents.).25 E F2(comment\255begin \(`)108 614.4 Q(`#')-.63 E('\)) +-.63 E F0 .885(The string that is inserted when the readline)144 626.4 R +F2(insert\255comment)3.385 E F0 .884(command is e)3.384 F -.15(xe)-.15 G +3.384(cuted. This).15 F(com-)3.384 E(mand is bound to)144 638.4 Q F2 +(M\255#)2.5 E F0(in emacs mode and to)2.5 E F2(#)2.5 E F0 +(in vi command mode.)2.5 E F2(completion\255ignor)108 650.4 Q +(e\255case \(Off\))-.18 E F0(If set to)144 662.4 Q F2(On)2.5 E F0 2.5 (,r)C(eadline performs \214lename matching and completion in a case\255\ -insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1(completion\255pr) -108 448.8 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length\ +insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F2(completion\255pr) +108 674.4 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length\ in characters of the common pre\214x of a list of possible completions\ - that is displayed)144 460.8 R 1.274(without modi\214cation.)144 472.8 R -1.274(When set to a v)6.274 F 1.274 -(alue greater than zero, common pre\214x)-.25 F 1.275 -(es longer than this)-.15 F -.25(va)144 484.8 S(lue are replaced with a\ -n ellipsis when displaying possible completions.).25 E F1 -(completion\255query\255items \(100\))108 496.8 Q F0 .53 -(This determines when the user is queried about vie)144 508.8 R .529 -(wing the number of possible completions gen-)-.25 F .56(erated by the) -144 520.8 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F -.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v) --.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 532.8 R -.783(If the number of possible completions is greater than or equal to \ -the v)5.783 F .782(alue of this)-.25 F -.25(va)144 544.8 S .237 -(riable, the user is ask).25 F .237(ed whether or not he wishes to vie) --.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G -.237(re simply listed)-2.737 F(on the terminal.)144 556.8 Q F1(con)108 -568.8 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 580.8 -R F1(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4 -G .613(rt characters with the eighth bit set to an ASCII k).15 F .912 --.15(ey s)-.1 H .612(equence by).15 F .541 -(stripping the eighth bit and pre\214xing an escape character \(in ef) -144 592.8 R .541(fect, using escape as the)-.25 F F2 .542(meta pr)3.042 -F(e-)-.37 E<8c78>144 604.8 Q F0(\).)A F1(disable\255completion \(Off\)) -108 616.8 Q F0 .038(If set to)144 628.8 R F1(On)2.538 E F0 2.538(,r)C -.038(eadline will inhibit w)-2.538 F .038(ord completion.)-.1 F .038 -(Completion characters will be inserted into the)5.038 F(line as if the) -144 640.8 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E -F0(.)A F1(editing\255mode \(emacs\))108 652.8 Q F0 .252 -(Controls whether readline be)144 664.8 R .253(gins with a set of k)-.15 -F .553 -.15(ey b)-.1 H .253(indings similar to).15 F F2(emacs)2.753 E F0 -(or)2.753 E F2(vi)2.753 E F0(.)A F1(editing\255mode)5.253 E F0 -(can be set to either)144 676.8 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E -F0(.)A F1(enable\255k)108 688.8 Q(eypad \(Off\))-.1 E F0 .893 -(When set to)144 700.8 R F1(On)3.393 E F0 3.393(,r)C .893 -(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G -.893(pad when it is called.).15 F .892(Some sys-)5.893 F -(tems need this to enable the arro)144 712.8 Q 2.5(wk)-.25 G -.15(ey) --2.6 G(s.).15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(35)190.95 -E 0 Cg EP + that is displayed)144 686.4 R 1.275(without modi\214cation.)144 698.4 R +1.275(When set to a v)6.275 F 1.274 +(alue greater than zero, common pre\214x)-.25 F 1.274 +(es longer than this)-.15 F -.25(va)144 710.4 S(lue are replaced with a\ +n ellipsis when displaying possible completions.).25 E(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(35)185.955 E 0 Cg EP %%Page: 36 36 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(expand\255tilde \(Off\))108 84 Q F0 -(If set to)144 96 Q F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E -(xpansion is performed when readline attempts w)-.15 E(ord completion.) --.1 E F1(history\255pr)108 108 Q(eser)-.18 E -.1(ve)-.1 G -(\255point \(Off\)).1 E F0 1.492(If set to)144 120 R F1(on)3.992 E F0 -3.992(,t)C 1.493(he history code attempts to place point at the same lo\ -cation on each history line)-3.992 F(retrie)144 132 Q -.15(ve)-.25 G 2.5 -(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0 -(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(0\))108 144 -Q F0 .463(Set the maximum number of history entries sa)144 156 R -.15 -(ve)-.2 G 2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963 -F .462(If set to zero, the number of)5.463 F -(entries in the history list is not limited.)144 168 Q F1 -(horizontal\255scr)108 180 Q(oll\255mode \(Off\))-.18 E F0 .448 -(When set to)144 192 R F1(On)2.948 E F0 2.948(,m)C(ak)-2.948 E .448 -(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449 +-.35 E/F1 10/Times-Bold@0 SF(completion\255query\255items \(100\))108 84 +Q F0 .529(This determines when the user is queried about vie)144 96 R +.53(wing the number of possible completions gen-)-.25 F .561 +(erated by the)144 108 R F1(possible\255completions)3.061 E F0 3.061 +(command. It)3.061 F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte) +-3.06 E .56(ger v)-.15 F .56(alue greater than or)-.25 F .782 +(equal to zero.)144 120 R .783(If the number of possible completions is\ + greater than or equal to the v)5.782 F .783(alue of this)-.25 F -.25 +(va)144 132 S .237(riable, the user is ask).25 F .237 +(ed whether or not he wishes to vie)-.1 F 2.737(wt)-.25 G .237 +(hem; otherwise the)-2.737 F 2.737(ya)-.15 G .237(re simply listed) +-2.737 F(on the terminal.)144 144 Q F1(con)108 156 Q -.1(ve)-.4 G +(rt\255meta \(On\)).1 E F0 .612(If set to)144 168 R F1(On)3.112 E F0 +3.112(,r)C .613(eadline will con)-3.112 F -.15(ve)-.4 G .613 +(rt characters with the eighth bit set to an ASCII k).15 F .913 -.15 +(ey s)-.1 H .613(equence by).15 F .541 +(stripping the eighth bit and pre\214xing an escape character \(in ef) +144 180 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 SF +.541(meta pr)3.041 F(e-)-.37 E<8c78>144 192 Q F0(\).)A F1 +(disable\255completion \(Off\))108 204 Q F0 .038(If set to)144 216 R F1 +(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538 F .038 +(ord completion.)-.1 F .038 +(Completion characters will be inserted into the)5.038 F(line as if the) +144 228 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0 +(.)A F1(editing\255mode \(emacs\))108 240 Q F0 .253 +(Controls whether readline be)144 252 R .253(gins with a set of k)-.15 F +.553 -.15(ey b)-.1 H .253(indings similar to).15 F F2(emacs)2.752 E F0 +(or)2.752 E F2(vi)2.752 E F0(.)A F1(editing\255mode)5.252 E F0 +(can be set to either)144 264 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E +F0(.)A F1(echo\255contr)108 276 Q(ol\255characters \(On\))-.18 E F0 1.21 +(When set to)144 288 R F1(On)3.71 E F0 3.71(,o)C 3.71(no)-3.71 G 1.211 +(perating systems that indicate the)-3.71 F 3.711(ys)-.15 G 1.211 +(upport it, readline echoes a character)-3.711 F +(corresponding to a signal generated from the k)144 300 Q -.15(ey)-.1 G +(board.).15 E F1(enable\255k)108 312 Q(eypad \(Off\))-.1 E F0 .893 +(When set to)144 324 R F1(On)3.393 E F0 3.393(,r)C .893 +(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G +.893(pad when it is called.).15 F .892(Some sys-)5.893 F +(tems need this to enable the arro)144 336 Q 2.5(wk)-.25 G -.15(ey)-2.6 +G(s.).15 E F1(enable\255meta\255k)108 348 Q(ey \(On\))-.1 E F0 .64 +(When set to)144 360 R F1(On)3.14 E F0 3.14(,r)C .64 +(eadline will try to enable an)-3.14 F 3.14(ym)-.15 G .64 +(eta modi\214er k)-3.14 F .94 -.15(ey t)-.1 H .64 +(he terminal claims to support).15 F(when it is called.)144 372 Q +(On man)5 E 2.5(yt)-.15 G(erminals, the meta k)-2.5 E .3 -.15(ey i)-.1 H +2.5(su).15 G(sed to send eight-bit characters.)-2.5 E F1 +(expand\255tilde \(Off\))108 384 Q F0(If set to)144 396 Q F1(on)2.5 E F0 +2.5(,t)C(ilde e)-2.5 E(xpansion is performed when readline attempts w) +-.15 E(ord completion.)-.1 E F1(history\255pr)108 408 Q(eser)-.18 E -.1 +(ve)-.1 G(\255point \(Off\)).1 E F0 1.493(If set to)144 420 R F1(on) +3.993 E F0 3.993(,t)C 1.493(he history code attempts to place point at \ +the same location on each history line)-3.993 F(retrie)144 432 Q -.15 +(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G +(ious-history).15 E F0(or)2.5 E F1(next-history)2.5 E F0(.)A F1 +(history\255size \(0\))108 444 Q F0 .462 +(Set the maximum number of history entries sa)144 456 R -.15(ve)-.2 G +2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963 F .463 +(If set to zero, the number of)5.463 F +(entries in the history list is not limited.)144 468 Q F1 +(horizontal\255scr)108 480 Q(oll\255mode \(Off\))-.18 E F0 .449 +(When set to)144 492 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448 +(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448 (crolling the input horizontally on a)-2.948 F 1.194(single screen line\ when it becomes longer than the screen width rather than wrapping to a\ - ne)144 204 R(w)-.25 E(line.)144 216 Q F1(input\255meta \(Off\))108 228 -Q F0 .227(If set to)144 240 R F1(On)2.727 E F0 2.727(,r)C .228(eadline \ + ne)144 504 R(w)-.25 E(line.)144 516 Q F1(input\255meta \(Off\))108 528 +Q F0 .228(If set to)144 540 R F1(On)2.728 E F0 2.728(,r)C .227(eadline \ will enable eight-bit input \(that is, it will not strip the high bit f\ -rom the char)-2.727 F(-)-.2 E .957(acters it reads\), re)144 252 R -.05 +rom the char)-2.728 F(-)-.2 E .956(acters it reads\), re)144 552 R -.05 (ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F -.956(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F -(synon)144 264 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 276 Q +.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F +(synon)144 564 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 576 Q (ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))-.63 E F0 .439(\ The string of characters that should terminate an incremental search wi\ -thout subsequently e)144 288 R -.15(xe)-.15 G(cut-).15 E .935 -(ing the character as a command.)144 300 R .935(If this v)5.935 F .935 -(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934 -(alue, the characters)-3.684 F/F2 10/Times-Italic@0 SF(ESC)3.434 E F0 -(and)144 312 Q F2(C\255J)2.5 E F0(will terminate an incremental search.) -2.5 E F1 -.1(ke)108 324 S(ymap \(emacs\)).1 E F0 2.02 -(Set the current readline k)144 336 R -.15(ey)-.1 G 4.521(map. The).15 F -2.021(set of v)4.521 F 2.021(alid k)-.25 F -.15(ey)-.1 G 2.021 -(map names is).15 F F2 2.021(emacs, emacs\255standar)4.521 F(d,)-.37 E -.069(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 348 R F0 2.568 -(,a)C(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0 -.068(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command) -2.568 E F0(;)A F2(emacs)2.568 E F0 1.543(is equi)144 360 R -.25(va)-.25 -G 1.543(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C +thout subsequently e)144 588 R -.15(xe)-.15 G(cut-).15 E .934 +(ing the character as a command.)144 600 R .935(If this v)5.935 F .935 +(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.435(nav).15 G .935 +(alue, the characters)-3.685 F F2(ESC)3.435 E F0(and)144 612 Q F2 +(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke) +108 624 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144 +636 R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021 +(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.02 +(emacs, emacs\255standar)4.52 F(d,)-.37 E .068 +(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 648 R F0 2.568(,a)C +(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0 .068 +(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command) +2.569 E F0(;)A F2(emacs)2.569 E F0 1.544(is equi)144 660 R -.25(va)-.25 +G 1.544(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C 1.544(he def)-6.544 F 1.544(ault v)-.1 F 1.544(alue is)-.25 F F2(emacs) 4.044 E F0 4.044(;t).27 G 1.544(he v)-4.044 F 1.544(alue of)-.25 F F1 -(editing\255mode)4.044 E F0(also)4.044 E(af)144 372 Q(fects the def)-.25 -E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 384 Q -(ectories \(On\))-.18 E F0(If set to)144 396 Q F1(On)2.5 E F0 2.5(,c)C +(editing\255mode)4.043 E F0(also)4.043 E(af)144 672 Q(fects the def)-.25 +E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 684 Q +(ectories \(On\))-.18 E F0(If set to)144 696 Q F1(On)2.5 E F0 2.5(,c)C (ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.) -.15 E F1(mark\255modi\214ed\255lines \(Off\))108 408 Q F0(If set to)144 -420 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b) --.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1 -(*)A F0(\).)A F1(mark\255symlink)108 432 Q(ed\255dir)-.1 E -(ectories \(Off\))-.18 E F0 .175(If set to)144 444 R F1(On)2.675 E F0 -2.675(,c)C .175 +.15 E(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(36)185.955 E 0 Cg +EP +%%Page: 37 37 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(mark\255modi\214ed\255lines \(Off\))108 84 +Q F0(If set to)144 96 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha) +-2.5 E .3 -.15(ve b)-.2 H +(een modi\214ed are displayed with a preceding asterisk \().15 E F1(*)A +F0(\).)A F1(mark\255symlink)108 108 Q(ed\255dir)-.1 E(ectories \(Off\)) +-.18 E F0 .175(If set to)144 120 R F1(On)2.675 E F0 2.675(,c)C .175 (ompleted names which are symbolic links to directories ha)-2.675 F .475 --.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 456 +-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 132 Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1 -(match\255hidden\255\214les \(On\))108 468 Q F0 .192(This v)144 480 R -.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192 -(auses readline to match \214les whose names be)-2.692 F .193 -(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E 1.024 +(match\255hidden\255\214les \(On\))108 144 Q F0 .193(This v)144 156 R +.193(ariable, when set to)-.25 F F1(On)2.693 E F0 2.693(,c)C .192 +(auses readline to match \214les whose names be)-2.693 F .192 +(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E 1.023 (\214les\) when performing \214lename completion, unless the leading `.) -144 492 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.023 -(upplied by the user in the)-3.523 F(\214lename to be completed.)144 504 -Q F1(output\255meta \(Off\))108 516 Q F0 .506(If set to)144 528 R F1(On) -3.006 E F0 3.006(,r)C .507(eadline will display characters with the eig\ -hth bit set directly rather than as a meta-)-3.006 F(pre\214x)144 540 Q -(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 552 Q F0 -.809(If set to)144 564 R F1(On)3.308 E F0 3.308(,r)C .808 -(eadline uses an internal)-3.308 F F2(mor)3.308 E(e)-.37 E F0(-lik)A -3.308(ep)-.1 G .808(ager to display a screenful of possible comple-) --3.308 F(tions at a time.)144 576 Q F1 -(print\255completions\255horizontally \(Off\))108 588 Q F0 1.318 -(If set to)144 600 R F1(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\ -play completions with matches sorted horizontally in alphabetical)-3.818 -F(order)144 612 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25 -E F1 -2.29 -.18(re v)108 624 T(ert\255all\255at\255newline \(Off\)).08 E -F0 .873(If set to)144 636 R F1(on)3.373 E F0 3.373(,r)C .872 +144 168 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.024 +(upplied by the user in the)-3.523 F(\214lename to be completed.)144 180 +Q F1(output\255meta \(Off\))108 192 Q F0 .507(If set to)144 204 R F1(On) +3.007 E F0 3.007(,r)C .507(eadline will display characters with the eig\ +hth bit set directly rather than as a meta-)-3.007 F(pre\214x)144 216 Q +(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 228 Q F0 +.808(If set to)144 240 R F1(On)3.308 E F0 3.308(,r)C .808 +(eadline uses an internal)-3.308 F/F2 10/Times-Italic@0 SF(mor)3.308 E +(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808 +(ager to display a screenful of possible comple-)-3.308 F +(tions at a time.)144 252 Q F1 +(print\255completions\255horizontally \(Off\))108 264 Q F0 1.319 +(If set to)144 276 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\ +play completions with matches sorted horizontally in alphabetical)-3.819 +F(order)144 288 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25 +E F1 -2.29 -.18(re v)108 300 T(ert\255all\255at\255newline \(Off\)).08 E +F0 .872(If set to)144 312 R F1(on)3.372 E F0 3.372(,r)C .873 (eadline will undo all changes to history lines before returning when) --3.373 F F1(accept\255line)3.372 E F0(is)3.372 E -.15(exe)144 648 S +-3.372 F F1(accept\255line)3.373 E F0(is)3.373 E -.15(exe)144 324 S 2.686(cuted. By).15 F(def)2.686 E .186 (ault, history lines may be modi\214ed and retain indi)-.1 F .186 -(vidual undo lists across calls to)-.25 F F1 -.18(re)144 660 S(adline) -.18 E F0(.)A F1(sho)108 672 Q(w\255all\255if\255ambiguous \(Off\))-.1 E -F0 .478(This alters the def)144 684 R .478(ault beha)-.1 F .478 -(vior of the completion functions.)-.2 F .477(If set to)5.477 F F1(on) -2.977 E F0 2.977(,w)C .477(ords which ha)-3.077 F .777 -.15(ve m)-.2 H +(vidual undo lists across calls to)-.25 F F1 -.18(re)144 336 S(adline) +.18 E F0(.)A F1(sho)108 348 Q(w\255all\255if\255ambiguous \(Off\))-.1 E +F0 .477(This alters the def)144 360 R .477(ault beha)-.1 F .477 +(vior of the completion functions.)-.2 F .478(If set to)5.478 F F1(on) +2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.15(ve m)-.2 H (ore).15 E 1.264(than one possible completion cause the matches to be l\ -isted immediately instead of ringing the)144 696 R(bell.)144 708 Q -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(36)190.95 E 0 Cg EP -%%Page: 37 37 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(sho)108 84 Q -(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346 -(This alters the def)144 96 R 5.346(ault beha)-.1 F 5.345 -(vior of the completion functions in a f)-.2 F 5.345(ashion similar to) --.1 F F1(sho)144 108 Q(w\255all\255if\255ambiguous)-.1 E F0 6.922(.I)C -4.422(fs)-6.922 G 1.922(et to)-4.422 F F1(on)4.422 E F0 4.422(,w)C 1.922 -(ords which ha)-4.522 F 2.223 -.15(ve m)-.2 H 1.923 -(ore than one possible completion).15 F 1.04(without an)144 120 R 3.54 +isted immediately instead of ringing the)144 372 R(bell.)144 384 Q F1 +(sho)108 396 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345 +(This alters the def)144 408 R 5.345(ault beha)-.1 F 5.345 +(vior of the completion functions in a f)-.2 F 5.346(ashion similar to) +-.1 F F1(sho)144 420 Q(w\255all\255if\255ambiguous)-.1 E F0 6.923(.I)C +4.423(fs)-6.923 G 1.923(et to)-4.423 F F1(on)4.423 E F0 4.423(,w)C 1.923 +(ords which ha)-4.523 F 2.222 -.15(ve m)-.2 H 1.922 +(ore than one possible completion).15 F 1.039(without an)144 432 R 3.539 (yp)-.15 G 1.039 -(ossible partial completion \(the possible completions don')-3.54 F -3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\ -es to be listed immediately instead of ringing the bell.)144 132 Q F1 -(visible\255stats \(Off\))108 144 Q F0 .846(If set to)144 156 R F1(On) +(ossible partial completion \(the possible completions don')-3.539 F +3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\ +s to be listed immediately instead of ringing the bell.)144 444 Q F1 +(skip\255completed\255text \(Off\))108 456 Q F0 .095(If set to)144 468 R +F1(On)2.595 E F0 2.595(,t)C .095(his alters the def)-2.595 F .095 +(ault completion beha)-.1 F .094 +(vior when inserting a single match into the line.)-.2 F(It')144 480 Q +2.545(so)-.55 G .045(nly acti)-2.545 F .345 -.15(ve w)-.25 H .046 +(hen performing completion in the middle of a w).15 F 2.546(ord. If)-.1 +F .046(enabled, readline does not)2.546 F 1.394(insert characters from \ +the completion that match characters after point in the w)144 492 R +1.394(ord being com-)-.1 F(pleted, so portions of the w)144 504 Q +(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F1 +(visible\255stats \(Off\))108 516 Q F0 .846(If set to)144 528 R F1(On) 3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346 -(st)-.55 G .846(ype as reported by)-3.346 F/F2 10/Times-Italic@0 SF -(stat)3.346 E F0 .846(\(2\) is appended to the \214lename)B -(when listing possible completions.)144 168 Q F1 -(Readline Conditional Constructs)87 184.8 Q F0 .05 -(Readline implements a f)108 196.8 R .05(acility similar in spirit to t\ +(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846 +(\(2\) is appended to the \214lename)B +(when listing possible completions.)144 540 Q F1 +(Readline Conditional Constructs)87 556.8 Q F0 .05 +(Readline implements a f)108 568.8 R .05(acility similar in spirit to t\ he conditional compilation features of the C preprocessor)-.1 F .096 -(which allo)108 208.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096 +(which allo)108 580.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096 (indings and v).15 F .096 (ariable settings to be performed as the result of tests.)-.25 F .097 -(There are four parser)5.096 F(directi)108 220.8 Q -.15(ve)-.25 G 2.5 -(su).15 G(sed.)-2.5 E F1($if)108 237.6 Q F0(The)24.89 E F1($if)2.963 E +(There are four parser)5.096 F(directi)108 592.8 Q -.15(ve)-.25 G 2.5 +(su).15 G(sed.)-2.5 E F1($if)108 609.6 Q F0(The)24.89 E F1($if)2.963 E F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\ editing mode, the terminal being used,)-.25 F .477 -(or the application using readline.)144 249.6 R .477(The te)5.477 F .477 +(or the application using readline.)144 621.6 R .477(The te)5.477 F .477 (xt of the test e)-.15 F .477 (xtends to the end of the line; no characters)-.15 F -(are required to isolate it.)144 261.6 Q F1(mode)144 278.4 Q F0(The) +(are required to isolate it.)144 633.6 Q F1(mode)144 650.4 Q F0(The) 12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0 (directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211 (sed to test whether readline is in emacs or vi)-3.711 F 3.065 -(mode. This)180 290.4 R .565(may be used in conjunction with the)3.065 F +(mode. This)180 662.4 R .565(may be used in conjunction with the)3.065 F F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to) -3.065 F .735(set bindings in the)180 302.4 R F2(emacs\255standar)3.235 E +3.065 F .735(set bindings in the)180 674.4 R F2(emacs\255standar)3.235 E (d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)3.235 E F0 -.1(ke)3.235 G .735 -(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 314.4 -Q F1(term)144 331.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696 +(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 686.4 +Q F1(term)144 703.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696 (form may be used to include terminal-speci\214c k)3.196 F .996 -.15 -(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 343.2 R +(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 715.2 R .954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154 (sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1 -(wo)3.154 G .654(rd on the right side of).1 F(the)180 355.2 Q F1(=)3.231 +(wo)3.154 G .654(rd on the right side of).1 F(the)180 727.2 Q F1(=)3.231 E F0 .731(is tested ag)3.231 F .732(ainst the both full name of the ter\ -minal and the portion of the terminal)-.05 F(name before the \214rst)180 -367.2 Q F12.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0 +minal and the portion of the terminal)-.05 F(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(37)185.955 E 0 Cg EP +%%Page: 38 38 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E(name before the \214rst)180 84 Q/F1 10/Times-Bold@0 SF2.5 E +F0 5(.T)C(his allo)-5 E(ws)-.25 E/F2 10/Times-Italic@0 SF(sun)2.84 E F0 (to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.5 E F0 -2.5(,f).77 G(or instance.)-2.5 E F1(application)144 384 Q F0(The)180 396 -Q F1(application)3.003 E F0 .503 +2.5(,f).77 G(or instance.)-2.5 E F1(application)144 100.8 Q F0(The)180 +112.8 Q F1(application)3.003 E F0 .503 (construct is used to include application-speci\214c settings.)3.003 F .503(Each program)5.503 F .114(using the readline library sets the)180 -408 R F2 .114(application name)2.614 F F0 2.614(,a)C .114 +124.8 R F2 .114(application name)2.614 F F0 2.614(,a)C .114 (nd an initialization \214le can test for a)-2.614 F .501(particular v) -180 420 R 3.001(alue. This)-.25 F .501(could be used to bind k)3.001 F +180 136.8 R 3.001(alue. This)-.25 F .501(could be used to bind k)3.001 F .801 -.15(ey s)-.1 H .5(equences to functions useful for a spe-).15 F -.396(ci\214c program.)180 432 R -.15(Fo)5.396 G 2.896(ri).15 G .396 +.396(ci\214c program.)180 148.8 R -.15(Fo)5.396 G 2.896(ri).15 G .396 (nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15 -(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 444 Q -(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 468 Q F0(Bash)2.5 E 2.5 -(#Q)180 480 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E -("\\C\255xq": "\\eb\\"\\ef\\"")180 492 Q F1($endif)180 504 Q($endif)108 -520.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E +(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 160.8 +Q(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 184.8 Q F0(Bash)2.5 E 2.5 +(#Q)180 196.8 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E +("\\C\255xq": "\\eb\\"\\ef\\"")180 208.8 Q F1($endif)180 220.8 Q($endif) +108 237.6 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E (xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else) -108 537.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0 +108 254.4 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0 (directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G -(cuted if the test f).15 E(ails.)-.1 E F1($include)108 554.4 Q F0 .357 -(This directi)144 566.4 R .657 -.15(ve t)-.25 H(ak).15 E .357 +(cuted if the test f).15 E(ails.)-.1 E F1($include)108 271.2 Q F0 .357 +(This directi)144 283.2 R .657 -.15(ve t)-.25 H(ak).15 E .357 (es a single \214lename as an ar)-.1 F .356 (gument and reads commands and bindings from that)-.18 F 2.5(\214le. F) -144 578.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3 +144 295.2 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3 -.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1 -($include)144 602.4 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 619.2 Q -(ching)-.18 E F0 .834(Readline pro)108 631.2 R .834 +($include)144 319.2 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 336 Q +(ching)-.18 E F0 .834(Readline pro)108 348 R .834 (vides commands for searching through the command history \(see)-.15 F /F3 9/Times-Bold@0 SF(HIST)3.335 E(OR)-.162 E(Y)-.315 E F0(belo)3.085 E -.835(w\) for lines)-.25 F(containing a speci\214ed string.)108 643.2 Q +.835(w\) for lines)-.25 F(containing a speci\214ed string.)108 360 Q (There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E (emental)-.37 E F0(and)3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 -E .698(Incremental searches be)108 660 R .698 +E .698(Incremental searches be)108 376.8 R .698 (gin before the user has \214nished typing the search string.)-.15 F .697(As each character of the)5.697 F .112 -(search string is typed, readline displays the ne)108 672 R .112 +(search string is typed, readline displays the ne)108 388.8 R .112 (xt entry from the history matching the string typed so f)-.15 F(ar)-.1 E 5.113(.A)-.55 G(n)-5.113 E .542 -(incremental search requires only as man)108 684 R 3.042(yc)-.15 G .542 -(haracters as needed to \214nd the desired history entry)-3.042 F 5.541 -(.T)-.65 G .541(he char)-5.541 F(-)-.2 E .224(acters present in the v) -108 696 R .224(alue of the)-.25 F F1(isear)2.724 E(ch-terminators)-.18 E -F0 -.25(va)2.724 G .224 +(incremental search requires only as man)108 400.8 R 3.042(yc)-.15 G +.542(haracters as needed to \214nd the desired history entry)-3.042 F +5.541(.T)-.65 G .541(he char)-5.541 F(-)-.2 E .224 +(acters present in the v)108 412.8 R .224(alue of the)-.25 F F1(isear) +2.724 E(ch-terminators)-.18 E F0 -.25(va)2.724 G .224 (riable are used to terminate an incremental search.).25 F .66 -(If that v)108 708 R .66(ariable has not been assigned a v)-.25 F .66 +(If that v)108 424.8 R .66(ariable has not been assigned a v)-.25 F .66 (alue the Escape and Control-J characters will terminate an incre-)-.25 -F .096(mental search.)108 720 R .096(Control-G will abort an incrementa\ -l search and restore the original line.)5.096 F .097(When the search is) -5.097 F(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(37)190.95 E 0 Cg -EP -%%Page: 38 38 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(terminated, the history entry containing the search string becom\ -es the current line.)108 84 Q 2.939 -.8(To \214)108 100.8 T 1.339(nd ot\ -her matching entries in the history list, type Control-S or Control-R a\ -s appropriate.).8 F 1.338(This will)6.338 F .674(search backw)108 112.8 -R .674(ard or forw)-.1 F .674(ard in the history for the ne)-.1 F .675 +F .096(mental search.)108 436.8 R .096(Control-G will abort an incremen\ +tal search and restore the original line.)5.096 F .097 +(When the search is)5.097 F(terminated, the history entry containing th\ +e search string becomes the current line.)108 448.8 Q 2.939 -.8(To \214) +108 465.6 T 1.339(nd other matching entries in the history list, type C\ +ontrol-S or Control-R as appropriate.).8 F 1.338(This will)6.338 F .674 +(search backw)108 477.6 R .674(ard or forw)-.1 F .674 +(ard in the history for the ne)-.1 F .675 (xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.675 -(.A)-.55 G -.15(ny)-5.675 G .175(other k)108 124.8 R .475 -.15(ey s)-.1 +(.A)-.55 G -.15(ny)-5.675 G .175(other k)108 489.6 R .475 -.15(ey s)-.1 H .174 (equence bound to a readline command will terminate the search and e).15 F -.15(xe)-.15 G .174(cute that command.).15 F -.15(Fo)5.174 G(r).15 E -.54(instance, a)108 136.8 R/F1 10/Times-Italic@0 SF(ne)3.04 E(wline)-.15 -E F0 .541(will terminate the search and accept the line, thereby e)3.04 -F -.15(xe)-.15 G .541(cuting the command from the).15 F(history list.) -108 148.8 Q .653(Readline remembers the last incremental search string.) -108 165.6 R .653(If tw)5.653 F 3.153(oC)-.1 G .653 +.54(instance, a)108 501.6 R F2(ne)3.04 E(wline)-.15 E F0 .541 +(will terminate the search and accept the line, thereby e)3.04 F -.15 +(xe)-.15 G .541(cuting the command from the).15 F(history list.)108 +513.6 Q .653(Readline remembers the last incremental search string.)108 +530.4 R .653(If tw)5.653 F 3.153(oC)-.1 G .653 (ontrol-Rs are typed without an)-3.153 F 3.152(yi)-.15 G(nterv)-3.152 E -(en-)-.15 E(ing characters de\214ning a ne)108 177.6 Q 2.5(ws)-.25 G +(en-)-.15 E(ing characters de\214ning a ne)108 542.4 Q 2.5(ws)-.25 G (earch string, an)-2.5 E 2.5(yr)-.15 G(emembered search string is used.) -2.5 E .567(Non-incremental searches read the entire search string befo\ -re starting to search for matching history lines.)108 194.4 R(The searc\ +re starting to search for matching history lines.)108 559.2 R(The searc\ h string may be typed by the user or be part of the contents of the cur\ -rent line.)108 206.4 Q/F2 10/Times-Bold@0 SF(Readline Command Names)87 -223.2 Q F0 1.392(The follo)108 235.2 R 1.391 +rent line.)108 571.2 Q F1(Readline Command Names)87 588 Q F0 1.392 +(The follo)108 600 R 1.391 (wing is a list of the names of the commands and the def)-.25 F 1.391 (ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F -3.891(ya)-.15 G(re)-3.891 E 2.621(bound. Command)108 247.2 R .121 +3.891(ya)-.15 G(re)-3.891 E 2.621(bound. Command)108 612 R .121 (names without an accompan)2.621 F .121(ying k)-.15 F .421 -.15(ey s)-.1 H .122(equence are unbound by def).15 F 2.622(ault. In)-.1 F .122 -(the follo)2.622 F(wing)-.25 E(descriptions,)108 259.2 Q F1(point)3.411 -E F0 .911(refers to the current cursor position, and)3.411 F F1(mark) -3.411 E F0 .91(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.41 -(db).15 G 3.41(yt)-3.41 G(he)-3.41 E F2(set\255mark)108 271.2 Q F0 2.5 +(the follo)2.622 F(wing)-.25 E(descriptions,)108 624 Q F2(point)3.411 E +F0 .911(refers to the current cursor position, and)3.411 F F2(mark)3.411 +E F0 .91(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.41(db) +.15 G 3.41(yt)-3.41 G(he)-3.41 E F1(set\255mark)108 636 Q F0 2.5 (command. The)2.5 F(te)2.5 E -(xt between the point and mark is referred to as the)-.15 E F1 -.37(re) -2.5 G(gion)-.03 E F0(.)A F2(Commands f)87 288 Q(or Mo)-.25 E(ving)-.1 E -(beginning\255of\255line \(C\255a\))108 300 Q F0(Mo)144 312 Q .3 -.15 -(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F2 -(end\255of\255line \(C\255e\))108 324 Q F0(Mo)144 336 Q .3 -.15(ve t) --.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F2 -.25(fo)108 348 S -(rward\255char \(C\255f\)).25 E F0(Mo)144 360 Q .3 -.15(ve f)-.15 H(orw) -.15 E(ard a character)-.1 E(.)-.55 E F2(backward\255char \(C\255b\))108 -372 Q F0(Mo)144 384 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E -F2 -.25(fo)108 396 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 408 -Q .822 -.15(ve f)-.15 H(orw).15 E .522(ard to the end of the ne)-.1 F -.523(xt w)-.15 F 3.023(ord. W)-.1 F .523 +(xt between the point and mark is referred to as the)-.15 E F2 -.37(re) +2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 652.8 Q(or Mo)-.25 E(ving)-.1 +E(beginning\255of\255line \(C\255a\))108 664.8 Q F0(Mo)144 676.8 Q .3 +-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1 +(end\255of\255line \(C\255e\))108 688.8 Q F0(Mo)144 700.8 Q .3 -.15 +(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E(GNU Bash-4.1)72 768 +Q(2009 December 29)135.965 E(38)185.955 E 0 Cg EP +%%Page: 39 39 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF -.25(fo)108 84 S(rward\255char \(C\255f\)) +.25 E F0(Mo)144 96 Q .3 -.15(ve f)-.15 H(orw).15 E(ard a character)-.1 E +(.)-.55 E F1(backward\255char \(C\255b\))108 108 Q F0(Mo)144 120 Q .3 +-.15(ve b)-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 132 S +(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 144 Q .822 -.15(ve f) +-.15 H(orw).15 E .522(ard to the end of the ne)-.1 F .523(xt w)-.15 F +3.023(ord. W)-.1 F .523 (ords are composed of alphanumeric characters \(let-)-.8 F -(ters and digits\).)144 420 Q F2(backward\255w)108 432 Q(ord \(M\255b\)) --.1 E F0(Mo)144 444 Q 1.71 -.15(ve b)-.15 H 1.41 +(ters and digits\).)144 156 Q F1(backward\255w)108 168 Q(ord \(M\255b\)) +-.1 E F0(Mo)144 180 Q 1.71 -.15(ve b)-.15 H 1.41 (ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91 (ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F -(characters \(letters and digits\).)144 456 Q F2(shell\255f)108 468 Q -(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 480 Q .784 -.15(ve f)-.15 H(orw) +(characters \(letters and digits\).)144 192 Q F1(shell\255f)108 204 Q +(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 216 Q .784 -.15(ve f)-.15 H(orw) .15 E .484(ard to the end of the ne)-.1 F .484(xt w)-.15 F 2.984(ord. W) -.1 F .484(ords are delimited by non-quoted shell metacharac-)-.8 F -(ters.)144 492 Q F2(shell\255backward\255w)108 504 Q(ord)-.1 E F0(Mo)144 -516 Q .909 -.15(ve b)-.15 H .609(ack to the start of the current or pre) +(ters.)144 228 Q F1(shell\255backward\255w)108 240 Q(ord)-.1 E F0(Mo)144 +252 Q .909 -.15(ve b)-.15 H .609(ack to the start of the current or pre) .15 F .609(vious w)-.25 F 3.109(ord. W)-.1 F .608 -(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 528 Q -F2(clear\255scr)108 540 Q(een \(C\255l\))-.18 E F0 .993 -(Clear the screen lea)144 552 R .993 +(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 264 Q +F1(clear\255scr)108 276 Q(een \(C\255l\))-.18 E F0 .993 +(Clear the screen lea)144 288 R .993 (ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G .993(th an ar).4 F .993(gument, refresh the)-.18 F -(current line without clearing the screen.)144 564 Q F2 -.18(re)108 576 +(current line without clearing the screen.)144 300 Q F1 -.18(re)108 312 S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144 -588 Q F2(Commands f)87 604.8 Q(or Manipulating the History)-.25 E -(accept\255line \(Newline, Retur)108 616.8 Q(n\))-.15 E F0 .159 -(Accept the line re)144 628.8 R -.05(ga)-.15 G .159 +324 Q F1(Commands f)87 340.8 Q(or Manipulating the History)-.25 E +(accept\255line \(Newline, Retur)108 352.8 Q(n\))-.15 E F0 .159 +(Accept the line re)144 364.8 R -.05(ga)-.15 G .159 (rdless of where the cursor is.).05 F .158(If this line is non-empty) 5.158 F 2.658(,a)-.65 G .158(dd it to the history list)-2.658 F .699 -(according to the state of the)144 640.8 R/F3 9/Times-Bold@0 SF +(according to the state of the)144 376.8 R/F2 9/Times-Bold@0 SF (HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F .699(the line is a modi\214ed history line, then)3.199 F -(restore the history line to its original state.)144 652.8 Q F2(pr)108 -664.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0 -(Fetch the pre)144 676.8 Q(vious command from the history list, mo)-.25 -E(ving back in the list.)-.15 E F2(next\255history \(C\255n\))108 688.8 -Q F0(Fetch the ne)144 700.8 Q(xt command from the history list, mo)-.15 -E(ving forw)-.15 E(ard in the list.)-.1 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(38)190.95 E 0 Cg EP -%%Page: 39 39 +(restore the history line to its original state.)144 388.8 Q F1(pr)108 +400.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0 +(Fetch the pre)144 412.8 Q(vious command from the history list, mo)-.25 +E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 424.8 +Q F0(Fetch the ne)144 436.8 Q(xt command from the history list, mo)-.15 +E(ving forw)-.15 E(ard in the list.)-.1 E F1 +(beginning\255of\255history \(M\255<\))108 448.8 Q F0(Mo)144 460.8 Q .3 +-.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.) +-.65 E F1(end\255of\255history \(M\255>\))108 472.8 Q F0(Mo)144 484.8 Q +.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5 +(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18 +(re v)108 496.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 +1.471(Search backw)144 508.8 R 1.471 +(ard starting at the current line and mo)-.1 F 1.47 +(ving `up' through the history as necessary)-.15 F(.)-.65 E +(This is an incremental search.)144 520.8 Q F1 -.25(fo)108 532.8 S +(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131 +(Search forw)144 544.8 R 1.131(ard starting at the current line and mo) +-.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary) +-.25 F(.)-.65 E(This is an incremental search.)144 556.8 Q F1 +(non\255incr)108 568.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H +(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw) +144 580.8 R .164(ard through the history starting at the current line u\ +sing a non-incremental search for)-.1 F 2.5(as)144 592.8 S +(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 604.8 Q +(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18 +E F0 1.353(Search forw)144 616.8 R 1.354(ard through the history using \ +a non-incremental search for a string supplied by the)-.1 F(user)144 +628.8 Q(.)-.55 E F1(history\255sear)108 640.8 Q(ch\255f)-.18 E(orward) +-.25 E F0 .249(Search forw)144 652.8 R .249(ard through the history for\ + the string of characters between the start of the current line)-.1 F +(and the point.)144 664.8 Q(This is a non-incremental search.)5 E F1 +(history\255sear)108 676.8 Q(ch\255backward)-.18 E F0 .95(Search backw) +144 688.8 R .951(ard through the history for the string of characters b\ +etween the start of the current)-.1 F(line and the point.)144 700.8 Q +(This is a non-incremental search.)5 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(39)185.955 E 0 Cg EP +%%Page: 40 40 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(beginning\255of\255history \(M\255<\))108 -84 Q F0(Mo)144 96 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G -(he \214rst line in the history)-2.5 E(.)-.65 E F1 -(end\255of\255history \(M\255>\))108 108 Q F0(Mo)144 120 Q .3 -.15(ve t) --.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5(,i)-.65 G -(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18(re v)108 -132 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.471 -(Search backw)144 144 R 1.471(ard starting at the current line and mo) --.1 F 1.47(ving `up' through the history as necessary)-.15 F(.)-.65 E -(This is an incremental search.)144 156 Q F1 -.25(fo)108 168 S -(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131 -(Search forw)144 180 R 1.131(ard starting at the current line and mo)-.1 -F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)-.25 -F(.)-.65 E(This is an incremental search.)144 192 Q F1(non\255incr)108 -204 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E -(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)144 216 R .164(ar\ -d through the history starting at the current line using a non-incremen\ -tal search for)-.1 F 2.5(as)144 228 S(tring supplied by the user)-2.5 E -(.)-.55 E F1(non\255incr)108 240 Q(emental\255f)-.18 E(orward\255sear) --.25 E(ch\255history \(M\255n\))-.18 E F0 1.353(Search forw)144 252 R -1.354(ard through the history using a non-incremental search for a stri\ -ng supplied by the)-.1 F(user)144 264 Q(.)-.55 E F1(history\255sear)108 -276 Q(ch\255f)-.18 E(orward)-.25 E F0 .249(Search forw)144 288 R .249(a\ -rd through the history for the string of characters between the start o\ -f the current line)-.1 F(and the point.)144 300 Q -(This is a non-incremental search.)5 E F1(history\255sear)108 312 Q -(ch\255backward)-.18 E F0 .95(Search backw)144 324 R .951(ard through t\ -he history for the string of characters between the start of the curren\ -t)-.1 F(line and the point.)144 336 Q(This is a non-incremental search.) -5 E F1(yank\255nth\255ar)108 348 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 -.622(Insert the \214rst ar)144 360 R .622(gument to the pre)-.18 F .622 -(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F -.622(vious line\))-.25 F .794(at point.)144 372 R -.4(Wi)5.794 G .794 -(th an ar).4 F(gument)-.18 E/F2 10/Times-Italic@0 SF(n)3.294 E F0 3.294 -(,i).24 G .794(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794 -(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .795 -(ords in the)-.1 F(pre)144 384 Q .292(vious command be)-.25 F .292 -(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a) --2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291 -(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .291 -(ord from the end of)-.1 F .281(the pre)144 396 R .281(vious command.) --.25 F .281(Once the ar)5.281 F(gument)-.18 E F2(n)2.781 E F0 .281 -(is computed, the ar)2.781 F .281(gument is e)-.18 F .282 -(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 408 Q -(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 420 Q +-.35 E/F1 10/Times-Bold@0 SF(yank\255nth\255ar)108 84 Q 2.5(g\()-.1 G +<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 96 R .622 +(gument to the pre)-.18 F .622(vious command \(usually the second w)-.25 +F .622(ord on the pre)-.1 F .622(vious line\))-.25 F .794(at point.)144 +108 R -.4(Wi)5.794 G .794(th an ar).4 F(gument)-.18 E/F2 10 +/Times-Italic@0 SF(n)3.294 E F0 3.294(,i).24 G .794(nsert the)-3.294 F +F2(n)3.294 E F0 .794(th w)B .794(ord from the pre)-.1 F .794 +(vious command \(the w)-.25 F .795(ords in the)-.1 F(pre)144 120 Q .292 +(vious command be)-.25 F .292(gin with w)-.15 F .291(ord 0\).)-.1 F +2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E .591 -.15(ve a)-.25 H +-.18(rg).15 G .291(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B +.291(ord from the end of)-.1 F .281(the pre)144 132 R .281 +(vious command.)-.25 F .281(Once the ar)5.281 F(gument)-.18 E F2(n)2.781 +E F0 .281(is computed, the ar)2.781 F .281(gument is e)-.18 F .282 +(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 144 Q +(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 156 Q 2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308 -(Insert the last ar)144 432 R 1.308(gument to the pre)-.18 F 1.307 +(Insert the last ar)144 168 R 1.308(gument to the pre)-.18 F 1.307 (vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307 -(vious history entry\).)-.25 F -.4(Wi)144 444 S .735(th an ar).4 F .735 +(vious history entry\).)-.25 F -.4(Wi)144 180 S .735(th an ar).4 F .735 (gument, beha)-.18 F 1.035 -.15(ve ex)-.2 H .735(actly lik).15 F(e)-.1 E F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E 1.036 -.15(ve c)-.25 H .736(alls to).15 F F1(yank\255last\255ar)3.236 E (g)-.1 E F0(mo)3.236 E -.15(ve)-.15 G .728 -(back through the history list, inserting the last ar)144 456 R .728 +(back through the history list, inserting the last ar)144 192 R .728 (gument of each line in turn.)-.18 F .728(The history e)5.728 F(xpan-) --.15 E .14(sion f)144 468 R .14(acilities are used to e)-.1 F .14 +-.15 E .14(sion f)144 204 R .14(acilities are used to e)-.1 F .14 (xtract the last ar)-.15 F .14(gument, as if the "!$" history e)-.18 F -.14(xpansion had been speci-)-.15 F(\214ed.)144 480 Q F1 -(shell\255expand\255line \(M\255C\255e\))108 492 Q F0 .623 -(Expand the line as the shell does.)144 504 R .622 +.14(xpansion had been speci-)-.15 F(\214ed.)144 216 Q F1 +(shell\255expand\255line \(M\255C\255e\))108 228 Q F0 .623 +(Expand the line as the shell does.)144 240 R .622 (This performs alias and history e)5.622 F .622 -(xpansion as well as all of the)-.15 F(shell w)144 516 Q(ord e)-.1 E 2.5 +(xpansion as well as all of the)-.15 F(shell w)144 252 Q(ord e)-.1 E 2.5 (xpansions. See)-.15 F/F3 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25 (YE)-.315 G(XP)-2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G (or a description of history e)-2.5 E(xpansion.)-.15 E F1 -(history\255expand\255line \(M\255^\))108 528 Q F0 .938 -(Perform history e)144 540 R .939(xpansion on the current line.)-.15 F +(history\255expand\255line \(M\255^\))108 264 Q F0 .938 +(Perform history e)144 276 R .939(xpansion on the current line.)-.15 F (See)5.939 E F3(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E (ANSION)-.666 E F0(belo)3.189 E 3.439(wf)-.25 G .939(or a descrip-) --3.439 F(tion of history e)144 552 Q(xpansion.)-.15 E F1(magic\255space) -108 564 Q F0 1.627(Perform history e)144 576 R 1.627 +-3.439 F(tion of history e)144 288 Q(xpansion.)-.15 E F1(magic\255space) +108 300 Q F0 1.627(Perform history e)144 312 R 1.627 (xpansion on the current line and insert a space.)-.15 F(See)6.626 E F3 (HIST)4.126 E(OR)-.162 E 3.876(YE)-.315 G(XP)-3.876 E(ANSION)-.666 E F0 -(belo)144 588 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E -(xpansion.)-.15 E F1(alias\255expand\255line)108 600 Q F0 .394 -(Perform alias e)144 612 R .394(xpansion on the current line.)-.15 F +(belo)144 324 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E +(xpansion.)-.15 E F1(alias\255expand\255line)108 336 Q F0 .394 +(Perform alias e)144 348 R .394(xpansion on the current line.)-.15 F (See)5.395 E F3(ALIASES)2.895 E F0(abo)2.645 E .695 -.15(ve f)-.15 H -.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 624 Q F1 -(history\255and\255alias\255expand\255line)108 636 Q F0 -(Perform history and alias e)144 648 Q(xpansion on the current line.) --.15 E F1(insert\255last\255ar)108 660 Q(gument \(M\255.)-.1 E 2.5(,M) -.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 672 S(ynon)-2.5 E(ym for) +.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 360 Q F1 +(history\255and\255alias\255expand\255line)108 372 Q F0 +(Perform history and alias e)144 384 Q(xpansion on the current line.) +-.15 E F1(insert\255last\255ar)108 396 Q(gument \(M\255.)-.1 E 2.5(,M) +.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 408 S(ynon)-2.5 E(ym for) -.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F1 -(operate\255and\255get\255next \(C\255o\))108 684 Q F0 .948 -(Accept the current line for e)144 696 R -.15(xe)-.15 G .948 +(operate\255and\255get\255next \(C\255o\))108 420 Q F0 .948 +(Accept the current line for e)144 432 R -.15(xe)-.15 G .948 (cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.247 -.15 (ve t)-.25 H 3.447(ot).15 G .947(he current line from the)-3.447 F -(history for editing.)144 708 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G -(ument is ignored.).18 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E -(39)190.95 E 0 Cg EP -%%Page: 40 40 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF -(edit\255and\255execute\255command \(C\255xC\255e\))108 84 Q F0(In)144 -96 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026 +(history for editing.)144 444 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G +(ument is ignored.).18 E F1 +(edit\255and\255execute\255command \(C\255xC\255e\))108 456 Q F0(In)144 +468 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026 (ditor on the current command line, and e)-3.526 F -.15(xe)-.15 G 1.026 (cute the result as shell commands.).15 F F1(Bash)6.026 E F0 -(attempts to in)144 108 Q -.2(vo)-.4 G -.1(ke).2 G/F2 9/Times-Bold@0 SF -($VISU)2.6 E(AL)-.54 E/F3 9/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR) --.162 E F3(,)A F0(and)2.25 E/F4 10/Times-Italic@0 SF(emacs)2.5 E F0 -(as the editor)2.5 E 2.5(,i)-.4 G 2.5(nt)-2.5 G(hat order)-2.5 E(.)-.55 -E F1(Commands f)87 124.8 Q(or Changing T)-.25 E(ext)-.92 E -(delete\255char \(C\255d\))108 136.8 Q F0 .358 -(Delete the character at point.)144 148.8 R .358(If point is at the be) +(attempts to in)144 480 Q -.2(vo)-.4 G -.1(ke).2 G F3($VISU)2.6 E(AL) +-.54 E/F4 9/Times-Roman@0 SF(,)A F3($EDIT)2.25 E(OR)-.162 E F4(,)A F0 +(and)2.25 E F2(emacs)2.5 E F0(as the editor)2.5 E 2.5(,i)-.4 G 2.5(nt) +-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87 496.8 Q(or Changing T) +-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 508.8 Q F0 .358 +(Delete the character at point.)144 520.8 R .358(If point is at the be) 5.358 F .358(ginning of the line, there are no characters in the)-.15 F -(line, and the last character typed w)144 160.8 Q(as not bound to)-.1 E -F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F2(EOF)2.5 E F3(.) -A F1(backward\255delete\255char \(Rubout\))108 172.8 Q F0 .552 -(Delete the character behind the cursor)144 184.8 R 5.553(.W)-.55 G .553 +(line, and the last character typed w)144 532.8 Q(as not bound to)-.1 E +F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F3(EOF)2.5 E F4(.) +A F1(backward\255delete\255char \(Rubout\))108 544.8 Q F0 .552 +(Delete the character behind the cursor)144 556.8 R 5.553(.W)-.55 G .553 (hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F .553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553(he deleted te).15 F -.553(xt on)-.15 F(the kill ring.)144 196.8 Q F1 -.25(fo)108 208.8 S +.553(xt on)-.15 F(the kill ring.)144 568.8 Q F1 -.25(fo)108 580.8 S (rward\255backward\255delete\255char).25 E F0 .474 -(Delete the character under the cursor)144 220.8 R 2.974(,u)-.4 G .474 +(Delete the character under the cursor)144 592.8 R 2.974(,u)-.4 G .474 (nless the cursor is at the end of the line, in which case the)-2.974 F -(character behind the cursor is deleted.)144 232.8 Q F1 -(quoted\255insert \(C\255q, C\255v\))108 244.8 Q F0 .778(Add the ne)144 -256.8 R .779(xt character typed to the line v)-.15 F 3.279 +(character behind the cursor is deleted.)144 604.8 Q F1 +(quoted\255insert \(C\255q, C\255v\))108 616.8 Q F0 .778(Add the ne)144 +628.8 R .779(xt character typed to the line v)-.15 F 3.279 (erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279 G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.279 E F0 3.279 -(,f)C(or)-3.279 E -.15(ex)144 268.8 S(ample.).15 E F1 -(tab\255insert \(C\255v T)108 280.8 Q(AB\))-.9 E F0 -(Insert a tab character)144 292.8 Q(.)-.55 E F1 -(self\255insert \(a, b, A, 1, !, ...\))108 304.8 Q F0 -(Insert the character typed.)144 316.8 Q F1 -(transpose\255chars \(C\255t\))108 328.8 Q F0 .322 -(Drag the character before point forw)144 340.8 R .321(ard o)-.1 F -.15 +(,f)C(or)-3.279 E -.15(ex)144 640.8 S(ample.).15 E F1 +(tab\255insert \(C\255v T)108 652.8 Q(AB\))-.9 E F0 +(Insert a tab character)144 664.8 Q(.)-.55 E F1 +(self\255insert \(a, b, A, 1, !, ...\))108 676.8 Q F0 +(Insert the character typed.)144 688.8 Q F1 +(transpose\255chars \(C\255t\))108 700.8 Q F0 .322 +(Drag the character before point forw)144 712.8 R .321(ard o)-.1 F -.15 (ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321 (ving point forw)-.15 F .321(ard as well.)-.1 F 1.182 (If point is at the end of the line, then this transposes the tw)144 -352.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E --.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 364.8 Q(guments ha)-.18 E -.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1 -(transpose\255w)108 376.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144 -388.8 R .024(ord before point past the w)-.1 F .023(ord after point, mo) --.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.523(rt).15 G .023(hat w) --2.523 F .023(ord as well.)-.1 F .023(If point)5.023 F -(is at the end of the line, this transposes the last tw)144 400.8 Q 2.5 -(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 412.8 Q -(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 -424.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F --.05(ga)-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699 -(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 436.8 S(rd, b).1 -E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 448.8 Q -(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 460.8 Q 1.648 +724.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E +-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(40)185.955 E 0 Cg EP +%%Page: 41 41 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E(ar)144 84 Q(guments ha)-.18 E .3 -.15(ve n)-.2 H 2.5(oe).15 G +-.25(ff)-2.5 G(ect.).25 E/F1 10/Times-Bold@0 SF(transpose\255w)108 96 Q +(ords \(M\255t\))-.1 E F0 .024(Drag the w)144 108 R .024 +(ord before point past the w)-.1 F .023(ord after point, mo)-.1 F .023 +(ving point o)-.15 F -.15(ve)-.15 G 2.523(rt).15 G .023(hat w)-2.523 F +.023(ord as well.)-.1 F .023(If point)5.023 F +(is at the end of the line, this transposes the last tw)144 120 Q 2.5 +(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 132 Q +(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 144 +R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga) +-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699 +(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 156 S(rd, b).1 E +(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 168 Q +(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 180 Q 1.648 (wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148 (ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15 (ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre) --.25 F(vious)-.25 E -.1(wo)144 472.8 S(rd, b).1 E(ut do not mo)-.2 E .3 --.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 484.8 Q -(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 -496.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F --.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975 -(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 508.8 S(rd, b) -.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 -520.8 S(rwrite\255mode).1 E F0 -.8(To)144 532.8 S .438(ggle o).8 F -.15 -(ve)-.15 G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438 +-.25 F(vious)-.25 E -.1(wo)144 192 S(rd, b).1 E(ut do not mo)-.2 E .3 +-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 204 Q +(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 216 +R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga) +-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975 +(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 228 S(rd, b).1 +E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 240 +S(rwrite\255mode).1 E F0 -.8(To)144 252 S .438(ggle o).8 F -.15(ve)-.15 +G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438 (xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15 F .437 (gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4 -(Wi)144 544.8 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 --.15(ve n)-.25 H .781(umeric ar).15 F .781 -(gument, switches to insert mode.)-.18 F .781(This command af)5.781 F -(fects)-.25 E(only)144 556.8 Q F1(emacs)4.395 E F0(mode;)4.395 E F1(vi) -4.395 E F0 1.894(mode does o)4.395 F -.15(ve)-.15 G 1.894(rwrite dif).15 -F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F F4 -.37(re) -4.394 G(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968 -(mode. In)144 568.8 R -.15(ove)3.968 G 1.468 -(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E F0 -1.469(replace the te)3.969 F 1.469(xt at point rather than)-.15 F .958 -(pushing the te)144 580.8 R .958(xt to the right.)-.15 F .957 -(Characters bound to)5.958 F F1(backward\255delete\255char)3.457 E F0 -.957(replace the character)3.457 F(before point with a space.)144 592.8 -Q(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87 -609.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 621.6 Q F0 -(Kill the te)144 633.6 Q(xt from point to the end of the line.)-.15 E F1 -(backward\255kill\255line \(C\255x Rubout\))108 645.6 Q F0(Kill backw) -144 657.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1 -(unix\255line\255discard \(C\255u\))108 669.6 Q F0(Kill backw)144 681.6 +(Wi)144 264 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15 +(ve n)-.25 H .781(umeric ar).15 F .781(gument, switches to insert mode.) +-.18 F .781(This command af)5.781 F(fects)-.25 E(only)144 276 Q F1 +(emacs)4.395 E F0(mode;)4.395 E F1(vi)4.395 E F0 1.894(mode does o)4.395 +F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G +1.894(ach call to)-6.894 F/F2 10/Times-Italic@0 SF -.37(re)4.394 G +(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968(mode. In)144 +288 R -.15(ove)3.968 G 1.468(rwrite mode, characters bound to).15 F F1 +(self\255insert)3.969 E F0 1.469(replace the te)3.969 F 1.469 +(xt at point rather than)-.15 F .958(pushing the te)144 300 R .958 +(xt to the right.)-.15 F .957(Characters bound to)5.958 F F1 +(backward\255delete\255char)3.457 E F0 .957(replace the character)3.457 +F(before point with a space.)144 312 Q(By def)5 E +(ault, this command is unbound.)-.1 E F1(Killing and Y)87 328.8 Q +(anking)-.85 E(kill\255line \(C\255k\))108 340.8 Q F0(Kill the te)144 +352.8 Q(xt from point to the end of the line.)-.15 E F1 +(backward\255kill\255line \(C\255x Rubout\))108 364.8 Q F0(Kill backw) +144 376.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1 +(unix\255line\255discard \(C\255u\))108 388.8 Q F0(Kill backw)144 400.8 Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E (The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt) --2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 693.6 Q F0 +-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 412.8 Q F0 (Kill all characters on the current line, no matter where point is.)144 -705.6 Q(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(40)190.95 E 0 Cg -EP -%%Page: 41 41 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(kill\255w)108 84 Q(ord \(M\255d\))-.1 E F0 -.728(Kill from point to the end of the current w)144 96 R .729 +424.8 Q F1(kill\255w)108 436.8 Q(ord \(M\255d\))-.1 E F0 .728 +(Kill from point to the end of the current w)144 448.8 R .729 (ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729 -(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 108 S +(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 460.8 S (rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G -(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 120 Q -(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 132 Q(ord behind point.)-.1 -E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1 -(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 144 Q +(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 472.8 Q +(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 484.8 Q(ord behind point.) +-.1 E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1 +(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 496.8 Q (ord \(M\255d\))-.1 E F0 .729 -(Kill from point to the end of the current w)144 156 R .728 +(Kill from point to the end of the current w)144 508.8 R .728 (ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728 -(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 168 S +(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 520.8 S (rd boundaries are the same as those used by).8 E F1(shell\255f)2.5 E (orward\255w)-.25 E(ord)-.1 E F0(.)A F1(shell\255backward\255kill\255w) -108 180 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 192 R 3.025 -(ord behind point.)-.1 F -.8(Wo)8.025 G 3.025 +108 532.8 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 544.8 R +3.025(ord behind point.)-.1 F -.8(Wo)8.025 G 3.025 (rd boundaries are the same as those used by).8 F F1(shell\255back-) -5.525 E(ward\255w)144 204 Q(ord)-.1 E F0(.)A F1(unix\255w)108 216 Q -(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 228 R .365 +5.525 E(ward\255w)144 556.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 568.8 Q +(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 580.8 R .365 (ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1 F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15 (ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144 -240 Q F1(unix\255\214lename\255rubout)108 252 Q F0 .166(Kill the w)144 -264 R .166 +592.8 Q F1(unix\255\214lename\255rubout)108 604.8 Q F0 .166(Kill the w) +144 616.8 R .166 (ord behind point, using white space and the slash character as the w) --.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 276 Q +-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 628.8 Q (xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.) --2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 288 Q F0 -(Delete all spaces and tabs around point.)144 300 Q F1(kill\255r)108 312 -Q(egion)-.18 E F0(Kill the te)144 324 Q(xt in the current re)-.15 E -(gion.)-.15 E F1(copy\255r)108 336 Q(egion\255as\255kill)-.18 E F0(Cop) -144 348 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E -(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1 -(copy\255backward\255w)108 360 Q(ord)-.1 E F0(Cop)144 372 Q 4.801(yt)-.1 -G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F(uf)-.2 -E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3 -(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 384 Q -(ord)-.1 E F0(.)A F1(copy\255f)108 396 Q(orward\255w)-.25 E(ord)-.1 E F0 -(Cop)144 408 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)-.1 F -2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008(.T)-.55 -G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1 F F1 -.25 -(fo)4.508 G -.37(r-).25 G(ward\255w)144 420 Q(ord)-.1 E F0(.)A F1 -(yank \(C\255y\))108 432 Q F0 -1(Ya)144 444 S -(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25 -E F1(yank\255pop \(M\255y\))108 456 Q F0 -(Rotate the kill ring, and yank the ne)144 468 Q 2.5(wt)-.25 G 2.5 +-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 640.8 Q F0 +(Delete all spaces and tabs around point.)144 652.8 Q F1(kill\255r)108 +664.8 Q(egion)-.18 E F0(Kill the te)144 676.8 Q(xt in the current re) +-.15 E(gion.)-.15 E F1(copy\255r)108 688.8 Q(egion\255as\255kill)-.18 E +F0(Cop)144 700.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E +(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(41)185.955 E 0 Cg EP +%%Page: 42 42 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(copy\255backward\255w)108 84 Q(ord)-.1 E F0 +(Cop)144 96 Q 4.801(yt)-.1 G 2.301(he w)-4.801 F 2.301 +(ord before point to the kill b)-.1 F(uf)-.2 E(fer)-.25 E 7.301(.T)-.55 +G 2.301(he w)-7.301 F 2.3(ord boundaries are the same as)-.1 F F1(back-) +4.8 E(ward\255w)144 108 Q(ord)-.1 E F0(.)A F1(copy\255f)108 120 Q +(orward\255w)-.25 E(ord)-.1 E F0(Cop)144 132 Q 4.507(yt)-.1 G 2.007 +(he w)-4.507 F 2.007(ord follo)-.1 F 2.007(wing point to the kill b)-.25 +F(uf)-.2 E(fer)-.25 E 7.008(.T)-.55 G 2.008(he w)-7.008 F 2.008 +(ord boundaries are the same as)-.1 F F1 -.25(fo)4.508 G -.37(r-).25 G +(ward\255w)144 144 Q(ord)-.1 E F0(.)A F1(yank \(C\255y\))108 156 Q F0 -1 +(Ya)144 168 S(nk the top of the kill ring into the b)1 E(uf)-.2 E +(fer at point.)-.25 E F1(yank\255pop \(M\255y\))108 180 Q F0 +(Rotate the kill ring, and yank the ne)144 192 Q 2.5(wt)-.25 G 2.5 (op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E -F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 484.8 Q -(guments)-.1 E(digit\255ar)108 496.8 Q +F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 208.8 Q +(guments)-.1 E(digit\255ar)108 220.8 Q (gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642 -(Add this digit to the ar)144 508.8 R .641 +(Add this digit to the ar)144 232.8 R .641 (gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18 (rg)-3.141 G 3.141(ument. M\255\255).18 F .641(starts a ne)3.141 F(g-) --.15 E(ati)144 520.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1 -(uni)108 532.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778 -(This is another w)144 544.8 R .779(ay to specify an ar)-.1 F 3.279 +-.15 E(ati)144 244.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1 +(uni)108 256.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778 +(This is another w)144 268.8 R .779(ay to specify an ar)-.1 F 3.279 (gument. If)-.18 F .779(this command is follo)3.279 F .779 (wed by one or more digits,)-.25 F 1.376 (optionally with a leading minus sign, those digits de\214ne the ar)144 -556.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144 -568.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni) +280.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144 +292.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni) 3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17 (ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other) --.2 F(-)-.2 E .899(wise ignored.)144 580.8 R .898 +-.2 F(-)-.2 E .899(wise ignored.)144 304.8 R .898 (As a special case, if this command is immediately follo)5.899 F .898 (wed by a character that is)-.25 F .243 -(neither a digit or minus sign, the ar)144 592.8 R .243 +(neither a digit or minus sign, the ar)144 316.8 R .243 (gument count for the ne)-.18 F .243(xt command is multiplied by four) --.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 604.8 Q .378 +-.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 328.8 Q .378 (gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378 (cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F -.378(gument count)-.18 F(four)144 616.8 Q 2.5(,as)-.4 G(econd time mak) +.378(gument count)-.18 F(four)144 340.8 Q 2.5(,as)-.4 G(econd time mak) -2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1 -(Completing)87 633.6 Q(complete \(T)108 645.6 Q(AB\))-.9 E F0 1.137 -(Attempt to perform completion on the te)144 657.6 R 1.137 +(Completing)87 357.6 Q(complete \(T)108 369.6 Q(AB\))-.9 E F0 1.137 +(Attempt to perform completion on the te)144 381.6 R 1.137 (xt before point.)-.15 F F1(Bash)6.137 E F0 1.137 -(attempts completion treating the)3.637 F(te)144 669.6 Q .533(xt as a v) +(attempts completion treating the)3.637 F(te)144 393.6 Q .533(xt as a v) -.15 F .533(ariable \(if the te)-.25 F .533(xt be)-.15 F .533(gins with) -.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .532(xt be)-.15 F .532(gins with)-.15 F F1(~)3.032 E F0 .532(\), hostname \(if the)B(te) -144 681.6 Q .701(xt be)-.15 F .701(gins with)-.15 F F1(@)3.201 E F0 .701 +144 405.6 Q .701(xt be)-.15 F .701(gins with)-.15 F F1(@)3.201 E F0 .701 (\), or command \(including aliases and functions\) in turn.)B .702 (If none of these pro-)5.701 F -(duces a match, \214lename completion is attempted.)144 693.6 Q F1 -(possible\255completions \(M\255?\))108 705.6 Q F0 -(List the possible completions of the te)144 717.6 Q(xt before point.) --.15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(41)190.95 E 0 Cg -EP -%%Page: 42 42 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(insert\255completions \(M\255*\))108 84 Q -F0 .783(Insert all completions of the te)144 96 R .783 +(duces a match, \214lename completion is attempted.)144 417.6 Q F1 +(possible\255completions \(M\255?\))108 429.6 Q F0 +(List the possible completions of the te)144 441.6 Q(xt before point.) +-.15 E F1(insert\255completions \(M\255*\))108 453.6 Q F0 .783 +(Insert all completions of the te)144 465.6 R .783 (xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H -.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144 108 -Q F0(.)A F1(menu\255complete)108 120 Q F0 .928(Similar to)144 132 R F1 -(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628 F .929 -(ord to be completed with a single match from the list of)-.1 F 1.194 -(possible completions.)144 144 R 1.194(Repeated e)6.194 F -.15(xe)-.15 G -1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193 +.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144 +477.6 Q F0(.)A F1(menu\255complete)108 489.6 Q F0 .928(Similar to)144 +501.6 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628 +F .929(ord to be completed with a single match from the list of)-.1 F +1.194(possible completions.)144 513.6 R 1.194(Repeated e)6.194 F -.15 +(xe)-.15 G 1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193 (steps through the list of possible)3.694 F .828 -(completions, inserting each match in turn.)144 156 R .828 +(completions, inserting each match in turn.)144 525.6 R .828 (At the end of the list of completions, the bell is rung)5.828 F .727 -(\(subject to the setting of)144 168 R F1(bell\255style)3.227 E F0 3.227 -(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F .727 -(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227 E -F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.227 E F0 1.73 -(positions forw)144 180 R 1.73(ard in the list of matches; a ne)-.1 F +(\(subject to the setting of)144 537.6 R F1(bell\255style)3.227 E F0 +3.227(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F +.727(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227 +E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.227 E F0 1.73 +(positions forw)144 549.6 R 1.73(ard in the list of matches; a ne)-.1 F -.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73 (ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1 -E(through the list.)144 192 Q(This command is intended to be bound to)5 -E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E(ault.) --.1 E F1(delete\255char\255or\255list)108 204 Q F0 .234 -(Deletes the character under the cursor if not at the be)144 216 R .234 -(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)2.734 -E F0(\).)A .425(If at the end of the line, beha)144 228 R -.15(ve)-.2 G -2.925(si).15 G .425(dentically to)-2.925 F F1(possible\255completions) -2.925 E F0 5.425(.T)C .425(his command is unbound)-5.425 F(by def)144 -240 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 252 Q F0 -(Attempt \214lename completion on the te)144 264 Q(xt before point.)-.15 -E F1(possible\255\214lename\255completions \(C\255x /\))108 276 Q F0 -(List the possible completions of the te)144 288 Q +E(through the list.)144 561.6 Q(This command is intended to be bound to) +5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E +(ault.)-.1 E F1(menu\255complete-)108 573.6 Q(w)10 I(k)-7.22 -10 M(c) +-5.56 -10 M(rd)2.78 10 M F0 .82(Identical to)144 585.6 R F1 +(menu\255complete)3.32 E F0 3.32(,b)C .82(ut mo)-3.52 F -.15(ve)-.15 G +3.32(sb).15 G(ackw)-3.32 E .82 +(ard through the list of possible completions, as if)-.1 F F1 +(menu\255complete)144 597.6 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5 +(nan).15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg) +.15 G 2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E +F1(delete\255char\255or\255list)108 609.6 Q F0 .234 +(Deletes the character under the cursor if not at the be)144 621.6 R +.234(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char) +2.735 E F0(\).)A .425(If at the end of the line, beha)144 633.6 R -.15 +(ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1 +(possible\255completions)2.925 E F0 5.425(.T)C .425 +(his command is unbound)-5.425 F(by def)144 645.6 Q(ault.)-.1 E F1 +(complete\255\214lename \(M\255/\))108 657.6 Q F0 +(Attempt \214lename completion on the te)144 669.6 Q(xt before point.) +-.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 681.6 Q +F0(List the possible completions of the te)144 693.6 Q (xt before point, treating it as a \214lename.)-.15 E F1 -(complete\255user)108 300 Q(name \(M\255~\))-.15 E F0 -(Attempt completion on the te)144 312 Q -(xt before point, treating it as a username.)-.15 E F1(possible\255user) -108 324 Q(name\255completions \(C\255x ~\))-.15 E F0 -(List the possible completions of the te)144 336 Q +(complete\255user)108 705.6 Q(name \(M\255~\))-.15 E F0 +(Attempt completion on the te)144 717.6 Q +(xt before point, treating it as a username.)-.15 E(GNU Bash-4.1)72 768 +Q(2009 December 29)135.965 E(42)185.955 E 0 Cg EP +%%Page: 43 43 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(possible\255user)108 84 Q +(name\255completions \(C\255x ~\))-.15 E F0 +(List the possible completions of the te)144 96 Q (xt before point, treating it as a username.)-.15 E F1(complete\255v)108 -348 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 360 Q +108 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 120 Q (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1 -(possible\255v)108 372 Q(ariable\255completions \(C\255x $\))-.1 E F0 -(List the possible completions of the te)144 384 Q +(possible\255v)108 132 Q(ariable\255completions \(C\255x $\))-.1 E F0 +(List the possible completions of the te)144 144 Q (xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1 -(complete\255hostname \(M\255@\))108 396 Q F0 -(Attempt completion on the te)144 408 Q +(complete\255hostname \(M\255@\))108 156 Q F0 +(Attempt completion on the te)144 168 Q (xt before point, treating it as a hostname.)-.15 E F1 -(possible\255hostname\255completions \(C\255x @\))108 420 Q F0 -(List the possible completions of the te)144 432 Q +(possible\255hostname\255completions \(C\255x @\))108 180 Q F0 +(List the possible completions of the te)144 192 Q (xt before point, treating it as a hostname.)-.15 E F1 -(complete\255command \(M\255!\))108 444 Q F0 .581 -(Attempt completion on the te)144 456 R .581 -(xt before point, treating it as a command name.)-.15 F .58 -(Command comple-)5.58 F .715(tion attempts to match the te)144 468 R +(complete\255command \(M\255!\))108 204 Q F0 .58 +(Attempt completion on the te)144 216 R .581 +(xt before point, treating it as a command name.)-.15 F .581 +(Command comple-)5.581 F .715(tion attempts to match the te)144 228 R .715(xt ag)-.15 F .715(ainst aliases, reserv)-.05 F .715(ed w)-.15 F .715(ords, shell functions, shell b)-.1 F .715(uiltins, and)-.2 F -(\214nally e)144 480 Q -.15(xe)-.15 G +(\214nally e)144 240 Q -.15(xe)-.15 G (cutable \214lenames, in that order).15 E(.)-.55 E F1 -(possible\255command\255completions \(C\255x !\))108 492 Q F0 -(List the possible completions of the te)144 504 Q +(possible\255command\255completions \(C\255x !\))108 252 Q F0 +(List the possible completions of the te)144 264 Q (xt before point, treating it as a command name.)-.15 E F1 -(dynamic\255complete\255history \(M\255T)108 516 Q(AB\))-.9 E F0 .425 -(Attempt completion on the te)144 528 R .425 -(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .424 +(dynamic\255complete\255history \(M\255T)108 276 Q(AB\))-.9 E F0 .424 +(Attempt completion on the te)144 288 R .425 +(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .425 (ainst lines from the history list)-.05 F -(for possible completion matches.)144 540 Q F1(dab)108 552 Q(br)-.1 E --.15(ev)-.18 G(\255expand).15 E F0 .61 -(Attempt menu completion on the te)144 564 R .611 -(xt before point, comparing the te)-.15 F .611(xt ag)-.15 F .611 +(for possible completion matches.)144 300 Q F1(dab)108 312 Q(br)-.1 E +-.15(ev)-.18 G(\255expand).15 E F0 .611 +(Attempt menu completion on the te)144 324 R .611 +(xt before point, comparing the te)-.15 F .61(xt ag)-.15 F .61 (ainst lines from the his-)-.05 F -(tory list for possible completion matches.)144 576 Q F1 -(complete\255into\255braces \(M\255{\))108 588 Q F0 .4(Perform \214lena\ +(tory list for possible completion matches.)144 336 Q F1 +(complete\255into\255braces \(M\255{\))108 348 Q F0 .4(Perform \214lena\ me completion and insert the list of possible completions enclosed with\ -in braces so)144 600 R(the list is a)144 612 Q -.25(va)-.2 G +in braces so)144 360 R(the list is a)144 372 Q -.25(va)-.2 G (ilable to the shell \(see).25 E F1(Brace Expansion)2.5 E F0(abo)2.5 E --.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 628.8 S(yboard Macr).25 E(os)-.18 -E(start\255kbd\255macr)108 640.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)) -.833 E F0(Be)144 652.8 Q(gin sa)-.15 E +-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 388.8 S(yboard Macr).25 E(os)-.18 +E(start\255kbd\255macr)108 400.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)) +.833 E F0(Be)144 412.8 Q(gin sa)-.15 E (ving the characters typed into the current k)-.2 E -.15(ey)-.1 G -(board macro.).15 E F1(end\255kbd\255macr)108 664.8 Q 2.5(o\()-.18 G -(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 676.8 Q +(board macro.).15 E F1(end\255kbd\255macr)108 424.8 Q 2.5(o\()-.18 G +(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 436.8 Q (ving the characters typed into the current k)-.2 E -.15(ey)-.1 G (board macro and store the de\214nition.).15 E F1 -(call\255last\255kbd\255macr)108 688.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5 -E F0(Re-e)144 700.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey) --.1 G .999(board macro de\214ned, by making the characters in the macro\ - appear as if).15 F(typed at the k)144 712.8 Q -.15(ey)-.1 G(board.).15 -E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(42)190.95 E 0 Cg EP -%%Page: 43 43 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(Miscellaneous)87 84 Q -.18(re)108 96 S -.18 E(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777 -(Read in the contents of the)144 108 R/F2 10/Times-Italic@0 SF(inputr) -4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb) --.15 G 1.776(indings or v)-4.276 F 1.776(ariable assignments)-.25 F -(found there.)144 120 Q F1(abort \(C\255g\))108 132 Q F0 3.248 -(Abort the current editing command and ring the terminal')144 144 R -5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1 -(bell\255style)144 156 Q F0(\).)A F1(do\255upper)108 168 Q(case\255v) --.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)C(..\))-2.5 -E F0 1.756(If the meta\214ed character)144 180 R F2(x)4.256 E F0 1.755 -(is lo)4.256 F 1.755 +(call\255last\255kbd\255macr)108 448.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5 +E F0(Re-e)144 460.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1 +G .999(board macro de\214ned, by making the characters in the macro app\ +ear as if).15 F(typed at the k)144 472.8 Q -.15(ey)-.1 G(board.).15 E F1 +(Miscellaneous)87 489.6 Q -.18(re)108 501.6 S.18 E +(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776 +(Read in the contents of the)144 513.6 R/F2 10/Times-Italic@0 SF(inputr) +4.276 E(c)-.37 E F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb) +-.15 G 1.777(indings or v)-4.277 F 1.777(ariable assignments)-.25 F +(found there.)144 525.6 Q F1(abort \(C\255g\))108 537.6 Q F0 3.249 +(Abort the current editing command and ring the terminal')144 549.6 R +5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1 +(bell\255style)144 561.6 Q F0(\).)A F1(do\255upper)108 573.6 Q +(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.) +C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 585.6 R F2(x) +4.255 E F0 1.755(is lo)4.255 F 1.756 (wercase, run the command that is bound to the corresponding)-.25 F -(uppercase character)144 192 Q(.)-.55 E F1(pr)108 204 Q -(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 216 Q +(uppercase character)144 597.6 Q(.)-.55 E F1(pr)108 609.6 Q +(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 621.6 Q (xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0 (is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1 -(undo \(C\255_, C\255x C\255u\))108 228 Q F0 -(Incremental undo, separately remembered for each line.)144 240 Q F1 --2.29 -.18(re v)108 252 T(ert\255line \(M\255r\)).08 E F0 1.095 -(Undo all changes made to this line.)144 264 R 1.095(This is lik)6.095 F -3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E +(undo \(C\255_, C\255x C\255u\))108 633.6 Q F0 +(Incremental undo, separately remembered for each line.)144 645.6 Q F1 +-2.29 -.18(re v)108 657.6 T(ert\255line \(M\255r\)).08 E F0 1.095 +(Undo all changes made to this line.)144 669.6 R 1.095(This is lik)6.095 +F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E F0 1.095(command enough times to)3.595 F -(return the line to its initial state.)144 276 Q F1 -(tilde\255expand \(M\255&\))108 288 Q F0(Perform tilde e)144 300 Q -(xpansion on the current w)-.15 E(ord.)-.1 E F1 -(set\255mark \(C\255@, M\255\))108 312 Q F0 -(Set the mark to the point.)144 324 Q(If a numeric ar)5 E +(return the line to its initial state.)144 681.6 Q F1 +(tilde\255expand \(M\255&\))108 693.6 Q F0(Perform tilde e)144 705.6 Q +(xpansion on the current w)-.15 E(ord.)-.1 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(43)185.955 E 0 Cg EP +%%Page: 44 44 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(set\255mark \(C\255@, M\255\))108 84 +Q F0(Set the mark to the point.)144 96 Q(If a numeric ar)5 E (gument is supplied, the mark is set to that position.)-.18 E F1 -(exchange\255point\255and\255mark \(C\255x C\255x\))108 336 Q F0(Sw)144 -348 Q .283(ap the point with the mark.)-.1 F .283 +(exchange\255point\255and\255mark \(C\255x C\255x\))108 108 Q F0(Sw)144 +120 Q .282(ap the point with the mark.)-.1 F .283 (The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G -2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa) -144 360 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1 -(character\255sear)108 372 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 384 S -.535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G 3.035(dt) +2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa) +144 132 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1 +(character\255sear)108 144 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 156 S +.536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt) .15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535 -(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05 -(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre) -144 396 Q(vious occurrences.)-.25 E F1(character\255sear)108 408 Q -(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 420 S 1.044 -(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G +(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05 +(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre) +144 168 Q(vious occurrences.)-.25 E F1(character\255sear)108 180 Q +(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 192 S 1.043 +(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044 -(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E +(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G -(count searches for subsequent occurrences.)144 432 Q F1 -(insert\255comment \(M\255#\))108 444 Q F0 -.4(Wi)144 456 S .48 -(thout a numeric ar).4 F .48(gument, the v)-.18 F .481 -(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va) -2.981 G .481(riable is inserted at the).25 F(be)144 468 Q .098 -(ginning of the current line.)-.15 F .098(If a numeric ar)5.098 F .097 -(gument is supplied, this command acts as a toggle:)-.18 F(if)5.097 E -.321(the characters at the be)144 480 R .321 +(count searches for subsequent occurrences.)144 204 Q F1 +(skip\255csi\255sequence \(\))108 216 Q F0 1.827 +(Read enough characters to consume a multi-k)144 228 R 2.126 -.15(ey s) +-.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey)-.1 G +4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 240 R .791 +(Such sequences be)5.79 F .791 +(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F +.332(If this sequence is bound to "\\[", k)144 252 R -.15(ey)-.1 G 2.831 +(sp).15 G .331(roducing such sequences will ha)-2.831 F .631 -.15(ve n) +-.2 H 2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F(xplic-) +-.15 E .026(itly bound to a readline command, instead of inserting stra\ +y characters into the editing b)144 264 R(uf)-.2 E(fer)-.25 E 5.026(.T) +-.55 G(his)-5.026 E(is unbound by def)144 276 Q(ault, b)-.1 E +(ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108 +288 Q F0 -.4(Wi)144 300 S .481(thout a numeric ar).4 F .481 +(gument, the v)-.18 F .481(alue of the readline)-.25 F F1 +(comment\255begin)2.981 E F0 -.25(va)2.981 G .48 +(riable is inserted at the).25 F(be)144 312 Q .097 +(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098 +(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E +.322(the characters at the be)144 324 R .321 (ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1 -(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is) --.25 F .832(inserted, otherwise the characters in)144 492 R F1 -(comment\255begin)3.332 E F0 .831(are deleted from the be)3.332 F .831 -(ginning of the line.)-.15 F 1.468 -(In either case, the line is accepted as if a ne)144 504 R 1.468 -(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F -1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 516 Q F0 .84 -(causes this command to mak)3.34 F 3.339(et)-.1 G .839 -(he current line a shell comment.)-3.339 F .839(If a numeric ar)5.839 F -(gu-)-.18 E(ment causes the comment character to be remo)144 528 Q -.15 +(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is) +-.25 F .831(inserted, otherwise the characters in)144 336 R F1 +(comment\255begin)3.331 E F0 .832(are deleted from the be)3.331 F .832 +(ginning of the line.)-.15 F 1.469 +(In either case, the line is accepted as if a ne)144 348 R 1.468 +(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F +1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 360 Q F0 .839 +(causes this command to mak)3.339 F 3.339(et)-.1 G .839 +(he current line a shell comment.)-3.339 F .84(If a numeric ar)5.84 F +(gu-)-.18 E(ment causes the comment character to be remo)144 372 Q -.15 (ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G -(cuted by the shell.).15 E F1(glob\255complete\255w)108 540 Q -(ord \(M\255g\))-.1 E F0 .791(The w)144 552 R .791 -(ord before point is treated as a pattern for pathname e)-.1 F .792 -(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 564 +(cuted by the shell.).15 E F1(glob\255complete\255w)108 384 Q +(ord \(M\255g\))-.1 E F0 .792(The w)144 396 R .791 +(ord before point is treated as a pattern for pathname e)-.1 F .791 +(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 408 R(pattern is used to generate a list of matching \214le names for possi\ -ble completions.)2.5 E F1(glob\255expand\255w)108 576 Q -(ord \(C\255x *\))-.1 E F0 .372(The w)144 588 R .372 -(ord before point is treated as a pattern for pathname e)-.1 F .371 +ble completions.)2.5 E F1(glob\255expand\255w)108 420 Q +(ord \(C\255x *\))-.1 E F0 .371(The w)144 432 R .372 +(ord before point is treated as a pattern for pathname e)-.1 F .372 (xpansion, and the list of matching \214le)-.15 F .516 -(names is inserted, replacing the w)144 600 R 3.016(ord. If)-.1 F 3.016 +(names is inserted, replacing the w)144 444 R 3.016(ord. If)-.1 F 3.016 (an)3.016 G .516(umeric ar)-3.016 F .516 (gument is supplied, an asterisk is appended)-.18 F(before pathname e) -144 612 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\)) -108 624 Q F0 .923(The list of e)144 636 R .923(xpansions that w)-.15 F +144 456 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\)) +108 468 Q F0 .923(The list of e)144 480 R .923(xpansions that w)-.15 F .923(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1 (glob\255expand\255w)3.423 E(ord)-.1 E F0 .923(is displayed, and)3.423 F -.872(the line is redra)144 648 R 3.372(wn. If)-.15 F 3.372(an)3.372 G +.872(the line is redra)144 492 R 3.372(wn. If)-.15 F 3.372(an)3.372 G .872(umeric ar)-3.372 F .872 (gument is supplied, an asterisk is appended before pathname)-.18 F -.15 -(ex)144 660 S(pansion.).15 E F1(dump\255functions)108 672 Q F0 .627 -(Print all of the functions and their k)144 684 R .927 -.15(ey b)-.1 H -.626(indings to the readline output stream.).15 F .626(If a numeric ar) -5.626 F(gu-)-.18 E -(ment is supplied, the output is formatted in such a w)144 696 Q -(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0 -(\214le.)2.5 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(43)190.95 -E 0 Cg EP -%%Page: 44 44 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(dump\255v)108 84 Q(ariables)-.1 E F0 1.799 -(Print all of the settable readline v)144 96 R 1.799 -(ariables and their v)-.25 F 1.8(alues to the readline output stream.) --.25 F 1.8(If a)6.8 F .305(numeric ar)144 108 R .304 +(ex)144 504 S(pansion.).15 E F1(dump\255functions)108 516 Q F0 .626 +(Print all of the functions and their k)144 528 R .926 -.15(ey b)-.1 H +.627(indings to the readline output stream.).15 F .627(If a numeric ar) +5.627 F(gu-)-.18 E +(ment is supplied, the output is formatted in such a w)144 540 Q +(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr) +2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 552 Q(ariables)-.1 E F0 +1.8(Print all of the settable readline v)144 564 R 1.799 +(ariables and their v)-.25 F 1.799(alues to the readline output stream.) +-.25 F 1.799(If a)6.799 F .304(numeric ar)144 576 R .304 (gument is supplied, the output is formatted in such a w)-.18 F .304 -(ay that it can be made part of an)-.1 F/F2 10/Times-Italic@0 SF(inputr) -144 120 Q(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 132 Q(os)-.18 E -F0 .592(Print all of the readline k)144 144 R .892 -.15(ey s)-.1 H .592 -(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G -3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 156 Q +(ay that it can be made part of an)-.1 F F2(inputr)144 588 Q(c)-.37 E F0 +(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .593 +(Print all of the readline k)144 612 R .893 -.15(ey s)-.1 H .592 +(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G +3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 624 Q .528(gument is supplied, the output is formatted in such a w)-.18 F .528 -(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0 -(\214le.)144 168 Q F1(display\255shell\255v)108 180 Q -(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 192 Q +(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0 +(\214le.)144 636 Q F1(display\255shell\255v)108 648 Q +(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 660 Q (ersion information about the current instance of)-.15 E F1(bash)2.5 E -F0(.)A F1(Pr)87 208.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108 -220.8 R .147(ord completion is attempted for an ar)-.1 F .147 +F0(.)A F1(Pr)87 676.8 Q(ogrammable Completion)-.18 E F0 .147(When w)108 +688.8 R .147(ord completion is attempted for an ar)-.1 F .147 (gument to a command for which a completion speci\214cation \(a)-.18 F -F2(compspec)108 232.8 Q F0 3.829(\)h)C 1.329 -(as been de\214ned using the)-3.829 F F1(complete)3.829 E F0 -.2(bu) +F2(compspec)108 700.8 Q F0 3.828(\)h)C 1.329 +(as been de\214ned using the)-3.828 F F1(complete)3.829 E F0 -.2(bu) 3.829 G 1.329(iltin \(see).2 F/F3 9/Times-Bold@0 SF 1.329(SHELL B)3.829 -F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the) --.25 F(programmable completion f)108 244.8 Q(acilities are in)-.1 E -.2 -(vo)-.4 G -.1(ke).2 G(d.).1 E .333 -(First, the command name is identi\214ed.)108 261.6 R .334 -(If a compspec has been de\214ned for that command, the compspec is) -5.333 F .587 -(used to generate the list of possible completions for the w)108 273.6 R -3.087(ord. If)-.1 F .587(the command w)3.087 F .586 -(ord is a full pathname, a)-.1 F 1.18 -(compspec for the full pathname is searched for \214rst.)108 285.6 R -1.181(If no compspec is found for the full pathname, an)6.181 F -(attempt is made to \214nd a compspec for the portion follo)108 297.6 Q -(wing the \214nal slash.)-.25 E .817(Once a compspec has been found, it\ - is used to generate the list of matching w)108 314.4 R 3.317(ords. If) --.1 F 3.317(ac)3.317 G .817(ompspec is not)-3.317 F(found, the def)108 -326.4 Q(ault)-.1 E F1(bash)2.5 E F0(completion as described abo)2.5 E .3 --.15(ve u)-.15 H(nder).15 E F1(Completing)2.5 E F0(is performed.)2.5 E -.463(First, the actions speci\214ed by the compspec are used.)108 343.2 -R .464(Only matches which are pre\214x)5.464 F .464(ed by the w)-.15 F -.464(ord being)-.1 F .596(completed are returned.)108 355.2 R .596 +F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.329(w\), the) +-.25 F(programmable completion f)108 712.8 Q(acilities are in)-.1 E -.2 +(vo)-.4 G -.1(ke).2 G(d.).1 E .498 +(First, the command name is identi\214ed.)108 729.6 R .498 +(If the command w)5.498 F .497 +(ord is the empty string \(completion attempted at)-.1 F(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(44)185.955 E 0 Cg EP +%%Page: 45 45 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E .233(the be)108 84 R .233(ginning of an empty line\), an)-.15 F +2.733(yc)-.15 G .233(ompspec de\214ned with the)-2.733 F/F1 10 +/Times-Bold@0 SF2.733 E F0 .233(option to)2.733 F F1(complete) +2.733 E F0 .233(is used.)2.733 F .234(If a comp-)5.234 F .481(spec has \ +been de\214ned for that command, the compspec is used to generate the l\ +ist of possible completions)108 96 R .822(for the w)108 108 R 3.322 +(ord. If)-.1 F .822(the command w)3.322 F .823(ord is a full pathname, \ +a compspec for the full pathname is searched for)-.1 F 2.867 +(\214rst. If)108 120 R .366(no compspec is found for the full pathname,\ + an attempt is made to \214nd a compspec for the portion)2.867 F(follo) +108 132 Q .421(wing the \214nal slash.)-.25 F .422 +(If those searches to not result in a compspec, an)5.421 F 2.922(yc)-.15 +G .422(ompspec de\214ned with the)-2.922 F F12.922 E F0(option to) +108 144 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E .817 +(Once a compspec has been found, it is used to generate the list of mat\ +ching w)108 160.8 R 3.317(ords. If)-.1 F 3.317(ac)3.317 G .817 +(ompspec is not)-3.317 F(found, the def)108 172.8 Q(ault)-.1 E F1(bash) +2.5 E F0(completion as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 +E F1(Completing)2.5 E F0(is performed.)2.5 E .463 +(First, the actions speci\214ed by the compspec are used.)108 189.6 R +.464(Only matches which are pre\214x)5.464 F .464(ed by the w)-.15 F +.464(ord being)-.1 F .596(completed are returned.)108 201.6 R .596 (When the)5.596 F F13.096 E F0(or)3.095 E F13.095 E F0 .595 (option is used for \214lename or directory name completion, the)3.095 F -(shell v)108 367.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0 -(is used to \214lter the matches.)2.25 E(An)108 384 Q 2.585(yc)-.15 G -.085(ompletions speci\214ed by a \214lename e)-2.585 F .085 -(xpansion pattern to the)-.15 F F12.585 E F0 .085 -(option are generated ne)2.585 F 2.585(xt. The)-.15 F -.1(wo)2.585 G -(rds).1 E .844(generated by the pattern need not match the w)108 396 R -.844(ord being completed.)-.1 F(The)5.844 E F3(GLOBIGNORE)3.343 E F0 -.843(shell v)3.093 F .843(ariable is)-.25 F -(not used to \214lter the matches, b)108 408 Q(ut the)-.2 E F3(FIGNORE) -2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 424.8 Q .32 -(xt, the string speci\214ed as the ar)-.15 F .32(gument to the)-.18 F F1 -2.82 E F0 .321(option is considered.)2.821 F .321 +(shell v)108 213.6 Q(ariable)-.25 E/F2 9/Times-Bold@0 SF(FIGNORE)2.5 E +F0(is used to \214lter the matches.)2.25 E(An)108 230.4 Q 4.084(yc)-.15 +G 1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584 +(xpansion pattern to the)-.15 F F14.084 E F0 1.584 +(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 242.4 S +.555(rds generated by the pattern need not match the w).1 F .554 +(ord being completed.)-.1 F(The)5.554 E F2(GLOBIGNORE)3.054 E F0 .554 +(shell v)2.804 F(ari-)-.25 E +(able is not used to \214lter the matches, b)108 254.4 Q(ut the)-.2 E F2 +(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 271.2 Q +.32(xt, the string speci\214ed as the ar)-.15 F .32(gument to the)-.18 F +F12.82 E F0 .321(option is considered.)2.821 F .321 (The string is \214rst split using the)5.321 F .413(characters in the) -108 436.8 R F3(IFS)2.913 E F0 .412(special v)2.663 F .412 +108 283.2 R F2(IFS)2.913 E F0 .412(special v)2.663 F .412 (ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F .412(Each w)5.412 F .412(ord is then e)-.1 F(xpanded)-.15 E .091 -(using brace e)108 448.8 R .091(xpansion, tilde e)-.15 F .092 +(using brace e)108 295.2 R .091(xpansion, tilde e)-.15 F .092 (xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .092 (xpansion, command substitution, and arith-)-.15 F 1.397(metic e)108 -460.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H -(nder).15 E F3(EXP)3.896 E(ANSION)-.666 E/F4 9/Times-Roman@0 SF(.)A F0 +307.2 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H +(nder).15 E F2(EXP)3.896 E(ANSION)-.666 E/F3 9/Times-Roman@0 SF(.)A F0 1.396(The results are split using the rules described)5.896 F(abo)108 -472.8 Q .509 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.709 G .209 +319.2 Q .509 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.709 G .209 (rd Splitting).75 F F0 5.209(.T)C .209(he results of the e)-5.209 F .209 (xpansion are pre\214x-matched ag)-.15 F .21(ainst the w)-.05 F .21 -(ord being com-)-.1 F(pleted, and the matching w)108 484.8 Q +(ord being com-)-.1 F(pleted, and the matching w)108 331.2 Q (ords become the possible completions.)-.1 E 1.238 -(After these matches ha)108 501.6 R 1.538 -.15(ve b)-.2 H 1.238 +(After these matches ha)108 348 R 1.538 -.15(ve b)-.2 H 1.238 (een generated, an).15 F 3.738(ys)-.15 G 1.237 (hell function or command speci\214ed with the)-3.738 F F13.737 E -F0(and)3.737 E F13.737 E F0 3.375(options is in)108 513.6 R -.2 -(vo)-.4 G -.1(ke).2 G 5.875(d. When).1 F 3.375 +F0(and)3.737 E F13.737 E F0 3.375(options is in)108 360 R -.2(vo) +-.4 G -.1(ke).2 G 5.875(d. When).1 F 3.375 (the command or function is in)5.875 F -.2(vo)-.4 G -.1(ke).2 G 3.375 -(d, the).1 F F3(COMP_LINE)5.876 E F4(,)A F3(COMP_POINT)5.626 E F4(,)A F3 -(COMP_KEY)108 525.6 Q F4(,)A F0(and)2.408 E F3(COMP_TYPE)2.658 E F0 -.25 +(d, the).1 F F2(COMP_LINE)5.876 E F3(,)A F2(COMP_POINT)5.626 E F3(,)A F2 +(COMP_KEY)108 372 Q F3(,)A F0(and)2.408 E F2(COMP_TYPE)2.658 E F0 -.25 (va)2.408 G .157(riables are assigned v).25 F .157 (alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .157 (Shell V)2.657 F(ariables)-.92 E F0 5.157(.I)C(f)-5.157 E 3.485(as)108 -537.6 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G -.986(d, the).1 F F3(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F3 +384 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G +.986(d, the).1 F F2(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F2 (COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986 (riables are also set.).25 F(When)5.986 E .609 -(the function or command is in)108 549.6 R -.2(vo)-.4 G -.1(ke).2 G .608 +(the function or command is in)108 396 R -.2(vo)-.4 G -.1(ke).2 G .608 (d, the \214rst ar).1 F .608(gument is the name of the command whose ar) -.18 F .608(guments are)-.18 F .073(being completed, the second ar)108 -561.6 R .073(gument is the w)-.18 F .073 +408 R .073(gument is the w)-.18 F .073 (ord being completed, and the third ar)-.1 F .073(gument is the w)-.18 F -.073(ord pre-)-.1 F .608(ceding the w)108 573.6 R .607 +.073(ord pre-)-.1 F .608(ceding the w)108 420 R .607 (ord being completed on the current command line.)-.1 F .607 -(No \214ltering of the generated completions)5.607 F(ag)108 585.6 Q .093 +(No \214ltering of the generated completions)5.607 F(ag)108 432 Q .093 (ainst the w)-.05 F .093(ord being completed is performed; the function\ or command has complete freedom in generat-)-.1 F(ing the matches.)108 -597.6 Q(An)108 614.4 Q 2.938(yf)-.15 G .437(unction speci\214ed with) +444 Q(An)108 460.8 Q 2.938(yf)-.15 G .437(unction speci\214ed with) -2.938 F F12.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G 2.937<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F 2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .437 -(acilities, including)-.1 F(the)108 626.4 Q F1(compgen)2.956 E F0 -.2 +(acilities, including)-.1 F(the)108 472.8 Q F1(compgen)2.956 E F0 -.2 (bu)2.956 G .456(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956 (og).65 G .456(enerate the matches.)-2.956 F .457 -(It must put the possible completions in the)5.456 F F3(COMPREPL)108 -638.4 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 655.2 Q .081 +(It must put the possible completions in the)5.456 F F2(COMPREPL)108 +484.8 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 501.6 Q .081 (xt, an)-.15 F 2.581(yc)-.15 G .081(ommand speci\214ed with the)-2.581 F F12.581 E F0 .081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581(di).1 G 2.58(na)-2.581 G 2.58(ne)-2.58 G -.4(nv)-2.58 G .08 (ironment equi).4 F -.25(va)-.25 G .08(lent to command sub-).25 F 2.858 -(stitution. It)108 667.2 R .359(should print a list of completions, one\ +(stitution. It)108 513.6 R .359(should print a list of completions, one\ per line, to the standard output.)2.858 F .359(Backslash may be used) -5.359 F(to escape a ne)108 679.2 Q(wline, if necessary)-.25 E(.)-.65 E -.377(After all of the possible completions are generated, an)108 696 R +5.359 F(to escape a ne)108 525.6 Q(wline, if necessary)-.25 E(.)-.65 E +.377(After all of the possible completions are generated, an)108 542.4 R 2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F12.876 -E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 708 R +E F0 .376(option is applied to the)2.876 F 3.181(list. The)108 554.4 R .681(\214lter is a pattern as used for pathname e)3.181 F .681 (xpansion; a)-.15 F F1(&)3.181 E F0 .682 (in the pattern is replaced with the te)3.182 F .682(xt of)-.15 F .523 -(the w)108 720 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G +(the w)108 566.4 R .523(ord being completed.)-.1 F 3.023(Al)5.523 G (iteral)-3.023 E F1(&)3.023 E F0 .522 (may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve) --.15 G 3.022(db).15 G(efore)-3.022 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(44)190.95 E 0 Cg EP -%%Page: 45 45 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .849(attempting a match.)108 84 R(An)5.849 E 3.349(yc)-.15 G .849 +-.15 G 3.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 578.4 +R(An)5.849 E 3.349(yc)-.15 G .849 (ompletion that matches the pattern will be remo)-3.349 F -.15(ve)-.15 G -3.35(df).15 G .85(rom the list.)-3.35 F 3.35(Al)5.85 G(eading)-3.35 E/F1 -10/Times-Bold@0 SF(!)3.35 E F0(ne)108 96 Q -.05(ga)-.15 G +3.35(df).15 G .85(rom the list.)-3.35 F 3.35(Al)5.85 G(eading)-3.35 E F1 +(!)3.35 E F0(ne)108 590.4 Q -.05(ga)-.15 G (tes the pattern; in this case an).05 E 2.5(yc)-.15 G (ompletion not matching the pattern will be remo)-2.5 E -.15(ve)-.15 G -(d.).15 E(Finally)108 112.8 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H +(d.).15 E(Finally)108 607.2 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H .587(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F1 3.087 E F0(and)3.087 E F13.087 E F0 .587 (options are added to each member of the com-)3.087 F(pletion list, and\ the result is returned to the readline completion code as the list of \ -possible completions.)108 124.8 Q .246(If the pre)108 141.6 R .247 +possible completions.)108 619.2 Q .246(If the pre)108 636 R .247 (viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G .247 (atches, and the)-2.747 F F1 .247(\255o dir)2.747 F(names)-.15 E F0 .247 -(option w)2.747 F .247(as supplied to)-.1 F F1(complete)108 153.6 Q F0 +(option w)2.747 F .247(as supplied to)-.1 F F1(complete)108 648 Q F0 (when the compspec w)2.5 E (as de\214ned, directory name completion is attempted.)-.1 E .462 -(If the)108 170.4 R F1 .462(\255o plusdirs)2.962 F F0 .462(option w) +(If the)108 664.8 R F1 .462(\255o plusdirs)2.962 F F0 .462(option w) 2.962 F .462(as supplied to)-.1 F F1(complete)2.962 E F0 .462 (when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1 -F(pletion is attempted and an)108 182.4 Q 2.5(ym)-.15 G +F(pletion is attempted and an)108 676.8 Q 2.5(ym)-.15 G (atches are added to the results of the other actions.)-2.5 E .559 -(By def)108 199.2 R .559(ault, if a compspec is found, whate)-.1 F -.15 +(By def)108 693.6 R .559(ault, if a compspec is found, whate)-.1 F -.15 (ve)-.25 G 3.059(ri).15 G 3.059(tg)-3.059 G .56 (enerates is returned to the completion code as the full set)-3.059 F -.632(of possible completions.)108 211.2 R .632(The def)5.632 F(ault)-.1 +.632(of possible completions.)108 705.6 R .632(The def)5.632 F(ault)-.1 E F1(bash)3.132 E F0 .631 (completions are not attempted, and the readline def)3.131 F .631 -(ault of \214le-)-.1 F .558(name completion is disabled.)108 223.2 R +(ault of \214le-)-.1 F .558(name completion is disabled.)108 717.6 R .558(If the)5.558 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w) 3.059 F .559(as supplied to)-.1 F F1(complete)3.059 E F0 .559 -(when the compspec)3.059 F -.1(wa)108 235.2 S 3.172(sd).1 G .672 +(when the compspec)3.059 F -.1(wa)108 729.6 S 3.172(sd).1 G .672 (e\214ned, the)-3.172 F F1(bash)3.172 E F0(def)3.172 E .671 (ault completions are attempted if the compspec generates no matches.) --.1 F .671(If the)5.671 F F13.171 E(default)108 247.2 Q F0 1.207 -(option w)3.706 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0 -1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F -3.707(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F -(will be performed if the compspec \(and, if attempted, the def)108 -259.2 Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.) -2.5 E .245(When a compspec indicates that directory name completion is \ -desired, the programmable completion func-)108 276 R .632(tions force r\ -eadline to append a slash to completed names which are symbolic links t\ -o directories, subject)108 288 R 2.762(to the v)108 300 R 2.762 +-.1 F .671(If the)5.671 F F13.171 E F0(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(45)185.955 E 0 Cg EP +%%Page: 46 46 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(default)108 84 Q F0 1.207(option w)3.706 F +1.207(as supplied to)-.1 F F1(complete)3.707 E F0 1.207 +(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F 3.707 +(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F +(will be performed if the compspec \(and, if attempted, the def)108 96 Q +(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)2.5 E +.245(When a compspec indicates that directory name completion is desire\ +d, the programmable completion func-)108 112.8 R .632(tions force readl\ +ine to append a slash to completed names which are symbolic links to di\ +rectories, subject)108 124.8 R 2.762(to the v)108 136.8 R 2.762 (alue of the)-.25 F F1(mark\255dir)5.262 E(ectories)-.18 E F0 2.761 (readline v)5.262 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.761 -(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 312 Q -(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E/F2 -10.95/Times-Bold@0 SF(HIST)72 328.8 Q(OR)-.197 E(Y)-.383 E F0 .371 -(When the)108 340.8 R F1 .371(\255o history)2.871 F F0 .371 -(option to the)2.871 F F1(set)2.872 E F0 -.2(bu)2.872 G .372 -(iltin is enabled, the shell pro).2 F .372(vides access to the)-.15 F/F3 -10/Times-Italic@0 SF .372(command history)2.872 F F0(,)A .032 -(the list of commands pre)108 352.8 R .031(viously typed.)-.25 F .031 -(The v)5.031 F .031(alue of the)-.25 F F1(HISTSIZE)2.531 E F0 -.25(va) -2.531 G .031(riable is used as the number of com-).25 F .429 -(mands to sa)108 364.8 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429 -(istory list.)-2.929 F .429(The te)5.429 F .429(xt of the last)-.15 F/F4 -9/Times-Bold@0 SF(HISTSIZE)2.93 E F0 .43(commands \(def)2.68 F .43 -(ault 500\) is sa)-.1 F -.15(ve)-.2 G 2.93(d. The).15 F(shell)2.93 E -.287(stores each command in the history list prior to parameter and v) -108 376.8 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F4(EXP) -2.787 E(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 -388.8 S 4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565 +(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 148.8 +Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E +.19(There is some support for dynamically modifying completions.)108 +165.6 R .191(This is most useful when used in combina-)5.191 F 1.33 +(tion with a def)108 177.6 R 1.33(ault completion speci\214ed with)-.1 F +F1 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83(sp)-.55 G 1.33 +(ossible for shell functions e)-3.83 F -.15(xe)-.15 G 1.33(cuted as).15 +F .93(completion handlers to indicate that completion should be retried\ + by returning an e)108 189.6 R .93(xit status of 124.)-.15 F .93(If a) +5.93 F .1(shell function returns 124, and changes the compspec associat\ +ed with the command on which completion is)108 201.6 R .665 +(being attempted \(supplied as the \214rst ar)108 213.6 R .666 +(gument when the function is e)-.18 F -.15(xe)-.15 G .666 +(cuted\), programmable completion).15 F 1.139(restarts from the be)108 +225.6 R 1.139 +(ginning, with an attempt to \214nd a compspec for that command.)-.15 F +1.139(This allo)6.139 F 1.138(ws a set of)-.25 F(completions to be b)108 +237.6 Q(uilt dynamically as completion is attempted, rather than being \ +loaded all at once.)-.2 E -.15(Fo)108 254.4 S 2.636(ri).15 G .137 +(nstance, assuming that there is a library of compspecs, each k)-2.636 F +.137(ept in a \214le corresponding to the name of)-.1 F +(the command, the follo)108 266.4 Q(wing def)-.25 E +(ault completion function w)-.1 E(ould load completions dynamically:)-.1 +E/F2 10/Courier@0 SF(_completion_loader\(\))108 283.2 Q({)108 295.2 Q 6 +(.")144 307.2 S +(/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124)-6 E(})108 +319.2 Q(complete -D -F _completion_loader)108 331.2 Q/F3 10.95 +/Times-Bold@0 SF(HIST)72 360 Q(OR)-.197 E(Y)-.383 E F0 .372(When the)108 +372 R F1 .372(\255o history)2.872 F F0 .372(option to the)2.872 F F1 +(set)2.872 E F0 -.2(bu)2.872 G .372(iltin is enabled, the shell pro).2 F +.371(vides access to the)-.15 F/F4 10/Times-Italic@0 SF .371 +(command history)2.871 F F0(,)A .304(the list of commands pre)108 384 R +.304(viously typed.)-.25 F .304(The v)5.304 F .304(alue of the)-.25 F/F5 +9/Times-Bold@0 SF(HISTSIZE)2.804 E F0 -.25(va)2.554 G .305 +(riable is used as the number of com-).25 F .43(mands to sa)108 396 R +.73 -.15(ve i)-.2 H 2.93(nah).15 G .43(istory list.)-2.93 F .43(The te) +5.43 F .429(xt of the last)-.15 F F5(HISTSIZE)2.929 E F0 .429 +(commands \(def)2.679 F .429(ault 500\) is sa)-.1 F -.15(ve)-.2 G 2.929 +(d. The).15 F(shell)2.929 E .287 +(stores each command in the history list prior to parameter and v)108 +408 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F5(EXP)2.787 E +(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 420 S +4.066(ta).2 G 1.565(fter history e)-4.066 F 1.565 (xpansion is performed, subject to the v)-.15 F 1.565 -(alues of the shell v)-.25 F(ariables)-.25 E F4(HISTIGNORE)4.065 E F0 -(and)3.816 E F4(HISTCONTR)108 400.8 Q(OL)-.27 E/F5 9/Times-Roman@0 SF(.) -A F0 .082 +(alues of the shell v)-.25 F(ariables)-.25 E F5(HISTIGNORE)4.065 E F0 +(and)3.815 E F5(HISTCONTR)108 432 Q(OL)-.27 E/F6 9/Times-Roman@0 SF(.)A +F0 .082 (On startup, the history is initialized from the \214le named by the v) -108 417.6 R(ariable)-.25 E F4(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1 -E F3(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108 -429.6 R .315(alue of)-.25 F F4(HISTFILE)2.815 E F0 .315 +108 448.8 R(ariable)-.25 E F5(HISTFILE)2.583 E F0(\(def)2.333 E(ault)-.1 +E F4(~/.bash_history)2.583 E F0(\).)A .315(The \214le named by the v)108 +460.8 R .315(alue of)-.25 F F5(HISTFILE)2.815 E F0 .315 (is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815(oc)-2.815 G .315(ontain no more than the number of)-2.815 F .532 -(lines speci\214ed by the v)108 441.6 R .532(alue of)-.25 F F4 -(HISTFILESIZE)3.032 E F5(.)A F0 .532 +(lines speci\214ed by the v)108 472.8 R .532(alue of)-.25 F F5 +(HISTFILESIZE)3.032 E F6(.)A F0 .532 (When the history \214le is read, lines be)5.032 F .532 -(ginning with the his-)-.15 F 1.158(tory comment character follo)108 -453.6 R 1.159(wed immediately by a digit are interpreted as timestamps \ -for the preceding)-.25 F .053(history line.)108 465.6 R .053 -(These timestamps are optionally displayed depending on the v)5.053 F -.052(alue of the)-.25 F F4(HISTTIMEFORMA)2.552 E(T)-.855 E F0 -.25(va) -108 477.6 S 4.386(riable. When).25 F 1.886(an interacti)4.386 F 2.187 --.15(ve s)-.25 H 1.887(hell e).15 F 1.887(xits, the last)-.15 F F4 +(ginning with the his-)-.15 F 1.159(tory comment character follo)108 +484.8 R 1.158(wed immediately by a digit are interpreted as timestamps \ +for the preceding)-.25 F .052(history line.)108 496.8 R .053 +(These timestamps are optionally displayed depending on the v)5.052 F +.053(alue of the)-.25 F F5(HISTTIMEFORMA)2.553 E(T)-.855 E F0 -.25(va) +108 508.8 S 4.387(riable. When).25 F 1.887(an interacti)4.387 F 2.187 +-.15(ve s)-.25 H 1.887(hell e).15 F 1.887(xits, the last)-.15 F F5 ($HISTSIZE)4.387 E F0 1.887(lines are copied from the history list to) -4.137 F F4($HISTFILE)108 489.6 Q F5(.)A F0 .056(If the)4.556 F F1 +4.137 F F5($HISTFILE)108 520.8 Q F6(.)A F0 .056(If the)4.556 F F1 (histappend)2.556 E F0 .056 (shell option is enabled \(see the description of)2.556 F F1(shopt)2.556 -E F0(under)2.556 E F4 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E -(COMMANDS)108 501.6 Q F0(belo)2.671 E .422(w\), the lines are appended \ +E F0(under)2.556 E F5 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E +(COMMANDS)108 532.8 Q F0(belo)2.672 E .422(w\), the lines are appended \ to the history \214le, otherwise the history \214le is o)-.25 F -.15(ve) --.15 G 2.922(rwritten. If).15 F F4(HISTFILE)108 513.6 Q F0 1.114(is uns\ -et, or if the history \214le is unwritable, the history is not sa)3.364 -F -.15(ve)-.2 G 3.614(d. If).15 F(the)3.614 E F5 -.225(va)3.613 G 1.113 -(riable is set, time).225 F 1.251 -(stamps are written to the history \214le, mark)108 525.6 R(ed)-.09 E F0 -1.252(with the history comment character)3.502 F 3.752(,s)-.4 G 3.752 -(ot)-3.752 G(he)-3.752 E 3.752(ym)-.15 G 1.252(ay be preserv)-3.752 F -(ed)-.15 E .105(across shell sessions.)108 537.6 R .105(This uses the h\ -istory comment character to distinguish timestamps from other history) -5.105 F 2.604(lines. After)108 549.6 R(sa)2.604 E .104(ving the history) --.2 F 2.604(,t)-.65 G .104 -(he history \214le is truncated to contain no more than)-2.604 F F4 -(HISTFILESIZE)2.605 E F0 2.605(lines. If)2.355 F F4(HISTFILESIZE)108 -561.6 Q F0(is not set, no truncation is performed.)2.25 E 1.294(The b) -108 578.4 R 1.294(uiltin command)-.2 F F1(fc)3.794 E F0(\(see)3.794 E F4 -1.293(SHELL B)3.794 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo) -3.543 E 1.293(w\) may be used to list or edit and re-)-.25 F -.15(exe) -108 590.4 S .673(cute a portion of the history list.).15 F(The)5.673 E +-.15 G 2.921(rwritten. If).15 F F5(HISTFILE)108 544.8 Q F0 .435(is unse\ +t, or if the history \214le is unwritable, the history is not sa)2.684 F +-.15(ve)-.2 G 2.935(d. If).15 F(the)2.935 E F5(HISTTIMEFORMA)2.935 E(T) +-.855 E F0 -.25(va)108 556.8 S .917 +(riable is set, time stamps are written to the history \214le, mark).25 +F .916(ed with the history comment character)-.1 F 3.416(,s)-.4 G(o) +-3.416 E(the)108 568.8 Q 3.082(ym)-.15 G .582(ay be preserv)-3.082 F +.582(ed across shell sessions.)-.15 F .583 +(This uses the history comment character to distinguish time-)5.583 F +.987(stamps from other history lines.)108 580.8 R .987(After sa)5.987 F +.987(ving the history)-.2 F 3.486(,t)-.65 G .986 +(he history \214le is truncated to contain no more)-3.486 F(than)108 +592.8 Q F5(HISTFILESIZE)2.5 E F0 2.5(lines. If)2.25 F F5(HISTFILESIZE) +2.5 E F0(is not set, no truncation is performed.)2.25 E 1.293(The b)108 +609.6 R 1.293(uiltin command)-.2 F F1(fc)3.793 E F0(\(see)3.793 E F5 +1.293(SHELL B)3.793 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo) +3.543 E 1.294(w\) may be used to list or edit and re-)-.25 F -.15(exe) +108 621.6 S .674(cute a portion of the history list.).15 F(The)5.673 E F1(history)3.173 E F0 -.2(bu)3.173 G .673 -(iltin may be used to display or modify the history list).2 F .28 -(and manipulate the history \214le.)108 602.4 R .279 +(iltin may be used to display or modify the history list).2 F .279 +(and manipulate the history \214le.)108 633.6 R .279 (When using command-line editing, search commands are a)5.279 F -.25(va) --.2 G .279(ilable in each).25 F(editing mode that pro)108 614.4 Q -(vide access to the history list.)-.15 E 1.485(The shell allo)108 631.2 -R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486 +-.2 G .28(ilable in each).25 F(editing mode that pro)108 645.6 Q +(vide access to the history list.)-.15 E 1.486(The shell allo)108 662.4 +R 1.486(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486 (hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt) --3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F4(HISTCONTR)3.986 -E(OL)-.27 E F0(and)3.736 E F4(HISTIGNORE)108 643.2 Q F0 -.25(va)2.708 G -.458(riables may be set to cause the shell to sa).25 F .757 -.15(ve o) --.2 H .457(nly a subset of the commands entered.).15 F(The)5.457 E F1 -(cmdhist)108 655.2 Q F0 .75 +-3.986 G 1.486(he history list.)-3.986 F(The)6.485 E F5(HISTCONTR)3.985 +E(OL)-.27 E F0(and)3.735 E F5(HISTIGNORE)108 674.4 Q F0 -.25(va)2.707 G +.457(riables may be set to cause the shell to sa).25 F .758 -.15(ve o) +-.2 H .458(nly a subset of the commands entered.).15 F(The)5.458 E F1 +(cmdhist)108 686.4 Q F0 .75 (shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05 -.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077 -(the same history entry)108 667.2 R 3.577(,a)-.65 G 1.077 +(the same history entry)108 698.4 R 3.577(,a)-.65 G 1.077 (dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G -1.077(yntactic correctness.)-3.577 F(The)6.077 E F1(lithist)3.576 E F0 -.373(shell option causes the shell to sa)108 679.2 R .674 -.15(ve t)-.2 -H .374(he command with embedded ne).15 F .374 -(wlines instead of semicolons.)-.25 F .374(See the)5.374 F .319 -(description of the)108 691.2 R F1(shopt)2.819 E F0 -.2(bu)2.819 G .318 -(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F4 .318(SHELL B)2.818 F -(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .318 -(for information on setting and)2.568 F(unsetting shell options.)108 -703.2 Q(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(45)190.95 E 0 Cg -EP -%%Page: 46 46 +1.077(yntactic correctness.)-3.577 F(The)6.077 E F1(lithist)3.577 E F0 +.374(shell option causes the shell to sa)108 710.4 R .674 -.15(ve t)-.2 +H .374(he command with embedded ne).15 F .373 +(wlines instead of semicolons.)-.25 F .373(See the)5.373 F .318 +(description of the)108 722.4 R F1(shopt)2.818 E F0 -.2(bu)2.818 G .318 +(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F5 .318(SHELL B)2.818 F +(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .319 +(for information on setting and)2.568 F(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(46)185.955 E 0 Cg EP +%%Page: 47 47 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10.95/Times-Bold@0 SF(HIST)72 84 Q(OR)-.197 E 2.738(YE)-.383 G -(XP)-2.738 E(ANSION)-.81 E F0 .61(The shell supports a history e)108 96 -R .611(xpansion feature that is similar to the history e)-.15 F .611 -(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(csh.)3.111 E F0 .611 -(This section)5.611 F .871(describes what syntax features are a)108 108 +-.35 E(unsetting shell options.)108 84 Q/F1 10.95/Times-Bold@0 SF(HIST) +72 100.8 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E(ANSION)-.81 E F0 .611 +(The shell supports a history e)108 112.8 R .611 +(xpansion feature that is similar to the history e)-.15 F .61 +(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(csh.)3.11 E F0 .61 +(This section)5.61 F .87(describes what syntax features are a)108 124.8 R -.25(va)-.2 G 3.371(ilable. This).25 F .871(feature is enabled by def) -3.371 F .87(ault for interacti)-.1 F 1.17 -.15(ve s)-.25 H .87 -(hells, and).15 F 2.013(can be disabled using the)108 120 R F2(+H)4.514 -E F0 2.014(option to the)4.514 F F2(set)4.514 E F0 -.2(bu)4.514 G 2.014 -(iltin command \(see).2 F/F3 9/Times-Bold@0 SF 2.014(SHELL B)4.514 F -(UIL)-.09 E 2.014(TIN COMMANDS)-.828 F F0(belo)108 132 Q 2.5 +3.371 F .871(ault for interacti)-.1 F 1.171 -.15(ve s)-.25 H .871 +(hells, and).15 F 2.014(can be disabled using the)108 136.8 R F2(+H) +4.514 E F0 2.014(option to the)4.514 F F2(set)4.514 E F0 -.2(bu)4.514 G +2.014(iltin command \(see).2 F/F3 9/Times-Bold@0 SF 2.013(SHELL B)4.513 +F(UIL)-.09 E 2.013(TIN COMMANDS)-.828 F F0(belo)108 148.8 Q 2.5 (w\). Non-interacti)-.25 F .3 -.15(ve s)-.25 H (hells do not perform history e).15 E(xpansion by def)-.15 E(ault.)-.1 E -1.306(History e)108 148.8 R 1.306(xpansions introduce w)-.15 F 1.306(or\ +1.305(History e)108 165.6 R 1.305(xpansions introduce w)-.15 F 1.306(or\ ds from the history list into the input stream, making it easy to repea\ -t)-.1 F .209(commands, insert the ar)108 160.8 R .209(guments to a pre) --.18 F .21 +t)-.1 F .21(commands, insert the ar)108 177.6 R .21(guments to a pre) +-.18 F .209 (vious command into the current input line, or \214x errors in pre)-.25 -F(vious)-.25 E(commands quickly)108 172.8 Q(.)-.65 E 1.164(History e)108 -189.6 R 1.163(xpansion is performed immediately after a complete line i\ -s read, before the shell breaks it into)-.15 F -.1(wo)108 201.6 S 3.2 +F(vious)-.25 E(commands quickly)108 189.6 Q(.)-.65 E 1.163(History e)108 +206.4 R 1.163(xpansion is performed immediately after a complete line i\ +s read, before the shell breaks it into)-.15 F -.1(wo)108 218.4 S 3.2 (rds. It).1 F(tak)3.2 E .7(es place in tw)-.1 F 3.2(op)-.1 G 3.2 (arts. The)-3.2 F .7 (\214rst is to determine which line from the history list to use during) -3.2 F 4.368(substitution. The)108 213.6 R 1.868(second is to select por\ -tions of that line for inclusion into the current one.)4.368 F 1.867 -(The line)6.867 F .662(selected from the history is the)108 225.6 R/F4 -10/Times-Italic@0 SF -.15(ev)3.162 G(ent).15 E F0 3.162(,a)C .663 -(nd the portions of that line that are acted upon are)-3.162 F F4(wor) -3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F4(modi\214er)108 237.6 -Q(s)-.1 E F0 .227(are a)2.727 F -.25(va)-.2 G .227 -(ilable to manipulate the selected w).25 F 2.727(ords. The)-.1 F .226 -(line is brok)2.726 F .226(en into w)-.1 F .226(ords in the same f)-.1 F -(ashion)-.1 E .351(as when reading input, so that se)108 249.6 R -.15 -(ve)-.25 G(ral).15 E F4(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .352 -(-separated w)B .352(ords surrounded by quotes are considered)-.1 F .625 -(one w)108 261.6 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624 -(pansions are introduced by the appearance of the history e).15 F .624 -(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 273.6 Q +3.2 F 4.367(substitution. The)108 230.4 R 1.868(second is to select por\ +tions of that line for inclusion into the current one.)4.367 F 1.868 +(The line)6.868 F .663(selected from the history is the)108 242.4 R/F4 +10/Times-Italic@0 SF -.15(ev)3.163 G(ent).15 E F0 3.163(,a)C .663 +(nd the portions of that line that are acted upon are)-3.163 F F4(wor) +3.162 E(ds)-.37 E F0 5.662(.V)C(arious)-6.772 E F4(modi\214er)108 254.4 +Q(s)-.1 E F0 .226(are a)2.726 F -.25(va)-.2 G .226 +(ilable to manipulate the selected w).25 F 2.726(ords. The)-.1 F .227 +(line is brok)2.726 F .227(en into w)-.1 F .227(ords in the same f)-.1 F +(ashion)-.1 E .352(as when reading input, so that se)108 266.4 R -.15 +(ve)-.25 G(ral).15 E F4(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .351 +(-separated w)B .351(ords surrounded by quotes are considered)-.1 F .624 +(one w)108 278.4 R 3.124(ord. History)-.1 F -.15(ex)3.124 G .624 +(pansions are introduced by the appearance of the history e).15 F .625 +(xpansion character)-.15 F 3.125(,w)-.4 G(hich)-3.125 E(is)108 290.4 Q F2(!)3.333 E F0(by def)3.333 E 2.5(ault. Only)-.1 F(backslash \()2.5 E F2(\\).833 E F0 2.5(\)a).833 G(nd single quotes can quote the history e) --2.5 E(xpansion character)-.15 E(.)-.55 E(Se)108 290.4 Q -.15(ve)-.25 G +-2.5 E(xpansion character)-.15 E(.)-.55 E(Se)108 307.2 Q -.15(ve)-.25 G .03(ral characters inhibit history e).15 F .03 (xpansion if found immediately follo)-.15 F .03(wing the history e)-.25 -F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 302.4 T -3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G +F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 319.2 T +3.162(ni).25 G 3.162(fi)-3.162 G 3.162(ti)-3.162 G 3.162(su)-3.162 G .662(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and) -.25 F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2 -(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.162 E -F0(will also inhibit e)108 314.4 Q(xpansion.)-.15 E(Se)108 331.2 Q -.15 -(ve)-.25 G .109(ral shell options settable with the).15 F F2(shopt)2.609 -E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11 -(vior of history e)-.2 F(xpansion.)-.15 E 1.259(If the)108 343.2 R F2 -(histv)3.759 E(erify)-.1 E F0 1.259 -(shell option is enabled \(see the description of the)3.759 F F2(shopt) -3.759 E F0 -.2(bu)3.759 G 1.259(iltin\), and).2 F F2 -.18(re)3.758 G -(adline).18 E F0 1.258(is being)3.758 F 1.497(used, history substitutio\ -ns are not immediately passed to the shell parser)108 355.2 R 6.498(.I) --.55 G 1.498(nstead, the e)-6.498 F 1.498(xpanded line is)-.15 F 2.228 -(reloaded into the)108 367.2 R F2 -.18(re)4.728 G(adline).18 E F0 2.228 -(editing b)4.728 F(uf)-.2 E 2.228(fer for further modi\214cation.)-.25 F -(If)7.228 E F2 -.18(re)4.728 G(adline).18 E F0 2.228 -(is being used, and the)4.728 F F2(histr)108 379.2 Q(eedit)-.18 E F0 -1.202(shell option is enabled, a f)3.702 F 1.202 +(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.163 E +F0(will also inhibit e)108 331.2 Q(xpansion.)-.15 E(Se)108 348 Q -.15 +(ve)-.25 G .11(ral shell options settable with the).15 F F2(shopt)2.61 E +F0 -.2(bu)2.61 G .109(iltin may be used to tailor the beha).2 F .109 +(vior of history e)-.2 F(xpansion.)-.15 E 1.142(If the)108 360 R F2 +(histv)3.643 E(erify)-.1 E F0 1.143 +(shell option is enabled \(see the description of the)3.643 F F2(shopt) +3.643 E F0 -.2(bu)3.643 G 1.143(iltin belo).2 F 1.143(w\), and)-.25 F F2 +-.18(re)3.643 G(adline).18 E F0(is)3.643 E .461(being used, history sub\ +stitutions are not immediately passed to the shell parser)108 372 R 5.46 +(.I)-.55 G .46(nstead, the e)-5.46 F .46(xpanded line)-.15 F 1.515 +(is reloaded into the)108 384 R F2 -.18(re)4.015 G(adline).18 E F0 1.515 +(editing b)4.015 F(uf)-.2 E 1.516(fer for further modi\214cation.)-.25 F +(If)6.516 E F2 -.18(re)4.016 G(adline).18 E F0 1.516 +(is being used, and the)4.016 F F2(histr)108 396 Q(eedit)-.18 E F0 1.202 +(shell option is enabled, a f)3.702 F 1.202 (ailed history substitution will be reloaded into the)-.1 F F2 -.18(re) -3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 391.2 S -.25(ff).2 G -1.161(er for correction.).25 F(The)6.161 E F23.661 E F0 1.161 -(option to the)3.661 F F2(history)3.661 E F0 -.2(bu)3.661 G 1.16 -(iltin command may be used to see what a history).2 F -.15(ex)108 403.2 -S .055(pansion will do before using it.).15 F(The)5.055 E F22.555 -E F0 .055(option to the)2.555 F F2(history)2.556 E F0 -.2(bu)2.556 G -.056(iltin may be used to add commands to the).2 F -(end of the history list without actually e)108 415.2 Q -.15(xe)-.15 G +3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 408 S -.25(ff).2 G +1.16(er for correction.).25 F(The)6.16 E F23.66 E F0 1.16 +(option to the)3.66 F F2(history)3.66 E F0 -.2(bu)3.661 G 1.161 +(iltin command may be used to see what a history).2 F -.15(ex)108 420 S +.056(pansion will do before using it.).15 F(The)5.056 E F22.556 E +F0 .056(option to the)2.556 F F2(history)2.555 E F0 -.2(bu)2.555 G .055 +(iltin may be used to add commands to the).2 F +(end of the history list without actually e)108 432 Q -.15(xe)-.15 G (cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G -(ilable for subsequent recall.).25 E 2.2(The shell allo)108 432 R 2.2 +(ilable for subsequent recall.).25 E 2.2(The shell allo)108 448.8 R 2.2 (ws control of the v)-.25 F 2.2(arious characters used by the history e) --.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.146(description of)108 -444 R F2(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder) -.15 E F2 1.146(Shell V)3.646 F(ariables)-.92 E F0 3.646(\). The)B 1.147 +-.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.147(description of)108 +460.8 R F2(histchars)3.647 E F0(abo)3.647 E 1.447 -.15(ve u)-.15 H(nder) +.15 E F2 1.147(Shell V)3.647 F(ariables)-.92 E F0 3.646(\). The)B 1.146 (shell uses the history comment character to)3.646 F -(mark history timestamps when writing the history \214le.)108 456 Q F2 -(Ev)87 472.8 Q(ent Designators)-.1 E F0(An e)108 484.8 Q -.15(ve)-.25 G +(mark history timestamps when writing the history \214le.)108 472.8 Q F2 +(Ev)87 489.6 Q(ent Designators)-.1 E F0(An e)108 501.6 Q -.15(ve)-.25 G (nt designator is a reference to a command line entry in the history li\ -st.).15 E F2(!)108 501.6 Q F0 1.608(Start a history substitution, e) -32.67 F 1.608(xcept when follo)-.15 F 1.607(wed by a)-.25 F F2(blank) -4.107 E F0 4.107(,n)C -.25(ew)-4.107 G 1.607 -(line, carriage return, = or \().25 F(\(when the)144 513.6 Q F2(extglob) +st.).15 E F2(!)108 518.4 Q F0 1.607(Start a history substitution, e) +32.67 F 1.607(xcept when follo)-.15 F 1.607(wed by a)-.25 F F2(blank) +4.107 E F0 4.107(,n)C -.25(ew)-4.107 G 1.608 +(line, carriage return, = or \().25 F(\(when the)144 530.4 Q F2(extglob) 2.5 E F0(shell option is enabled using the)2.5 E F2(shopt)2.5 E F0 -.2 -(bu)2.5 G(iltin\).).2 E F2(!)108 525.6 Q F4(n)A F0 -(Refer to command line)27.67 E F4(n)2.5 E F0(.).24 E F2<21ad>108 537.6 Q +(bu)2.5 G(iltin\).).2 E F2(!)108 542.4 Q F4(n)A F0 +(Refer to command line)27.67 E F4(n)2.5 E F0(.).24 E F2<21ad>108 554.4 Q F4(n)A F0(Refer to the current command line minus)21.97 E F4(n)2.5 E F0 -(.).24 E F2(!!)108 549.6 Q F0(Refer to the pre)29.34 E(vious command.) --.25 E(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 561.6 Q F4 +(.).24 E F2(!!)108 566.4 Q F0(Refer to the pre)29.34 E(vious command.) +-.25 E(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 578.4 Q F4 (string)A F0(Refer to the most recent command starting with)9.33 E F4 -(string)2.5 E F0(.).22 E F2(!?)108 573.6 Q F4(string)A F2([?])A F0 1.022 -(Refer to the most recent command containing)144 585.6 R F4(string)3.522 +(string)2.5 E F0(.).22 E F2(!?)108 590.4 Q F4(string)A F2([?])A F0 1.022 +(Refer to the most recent command containing)144 602.4 R F4(string)3.522 E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F2(?)3.522 E F0 1.022 -(may be omitted if)3.522 F F4(string)3.862 E F0(is)3.742 E(follo)144 -597.6 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F5 12/Times-Bold@0 -SF(^)108 614.6 Q F4(string1)-5 I F5(^)5 I F4(string2)-5 I F5(^)5 I F0 -2.63(Quick substitution.)144 621.6 R 2.629 +(may be omitted if)3.522 F F4(string)3.861 E F0(is)3.741 E(follo)144 +614.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F5 12/Times-Bold@0 +SF(^)108 631.4 Q F4(string1)-5 I F5(^)5 I F4(string2)-5 I F5(^)5 I F0 +2.629(Quick substitution.)144 638.4 R 2.629 (Repeat the last command, replacing)7.629 F F4(string1)5.469 E F0(with) 5.129 E F4(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G -2.629(lent to).25 F -.74(``)144 633.6 S(!!:s/).74 E F4(string1)A F0(/)A +2.63(lent to).25 F -.74(``)144 650.4 S(!!:s/).74 E F4(string1)A F0(/)A F4(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0 -(belo)2.5 E(w\).)-.25 E F2(!#)108 645.6 Q F0 +(belo)2.5 E(w\).)-.25 E F2(!#)108 662.4 Q F0 (The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75 -(Wo)87 662.4 S(rd Designators).75 E F0 -.8(Wo)108 674.4 S 1.313 +(Wo)87 679.2 S(rd Designators).75 E F0 -.8(Wo)108 691.2 S 1.314 (rd designators are used to select desired w).8 F 1.314(ords from the e) --.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.314 -(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F -.53(from the w)108 686.4 R .529(ord designator)-.1 F 5.529(.I)-.55 G +-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.313 +(separates the e)3.813 F -.15(ve)-.25 G 1.313(nt speci\214cation).15 F +.529(from the w)108 703.2 R .529(ord designator)-.1 F 5.529(.I)-.55 G 3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529 (ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2 ($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F23.029 E F0 3.029(,o)C(r) --3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3 -(are numbered from the be)108 698.4 R 1.3 -(ginning of the line, with the \214rst w)-.15 F 1.301 -(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8 -F(inserted into the current line separated by single spaces.)108 710.4 Q -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(46)190.95 E 0 Cg EP -%%Page: 47 47 +-3.029 E F2(%)3.029 E F0 5.53(.W)C(ords)-6.33 E 1.301 +(are numbered from the be)108 715.2 R 1.301 +(ginning of the line, with the \214rst w)-.15 F 1.3 +(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.3 G 1.3(rds are).8 F +(inserted into the current line separated by single spaces.)108 727.2 Q +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(47)185.955 E 0 Cg EP +%%Page: 48 48 %%BeginPageSetup BP %%EndPageSetup @@ -5489,10 +5635,10 @@ BP (ord matched by the most recent `?)-.1 E F2(string)A F0(?' search.)A F2 (x)108.77 156 Q F1A F2(y)A F0 2.5(Ar)20.65 G(ange of w)-2.5 E (ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)-.25 E -F2(y)A F0('.)A F1(*)108 168 Q F0 .316(All of the w)31 F .316(ords b)-.1 -F .316(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315(ym for `) +F2(y)A F0('.)A F1(*)108 168 Q F0 .315(All of the w)31 F .315(ords b)-.1 +F .315(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315(ym for `) -.15 F F2(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F -F1(*)2.815 E F0 .315(if there is)2.815 F(just one w)144 180 Q +F1(*)2.816 E F0 .316(if there is)2.816 F(just one w)144 180 Q (ord in the e)-.1 E -.15(ve)-.25 G (nt; the empty string is returned in that case.).15 E F1(x*)108 192 Q F0 (Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 204 Q F0 @@ -5500,10 +5646,10 @@ F1(*)2.815 E F0 .315(if there is)2.815 F(just one w)144 180 Q 2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)108 220.8 Q(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G (nt speci\214cation, the pre).15 E(vious command is used as the e)-.25 E --.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 237.6 Q F0 .183 -(After the optional w)108 249.6 R .183(ord designator)-.1 F 2.683(,t)-.4 -G .184(here may appear a sequence of one or more of the follo)-2.683 F -.184(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 261.6 Q F1(h) +-.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 237.6 Q F0 .184 +(After the optional w)108 249.6 R .184(ord designator)-.1 F 2.684(,t)-.4 +G .183(here may appear a sequence of one or more of the follo)-2.684 F +.183(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 261.6 Q F1(h) 108 278.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H (railing \214le name component, lea).15 E(ving only the head.)-.2 E F1 (t)108 290.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H @@ -5518,2481 +5664,2539 @@ E -.15(xe)-.15 G(cute it.).15 E F1(q)108 338.4 Q F0 -.1 E F1(x)108 350.4 Q F0(Quote the substituted w)31 E(ords as with)-.1 E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks) 2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 362.4 Q F2(old)A F1(/)A -F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 374.4 Q F2(ne)3.082 E(w)-.15 E -F0 .221(for the \214rst occurrence of)3.032 F F2(old)2.951 E F0 .221 +F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 374.4 Q F2(ne)3.081 E(w)-.15 E +F0 .221(for the \214rst occurrence of)3.031 F F2(old)2.951 E F0 .221 (in the e)3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721 -(yd)-.15 G .221(elimiter can be used in place)-2.721 F .616(of /.)144 +(yd)-.15 G .221(elimiter can be used in place)-2.721 F .617(of /.)144 386.4 R .617 (The \214nal delimiter is optional if it is the last character of the e) -5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617 +5.617 F -.15(ve)-.25 G .617(nt line.).15 F .616(The delimiter may)5.616 F .666(be quoted in)144 398.4 R F2(old)3.396 E F0(and)3.936 E F2(ne) 3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666 (If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166 (ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E -F0 5.666(.A).77 G .274(single backslash will quote the &.)144 410.4 R -(If)5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544 -F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775 -(fn)-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E +F0 5.666(.A).77 G .275(single backslash will quote the &.)144 410.4 R +(If)5.275 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544 +F F2(old)3.004 E F0 .274(substituted, or)3.544 F 2.774(,i)-.4 G 2.774 +(fn)-2.774 G 2.774(op)-2.774 G(re)-2.774 E(vi-)-.25 E (ous history substitutions took place, the last)144 422.4 Q F2(string) 2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1 (&)108 434.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1 -(g)108 446.4 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G -2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.) -.15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897 -('\()C(e.g.,)-2.897 E(`)144 458.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w) --.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218 -(used with `)3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219 -(elimiter can be used in place of /, and the \214nal)-3.718 F .09 +(g)108 446.4 Q F0 .397(Cause changes to be applied o)31 F -.15(ve)-.15 G +2.897(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398(nt line.) +.15 F .398(This is used in conjunction with `)5.398 F F1(:s)A F0 2.898 +('\()C(e.g.,)-2.898 E(`)144 458.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w) +-.15 E F1(/)A F0 1.219('\) or `)B F1(:&)A F0 3.719('. If)B 1.219 +(used with `)3.719 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.218 +(elimiter can be used in place of /, and the \214nal)-3.718 F .089 (delimiter is optional if it is the last character of the e)144 470.4 R --.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089 -(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 482.4 Q F0 -(.)A F1(G)108 494.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0 -2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25 -G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 511.2 Q(UIL)-.11 E -(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 523.2 +-.15(ve)-.25 G .09(nt line.).15 F(An)5.09 E F1(a)2.59 E F0 .09 +(may be used as a synon)2.59 F .09(ym for)-.15 F F1(g)144 482.4 Q F0(.)A +F1(G)108 494.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0 2.5 +('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25 G +(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 511.2 Q(UIL)-.11 E +(TIN COMMANDS)-1.007 E F0 .063(Unless otherwise noted, each b)108 523.2 R .062(uiltin command documented in this section as accepting options p\ -receded by)-.2 F F1108 535.2 Q F0(accepts)3.8 E F13.8 E F0 1.3 -(to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3 -(xample, the)-3.95 F F1(:)3.8 E F0(,)A F1(true)3.8 E F0(,)A F1(false)3.8 -E F0 3.8(,a)C(nd)-3.8 E F1(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not) -.2 F(accept options.)108 547.2 Q F1(:)108 565.2 Q F0([)2.5 E F2(ar)A -(guments)-.37 E F0(])A .451(No ef)144 577.2 R .451 -(fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding) --.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)3.222 F -2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 589.2 R -(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 606 Q F2 +receded by)-.2 F F1108 535.2 Q F0(accepts)2.533 E F12.533 E F0 +.034(to signify the end of the options.)2.533 F(The)5.034 E F1(:)2.534 E +F0(,)A F1(true)2.534 E F0(,)A F1(false)2.534 E F0 2.534(,a)C(nd)-2.534 E +F1(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and) +.2 F .078(do not treat)108 547.2 R F12.577 E F0(specially)2.577 E +5.077(.T)-.65 G(he)-5.077 E F1(exit)2.577 E F0(,)A F1(logout)2.577 E F0 +(,)A F1(br)2.577 E(eak)-.18 E F0(,)A F1(continue)2.577 E F0(,)A F1(let) +2.577 E F0 2.577(,a)C(nd)-2.577 E F1(shift)2.577 E F0 -.2(bu)2.577 G +.077(iltins accept and process ar).2 F(gu-)-.18 E .319(ments be)108 +559.2 R .319(ginning with)-.15 F F12.819 E F0 .319 +(without requiring)2.819 F F12.819 E F0 5.319(.O)C .319(ther b) +-5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32 +(ut are not speci\214ed as)-.2 F 1.144(accepting options interpret ar) +108 571.2 R 1.144(guments be)-.18 F 1.144(ginning with)-.15 F F1 +3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143 +(lid options and require).25 F F13.643 E F0 1.143(to pre)3.643 F +-.15(ve)-.25 G 1.143(nt this).15 F(interpretation.)108 583.2 Q F1(:)108 +601.2 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .451(No ef)144 613.2 R +.451(fect; the command does nothing be)-.25 F .452(yond e)-.15 F +(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an) +3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144 +625.2 R(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 642 Q F2 (\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108 -618 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0 -(])A 1.02(Read and e)144 630 R -.15(xe)-.15 G 1.02(cute commands from) +654 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0 +(])A 1.02(Read and e)144 666 R -.15(xe)-.15 G 1.02(cute commands from) .15 F F2(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02 (vironment and return the e)-.4 F(xit)-.15 E 1.68 -(status of the last command e)144 642 R -.15(xe)-.15 G 1.68(cuted from) +(status of the last command e)144 678 R -.15(xe)-.15 G 1.68(cuted from) .15 F F2(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F2(\214lename)6.09 -E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 654 +E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 690 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608 (are used to \214nd the directory containing)2.858 F F2(\214lename)3.108 E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA) -3.108 G(TH)-.189 E F0 .832(need not be e)144 666 R -.15(xe)-.15 G 3.332 +3.108 G(TH)-.189 E F0 .832(need not be e)144 702 R -.15(xe)-.15 G 3.332 (cutable. When).15 F F1(bash)3.332 E F0 .832(is not in)3.332 F F2 .832 (posix mode)3.332 F F0 3.332(,t)C .833 (he current directory is searched if no)-3.332 F .982 -(\214le is found in)144 678 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9 +(\214le is found in)144 714 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9 /Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E(cepath)-.18 E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981 -(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 690 +(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 726 S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F(y)-.15 E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F 2.612 -(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F2 -(\214lename)144 702 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842 -(cuted. Otherwise).15 F .342(the positional parameters are unchanged.) -2.842 F .341(The return status is the)5.341 F .716 -(status of the last command e)144 714 R .716 -(xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G -.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 726 Q -F0(is not found or cannot be read.)2.68 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(47)190.95 E 0 Cg EP -%%Page: 48 48 +(yb)-.15 G .112(ecome the positional parameters when)-2.612 F +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(48)185.955 E 0 Cg EP +%%Page: 49 49 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(alias)108 84 Q F0([)2.5 E F1A F0 2.5 -(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C -(..])-2.5 E F1(Alias)144 96 Q F0 2.725(with no ar)5.225 F 2.724 -(guments or with the)-.18 F F15.224 E F0 2.724 -(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E -F2(name)144 108 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F -.58(When ar)5.58 F .58 -(guments are supplied, an alias is de\214ned for each)-.18 F F2(name) -3.08 E F0(whose)144 120 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15 -(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F2(value) +-.35 E/F1 10/Times-Italic@0 SF(\214lename)144 84 Q F0 .342(is e)2.842 F +-.15(xe)-.15 G 2.842(cuted. Otherwise).15 F .342 +(the positional parameters are unchanged.)2.842 F .341 +(The return status is the)5.341 F .716(status of the last command e)144 +96 R .716(xited within the script \(0 if no commands are e)-.15 F -.15 +(xe)-.15 G .716(cuted\), and f).15 F .716(alse if)-.1 F F1(\214lename) +145.91 108 Q F0(is not found or cannot be read.)2.68 E/F2 10 +/Times-Bold@0 SF(alias)108 124.8 Q F0([)2.5 E F2A F0 2.5(][)C F1 +(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E F2(Alias)144 +136.8 Q F0 2.725(with no ar)5.225 F 2.724(guments or with the)-.18 F F2 +5.224 E F0 2.724(option prints the list of aliases in the form) +5.224 F F2(alias)5.224 E F1(name)144 148.8 Q F0(=)A F1(value)A F0 .58 +(on standard output.)3.08 F .58(When ar)5.58 F .58 +(guments are supplied, an alias is de\214ned for each)-.18 F F1(name) +3.08 E F0(whose)144 160.8 Q F1(value)2.895 E F0 .395(is gi)2.895 F -.15 +(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F1(value) 5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395 (ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054 -(stitution when the alias is e)144 132 R 2.554(xpanded. F)-.15 F .054 -(or each)-.15 F F2(name)2.554 E F0 .054(in the ar)2.554 F .054 -(gument list for which no)-.18 F F2(value)2.554 E F0 .054(is sup-)2.554 -F 1.314(plied, the name and v)144 144 R 1.314 -(alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314 -(returns true unless a)3.814 F F2(name)3.814 E F0 1.313(is gi)3.814 F +(stitution when the alias is e)144 172.8 R 2.554(xpanded. F)-.15 F .054 +(or each)-.15 F F1(name)2.554 E F0 .054(in the ar)2.554 F .054 +(gument list for which no)-.18 F F1(value)2.554 E F0 .054(is sup-)2.554 +F 1.314(plied, the name and v)144 184.8 R 1.314 +(alue of the alias is printed.)-.25 F F2(Alias)6.314 E F0 1.314 +(returns true unless a)3.814 F F1(name)3.814 E F0 1.313(is gi)3.814 F -.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E -(which no alias has been de\214ned.)144 156 Q F1(bg)108 172.8 Q F0([)2.5 -E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 184.8 R -F2(jobspec)3.244 E F0 .745 -(in the background, as if it had been started with)3.244 F F1(&)3.245 E -F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 196.8 Q F0 .672 +(which no alias has been de\214ned.)144 196.8 Q F2(bg)108 213.6 Q F0([) +2.5 E F1(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 +225.6 R F1(jobspec)3.244 E F0 .745 +(in the background, as if it had been started with)3.244 F F2(&)3.245 E +F0 5.745(.I)C(f)-5.745 E F1(job-)4.985 E(spec)144 237.6 Q F0 .672 (is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the) --3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1 -(bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418 -(when job control is disabled or)144 208.8 R 2.919(,w)-.4 G .419 +-3.172 F F1(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2 +(bg)5.671 E F1(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418 +(when job control is disabled or)144 249.6 R 2.919(,w)-.4 G .419 (hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G -(peci\214ed)-2.919 E F2(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G -(ot)-2.919 E(found or w)144 220.8 Q(as started without job control.)-.1 -E F1(bind)108 237.6 Q F0([)2.5 E F1A F2 -.1(ke)2.5 G(ymap)-.2 E F0 -2.5(][)C F1(\255lpsvPSV)-2.5 E F0(])A F1(bind)108 249.6 Q F0([)2.5 E F1 -A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1-2.5 E F2 -(function)2.5 E F0 2.5(][)C F1-2.5 E F2(function)2.5 E F0 2.5(][)C -F1-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 261.6 Q F0 -([)2.5 E F1A F2 -.1(ke)2.5 G(ymap)-.2 E F0(])A F12.5 E F2 -(\214lename)2.5 E F1(bind)108 273.6 Q F0([)2.5 E F1A F2 -.1(ke)2.5 -G(ymap)-.2 E F0(])A F12.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2 -(shell\255command)A F1(bind)108 285.6 Q F0([)2.5 E F1A F2 -.1(ke) -2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2 -(function\255name)A F1(bind)108 297.6 Q F2 -.37(re)2.5 G -(adline\255command).37 E F0 .239(Display current)144 309.6 R F1 -.18(re) +(peci\214ed)-2.919 E F1(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G +(ot)-2.919 E(found or w)144 261.6 Q(as started without job control.)-.1 +E F2(bind)108 278.4 Q F0([)2.5 E F2A F1 -.1(ke)2.5 G(ymap)-.2 E F0 +2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 290.4 Q F0([)2.5 E F2 +A F1 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F2-2.5 E F1 +(function)2.5 E F0 2.5(][)C F2-2.5 E F1(function)2.5 E F0 2.5(][)C +F2-2.5 E F1 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 302.4 Q F0 +([)2.5 E F2A F1 -.1(ke)2.5 G(ymap)-.2 E F0(])A F22.5 E F1 +(\214lename)2.5 E F2(bind)108 314.4 Q F0([)2.5 E F2A F1 -.1(ke)2.5 +G(ymap)-.2 E F0(])A F22.5 E F1 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F1 +(shell\255command)A F2(bind)108 326.4 Q F0([)2.5 E F2A F1 -.1(ke) +2.5 G(ymap)-.2 E F0(])A F1 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F1 +(function\255name)A F2(bind)108 338.4 Q F1 -.37(re)2.5 G +(adline\255command).37 E F0 .239(Display current)144 350.4 R F2 -.18(re) 2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239 (nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238 -(equence to a).15 F F1 -.18(re)2.738 G(adline).18 E F0 .238(function or) -2.738 F .475(macro, or set a)144 321.6 R F1 -.18(re)2.975 G(adline).18 E +(equence to a).15 F F2 -.18(re)2.738 G(adline).18 E F0 .238(function or) +2.738 F .475(macro, or set a)144 362.4 R F2 -.18(re)2.975 G(adline).18 E F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F -.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F2 -(.inputr)144 333.6 Q(c)-.37 E F0 2.984(,b).31 G .484 +.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F1 +(.inputr)144 374.4 Q(c)-.37 E F0 2.984(,b).31 G .484 (ut each binding or command must be passed as a separate ar)-3.184 F .483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5 -(re\255read\255init\255\214le'. Options,)144 345.6 R(if supplied, ha)2.5 -E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1144 -357.6 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 369.6 Q F2 -.1(ke)5.158 G +(re\255read\255init\255\214le'. Options,)144 386.4 R(if supplied, ha)2.5 +E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2144 +398.4 Q F1 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 410.4 Q F1 -.1(ke)5.158 G (ymap)-.2 E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af) .15 F 2.659(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E -F2 -.1(ke)180 381.6 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193 +F1 -.1(ke)180 422.4 S(ymap)-.2 E F0 3.193(names are)5.883 F F1 3.193 (emacs, emacs\255standar)5.693 F 3.192 (d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E -(vi\255command)180 393.6 Q F0 4.429(,a)C(nd)-4.429 E F2(vi\255insert) -4.429 E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G -1.929(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0 -1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F2 -(emacs\255standar)180 405.6 Q(d)-.37 E F0(.)A F1144 417.6 Q F0 -(List the names of all)27.52 E F1 -.18(re)2.5 G(adline).18 E F0 -(functions.)2.5 E F1144 429.6 Q F0(Display)24.74 E F1 -.18(re)2.5 +(vi\255command)180 434.4 Q F0 4.429(,a)C(nd)-4.429 E F1(vi\255insert) +4.429 E F0(.).68 E F1(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G +1.929(lent to).25 F F1(vi\255command)4.429 E F0(;)A F1(emacs)4.429 E F0 +1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F1 +(emacs\255standar)180 446.4 Q(d)-.37 E F0(.)A F2144 458.4 Q F0 +(List the names of all)27.52 E F2 -.18(re)2.5 G(adline).18 E F0 +(functions.)2.5 E F2144 470.4 Q F0(Display)24.74 E F2 -.18(re)2.5 G(adline).18 E F0(function names and bindings in such a w)2.5 E -(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1144 441.6 -Q F0(List current)24.19 E F1 -.18(re)2.5 G(adline).18 E F0 -(function names and bindings.)2.5 E F1144 453.6 Q F0(Display)26.41 -E F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G +(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F2144 482.4 +Q F0(List current)24.19 E F2 -.18(re)2.5 G(adline).18 E F0 +(function names and bindings.)2.5 E F2144 494.4 Q F0(Display)26.41 +E F2 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G 1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo) --.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 465.6 S 2.5(yt).1 G -(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1144 477.6 Q -F0(Display)24.74 E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys) +-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 506.4 S 2.5(yt).1 G +(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F2144 518.4 Q +F0(Display)24.74 E F2 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys) -.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G -(utput.)-2.5 E F1144 489.6 Q F0(Display)25.3 E F1 -.18(re)2.5 G +(utput.)-2.5 E F2144 530.4 Q F0(Display)25.3 E F2 -.18(re)2.5 G (adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E (alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G -(an be re-read.)-2.5 E F1144 501.6 Q F0(List current)23.08 E F1 +(an be re-read.)-2.5 E F2144 542.4 Q F0(List current)23.08 E F2 -.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E -(alues.)-.25 E F1144 513.6 Q F2(\214lename)2.5 E F0(Read k)180 -525.6 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A -F1144 537.6 Q F2(function)2.5 E F0(Query about which k)180 549.6 Q +(alues.)-.25 E F2144 554.4 Q F1(\214lename)2.5 E F0(Read k)180 +566.4 Q .3 -.15(ey b)-.1 H(indings from).15 E F1(\214lename)2.5 E F0(.)A +F2144 578.4 Q F1(function)2.5 E F0(Query about which k)180 590.4 Q -.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H -(he named).1 E F2(function)2.5 E F0(.)A F1144 561.6 Q F2(function) -2.5 E F0(Unbind all k)180 573.6 Q -.15(ey)-.1 G 2.5(sb).15 G -(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1144 585.6 Q -F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 597.6 Q .3 -.15(ve a)-.15 H .3 --.15(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0 -(.)A F1144 609.6 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2 -(shell\255command)A F0(Cause)180 621.6 Q F2(shell\255command)4.325 E F0 +(he named).1 E F1(function)2.5 E F0(.)A F2144 602.4 Q F1(function) +2.5 E F0(Unbind all k)180 614.4 Q -.15(ey)-.1 G 2.5(sb).15 G +(ound to the named)-2.5 E F1(function)2.5 E F0(.)A F2144 626.4 Q +F1 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 638.4 Q .3 -.15(ve a)-.15 H .3 +-.15(ny c).15 H(urrent binding for).15 E F1 -.1(ke)2.5 G(yseq)-.2 E F0 +(.)A F2144 650.4 Q F1 -.1(ke)2.5 G(yseq)-.2 E F2(:)A F1 +(shell\255command)A F0(Cause)180 662.4 Q F1(shell\255command)4.325 E F0 1.825(to be e)4.325 F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve) --.25 G(r).15 E F2 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F -(When)6.825 E F2(shell\255com-)4.325 E(mand)180 633.6 Q F0 1.113(is e) -3.614 F -.15(xe)-.15 G 1.113(cuted, the shell sets the).15 F F1 -(READLINE_LINE)3.613 E F0 -.25(va)3.613 G 1.113 -(riable to the contents of the).25 F F1 -.18(re)180 645.6 S(adline).18 E -F0 .586(line b)3.086 F(uf)-.2 E .586(fer and the)-.25 F F1 -(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .587 -(riable to the current location of the).25 F 1.241(insertion point.)180 -657.6 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241 -(cuted command changes the v).15 F 1.241(alue of)-.25 F F1 -(READLINE_LINE)3.741 E F0(or)3.74 E F1(READLINE_POINT)180 669.6 Q F0 2.5 -(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G +-.25 G(r).15 E F1 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F +(When)6.825 E F1(shell\255com-)4.325 E(mand)180 674.4 Q F0 1.765(is e) +4.265 F -.15(xe)-.15 G 1.765(cuted, the shell sets the).15 F/F3 9 +/Times-Bold@0 SF(READLINE_LINE)4.265 E F0 -.25(va)4.015 G 1.765 +(riable to the contents of the).25 F F2 -.18(re)180 686.4 S(adline).18 E +F0 1.353(line b)3.852 F(uf)-.2 E 1.353(fer and the)-.25 F F3 +(READLINE_POINT)3.853 E F0 -.25(va)3.603 G 1.353 +(riable to the current location of the).25 F 2.012(insertion point.)180 +698.4 R 2.011(If the e)7.012 F -.15(xe)-.15 G 2.011 +(cuted command changes the v).15 F 2.011(alue of)-.25 F F3 +(READLINE_LINE)4.511 E F0(or)4.261 E F3(READLINE_POINT)180 710.4 Q/F4 9 +/Times-Roman@0 SF(,)A F0(those ne)2.25 E 2.5(wv)-.25 G (alues will be re\215ected in the editing state.)-2.75 E(The return v) -144 686.4 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15 +144 727.2 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15 (ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5 -E F1(br)108 703.2 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054 -(Exit from within a)144 715.2 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1 -(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1 -(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055 -(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G -(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F3 10/Symbol SF2.555 -E F0(1.)2.555 E(If)144 727.2 Q F2(n)3.075 E F0 .215(is greater than the\ - number of enclosing loops, all enclosing loops are e)2.955 F 2.714 -(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(GNU Bash-4.0)72 768 -Q(2009 February 7)140.96 E(48)190.95 E 0 Cg EP -%%Page: 49 49 +E(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(49)185.955 E 0 Cg EP +%%Page: 50 50 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(is 0 unless)144 84 Q/F1 10/Times-Italic@0 SF(n)2.5 E F0 -(is not greater than or equal to 1.)2.5 E/F2 10/Times-Bold@0 SF -.2(bu) -108 100.8 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E F1 -(ar)A(guments)-.37 E F0(])A(Ex)144 112.8 Q .792 -(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1 +-.35 E/F1 10/Times-Bold@0 SF(br)108 84 Q(eak)-.18 E F0([)2.5 E/F2 10 +/Times-Italic@0 SF(n)A F0(])A .054(Exit from within a)144 96 R F1 -.25 +(fo)2.554 G(r).25 E F0(,)A F1(while)2.554 E F0(,)A F1(until)2.555 E F0 +2.555(,o)C(r)-2.555 E F1(select)2.555 E F0 2.555(loop. If)2.555 F F2(n) +2.555 E F0 .055(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E +-.15(ve)-.25 G(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F3 10 +/Symbol SF2.555 E F0(1.)2.555 E(If)144 108 Q F2(n)3.075 E F0 .215(i\ +s greater than the number of enclosing loops, all enclosing loops are e) +2.955 F 2.714(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E +(is 0 unless)144 120 Q F2(n)2.5 E F0(is not greater than or equal to 1.) +2.5 E F1 -.2(bu)108 136.8 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E +F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A(Ex)144 148.8 Q .792 +(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F2 (ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293 F .793(xit status.)-.15 F .793(This is useful)5.793 F .616 (when de\214ning a function whose name is the same as a shell b)144 -124.8 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144 -136.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0 +160.8 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144 +172.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0 -.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E -5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 148.8 Q(alse if)-.1 -E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E -(uiltin command.)-.2 E F2(caller)108 165.6 Q F0([)2.5 E F1 -.2(ex)C(pr) -.2 E F0(])A .254(Returns the conte)144 177.6 R .254(xt of an)-.15 F +5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 184.8 Q(alse if)-.1 +E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E +(uiltin command.)-.2 E F1(caller)108 201.6 Q F0([)2.5 E F2 -.2(ex)C(pr) +.2 E F0(])A .254(Returns the conte)144 213.6 R .254(xt of an)-.15 F 2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254 (ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G -.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 189.6 Q -(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F1 -.2 -(ex)3.062 G(pr).2 E F0(,)A F2(caller)3.062 E F0 .562 +.254(cuted with the).15 F F1(.)2.753 E F0(or)2.753 E F1(sour)144 225.6 Q +(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F2 -.2 +(ex)3.062 G(pr).2 E F0(,)A F1(caller)3.062 E F0 .562 (displays the line number and source \214lename of the current)3.062 F -.254(subroutine call.)144 201.6 R .254(If a non-ne)5.254 F -.05(ga)-.15 +.254(subroutine call.)144 237.6 R .254(If a non-ne)5.254 F -.05(ga)-.15 G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15 -F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253 +F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .253 (displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\ tine name, and source \214le corresponding to that position in the curr\ -ent e)144 213.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001 -(This e)144 225.6 R .001(xtra information may be used, for e)-.15 F .001 +ent e)144 249.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001 +(This e)144 261.6 R .001(xtra information may be used, for e)-.15 F .001 (xample, to print a stack trace.)-.15 F(The current frame is frame)5 E -3.019(0. The)144 237.6 R .519(return v)3.019 F .519 +3.019(0. The)144 273.6 R .519(return v)3.019 F .519 (alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52 -(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52 -(does not corre-)3.02 F(spond to a v)144 249.6 Q -(alid position in the call stack.)-.25 E F2(cd)108 266.4 Q F0([)2.5 E F2 -(\255L|-P)A F0 2.5(][)C F1(dir)-2.5 E F0(])A .21 -(Change the current directory to)144 278.4 R F1(dir)2.71 E F0 5.21(.T)C -.21(he v)-5.21 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(HOME)2.71 E F0 .21 -(is the def)2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v) --5.21 F(ariable)-.25 E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776 -(de\214nes the search path for the directory containing)144 290.4 R F1 +(cuting a subroutine call or).15 F F2 -.2(ex)3.02 G(pr).2 E F0 .52 +(does not corre-)3.02 F(spond to a v)144 285.6 Q +(alid position in the call stack.)-.25 E F1(cd)108 302.4 Q F0([)2.5 E F1 +(\255L|-P)A F0 2.5(][)C F2(dir)-2.5 E F0(])A .21 +(Change the current directory to)144 314.4 R F2(dir)2.71 E F0 5.21(.T)C +.21(he v)-5.21 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(HOME)2.71 E F0 .21 +(is the def)2.46 F(ault)-.1 E F2(dir)2.71 E F0 5.21(.T).73 G .21(he v) +-5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776 +(de\214nes the search path for the directory containing)144 326.4 R F2 (dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H -.777(irectory names in).15 F F3(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0 -.764(are separated by a colon \(:\).)144 302.4 R 3.264(An)5.764 G .764 -(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H).855 E -F0 .764(is the same as the current direc-)3.014 F(tory)144 314.4 Q 2.973 -(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I) -.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474 -(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H) -.855 E F0 .474(is not used. The)2.724 F F22.974 E F0 .474 -(option says to use)2.974 F .58(the ph)144 326.4 R .58 +.777(irectory names in).15 F F4(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0 +.764(are separated by a colon \(:\).)144 338.4 R 3.264(An)5.764 G .764 +(ull directory name in)-3.264 F F4(CDP)3.264 E -.855(AT)-.666 G(H).855 E +F0 .764(is the same as the current direc-)3.014 F(tory)144 350.4 Q 2.973 +(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F1(.)A F0 -.74('')C 5.473(.I) +.74 G(f)-5.473 E F2(dir)3.323 E F0(be)3.703 E .474 +(gins with a slash \(/\), then)-.15 F F4(CDP)2.974 E -.855(AT)-.666 G(H) +.855 E F0 .474(is not used. The)2.724 F F12.974 E F0 .474 +(option says to use)2.974 F .58(the ph)144 362.4 R .58 (ysical directory structure instead of follo)-.05 F .579 -(wing symbolic links \(see also the)-.25 F F23.079 E F0 .579 -(option to the)3.079 F F2(set)144 338.4 Q F0 -.2(bu)3.383 G .883 -(iltin command\); the).2 F F23.383 E F0 .884 +(wing symbolic links \(see also the)-.25 F F13.079 E F0 .579 +(option to the)3.079 F F1(set)144 374.4 Q F0 -.2(bu)3.383 G .883 +(iltin command\); the).2 F F13.383 E F0 .884 (option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F -(ar)3.384 E .884(gument of)-.18 F F23.384 E F0(is)3.384 E(equi)144 -350.4 Q -.25(va)-.25 G .063(lent to).25 F F3($OLDPWD)2.563 E/F4 9 -/Times-Roman@0 SF(.)A F0 .063(If a non-empty directory name from)4.563 F -F2(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .062(is used, or if)2.562 F F2 -2.562 E F0 .062(is the \214rst)2.562 F(ar)144 362.4 Q .116(gument, \ -and the directory change is successful, the absolute pathname of the ne) --.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165 -(tory is written to the standard output.)144 374.4 R 1.164(The return v) +(ar)3.384 E .884(gument of)-.18 F F13.384 E F0(is)3.384 E(equi)144 +386.4 Q -.25(va)-.25 G .316(lent to).25 F F4($OLDPWD)2.816 E/F5 9 +/Times-Roman@0 SF(.)A F0 .316(If a non-empty directory name from)4.816 F +F4(CDP)2.815 E -.855(AT)-.666 G(H).855 E F0 .315(is used, or if)2.565 F +F12.815 E F0 .315(is the \214rst)2.815 F(ar)144 398.4 Q .116(gument\ +, and the directory change is successful, the absolute pathname of the \ +ne)-.18 F 2.616(ww)-.25 G .116(orking direc-)-2.716 F 1.165 +(tory is written to the standard output.)144 410.4 R 1.164(The return v) 6.164 F 1.164(alue is true if the directory w)-.25 F 1.164 -(as successfully)-.1 F(changed; f)144 386.4 Q(alse otherwise.)-.1 E F2 -(command)108 403.2 Q F0([)2.5 E F2(\255pVv)A F0(])A F1(command)2.5 E F0 -([)2.5 E F1(ar)A(g)-.37 E F0(...])2.5 E(Run)144 415.2 Q F1(command)2.956 -E F0(with)3.527 E F1(ar)3.087 E(gs)-.37 E F0 .257 +(as successfully)-.1 F(changed; f)144 422.4 Q(alse otherwise.)-.1 E F1 +(command)108 439.2 Q F0([)2.5 E F1(\255pVv)A F0(])A F2(command)2.5 E F0 +([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 451.2 Q F2(command)2.956 +E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257 (suppressing the normal shell function lookup. Only b)3.027 F .257 -(uiltin commands or)-.2 F .502(commands found in the)144 427.2 R F3 +(uiltin commands or)-.2 F .502(commands found in the)144 463.2 R F4 -.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002 -(cuted. If).15 F(the)3.002 E F23.002 E F0 .502(option is gi)3.002 -F -.15(ve)-.25 G .501(n, the search for).15 F F1(command)3.201 E F0(is) -3.771 E .231(performed using a def)144 439.2 R .231(ault v)-.1 F .231 -(alue for)-.25 F F2 -.74(PA)2.731 G(TH)-.21 E F0 .231 -(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If) -5.232 E .175(either the)144 451.2 R F22.675 E F0(or)2.675 E F2 -2.675 E F0 .175(option is supplied, a description of)2.675 F F1 -(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F22.674 E -F0 .174(option causes)2.674 F 3.11(as)144 463.2 S .61(ingle w)-3.11 F -.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo) --.4 G -.1(ke).2 G F1(command)3.41 E F0 .61(to be displayed; the)3.88 F -F2144 475.2 Q F0 .25(option produces a more v)2.75 F .25 -(erbose description.)-.15 F .249(If the)5.25 F F22.749 E F0(or) -2.749 E F22.749 E F0 .249(option is supplied, the e)2.749 F .249 -(xit status)-.15 F 1.004(is 0 if)144 487.2 R F1(command)3.704 E F0 -.1 +(cuted. If).15 F(the)3.002 E F13.002 E F0 .502(option is gi)3.002 +F -.15(ve)-.25 G .501(n, the search for).15 F F2(command)3.201 E F0(is) +3.771 E .399(performed using a def)144 475.2 R .399(ault v)-.1 F .399 +(alue for)-.25 F F4 -.666(PA)2.899 G(TH)-.189 E F0 .4 +(that is guaranteed to \214nd all of the standard utilities.)2.649 F(If) +5.4 E .175(either the)144 487.2 R F12.675 E F0(or)2.675 E F1 +2.675 E F0 .175(option is supplied, a description of)2.675 F F2(command) +2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F12.674 E F0 .174 +(option causes)2.674 F 3.11(as)144 499.2 S .61(ingle w)-3.11 F .61 +(ord indicating the command or \214le name used to in)-.1 F -.2(vo)-.4 G +-.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F F1 +144 511.2 Q F0 .25(option produces a more v)2.75 F .25 +(erbose description.)-.15 F .249(If the)5.25 F F12.749 E F0(or) +2.749 E F12.749 E F0 .249(option is supplied, the e)2.749 F .249 +(xit status)-.15 F 1.004(is 0 if)144 523.2 R F2(command)3.704 E F0 -.1 (wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005 -(If neither option is supplied and an error occurred or)6.005 F F1 -(command)144.2 499.2 Q F0 1.599(cannot be found, the e)4.869 F 1.599 +(If neither option is supplied and an error occurred or)6.005 F F2 +(command)144.2 535.2 Q F0 1.599(cannot be found, the e)4.869 F 1.599 (xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598 -(xit status of the)-.15 F F2(command)4.098 E F0 -.2(bu)144 511.2 S -(iltin is the e).2 E(xit status of)-.15 E F1(command)2.5 E F0(.).77 E F2 -(compgen)108 528 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d) --.37 E F0(])A .012(Generate possible completion matches for)144 540 R F1 -(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513 E +(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 547.2 S +(iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1 +(compgen)108 564 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d) +-.37 E F0(])A .012(Generate possible completion matches for)144 576 R F2 +(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513 E F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982 -(accepted by the)144 552 R F2(complete)3.482 E F0 -.2(bu)3.481 G .981 -(iltin with the e).2 F .981(xception of)-.15 F F23.481 E F0(and) -3.481 E F23.481 E F0 3.481(,a)C .981(nd write the matches to the) --3.481 F 1.415(standard output.)144 564 R 1.415(When using the)6.415 F -F23.915 E F0(or)3.915 E F23.915 E F0 1.415(options, the v) +(accepted by the)144 588 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981 +(iltin with the e).2 F .981(xception of)-.15 F F13.481 E F0(and) +3.481 E F13.481 E F0 3.481(,a)C .981(nd write the matches to the) +-3.481 F 1.415(standard output.)144 600 R 1.415(When using the)6.415 F +F13.915 E F0(or)3.915 E F13.915 E F0 1.415(options, the v) 3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25 -F(grammable completion f)144 576 Q(acilities, while a)-.1 E -.25(va)-.2 +F(grammable completion f)144 612 Q(acilities, while a)-.1 E -.25(va)-.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25 -E .352(The matches will be generated in the same w)144 600 R .352 +E .352(The matches will be generated in the same w)144 636 R .352 (ay as if the programmable completion code had gen-)-.1 F .02(erated th\ em directly from a completion speci\214cation with the same \215ags.)144 -612 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52 -F(those completions matching)144 624 Q F1(wor)2.5 E(d)-.37 E F0 -(will be displayed.)2.5 E(The return v)144 648 Q +648 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52 +F(those completions matching)144 660 Q F2(wor)2.5 E(d)-.37 E F0 +(will be displayed.)2.5 E(The return v)144 684 Q (alue is true unless an in)-.25 E -.25(va)-.4 G -(lid option is supplied, or no matches were generated.).25 E F2 -(complete)108 664.8 Q F0([)3.034 E F2(\255abcdefgjksuv)A F0 3.034(][)C -F2-3.034 E F1(comp-option)3.034 E F0 3.034(][)C F2-3.034 E -F0 3.033(][)C F2-3.033 E F1(action)3.033 E F0 3.033(][)C F2 --3.033 E F1(globpat)3.033 E F0 3.033(][)C F2-3.033 E F1(wor)3.033 -E(dlist)-.37 E F0 3.033(][)C F2-3.033 E F1(function)3.033 E F0(])A -([)108 676.8 Q F2A F1(command)2.5 E F0(])A([)144 688.8 Q F2A -F1(\214lterpat)2.5 E F0 2.5(][)C F2-2.5 E F1(pr)2.5 E(e\214x)-.37 -E F0 2.5(][)C F2-2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])A F1(name)2.5 -E F0([)2.5 E F1(name ...)A F0(])A F2(complete \255pr)108 700.8 Q F0([) -2.5 E F2A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .634 -(Specify ho)144 712.8 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634 -(uments to each).18 F F1(name)3.134 E F0 .634(should be completed.)3.134 -F .633(If the)5.634 F F23.133 E F0 .633 -(option is supplied, or if no)3.133 F .139(options are supplied, e)144 -724.8 R .139(xisting completion speci\214cations are printed in a w)-.15 -F .14(ay that allo)-.1 F .14(ws them to be)-.25 F(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(49)190.95 E 0 Cg EP -%%Page: 50 50 +(lid option is supplied, or no matches were generated.).25 E F1 +(complete)108 700.8 Q F0([)3.729 E F1(\255abcdefgjksuv)A F0 3.729(][)C +F1-3.729 E F2(comp-option)3.729 E F0 3.729(][)C F1(\255DE)-3.729 E +F0 3.728(][)C F1-3.728 E F2(action)3.728 E F0 3.728(][)C F1 +-3.728 E F2(globpat)3.728 E F0 3.728(][)C F1-3.728 E F2(wor)3.728 +E(dlist)-.37 E F0 3.728(][)C F1-3.728 E F2(func-)3.728 E(tion)108 +712.8 Q F0 2.5(][)C F1-2.5 E F2(command)2.5 E F0(])A([)144 724.8 Q +F1A F2(\214lterpat)2.5 E F0 2.5(][)C F1-2.5 E F2(pr)2.5 E +(e\214x)-.37 E F0 2.5(][)C F1-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(]) +A F2(name)2.5 E F0([)2.5 E F2(name ...)A F0(])A(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(50)185.955 E 0 Cg EP +%%Page: 51 51 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .31(reused as input.)144 84 R(The)5.31 E/F1 10/Times-Bold@0 SF -2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31 -(ompletion speci\214cation for each)-2.81 F/F2 10/Times-Italic@0 SF -(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E -F2(name)2.81 E F0(s)A 1.392 -(are supplied, all completion speci\214cations.)144 96 R(The)6.392 E F1 -3.892 E F0 1.393(option indicates that the remaining options)3.893 -F 1.304(and actions should apply to `)144 108 R(`empty')-.74 E 3.804('c) --.74 G 1.304(ommand completion; that is, completion attempted on a) --3.804 F(blank line.)144 120 Q 1.437 +-.35 E/F1 10/Times-Bold@0 SF(complete \255pr)108 84 Q F0([)2.5 E F1 +(\255DE)A F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0(...])2.5 E +.634(Specify ho)144 96 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634 +(uments to each).18 F F2(name)3.134 E F0 .634(should be completed.)3.134 +F .633(If the)5.634 F F13.133 E F0 .633 +(option is supplied, or if no)3.133 F .139(options are supplied, e)144 +108 R .139(xisting completion speci\214cations are printed in a w)-.15 F +.14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)144 +120 R(The)5.31 E F12.81 E F0 .31(option remo)2.81 F -.15(ve)-.15 G +2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2(name) +2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2 +(name)2.81 E F0(s)A 1.346 +(are supplied, all completion speci\214cations.)144 132 R(The)6.347 E F1 +3.847 E F0 1.347(option indicates that the remaining options)3.847 +F .5(and actions should apply to the `)144 144 R(`def)-.74 E(ault')-.1 E +3('c)-.74 G .5(ommand completion; that is, completion attempted on)-3 F +3.455(ac)144 156 S .955(ommand for which no completion has pre)-3.455 F +.955(viously been de\214ned.)-.25 F(The)5.955 E F13.455 E F0 .955 +(option indicates that)3.455 F .065 +(the remaining options and actions should apply to `)144 168 R(`empty') +-.74 E 2.564('c)-.74 G .064(ommand completion; that is, comple-)-2.564 F +(tion attempted on a blank line.)144 180 Q 1.437 (The process of applying these completion speci\214cations when w)144 -144 R 1.438(ord completion is attempted is)-.1 F(described abo)144 156 Q +204 R 1.438(ord completion is attempted is)-.1 F(described abo)144 216 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E(ogrammable Completion)-.18 E -F0(.)A .556(Other options, if speci\214ed, ha)144 180 R .856 -.15(ve t) +F0(.)A .556(Other options, if speci\214ed, ha)144 240 R .856 -.15(ve t) -.2 H .555(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555(guments to the)-.18 F F13.055 E F0(,)A F13.055 E F0 3.055(,a)C(nd)-3.055 E F13.055 E F0 .722 -(options \(and, if necessary)144 192 R 3.222(,t)-.65 G(he)-3.222 E F1 +(options \(and, if necessary)144 252 R 3.222(,t)-.65 G(he)-3.222 E F1 3.222 E F0(and)3.222 E F13.222 E F0 .723 (options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E -(sion before the)144 204 Q F1(complete)2.5 E F0 -.2(bu)2.5 G -(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1144 216 Q F2 -(comp-option)2.5 E F0(The)184 228 Q F2(comp-option)2.791 E F0 .291 +(sion before the)144 264 Q F1(complete)2.5 E F0 -.2(bu)2.5 G +(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1144 276 Q F2 +(comp-option)2.5 E F0(The)184 288 Q F2(comp-option)2.791 E F0 .291 (controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec') .15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291 -(yond the simple)-.15 F(generation of completions.)184 240 Q F2 -(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 252 Q F0 -.281(Perform the rest of the def)224 264 R(ault)-.1 E F1(bash)2.781 E F0 -.281(completions if the compspec generates no)2.781 F(matches.)224 276 Q -F1(default)184 288 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef) +(yond the simple)-.15 F(generation of completions.)184 300 Q F2 +(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 312 Q F0 +.281(Perform the rest of the def)224 324 R(ault)-.1 E F1(bash)2.781 E F0 +.281(completions if the compspec generates no)2.781 F(matches.)224 336 Q +F1(default)184 348 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef) -5.376 E 2.875(ault \214lename completion if the compspec generates no) --.1 F(matches.)224 300 Q F1(dir)184 312 Q(names)-.15 E F0(Perform direc\ -tory name completion if the compspec generates no matches.)224 324 Q F1 -(\214lenames)184 336 Q F0 -.7(Te)224 348 S .137(ll readline that the co\ +-.1 F(matches.)224 360 Q F1(dir)184 372 Q(names)-.15 E F0(Perform direc\ +tory name completion if the compspec generates no matches.)224 384 Q F1 +(\214lenames)184 396 Q F0 -.7(Te)224 408 S .137(ll readline that the co\ mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15 -G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 360 R 2.634 +G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 420 R 2.634 (ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F -.45(cial characters, or suppressing trailing spaces\).)224 372 R .45 -(Intended to be used with shell)5.45 F(functions.)224 384 Q F1(nospace) -184 396 Q F0 -.7(Te)6.11 G .22 +.45(cial characters, or suppressing trailing spaces\).)224 432 R .45 +(Intended to be used with shell)5.45 F(functions.)224 444 Q F1(nospace) +184 456 Q F0 -.7(Te)6.11 G .22 (ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F -.22(ords completed at the end)-.1 F(of the line.)224 408 Q F1(plusdirs) -184 420 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985 +.22(ords completed at the end)-.1 F(of the line.)224 468 Q F1(plusdirs) +184 480 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985 (atches de\214ned by the compspec are generated, directory name)-4.485 F -.584(completion is attempted and an)224 432 R 3.084(ym)-.15 G .584 -(atches are added to the results of the other)-3.084 F(actions.)224 444 -Q F1144 456 Q F2(action)2.5 E F0(The)184 468 Q F2(action)2.5 E F0 +.584(completion is attempted and an)224 492 R 3.084(ym)-.15 G .584 +(atches are added to the results of the other)-3.084 F(actions.)224 504 +Q F1144 516 Q F2(action)2.5 E F0(The)184 528 Q F2(action)2.5 E F0 (may be one of the follo)2.5 E (wing to generate a list of possible completions:)-.25 E F1(alias)184 -480 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F12.5 -E F0(.)A F1(arrayv)184 492 Q(ar)-.1 E F0(Array v)224 504 Q -(ariable names.)-.25 E F1 4.7(binding Readline)184 516 R F0 -.1(ke)2.5 G -2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 528 S(iltin).2 E F0 +540 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F12.5 +E F0(.)A F1(arrayv)184 552 Q(ar)-.1 E F0(Array v)224 564 Q +(ariable names.)-.25 E F1 4.7(binding Readline)184 576 R F0 -.1(ke)2.5 G +2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 588 S(iltin).2 E F0 (Names of shell b)11.85 E(uiltin commands.)-.2 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(command)184 540 -Q F0(Command names.)224 552 Q(May also be speci\214ed as)5 E F12.5 -E F0(.)A F1(dir)184 564 Q(ectory)-.18 E F0(Directory names.)224 576 Q -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(disabled)184 588 -Q F0(Names of disabled shell b)224 600 Q(uiltins.)-.2 E F1(enabled)184 -612 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184 -624 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May) +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(command)184 600 +Q F0(Command names.)224 612 Q(May also be speci\214ed as)5 E F12.5 +E F0(.)A F1(dir)184 624 Q(ectory)-.18 E F0(Directory names.)224 636 Q +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(disabled)184 648 +Q F0(Names of disabled shell b)224 660 Q(uiltins.)-.2 E F1(enabled)184 +672 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184 +684 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May) -.25 F(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1(\214le)184 -636 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F12.5 -E F0(.)A F1(function)184 648 Q F0(Names of shell functions.)224 660 Q F1 -(gr)184 672 Q(oup)-.18 E F0(Group names.)14.62 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(helptopic)184 -684 Q F0(Help topics as accepted by the)224 696 Q F1(help)2.5 E F0 -.2 -(bu)2.5 G(iltin.).2 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(50) -190.95 E 0 Cg EP -%%Page: 51 51 +696 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F12.5 +E F0(.)A(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(51)185.955 E 0 +Cg EP +%%Page: 52 52 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(hostname)184 84 Q F0(Hostnames, as tak)224 -96 Q(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF -(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 108 Q F0 -(Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G -(ay also be speci\214ed as)-5 E F12.5 E F0(.)A F1 -.1(ke)184 120 S -(yw).1 E(ord)-.1 E F0(Shell reserv)224 132 Q(ed w)-.15 E 2.5(ords. May) --.1 F(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1(running)184 -144 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve) --.25 G(.).15 E F1(ser)184 156 Q(vice)-.1 E F0(Service names.)10.67 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(setopt)184 168 Q -F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F12.5 E -F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1 -(shopt)184 180 Q F0(Shell option names as accepted by the)16.66 E F1 -(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 192 Q F0 -(Signal names.)14.99 E F1(stopped)184 204 Q F0 +-.35 E/F1 10/Times-Bold@0 SF(function)184 84 Q F0 +(Names of shell functions.)224 96 Q F1(gr)184 108 Q(oup)-.18 E F0 +(Group names.)14.62 E(May also be speci\214ed as)5 E F12.5 E F0(.) +A F1(helptopic)184 120 Q F0(Help topics as accepted by the)224 132 Q F1 +(help)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(hostname)184 144 Q F0 +(Hostnames, as tak)224 156 Q(en from the \214le speci\214ed by the)-.1 E +/F2 9/Times-Bold@0 SF(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E +F1(job)184 168 Q F0(Job names, if job control is acti)26.11 E -.15(ve) +-.25 G 5(.M).15 G(ay also be speci\214ed as)-5 E F12.5 E F0(.)A F1 +-.1(ke)184 180 S(yw).1 E(ord)-.1 E F0(Shell reserv)224 192 Q(ed w)-.15 E +2.5(ords. May)-.1 F(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1 +(running)184 204 Q F0(Names of running jobs, if job control is acti)5.54 +E -.15(ve)-.25 G(.).15 E F1(ser)184 216 Q(vice)-.1 E F0(Service names.) +10.67 E(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(setopt) +184 228 Q F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1 +2.5 E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.) +.2 E F1(shopt)184 240 Q F0(Shell option names as accepted by the)16.66 E +F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 252 Q F0 +(Signal names.)14.99 E F1(stopped)184 264 Q F0 (Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.) -.15 E F1(user)184 216 Q F0(User names.)21.67 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1 -.1(va)184 228 S +.15 E F1(user)184 276 Q F0(User names.)21.67 E +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1 -.1(va)184 288 S (riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F -(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1144 240 Q/F3 -10/Times-Italic@0 SF(globpat)2.5 E F0 1.41(The \214lename e)184 252 R -1.411(xpansion pattern)-.15 F F3(globpat)3.911 E F0 1.411(is e)3.911 F -1.411(xpanded to generate the possible comple-)-.15 F(tions.)184 264 Q -F1144 276 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 288 Q F3(wor)3.64 +(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1144 300 Q/F3 +10/Times-Italic@0 SF(globpat)2.5 E F0 1.007(The pathname e)184 312 R +1.007(xpansion pattern)-.15 F F3(globpat)3.507 E F0 1.007(is e)3.507 F +1.008(xpanded to generate the possible comple-)-.15 F(tions.)184 324 Q +F1144 336 Q F3(wor)2.5 E(dlist)-.37 E F0(The)184 348 Q F3(wor)3.64 E(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F F2 (IFS)3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and) --.25 F 2.007(each resultant w)184 300 R 2.007(ord is e)-.1 F 4.507 +-.25 F 2.007(each resultant w)184 360 R 2.007(ord is e)-.1 F 4.507 (xpanded. The)-.15 F 2.008(possible completions are the members of the) -4.507 F(resultant list which match the w)184 312 Q(ord being completed.) --.1 E F1144 324 Q F3(command)2.5 E(command)184 336 Q F0 1.056 +4.507 F(resultant list which match the w)184 372 Q(ord being completed.) +-.1 E F1144 384 Q F3(command)2.5 E(command)184 396 Q F0 1.056 (is e)3.556 F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056 (vironment, and its output is used as the possible)-.4 F(completions.) -184 348 Q F1144 360 Q F3(function)2.5 E F0 1.18 -(The shell function)184 372 R F3(function)3.68 E F0 1.181(is e)3.681 F +184 408 Q F1144 420 Q F3(function)2.5 E F0 1.18 +(The shell function)184 432 R F3(function)3.68 E F0 1.181(is e)3.681 F -.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681 (vironment. When)-.4 F 1.181(it \214n-)3.681 F .932 -(ishes, the possible completions are retrie)184 384 R -.15(ve)-.25 G +(ishes, the possible completions are retrie)184 444 R -.15(ve)-.25 G 3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F2 -(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 396 S(riable.) -.25 E F1144 408 Q F3(\214lterpat)2.5 E(\214lterpat)184 420 Q F0 -.733(is a pattern as used for \214lename e)3.233 F 3.233(xpansion. It) --.15 F .733(is applied to the list of possible)3.233 F 1.596 -(completions generated by the preceding options and ar)184 432 R 1.596 -(guments, and each completion)-.18 F(matching)184 444 Q F3(\214lterpat) +(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 456 S(riable.) +.25 E F1144 468 Q F3(\214lterpat)2.5 E(\214lterpat)184 480 Q F0 +.455(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15 +F .456(is applied to the list of possible)2.956 F 1.596 +(completions generated by the preceding options and ar)184 492 R 1.596 +(guments, and each completion)-.18 F(matching)184 504 Q F3(\214lterpat) 3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704 (rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0 (in)3.204 E F3(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705 -(tes the pattern;).05 F(in this case, an)184 456 Q 2.5(yc)-.15 G +(tes the pattern;).05 F(in this case, an)184 516 Q 2.5(yc)-.15 G (ompletion not matching)-2.5 E F3(\214lterpat)2.5 E F0(is remo)2.5 E --.15(ve)-.15 G(d.).15 E F1144 468 Q F3(pr)2.5 E(e\214x)-.37 E(pr) -184 480 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534 +-.15(ve)-.15 G(d.).15 E F1144 528 Q F3(pr)2.5 E(e\214x)-.37 E(pr) +184 540 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534 (ginning of each possible completion after all other options ha)-.15 F --.15(ve)-.2 G(been applied.)184 492 Q F1144 504 Q F3(suf)2.5 E +-.15(ve)-.2 G(been applied.)184 552 Q F1144 564 Q F3(suf)2.5 E 2.81(\214x suf)-.18 F<8c78>-.18 E F0 (is appended to each possible completion after all other options ha)2.5 -E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 520.8 R +E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 580.8 R .466(alue is true unless an in)-.25 F -.25(va)-.4 G .466 (lid option is supplied, an option other than).25 F F12.967 E F0 (or)2.967 E F12.967 E F0 .467(is sup-)2.967 F 1.362 -(plied without a)144 532.8 R F3(name)3.862 E F0(ar)3.862 E 1.361 +(plied without a)144 592.8 R F3(name)3.862 E F0(ar)3.862 E 1.361 (gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H -1.361(ompletion speci\214cation for a).15 F F3(name)144 544.8 Q F0 +1.361(ompletion speci\214cation for a).15 F F3(name)144 604.8 Q F0 (for which no speci\214cation e)2.5 E (xists, or an error occurs adding a completion speci\214cation.)-.15 E -F1(compopt)108 561.6 Q F0([)2.5 E F1A F3(option)2.5 E F0 2.5(][)C -F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C F3(name)-2.5 E F0(])A .447 -(Modify completion options for each)144 573.6 R F3(name)2.947 E F0 .447 -(according to the)2.947 F F3(option)2.947 E F0 .447 -(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726 -(completion if no)144 585.6 R F3(name)3.226 E F0 3.226(sa)C .726 +F1(compopt)108 621.6 Q F0([)2.5 E F1A F3(option)2.5 E F0 2.5(][)C +F1(\255DE)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C F3 +(name)-2.5 E F0(])A .447(Modify completion options for each)144 633.6 R +F3(name)2.947 E F0 .447(according to the)2.947 F F3(option)2.947 E F0 +.447(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726 +(completion if no)144 645.6 R F3(name)3.226 E F0 3.226(sa)C .726 (re supplied.)-3.226 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa) C .725(re gi)-3.225 F -.15(ve)-.25 G .725 -(n, display the completion options for).15 F(each)144 597.6 Q F3(name) +(n, display the completion options for).15 F(each)144 657.6 Q F3(name) 3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v) 5.724 F .724(alues of)-.25 F F3(option)3.224 E F0 .724(are those v)3.224 -F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 609.6 Q F0 -.2(bu) -2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v) -108 626.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327 +F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 669.6 Q F0 -.2(bu) +2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he) +-5.297 E F12.797 E F0 .297 +(option indicates that the remaining options should apply to)2.797 F +1.227(the `)144 681.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\ +mmand completion; that is, completion attempted on a command for which \ +no)-3.727 F 2.178(completion has pre)144 693.6 R 2.178 +(viously been de\214ned.)-.25 F(The)7.178 E F14.678 E F0 2.177 +(option indicates that the remaining options)4.677 F(should apply to `) +144 705.6 Q(`empty')-.74 E 2.5('c)-.74 G +(ommand completion; that is, completion attempted on a blank line.)-2.5 +E .327(The return v)108 722.4 R .327(alue is true unless an in)-.25 F +-.25(va)-.4 G .327 (lid option is supplied, an attempt is made to modify the options for a) -.25 F F3(name)108 638.4 Q F0(for which no completion speci\214cation e) -2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 655.2 Q -F0([)2.5 E F3(n)A F0(])A 1.753(Resume the ne)144 667.2 R 1.753 -(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A -F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1 -(select)4.254 E F0 4.254(loop. If)4.254 F F3(n)4.614 E F0 1.754 -(is speci\214ed,)4.494 F 1.209(resume at the)144 679.2 R F3(n)3.709 E F0 -1.209(th enclosing loop.)B F3(n)6.569 E F0 1.209(must be)3.949 F/F4 10 -/Symbol SF3.709 E F0 3.709(1. If)3.709 F F3(n)4.069 E F0 1.209 -(is greater than the number of enclosing)3.949 F .513 -(loops, the last enclosing loop \(the `)144 691.2 R(`top-le)-.74 E -.15 -(ve)-.25 G(l').15 E 3.013('l)-.74 G .513(oop\) is resumed.)-3.013 F .514 -(The return v)5.514 F .514(alue is 0 unless)-.25 F F3(n)3.014 E F0(is) -3.014 E(not greater than or equal to 1.)144 703.2 Q(GNU Bash-4.0)72 768 -Q(2009 February 7)140.96 E(51)190.95 E 0 Cg EP -%%Page: 52 52 +.25 F(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(52)185.955 E 0 Cg +EP +%%Page: 53 53 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(declar)108 84 Q(e)-.18 E F0([)2.5 E F1 -(\255aAfFilrtux)A F0 2.5(][)C F1-2.5 E F0 2.5(][)C/F2 10 -/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -F1(typeset)108 96 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1 --2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..]) --2.5 E 1.265(Declare v)144 108 R 1.265(ariables and/or gi)-.25 F 1.565 --.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E -F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.764 -(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F -.25 -(va)144 120 S 3.482(riables. The).25 F F13.482 E F0 .982 -(option will display the attrib)3.482 F .982(utes and v)-.2 F .983 -(alues of each)-.25 F F2(name)3.483 E F0 5.983(.W).18 G(hen)-5.983 E F1 -3.483 E F0 .983(is used)3.483 F(with)144 132 Q F2(name)3.58 E F0 -(ar)3.58 E 1.079(guments, additional options are ignored.)-.18 F(When) -6.079 E F13.579 E F0 1.079(is supplied without)3.579 F F2(name) -3.579 E F0(ar)3.579 E(gu-)-.18 E .15(ments, it will display the attrib) -144 144 R .15(utes and v)-.2 F .151(alues of all v)-.25 F .151 -(ariables ha)-.25 F .151(ving the attrib)-.2 F .151 -(utes speci\214ed by the)-.2 F .047(additional options.)144 156 R .047 -(If no other options are supplied with)5.047 F F12.547 E F0(,)A F1 -(declar)2.547 E(e)-.18 E F0 .046(will display the attrib)2.546 F .046 -(utes and)-.2 F -.25(va)144 168 S 1.362(lues of all shell v).25 F 3.862 -(ariables. The)-.25 F F13.862 E F0 1.363 -(option will restrict the display to shell functions.)3.862 F(The)6.363 -E F13.863 E F0 2.422(option inhibits the display of function de\ -\214nitions; only the function name and attrib)144 180 R 2.422(utes are) --.2 F 2.663(printed. If)144 192 R(the)2.663 E F1(extdeb)2.663 E(ug)-.2 E -F0 .164(shell option is enabled using)2.663 F F1(shopt)2.664 E F0 2.664 -(,t)C .164(he source \214le name and line number)-2.664 F 1.382 -(where the function is de\214ned are displayed as well.)144 204 R(The) -6.382 E F13.882 E F0 1.382(option implies)3.882 F F13.882 E -F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .793 -(options can be used to restrict output to v)144 216 R .794 -(ariables with the speci\214ed attrib)-.25 F .794(ute or to gi)-.2 F -1.094 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 228 Q(utes:)-.2 E F1 -144 240 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15 -(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5 -E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1144 252 Q F0(Each)23.08 -E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15 -E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).) -.15 E F1144 264 Q F0(Use function names only)26.97 E(.)-.65 E F1 -144 276 Q F0 .558(The v)27.52 F .558 +-.35 E/F1 10/Times-Italic@0 SF(name)108 84 Q F0 +(for which no completion speci\214cation e)2.5 E +(xists, or an output error occurs.)-.15 E/F2 10/Times-Bold@0 SF +(continue)108 100.8 Q F0([)2.5 E F1(n)A F0(])A 1.754(Resume the ne)144 +112.8 R 1.754(xt iteration of the enclosing)-.15 F F2 -.25(fo)4.254 G(r) +.25 E F0(,)A F2(while)4.254 E F0(,)A F2(until)4.254 E F0 4.254(,o)C(r) +-4.254 E F2(select)4.254 E F0 4.253(loop. If)4.254 F F1(n)4.613 E F0 +1.753(is speci\214ed,)4.493 F 1.208(resume at the)144 124.8 R F1(n)3.709 +E F0 1.209(th enclosing loop.)B F1(n)6.569 E F0 1.209(must be)3.949 F/F3 +10/Symbol SF3.709 E F0 3.709(1. If)3.709 F F1(n)4.069 E F0 1.209 +(is greater than the number of enclosing)3.949 F .514 +(loops, the last enclosing loop \(the `)144 136.8 R(`top-le)-.74 E -.15 +(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513 +(The return v)5.513 F .513(alue is 0 unless)-.25 F F1(n)3.013 E F0(is) +3.013 E(not greater than or equal to 1.)144 148.8 Q F2(declar)108 165.6 +Q(e)-.18 E F0([)2.5 E F2(\255aAfFilrtux)A F0 2.5(][)C F2-2.5 E F0 +2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E F2 +(typeset)108 177.6 Q F0([)2.5 E F2(\255aAfFilrtux)A F0 2.5(][)C F2 +-2.5 E F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C(..]) +-2.5 E 1.264(Declare v)144 189.6 R 1.264(ariables and/or gi)-.25 F 1.564 +-.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E +F1(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765 +(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25 +(va)144 201.6 S 3.483(riables. The).25 F F23.483 E F0 .983 +(option will display the attrib)3.483 F .983(utes and v)-.2 F .982 +(alues of each)-.25 F F1(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F2 +3.482 E F0 .982(is used)3.482 F(with)144 213.6 Q F1(name)3.579 E +F0(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F +(When)6.079 E F23.579 E F0 1.079(is supplied without)3.579 F F1 +(name)3.58 E F0(ar)3.58 E(gu-)-.18 E .151 +(ments, it will display the attrib)144 225.6 R .151(utes and v)-.2 F +.151(alues of all v)-.25 F .15(ariables ha)-.25 F .15(ving the attrib) +-.2 F .15(utes speci\214ed by the)-.2 F .046(additional options.)144 +237.6 R .046(If no other options are supplied with)5.046 F F22.547 +E F0(,)A F2(declar)2.547 E(e)-.18 E F0 .047(will display the attrib) +2.547 F .047(utes and)-.2 F -.25(va)144 249.6 S 1.363 +(lues of all shell v).25 F 3.863(ariables. The)-.25 F F23.863 E F0 +1.362(option will restrict the display to shell functions.)3.863 F(The) +6.362 E F23.862 E F0 2.422(option inhibits the display of functio\ +n de\214nitions; only the function name and attrib)144 261.6 R 2.423 +(utes are)-.2 F 2.664(printed. If)144 273.6 R(the)2.664 E F2(extdeb) +2.664 E(ug)-.2 E F0 .164(shell option is enabled using)2.664 F F2(shopt) +2.664 E F0 2.664(,t)C .163(he source \214le name and line number)-2.664 +F 1.382(where the function is de\214ned are displayed as well.)144 285.6 +R(The)6.382 E F23.882 E F0 1.382(option implies)3.882 F F2 +3.882 E F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794 +(options can be used to restrict output to v)144 297.6 R .794 +(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F +1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 309.6 Q(utes:)-.2 E F2 +144 321.6 Q F0(Each)25.3 E F1(name)2.5 E F0(is an inde)2.5 E -.15 +(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F2(Arrays)2.5 +E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2144 333.6 Q F0(Each) +23.08 E F1(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H +(rray v).15 E(ariable \(see)-.25 E F2(Arrays)2.5 E F0(abo)2.5 E -.15(ve) +-.15 G(\).).15 E F2144 345.6 Q F0(Use function names only)26.97 E +(.)-.65 E F2144 357.6 Q F0 .557(The v)27.52 F .558 (ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25 -(va)-.25 G .558(luation \(see).25 F/F3 9/Times-Bold@0 SF .557 -(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 288 Q F0 -(is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.) --.25 E F1144 300 Q F0 .909(When the v)27.52 F .909 -(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909 -(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer) --.25 E(-)-.2 E 2.5(case. The)180 312 R(upper)2.5 E(-case attrib)-.2 E -(ute is disabled.)-.2 E F1144 324 Q F0(Mak)25.86 E(e)-.1 E F2 -(name)5.047 E F0 5.047(sr)C(eadonly)-5.047 E 7.547(.T)-.65 G 2.546 -(hese names cannot then be assigned v)-7.547 F 2.546 -(alues by subsequent)-.25 F(assignment statements or unset.)180 336 Q F1 -144 348 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F2(name) -2.929 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929 -(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG) --.1 E F0(and)2.93 E F1(RETURN)2.93 E F0(traps from the calling shell.) -180 360 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E -(ariables.)-.25 E F1144 372 Q F0 .91(When the v)24.74 F .909 -(ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909 -(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F -(-)-.2 E 2.5(case. The)180 384 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E -(ute is disabled.)-.2 E F1144 396 Q F0(Mark)25.3 E F2(name)2.5 E -F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E -(vironment.)-.4 E .12(Using `+' instead of `\255' turns of)144 412.8 R -2.62(ft)-.25 G .12(he attrib)-2.62 F .121(ute instead, with the e)-.2 F -.121(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F -1.237(to destro)144 424.8 R 3.737(ya)-.1 G 3.737(na)-3.737 G 1.237 -(rray v)-3.737 F 1.237(ariable and)-.25 F F1 1.237(+r will not r)3.737 F -(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237(eadonly attrib) --.18 F 3.737(ute. When)-.2 F 1.236(used in a)3.737 F .311(function, mak) -144 436.8 R .311(es each)-.1 F F2(name)2.811 E F1 .311 -(local, as with the local)2.811 F F0 2.811(command. If)2.811 F 2.811(av) -2.811 G .312(ariable name is follo)-3.061 F .312(wed by)-.25 F(=)144 -448.8 Q F2(value)A F0 3.239(,t)C .739(he v)-3.239 F .739(alue of the v) --.25 F .739(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738 -(he return v)-5.738 F .738(alue is 0 unless an in)-.25 F -.25(va)-.4 G -.738(lid option is).25 F .603 -(encountered, an attempt is made to de\214ne a function using)144 460.8 -R/F4 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na) --3.103 G .604(ttempt is made to)-3.103 F 1.243(assign a v)144 472.8 R -1.243(alue to a readonly v)-.25 F 1.242 -(ariable, an attempt is made to assign a v)-.25 F 1.242 +(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .558 +(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 369.6 Q F0(abo) +2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v) +-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E F2144 381.6 Q +F0 .91(When the v)27.52 F .909(ariable is assigned a v)-.25 F .909 +(alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4 +G .909(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 393.6 R +(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2144 405.6 +Q F0(Mak)25.86 E(e)-.1 E F1(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E +7.546(.T)-.65 G 2.546(hese names cannot then be assigned v)-7.546 F +2.547(alues by subsequent)-.25 F(assignment statements or unset.)180 +417.6 Q F2144 429.6 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E +F1(name)2.93 E F0(the)2.929 E F1(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E +2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F2(DEB)2.929 +E(UG)-.1 E F0(and)2.929 E F2(RETURN)2.929 E F0 +(traps from the calling shell.)180 441.6 Q(The trace attrib)5 E +(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2144 +453.6 Q F0 .909(When the v)24.74 F .909(ariable is assigned a v)-.25 F +.909(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2 F +-.15(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 465.6 R +(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2 +144 477.6 Q F0(Mark)25.3 E F1(name)2.5 E F0 2.5(sf)C(or e)-2.5 E +(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .121 +(Using `+' instead of `\255' turns of)144 494.4 R 2.621(ft)-.25 G .121 +(he attrib)-2.621 F .121(ute instead, with the e)-.2 F .12 +(xceptions that)-.15 F F2(+a)2.62 E F0 .12(may not be used)2.62 F .644 +(to destro)144 506.4 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v) +-3.144 F .644(ariable and)-.25 F F2(+r)3.145 E F0 .645(will not remo) +3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.145 +(ute. When)-.2 F .645(used in a func-)3.145 F 1.945(tion, mak)144 518.4 +R 1.945(es each)-.1 F F1(name)4.445 E F0 1.945(local, as with the)4.445 +F F2(local)4.444 E F0 4.444(command. If)4.444 F 4.444(av)4.444 G 1.944 +(ariable name is follo)-4.694 F 1.944(wed by)-.25 F(=)144 530.4 Q F1 +(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)-.25 F .738 +(ariable is set to)-.25 F F1(value)3.238 E F0 5.738(.T)C .738 +(he return v)-5.738 F .739(alue is 0 unless an in)-.25 F -.25(va)-.4 G +.739(lid option is).25 F .603 +(encountered, an attempt is made to de\214ne a function using)144 542.4 +R/F5 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na) +-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 554.4 R +1.242(alue to a readonly v)-.25 F 1.242 +(ariable, an attempt is made to assign a v)-.25 F 1.243 (alue to an array v)-.25 F(ariable)-.25 E 1.386 -(without using the compound assignment syntax \(see)144 484.8 R F1 +(without using the compound assignment syntax \(see)144 566.4 R F2 (Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F -F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 496.8 S .172 +F1(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 578.4 S .171 (lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25 -F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171 -(ariable, an)-.25 F .96(attempt is made to turn of)144 508.8 R 3.46(fa) +F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172 +(ariable, an)-.25 F .96(attempt is made to turn of)144 590.4 R 3.46(fa) -.25 G .96(rray status for an array v)-3.46 F .96 -(ariable, or an attempt is made to display a)-.25 F(non-e)144 520.8 Q -(xistent function with)-.15 E F12.5 E F0(.)A F1(dirs [+)108 537.6 -Q F2(n)A F1 2.5(][)C-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0 --.4(Wi)144 549.6 S .329 +(ariable, or an attempt is made to display a)-.25 F(non-e)144 602.4 Q +(xistent function with)-.15 E F22.5 E F0(.)A F2(dirs [+)108 619.2 +Q F1(n)A F2 2.5(][)C-2.5 E F1(n)A F2 2.5(][)C(\255cplv])-2.5 E F0 +-.4(Wi)144 631.2 S .328 (thout options, displays the list of currently remembered directories.) -.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238 -(single line with directory names separated by spaces.)144 561.6 R 1.238 -(Directories are added to the list with the)6.238 F F1(pushd)144 573.6 Q -F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G -2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 585.6 Q F2(n)A F0 -1.565(Displays the)25.3 F F2(n)4.065 E F0 1.565 -(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1 -(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E -(without options, starting with zero.)180 597.6 Q F1144 609.6 Q F2 -(n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194 +.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238 +(single line with directory names separated by spaces.)144 643.2 R 1.238 +(Directories are added to the list with the)6.238 F F2(pushd)144 655.2 Q +F0(command; the)2.5 E F2(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G +2.5(se).15 G(ntries from the list.)-2.5 E F2(+)144 667.2 Q F1(n)A F0 +1.564(Displays the)25.3 F F1(n)4.064 E F0 1.565 +(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F2 +(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E +(without options, starting with zero.)180 679.2 Q F2144 691.2 Q F1 +(n)A F0 1.194(Displays the)25.3 F F1(n)3.694 E F0 1.194 (th entry counting from the right of the list sho)B 1.194(wn by)-.25 F -F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E -(without options, starting with zero.)180 621.6 Q F1144 633.6 Q F0 -(Clears the directory stack by deleting all of the entries.)25.86 E F1 -144 645.6 Q F0 .324(Produces a longer listing; the def)27.52 F -.324(ault listing format uses a tilde to denote the home direc-)-.1 F -(tory)180 657.6 Q(.)-.65 E F1144 669.6 Q F0 -(Print the directory stack with one entry per line.)24.74 E F1144 -681.6 Q F0 .272(Print the directory stack with one entry per line, pre\ -\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773 -G(he)-2.773 E(stack.)180 693.6 Q .258(The return v)144 710.4 R .258 -(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258 -(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe) --.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-) -.15 F(tory stack.)144 722.4 Q(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(52)190.95 E 0 Cg EP -%%Page: 53 53 +F2(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E +(without options, starting with zero.)180 703.2 Q F2144 715.2 Q F0 +(Clears the directory stack by deleting all of the entries.)25.86 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(53)185.955 E 0 Cg EP +%%Page: 54 54 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(diso)108 84 Q(wn)-.1 E F0([)2.5 E F1 -(\255ar)A F0 2.5(][)C F1-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF -(jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 96 S .295(thout options, each) -.4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df) -.15 G .295(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795 -(obs. If).15 F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .244 -(and neither)144 108 R F1 .243(\255a nor \255r is supplied, the shell') -2.744 F 2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243 -(ent job)-.37 F F1 .243(is used.)2.743 F .243(If the \255h option)5.243 -F .333(is gi)144 120 R -.1(ve)-.1 G .333(n, each).1 F F2(jobspec)4.574 E -F0 .334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334 -(rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F -/F3 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .334(is not sent to)2.584 F 1.19 -(the job if the shell recei)144 132 R -.15(ve)-.25 G 3.689(sa).15 G F3 -(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2(jobspec) -5.429 E F0 1.189(is present, and neither the)3.999 F F13.689 E F0 -1.189(nor the)3.689 F F13.689 E F0 1.569(option is supplied, the) -144 144 R F2(curr)4.069 E 1.569(ent job)-.37 F F0 1.569(is used.)4.069 F -1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.57(is supplied, the)4.38 F -F14.07 E F0 1.57(option means to)4.07 F(remo)144 156 Q .904 -.15 -(ve o)-.15 H 3.104(rm).15 G .604(ark all jobs; the)-3.104 F F1 -3.103 E F0 .603(option without a)3.103 F F2(jobspec)4.843 E F0(ar)3.413 -E .603(gument restricts operation to running)-.18 F 2.5(jobs. The)144 -168 R(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0 -(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 184.8 Q +-.35 E/F1 10/Times-Bold@0 SF144 84 Q F0 .324 +(Produces a longer listing; the def)27.52 F .324 +(ault listing format uses a tilde to denote the home direc-)-.1 F(tory) +180 96 Q(.)-.65 E F1144 108 Q F0 +(Print the directory stack with one entry per line.)24.74 E F1144 +120 Q F0 .273(Print the directory stack with one entry per line, pre\ +\214xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772 +G(he)-2.772 E(stack.)180 132 Q .257(The return v)144 148.8 R .258 +(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258 +(lid option is supplied or).25 F/F2 10/Times-Italic@0 SF(n)2.758 E F0 +(inde)2.758 E -.15(xe)-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258 +(ond the end of the direc-).15 F(tory stack.)144 160.8 Q F1(diso)108 +177.6 Q(wn)-.1 E F0([)2.5 E F1(\255ar)A F0 2.5(][)C F1-2.5 E F0 +2.5(][)C F2(jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 189.6 S .295 +(thout options, each).4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F +-.15(ve)-.15 G 2.795(df).15 G .295(rom the table of acti)-2.795 F .595 +-.15(ve j)-.25 H 2.795(obs. If).15 F F2(jobspec)4.535 E F0 .295 +(is not present,)3.105 F .422(and neither)144 201.6 R F12.922 E F0 +(nor)2.922 E F12.922 E F0 .422(is supplied, the shell')2.922 F +2.922(sn)-.55 G .422(otion of the)-2.922 F F2(curr)2.923 E .423(ent job) +-.37 F F0 .423(is used.)2.923 F .423(If the)5.423 F F12.923 E F0 +.423(option is)2.923 F(gi)144 213.6 Q -.15(ve)-.25 G .141(n, each).15 F +F2(jobspec)4.381 E F0 .141(is not remo)2.951 F -.15(ve)-.15 G 2.641(df) +.15 G .141(rom the table, b)-2.641 F .141(ut is mark)-.2 F .141 +(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)2.641 E F0 .14 +(is not sent to the)2.39 F .004(job if the shell recei)144 225.6 R -.15 +(ve)-.25 G 2.504(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .004 +(If no)4.504 F F2(jobspec)4.244 E F0 .004(is present, and neither the) +2.814 F F12.504 E F0 .005(nor the)2.504 F F12.505 E F0 .005 +(option is)2.505 F 1.229(supplied, the)144 237.6 R F2(curr)3.729 E 1.229 +(ent job)-.37 F F0 1.229(is used.)3.729 F 1.229(If no)6.229 F F2 +(jobspec)5.469 E F0 1.229(is supplied, the)4.039 F F13.729 E F0 +1.228(option means to remo)3.729 F 1.528 -.15(ve o)-.15 H(r).15 E .656 +(mark all jobs; the)144 249.6 R F13.156 E F0 .657 +(option without a)3.156 F F2(jobspec)4.897 E F0(ar)3.467 E .657 +(gument restricts operation to running jobs.)-.18 F(The)5.657 E +(return v)144 261.6 Q(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0 +(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 278.4 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.394(Output the)144 196.8 R F2(ar)2.894 E(g)-.37 E F0 .394 +.395(Output the)144 290.4 R F2(ar)2.895 E(g)-.37 E F0 .395 (s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895 -(wline. The)-.25 F .395(return status is al)2.895 F -.1(wa)-.1 G .395 -(ys 0.).1 F(If)5.395 E F12.895 E F0 .549 -(is speci\214ed, the trailing ne)144 208.8 R .548(wline is suppressed.) +(wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394 +(ys 0.).1 F(If)5.394 E F12.894 E F0 .548 +(is speci\214ed, the trailing ne)144 302.4 R .548(wline is suppressed.) -.25 F .548(If the)5.548 F F13.048 E F0 .548(option is gi)3.048 F --.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 220.8 Q -.052(wing backslash-escaped characters is enabled.)-.25 F(The)5.052 E F1 -2.552 E F0 .053(option disables the interpretation of these)2.553 -F 1.503(escape characters, e)144 232.8 R -.15(ve)-.25 G 4.003(no).15 G -4.003(ns)-4.003 G 1.502(ystems where the)-4.003 F 4.002(ya)-.15 G 1.502 -(re interpreted by def)-4.002 F 4.002(ault. The)-.1 F F1(xpg_echo)4.002 -E F0(shell)4.002 E .009 -(option may be used to dynamically determine whether or not)144 244.8 R -F1(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15 -F .66(by def)144 256.8 R(ault.)-.1 E F1(echo)5.66 E F0 .66 -(does not interpret)3.16 F F13.16 E F0 .659 -(to mean the end of options.)3.159 F F1(echo)5.659 E F0 .659 -(interprets the follo)3.159 F(wing)-.25 E(escape sequences:)144 268.8 Q -F1(\\a)144 280.8 Q F0(alert \(bell\))28.22 E F1(\\b)144 292.8 Q F0 -(backspace)27.66 E F1(\\c)144 304.8 Q F0(suppress further output)28.78 E -F1(\\e)144 316.8 Q F0(an escape character)28.78 E F1(\\f)144 328.8 Q F0 -(form feed)29.89 E F1(\\n)144 340.8 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine) --2.5 E F1(\\r)144 352.8 Q F0(carriage return)28.78 E F1(\\t)144 364.8 Q -F0(horizontal tab)29.89 E F1(\\v)144 376.8 Q F0 -.15(ve)28.22 G -(rtical tab).15 E F1(\\\\)144 388.8 Q F0(backslash)30.44 E F1(\\0)144 -400.8 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E +-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 314.4 Q +.053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1 +2.553 E F0 .052(option disables the interpretation of these)2.552 +F 1.502(escape characters, e)144 326.4 R -.15(ve)-.25 G 4.002(no).15 G +4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502 +(re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003 +E F0(shell)4.003 E .009 +(option may be used to dynamically determine whether or not)144 338.4 R +F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters) +.15 F .659(by def)144 350.4 R(ault.)-.1 E F1(echo)5.659 E F0 .659 +(does not interpret)3.159 F F13.159 E F0 .659 +(to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66 +(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 362.4 Q +F1(\\a)144 374.4 Q F0(alert \(bell\))28.22 E F1(\\b)144 386.4 Q F0 +(backspace)27.66 E F1(\\c)144 398.4 Q F0(suppress further output)28.78 E +F1(\\e)144 410.4 Q F0(an escape character)28.78 E F1(\\f)144 422.4 Q F0 +(form feed)29.89 E F1(\\n)144 434.4 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine) +-2.5 E F1(\\r)144 446.4 Q F0(carriage return)28.78 E F1(\\t)144 458.4 Q +F0(horizontal tab)29.89 E F1(\\v)144 470.4 Q F0 -.15(ve)28.22 G +(rtical tab).15 E F1(\\\\)144 482.4 Q F0(backslash)30.44 E F1(\\0)144 +494.4 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E (alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0 -(\(zero to three octal digits\))2.5 E F1(\\x)144 412.8 Q F2(HH)A F0 +(\(zero to three octal digits\))2.5 E F1(\\x)144 506.4 Q F2(HH)A F0 (the eight-bit character whose v)13.78 E(alue is the he)-.25 E (xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh) --.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 429.6 Q F0([)2.5 E +-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 523.2 Q F0([)2.5 E F1A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1-2.5 E F2 -(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .277 -(Enable and disable b)144 441.6 R .278(uiltin shell commands.)-.2 F .278 +(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278 +(Enable and disable b)144 535.2 R .278(uiltin shell commands.)-.2 F .278 (Disabling a b)5.278 F .278(uiltin allo)-.2 F .278 -(ws a disk command which has)-.25 F .834(the same name as a shell b)144 -453.6 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834 -(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.333 -(nt).15 G(hough)-3.333 E .989(the shell normally searches for b)144 -465.6 R .989(uiltins before disk commands.)-.2 F(If)5.989 E F1 -3.489 E F0 .99(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F -1.582(abled; otherwise,)144 477.6 R F2(names)4.082 E F0 1.582 -(are enabled.)4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582 -(xample, to use the)-4.232 F F1(test)4.082 E F0 1.582 -(binary found via the)4.082 F F3 -.666(PA)4.081 G(TH)-.189 E F0 .08 -(instead of the shell b)144 489.6 R .08(uiltin v)-.2 F .08(ersion, run) --.15 F/F5 10/Courier@0 SF .081(enable -n test)2.58 F F0 5.081(.T)C(he) --5.081 E F12.581 E F0 .081(option means to load the ne)2.581 F(w) --.25 E -.2(bu)144 501.6 S 1.525(iltin command).2 F F2(name)4.385 E F0 -1.524(from shared object)4.204 F F2(\214lename)4.024 E F0 4.024(,o).18 G -4.024(ns)-4.024 G 1.524(ystems that support dynamic loading.)-4.024 F -(The)144 513.6 Q F12.866 E F0 .366(option will delete a b)2.866 F -.366(uiltin pre)-.2 F .366(viously loaded with)-.25 F F12.867 E F0 -5.367(.I)C 2.867(fn)-5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E -.367(guments are gi)-.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the) -144 525.6 R F12.899 E F0 .399 -(option is supplied, a list of shell b)2.899 F .399(uiltins is printed.) --.2 F -.4(Wi)5.399 G .399(th no other option ar).4 F .398(guments, the) --.18 F .098(list consists of all enabled shell b)144 537.6 R 2.598 -(uiltins. If)-.2 F F12.598 E F0 .098(is supplied, only disabled b) -2.598 F .099(uiltins are printed.)-.2 F(If)5.099 E F12.599 E F0 -1.917(is supplied, the list printed includes all b)144 549.6 R 1.916 -(uiltins, with an indication of whether or not each is)-.2 F 2.878 -(enabled. If)144 561.6 R F12.878 E F0 .379 -(is supplied, the output is restricted to the POSIX)2.878 F F2(special) -2.879 E F0 -.2(bu)2.879 G 2.879(iltins. The).2 F .379(return v)2.879 F -(alue)-.25 E .995(is 0 unless a)144 573.6 R F2(name)3.855 E F0 .994 -(is not a shell b)3.675 F .994(uiltin or there is an error loading a ne) --.2 F 3.494(wb)-.25 G .994(uiltin from a shared)-3.694 F(object.)144 -585.6 Q F1 -2.3 -.15(ev a)108 602.4 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 -E F0(...])2.5 E(The)144 614.4 Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671 -(re read and concatenated together into a single command.)-3.17 F .671 -(This command is then read)5.671 F .495(and e)144 626.4 R -.15(xe)-.15 G +(ws a disk command which has)-.25 F .833(the same name as a shell b)144 +547.2 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834 +(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334 +(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 559.2 +R .989(uiltins before disk commands.)-.2 F(If)5.989 E F13.489 E F0 +.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581 +(abled; otherwise,)144 571.2 R F2(names)4.082 E F0 1.582(are enabled.) +4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F +F1(test)4.082 E F0 1.582(binary found via the)4.082 F F3 -.666(PA)4.082 +G(TH)-.189 E F0 .081(instead of the shell b)144 583.2 R .081(uiltin v) +-.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test) +2.581 F F0 5.081(.T)C(he)-5.081 E F12.58 E F0 .08 +(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 595.2 S 1.524 +(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F +F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524 +(ystems that support dynamic loading.)-4.024 F(The)144 607.2 Q F1 +2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F +.367(viously loaded with)-.25 F F12.866 E F0 5.366(.I)C 2.866(fn) +-5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi) +-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 619.2 R F1 +2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399 +(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4 +F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144 +631.2 R 2.598(uiltins. If)-.2 F F12.598 E F0 .098 +(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F +(If)5.098 E F12.598 E F0 1.916 +(is supplied, the list printed includes all b)144 643.2 R 1.916 +(uiltins, with an indication of whether or not each is)-.2 F 2.879 +(enabled. If)144 655.2 R F12.879 E F0 .379 +(is supplied, the output is restricted to the POSIX)2.879 F F2(special) +2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F +(alue)-.25 E .994(is 0 unless a)144 667.2 R F2(name)3.854 E F0 .994 +(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne) +-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144 +679.2 Q F1 -2.3 -.15(ev a)108 696 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E +F0(...])2.5 E(The)144 708 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C .671 +(re read and concatenated together into a single command.)-3.171 F .67 +(This command is then read)5.67 F .495(and e)144 720 R -.15(xe)-.15 G .495(cuted by the shell, and its e).15 F .495 (xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15 (ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no) --2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 638.4 Q -(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1 -(exec)108 655.2 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1-2.5 E F2 +-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(54)185.955 E 0 Cg EP +%%Page: 55 55 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E(or only null ar)144 84 Q(guments,)-.18 E/F1 10/Times-Bold@0 SF +-2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1(exec)108 100.8 Q F0 +([)2.5 E F1(\255cl)A F0 2.5(][)C F1-2.5 E/F2 10/Times-Italic@0 SF (name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments) --.37 E F0(]])A(If)144 667.2 Q F2(command)3.005 E F0 .305 -(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805 -(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F2(ar)3.136 E -(guments)-.37 E F0(become)3.076 E .177(the ar)144 679.2 R .177 +-.37 E F0(]])A(If)144 112.8 Q F2(command)3.006 E F0 .306 +(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805 +(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E +(guments)-.37 E F0(become)3.075 E .176(the ar)144 124.8 R .176 (guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G (he)-2.676 E F12.676 E F0 .176 -(option is supplied, the shell places a dash at the be)2.676 F .176 -(ginning of)-.15 F .499(the zeroth ar)144 691.2 R .499(gument passed to) --.18 F F2(command)2.999 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2 -(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.5 E F13 E F0 -.5(option causes)3 F F2(com-)3.2 E(mand)144 703.2 Q F0 .639(to be e) -3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138 +(option is supplied, the shell places a dash at the be)2.676 F .177 +(ginning of)-.15 F .5(the zeroth ar)144 136.8 R .5(gument passed to)-.18 +F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999 +E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F12.999 E F0 +.499(option causes)2.999 F F2(com-)3.199 E(mand)144 148.8 Q F0 .638 +(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138 (vironment. If)-.4 F F13.138 E F0 .638 -(is supplied, the shell passes)3.138 F F2(name)3.498 E F0 .638(as the) -3.318 F 1.077(zeroth ar)144 715.2 R 1.077(gument to the e)-.18 F -.15 +(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the) +3.319 F 1.078(zeroth ar)144 160.8 R 1.077(gument to the e)-.18 F -.15 (xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0 1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a) -.15 F(non-interacti)144 727.2 Q 2.002 -.15(ve s)-.25 H 1.702(hell e).15 -F 1.702(xits, unless the shell option)-.15 F F1(execfail)4.201 E F0 -1.701(is enabled, in which case it returns)4.201 F(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(53)190.95 E 0 Cg EP -%%Page: 54 54 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E -.1(fa)144 84 S 2.563(ilure. An).1 F(interacti)2.563 E .363 -.15 -(ve s)-.25 H .063(hell returns f).15 F .064 -(ailure if the \214le cannot be e)-.1 F -.15(xe)-.15 G 2.564(cuted. If) -.15 F/F1 10/Times-Italic@0 SF(command)2.764 E F0 .064(is not speci-) -3.334 F .742(\214ed, an)144 96 R 3.242(yr)-.15 G .742(edirections tak) --3.242 F 3.242(ee)-.1 G -.25(ff)-3.242 G .742 -(ect in the current shell, and the return status is 0.).25 F .741 -(If there is a redi-)5.741 F(rection error)144 108 Q 2.5(,t)-.4 G -(he return status is 1.)-2.5 E/F2 10/Times-Bold@0 SF(exit)108 124.8 Q F0 -([)2.5 E F1(n)A F0 6.29(]C)C .095(ause the shell to e)-6.29 F .095 -(xit with a status of)-.15 F F1(n)2.595 E F0 5.095(.I)C(f)-5.095 E F1(n) -2.955 E F0 .096(is omitted, the e)2.835 F .096 -(xit status is that of the last command)-.15 F -.15(exe)144 136.8 S 2.5 -(cuted. A).15 F(trap on)2.5 E/F3 9/Times-Bold@0 SF(EXIT)2.5 E F0(is e) -2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E F2 -(export)108 153.6 Q F0([)2.5 E F2(\255fn)A F0 2.5(][).833 G F1(name)-2.5 -E F0([=)A F1(wor)A(d)-.37 E F0(]] ...)A F2(export \255p)108 165.6 Q F0 -.257(The supplied)144 177.6 R F1(names)3.117 E F0 .257(are mark)3.027 F -.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257 -(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.626 -(commands. If)144 189.6 R(the)2.626 E F22.626 E F0 .127 -(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F1(names)2.987 E -F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F1(names)2.987 E -F0 .127(are gi)2.897 F -.15(ve)-.25 G .127(n, or if the).15 F F2 -144 201.6 Q F0 .66(option is supplied, a list of all names that are e) -3.16 F .659(xported in this shell is printed.)-.15 F(The)5.659 E F2 -3.159 E F0(option)3.159 E 1.586(causes the e)144 213.6 R 1.586 +.15 F(non-interacti)144 172.8 Q .617 -.15(ve s)-.25 H .317(hell e).15 F +.317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318 +(is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505 +(ure. An)144 184.8 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005 +(hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15 +(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005 +(is not speci\214ed,)3.275 F(an)144 196.8 Q 3.036(yr)-.15 G .536 +(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536 +(ect in the current shell, and the return status is 0.).25 F .536 +(If there is a redirection)5.536 F(error)144 208.8 Q 2.5(,t)-.4 G +(he return status is 1.)-2.5 E F1(exit)108 225.6 Q F0([)2.5 E F2(n)A F0 +6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of) +-.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095 +(is omitted, the e)2.835 F .095(xit status is that of the last command) +-.15 F -.15(exe)144 237.6 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9 +/Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G +(cuted before the shell terminates.).15 E F1(export)108 254.4 Q F0([)2.5 +E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E +F0(]] ...)A F1(export \255p)108 266.4 Q F0 .256(The supplied)144 278.4 R +F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F +.257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15 +(xe)-.15 G(cuted).15 E 2.627(commands. If)144 290.4 R(the)2.627 E F1 +2.627 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the) +.15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no) +5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126 +(n, or if the).15 F F1144 302.4 Q F0 .659 +(option is supplied, a list of all names that are e)3.159 F .66 +(xported in this shell is printed.)-.15 F(The)5.66 E F13.16 E F0 +(option)3.16 E 1.587(causes the e)144 314.4 R 1.587 (xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586 -(rom each)-4.086 F F1(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G -1.587(ariable name is follo)-4.336 F 1.587(wed by)-.25 F(=)144 225.6 Q -F1(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v) --.25 F .304(ariable is set to)-.25 F F1(wor)2.804 E(d)-.37 E F0(.)A F2 -(export)5.304 E F0 .304(returns an e)2.804 F .303 -(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .293 -(option is encountered, one of the)144 237.6 R F1(names)2.793 E F0 .293 +(rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G +1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 326.4 Q +F2(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v) +-.25 F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1 +(export)5.304 E F0 .304(returns an e)2.804 F .304 +(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294 +(option is encountered, one of the)144 338.4 R F2(names)2.793 E F0 .293 (is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25 -F F22.793 E F0 .294(is supplied with a)2.793 F F1(name)144.36 -249.6 Q F0(that is not a function.)2.68 E F2(fc)108 266.4 Q F0([)2.5 E -F2A F1(ename)2.5 E F0 2.5(][)C F2(\255lnr)-2.5 E F0 2.5(][)C F1 -<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F1(last)-2.5 E F0(])A F2(fc \255s)108 -278.4 Q F0([)2.5 E F1(pat)A F0(=)A F1 -.37(re)C(p).37 E F0 2.5(][)C F1 -(cmd)-2.5 E F0(])A .478(Fix Command.)144 290.4 R .478 -(In the \214rst form, a range of commands from)5.478 F F1<8c72>4.888 E -(st)-.1 E F0(to)3.658 E F1(last)3.068 E F0 .477 -(is selected from the his-)3.658 F .881(tory list.)144 302.4 R F1 -.45 -(Fi)5.881 G -.1(rs).45 G(t).1 E F0(and)4.061 E F1(last)3.471 E F0 .882 +F F12.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 +350.4 Q F0(that is not a function.)2.68 E F1(fc)108 367.2 Q F0([)2.5 E +F1A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2 +<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108 +379.2 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2 +(cmd)-2.5 E F0(])A .477(Fix Command.)144 391.2 R .478 +(In the \214rst form, a range of commands from)5.477 F F2<8c72>4.888 E +(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .478 +(is selected from the his-)3.658 F .882(tory list.)144 403.2 R F2 -.45 +(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882 (may be speci\214ed as a string \(to locate the last command be)4.062 F -.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144 -314.4 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F --.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .796(umber is used as an) -.15 F(of)144 326.4 Q .276(fset from the current command number\).)-.25 F -(If)5.276 E F1(last)2.866 E F0 .277 -(is not speci\214ed it is set to the current command)3.456 F .093 -(for listing \(so that)144 338.4 R/F4 10/Courier@0 SF .092 +.881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144 +415.2 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F +-.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an) +.15 F(of)144 427.2 Q .277(fset from the current command number\).)-.25 F +(If)5.277 E F2(last)2.867 E F0 .276 +(is not speci\214ed it is set to the current command)3.457 F .092 +(for listing \(so that)144 439.2 R/F4 10/Courier@0 SF .092 (fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to) -2.592 F F1<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F1<8c72> -4.502 E(st)-.1 E F0 .092(is not)3.272 F -(speci\214ed it is set to the pre)144 350.4 Q -(vious command for editing and \25516 for listing.)-.25 E(The)144 374.4 -Q F22.522 E F0 .022 +2.592 F F2<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F2<8c72> +4.502 E(st)-.1 E F0 .093(is not)3.273 F +(speci\214ed it is set to the pre)144 451.2 Q +(vious command for editing and \25516 for listing.)-.25 E(The)144 475.2 +Q F12.522 E F0 .022 (option suppresses the command numbers when listing.)2.522 F(The)5.022 E -F22.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022 -(rses the order of).15 F .438(the commands.)144 386.4 R .438(If the) -5.438 F F22.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438 +F12.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022 +(rses the order of).15 F .438(the commands.)144 487.2 R .438(If the) +5.438 F F12.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438 (n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E -.334(the editor gi)144 398.4 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E -F1(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835 +.335(the editor gi)144 499.2 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E +F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835 (do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 -F(If)5.335 E F1(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G -(n,).15 E .631(the v)144 410.4 R .631(alue of the)-.25 F F3(FCEDIT)3.131 -E F0 -.25(va)2.881 G .631(riable is used, and the v).25 F .631(alue of) --.25 F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.13 E F0 .63 -(is not set.)2.88 F .63(If nei-)5.63 F .95(ther v)144 422.4 R .95 -(ariable is set,)-.25 F F1(vi)5.116 E F0 .95(is used.)5.116 F .951 -(When editing is complete, the edited commands are echoed and)5.95 F --.15(exe)144 434.4 S(cuted.).15 E .04(In the second form,)144 458.4 R F1 -(command)2.54 E F0 .04(is re-e)2.54 F -.15(xe)-.15 G .039 -(cuted after each instance of).15 F F1(pat)2.539 E F0 .039 -(is replaced by)2.539 F F1 -.37(re)2.539 G(p).37 E F0 5.039(.A)C(useful) --2.5 E .406(alias to use with this is)144 470.4 R F4 .406(r='fc \255s') -2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 -6.406(rc)2.906 G(c)-6.406 E F0 .406(runs the last command be)2.906 F -.407(ginning with)-.15 F F4(cc)144 482.4 Q F0(and typing)2.5 E F4(r)2.5 -E F0(re-e)2.5 E -.15(xe)-.15 G(cutes the last command.).15 E .142 -(If the \214rst form is used, the return v)144 506.4 R .142 +F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G +(n,).15 E .63(the v)144 511.2 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E +F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 +F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631 +(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 523.2 R .951 +(ariable is set,)-.25 F F2(vi)5.117 E F0 .951(is used.)5.117 F .95 +(When editing is complete, the edited commands are echoed and)5.951 F +-.15(exe)144 535.2 S(cuted.).15 E .039(In the second form,)144 559.2 R +F2(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 G .039 +(cuted after each instance of).15 F F2(pat)2.54 E F0 .04(is replaced by) +2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)-2.5 E .406 +(alias to use with this is)144 571.2 R F4 .406(r='fc \255s')2.906 F F0 +2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 6.406(rc)2.906 +G(c)-6.406 E F0 .406(runs the last command be)2.906 F .406(ginning with) +-.15 F F4(cc)144 583.2 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E +-.15(xe)-.15 G(cutes the last command.).15 E .142 +(If the \214rst form is used, the return v)144 607.2 R .142 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .142 -(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322 -E F1(last)2.732 E F0 .454(specify history lines out of range.)144 518.4 -R .454(If the)5.454 F F22.954 E F0 .454 -(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455 -(alue of the)-.25 F .788(last command e)144 530.4 R -.15(xe)-.15 G .788 -(cuted or f).15 F .787 +(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322 +E F2(last)2.732 E F0 .455(specify history lines out of range.)144 619.2 +R .454(If the)5.454 F F12.954 E F0 .454 +(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454 +(alue of the)-.25 F .787(last command e)144 631.2 R -.15(xe)-.15 G .787 +(cuted or f).15 F .788 (ailure if an error occurs with the temporary \214le of commands.)-.1 F -.787(If the)5.787 F 1.135 +.788(If the)5.788 F 1.136 (second form is used, the return status is that of the command re-e)144 -542.4 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136 -(does not)4.406 F(specify a v)144 554.4 Q -(alid history line, in which case)-.25 E F2(fc)2.5 E F0(returns f)2.5 E -(ailure.)-.1 E F2(fg)108 571.2 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume) -144 583.2 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413 +643.2 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135 +(does not)4.405 F(specify a v)144 655.2 Q +(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E +(ailure.)-.1 E F1(fg)108 672 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)144 +684 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413 (ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413 -(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0 -1.413(is not present, the)4.223 F(shell')144 595.2 Q 3.116(sn)-.55 G -.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617 -(is used.)3.116 F .617(The return v)5.617 F .617 -(alue is that of the command placed into the)-.25 F(fore)144 607.2 Q -.363(ground, or f)-.15 F .363 -(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362 -(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 619.2 Q -F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F1(jobspec) -4.244 E F0 .004(speci\214es a job that w)2.814 F .004 -(as started without job control.)-.1 F F2(getopts)108 636 Q F1 -(optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F2(getopts)144 -648 Q F0 .793 -(is used by shell procedures to parse positional parameters.)3.294 F F1 -(optstring)6.023 E F0 .793(contains the option)3.513 F .149 -(characters to be recognized; if a character is follo)144 660 R .15 -(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45 --.15(ve a)-.2 H(n).15 E(ar)144 672 Q .579 -(gument, which should be separated from it by white space.)-.18 F .578 -(The colon and question mark char)5.579 F(-)-.2 E 1.665 -(acters may not be used as option characters.)144 684 R 1.665 -(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts) -4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797 -(option in the shell v)144 696 R(ariable)-.25 E F1(name)3.297 E F0 3.297 -(,i).18 G(nitializing)-3.297 E F1(name)3.657 E F0 .797(if it does not e) -3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G 3.296(ft)-3.296 G -.796(he ne)-3.296 F(xt)-.15 E(ar)144 708 Q .085 -(gument to be processed into the v)-.18 F(ariable)-.25 E F3(OPTIND)2.585 -E/F5 9/Times-Roman@0 SF(.)A F3(OPTIND)4.585 E F0 .085 -(is initialized to 1 each time the shell)2.335 F .846 -(or a shell script is in)144 720 R -.2(vo)-.4 G -.1(ke).2 G 3.345 -(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F2 -(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(54)190.95 E 0 Cg EP -%%Page: 55 55 +(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0 +1.414(is not present, the)4.223 F(shell')144 696 Q 3.117(sn)-.55 G .617 +(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617 +(is used.)3.117 F .617(The return v)5.617 F .616 +(alue is that of the command placed into the)-.25 F(fore)144 708 Q .362 +(ground, or f)-.15 F .362(ailure if run when job control is disabled or) +-.1 F 2.862(,w)-.4 G .363(hen run with job control enabled, if)-2.862 F +F2(jobspec)145.74 720 Q F0 .004(does not specify a v)2.815 F .004 +(alid job or)-.25 F F2(jobspec)4.244 E F0 .004(speci\214es a job that w) +2.814 F .004(as started without job control.)-.1 F(GNU Bash-4.1)72 768 Q +(2009 December 29)135.965 E(55)185.955 E 0 Cg EP +%%Page: 56 56 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .803(into the v)144 84 R(ariable)-.25 E/F1 9/Times-Bold@0 SF(OPT) -3.303 E(ARG)-.81 E/F2 9/Times-Roman@0 SF(.)A F0 .803 -(The shell does not reset)5.303 F F1(OPTIND)3.303 E F0 .804 -(automatically; it must be manually)3.054 F .294 -(reset between multiple calls to)144 96 R/F3 10/Times-Bold@0 SF(getopts) -2.793 E F0 .293(within the same shell in)2.793 F -.2(vo)-.4 G .293 -(cation if a ne).2 F 2.793(ws)-.25 G .293(et of parameters)-2.793 F -(is to be used.)144 108 Q 2.043(When the end of options is encountered,) -144 132 R F3(getopts)4.543 E F0 -.15(ex)4.543 G 2.043 -(its with a return v).15 F 2.044(alue greater than zero.)-.25 F F3 -(OPTIND)144 144 Q F0(is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5 -G(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F3(name)2.5 E F0 -(is set to ?.)2.5 E F3(getopts)144 168 Q F0 2.393 -(normally parses the positional parameters, b)4.893 F 2.392 -(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892 -(ni).15 G(n)-4.892 E/F4 10/Times-Italic@0 SF(ar)4.892 E(gs)-.37 E F0(,) -.27 E F3(getopts)144 180 Q F0(parses those instead.)2.5 E F3(getopts)144 -204 Q F0 1.165(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665 -(ays. If)-3.765 F 1.165(the \214rst character of)3.665 F F4(optstring) -3.895 E F0 1.166(is a colon,)3.886 F F4(silent)4.006 E F0(error)4.346 E -1.264(reporting is used.)144 216 R 1.263 +-.35 E/F1 10/Times-Bold@0 SF(getopts)108 84 Q/F2 10/Times-Italic@0 SF +(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144 +96 Q F0 .793 +(is used by shell procedures to parse positional parameters.)3.293 F F2 +(optstring)6.023 E F0 .793(contains the option)3.513 F .15 +(characters to be recognized; if a character is follo)144 108 R .149 +(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449 +-.15(ve a)-.2 H(n).15 E(ar)144 120 Q .578 +(gument, which should be separated from it by white space.)-.18 F .579 +(The colon and question mark char)5.579 F(-)-.2 E 1.665 +(acters may not be used as option characters.)144 132 R 1.665 +(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts) +4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796 +(option in the shell v)144 144 R(ariable)-.25 E F2(name)3.296 E F0 3.296 +(,i).18 G(nitializing)-3.296 E F2(name)3.657 E F0 .797(if it does not e) +3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G 3.297(ft)-3.297 G +.797(he ne)-3.297 F(xt)-.15 E(ar)144 156 Q .085 +(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9 +/Times-Bold@0 SF(OPTIND)2.585 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND) +4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .845 +(or a shell script is in)144 168 R -.2(vo)-.4 G -.1(ke).2 G 3.345 +(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F1 +(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804 +(into the v)144 180 R(ariable)-.25 E F3(OPT)3.304 E(ARG)-.81 E F4(.)A F0 +.803(The shell does not reset)5.304 F F3(OPTIND)3.303 E F0 .803 +(automatically; it must be manually)3.053 F .293 +(reset between multiple calls to)144 192 R F1(getopts)2.793 E F0 .293 +(within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F +2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 204 Q +2.044(When the end of options is encountered,)144 228 R F1(getopts)4.543 +E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043 +(alue greater than zero.)-.25 F F3(OPTIND)144 240 Q F0 +(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G +(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0 +(is set to ?.)2.5 E F1(getopts)144 264 Q F0 2.392 +(normally parses the positional parameters, b)4.892 F 2.392 +(ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893 +(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F1(getopts)144 +276 Q F0(parses those instead.)2.5 E F1(getopts)144 300 Q F0 1.166 +(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F +1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.165 +(is a colon,)3.885 F F2(silent)4.005 E F0(error)4.345 E 1.263 +(reporting is used.)144 312 R 1.263 (In normal operation diagnostic messages are printed when in)6.263 F --.25(va)-.4 G 1.263(lid options or).25 F .393(missing option ar)144 228 -R .393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable) --.25 E F1(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F -(will be displayed, e)144 240 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 -G(he \214rst character of)-2.5 E F4(optstring)2.73 E F0(is not a colon.) -2.72 E .667(If an in)144 264 R -.25(va)-.4 G .667(lid option is seen,) -.25 F F3(getopts)3.167 E F0 .667(places ? into)3.167 F F4(name)3.527 E -F0 .666(and, if not silent, prints an error message)3.347 F .399 -(and unsets)144 276 R F1(OPT)2.899 E(ARG)-.81 E F2(.)A F0(If)4.899 E F3 +-.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144 324 +R .394(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable) +-.25 E F3(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F +(will be displayed, e)144 336 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 +G(he \214rst character of)-2.5 E F2(optstring)2.73 E F0(is not a colon.) +2.72 E .666(If an in)144 360 R -.25(va)-.4 G .666(lid option is seen,) +.25 F F1(getopts)3.166 E F0 .667(places ? into)3.167 F F2(name)3.527 E +F0 .667(and, if not silent, prints an error message)3.347 F .4 +(and unsets)144 372 R F3(OPT)2.9 E(ARG)-.81 E F4(.)A F0(If)4.899 E F1 (getopts)2.899 E F0 .399 -(is silent, the option character found is placed in)2.899 F F1(OPT)2.899 -E(ARG)-.81 E F0 .4(and no)2.65 F(diagnostic message is printed.)144 288 -Q 1.242(If a required ar)144 312 R 1.242(gument is not found, and)-.18 F -F3(getopts)3.741 E F0 1.241(is not silent, a question mark \()3.741 F F3 -(?).833 E F0 3.741(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F -F4(name)144 324 Q F0(,).18 E F1(OPT)2.734 E(ARG)-.81 E F0 .234 -(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F3 -(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F3(:).833 E -F0(\)).833 E(is placed in)144 336 Q F4(name)2.86 E F0(and)2.68 E F1(OPT) -2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F3 -(getopts)144 360 Q F0 .902 +(is silent, the option character found is placed in)2.899 F F3(OPT)2.899 +E(ARG)-.81 E F0 .399(and no)2.649 F(diagnostic message is printed.)144 +384 Q 1.241(If a required ar)144 408 R 1.241(gument is not found, and) +-.18 F F1(getopts)3.741 E F0 1.241(is not silent, a question mark \() +3.741 F F1(?).833 E F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242 +(laced in)-3.742 F F2(name)144 420 Q F0(,).18 E F3(OPT)2.735 E(ARG)-.81 +E F0 .234(is unset, and a diagnostic message is printed.)2.485 F(If) +5.234 E F1(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F1 +(:).833 E F0(\)).833 E(is placed in)144 432 Q F2(name)2.86 E F0(and)2.68 +E F3(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 +E F1(getopts)144 456 Q F0 .902 (returns true if an option, speci\214ed or unspeci\214ed, is found.) -3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F -(options is encountered or an error occurs.)144 372 Q F3(hash)108 388.8 -Q F0([)2.5 E F3(\255lr)A F0 2.5(][)C F3-2.5 E F4(\214lename)2.5 E -F0 2.5(][)C F3(\255dt)-2.5 E F0 2.5(][)C F4(name)-2.5 E F0(])A -.15(Fo) -144 400.8 S 3.554(re).15 G(ach)-3.554 E F4(name)3.554 E F0 3.554(,t).18 +3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F +(options is encountered or an error occurs.)144 468 Q F1(hash)108 484.8 +Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1-2.5 E F2(\214lename)2.5 E +F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo) +144 496.8 S 3.555(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555(,t).18 G 1.054(he full \214le name of the command is determined by searching t\ -he directories in)-3.554 F F3($P)144 412.8 Q -.95(AT)-.74 G(H).95 E F0 -.35(and remembered.)2.85 F .35(If the)5.35 F F32.85 E F0 .349 -(option is supplied, no path search is performed, and)2.849 F F4 -(\214lename)4.759 E F0 .452 -(is used as the full \214le name of the command.)144 424.8 R(The)5.452 E -F32.952 E F0 .452(option causes the shell to for)2.952 F .453 -(get all remem-)-.18 F .593(bered locations.)144 436.8 R(The)5.593 E F3 -3.093 E F0 .593(option causes the shell to for)3.093 F .592 -(get the remembered location of each)-.18 F F4(name)3.092 E F0(.)A .02 -(If the)144 448.8 R F32.52 E F0 .02 -(option is supplied, the full pathname to which each)2.52 F F4(name) -2.521 E F0 .021(corresponds is printed.)2.521 F .021(If multi-)5.021 F -(ple)144 460.8 Q F4(name)3.704 E F0(ar)3.704 E 1.204 -(guments are supplied with)-.18 F F33.703 E F0 3.703(,t)C(he) --3.703 E F4(name)3.703 E F0 1.203 -(is printed before the hashed full pathname.)3.703 F(The)144 472.8 Q F3 -3.215 E F0 .715(option causes output to be displayed in a format \ -that may be reused as input.)3.215 F .716(If no ar)5.716 F(gu-)-.18 E -1.184(ments are gi)144 484.8 R -.15(ve)-.25 G 1.184(n, or if only).15 F -F33.684 E F0 1.183 +he directories in)-3.555 F F1($P)144 508.8 Q -.95(AT)-.74 G(H).95 E F0 +.349(and remembered.)2.849 F .349(If the)5.349 F F12.849 E F0 .349 +(option is supplied, no path search is performed, and)2.849 F F2 +(\214lename)4.76 E F0 .452 +(is used as the full \214le name of the command.)144 520.8 R(The)5.452 E +F12.952 E F0 .452(option causes the shell to for)2.952 F .452 +(get all remem-)-.18 F .592(bered locations.)144 532.8 R(The)5.592 E F1 +3.092 E F0 .593(option causes the shell to for)3.092 F .593 +(get the remembered location of each)-.18 F F2(name)3.093 E F0(.)A .021 +(If the)144 544.8 R F12.521 E F0 .021 +(option is supplied, the full pathname to which each)2.521 F F2(name) +2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple) +144 556.8 Q F2(name)3.703 E F0(ar)3.703 E 1.203 +(guments are supplied with)-.18 F F13.703 E F0 3.703(,t)C(he) +-3.703 E F2(name)3.703 E F0 1.204 +(is printed before the hashed full pathname.)3.703 F(The)144 568.8 Q F1 +3.216 E F0 .715(option causes output to be displayed in a format \ +that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E +1.183(ments are gi)144 580.8 R -.15(ve)-.25 G 1.183(n, or if only).15 F +F13.683 E F0 1.184 (is supplied, information about remembered commands is printed.)3.684 F -(The return status is true unless a)144 496.8 Q F4(name)2.86 E F0 +(The return status is true unless a)144 592.8 Q F2(name)2.86 E F0 (is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25 -E F3(help)108 513.6 Q F0([)2.5 E F3(\255dms)A F0 2.5(][)C F4(pattern) --2.5 E F0(])A .866(Display helpful information about b)144 525.6 R .867 -(uiltin commands.)-.2 F(If)5.867 E F4(pattern)4.617 E F0 .867 -(is speci\214ed,)3.607 F F3(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G -3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144 -537.6 R F4(pattern)2.807 E F0 2.807(;o).24 G .307 -(therwise help for all the b)-2.807 F .306 -(uiltins and shell control struc-)-.2 F(tures is printed.)144 549.6 Q F3 -144 561.6 Q F0(Display a short description of each)24.74 E F4 -(pattern)2.5 E F3(-m)146.5 573.6 Q F0(Display the description of each) -21.84 E F4(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat) --2.5 E F3144 585.6 Q F0 -(Display only a short usage synopsis for each)26.41 E F4(pattern)2.5 E -F0(The return status is 0 unless no command matches)108 597.6 Q F4 -(pattern)2.5 E F0(.).24 E F3(history [)108 614.4 Q F4(n)A F3(])A -(history \255c)108 626.4 Q(history \255d)108 638.4 Q F4(of)2.5 E(fset) --.18 E F3(history \255anrw)108 650.4 Q F0([)2.5 E F4(\214lename)A F0(])A -F3(history \255p)108 662.4 Q F4(ar)2.5 E(g)-.37 E F0([)2.5 E F4(ar)A 2.5 -(g.)-.37 G(..)-2.5 E F0(])A F3(history \255s)108 674.4 Q F4(ar)2.5 E(g) --.37 E F0([)2.5 E F4(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 -686.4 S .752 -(th no options, display the command history list with line numbers.).4 F -.752(Lines listed with a)5.752 F F3(*)3.252 E F0(ha)3.252 E -.15(ve)-.2 -G 1.231(been modi\214ed.)144 698.4 R 1.231(An ar)6.231 F 1.231 -(gument of)-.18 F F4(n)4.091 E F0 1.231(lists only the last)3.971 F F4 -(n)4.091 E F0 3.73(lines. If)3.97 F 1.23(the shell v)3.73 F(ariable)-.25 -E F3(HISTTIME-)3.73 E(FORMA)144 710.4 Q(T)-.95 E F0 .249 -(is set and not null, it is used as a format string for)2.749 F F4 -(strftime)2.75 E F0 .25(\(3\) to display the time stamp)B 3.118 -(associated with each displayed history entry)144 722.4 R 8.118(.N)-.65 -G 5.617(oi)-8.118 G(nterv)-5.617 E 3.117 -(ening blank is printed between the)-.15 F(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(55)190.95 E 0 Cg EP -%%Page: 56 56 +E F1(help)108 609.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern) +-2.5 E F0(])A .867(Display helpful information about b)144 621.6 R .867 +(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .866 +(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G +3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144 +633.6 R F2(pattern)2.806 E F0 2.807(;o).24 G .307 +(therwise help for all the b)-2.807 F .307 +(uiltins and shell control struc-)-.2 F(tures is printed.)144 645.6 Q F1 +144 657.6 Q F0(Display a short description of each)24.74 E F2 +(pattern)2.5 E F1144 669.6 Q F0(Display the description of each) +21.97 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat) +-2.5 E F1144 681.6 Q F0 +(Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E +F0(The return status is 0 unless no command matches)108 693.6 Q F2 +(pattern)2.5 E F0(.).24 E(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 +E(56)185.955 E 0 Cg EP +%%Page: 57 57 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E .083(formatted time stamp and the history line.)144 84 R(If)5.084 -E/F1 10/Times-Italic@0 SF(\214lename)2.584 E F0 .084 -(is supplied, it is used as the name of the his-)2.584 F .097 -(tory \214le; if not, the v)144 96 R .097(alue of)-.25 F/F2 9 -/Times-Bold@0 SF(HISTFILE)2.597 E F0 .096(is used.)2.347 F .096 -(Options, if supplied, ha)5.096 F .396 -.15(ve t)-.2 H .096(he follo).15 -F .096(wing meanings:)-.25 F/F3 10/Times-Bold@0 SF144 108 Q F0 -(Clear the history list by deleting all the entries.)25.86 E F3144 -120 Q F1(of)2.5 E(fset)-.18 E F0(Delete the history entry at position) -180 132 Q F1(of)2.5 E(fset)-.18 E F0(.)A F3144 144 Q F0 .598 +-.35 E/F1 10/Times-Bold@0 SF(history [)108 84 Q/F2 10/Times-Italic@0 SF +(n)A F1(])A(history \255c)108 96 Q(history \255d)108 108 Q F2(of)2.5 E +(fset)-.18 E F1(history \255anrw)108 120 Q F0([)2.5 E F2(\214lename)A F0 +(])A F1(history \255p)108 132 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A +2.5(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 144 Q F2(ar)2.5 E(g) +-.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 156 +S .752 +(th no options, display the command history list with line numbers.).4 F +.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2 +G .38(been modi\214ed.)144 168 R .38(An ar)5.38 F .38(gument of)-.18 F +F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88 +(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9 +/Times-Bold@0 SF(HISTTIMEFOR-)2.881 E(MA)144 180 Q(T)-.855 E F0 .265 +(is set and not null, it is used as a format string for)2.515 F F2 +(strftime)2.764 E F0 .264(\(3\) to display the time stamp asso-)B 1.019 +(ciated with each displayed history entry)144 192 R 6.019(.N)-.65 G +3.519(oi)-6.019 G(nterv)-3.519 E 1.019 +(ening blank is printed between the formatted)-.15 F .176 +(time stamp and the history line.)144 204 R(If)5.176 E F2(\214lename) +2.676 E F0 .176 +(is supplied, it is used as the name of the history \214le; if)2.676 F +(not, the v)144 216 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)2.25 +E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F1144 228 Q F0 +(Clear the history list by deleting all the entries.)25.86 E F1144 +240 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position) +180 252 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1144 264 Q F0 .598 (Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598 (istory lines \(history lines entered since the be)-3.098 F .599 -(ginning of the current)-.15 F F3(bash)180 156 Q F0 -(session\) to the history \214le.)2.5 E F3144 168 Q F0 .854(Read \ +(ginning of the current)-.15 F F1(bash)180 276 Q F0 +(session\) to the history \214le.)2.5 E F1144 288 Q F0 .854(Read \ the history lines not already read from the history \214le into the cur\ rent history list.)24.74 F .772 -(These are lines appended to the history \214le since the be)180 180 R -.773(ginning of the current)-.15 F F3(bash)3.273 E F0(ses-)3.273 E -(sion.)180 192 Q F3144 204 Q F0(Read the contents of the history \ -\214le and use them as the current history)25.86 E(.)-.65 E F3144 -216 Q F0(Write the current history to the history \214le, o)23.08 E -.15 +(These are lines appended to the history \214le since the be)180 300 R +.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E +(sion.)180 312 Q F1144 324 Q F0(Read the contents of the history \ +\214le and use them as the current history)25.86 E(.)-.65 E F1144 +336 Q F0(Write the current history to the history \214le, o)23.08 E -.15 (ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.) --2.5 E F3144 228 Q F0 .626 -(Perform history substitution on the follo)24.74 F(wing)-.25 E F1(ar) +-2.5 E F1144 348 Q F0 .626 +(Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar) 3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F -2.975(output. Does)180 240 R .475 -(not store the results in the history list.)2.975 F(Each)5.475 E F1(ar) +2.975(output. Does)180 360 R .475 +(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar) 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F -(normal history e)180 252 Q(xpansion.)-.15 E F3144 264 Q F0 .363 -(Store the)26.41 F F1(ar)3.193 E(gs)-.37 E F0 .363 +(normal history e)180 372 Q(xpansion.)-.15 E F1144 384 Q F0 .363 +(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363 (in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362 -(he last command in the history list is)-5.363 F(remo)180 276 Q -.15(ve) --.15 G 2.5(db).15 G(efore the)-2.5 E F1(ar)2.83 E(gs)-.37 E F0 -(are added.)2.77 E .28(If the)144 292.8 R F3(HISTTIMEFORMA)2.78 E(T)-.95 -E F0 .28 -(is set, the time stamp information associated with each history entry) -2.78 F .54(is written to the history \214le, mark)144 304.8 R .539 -(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539 -(hen the history \214le is)-5.539 F 1.778(read, lines be)144 316.8 R -1.778(ginning with the history comment character follo)-.15 F 1.779 -(wed immediately by a digit are)-.25 F 1.424 -(interpreted as timestamps for the pre)144 328.8 R 1.424 -(vious history line.)-.25 F 1.424(The return v)6.424 F 1.424 +(he last command in the history list is)-5.363 F(remo)180 396 Q -.15(ve) +-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0 +(are added.)2.77 E .145(If the)144 412.8 R F3(HISTTIMEFORMA)2.645 E(T) +-.855 E F0 -.25(va)2.395 G .145 +(riable is set, the time stamp information associated with each history) +.25 F .669(entry is written to the history \214le, mark)144 424.8 R .669 +(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668 +(hen the history)-5.668 F .955(\214le is read, lines be)144 436.8 R .956 +(ginning with the history comment character follo)-.15 F .956 +(wed immediately by a digit)-.25 F .416 +(are interpreted as timestamps for the pre)144 448.8 R .416 +(vious history line.)-.25 F .416(The return v)5.416 F .415 (alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\ ncountered, an error occurs while reading or writing the history \214le\ -, an in)144 340.8 R -.25(va)-.4 G(lid).25 E F1(of)3 E(fset)-.18 E F0(is) -3 E(supplied as an ar)144 352.8 Q(gument to)-.18 E F32.5 E F0 2.5 +, an in)144 460.8 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is) +3 E(supplied as an ar)144 472.8 Q(gument to)-.18 E F12.5 E F0 2.5 (,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15 -E(gument to)-.18 E F32.5 E F0 -.1(fa)2.5 G(ils.).1 E F3(jobs)108 -369.6 Q F0([)2.5 E F3(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5 -E F3(jobs \255x)108 381.6 Q F1(command)2.5 E F0([)2.5 E F1(ar)2.5 E(gs) --.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 393.6 Q .3 +E(gument to)-.18 E F12.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(jobs)108 +489.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5 +E F1(jobs \255x)108 501.6 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs) +-.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 513.6 Q .3 -.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H -(he follo).15 E(wing meanings:)-.25 E F3144 405.6 Q F0 -(List process IDs in addition to the normal information.)27.52 E F3 -144 417.6 Q F0(List only the process ID of the job')24.74 E 2.5 -(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F3144 429.6 Q F0 +(he follo).15 E(wing meanings:)-.25 E F1144 525.6 Q F0 +(List process IDs in addition to the normal information.)27.52 E F1 +144 537.6 Q F0(List only the process ID of the job')24.74 E 2.5 +(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F1144 549.6 Q F0 .194(Display information only about jobs that ha)24.74 F .494 -.15(ve c) -.2 H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F -(\214ed of their status.)180 441.6 Q F3144 453.6 Q F0 -(Restrict output to running jobs.)25.86 E F3144 465.6 Q F0 -(Restrict output to stopped jobs.)26.41 E(If)144 482.4 Q F1(jobspec) +(\214ed of their status.)180 561.6 Q F1144 573.6 Q F0 +(Restrict output to running jobs.)25.86 E F1144 585.6 Q F0 +(Restrict output to stopped jobs.)26.41 E(If)144 602.4 Q F2(jobspec) 4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313 (n, output is restricted to information about that job).15 F 5.314(.T) --.4 G .314(he return status is 0 unless)-5.314 F(an in)144 494.4 Q -.25 +-.4 G .314(he return status is 0 unless)-5.314 F(an in)144 614.4 Q -.25 (va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25 -E F1(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 511.2 R F3 -2.895 E F0 .394(option is supplied,)2.894 F F3(jobs)2.894 E F0 -.394(replaces an)2.894 F(y)-.15 E F1(jobspec)4.634 E F0 .394(found in) -3.204 F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .394 -(with the corre-)3.164 F(sponding process group ID, and e)144 523.2 Q --.15(xe)-.15 G(cutes).15 E F1(command)2.7 E F0(passing it)3.27 E F1(ar) +E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 631.2 R F1 +2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0 +.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in) +3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394 +(with the corre-)3.164 F(sponding process group ID, and e)144 643.2 Q +-.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar) 2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E -F3(kill)108 540 Q F0([)2.5 E F3A F1(sigspec)2.5 E F0(|)2.5 E F3 -2.5 E F1(signum)2.5 E F0(|)2.5 E F32.5 E F1(sigspec)A F0 2.5 -(][)C F1(pid)-2.5 E F0(|)2.5 E F1(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F3 -(kill \255l)108 552 Q F0([)2.5 E F1(sigspec)A F0(|)2.5 E F1 -.2(ex)2.5 G -(it_status).2 E F0(])A .119(Send the signal named by)144 564 R F1 -(sigspec)2.959 E F0(or)2.929 E F1(signum)2.959 E F0 .119 -(to the processes named by)2.939 F F1(pid)3.87 E F0(or)3.39 E F1 -(jobspec)2.62 E F0(.).31 E F1(sigspec)5.46 E F0(is)2.93 E .319 -(either a case-insensiti)144 576 R .619 -.15(ve s)-.25 H .319 -(ignal name such as).15 F F2(SIGKILL)2.819 E F0 .318 -(\(with or without the)2.569 F F2(SIG)2.818 E F0 .318 -(pre\214x\) or a signal)2.568 F(number;)144 588 Q F1(signum)4.188 E F0 -1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F1(sigspec) -4.189 E F0 1.349(is not present, then)4.159 F F2(SIGTERM)3.849 E F0 -1.349(is assumed.)3.599 F(An)6.349 E(ar)144 600 Q .523(gument of)-.18 F -F33.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523 +F1(kill)108 660 Q F0([)2.5 E F1A F2(sigspec)2.5 E F0(|)2.5 E F1 +2.5 E F2(signum)2.5 E F0(|)2.5 E F12.5 E F2(sigspec)A F0 2.5 +(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1 +(kill \255l)108 672 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G +(it_status).2 E F0(])A .119(Send the signal named by)144 684 R F2 +(sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119 +(to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2 +(jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319 +(either a case-insensiti)144 696 R .619 -.15(ve s)-.25 H .319 +(ignal name such as).15 F F3(SIGKILL)2.819 E F0 .318 +(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318 +(pre\214x\) or a signal)2.568 F(number;)144 708 Q F2(signum)4.188 E F0 +1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec) +4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0 +1.349(is assumed.)3.599 F(An)6.349 E(ar)144 720 Q .523(gument of)-.18 F +F13.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F -F33.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names) -.15 F .28(of the signals corresponding to the ar)144 612 R .28 -(guments are listed, and the return status is 0.)-.18 F(The)5.28 E F1 --.2(ex)2.78 G(it_status).2 E F0(ar)144 624 Q .378(gument to)-.18 F F3 -2.878 E F0 .378 -(is a number specifying either a signal number or the e)2.878 F .377 -(xit status of a process termi-)-.15 F .593(nated by a signal.)144 636 R -F3(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F -.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F -(occurs or an in)144 648 Q -.25(va)-.4 G(lid option is encountered.).25 -E F3(let)108 664.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0 -(...])2.5 E(Each)144 676.8 Q F1(ar)3.965 E(g)-.37 E F0 1.135 -(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25 -G 1.134(luated \(see).25 F F2 1.134(ARITHMETIC EV)3.634 F(ALU)-1.215 E --.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.134(If the) -5.634 F(last)144 688.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G -(luates to 0,).25 E F3(let)2.5 E F0(returns 1; 0 is returned otherwise.) -2.5 E F3(local)108 705.6 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(name) --2.5 E F0([=)A F1(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 717.6 S -2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06 -(ariable named)-.25 F F1(name)2.92 E F0 .06(is created, and assigned) -2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F1(option)2.56 E F0 -.06(can be)2.56 F(an)144 729.6 Q 4.514(yo)-.15 G 4.514(ft)-4.514 G 2.014 -(he options accepted by)-4.514 F F3(declar)4.514 E(e)-.18 E F0 7.014(.W) -C(hen)-7.014 E F3(local)4.514 E F0 2.013 -(is used within a function, it causes the)4.514 F(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(56)190.95 E 0 Cg EP -%%Page: 57 57 +F13.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names) +.15 F(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(57)185.955 E 0 Cg +EP +%%Page: 58 58 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E -.25(va)144 84 S(riable).25 E/F1 10/Times-Italic@0 SF(name)3.87 E -F0 1.01(to ha)3.69 F 1.31 -.15(ve a v)-.2 H 1.011 +-.35 E .28(of the signals corresponding to the ar)144 84 R .28 +(guments are listed, and the return status is 0.)-.18 F(The)5.28 E/F1 10 +/Times-Italic@0 SF -.2(ex)2.78 G(it_status).2 E F0(ar)144 96 Q .378 +(gument to)-.18 F/F2 10/Times-Bold@0 SF2.878 E F0 .378 +(is a number specifying either a signal number or the e)2.878 F .377 +(xit status of a process termi-)-.15 F .593(nated by a signal.)144 108 R +F2(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F +.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F +(occurs or an in)144 120 Q -.25(va)-.4 G(lid option is encountered.).25 +E F2(let)108 136.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0 +(...])2.5 E(Each)144 148.8 Q F1(ar)3.027 E(g)-.37 E F0 .197 +(is an arithmetic e)2.917 F .197(xpression to be e)-.15 F -.25(va)-.25 G +.196(luated \(see).25 F/F3 9/Times-Bold@0 SF .196(ARITHMETIC EV)2.696 F +(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)2.446 E -.15(ve)-.15 G +2.696(\). If).15 F(the last)144 160.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25 +(eva)2.72 G(luates to 0,).25 E F2(let)2.5 E F0 +(returns 1; 0 is returned otherwise.)2.5 E F2(local)108 177.6 Q F0([)2.5 +E F1(option)A F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C +(..])-2.5 E -.15(Fo)144 189.6 S 2.56(re).15 G .06(ach ar)-2.56 F .06 +(gument, a local v)-.18 F .06(ariable named)-.25 F F1(name)2.92 E F0 .06 +(is created, and assigned)2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he) +-5.06 E F1(option)2.56 E F0 .06(can be)2.56 F(an)144 201.6 Q 3.153(yo) +-.15 G 3.153(ft)-3.153 G .653(he options accepted by)-3.153 F F2(declar) +3.153 E(e)-.18 E F0 5.652(.W)C(hen)-5.652 E F2(local)3.152 E F0 .652 +(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144 +213.6 Q F1(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861 (isible scope restricted to that function and its children.).15 F -.4 -(Wi)6.011 G 1.011(th no oper).4 F(-)-.2 E(ands,)144 96 Q/F2 10 -/Times-Bold@0 SF(local)3.242 E F0 .741(writes a list of local v)3.241 F -.741(ariables to the standard output.)-.25 F .741(It is an error to use) -5.741 F F2(local)3.241 E F0(when)3.241 E 1.34(not within a function.)144 -108 R 1.34(The return status is 0 unless)6.34 F F2(local)3.84 E F0 1.34 -(is used outside a function, an in)3.84 F -.25(va)-.4 G(lid).25 E F1 -(name)144.36 120 Q F0(is supplied, or)2.68 E F1(name)2.5 E F0 -(is a readonly v)2.5 E(ariable.)-.25 E F2(logout)108 136.8 Q F0 -(Exit a login shell.)9.33 E F2(map\214le)108 153.6 Q F0([)2.5 E F2 -A F1(count)2.5 E F0 2.5(][)C F2-2.5 E F1(origin)2.5 E F0 2.5(][)C -F2-2.5 E F1(count)2.5 E F0 2.5(][)C F2-2.5 E F0 2.5(][)C F2 --2.5 E F1(fd)2.5 E F0 2.5(][)C F2-2.5 E F1(callbac)2.5 E(k) --.2 E F0 2.5(][)C F2-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1(arr) --2.5 E(ay)-.15 E F0(])A F2 -.18(re)108 165.6 S(adarray).18 E F0([)2.5 E -F2A F1(count)2.5 E F0 2.5(][)C F2-2.5 E F1(origin)2.5 E F0 -2.5(][)C F2-2.5 E F1(count)2.5 E F0 2.5(][)C F2-2.5 E F0 2.5 -(][)C F2-2.5 E F1(fd)2.5 E F0 2.5(][)C F2-2.5 E F1(callbac) -2.5 E(k)-.2 E F0 2.5(][)C F2-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1 -(arr)-2.5 E(ay)-.15 E F0(])A 1.006 -(Read lines from the standard input into array v)144 177.6 R(ariable) --.25 E F1(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G -1.006(rom \214le descriptor)-3.506 F F1(fd)3.506 E F0 1.005(if the)3.506 -F F23.505 E F0 1.086(option is supplied.)144 189.6 R 1.086(The v) -6.086 F(ariable)-.25 E F2(MAPFILE)3.586 E F0 1.086(is the def)3.586 F -(ault)-.1 E F1(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087 -(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo) -144 201.6 Q(wing meanings:)-.25 E F2144 213.6 Q F0(Cop)24.74 E 2.5 -(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18 -F F1(count)2.5 E F0(is 0, all lines are copied.)2.5 E F2144 225.6 -Q F0(Be)22.52 E(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0 -(at inde)2.82 E(x)-.15 E F1(origin)2.5 E F0 5(.T).24 G(he def)-5 E -(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2144 237.6 -Q F0(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2 -144 249.6 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H -(railing line from each line read.).15 E F2144 261.6 Q F0 +(Wi)5.861 G .861(th no operands,).4 F F2(local)144 225.6 Q F0 1.165 +(writes a list of local v)3.665 F 1.165 +(ariables to the standard output.)-.25 F 1.165(It is an error to use) +6.165 F F2(local)3.664 E F0 1.164(when not)3.664 F .232 +(within a function.)144 237.6 R .233(The return status is 0 unless)5.232 +F F2(local)2.733 E F0 .233(is used outside a function, an in)2.733 F +-.25(va)-.4 G(lid).25 E F1(name)3.093 E F0(is)2.913 E(supplied, or)144 +249.6 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2 +(logout)108 266.4 Q F0(Exit a login shell.)9.33 E F2(map\214le)108 283.2 +Q F0([)2.5 E F2A F1(count)2.5 E F0 2.5(][)C F2-2.5 E F1 +(origin)2.5 E F0 2.5(][)C F2-2.5 E F1(count)2.5 E F0 2.5(][)C F2 +-2.5 E F0 2.5(][)C F2-2.5 E F1(fd)2.5 E F0 2.5(][)C F2 +-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2-2.5 E F1(quantum) +2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A F2 -.18(re)108 295.2 S +(adarray).18 E F0([)2.5 E F2A F1(count)2.5 E F0 2.5(][)C F2 +-2.5 E F1(origin)2.5 E F0 2.5(][)C F2-2.5 E F1(count)2.5 E F0 2.5 +(][)C F2-2.5 E F0 2.5(][)C F2-2.5 E F1(fd)2.5 E F0 2.5(][)C +F2-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2-2.5 E F1 +(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A .351 +(Read lines from the standard input into the inde)144 307.2 R -.15(xe) +-.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F1(arr)2.85 E +(ay)-.15 E F0 2.85(,o).32 G 2.85(rf)-2.85 G .35(rom \214le descriptor) +-2.85 F F1(fd)2.85 E F0 1.248(if the)144 319.2 R F23.748 E F0 +1.248(option is supplied.)3.748 F 1.249(The v)6.249 F(ariable)-.25 E F3 +(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 E F1(arr)3.749 E +(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)-6.249 F(ha)144 +331.2 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2 +144 343.2 Q F0(Cop)24.74 E 2.5(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F1 +(count)2.7 E F0 2.5(lines. If)3.18 F F1(count)2.5 E F0 +(is 0, all lines are copied.)2.5 E F2144 355.2 Q F0(Be)22.52 E +(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0(at inde)2.82 E(x) +-.15 E F1(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5(xi) +-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2144 367.2 Q F0 +(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2 +144 379.2 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E +(wline from each line read.)-.25 E F2144 391.2 Q F0 (Read lines from \214le descriptor)24.74 E F1(fd)2.5 E F0 -(instead of the standard input.)2.5 E F2144 273.6 Q F0(Ev)23.08 E +(instead of the standard input.)2.5 E F2144 403.2 Q F0(Ev)23.08 E (aluate)-.25 E F1(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F1(quantum) 2.5 E F0(lines are read.)2.5 E(The)5 E F22.5 E F0 -(option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2144 285.6 +(option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2144 415.2 Q F0(Specify the number of lines read between each call to)25.86 E F1 -(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 302.4 Q F22.968 E F0 .467 +(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 432 Q F22.968 E F0 .467 (is speci\214ed without)2.967 F F22.967 E F0 2.967(,t)C .467 (he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F1 (callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467 -(luated, it is sup-).25 F 1.22(plied the inde)144 314.4 R 3.72(xo)-.15 G +(luated, it is sup-).25 F 1.22(plied the inde)144 444 R 3.72(xo)-.15 G 3.72(ft)-3.72 G 1.22(he ne)-3.72 F 1.22 (xt array element to be assigned as an additional ar)-.15 F(gument.)-.18 -E F1(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 326.4 S +E F1(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 456 S (luated after the line is read b).25 E (ut before the array element is assigned.)-.2 E -(If not supplied with an e)144 343.2 Q(xplicit origin,)-.15 E F2 +(If not supplied with an e)144 472.8 Q(xplicit origin,)-.15 E F2 (map\214le)2.5 E F0(will clear)2.5 E F1(arr)2.5 E(ay)-.15 E F0 -(before assigning to it.)2.5 E F2(map\214le)144 360 Q F0 .996 -(returns successfully unless an in)3.496 F -.25(va)-.4 G .996 -(lid option or option ar).25 F .995(gument is supplied, or)-.18 F F1 -(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 372 Q -.25(va)-.4 G -(lid or unassignable.).25 E F2(popd)108 388.8 Q F0<5bad>2.5 E F2(n)A F0 -2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C-2.5 E F1(n)A F0(])A(Remo)144 -400.8 Q -.15(ve)-.15 G 2.799(se).15 G .299 -(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar) -.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3 -(he top directory from the)-2.799 F 1.479(stack, and performs a)144 -412.8 R F2(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479 +(before assigning to it.)2.5 E F2(map\214le)144 489.6 Q F0 1.906 +(returns successfully unless an in)4.406 F -.25(va)-.4 G 1.905 +(lid option or option ar).25 F 1.905(gument is supplied,)-.18 F F1(arr) +4.405 E(ay)-.15 E F0(is)4.405 E(in)144 501.6 Q -.25(va)-.4 G +(lid or unassignable, or if).25 E F1(arr)2.5 E(ay)-.15 E F0 +(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E +F2(popd)108 518.4 Q F0<5bad>2.5 E F2(n)A F0 2.5(][)C(+)-2.5 E F1(n)A F0 +2.5(][)C-2.5 E F1(n)A F0(])A(Remo)144 530.4 Q -.15(ve)-.15 G 2.799 +(se).15 G .299(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G +.299(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 +G .3(he top directory from the)-2.799 F 1.479(stack, and performs a)144 +542.4 R F2(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479 (op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478 (uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15 -F(wing)-.25 E(meanings:)144 424.8 Q F2144 436.8 Q F0 .551 +F(wing)-.25 E(meanings:)144 554.4 Q F2144 566.4 Q F0 .551 (Suppresses the normal change of directory when remo)24.74 F .551 (ving directories from the stack, so)-.15 F -(that only the stack is manipulated.)180 448.8 Q F2(+)144 460.8 Q F1(n)A +(that only the stack is manipulated.)180 578.4 Q F2(+)144 590.4 Q F1(n)A F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F1(n)2.64 E F0 .14(th entry counting from the left of the list sho)B .14(wn by)-.25 F F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180 -472.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0 +602.4 S 2.5(re).15 G(xample:)-2.65 E/F4 10/Courier@0 SF(popd +0)2.5 E F0 (remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,) --.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F2144 484.8 Q F1(n)A F0 +-.65 E F4(popd +1)2.5 E F0(the second.)2.5 E F2144 614.4 Q F1(n)A F0 (Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0 1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25 F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180 -496.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15 -(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5 -E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 513.6 R F2(popd) +626.4 R(or e)-.15 E(xample:)-.15 E F4(popd -0)2.5 E F0(remo)2.5 E -.15 +(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F4(popd -1)2.5 +E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 643.2 R F2(popd) 3.144 E F0 .644(command is successful, a)3.144 F F2(dirs)3.143 E F0 .643 (is performed as well, and the return status is 0.)3.143 F F2(popd)5.643 -E F0 .415(returns f)144 525.6 R .415(alse if an in)-.1 F -.25(va)-.4 G +E F0 .415(returns f)144 655.2 R .415(alse if an in)-.1 F -.25(va)-.4 G .415(lid option is encountered, the directory stack is empty).25 F 2.916 (,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F -(tory stack entry is speci\214ed, or the directory change f)144 537.6 Q -(ails.)-.1 E F2(printf)108 554.4 Q F0([)2.5 E F2A F1(var)2.5 E F0 -(])A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A .372 -(Write the formatted)144 566.4 R F1(ar)2.872 E(guments)-.37 E F0 .372 +(tory stack entry is speci\214ed, or the directory change f)144 667.2 Q +(ails.)-.1 E F2(printf)108 684 Q F0([)2.5 E F2A F1(var)2.5 E F0(]) +A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A .372 +(Write the formatted)144 696 R F1(ar)2.872 E(guments)-.37 E F0 .372 (to the standard output under the control of the)2.872 F F1(format)2.872 E F0 5.372(.T)C(he)-5.372 E F1(format)2.872 E F0 1.804(is a character s\ tring which contains three types of objects: plain characters, which ar\ -e simply)144 578.4 R .159 +e simply)144 708 R 1.859 (copied to standard output, character escape sequences, which are con) -144 590.4 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\ -dard output, and format speci\214cations, each of which causes printing\ - of the ne)144 602.4 R .5(xt successi)-.15 F -.15(ve)-.25 G F1(ar)3.15 E -(gu-)-.37 E(ment)144 614.4 Q F0 5.424(.I)C 2.924(na)-5.424 G .424 -(ddition to the standard)-2.924 F F1(printf)2.924 E F0 .424 -(\(1\) formats,)B F2(%b)2.924 E F0(causes)2.923 E F2(printf)2.923 E F0 -.423(to e)2.923 F .423(xpand backslash escape)-.15 F .976 -(sequences in the corresponding)144 626.4 R F1(ar)3.476 E(gument)-.37 E -F0(\(e)3.476 E .976(xcept that)-.15 F F2(\\c)3.476 E F0 .976 -(terminates output, backslashes in)3.476 F F2<5c08>3.477 E F0(,)A F2 -(\\")3.477 E F0(,)A(and)144 638.4 Q F2(\\?)3.422 E F0 .922(are not remo) -3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922 -(ginning with)-.15 F F2(\\0)3.422 E F0 .921 -(may contain up to four digits\), and)3.422 F F2(%q)144 650.4 Q F0 -(causes)3.63 E F2(printf)3.63 E F0 1.13(to output the corresponding)3.63 -F F1(ar)3.631 E(gument)-.37 E F0 1.131 -(in a format that can be reused as shell)3.631 F(input.)144 662.4 Q(The) -144 686.4 Q F22.904 E F0 .404 -(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E -F1(var)2.904 E F0 .404(rather than being printed to the)2.904 F -(standard output.)144 698.4 Q(The)144 722.4 Q F1(format)3.423 E F0 .923 -(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E -(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format) -3.423 E F0 .924(requires more)3.424 F(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(57)190.95 E 0 Cg EP -%%Page: 58 58 +144 720 R -.15(ve)-.4 G 1.858(rted and copied to the).15 F(GNU Bash-4.1) +72 768 Q(2009 December 29)135.965 E(58)185.955 E 0 Cg EP +%%Page: 59 59 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Italic@0 SF(ar)144 84 Q(guments)-.37 E F0 .033 -(than are supplied, the e)2.534 F .033 +-.35 E 1.171(standard output, and format speci\214cations, each of whic\ +h causes printing of the ne)144 84 R 1.172(xt successi)-.15 F -.15(ve) +-.25 G/F1 10/Times-Italic@0 SF(ar)144 96 Q(gument)-.37 E F0 6.274(.I)C +3.774(na)-6.274 G 1.274(ddition to the standard)-3.774 F F1(printf)3.774 +E F0 1.274(\(1\) formats,)B/F2 10/Times-Bold@0 SF(%b)3.774 E F0(causes) +3.774 E F2(printf)3.774 E F0 1.273(to e)3.774 F 1.273(xpand backslash) +-.15 F .619(escape sequences in the corresponding)144 108 R F1(ar)3.119 +E(gument)-.37 E F0(\(e)3.119 E .619(xcept that)-.15 F F2(\\c)3.119 E F0 +.62(terminates output, backslashes in)3.119 F F2<5c08>144 120 Q F0(,)A +F2(\\")2.985 E F0 2.985(,a)C(nd)-2.985 E F2(\\?)2.985 E F0 .485 +(are not remo)2.985 F -.15(ve)-.15 G .485(d, and octal escapes be).15 F +.484(ginning with)-.15 F F2(\\0)2.984 E F0 .484 +(may contain up to four digits\),)2.984 F(and)144 132 Q F2(%q)2.567 E F0 +(causes)2.567 E F2(printf)2.567 E F0 .067(to output the corresponding) +2.567 F F1(ar)2.568 E(gument)-.37 E F0 .068 +(in a format that can be reused as shell)2.568 F(input.)144 144 Q(The) +144 168 Q F22.904 E F0 .404 +(option causes the output to be assigned to the v)2.904 F(ariable)-.25 E +F1(var)2.904 E F0 .404(rather than being printed to the)2.904 F +(standard output.)144 180 Q(The)144 204 Q F1(format)3.423 E F0 .923 +(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E +(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format) +3.423 E F0 .924(requires more)3.424 F F1(ar)144 216 Q(guments)-.37 E F0 +.033(than are supplied, the e)2.534 F .033 (xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si) .15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,) --.25 F(as appropriate, had been supplied.)144 96 Q(The return v)5 E -(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E/F2 10 -/Times-Bold@0 SF(pushd)108 112.8 Q F0([)2.5 E F2A F0 2.5(][)C(+) --2.5 E F1(n)A F0 2.5(][)C-2.5 E F1(n)A F0(])A F2(pushd)108 124.8 Q -F0([)2.5 E F2A F0 2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a direc\ -tory to the top of the directory stack, or rotates the stack, making th\ -e ne)144 136.8 R 3.14(wt)-.25 G .64(op of the)-3.14 F 1.316 -(stack the current w)144 148.8 R 1.316(orking directory)-.1 F 6.316(.W) --.65 G 1.315(ith no ar)-6.716 F 1.315(guments, e)-.18 F 1.315 -(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315(irectories and)-3.815 F -.871(returns 0, unless the directory stack is empty)144 160.8 R 5.871 -(.A)-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 --.15(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 -172.8 Q F2144 184.8 Q F0 .902(Suppresses the normal change of dir\ -ectory when adding directories to the stack, so that)24.74 F -(only the stack is manipulated.)180 196.8 Q F2(+)144 208.8 Q F1(n)A F0 +-.25 F(as appropriate, had been supplied.)144 228 Q(The return v)5 E +(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F2(pushd) +108 244.8 Q F0([)2.5 E F2A F0 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C +-2.5 E F1(n)A F0(])A F2(pushd)108 256.8 Q F0([)2.5 E F2A F0 +2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\ +irectory stack, or rotates the stack, making the ne)144 268.8 R 3.14(wt) +-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 280.8 R 1.316 +(orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315 +(guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315 +(irectories and)-3.815 F .871 +(returns 0, unless the directory stack is empty)144 292.8 R 5.871(.A) +-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15 +(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 304.8 Q +F2144 316.8 Q F0 .902(Suppresses the normal change of directory w\ +hen adding directories to the stack, so that)24.74 F +(only the stack is manipulated.)180 328.8 Q F2(+)144 340.8 Q F1(n)A F0 1.267(Rotates the stack so that the)25.3 F F1(n)3.767 E F0 1.268 (th directory \(counting from the left of the list sho)B 1.268(wn by) --.25 F F2(dirs)180 220.8 Q F0 2.5(,s)C -(tarting with zero\) is at the top.)-2.5 E F2144 232.8 Q F1(n)A F0 +-.25 F F2(dirs)180 352.8 Q F0 2.5(,s)C +(tarting with zero\) is at the top.)-2.5 E F2144 364.8 Q F1(n)A F0 .92(Rotates the stack so that the)25.3 F F1(n)3.42 E F0 .92 (th directory \(counting from the right of the list sho)B .92(wn by)-.25 -F F2(dirs)180 244.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.) --2.5 E F1(dir)144.35 256.8 Q F0(Adds)23.98 E F1(dir)2.85 E F0 +F F2(dirs)180 376.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.) +-2.5 E F1(dir)144.35 388.8 Q F0(Adds)23.98 E F1(dir)2.85 E F0 (to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25 -G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 273.6 +G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 405.6 R F2(pushd)2.988 E F0 .488(command is successful, a)2.988 F F2(dirs) 2.988 E F0 .488(is performed as well.)2.988 F .489 (If the \214rst form is used,)5.488 F F2(pushd)2.989 E F0 1.04 -(returns 0 unless the cd to)144 285.6 R F1(dir)3.89 E F0 -.1(fa)4.27 G +(returns 0 unless the cd to)144 417.6 R F1(dir)3.89 E F0 -.1(fa)4.27 G 3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.539 E F0 1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144 -297.6 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\ +429.6 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\ ment is speci\214ed, or the directory change to the)-.15 F -(speci\214ed ne)144 309.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E -(ails.)-.1 E F2(pwd)108 326.4 Q F0([)2.5 E F2(\255LP)A F0(])A .845 -(Print the absolute pathname of the current w)144 338.4 R .845 +(speci\214ed ne)144 441.6 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E +(ails.)-.1 E F2(pwd)108 458.4 Q F0([)2.5 E F2(\255LP)A F0(])A .845 +(Print the absolute pathname of the current w)144 470.4 R .845 (orking directory)-.1 F 5.844(.T)-.65 G .844 (he pathname printed contains no)-5.844 F .181(symbolic links if the)144 -350.4 R F22.681 E F0 .181(option is supplied or the)2.681 F F2 +482.4 R F22.681 E F0 .181(option is supplied or the)2.681 F F2 .181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2 (set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264 -(enabled. If)144 362.4 R(the)3.264 E F23.264 E F0 .763 +(enabled. If)144 494.4 R(the)3.264 E F23.264 E F0 .763 (option is used, the pathname printed may contain symbolic links.)3.264 F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\ - reading the name of the current directory or an in)144 374.4 R -.25(va) --.4 G(lid).25 E(option is supplied.)144 386.4 Q F2 -.18(re)108 403.2 S -(ad).18 E F0([)2.5 E F2(\255ers)A F0 2.5(][)C F2-2.5 E F1(aname) -2.5 E F0 2.5(][)C F2-2.5 E F1(delim)2.5 E F0 2.5(][)C F2-2.5 -E F1(te)2.5 E(xt)-.2 E F0 2.5(][)C F2-2.5 E F1(nc)2.5 E(har)-.15 E -(s)-.1 E F0 2.5(][)C F2-2.5 E F1(pr)2.5 E(ompt)-.45 E F0 2.5(][)C -F2-2.5 E F1(timeout)2.5 E F0 2.5(][)C F2-2.5 E F1(fd)2.5 E -F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .516(One line is read from the\ - standard input, or from the \214le descriptor)144 415.2 R F1(fd)3.016 E -F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 427.2 Q -F22.538 E F0 .038(option, and the \214rst w)2.538 F .038 -(ord is assigned to the \214rst)-.1 F F1(name)2.539 E F0 2.539(,t).18 G -.039(he second w)-2.539 F .039(ord to the second)-.1 F F1(name)2.539 E -F0(,).18 E .42(and so on, with lefto)144 439.2 R -.15(ve)-.15 G 2.92(rw) -.15 G .42(ords and their interv)-3.02 F .42 + reading the name of the current directory or an in)144 506.4 R -.25(va) +-.4 G(lid).25 E(option is supplied.)144 518.4 Q F2 -.18(re)108 535.2 S +(ad).18 E F0([)3.817 E F2(\255ers)A F0 3.817(][)C F2-3.817 E F1 +(aname)3.817 E F0 3.817(][)C F2-3.817 E F1(delim)3.817 E F0 3.817 +(][)C F2-3.817 E F1(te)3.817 E(xt)-.2 E F0 3.817(][)C F2 +-3.817 E F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2-3.816 E +F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2-3.816 E F1(pr) +3.816 E(ompt)-.45 E F0 3.816(][)C F2-3.816 E F1(timeout)3.816 E F0 +3.816(][)C F2-3.816 E F1(fd)3.816 E F0(])A([)108 547.2 Q F1(name)A +F0(...])2.5 E .516(One line is read from the standard input, or from th\ +e \214le descriptor)144 559.2 R F1(fd)3.016 E F0 .516(supplied as an ar) +3.016 F .516(gument to)-.18 F(the)144 571.2 Q F22.538 E F0 .038 +(option, and the \214rst w)2.538 F .038(ord is assigned to the \214rst) +-.1 F F1(name)2.539 E F0 2.539(,t).18 G .039(he second w)-2.539 F .039 +(ord to the second)-.1 F F1(name)2.539 E F0(,).18 E .42 +(and so on, with lefto)144 583.2 R -.15(ve)-.15 G 2.92(rw).15 G .42 +(ords and their interv)-3.02 F .42 (ening separators assigned to the last)-.15 F F1(name)2.92 E F0 5.42(.I) -.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 451.2 R .54(wer w)-.25 +.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 595.2 R .54(wer w)-.25 F .541(ords read from the input stream than names, the remaining names \ -are assigned empty)-.1 F -.25(va)144 463.2 S 2.511(lues. The).25 F .011 +are assigned empty)-.1 F -.25(va)144 607.2 S 2.511(lues. The).25 F .011 (characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011 (are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011 (backslash character \()2.511 F F2(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89 -(be used to remo)144 475.2 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H +(be used to remo)144 619.2 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H 1.891(pecial meaning for the ne).15 F 1.891 (xt character read and for line continuation.)-.15 F -(Options, if supplied, ha)144 487.2 Q .3 -.15(ve t)-.2 H(he follo).15 E -(wing meanings:)-.25 E F2144 499.2 Q F1(aname)2.5 E F0 1.05(The w) -180 511.2 R 1.049 +(Options, if supplied, ha)144 631.2 Q .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F2144 643.2 Q F1(aname)2.5 E F0 1.05(The w) +180 655.2 R 1.049 (ords are assigned to sequential indices of the array v)-.1 F(ariable) -.25 E F1(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F -F1(aname)180.33 523.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 +F1(aname)180.33 667.2 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0 -(ar)2.5 E(guments are ignored.)-.18 E F2144 535.2 Q F1(delim)2.5 E -F0(The \214rst character of)180 547.2 Q F1(delim)2.5 E F0 +(ar)2.5 E(guments are ignored.)-.18 E F2144 679.2 Q F1(delim)2.5 E +F0(The \214rst character of)180 691.2 Q F1(delim)2.5 E F0 (is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E -F2144 559.2 Q F0 .372 +F2144 703.2 Q F0 .372 (If the standard input is coming from a terminal,)25.86 F F2 -.18(re) 2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E -.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218 -(to obtain the line.)180 571.2 R .218 +(to obtain the line.)180 715.2 R .218 (Readline uses the current \(or def)5.218 F .218 (ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E -(acti)180 583.2 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E -F2144 595.2 Q F1(te)2.5 E(xt)-.2 E F0(If)10.78 E F2 -.18(re)2.715 -G(adline).18 E F0 .216(is being used to read the line,)2.715 F F1(te) -2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E -.216(fer before edit-)-.25 F(ing be)180 607.2 Q(gins.)-.15 E F2144 -619.2 Q F1(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 631.2 S(ad).18 E -F0 1.395(returns after reading)3.895 F F1(nc)3.895 E(har)-.15 E(s)-.1 E -F0 1.395(characters rather than w)3.895 F 1.394 -(aiting for a complete line of)-.1 F(input.)180 643.2 Q F2144 -655.2 Q F1(pr)2.5 E(ompt)-.45 E F0(Display)180 667.2 Q F1(pr)3.66 E -(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161 -(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read) --.25 F(an)180 679.2 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F -(prompt is displayed only if input is coming from a terminal.)2.5 E F2 -144 691.2 Q F0 .544(Backslash does not act as an escape character) -25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of) --5.543 F(the line.)180 703.2 Q(In particular)5 E 2.5(,ab)-.4 G -(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.) --.25 E F2144 715.2 Q F0(Silent mode.)26.41 E -(If input is coming from a terminal, characters are not echoed.)5 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(58)190.95 E 0 Cg EP -%%Page: 59 59 +(acti)180 727.2 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(59)185.955 E 0 Cg EP +%%Page: 60 60 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF144 84 Q/F2 10/Times-Italic@0 SF -(timeout)2.5 E F0(Cause)180 96 Q F1 -.18(re)3.548 G(ad).18 E F0 1.048 -(to time out and return f)3.548 F 1.048 +-.35 E/F1 10/Times-Bold@0 SF144 84 Q/F2 10/Times-Italic@0 SF(te) +2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715 G(adline).18 E F0 .216 +(is being used to read the line,)2.715 F F2(te)2.716 E(xt)-.2 E F0 .216 +(is placed into the editing b)2.716 F(uf)-.2 E .216(fer before edit-) +-.25 F(ing be)180 96 Q(gins.)-.15 E F1144 108 Q F2(nc)2.5 E(har) +-.15 E(s)-.1 E F1 -.18(re)180 120 S(ad).18 E F0 1.395 +(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E F0 1.395 +(characters rather than w)3.895 F 1.394(aiting for a complete line of) +-.1 F(input, b)180 132 Q(ut honor a delimiter if fe)-.2 E(wer than)-.25 +E F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 +(characters are read before the delimiter)2.5 E(.)-.55 E F1144 144 +Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 156 S(ad).18 E F0 1.269 +(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769 E(har)-.15 E +(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27 +(aiting for a complete)-.1 F .275 +(line of input, unless EOF is encountered or)180 168 R F1 -.18(re)2.775 +G(ad).18 E F0 .274(times out.)2.774 F .274(Delimiter characters encoun-) +5.274 F 1.002 +(tered in the input are not treated specially and do not cause)180 180 R +F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)3.503 +E(har)-.15 E(s)-.1 E F0(characters are read.)180 192 Q F1144 204 Q +F2(pr)2.5 E(ompt)-.45 E F0(Display)180 216 Q F2(pr)3.661 E(ompt)-.45 E +F0 1.161(on standard error)3.661 F 3.661(,w)-.4 G 1.161 +(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read) +-.25 F(an)180 228 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F +(prompt is displayed only if input is coming from a terminal.)2.5 E F1 +144 240 Q F0 .543(Backslash does not act as an escape character) +25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of) +-5.543 F(the line.)180 252 Q(In particular)5 E 2.5(,ab)-.4 G +(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.) +-.25 E F1144 264 Q F0(Silent mode.)26.41 E +(If input is coming from a terminal, characters are not echoed.)5 E F1 +144 276 Q F2(timeout)2.5 E F0(Cause)180 288 Q F1 -.18(re)3.549 G +(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048 (ailure if a complete line of input is not read within)-.1 F F2(timeout) -180 108 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997 -(may be a decimal number with a fractional portion follo)3.497 F(wing) --.25 E .576(the decimal point.)180 120 R .576(This option is only ef) +180 300 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997 +(may be a decimal number with a fractional portion follo)3.496 F(wing) +-.25 E .576(the decimal point.)180 312 R .576(This option is only ef) 5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G -(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142 -(pipe, or other special \214le; it has no ef)180 132 R .142 -(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E -F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 144 S(ad).18 E -F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113 -(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114 -(ailure otherwise.)-2.713 F(The e)180 156 Q +(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .141 +(pipe, or other special \214le; it has no ef)180 324 R .142 +(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E +F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 336 S(ad).18 E +F0 .113(returns success if input is a)2.614 F -.25(va)-.2 G .113 +(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .113 +(ailure otherwise.)-2.713 F(The e)180 348 Q (xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15 -E F1144 168 Q F2(fd)2.5 E F0(Read input from \214le descriptor) -14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 184.8 R F2(names)3.052 E F0 -.192(are supplied, the line read is assigned to the v)2.962 F(ariable) --.25 E/F3 9/Times-Bold@0 SF(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF -(.)A F0 .191(The return code is zero,)4.691 F 1.343 -(unless end-of-\214le is encountered,)144 196.8 R F1 -.18(re)3.843 G(ad) +E F1144 360 Q F2(fd)2.5 E F0(Read input from \214le descriptor) +14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 376.8 R F2(names)3.051 E F0 +.191(are supplied, the line read is assigned to the v)2.961 F(ariable) +-.25 E/F3 9/Times-Bold@0 SF(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF +(.)A F0 .192(The return code is zero,)4.692 F 1.344 +(unless end-of-\214le is encountered,)144 388.8 R F1 -.18(re)3.844 G(ad) .18 E F0 1.343 -(times out \(in which case the return code is greater than)3.843 F -(128\), or an in)144 208.8 Q -.25(va)-.4 G +(times out \(in which case the return code is greater than)3.844 F +(128\), or an in)144 400.8 Q -.25(va)-.4 G (lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1 -2.5 E F0(.)A F1 -.18(re)108 225.6 S(adonly).18 E F0([)2.5 E F1 +2.5 E F0(.)A F1 -.18(re)108 417.6 S(adonly).18 E F0([)2.5 E F1 (\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E -F0 2.5(].)C(..])-2.5 E .77(The gi)144 237.6 R -.15(ve)-.25 G(n).15 E F2 +F0 2.5(].)C(..])-2.5 E .77(The gi)144 429.6 R -.15(ve)-.25 G(n).15 E F2 (names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77 (alues of these)-.25 F F2(names)3.63 E F0 .77 -(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 249.6 R -1.096(If the)6.096 F F13.596 E F0 1.097 -(option is supplied, the functions corresponding to the)3.596 F F2 -(names)3.597 E F0 1.097(are so)3.597 F(mark)144 261.6 Q 3.334(ed. The) +(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 441.6 R +1.097(If the)6.097 F F13.597 E F0 1.097 +(option is supplied, the functions corresponding to the)3.597 F F2 +(names)3.596 E F0 1.096(are so)3.596 F(mark)144 453.6 Q 3.334(ed. The) -.1 F F13.334 E F0 .834(option restricts the v)3.334 F .834 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the) -3.334 F F13.334 E F0 .834(option restricts the v)3.334 F(ari-) --.25 E .537(ables to associati)144 273.6 R .837 -.15(ve a)-.25 H 3.037 +-.25 E .538(ables to associati)144 465.6 R .838 -.15(ve a)-.25 H 3.038 (rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538 (guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1 -3.038 E F0 .538(option is supplied, a list)3.038 F .081 -(of all readonly names is printed.)144 285.6 R(The)5.081 E F12.581 -E F0 .08(option causes output to be displayed in a format that may)2.581 -F 1.176(be reused as input.)144 297.6 R 1.176(If a v)6.176 F 1.176 +3.038 E F0 .537(option is supplied, a list)3.038 F .08 +(of all readonly names is printed.)144 477.6 R(The)5.08 E F12.58 E +F0 .081(option causes output to be displayed in a format that may)2.58 F +1.177(be reused as input.)144 489.6 R 1.177(If a v)6.177 F 1.176 (ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0 -3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177 -(ariable is set to)-.25 F F2(wor)144 309.6 Q(d)-.37 E F0 6.206(.T)C -1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205 -(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205 -(is not a)3.975 F -.25(va)144 321.6 S(lid shell v).25 E +3.676(,t)C 1.176(he v)-3.676 F 1.176(alue of the v)-.25 F 1.176 +(ariable is set to)-.25 F F2(wor)144 501.6 Q(d)-.37 E F0 6.205(.T)C +1.205(he return status is 0 unless an in)-6.205 F -.25(va)-.4 G 1.206 +(lid option is encountered, one of the).25 F F2(names)4.066 E F0 1.206 +(is not a)3.976 F -.25(va)144 513.6 S(lid shell v).25 E (ariable name, or)-.25 E F12.5 E F0(is supplied with a)2.5 E F2 -(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 338.4 S -(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586 -(Causes a function to e)144 350.4 R .587(xit with the return v)-.15 F +(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 530.4 S +(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .587 +(Causes a function to e)144 542.4 R .587(xit with the return v)-.15 F .587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587 -E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335 -(that of the last command e)144 362.4 R -.15(xe)-.15 G 1.335 +E F2(n)3.447 E F0 .586(is omitted, the return status is)3.327 F 1.335 +(that of the last command e)144 554.4 R -.15(xe)-.15 G 1.335 (cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G 1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe) -144 374.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\() +144 566.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\() 5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794 -(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795 -(cuting that script).15 F .246(and return either)144 386.4 R F2(n)3.106 -E F0 .246(or the e)2.986 F .246(xit status of the last command e)-.15 F --.15(xe)-.15 G .246(cuted within the script as the e).15 F .245 -(xit sta-)-.15 F .081(tus of the script.)144 398.4 R .082 +(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .794 +(cuting that script).15 F .245(and return either)144 578.4 R F2(n)3.105 +E F0 .246(or the e)2.985 F .246(xit status of the last command e)-.15 F +-.15(xe)-.15 G .246(cuted within the script as the e).15 F .246 +(xit sta-)-.15 F .082(tus of the script.)144 590.4 R .082 (If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082 -(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082 -(he return sta-)-2.582 F 2.306(tus is f)144 410.4 R 4.806(alse. An)-.1 F -4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN) -4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e) +(cution of a script by).15 F F1(.)2.582 E F0 2.581(,t).833 G .081 +(he return sta-)-2.581 F 2.305(tus is f)144 602.4 R 4.805(alse. An)-.1 F +4.805(yc)-.15 G 2.305(ommand associated with the)-4.805 F F1(RETURN) +4.805 E F0 2.306(trap is e)4.806 F -.15(xe)-.15 G 2.306(cuted before e) .15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.) -144 422.4 Q F1(set)108 439.2 Q F0([)2.5 E F1 +144 614.4 Q F1(set)108 631.2 Q F0([)2.5 E F1 (\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1-2.5 E F2(option)2.5 -E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 451.2 Q F0 +E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 643.2 Q F0 ([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option) -2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 463.2 S -.835(thout options, the name and v).4 F .835(alue of each shell v)-.25 F -.836(ariable are displayed in a format that can be)-.25 F .784 -(reused as input for setting or resetting the currently-set v)144 475.2 -R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783 -(riables cannot be).25 F 2.946(reset. In)144 487.2 R F2 .447(posix mode) -2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 +2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 655.2 S +.836(thout options, the name and v).4 F .835(alue of each shell v)-.25 F +.835(ariable are displayed in a format that can be)-.25 F .784 +(reused as input for setting or resetting the currently-set v)144 667.2 +R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784 +(riables cannot be).25 F 2.947(reset. In)144 679.2 R F2 .447(posix mode) +2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 (ariables are listed.)-.25 F .447 -(The output is sorted according to the current)5.447 F 3.531 -(locale. When)144 499.2 R 1.031(options are speci\214ed, the)3.531 F -3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An) --.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623 -(after option processing are treated as v)144 511.2 R 1.624 +(The output is sorted according to the current)5.447 F 3.53 +(locale. When)144 691.2 R 1.031(options are speci\214ed, the)3.53 F +3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An) +-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F +1.624(after option processing are treated as v)144 703.2 R 1.623 (alues for the positional parameters and are assigned, in)-.25 F(order) -144 523.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A +144 715.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3 --.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1144 535.2 Q -F0 .54(Automatically mark v)29.3 F .539 -(ariables and functions which are modi\214ed or created for e)-.25 F -.539(xport to)-.15 F(the en)184 547.2 Q -(vironment of subsequent commands.)-.4 E F1144 559.2 Q F0 .131 -(Report the status of terminated background jobs immediately)28.74 F -2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E -(primary prompt.)184 571.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o) --.25 H(nly when job control is enabled.).15 E F1144 583.2 Q F0 -.511(Exit immediately if a)29.86 F F2(pipeline)3.011 E F0 .511 -(\(which may consist of a single)3.011 F F2 .51(simple command)3.01 F F0 -3.01(\), a)B F2(sub-)3.01 E(shell)184 595.2 Q F0 .872 -(command enclosed in parentheses, or one of the commands e)3.372 F -.15 -(xe)-.15 G .872(cuted as part of a).15 F .399 -(command list enclosed by braces \(see)184 607.2 R F3 .399 -(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G -.399(xits with a non-zero)-3.049 F 3.968(status. The)184 619.2 R 1.468 -(shell does not e)3.968 F 1.468(xit if the command that f)-.15 F 1.468 -(ails is part of the command list)-.1 F .57(immediately follo)184 631.2 -R .57(wing a)-.25 F F1(while)3.07 E F0(or)3.07 E F1(until)3.07 E F0 -.1 -(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .569 -(wing the)-.25 F F1(if)3.069 E F0(or)3.069 E F1(elif)3.069 E F0(reserv) -184 643.2 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G -.544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044 -E F0(or)3.044 E/F5 10/Symbol SF3.044 E F0 .544(list e)3.044 F .544 -(xcept the command)-.15 F(follo)184 655.2 Q 1.231(wing the \214nal)-.25 -F F1(&&)3.731 E F0(or)3.731 E F53.731 E F0 3.731(,a)C 1.531 -.15 -(ny c)-3.731 H 1.231(ommand in a pipeline b).15 F 1.23 -(ut the last, or if the com-)-.2 F(mand')184 667.2 Q 3.19(sr)-.55 G .69 -(eturn v)-3.19 F .69(alue is being in)-.25 F -.15(ve)-.4 G .69 -(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR) -3.191 E F0 3.191(,i)C 3.191(fs)-3.191 G .691(et, is e)-3.191 F -.15(xe) --.15 G .691(cuted before).15 F .687(the shell e)184 679.2 R 3.186 -(xits. This)-.15 F .686(option applies to the shell en)3.186 F .686 -(vironment and each subshell en)-.4 F(viron-)-.4 E .658 -(ment separately \(see)184 691.2 R F1 .659(COMMAND EXECUTION ENVIR)3.159 -F(ONMENT)-.3 E F0(abo)3.159 E -.15(ve)-.15 G .659(\), and may).15 F -(cause subshells to e)184 703.2 Q(xit before e)-.15 E -.15(xe)-.15 G -(cuting all the commands in the subshell.).15 E F1144 715.2 Q F0 -(Disable pathname e)30.97 E(xpansion.)-.15 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(59)190.95 E 0 Cg EP -%%Page: 60 60 +-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E(GNU Bash-4.1)72 768 +Q(2009 December 29)135.965 E(60)185.955 E 0 Cg EP +%%Page: 61 61 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF144 84 Q F0 2.239 -(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.238 -(re look)-4.738 F 2.238(ed up for e)-.1 F -.15(xe)-.15 G 4.738 -(cution. This).15 F(is)4.738 E(enabled by def)184 96 Q(ault.)-.1 E F1 -144 108 Q F0 .513(All ar)28.74 F .514 +-.35 E/F1 10/Times-Bold@0 SF144 84 Q F0 .539(Automatically mark v) +29.3 F .539 +(ariables and functions which are modi\214ed or created for e)-.25 F .54 +(xport to)-.15 F(the en)184 96 Q(vironment of subsequent commands.)-.4 E +F1144 108 Q F0 .132 +(Report the status of terminated background jobs immediately)28.74 F +2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E +(primary prompt.)184 120 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)-.25 +H(nly when job control is enabled.).15 E F1144 132 Q F0 .51 +(Exit immediately if a)29.86 F/F2 10/Times-Italic@0 SF(pipeline)3.01 E +F0 .511(\(which may consist of a single)3.011 F F2 .511(simple command) +3.011 F F0 3.011(\), a)B F2(sub-)3.011 E(shell)184 144 Q F0 .872 +(command enclosed in parentheses, or one of the commands e)3.373 F -.15 +(xe)-.15 G .872(cuted as part of a).15 F .399 +(command list enclosed by braces \(see)184 156 R/F3 9/Times-Bold@0 SF +.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G +.399(xits with a non-zero)-3.049 F 3.969(status. The)184 168 R 1.468 +(shell does not e)3.969 F 1.468(xit if the command that f)-.15 F 1.468 +(ails is part of the command list)-.1 F .569(immediately follo)184 180 R +.569(wing a)-.25 F F1(while)3.069 E F0(or)3.069 E F1(until)3.069 E F0 +-.1(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .57 +(wing the)-.25 F F1(if)3.07 E F0(or)3.07 E F1(elif)3.07 E F0(reserv)184 +192 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G .544 +(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044 E F0 +(or)3.044 E/F4 10/Symbol SF3.044 E F0 .544(list e)3.044 F .544 +(xcept the command)-.15 F(follo)184 204 Q 1.23(wing the \214nal)-.25 F +F1(&&)3.73 E F0(or)3.73 E F43.73 E F0 3.73(,a)C 1.53 -.15(ny c) +-3.73 H 1.231(ommand in a pipeline b).15 F 1.231 +(ut the last, or if the com-)-.2 F(mand')184 216 Q 3.191(sr)-.55 G .691 +(eturn v)-3.191 F .691(alue is being in)-.25 F -.15(ve)-.4 G .691 +(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR) +3.19 E F0 3.19(,i)C 3.19(fs)-3.19 G .69(et, is e)-3.19 F -.15(xe)-.15 G +.69(cuted before).15 F .686(the shell e)184 228 R 3.186(xits. This)-.15 +F .686(option applies to the shell en)3.186 F .686 +(vironment and each subshell en)-.4 F(viron-)-.4 E .068 +(ment separately \(see)184 240 R F3 .068(COMMAND EXECUTION ENVIR)2.568 F +(ONMENT)-.27 E F0(abo)2.318 E -.15(ve)-.15 G .068(\), and may cause).15 +F(subshells to e)184 252 Q(xit before e)-.15 E -.15(xe)-.15 G +(cuting all the commands in the subshell.).15 E F1144 264 Q F0 +(Disable pathname e)30.97 E(xpansion.)-.15 E F1144 276 Q F0 2.238 +(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.239 +(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)-.15 G 4.739 +(cution. This).15 F(is)4.739 E(enabled by def)184 288 Q(ault.)-.1 E F1 +144 300 Q F0 .514(All ar)28.74 F .514 (guments in the form of assignment statements are placed in the en)-.18 -F .514(vironment for a)-.4 F -(command, not just those that precede the command name.)184 120 Q F1 -144 132 Q F0 .149(Monitor mode.)25.97 F .149 -(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F -.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .636 -(on systems that support it \(see)184 144 R/F2 9/Times-Bold@0 SF .636 -(JOB CONTR)3.136 F(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136 -(\). Background).15 F .637(processes run in a)3.136 F .642 -(separate process group and a line containing their e)184 156 R .641 -(xit status is printed upon their com-)-.15 F(pletion.)184 168 Q F1 -144 180 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F --.15(xe)-.15 G .652(cute them.).15 F .653 -(This may be used to check a shell script for)5.652 F(syntax errors.)184 -192 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E -F1144 204 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The) -184 216 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E -(wing:)-.25 E F1(allexport)184 228 Q F0(Same as)224 240 Q F12.5 E -F0(.)A F1(braceexpand)184 252 Q F0(Same as)224 264 Q F12.5 E F0(.) -A F1(emacs)184 276 Q F0 .089 -(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This) --.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95 -(when the shell is interacti)224 288 R -.15(ve)-.25 G 3.45(,u).15 G .95 -(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E -F0 2.5(option. This)224 300 R(also af)2.5 E(fects the editing interf) --.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1 -(errtrace)184 312 Q F0(Same as)5.03 E F12.5 E F0(.)A F1(functrace) -184 324 Q F0(Same as)224 336 Q F12.5 E F0(.)A F1(err)184 348 Q -(exit)-.18 E F0(Same as)11.31 E F12.5 E F0(.)A F1(hashall)184 360 -Q F0(Same as)9.43 E F12.5 E F0(.)A F1(histexpand)184 372 Q F0 -(Same as)224 384 Q F12.5 E F0(.)A F1(history)184 396 Q F0 .587 -(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587 -(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F2(HIST)3.087 E -(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF(.)A F0 .587(This option is) -5.087 F(on by def)224 408 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H -(hells.).15 E F1(ignor)184 420 Q(eeof)-.18 E F0 1.656(The ef)224 432 R -1.656(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF -(IGNOREEOF=10)4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted) -.15 E(\(see)224 444 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15 -(ve)-.15 G(\).).15 E F1 -.1(ke)184 456 S(yw).1 E(ord)-.1 E F0(Same as) -224 468 Q F12.5 E F0(.)A F1(monitor)184 480 Q F0(Same as)5.56 E F1 -2.5 E F0(.)A F1(noclob)184 492 Q(ber)-.1 E F0(Same as)224 504 Q F1 -2.5 E F0(.)A F1(noexec)184 516 Q F0(Same as)11.12 E F12.5 E -F0(.)A F1(noglob)184 528 Q F0(Same as)11.1 E F12.5 E F0(.)A F1 -(nolog)184 540 Q F0(Currently ignored.)16.66 E F1(notify)184 552 Q F0 -(Same as)15 E F12.5 E F0(.)A F1(nounset)184 564 Q F0(Same as)6.66 -E F12.5 E F0(.)A F1(onecmd)184 576 Q F0(Same as)6.67 E F12.5 -E F0(.)A F1(ph)184 588 Q(ysical)-.15 E F0(Same as)5.14 E F12.5 E -F0(.)A F1(pipefail)184 600 Q F0 1.03(If set, the return v)7.77 F 1.029 -(alue of a pipeline is the v)-.25 F 1.029 -(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 612 R -1.136 -(xit with a non-zero status, or zero if all commands in the pipeline) --.15 F -.15(ex)224 624 S(it successfully).15 E 5(.T)-.65 G -(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 636 Q F0 -2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0 -2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091 -(fers from the)-.25 F(POSIX standard to match the standard \()224 648 Q -F3(posix mode)A F0(\).)A F1(pri)184 660 Q(vileged)-.1 E F0(Same as)224 -672 Q F12.5 E F0(.)A F1 -.1(ve)184 684 S(rbose).1 E F0(Same as) -7.33 E F12.5 E F0(.)A F1(vi)184 696 Q F0 1.465 -(Use a vi-style command line editing interf)32.22 F 3.966(ace. This)-.1 -F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F(interf)224 708 Q -(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A(GNU Bash-4.0) -72 768 Q(2009 February 7)140.96 E(60)190.95 E 0 Cg EP -%%Page: 61 61 +F .513(vironment for a)-.4 F +(command, not just those that precede the command name.)184 312 Q F1 +144 324 Q F0 .148(Monitor mode.)25.97 F .148 +(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F +.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637 +(on systems that support it \(see)184 336 R F3 .636(JOB CONTR)3.136 F +(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636 +(processes run in a)3.136 F .641 +(separate process group and a line containing their e)184 348 R .642 +(xit status is printed upon their com-)-.15 F(pletion.)184 360 Q F1 +144 372 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F +-.15(xe)-.15 G .653(cute them.).15 F .652 +(This may be used to check a shell script for)5.653 F(syntax errors.)184 +384 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E +F1144 396 Q F2(option\255name)2.5 E F0(The)184 408 Q F2 +(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1 +(allexport)184 420 Q F0(Same as)224 432 Q F12.5 E F0(.)A F1 +(braceexpand)184 444 Q F0(Same as)224 456 Q F12.5 E F0(.)A F1 +(emacs)184 468 Q F0 .089(Use an emacs-style command line editing interf) +13.9 F 2.589(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E +.95(when the shell is interacti)224 480 R -.15(ve)-.25 G 3.45(,u).15 G +.95(nless the shell is started with the)-3.45 F F1(\255\255noediting) +3.45 E F0 2.5(option. This)224 492 R(also af)2.5 E +(fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G +(ad \255e).18 E F0(.)A F1(err)184 504 Q(exit)-.18 E F0(Same as)11.31 E +F12.5 E F0(.)A F1(errtrace)184 516 Q F0(Same as)5.03 E F12.5 +E F0(.)A F1(functrace)184 528 Q F0(Same as)224 540 Q F12.5 E F0(.) +A F1(hashall)184 552 Q F0(Same as)9.43 E F12.5 E F0(.)A F1 +(histexpand)184 564 Q F0(Same as)224 576 Q F12.5 E F0(.)A F1 +(history)184 588 Q F0 .586(Enable command history)10 F 3.087(,a)-.65 G +3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder) +.15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9/Times-Roman@0 SF(.)A F0 +.587(This option is)5.087 F(on by def)224 600 Q(ault in interacti)-.1 E +.3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 612 Q(eeof)-.18 E F0 1.657 +(The ef)224 624 R 1.657(fect is as if the shell command)-.25 F/F6 10 +/Courier@0 SF(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe) +-.15 G(cuted).15 E(\(see)224 636 Q F1(Shell V)2.5 E(ariables)-.92 E F0 +(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1 -.1(ke)184 648 S(yw).1 E(ord)-.1 +E F0(Same as)224 660 Q F12.5 E F0(.)A F1(monitor)184 672 Q F0 +(Same as)5.56 E F12.5 E F0(.)A F1(noclob)184 684 Q(ber)-.1 E F0 +(Same as)224 696 Q F12.5 E F0(.)A F1(noexec)184 708 Q F0(Same as) +11.12 E F12.5 E F0(.)A(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(61)185.955 E 0 Cg EP +%%Page: 62 62 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(xtrace)184 84 Q F0(Same as)13.35 E F1 -2.5 E F0(.)A(If)184 102 Q F13.053 E F0 .553(is supplied with no) -3.053 F/F2 10/Times-Italic@0 SF(option\255name)3.053 E F0 3.053(,t)C -.553(he v)-3.053 F .552(alues of the current options are printed.)-.25 F -(If)5.552 E F1(+o)184 114 Q F0 1.071(is supplied with no)3.571 F F2 -(option\255name)3.571 E F0 3.571(,as)C 1.071(eries of)-3.571 F F1(set) -3.572 E F0 1.072(commands to recreate the current)3.572 F -(option settings is displayed on the standard output.)184 126 Q F1 -144 138 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F2(privile)4.822 E -.1 -(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F +-.35 E/F1 10/Times-Bold@0 SF(noglob)184 84 Q F0(Same as)11.1 E F1 +2.5 E F0(.)A F1(nolog)184 96 Q F0(Currently ignored.)16.66 E F1(notify) +184 108 Q F0(Same as)15 E F12.5 E F0(.)A F1(nounset)184 120 Q F0 +(Same as)6.66 E F12.5 E F0(.)A F1(onecmd)184 132 Q F0(Same as)6.67 +E F12.5 E F0(.)A F1(ph)184 144 Q(ysical)-.15 E F0(Same as)5.14 E +F12.5 E F0(.)A F1(pipefail)184 156 Q F0 1.029 +(If set, the return v)7.77 F 1.029(alue of a pipeline is the v)-.25 F +1.03(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 168 +R 1.136 +(xit with a non-zero status, or zero if all commands in the pipeline) +-.15 F -.15(ex)224 180 S(it successfully).15 E 5(.T)-.65 G +(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 192 Q F0 +2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0 +2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091 +(fers from the)-.25 F(POSIX standard to match the standard \()224 204 Q +/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 216 Q(vileged) +-.1 E F0(Same as)224 228 Q F12.5 E F0(.)A F1 -.1(ve)184 240 S +(rbose).1 E F0(Same as)7.33 E F12.5 E F0(.)A F1(vi)184 252 Q F0 +1.466(Use a vi-style command line editing interf)32.22 F 3.965 +(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F +(interf)224 264 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0 +(.)A F1(xtrace)184 276 Q F0(Same as)13.35 E F12.5 E F0(.)A(If)184 +294 Q F13.052 E F0 .552(is supplied with no)3.052 F F2 +(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553 +(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184 +306 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0 +3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071 +(commands to recreate the current)3.571 F +(option settings is displayed on the standard output.)184 318 Q F1 +144 330 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1 +(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F /F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV) --.27 E F0 1.071(\214les are not pro-)3.322 F 1.5 -(cessed, shell functions are not inherited from the en)184 150 R 1.501 -(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A -F1(CDP)184 162 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1 -(GLOBIGNORE)5.603 E F0 -.25(va)5.603 G 3.103(riables, if the).25 F 5.603 -(ya)-.15 G 3.103(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F -2.617(ignored. If)184 174 R .117(the shell is started with the ef)2.617 -F(fecti)-.25 E .418 -.15(ve u)-.25 H .118 -(ser \(group\) id not equal to the real user).15 F 1.018 -(\(group\) id, and the)184 186 R F13.518 E F0 1.018 -(option is not supplied, these actions are tak)3.518 F 1.018 -(en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .286 -(user id is set to the real user id.)184 198 R .286(If the)5.286 F F1 -2.786 E F0 .287(option is supplied at startup, the ef)2.786 F -(fecti)-.25 E .587 -.15(ve u)-.25 H(ser).15 E .103(id is not reset.)184 -210 R -.45(Tu)5.103 G .102(rning this option of).45 F 2.602(fc)-.25 G -.102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .102 -(ser and group ids to be set to).15 F(the real user and group ids.)184 -222 Q F1144 234 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 -G(cuting one command.).15 E F1144 246 Q F0 -.35(Tr)28.74 G .444 -(eat unset v).35 F .444 -(ariables as an error when performing parameter e)-.25 F 2.944 -(xpansion. If)-.15 F -.15(ex)2.945 G .445(pansion is).15 F .52 -(attempted on an unset v)184 258 R .519 -(ariable, the shell prints an error message, and, if not interacti)-.25 -F -.15(ve)-.25 G(,).15 E -.15(ex)184 270 S(its with a non-zero status.) -.15 E F1144 282 Q F0(Print shell input lines as the)29.3 E 2.5(ya) --.15 G(re read.)-2.5 E F1144 294 Q F0 .315(After e)29.3 F .315 +-.27 E F0 1.072(\214les are not pro-)3.322 F 1.501 +(cessed, shell functions are not inherited from the en)184 342 R 1.5 +(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3 +-.27(BA)184 354 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H) +.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G +.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F +(vironment,)-.4 E .38(are ignored.)184 366 R .38 +(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u) +-.25 H .379(ser \(group\) id not equal to the real).15 F .461 +(user \(group\) id, and the)184 378 R F12.961 E F0 .461 +(option is not supplied, these actions are tak)2.961 F .462 +(en and the ef)-.1 F(fec-)-.25 E(ti)184 390 Q .695 -.15(ve u)-.25 H .395 +(ser id is set to the real user id.).15 F .395(If the)5.395 F F1 +2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25 +E -.15(ve)-.25 G .386(user id is not reset.)184 402 R -.45(Tu)5.386 G +.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886 +F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F +(set to the real user and group ids.)184 414 Q F1144 426 Q F0 +(Exit after reading and e)30.97 E -.15(xe)-.15 G(cuting one command.).15 +E F1144 438 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\ +bles and parameters other than the special parameters "@" and "*" as an) +-.25 F .182(error when performing parameter e)184 450 R 2.682 +(xpansion. If)-.15 F -.15(ex)2.682 G .183 +(pansion is attempted on an unset v).15 F(ari-)-.25 E .746 +(able or parameter)184 462 R 3.246(,t)-.4 G .746 +(he shell prints an error message, and, if not interacti)-3.246 F -.15 +(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184 +474 Q F1144 486 Q F0(Print shell input lines as the)29.3 E 2.5(ya) +-.15 G(re read.)-2.5 E F1144 498 Q F0 .315(After e)29.3 F .315 (xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo) 2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E -F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 306 R F1 +F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 510 R F1 -.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236 (xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo) -3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 318 Q +3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 522 Q (xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1 -144 330 Q F0 2.578(The shell performs brace e)27.63 F 2.578 +144 534 Q F0 2.578(The shell performs brace e)27.63 F 2.578 (xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E --.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 342 Q -(ault.)-.1 E F1144 354 Q F0 .214(If set,)27.08 F F1(bash)2.714 E +-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 546 Q +(ault.)-.1 E F1144 558 Q F0 .214(If set,)27.08 F F1(bash)2.714 E F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214 (xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0 2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F -3.053(tors. This)184 366 R .553(may be o)3.053 F -.15(ve)-.15 G .553 +3.053(tors. This)184 570 R .553(may be o)3.053 F -.15(ve)-.15 G .553 (rridden when creating output \214les by using the redirection opera-) -.15 F(tor)184 378 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 -144 390 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on) +.15 F(tor)184 582 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 +144 594 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on) -2.604 F F1(ERR)2.604 E F0 .103 (is inherited by shell functions, command substitutions, and com-)2.604 -F .838(mands e)184 402 R -.15(xe)-.15 G .838(cuted in a subshell en).15 +F .838(mands e)184 606 R -.15(xe)-.15 G .838(cuted in a subshell en).15 F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839 -(trap is normally not inherited in)3.339 F(such cases.)184 414 Q F1 -144 426 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532 +(trap is normally not inherited in)3.339 F(such cases.)184 618 Q F1 +144 630 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532 (style history substitution.)5.532 F .531(This option is on by def)5.532 -F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 438 Q -.15 -(ve)-.25 G(.).15 E F1144 450 Q F0 1.164 +F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 642 Q -.15 +(ve)-.25 G(.).15 E F1144 654 Q F0 1.164 (If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164 (ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165 (cuting commands such as).15 F F1(cd)3.665 E F0 2.822 -(that change the current w)184 462 R 2.822(orking directory)-.1 F 7.822 +(that change the current w)184 666 R 2.822(orking directory)-.1 F 7.822 (.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821 -(ysical directory structure)-.05 F 2.685(instead. By)184 474 R(def)2.685 +(ysical directory structure)-.05 F 2.685(instead. By)184 678 R(def)2.685 E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186 (ws the logical chain of directories when performing com-)-.25 F -(mands which change the current directory)184 486 Q(.)-.65 E F1144 -498 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1 +(mands which change the current directory)184 690 Q(.)-.65 E F1144 +702 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1 (DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89 (are inherited by shell functions, command)3.39 F 1.932 -(substitutions, and commands e)184 510 R -.15(xe)-.15 G 1.932 +(substitutions, and commands e)184 714 R -.15(xe)-.15 G 1.932 (cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E -(UG)-.1 E F0(and)4.432 E F1(RETURN)184 522 Q F0 -(traps are normally not inherited in such cases.)2.5 E F1144 534 Q -F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401 +(UG)-.1 E F0(and)4.432 E F1(RETURN)184 726 Q F0 +(traps are normally not inherited in such cases.)2.5 E(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(62)185.955 E 0 Cg EP +%%Page: 63 63 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF144 84 Q F0 .401(If no ar)28.6 F .401 +(guments follo)-.18 F 2.901(wt)-.25 G .401 (his option, then the positional parameters are unset.)-2.901 F -(Otherwise,)5.4 E(the positional parameters are set to the)184 546 Q F2 -(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G -(ome of them be)-2.5 E(gin with a)-.15 E F12.5 E F0(.)A F1144 -558 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2 -(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G -1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 570 R -F13.446 E F0(and)3.446 E F13.446 E F0 .945 +(Otherwise,)5.4 E(the positional parameters are set to the)184 96 Q/F2 +10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni) +.15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F12.5 E +F0(.)A F1144 108 Q F0 1.944 +(Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g) +-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G 1.945 +(ssigned to the positional)-4.445 F 3.446(parameters. The)184 120 R F1 +3.446 E F0(and)3.446 E F13.446 E F0 .945 (options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no) 3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B -(parameters remain unchanged.)184 582 Q .425(The options are of)144 -598.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425 +(parameters remain unchanged.)184 132 Q .425(The options are of)144 +148.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425 (ault unless otherwise noted.)-.1 F .425 (Using + rather than \255 causes these options)5.425 F .178 -(to be turned of)144 610.8 R 2.678(f. The)-.25 F .178 +(to be turned of)144 160.8 R 2.678(f. The)-.25 F .178 (options can also be speci\214ed as ar)2.678 F .178(guments to an in) -.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066 -(current set of options may be found in)144 622.8 R F1<24ad>2.566 E F0 +(current set of options may be found in)144 172.8 R F1<24ad>2.566 E F0 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066 (ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F -(is encountered.)144 634.8 Q F1(shift)108 651.6 Q F0([)2.5 E F2(n)A F0 -(])A .429(The positional parameters from)144 663.6 R F2(n)2.929 E F0 +(is encountered.)144 184.8 Q F1(shift)108 201.6 Q F0([)2.5 E F2(n)A F0 +(])A .429(The positional parameters from)144 213.6 R F2(n)2.929 E F0 .429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G -.428(rameters represented by the num-).15 F(bers)144 675.6 Q F1($#)2.582 +.428(rameters represented by the num-).15 F(bers)144 225.6 Q F1($#)2.582 E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0A F2(n)A F0 .082 (+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga) -.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to) .15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06 -(is 0, no parameters are changed.)144 687.6 R(If)5.06 E F2(n)2.92 E F0 +(is 0, no parameters are changed.)144 237.6 R(If)5.06 E F2(n)2.92 E F0 .06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F (If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56 -(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 699.6 R +(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 249.6 R .144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0 .144(is greater than)2.884 F F1($#)2.644 E F0 -(or less than zero; otherwise 0.)144 711.6 Q(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(61)190.95 E 0 Cg EP -%%Page: 62 62 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(shopt)108 84 Q F0([)2.5 E F1(\255pqsu)A F0 -2.5(][)C F1-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(optname)-2.5 -E F0(...])2.5 E -.8(To)144 96 S .222(ggle the v).8 F .222(alues of v) --.25 F .222(ariables controlling optional shell beha)-.25 F(vior)-.2 E -5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F12.722 -E F0 .721(option, a list of all settable options is displayed, with an \ -indication of whether or not each is set.)144 108 R(The)144 120 Q F1 -2.828 E F0 .327(option causes output to be displayed in a form th\ -at may be reused as input.)2.828 F .327(Other options)5.327 F(ha)144 132 -Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1144 -144 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 E F0(.)A F1144 -156 Q F0(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0(.)A F1 -144 168 Q F0 .003(Suppresses normal output \(quiet mode\); the return s\ -tatus indicates whether the)24.74 F F2(optname)2.504 E F0(is)2.504 E -.256(set or unset.)180 180 R .256(If multiple)5.256 F F2(optname)2.756 E -F0(ar)2.756 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G -(ith)-2.756 E F12.756 E F0 2.755(,t)C .255 -(he return status is zero if)-2.755 F(all)180 192 Q F2(optnames)2.5 E F0 -(are enabled; non-zero otherwise.)2.5 E F1144 204 Q F0 -(Restricts the v)25.3 E(alues of)-.25 E F2(optname)2.5 E F0 -(to be those de\214ned for the)2.5 E F12.5 E F0(option to the)2.5 -E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127(If either)144 220.8 R F1 -2.627 E F0(or)2.627 E F12.627 E F0 .127(is used with no) -2.627 F F2(optname)2.627 E F0(ar)2.627 E .127 +(or less than zero; otherwise 0.)144 261.6 Q F1(shopt)108 278.4 Q F0([) +2.5 E F1(\255pqsu)A F0 2.5(][)C F1-2.5 E F0 2.5(][)C F2(optname) +-2.5 E F0(...])2.5 E -.8(To)144 290.4 S .222(ggle the v).8 F .222 +(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F +(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1 +2.722 E F0 .721(option, a list of all settable options is display\ +ed, with an indication of whether or not each is set.)144 302.4 R(The) +144 314.4 Q F12.828 E F0 .327(option causes output to be displaye\ +d in a form that may be reused as input.)2.828 F .327(Other options) +5.327 F(ha)144 326.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:) +-.25 E F1144 338.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 +E F0(.)A F1144 350.4 Q F0(Disable \(unset\) each)24.74 E F2 +(optname)2.5 E F0(.)A F1144 362.4 Q F0 .003(Suppresses normal out\ +put \(quiet mode\); the return status indicates whether the)24.74 F F2 +(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 374.4 R .256 +(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256 +(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1 +2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F +(all)180 386.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.) +2.5 E F1144 398.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2 +(optname)2.5 E F0(to be those de\214ned for the)2.5 E F12.5 E F0 +(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127 +(If either)144 415.2 R F12.627 E F0(or)2.627 E F12.627 E F0 +.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127 (guments, the display is limited to those options which)-.18 F 1.024 -(are set or unset, respecti)144 232.8 R -.15(ve)-.25 G(ly).15 E 6.024 +(are set or unset, respecti)144 427.2 R -.15(ve)-.25 G(ly).15 E 6.024 (.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 E F0 -1.023(options are disabled \(unset\) by)3.523 F(def)144 244.8 Q(ault.) +1.023(options are disabled \(unset\) by)3.523 F(def)144 439.2 Q(ault.) -.1 E 1.544(The return status when listing options is zero if all)144 -261.6 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.) +456 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.) 4.045 F .696 (When setting or unsetting options, the return status is zero unless an) -144 273.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695 -(alid shell)-.25 F(option.)144 285.6 Q(The list of)144 302.4 Q F1(shopt) -2.5 E F0(options is:)2.5 E F1(autocd)144 320.4 Q F0 .199 +144 468 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell) +-.25 F(option.)144 480 Q(The list of)144 496.8 Q F1(shopt)2.5 E F0 +(options is:)2.5 E F1(autocd)144 514.8 Q F0 .199 (If set, a command name that is the name of a directory is e)11.11 F -.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E -(ment to the)184 332.4 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F +(ment to the)184 526.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E -F1(cdable_v)144 344.4 Q(ars)-.1 E F0 .156(If set, an ar)184 356.4 R .156 +F1(cdable_v)144 538.8 Q(ars)-.1 E F0 .156(If set, an ar)184 550.8 R .156 (gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155 (iltin command that is not a directory is assumed to be the).2 F -(name of a v)184 368.4 Q(ariable whose v)-.25 E -(alue is the directory to change to.)-.25 E F1(cdspell)144 380.4 Q F0 +(name of a v)184 562.8 Q(ariable whose v)-.25 E +(alue is the directory to change to.)-.25 E F1(cdspell)144 574.8 Q F0 1.055 (If set, minor errors in the spelling of a directory component in a) 10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988 -(corrected. The)184 392.4 R 1.488(errors check)3.988 F 1.487 +(corrected. The)184 586.8 R 1.488(errors check)3.988 F 1.487 (ed for are transposed characters, a missing character)-.1 F 3.987(,a) --.4 G(nd)-3.987 E .552(one character too man)184 404.4 R 4.352 -.65 +-.4 G(nd)-3.987 E .552(one character too man)184 598.8 R 4.352 -.65 (y. I)-.15 H 3.052(fac).65 G .552 (orrection is found, the corrected \214le name is printed, and)-3.052 F -(the command proceeds.)184 416.4 Q +(the command proceeds.)184 610.8 Q (This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.) -.15 E F1(checkhash)144 428.4 Q F0 2.08(If set,)184 440.4 R F1(bash)4.58 +.15 E F1(checkhash)144 622.8 Q F0 2.08(If set,)184 634.8 R F1(bash)4.58 E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079 -(xists before trying to)-.15 F -.15(exe)184 452.4 S(cute it.).15 E +(xists before trying to)-.15 F -.15(exe)184 646.8 S(cute it.).15 E (If a hashed command no longer e)5 E -(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 464.4 -Q F0 .448(If set,)184 476.4 R F1(bash)2.948 E F0 .448 +(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 658.8 +Q F0 .448(If set,)184 670.8 R F1(bash)2.948 E F0 .448 (lists the status of an)2.948 F 2.949(ys)-.15 G .449 (topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15 -F -.15(ve)-.25 G 3.439(shell. If)184 488.4 R(an)3.439 E 3.439(yj)-.15 G +F -.15(ve)-.25 G 3.439(shell. If)184 682.8 R(an)3.439 E 3.439(yj)-.15 G .938(obs are running, this causes the e)-3.439 F .938 -(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 1.456 -(attempted without an interv)184 500.4 R 1.456(ening command \(see)-.15 -F F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G -3.956(\). The).15 F(shell)3.956 E(al)184 512.4 Q -.1(wa)-.1 G -(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.) --2.5 E F1(checkwinsize)144 524.4 Q F0 .797(If set,)184 536.4 R F1(bash) -3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G .796 -(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G .796 -(pdates the)-3.296 F -.25(va)184 548.4 S(lues of).25 E/F3 9/Times-Bold@0 -SF(LINES)2.5 E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A -F1(cmdhist)144 560.4 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202 -(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202 -(ll lines of a multiple-line command in the same history).15 F(entry)184 -572.4 Q 5(.T)-.65 G(his allo)-5 E -(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 584.4 -Q F0 .42(If set,)184 596.4 R F1(bash)2.92 E F0 .42(changes its beha)2.92 -F .419(vior to that of v)-.2 F .419 -(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E -(to the conditional command')184 608.4 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G -(perator)-2.5 E(.)-.55 E F1(dirspell)144 620.4 Q F0 .858(If set,)7.77 F -F1(bash)3.358 E F0 .858 -(attempts spelling correction on directory names during w)3.358 F .859 +(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 2.203 +(attempted without an interv)184 694.8 R 2.203(ening command \(see)-.15 +F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E +-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 706.8 Q -.1(wa) +-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G +(obs are stopped.)-2.5 E(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 +E(63)185.955 E 0 Cg EP +%%Page: 64 64 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(checkwinsize)144 84 Q F0 .797(If set,)184 +96 R F1(bash)3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G +.796(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G +.796(pdates the)-3.296 F -.25(va)184 108 S(lues of).25 E/F2 9 +/Times-Bold@0 SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9 +/Times-Roman@0 SF(.)A F1(cmdhist)144 120 Q F0 1.202(If set,)6.11 F F1 +(bash)3.702 E F0 1.202(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H +1.202(ll lines of a multiple-line command in the same history).15 F +(entry)184 132 Q 5(.T)-.65 G(his allo)-5 E +(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 144 Q +F0 .42(If set,)184 156 R F1(bash)2.92 E F0 .42(changes its beha)2.92 F +.419(vior to that of v)-.2 F .419(ersion 3.1 with respect to quoted ar) +-.15 F(guments)-.18 E(to the conditional command')184 168 Q 2.5(s=)-.55 +G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(compat32)144 180 Q F0 1.409 +(If set,)184 192 R F1(bash)3.909 E F0 1.409(changes its beha)3.909 F +1.409(vior to that of v)-.2 F 1.41 +(ersion 3.2 with respect to locale-speci\214c)-.15 F +(string comparison when using the conditional command')184 204 Q 2.5 +(s operators.)-2.5 E F1(compat40)144 216 Q F0 1.41 +(If set,)184 228 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409 +(vior to that of v)-.2 F 1.409 +(ersion 4.0 with respect to locale-speci\214c)-.15 F 1.692 +(string comparison when using the conditional command')184 240 R 4.193 +(s operators and the)-4.193 F(ef)184 252 Q +(fect of interrupting a command list.)-.25 E F1(dirspell)144 264 Q F0 +.859(If set,)7.77 F F1(bash)3.359 E F0 .858 +(attempts spelling correction on directory names during w)3.359 F .858 (ord completion if)-.1 F -(the directory name initially supplied does not e)184 632.4 Q(xist.)-.15 -E F1(dotglob)144 644.4 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165 +(the directory name initially supplied does not e)184 276 Q(xist.)-.15 E +F1(dotglob)144 288 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165 (includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i) -.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F -(xpansion.)-.15 E F1(execfail)144 656.4 Q F0 1.386 -(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386 +(xpansion.)-.15 E F1(execfail)144 300 Q F0 1.387 +(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386 (hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G -1.387(cute the \214le speci\214ed as an).15 F(ar)184 668.4 Q +1.386(cute the \214le speci\214ed as an).15 F(ar)184 312 Q (gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E (An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 -E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 680.4 Q -F0 .717(If set, aliases are e)184 692.4 R .717(xpanded as described abo) --.15 F 1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E F4(.)A F0 -.716(This option is enabled)5.217 F(by def)184 704.4 Q -(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.0) -72 768 Q(2009 February 7)140.96 E(62)190.95 E 0 Cg EP -%%Page: 63 63 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(extdeb)144 84 Q(ug)-.2 E F0(If set, beha) -184 96 Q(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1 -(1.)184 108 Q F0(The)28.5 E F14.25 E F0 1.75(option to the)4.25 F -F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751 -(iltin displays the source \214le name and line).2 F -(number corresponding to each function name supplied as an ar)220 120 Q -(gument.)-.18 E F1(2.)184 132 Q F0 1.667(If the command run by the)28.5 +E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 324 Q F0 +.716(If set, aliases are e)184 336 R .717(xpanded as described abo)-.15 +F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717 +(This option is enabled)5.217 F(by def)184 348 Q(ault for interacti)-.1 +E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 360 Q(ug)-.2 E F0 +(If set, beha)184 372 Q(vior intended for use by deb)-.2 E +(uggers is enabled:)-.2 E F1(1.)184 384 Q F0(The)28.5 E F14.251 E +F0 1.751(option to the)4.251 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu) +4.251 G 1.751(iltin displays the source \214le name and line).2 F +(number corresponding to each function name supplied as an ar)220 396 Q +(gument.)-.18 E F1(2.)184 408 Q F0 1.667(If the command run by the)28.5 F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F -1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 144 -Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 156 Q F0 .84 -(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841 -(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15 -(exe)220 168 S .488 +1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 420 +Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 432 Q F0 .841 +(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841 +(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15 +(exe)220 444 S .488 (cuting in a subroutine \(a shell function or a shell script e).15 F -.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1 -(sour)220 180 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1 --.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184 -192 R(ASH_ARGC)-.3 E F0(and)3.775 E F1 -.3(BA)3.775 G(SH_ARGV).3 E F0 -1.276(are updated as described in their descrip-)3.775 F(tions abo)220 -204 Q -.15(ve)-.15 G(.).15 E F1(5.)184 216 Q F0 1.359 +(sour)220 456 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1 +-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 468 Q +F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.154 E F2 -.27(BA)3.404 G +(SH_ARGV).27 E F0 .904(are updated as described in their descriptions) +3.154 F(abo)220 480 Q -.15(ve)-.15 G(.).15 E F1(5.)184 492 Q F0 1.359 (Function tracing is enabled:)28.5 F 1.359 (command substitution, shell functions, and sub-)6.359 F(shells in)220 -228 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F2 10 +504 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10 /Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1 (DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.) -184 240 Q F0 .804(Error tracing is enabled:)28.5 F .805 -(command substitution, shell functions, and subshells)5.804 F(in)220 252 -Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2 +184 516 Q F0 .805(Error tracing is enabled:)28.5 F .804 +(command substitution, shell functions, and subshells)5.805 F(in)220 528 +Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0 -(trap.)2.5 E F1(extglob)144 264 Q F0 .4(If set, the e)8.89 F .4 +(trap.)2.5 E F1(extglob)144 540 Q F0 .4(If set, the e)8.89 F .4 (xtended pattern matching features described abo)-.15 F .7 -.15(ve u) --.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 276 Q -F0(are enabled.)2.5 E F1(extquote)144 288 Q F0 2.473(If set,)184 300 R -F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973 -E F0(")A F2(string)A F0 4.973("q)C 2.473(uoting is performed within) --4.973 F F1(${)4.973 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G -(pansions).15 E(enclosed in double quotes.)184 312 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 324 Q F0 -1.425(If set, patterns which f)7.77 F 1.425 -(ail to match \214lenames during pathname e)-.1 F 1.424 -(xpansion result in an)-.15 F -.15(ex)184 336 S(pansion error).15 E(.) --.55 E F1 -.25(fo)144 348 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 -.585(If set, the suf)184 360 R<8c78>-.25 E .585(es speci\214ed by the) --.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w) --.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 372 R .32 +-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 552 Q +F0(are enabled.)2.5 E F1(extquote)144 564 Q F0 2.473(If set,)184 576 R +F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973 +E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within) +-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G +(pansions).15 E(enclosed in double quotes.)184 588 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 600 Q F0 +1.424(If set, patterns which f)7.77 F 1.425 +(ail to match \214lenames during pathname e)-.1 F 1.425 +(xpansion result in an)-.15 F -.15(ex)184 612 S(pansion error).15 E(.) +-.55 E F1 -.25(fo)144 624 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 +.937(If set, the suf)184 636 R<8c78>-.25 E .936(es speci\214ed by the) +-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w) +-.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 648 R .32 (ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32 -(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.329 -(pletions. See)184 384 R/F3 9/Times-Bold@0 SF .829(SHELL V)3.329 F -(ARIABLES)-1.215 E F0(abo)3.079 E 1.129 -.15(ve f)-.15 H .83 -(or a description of).15 F F1(FIGNORE)3.33 E F0 5.83(.T)C .83 -(his option)-5.83 F(is enabled by def)184 396 Q(ault.)-.1 E F1(globstar) -144 408 Q F0 .44(If set, the pattern)5 F F1(**)2.94 E F0 .44 -(used in a \214lename e)2.94 F .439(xpansion conte)-.15 F .439 -(xt will match a \214les and zero or)-.15 F 1.297 -(more directories and subdirectories.)184 420 R 1.298 -(If the pattern is follo)6.297 F 1.298(wed by a)-.25 F F1(/)3.798 E F0 -3.798(,o)C 1.298(nly directories)-3.798 F(and subdirectories match.)184 -432 Q F1(gnu_errfmt)144 444 Q F0(If set, shell error messages are writt\ -en in the standard GNU error message format.)184 456 Q F1(histappend)144 -468 Q F0 .384 +(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948 +(pletions. See)184 660 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0 +(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2 +(FIGNORE)2.947 E F3(.)A F0 .447(This option is)4.947 F(enabled by def) +184 672 Q(ault.)-.1 E F1(globstar)144 684 Q F0 .178(If set, the pattern) +5 F F1(**)2.678 E F0 .178(used in a pathname e)2.678 F .178 +(xpansion conte)-.15 F .179(xt will match a \214les and zero or)-.15 F +1.298(more directories and subdirectories.)184 696 R 1.298 +(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0 +3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184 +708 Q(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(64)185.955 E 0 Cg +EP +%%Page: 65 65 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(gnu_errfmt)144 84 Q F0(If set, shell error\ + messages are written in the standard GNU error message format.)184 96 Q +F1(histappend)144 108 Q F0 .676 (If set, the history list is appended to the \214le named by the v)184 -480 R .383(alue of the)-.25 F F1(HISTFILE)2.883 E F0 -.25(va)2.883 G -(ri-).25 E(able when the shell e)184 492 Q(xits, rather than o)-.15 E --.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 504 Q(eedit)-.18 -E F0 .575(If set, and)184 516 R F1 -.18(re)3.075 G(adline).18 E F0 .575 -(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576 -(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F -(tory substitution.)184 528 Q F1(histv)144 540 Q(erify)-.1 E F0 .403 -(If set, and)184 552 R F1 -.18(re)2.903 G(adline).18 E F0 .403 +120 R .676(alue of the)-.25 F/F2 9/Times-Bold@0 SF(HISTFILE)3.177 E F0 +-.25(va)2.927 G(ri-).25 E(able when the shell e)184 132 Q +(xits, rather than o)-.15 E -.15(ve)-.15 G(rwriting the \214le.).15 E F1 +(histr)144 144 Q(eedit)-.18 E F0 .576(If set, and)184 156 R F1 -.18(re) +3.076 G(adline).18 E F0 .575(is being used, a user is gi)3.076 F -.15 +(ve)-.25 G 3.075(nt).15 G .575(he opportunity to re-edit a f)-3.075 F +.575(ailed his-)-.1 F(tory substitution.)184 168 Q F1(histv)144 180 Q +(erify)-.1 E F0 .402(If set, and)184 192 R F1 -.18(re)2.903 G(adline).18 +E F0 .403 (is being used, the results of history substitution are not immediately) -2.903 F .661(passed to the shell parser)184 564 R 5.661(.I)-.55 G .662 -(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162 -G(adline).18 E F0(editing)3.162 E -.2(bu)184 576 S -.25(ff).2 G(er).25 E +2.903 F .662(passed to the shell parser)184 204 R 5.662(.I)-.55 G .661 +(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161 +G(adline).18 E F0(editing)3.161 E -.2(bu)184 216 S -.25(ff).2 G(er).25 E 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1 -(hostcomplete)144 588 Q F0 1.182(If set, and)184 600 R F1 -.18(re)3.682 -G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181 -(will attempt to perform hostname completion)3.681 F 1.38(when a w)184 -612 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381 -(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E -F3(READLINE)3.881 E F0(abo)184 624 Q -.15(ve)-.15 G 2.5(\). This).15 F -(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 636 Q F0(If set,) -184 648 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E F0 +(hostcomplete)144 228 Q F0 1.181(If set, and)184 240 R F1 -.18(re)3.681 +G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182 +(will attempt to perform hostname completion)3.682 F 1.381(when a w)184 +252 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381 +(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E +F2(READLINE)3.88 E F0(abo)184 264 Q -.15(ve)-.15 G 2.5(\). This).15 F +(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 276 Q F0(If set,) +184 288 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0 (to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e) -.15 E(xits.)-.15 E F1(interacti)144 660 Q -.1(ve)-.1 G(_comments).1 E F0 -.33(If set, allo)184 672 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33 +.15 E(xits.)-.15 E F1(interacti)144 300 Q -.1(ve)-.1 G(_comments).1 E F0 +.33(If set, allo)184 312 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33 (ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33 (ord and all remaining characters on)-.1 F .967 -(that line to be ignored in an interacti)184 684 R 1.267 -.15(ve s)-.25 -H .967(hell \(see).15 F F3(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15 -G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 696 Q -(ault.)-.1 E F1(lithist)144 708 Q F0 .655(If set, and the)15.55 F F1 -(cmdhist)3.155 E F0 .654(option is enabled, multi-line commands are sa) -3.154 F -.15(ve)-.2 G 3.154(dt).15 G 3.154(ot)-3.154 G .654(he history) --3.154 F(with embedded ne)184 720 Q -(wlines rather than using semicolon separators where possible.)-.25 E -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(63)190.95 E 0 Cg EP -%%Page: 64 64 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(login_shell)144 84 Q F0 .486 +(that line to be ignored in an interacti)184 324 R 1.267 -.15(ve s)-.25 +H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15 +G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 336 Q +(ault.)-.1 E F1(lithist)144 348 Q F0 .654(If set, and the)15.55 F F1 +(cmdhist)3.154 E F0 .654(option is enabled, multi-line commands are sa) +3.154 F -.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history) +-3.155 F(with embedded ne)184 360 Q +(wlines rather than using semicolon separators where possible.)-.25 E F1 +(login_shell)144 372 Q F0 .486 (The shell sets this option if it is started as a login shell \(see)184 -96 R/F2 9/Times-Bold@0 SF(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo) -2.737 E -.15(ve)-.15 G 2.987(\). The).15 F -.25(va)184 108 S -(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .815 -(If set, and a \214le that)184 132 R F1(bash)3.315 E F0 .814 -(is checking for mail has been accessed since the last time it)3.315 F --.1(wa)184 144 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E +384 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve) +-.15 G 2.986(\). The).15 F -.25(va)184 396 S(lue may not be changed.).25 +E F1(mailwar)144 408 Q(n)-.15 E F0 .814(If set, and a \214le that)184 +420 R F1(bash)3.314 E F0 .815 +(is checking for mail has been accessed since the last time it)3.314 F +-.1(wa)184 432 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E (`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0 (has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1 -(no_empty_cmd_completion)144 156 Q F0 .145(If set, and)184 168 R F1 -.18 -(re)2.645 G(adline).18 E F0 .145(is being used,)2.645 F F1(bash)2.646 E -F0 .146(will not attempt to search the)2.646 F F1 -.74(PA)2.646 G(TH) --.21 E F0 .146(for possible)2.646 F -(completions when completion is attempted on an empty line.)184 180 Q F1 -(nocaseglob)144 192 Q F0 .437(If set,)184 204 R F1(bash)2.937 E F0 .436 -(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25 -H .436(ashion when performing pathname).05 F -.15(ex)184 216 S +(no_empty_cmd_completion)144 444 Q F0 .325(If set, and)184 456 R F1 -.18 +(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E +F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH) +-.189 E F0 .324(for possible)2.574 F +(completions when completion is attempted on an empty line.)184 468 Q F1 +(nocaseglob)144 480 Q F0 .436(If set,)184 492 R F1(bash)2.936 E F0 .436 +(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25 +H .437(ashion when performing pathname).05 F -.15(ex)184 504 S (pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E --.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.193(If set,)184 -240 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti) -3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05 -F(while e)184 252 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5 -E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 264 Q F0 -.855(If set,)184 276 R F1(bash)3.355 E F0(allo)3.355 E .855 -(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854 -(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o) --3.354 E -.15(ex)184 288 S(pand to a null string, rather than themselv) -.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .676 -(If set, the programmable completion f)184 312 R .677(acilities \(see) --.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E --.15(ve)-.15 G(\)).15 E(are enabled.)184 324 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 336 Q(omptv) --.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 348 R 1.448 -(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic) --.15 F -.15(ex)184 360 S .17(pansion, and quote remo).15 F -.25(va)-.15 +-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 516 Q F0 1.194(If set,)184 +528 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti) +3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05 +F(while e)184 540 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5 +E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 552 Q F0 +.854(If set,)184 564 R F1(bash)3.354 E F0(allo)3.354 E .855 +(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855 +(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o) +-3.355 E -.15(ex)184 576 S(pand to a null string, rather than themselv) +.15 E(es.)-.15 E F1(pr)144 588 Q(ogcomp)-.18 E F0 .677 +(If set, the programmable completion f)184 600 R .677(acilities \(see) +-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E +-.15(ve)-.15 G(\)).15 E(are enabled.)184 612 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 624 Q(omptv) +-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 636 R 1.448 +(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic) +-.15 F -.15(ex)184 648 S .171(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in) --.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15 -E(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384 +-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E +(This option is enabled by def)184 660 Q(ault.)-.1 E F1 -.18(re)144 672 S(stricted_shell).18 E F0 1.069 (The shell sets this option if it is started in restricted mode \(see) -184 396 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 408 Q 4.178 +184 684 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 696 Q 4.178 (w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F 1.678(This is not reset when the startup \214les are)6.678 F -.15(exe) -184 420 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E +184 708 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E -F1(shift_v)144 432 Q(erbose)-.1 E F0 .502(If set, the)184 444 R F1 -(shift)3.002 E F0 -.2(bu)3.002 G .501 -(iltin prints an error message when the shift count e).2 F .501 -(xceeds the number)-.15 F(of positional parameters.)184 456 Q F1(sour) -144 468 Q(cepath)-.18 E F0 .77(If set, the)184 480 R F1(sour)3.27 E(ce) --.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F -.771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771 -(to \214nd the directory containing the)3.021 F -(\214le supplied as an ar)184 492 Q 2.5(gument. This)-.18 F -(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 504 Q F0 -(If set, the)184 516 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(65)185.955 E 0 Cg EP +%%Page: 66 66 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF(shift_v)144 84 Q(erbose)-.1 E F0 .501 +(If set, the)184 96 R F1(shift)3.001 E F0 -.2(bu)3.001 G .501 +(iltin prints an error message when the shift count e).2 F .502 +(xceeds the number)-.15 F(of positional parameters.)184 108 Q F1(sour) +144 120 Q(cepath)-.18 E F0 .771(If set, the)184 132 R F1(sour)3.271 E +(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v) +-3.471 F .771(alue of)-.25 F/F2 9/Times-Bold@0 SF -.666(PA)3.27 G(TH) +-.189 E F0 .77(to \214nd the directory containing the)3.02 F +(\214le supplied as an ar)184 144 Q 2.5(gument. This)-.18 F +(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 156 Q F0 +(If set, the)184 168 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E (xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend) -108 528 Q F0([)2.5 E F1A F0(])A 1.002(Suspend the e)144 540 R -.15 -(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)-.25 -G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001 -(login shell cannot be)3.501 F .022(suspended; the)144 552 R F1 -2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022 -(rride this and force the suspension.).15 F .023(The return status is) -5.023 F 2.5(0u)144 564 S(nless the shell is a login shell and)-2.5 E F1 +108 180 Q F0([)2.5 E F1A F0(])A 1.001(Suspend the e)144 192 R -.15 +(xe)-.15 G 1.001(cution of this shell until it recei).15 F -.15(ve)-.25 +G 3.501(sa).15 G F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002 +(login shell cannot be)3.502 F .023(suspended; the)144 204 R F1 +2.523 E F0 .023(option can be used to o)2.523 F -.15(ve)-.15 G .022 +(rride this and force the suspension.).15 F .022(The return status is) +5.022 F 2.5(0u)144 216 S(nless the shell is a login shell and)-2.5 E F1 2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E -F1(test)108 576 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 588 Q F3 -.2(ex)2.5 G -(pr).2 E F1(])2.5 E F0 1.15 +F1(test)108 228 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108 +240 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15 (Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15 (luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G -(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.187 -(operator and operand must be a separate ar)144 600 R 3.688 -(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F -1.89(described abo)144 612 R 2.19 -.15(ve u)-.15 H(nder).15 E F2 -(CONDITION)4.39 E 1.89(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A -F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889 -(ptions, nor)-4.389 F(does it accept and ignore an ar)144 624 Q +(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188 +(operator and operand must be a separate ar)144 252 R 3.688 +(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F +1.889(described abo)144 264 R 2.189 -.15(ve u)-.15 H(nder).15 E F2 +(CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A +F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89 +(ptions, nor)-4.39 F(does it accept and ignore an ar)144 276 Q (gument of)-.18 E F12.5 E F0(as signifying the end of options.)2.5 -E .785(Expressions may be combined using the follo)144 642 R .786 +E .786(Expressions may be combined using the follo)144 294 R .785 (wing operators, listed in decreasing order of prece-)-.25 F 2.5 -(dence. The)144 654 R -.25(eva)2.5 G +(dence. The)144 306 R -.25(eva)2.5 G (luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65 -(w.)-.25 G F1(!)144 666 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G +(w.)-.25 G F1(!)144 318 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G (ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\() -144 678 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77 +144 330 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77 F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26 (his may be used to o)-5.26 F -.15(ve)-.15 G .26 -(rride the normal precedence of opera-).15 F(tors.)180 690 Q F3 -.2(ex) -144 702 S(pr1).2 E F02.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35 -(Tr)180 714 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3 --.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(64)190.95 E 0 Cg EP -%%Page: 65 65 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Italic@0 SF -.2(ex)144 84 S(pr1).2 E F02.5 E/F2 -10/Times-Bold@0 SF(o)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 96 S -(ue if either).35 E F1 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F1 -.2(ex)2.5 G -(pr2).2 E F0(is true.)2.52 E F2(test)144 112.8 Q F0(and)2.5 E F2([)2.5 E +(rride the normal precedence of opera-).15 F(tors.)180 342 Q F3 -.2(ex) +144 354 S(pr1).2 E F02.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35 +(Tr)180 366 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3 +-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 378 S(pr1).2 E +F02.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 390 S +(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G +(pr2).2 E F0(is true.)2.52 E F1(test)144 406.8 Q F0(and)2.5 E F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E (xpressions using a set of rules based on the number of ar)-.15 E -(guments.)-.18 E 2.5(0a)144 130.8 S -.18(rg)-2.5 G(uments).18 E(The e) -180 142.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 154.8 S -.18 -(rg)-2.5 G(ument).18 E(The e)180 166.8 Q +(guments.)-.18 E 2.5(0a)144 424.8 S -.18(rg)-2.5 G(uments).18 E(The e) +180 436.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 448.8 S -.18 +(rg)-2.5 G(ument).18 E(The e)180 460.8 Q (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18 -E 2.5(2a)144 178.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) -180 190.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 +E 2.5(2a)144 472.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) +180 484.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 F .37(xpression is true if and only if the second ar)-.15 F .37 -(gument is null.)-.18 F .38(If the \214rst ar)180 202.8 R .38 -(gument is one of the unary conditional operators listed abo)-.18 F .679 --.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180 -214.8 Q .552(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552 -(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F -.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 226.8 Q +(gument is null.)-.18 F .379(If the \214rst ar)180 496.8 R .38 +(gument is one of the unary conditional operators listed abo)-.18 F .68 +-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 508.8 Q .553 +(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552 +(xpression is true if the unary test is true.)-.15 F .552 +(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 520.8 Q (alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E -(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 238.8 S -.18(rg)-2.5 G -(uments).18 E .024(If the second ar)180 250.8 R .023 +(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 532.8 S -.18(rg)-2.5 G +(uments).18 E .023(If the second ar)180 544.8 R .023 (gument is one of the binary conditional operators listed abo)-.18 F -.323 -.15(ve u)-.15 H(nder).15 E F3(CON-)2.523 E(DITION)180 262.8 Q -1.477(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F +.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 556.8 Q +1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F 1.477(xpression is the result of the binary test)-.15 F .513 -(using the \214rst and third ar)180 274.8 R .513(guments as operands.) --.18 F(The)5.513 E F23.013 E F0(and)3.013 E F23.013 E F0 -.512(operators are considered)3.013 F .972 -(binary operators when there are three ar)180 286.8 R 3.472(guments. If) --.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F2(!)3.472 E F0 -3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .884(the ne)180 298.8 -R -.05(ga)-.15 G .884(tion of the tw).05 F(o-ar)-.1 E .884 -(gument test using the second and third ar)-.18 F 3.383(guments. If)-.18 -F .883(the \214rst)3.383 F(ar)180 310.8 Q .874(gument is e)-.18 F -(xactly)-.15 E F2(\()3.374 E F0 .875(and the third ar)3.374 F .875 -(gument is e)-.18 F(xactly)-.15 E F2(\))3.375 E F0 3.375(,t)C .875 -(he result is the one-ar)-3.375 F(gument)-.18 E(test of the second ar) -180 322.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f) --.15 E(alse.)-.1 E 2.5(4a)144 334.8 S -.18(rg)-2.5 G(uments).18 E .385 -(If the \214rst ar)180 346.8 R .385(gument is)-.18 F F2(!)2.885 E F0 -2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .384 -(tion of the three-ar).05 F .384(gument e)-.18 F .384(xpression com-) --.15 F 1.647(posed of the remaining ar)180 358.8 R 4.147 -(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.648 +(using the \214rst and third ar)180 568.8 R .513(guments as operands.) +-.18 F(The)5.513 E F13.013 E F0(and)3.013 E F13.013 E F0 +.513(operators are considered)3.013 F .972 +(binary operators when there are three ar)180 580.8 R 3.472(guments. If) +-.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0 +3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 592.8 +R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884 +(gument test using the second and third ar)-.18 F 3.384(guments. If)-.18 +F .884(the \214rst)3.384 F(ar)180 604.8 Q .875(gument is e)-.18 F +(xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875 +(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874 +(he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar) +180 616.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f) +-.15 E(alse.)-.1 E 2.5(4a)144 628.8 S -.18(rg)-2.5 G(uments).18 E .384 +(If the \214rst ar)180 640.8 R .384(gument is)-.18 F F1(!)2.884 E F0 +2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385 +(tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-) +-.15 F 1.648(posed of the remaining ar)180 652.8 R 4.147 +(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647 (xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E -(according to precedence using the rules listed abo)180 370.8 Q -.15(ve) --.15 G(.).15 E 2.5(5o)144 382.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments) --.18 E 1.635(The e)180 394.8 R 1.635(xpression is parsed and e)-.15 F +(according to precedence using the rules listed abo)180 664.8 Q -.15(ve) +-.15 G(.).15 E 2.5(5o)144 676.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments) +-.18 E 1.635(The e)180 688.8 R 1.635(xpression is parsed and e)-.15 F -.25(va)-.25 G 1.635 (luated according to precedence using the rules listed).25 F(abo)180 -406.8 Q -.15(ve)-.15 G(.).15 E F2(times)108 423.6 Q F0 1.229(Print the \ +700.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 717.6 Q F0 1.229(Print the \ accumulated user and system times for the shell and for processes run f\ -rom the shell.)13.23 F(The return status is 0.)144 435.6 Q F2(trap)108 -452.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)A(g)-.37 E F0 -(])A F1(sigspec)2.5 E F0(...])2.5 E .703(The command)144 464.4 R F1(ar) -3.533 E(g)-.37 E F0 .703(is to be read and e)3.423 F -.15(xe)-.15 G .702 -(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202(ss).15 G -(ignal\(s\))-3.202 E F1(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F1 -(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single) -144 476.4 R F1(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F23.108 E -F0 3.108(,e)C .608 -(ach speci\214ed signal is reset to its original disposition)-3.108 F -.659(\(the v)144 488.4 R .659(alue it had upon entrance to the shell\).) --.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .658 -(is the null string the signal speci\214ed by each)3.378 F F1(sigspec) -144.34 500.4 Q F0 .58(is ignored by the shell and by the commands it in) -3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F1(ar)3.411 E(g)-.37 E -F0 .581(is not present and)3.301 F F23.081 E F0(has)3.081 E 1.215 -(been supplied, then the trap commands associated with each)144 512.4 R -F1(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214 -F(gu-)-.18 E .86(ments are supplied or if only)144 524.4 R F23.36 -E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86 -(prints the list of commands associated with each)3.36 F 2.83 -(signal. The)144 536.4 R F22.83 E F0 .33(option causes the shell \ -to print a list of signal names and their corresponding num-)2.83 F 4.31 -(bers. Each)144 548.4 R F1(sigspec)4.65 E F0 1.811 -(is either a signal name de\214ned in <)4.62 F F1(signal.h)A F0 1.811 -(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E .745 -(names are case insensiti)144 560.4 R 1.045 -.15(ve a)-.25 H .745 -(nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F1(sigspec) -3.585 E F0(is)3.555 E F3(EXIT)3.245 E F0 .745(\(0\) the command)2.995 F -F1(ar)144.33 572.4 Q(g)-.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G 1.629 -(cuted on e).15 F 1.63(xit from the shell.)-.15 F 1.63(If a)6.63 F F1 -(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E F4(,)A F0 1.63 -(the command)3.88 F F1(ar)4.46 E(g)-.37 E F0 1.63(is e)4.35 F -.15(xe) --.15 G(cuted).15 E 1.207(before e)144 584.4 R -.15(ve)-.25 G(ry).15 E F1 -1.207(simple command)3.707 F F0(,)A F1(for)3.707 E F0(command,)3.706 E -F1(case)3.706 E F0(command,)3.706 E F1(select)3.706 E F0 1.206 -(command, e)3.706 F -.15(ve)-.25 G 1.206(ry arithmetic).15 F F1(for)144 -596.4 Q F0 .412(command, and before the \214rst command e)2.912 F -.15 -(xe)-.15 G .412(cutes in a shell function \(see).15 F F3 .413 -(SHELL GRAMMAR)2.912 F F0(abo)144 608.4 Q -.15(ve)-.15 G 2.666 -(\). Refer).15 F .166(to the description of the)2.666 F F2(extdeb)2.666 -E(ug)-.2 E F0 .166(option to the)2.666 F F2(shopt)2.666 E F0 -.2(bu) -2.666 G .166(iltin for details of its ef).2 F(fect)-.25 E .508(on the) -144 620.4 R F2(DEB)3.008 E(UG)-.1 E F0 3.008(trap. If)3.008 F(a)3.008 E -F1(sigspec)3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508 -(the command)2.758 F F1(ar)3.338 E(g)-.37 E F0 .509(is e)3.228 F -.15 -(xe)-.15 G .509(cuted whene).15 F -.15(ve)-.25 G 3.009(ras).15 G .509 -(imple com-)-3.009 F 2.506(mand has a non\255zero e)144 632.4 R 2.506 -(xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F -(The)7.506 E F3(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144 -644.4 S .105(cuted if the f).15 F .105 -(ailed command is part of the command list immediately follo)-.1 F .105 -(wing a)-.25 F F2(while)2.605 E F0(or)2.605 E F2(until)2.605 E F0 -.1 -(ke)144 656.4 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F1(if) -3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G -.549(cuted in a).15 F F2(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF -3.049 E F0 .549(list, or if)3.049 F .577(the command')144 668.4 R 3.077 -(sr)-.55 G .577(eturn v)-3.077 F .577(alue is being in)-.25 F -.15(ve) --.4 G .577(rted via).15 F F2(!)3.077 E F0 5.578(.T)C .578 -(hese are the same conditions obe)-5.578 F .578(yed by the)-.15 F F2 -(err)144 680.4 Q(exit)-.18 E F0 3.031(option. If)3.031 F(a)3.031 E F1 -(sigspec)3.371 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531 -(the command)2.781 F F1(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15 -(xe)-.15 G .53(cuted each time a shell function).15 F .316 -(or a script e)144 692.4 R -.15(xe)-.15 G .317(cuted with the).15 F F2 -(.)2.817 E F0(or)2.817 E F2(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G -.317(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F -.317(ignored upon entry to)2.817 F .787 -(the shell cannot be trapped or reset.)144 704.4 R -.35(Tr)5.787 G .787 -(apped signals that are not being ignored are reset to their).35 F 1.1 -(original v)144 716.4 R 1.1 -(alues in a child process when it is created.)-.25 F 1.1 -(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F1(sigspec) -3.94 E F0(is)3.91 E(in)144 728.4 Q -.25(va)-.4 G(lid; otherwise).25 E F2 -(trap)2.5 E F0(returns true.)2.5 E(GNU Bash-4.0)72 768 Q -(2009 February 7)140.96 E(65)190.95 E 0 Cg EP -%%Page: 66 66 +rom the shell.)13.23 F(The return status is 0.)144 729.6 Q(GNU Bash-4.1) +72 768 Q(2009 December 29)135.965 E(66)185.955 E 0 Cg EP +%%Page: 67 67 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Bold@0 SF(type)108 84 Q F0([)2.5 E F1(\255aftpP)A F0 -(])A/F2 10/Times-Italic@0 SF(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 -E -.4(Wi)144 96 S .174(th no options, indicate ho).4 F 2.674(we)-.25 G -(ach)-2.674 E F2(name)3.034 E F0 -.1(wo)2.854 G .173 -(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F -F1144 108 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0 +-.35 E/F1 10/Times-Bold@0 SF(trap)108 84 Q F0([)2.5 E F1(\255lp)A F0 2.5 +(][)C([)-2.5 E/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec) +2.5 E F0(...])2.5 E .702(The command)144 96 R F2(ar)3.532 E(g)-.37 E F0 +.702(is to be read and e)3.422 F -.15(xe)-.15 G .702 +(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G +(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2 +(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single) +144 108 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F13.108 E F0 +3.108(,e)C .608 +(ach speci\214ed signal is reset to its original disposition)-3.108 F +.658(\(the v)144 120 R .658(alue it had upon entrance to the shell\).) +-.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659 +(is the null string the signal speci\214ed by each)3.378 F F2(sigspec) +144.34 132 Q F0 .581(is ignored by the shell and by the commands it in) +3.391 F -.2(vo)-.4 G -.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E +F0 .58(is not present and)3.3 F F13.08 E F0(has)3.08 E 1.214 +(been supplied, then the trap commands associated with each)144 144 R F2 +(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215 F +(gu-)-.18 E .86(ments are supplied or if only)144 156 R F13.36 E +F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86 +(prints the list of commands associated with each)3.36 F 2.83 +(signal. The)144 168 R F12.83 E F0 .33(option causes the shell to\ + print a list of signal names and their corresponding num-)2.83 F 4.311 +(bers. Each)144 180 R F2(sigspec)4.651 E F0 1.811 +(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81 +(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E +(names are case insensiti)144 192 Q .3 -.15(ve a)-.25 H +(nd the SIG pre\214x is optional.).15 E 1.648(If a)144 210 R F2(sigspec) +4.488 E F0(is)4.458 E/F3 9/Times-Bold@0 SF(EXIT)4.148 E F0 1.648 +(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F +-.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)-.15 F +1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 222 Q(UG) +-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F F2(ar) +3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167 +(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command) +3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0 +(com-)3.667 E(mand,)144 234 Q F2(select)2.646 E F0 .146(command, e)2.646 +F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147 +(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147 +(cutes in a).15 F .146(shell function \(see)144 246 R F3 .146 +(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15 +F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0 +.145(option to)2.645 F(the)144 258 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7 +(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG) +-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3 +(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 270 Q F2(ar)3.474 +E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643 +(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G +.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce) +-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 282 Q -.15(xe)-.15 +G(cuting.).15 E .928(If a)144 300 R F2(sigspec)3.768 E F0(is)3.738 E F3 +(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E(g)-.37 E +F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F -.15(ve)-.25 +G 3.429(ras).15 G .929(imple command has a non\255zero)-3.429 F -.15(ex) +144 312 S 1.009(it status, subject to the follo).15 F 1.009 +(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009 +(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008 +(ailed com-)-.1 F .324 +(mand is part of the command list immediately follo)144 324 R .324 +(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1 +(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F 1.129(in an)144 +336 R F2(if)3.639 E F0 1.129(statement, part of a command e)5.589 F -.15 +(xe)-.15 G 1.129(cuted in a).15 F F1(&&)3.629 E F0(or)3.629 E/F5 10 +/Symbol SF3.629 E F0 1.129(list, or if the command')3.629 F 3.628 +(sr)-.55 G(eturn)-3.628 E -.25(va)144 348 S(lue is being in).25 E -.15 +(ve)-.4 G(rted via).15 E F1(!)2.5 E F0 5(.T)C +(hese are the same conditions obe)-5 E(yed by the)-.15 E F1(err)2.5 E +(exit)-.18 E F0(option.)2.5 E 1.095 +(Signals ignored upon entry to the shell cannot be trapped or reset.)144 +366 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662 +(being ignored are reset to their original v)144 378 R .662 +(alues in a subshell or subshell en)-.25 F .661(vironment when one is) +-.4 F 2.5(created. The)144 390 R(return status is f)2.5 E(alse if an)-.1 +E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G +(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108 +406.8 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2 +(name)A F0(...])2.5 E -.4(Wi)144 418.8 S .173 +(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name) +3.033 E F0 -.1(wo)2.853 G .174 +(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F +F1144 430.8 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0 .843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0 -(,).24 E F2 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F2 -(\214le)5.253 E F0(if)3.523 E F2(name)144.36 120 Q F0 .087 -(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087 -(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15 -(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2 -(name)2.946 E F0 .086(is not)2.766 F .118 -(found, then nothing is printed, and an e)144 132 R .118 -(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F -F12.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855 -(either returns the name of the disk \214le that w)144 144 R .855 +(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2 +(\214le)5.252 E F0(if)3.522 E F2(name)144.36 442.8 Q F0 .086 +(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086 +(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15 +(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2 +(name)2.947 E F0 .087(is not)2.767 F .119 +(found, then nothing is printed, and an e)144 454.8 R .118 +(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F +F12.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855 +(either returns the name of the disk \214le that w)144 466.8 R .855 (ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0 -.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144 -156 R/F3 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641 -(uld not return).1 F F2(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F1 -3.141 E F0 .641(option forces a)3.141 F/F4 9/Times-Bold@0 SF -.666 -(PA)3.141 G(TH)-.189 E F0 .113(search for each)144 168 R F2(name)2.613 E -F0 2.613(,e)C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F3 .113 -(type -t name)2.613 F F0 -.1(wo)2.613 G .113(uld not return).1 F F2 -(\214le)2.613 E F0 5.113(.I).18 G 2.613(fa)-5.113 G .112 -(command is hashed,)-.001 F F12.612 E F0(and)144 180 Q F1 -2.944 E F0 .444(print the hashed v)2.944 F .444 -(alue, not necessarily the \214le that appears \214rst in)-.25 F F4 --.666(PA)2.945 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .445(If the) -4.945 F F12.945 E F0(option)2.945 E .265(is used,)144 192 R F1 -(type)2.765 E F0 .265(prints all of the places that contain an e)2.765 F --.15(xe)-.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 -G .265(his includes aliases)-5.265 F .426 -(and functions, if and only if the)144 204 R F12.926 E F0 .426 -(option is not also used.)2.926 F .427 -(The table of hashed commands is not)5.426 F .549(consulted when using) -144 216 R F13.049 E F0 5.549(.T)C(he)-5.549 E F13.049 E F0 -.548(option suppresses shell function lookup, as with the)3.049 F F1 -(command)3.048 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0 +.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if) +144 478.8 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141 +G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E +F13.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189 +E F0 .112(search for each)144 490.8 R F2(name)2.612 E F0 2.612(,e)C -.15 +(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613 F F0 +-.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I) +.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F12.613 E +F0(and)144 502.8 Q F12.945 E F0 .445(print the hashed v)2.945 F +.444(alue, not necessarily the \214le that appears \214rst in)-.25 F F3 +-.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F12.944 +E F0(option)2.944 E .265(is used,)144 514.8 R F1(type)2.765 E F0 .265 +(prints all of the places that contain an e)2.765 F -.15(xe)-.15 G .265 +(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265 +(his includes aliases)-5.265 F .427(and functions, if and only if the) +144 526.8 R F12.926 E F0 .426(option is not also used.)2.926 F +.426(The table of hashed commands is not)5.426 F .548 +(consulted when using)144 538.8 R F13.048 E F0 5.548(.T)C(he) +-5.548 E F13.048 E F0 .549 +(option suppresses shell function lookup, as with the)3.048 F F1 +(command)3.049 E F0 -.2(bu)144 550.8 S(iltin.).2 E F1(type)5 E F0 (returns true if all of the ar)2.5 E(guments are found, f)-.18 E -(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 244.8 +(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 567.6 Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2 -(limit)A F0(]])A(Pro)144 256.8 Q .243(vides control o)-.15 F -.15(ve) --.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244 +(limit)A F0(]])A(Pro)144 579.6 Q .244(vides control o)-.15 F -.15(ve) +-.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244 (ilable to the shell and to processes started by it, on systems).25 F -.944(that allo)144 268.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F -(The)5.944 E F13.444 E F0(and)3.444 E F13.444 E F0 .943 +.943(that allo)144 591.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F +(The)5.943 E F13.443 E F0(and)3.443 E F13.444 E F0 .944 (options specify that the hard or soft limit is set for the)3.444 F(gi) -144 280.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208 +144 603.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208 (hard limit cannot be increased by a non-root user once it is set; a so\ -ft limit may)2.708 F .426(be increased up to the v)144 292.8 R .426 -(alue of the hard limit.)-.25 F .425(If neither)5.426 F F12.925 E -F0(nor)2.925 E F12.925 E F0 .425 -(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144 -304.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139 +ft limit may)2.709 F .425(be increased up to the v)144 615.6 R .425 +(alue of the hard limit.)-.25 F .426(If neither)5.425 F F12.926 E +F0(nor)2.926 E F12.926 E F0 .426 +(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144 +627.6 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139 (can be a number in the unit speci\214ed for the resource or one)3.319 F -.742(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1 +.741(of the special v)144 639.6 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1 (soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w) C .741(hich stand for the current hard limit, the current)-3.241 F .78 -(soft limit, and no limit, respecti)144 328.8 R -.15(ve)-.25 G(ly).15 E +(soft limit, and no limit, respecti)144 651.6 R -.15(ve)-.25 G(ly).15 E 5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78 (is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25 -F .499(resource is printed, unless the)144 340.8 R F12.999 E F0 -.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498 +F .498(resource is printed, unless the)144 663.6 R F12.999 E F0 +.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499 (more than one resource is speci\214ed, the)2.999 F -(limit name and unit are printed before the v)144 352.8 Q 2.5 +(limit name and unit are printed before the v)144 675.6 Q 2.5 (alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1 -144 364.8 Q F0(All current limits are reported)25.3 E F1144 -376.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E -F1144 388.8 Q F0(The maximum size of core \214les created)25.86 E -F1144 400.8 Q F0(The maximum size of a process')24.74 E 2.5(sd) --.55 G(ata se)-2.5 E(gment)-.15 E F1144 412.8 Q F0 -(The maximum scheduling priority \("nice"\))25.86 E F1144 424.8 Q -F0(The maximum size of \214les written by the shell and its children) -26.97 E F1144 436.8 Q F0(The maximum number of pending signals) -27.52 E F1144 448.8 Q F0(The maximum size that may be lock)27.52 E -(ed into memory)-.1 E F1144 460.8 Q F0 +144 687.6 Q F0(All current limits are reported)25.3 E F1144 +699.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E +F1144 711.6 Q F0(The maximum size of core \214les created)25.86 E +(GNU Bash-4.1)72 768 Q(2009 December 29)135.965 E(67)185.955 E 0 Cg EP +%%Page: 68 68 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E/F1 10/Times-Bold@0 SF144 84 Q F0 +(The maximum size of a process')24.74 E 2.5(sd)-.55 G(ata se)-2.5 E +(gment)-.15 E F1144 96 Q F0 +(The maximum scheduling priority \("nice"\))25.86 E F1144 108 Q F0 +(The maximum size of \214les written by the shell and its children)26.97 +E F1144 120 Q F0(The maximum number of pending signals)27.52 E F1 +144 132 Q F0(The maximum size that may be lock)27.52 E +(ed into memory)-.1 E F1144 144 Q F0 (The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G -(ystems do not honor this limit\))-2.5 E F1144 472.8 Q F0 .791(Th\ -e maximum number of open \214le descriptors \(most systems do not allo) -24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F -(be set\))180 484.8 Q F1144 496.8 Q F0 +(ystems do not honor this limit\))-2.5 E F1144 156 Q F0 .791(The \ +maximum number of open \214le descriptors \(most systems do not allo) +24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180 +168 Q F1144 180 Q F0 (The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1 -144 508.8 Q F0 -(The maximum number of bytes in POSIX message queues)24.74 E F1144 -520.8 Q F0(The maximum real-time scheduling priority)25.86 E F1144 -532.8 Q F0(The maximum stack size)26.41 E F1144 544.8 Q F0 -(The maximum amount of cpu time in seconds)26.97 E F1144 556.8 Q -F0(The maximum number of processes a)24.74 E -.25(va)-.2 G -(ilable to a single user).25 E F1144 568.8 Q F0 +144 192 Q F0(The maximum number of bytes in POSIX message queues) +24.74 E F1144 204 Q F0(The maximum real-time scheduling priority) +25.86 E F1144 216 Q F0(The maximum stack size)26.41 E F1144 +228 Q F0(The maximum amount of cpu time in seconds)26.97 E F1144 +240 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G +(ilable to a single user).25 E F1144 252 Q F0 (The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G -(ilable to the shell).25 E F1144 580.8 Q F0 -(The maximum number of \214le locks)25.3 E F1144 592.8 Q F0 -(The maximum number of threads)23.63 E(If)144 609.6 Q F2(limit)2.933 E -F0 .343(is gi)3.523 F -.15(ve)-.25 G .343(n, it is the ne).15 F 2.843 -(wv)-.25 G .343(alue of the speci\214ed resource \(the)-3.093 F F1 -2.843 E F0 .343(option is display only\).)2.843 F .343(If no)5.343 F -.175(option is gi)144 621.6 R -.15(ve)-.25 G .175(n, then).15 F F1 -2.675 E F0 .175(is assumed.)2.675 F -1.11(Va)5.175 G .175 -(lues are in 1024-byte increments, e)1.11 F .176(xcept for)-.15 F F1 -2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 633.6 -Q F12.516 E F0 2.516(,w)C .016 -(hich is in units of 512-byte blocks, and)-2.516 F F12.516 E F0(,) -A F12.515 E F0(,)A F12.515 E F0 2.515(,a)C(nd)-2.515 E F1 -2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E -3.787(ues. The)144 645.6 R 1.287(return status is 0 unless an in)3.787 F +(ilable to the shell).25 E F1144 264 Q F0 +(The maximum number of \214le locks)25.3 E F1144 276 Q F0 +(The maximum number of threads)23.63 E(If)144 292.8 Q/F2 10 +/Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G +.343(n, it is the ne).15 F 2.843(wv)-.25 G .343 +(alue of the speci\214ed resource \(the)-3.093 F F12.843 E F0 .343 +(option is display only\).)2.843 F .343(If no)5.343 F .176(option is gi) +144 304.8 R -.15(ve)-.25 G .176(n, then).15 F F12.676 E F0 .175 +(is assumed.)2.676 F -1.11(Va)5.175 G .175 +(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1 +2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 316.8 +Q F12.515 E F0 2.515(,w)C .015 +(hich is in units of 512-byte blocks, and)-2.515 F F12.516 E F0(,) +A F12.516 E F0(,)A F12.516 E F0 2.516(,a)C(nd)-2.516 E F1 +2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E +3.788(ues. The)144 328.8 R 1.287(return status is 0 unless an in)3.787 F -.25(va)-.4 G 1.287(lid option or ar).25 F 1.287 (gument is supplied, or an error occurs)-.18 F(while setting a ne)144 -657.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 674.4 Q F0([)2.5 E F1 +340.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 357.6 Q F0([)2.5 E F1 A F0 2.5(][)C F1-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2 -(The user \214le-creation mask is set to)144 686.4 R F2(mode)2.7 E F0 +(The user \214le-creation mask is set to)144 369.6 R F2(mode)2.7 E F0 5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2 (gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\ therwise it is interpreted as a symbolic mode mask similar to that acce\ -pted by)144 698.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 -710.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382 +pted by)144 381.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 +393.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382 (alue of the mask is printed.)-.25 F(The)5.382 E F12.882 E F0 .382 (option causes the mask to be)2.882 F .547 -(printed in symbolic form; the def)144 722.4 R .547 +(printed in symbolic form; the def)144 405.6 R .547 (ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G -(he)-3.047 E F13.047 E F0 .547(option is supplied, and)3.047 F -(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 E(66)190.95 E 0 Cg EP -%%Page: 67 67 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Italic@0 SF(mode)144.38 84 Q F0 .552 -(is omitted, the output is in a form that may be reused as input.)3.232 -F .551(The return status is 0 if the)5.551 F(mode w)144 96 Q -(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E -(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10 -/Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1 -(name)-2.5 E F0(...])2.5 E(Remo)144 124.8 Q 1.955 -.15(ve e)-.15 H(ach) -.15 E F1(name)4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 -F(If)6.655 E F24.155 E F0 1.655 -(is supplied, all alias de\214nitions are)4.155 F(remo)144 136.8 Q -.15 -(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E -(alue is true unless a supplied)-.25 E F1(name)2.86 E F0 -(is not a de\214ned alias.)2.68 E F2(unset)108 153.6 Q F0<5bad>2.5 E F2 -(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 165.6 S 3.107 -(re).15 G(ach)-3.107 E F1(name)3.107 E F0 3.107(,r).18 G(emo)-3.107 E -.907 -.15(ve t)-.15 H .607(he corresponding v).15 F .607 -(ariable or function.)-.25 F .606(If no options are supplied, or the) -5.607 F F2144 177.6 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G -.304(n, each).15 F F1(name)3.164 E F0 .305(refers to a shell v)2.985 F -2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .305 -(riables may not be unset.).25 F(If)5.305 E F2144 189.6 Q F0 .46 -(is speci\214ed, each)2.96 F F1(name)3.32 E F0 .459 -(refers to a shell function, and the function de\214nition is remo)3.14 -F -.15(ve)-.15 G 2.959(d. Each).15 F .902(unset v)144 201.6 R .902 +(he)-3.047 E F13.047 E F0 .547(option is supplied, and)3.047 F F2 +(mode)144.38 417.6 Q F0 .551 +(is omitted, the output is in a form that may be reused as input.)3.231 +F .552(The return status is 0 if the)5.552 F(mode w)144 429.6 Q +(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E +(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1 +(unalias)108 446.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0 +(...])2.5 E(Remo)144 458.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name) +4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E +F14.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155 +F(remo)144 470.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E +(alue is true unless a supplied)-.25 E F2(name)2.86 E F0 +(is not a de\214ned alias.)2.68 E F1(unset)108 487.2 Q F0<5bad>2.5 E F1 +(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 499.2 S 3.106 +(re).15 G(ach)-3.106 E F2(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E +.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607 +(ariable or function.)-.25 F .607(If no options are supplied, or the) +5.607 F F1144 511.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G +.305(n, each).15 F F2(name)3.165 E F0 .305(refers to a shell v)2.985 F +2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304 +(riables may not be unset.).25 F(If)5.304 E F1144 523.2 Q F0 .459 +(is speci\214ed, each)2.959 F F2(name)3.319 E F0 .459 +(refers to a shell function, and the function de\214nition is remo)3.139 +F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 535.2 R .903 (ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902 -(rom the en)-3.402 F .903(vironment passed to subsequent commands.)-.4 F -(If)5.903 E(an)144 213.6 Q 4.285(yo)-.15 G(f)-4.285 E/F3 9/Times-Bold@0 -SF(RANDOM)4.285 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3 -(LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME) --.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST) -4.284 E -.495(AC)-.81 G(K).495 E F0(are)4.034 E .328(unset, the)144 -225.6 R 2.828(yl)-.15 G .328(ose their special properties, e)-2.828 F --.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya) --.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .329 -(xit status is true)-.15 F(unless a)144 237.6 Q F1(name)2.86 E F0 -(is readonly)2.68 E(.)-.65 E F2(wait)108 254.4 Q F0([)2.5 E F1 2.5(n.)C -(..)-2.5 E F0(])A -.8(Wa)144 266.4 S .288 +(rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F +(If)5.902 E(an)144 547.2 Q 6.915(yo)-.15 G(f)-6.915 E/F3 9/Times-Bold@0 +SF(COMP_W)6.915 E(ORDBREAKS)-.09 E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM) +6.665 E F4(,)A F3(SECONDS)6.665 E F4(,)A F3(LINENO)6.665 E F4(,)A F3 +(HISTCMD)6.666 E F4(,)A F3(FUNCN)6.666 E(AME)-.18 E F4(,)A F3(GR)144 +559.2 Q(OUPS)-.27 E F4(,)A F0(or)2.523 E F3(DIRST)2.773 E -.495(AC)-.81 +G(K).495 E F0 .272(are unset, the)2.522 F 2.772(yl)-.15 G .272 +(ose their special properties, e)-2.772 F -.15(ve)-.25 G 2.772(ni).15 G +2.772(ft)-2.772 G(he)-2.772 E 2.772(ya)-.15 G .272(re subsequently) +-2.772 F 2.5(reset. The)144 571.2 R -.15(ex)2.5 G +(it status is true unless a).15 E F2(name)2.86 E F0(is readonly)2.68 E +(.)-.65 E F1(wait)108 588 Q F0([)2.5 E F2 2.5(n.)C(..)-2.5 E F0(])A -.8 +(Wa)144 600 S .288 (it for each speci\214ed process and return its termination status.).8 F -(Each)5.288 E F1(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722 -(job speci\214cation; if a job spec is gi)144 278.4 R -.15(ve)-.25 G -.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722 -(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E -F1(n)3.583 E F0(is)3.463 E 1.266(not gi)144 290.4 R -.15(ve)-.25 G 1.266 -(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265 -(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265 -(nd the return status is zero.)-3.765 F(If)6.265 E F1(n)4.125 E F0 .456 -(speci\214es a non-e)144 302.4 R .457 +(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722 +(job speci\214cation; if a job spec is gi)144 612 R -.15(ve)-.25 G .722 +(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w) +-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0 +(is)3.462 E 1.265(not gi)144 624 R -.15(ve)-.25 G 1.265 +(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265 +(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266 +(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457 +(speci\214es a non-e)144 636 R .457 (xistent process or job, the return status is 127.)-.15 F .457 -(Otherwise, the return status is the)5.457 F -.15(ex)144 314.4 S +(Otherwise, the return status is the)5.457 F -.15(ex)144 648 S (it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E -/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 331.2 Q F0(If)108 343.2 Q -F2(bash)4.397 E F0 1.897(is started with the name)4.397 F F2(rbash)4.397 -E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F24.397 E F0 1.896 -(option is supplied at in)4.397 F -.2(vo)-.4 G 1.896 -(cation, the shell becomes).2 F 3.445(restricted. A)108 355.2 R .945 -(restricted shell is used to set up an en)3.445 F .946 -(vironment more controlled than the standard shell.)-.4 F(It)5.946 E -(beha)108 367.2 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2 +/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 664.8 Q F0(If)108 676.8 Q +F1(bash)4.396 E F0 1.896(is started with the name)4.396 F F1(rbash)4.397 +E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F14.397 E F0 1.897 +(option is supplied at in)4.397 F -.2(vo)-.4 G 1.897 +(cation, the shell becomes).2 F 3.446(restricted. A)108 688.8 R .945 +(restricted shell is used to set up an en)3.446 F .945 +(vironment more controlled than the standard shell.)-.4 F(It)5.945 E +(beha)108 700.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1 (bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E -(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 384 -S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108 400.8 S -(etting or unsetting the v)-32.5 E(alues of)-.25 E F2(SHELL)2.5 E F0(,)A -F2 -.74(PA)2.5 G(TH)-.21 E F0(,)A F2(ENV)2.5 E F0 2.5(,o)C(r)-2.5 E F2 --.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 417.6 S -(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108 -434.4 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0 -(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G -(iltin command).2 E 32.5<8353>108 451.2 S .351 +(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 +717.6 S(hanging directories with)-32.5 E F1(cd)2.5 E F0(GNU Bash-4.1)72 +768 Q(2009 December 29)135.965 E(68)185.955 E 0 Cg EP +%%Page: 69 69 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) +-.35 E 32.5<8373>108 84 S(etting or unsetting the v)-32.5 E(alues of) +-.25 E/F1 9/Times-Bold@0 SF(SHELL)2.5 E/F2 9/Times-Roman@0 SF(,)A F1 +-.666(PA)2.25 G(TH)-.189 E F2(,)A F1(ENV)2.25 E F2(,)A F0(or)2.25 E F1 +-.27(BA)2.5 G(SH_ENV).27 E F0 32.5<8373>108 100.8 S +(pecifying command names containing)-32.5 E/F3 10/Times-Bold@0 SF(/)2.5 +E F0 32.5<8373>108 117.6 S(pecifying a \214le name containing a)-32.5 E +F3(/)2.5 E F0(as an ar)2.5 E(gument to the)-.18 E F3(.)2.5 E F0 -.2(bu)5 +G(iltin command).2 E 32.5<8353>108 134.4 S .351 (pecifying a \214lename containing a slash as an ar)-32.5 F .351 -(gument to the)-.18 F F22.851 E F0 .351(option to the)2.851 F F2 -(hash)2.851 E F0 -.2(bu)2.851 G .351(iltin com-).2 F(mand)144 463.2 Q -32.5<8369>108 480 S(mporting function de\214nitions from the shell en) --32.5 E(vironment at startup)-.4 E 32.5<8370>108 496.8 S(arsing the v) --32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E -(vironment at startup)-.4 E 32.5<8372>108 513.6 S(edirecting output usi\ +(gument to the)-.18 F F32.851 E F0 .351(option to the)2.851 F F3 +(hash)2.852 E F0 -.2(bu)2.852 G .352(iltin com-).2 F(mand)144 146.4 Q +32.5<8369>108 163.2 S(mporting function de\214nitions from the shell en) +-32.5 E(vironment at startup)-.4 E 32.5<8370>108 180 S(arsing the v) +-32.5 E(alue of)-.25 E F1(SHELLOPTS)2.5 E F0(from the shell en)2.25 E +(vironment at startup)-.4 E 32.5<8372>108 196.8 S(edirecting output usi\ ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5 -<8375>108 530.4 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G +<8375>108 213.6 S(sing the)-32.5 E F3(exec)2.5 E F0 -.2(bu)2.5 G (iltin command to replace the shell with another command).2 E 32.5<8361> -108 547.2 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E -F22.5 E F0(and)2.5 E F22.5 E F0(options to the)2.5 E F2 -(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 564 S -(sing the)-32.5 E F2(enable)2.5 E F0 -.2(bu)2.5 G +108 230.4 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E +F32.5 E F0(and)2.5 E F32.5 E F0(options to the)2.5 E F3 +(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8355>108 247.2 S +(sing the)-32.5 E F3(enable)2.5 E F0 -.2(bu)2.5 G (iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373> -108 580.8 S(pecifying the)-32.5 E F22.5 E F0(option to the)2.5 E -F2(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 597.6 -S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F2(set +r) -2.5 E F0(or)2.5 E F2(set +o r)2.5 E(estricted)-.18 E F0(.)A -(These restrictions are enforced after an)108 614.4 Q 2.5(ys)-.15 G +108 264 S(pecifying the)-32.5 E F32.5 E F0(option to the)2.5 E F3 +(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 280.8 S +(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F3(set +r) +2.5 E F0(or)2.5 E F3(set +o r)2.5 E(estricted)-.18 E F0(.)A +(These restrictions are enforced after an)108 297.6 Q 2.5(ys)-.15 G (tartup \214les are read.)-2.5 E 1.566 -(When a command that is found to be a shell script is e)108 631.2 R -.15 -(xe)-.15 G 1.567(cuted \(see).15 F F3 1.567(COMMAND EXECUTION)4.067 F F0 -(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 643.2 Q F0(turns of) +(When a command that is found to be a shell script is e)108 314.4 R -.15 +(xe)-.15 G 1.566(cuted \(see).15 F F1 1.566(COMMAND EXECUTION)4.066 F F0 +(abo)3.816 E -.15(ve)-.15 G(\),).15 E F3(rbash)108 326.4 Q F0(turns of) 2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15 -E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F5(SEE ALSO)72 -660 Q F1(Bash Refer)108 672 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5 -E(ox and Chet Rame)-.15 E(y)-.15 E F1(The Gnu Readline Libr)108 684 Q +E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E/F4 10.95 +/Times-Bold@0 SF(SEE ALSO)72 343.2 Q/F5 10/Times-Italic@0 SF(Bash Refer) +108 355.2 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5 E +(ox and Chet Rame)-.15 E(y)-.15 E F5(The Gnu Readline Libr)108 367.2 Q (ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E -F1(The Gnu History Libr)108 696 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E -(ox and Chet Rame)-.15 E(y)-.15 E(GNU Bash-4.0)72 768 Q(2009 February 7) -140.96 E(67)190.95 E 0 Cg EP -%%Page: 68 68 +F5(The Gnu History Libr)108 379.2 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E +(ox and Chet Rame)-.15 E(y)-.15 E F5 -.8(Po)108 391.2 S(rtable Oper).8 E +(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities) +-.8 E F0 2.5(,I)C(EEE)-2.5 E F5(sh)108 403.2 Q F0(\(1\),)A F5(ksh)2.5 E +F0(\(1\),)A F5(csh)2.5 E F0(\(1\))A F5(emacs)108 415.2 Q F0(\(1\),)A F5 +(vi)2.5 E F0(\(1\))A F5 -.37(re)108 427.2 S(adline).37 E F0(\(3\))A F4 +(FILES)72 444 Q F5(/bin/bash)109.666 456 Q F0(The)144 468 Q F3(bash)2.5 +E F0 -.15(exe)2.5 G(cutable).15 E F5(/etc/pr)109.666 480 Q(o\214le)-.45 +E F0(The systemwide initialization \214le, e)144 492 Q -.15(xe)-.15 G +(cuted for login shells).15 E F5(~/.bash_pr)109.666 504 Q(o\214le)-.45 E +F0(The personal initialization \214le, e)144 516 Q -.15(xe)-.15 G +(cuted for login shells).15 E F5(~/.bashr)109.666 528 Q(c)-.37 E F0 +(The indi)144 540 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G +(-shell startup \214le).15 E F5(~/.bash_lo)109.666 552 Q(gout)-.1 E F0 +(The indi)144 564 Q(vidual login shell cleanup \214le, e)-.25 E -.15(xe) +-.15 G(cuted when a login shell e).15 E(xits)-.15 E F5(~/.inputr)109.666 +576 Q(c)-.37 E F0(Indi)144 588 Q(vidual)-.25 E F5 -.37(re)2.5 G(adline) +.37 E F0(initialization \214le)2.5 E F4 -.548(AU)72 604.8 S(THORS).548 E +F0(Brian F)108 616.8 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 +E(bfox@gnu.or)108 628.8 Q(g)-.18 E(Chet Rame)108 645.6 Q 1.3 -.65(y, C) +-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve) +-.25 G(rsity).15 E(chet.rame)108 657.6 Q(y@case.edu)-.15 E F4 -.11(BU)72 +674.4 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567 +(If you \214nd a b)108 686.4 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568 +(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F +3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .568(ug, and)-.2 +F 5.626(that it appears in the latest v)108 698.4 R 5.625(ersion of)-.15 +F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625 +(ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625 +(ilable from).25 F F5(ftp://ftp.gnu.or)108 710.4 Q(g/pub/bash/)-.37 E F0 +(.)A .41(Once you ha)108 727.2 R .71 -.15(ve d)-.2 H .41 +(etermined that a b).15 F .41(ug actually e)-.2 F .411(xists, use the) +-.15 F F5(bashb)3.181 E(ug)-.2 E F0 .411(command to submit a b)3.131 F +.411(ug report.)-.2 F(If)5.411 E(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(69)185.955 E 0 Cg EP +%%Page: 70 70 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E/F1 10/Times-Italic@0 SF -.8(Po)108 84 S(rtable Oper).8 E -(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities) --.8 E F0 2.5(,I)C(EEE)-2.5 E F1(sh)108 96 Q F0(\(1\),)A F1(ksh)2.5 E F0 -(\(1\),)A F1(csh)2.5 E F0(\(1\))A F1(emacs)108 108 Q F0(\(1\),)A F1(vi) -2.5 E F0(\(1\))A F1 -.37(re)108 120 S(adline).37 E F0(\(3\))A/F2 10.95 -/Times-Bold@0 SF(FILES)72 136.8 Q F1(/bin/bash)109.666 148.8 Q F0(The) -144 160.8 Q/F3 10/Times-Bold@0 SF(bash)2.5 E F0 -.15(exe)2.5 G(cutable) -.15 E F1(/etc/pr)109.666 172.8 Q(o\214le)-.45 E F0 -(The systemwide initialization \214le, e)144 184.8 Q -.15(xe)-.15 G -(cuted for login shells).15 E F1(~/.bash_pr)109.666 196.8 Q(o\214le)-.45 -E F0(The personal initialization \214le, e)144 208.8 Q -.15(xe)-.15 G -(cuted for login shells).15 E F1(~/.bashr)109.666 220.8 Q(c)-.37 E F0 -(The indi)144 232.8 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G -(-shell startup \214le).15 E F1(~/.bash_lo)109.666 244.8 Q(gout)-.1 E F0 -(The indi)144 256.8 Q(vidual login shell cleanup \214le, e)-.25 E -.15 -(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F1(~/.inputr) -109.666 268.8 Q(c)-.37 E F0(Indi)144 280.8 Q(vidual)-.25 E F1 -.37(re) -2.5 G(adline).37 E F0(initialization \214le)2.5 E F2 -.548(AU)72 297.6 S -(THORS).548 E F0(Brian F)108 309.6 Q(ox, Free Softw)-.15 E(are F)-.1 E -(oundation)-.15 E(bfox@gnu.or)108 321.6 Q(g)-.18 E(Chet Rame)108 338.4 Q -1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni) --2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 350.4 Q(y@case.edu)-.15 -E F2 -.11(BU)72 367.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568 -(If you \214nd a b)108 379.2 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568 -(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F -3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .567(ug, and)-.2 -F 5.625(that it appears in the latest v)108 391.2 R 5.625(ersion of)-.15 -F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626 -(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626 -(ilable from).25 F F1(ftp://ftp.gnu.or)108 403.2 Q(g/pub/bash/)-.37 E F0 -(.)A .411(Once you ha)108 420 R .711 -.15(ve d)-.2 H .411 -(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the) --.15 F F1(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41 -(ug report.)-.2 F(If)5.41 E .594(you ha)108 432 R .894 -.15(ve a \214) --.2 H .595(x, you are encouraged to mail that as well!).15 F .595 -(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F -(be mailed to)108 444 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0 -(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E(ug) --.2 E F0(.)A(ALL b)108 460.8 Q(ug reports should include:)-.2 E(The v) -108 477.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 489.6 -Q(are and operating system)-.1 E(The compiler used to compile)108 501.6 -Q 2.5(Ad)108 513.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 -E 2.5(As)108 525.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 -G(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 542.4 Q(ug)-.2 E F0 +-.35 E .595(you ha)108 84 R .895 -.15(ve a \214)-.2 H .595 +(x, you are encouraged to mail that as well!).15 F .594 +(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F +(be mailed to)108 96 Q/F1 10/Times-Italic@0 SF -.2(bu)2.5 G +(g-bash@gnu.or).2 E(g)-.37 E F0(or posted to the Usenet ne)2.5 E +(wsgroup)-.25 E/F2 10/Times-Bold@0 SF(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A +(ALL b)108 112.8 Q(ug reports should include:)-.2 E(The v)108 129.6 Q +(ersion number of)-.15 E F2(bash)2.5 E F0(The hardw)108 141.6 Q +(are and operating system)-.1 E(The compiler used to compile)108 153.6 Q +2.5(Ad)108 165.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E +2.5(As)108 177.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G +(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 194.4 Q(ug)-.2 E F0 (inserts the \214rst three items automatically into the template it pro) 2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108 -559.2 Q(ug reports concerning this manual page should be directed to)-.2 -E F1 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E F2 -.11(BU)72 576 S -(GS).11 E F0(It')108 588 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E -.65 -(w.)-.25 G 1.869(There are some subtle dif)108 604.8 R 1.869 -(ferences between)-.25 F F3(bash)4.369 E F0 1.869(and traditional v) -4.369 F 1.869(ersions of)-.15 F F3(sh)4.368 E F0 4.368(,m)C 1.868 -(ostly because of the)-4.368 F/F4 9/Times-Bold@0 SF(POSIX)108 616.8 Q F0 -(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 633.6 Q -(Shell b)108 650.4 Q +211.2 Q(ug reports concerning this manual page should be directed to)-.2 +E F1 -.15(ch)2.5 G(et@po.cwru.edu).15 E F0(.).25 E/F3 10.95/Times-Bold@0 +SF -.11(BU)72 228 S(GS).11 E F0(It')108 240 Q 2.5(st)-.55 G +(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.868 +(There are some subtle dif)108 256.8 R 1.868(ferences between)-.25 F F2 +(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F +F2(sh)4.369 E F0 4.369(,m)C 1.869(ostly because of the)-4.369 F/F4 9 +/Times-Bold@0 SF(POSIX)108 268.8 Q F0(speci\214cation.)2.25 E +(Aliases are confusing in some uses.)108 285.6 Q(Shell b)108 302.4 Q (uiltin commands and functions are not stoppable/restartable.)-.2 E 1.315(Compound commands and command sequences of the form `a ; b ; c' a\ -re not handled gracefully when)108 667.2 R .39 -(process suspension is attempted.)108 679.2 R .389 -(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15 -G .389(cutes the ne).15 F .389(xt com-)-.15 F .192 -(mand in the sequence.)108 691.2 R .192(It suf)5.192 F .192(\214ces to \ -place the sequence of commands between parentheses to force it into a) --.25 F(subshell, which may be stopped as a unit.)108 703.2 Q(Array v)108 -720 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E(GNU Bash-4.0) -72 768 Q(2009 February 7)140.96 E(68)190.95 E 0 Cg EP -%%Page: 69 69 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\)) --.35 E(There may be only one acti)108 84 Q .3 -.15(ve c)-.25 H -(oprocess at a time.).15 E(GNU Bash-4.0)72 768 Q(2009 February 7)140.96 -E(69)190.95 E 0 Cg EP +re not handled gracefully when)108 319.2 R .389 +(process suspension is attempted.)108 331.2 R .389 +(When a process is stopped, the shell immediately e)5.389 F -.15(xe)-.15 +G .39(cutes the ne).15 F .39(xt com-)-.15 F .193(mand in the sequence.) +108 343.2 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\ +ommands between parentheses to force it into a)-.25 F +(subshell, which may be stopped as a unit.)108 355.2 Q(Array v)108 372 Q +(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E +(There may be only one acti)108 388.8 Q .3 -.15(ve c)-.25 H +(oprocess at a time.).15 E(GNU Bash-4.1)72 768 Q(2009 December 29) +135.965 E(70)185.955 E 0 Cg EP %%Trailer end %%EOF diff --git a/doc/bashref.dvi b/doc/bashref.dvi index 2891246f77db70d4ff3997701ebf5200095a2d06..652145aaf6a31fa209464d8239738957ba3c625f 100644 GIT binary patch literal 663456 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 z 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 MN!s&~f&upLzac|$-2eap diff --git a/doc/bashref.html b/doc/bashref.html index 630de5c..d36b72b 100644 --- a/doc/bashref.html +++ b/doc/bashref.html @@ -1,6 +1,6 @@ - +

- - + +

Killing text means to delete the text from the line, but to save @@ -9226,7 +9325,7 @@ that when you yank it back, you get it all. The kill ring is not line specific; the text that you killed on a previously typed line is available to be yanked back later, when you are typing another line. - +

Here is the list of commands for killing text. @@ -9485,11 +9584,11 @@ A great deal of run-time behavior is changeable with the following variables.

- +

bell-style -
+
Controls what happens when Readline wants to ring the terminal bell. If set to `none', Readline never rings the bell. If set to `visible', Readline uses a visible bell if one is available. @@ -9498,14 +9597,14 @@ the terminal's bell.

bind-tty-special-chars -
+
If set to `on', Readline attempts to bind the control characters treated specially by the kernel's terminal driver to their Readline equivalents.

comment-begin -
+
The string to insert at the beginning of the line when the insert-comment command is executed. The default value is "#". @@ -9518,7 +9617,7 @@ The default value is `off'.

completion-prefix-display-length -
+
The length in characters of the common prefix of a list of possible completions that is displayed without modification. When set to a value greater than zero, common prefixes longer than this value are @@ -9526,7 +9625,7 @@ replaced with an ellipsis when displaying possible completions.

completion-query-items -
+
The number of possible completions that determines when the user is asked whether the list of possibilities should be displayed. If the number of possible completions is greater than this value, @@ -9538,7 +9637,7 @@ The default limit is 100.

convert-meta -
+
If set to `on', Readline will convert characters with the eighth bit set to an ASCII key sequence by stripping the eighth bit and prefixing an ESC character, converting them to a @@ -9546,35 +9645,48 @@ meta-prefixed key sequence. The default value is `on'.

disable-completion -
+
If set to `On', Readline will inhibit word completion. Completion characters will be inserted into the line as if they had been mapped to self-insert. The default is `off'.

editing-mode -
+
The editing-mode variable controls which default set of key bindings is used. By default, Readline starts up in Emacs editing mode, where the keystrokes are most similar to Emacs. This variable can be set to either `emacs' or `vi'.

+

echo-control-characters +
When set to `on', on operating systems that indicate they support it, +readline echoes a character corresponding to a signal generated from the +keyboard. The default is `on'. +

+

enable-keypad -
+
When set to `on', Readline will try to enable the application keypad when it is called. Some systems need this to enable the arrow keys. The default is `off'.

+

enable-meta-key +
When set to `on', Readline will try to enable any meta modifier +key the terminal claims to support when it is called. On many terminals, +the meta key is used to send eight-bit characters. +The default is `on'. +

+

expand-tilde -
+
If set to `on', tilde expansion is performed when Readline attempts word completion. The default is `off'.

history-preserve-point -
+
If set to `on', the history code attempts to place the point (the current cursor position) at the same location on each history line retrieved with previous-history @@ -9582,13 +9694,13 @@ or next-history. The default is `off'.

history-size -
+
Set the maximum number of history entries saved in the history list. If set to zero, the number of entries in the history list is not limited.

horizontal-scroll-mode -
+
This variable can be set to either `on' or `off'. Setting it to `on' means that the text of the lines being edited will scroll horizontally on a single screen line when they are longer than the width @@ -9597,8 +9709,8 @@ this variable is set to `off'.

input-meta -
- +
+ If set to `on', Readline will enable eight-bit input (it will not clear the eighth bit in the characters it reads), regardless of what the terminal claims it can support. The @@ -9607,7 +9719,7 @@ synonym for this variable.

isearch-terminators -
+
The string of characters that should terminate an incremental search without subsequently executing the character as a command (see section 8.2.5 Searching for Commands in the History). If this variable has not been given a value, the characters ESC and @@ -9615,7 +9727,7 @@ If this variable has not been given a value, the characters ESC and

keymap -
+
Sets Readline's idea of the current keymap for key binding commands. Acceptable keymap names are emacs, @@ -9638,14 +9750,14 @@ appended. The default is `on'.

mark-modified-lines -
+
This variable, when set to `on', causes Readline to display an asterisk (`*') at the start of history lines which have been modified. This variable is `off' by default.

mark-symlinked-directories -
+
If set to `on', completed names which are symbolic links to directories have a slash appended (subject to the value of mark-directories). @@ -9653,7 +9765,7 @@ The default is `off'.

match-hidden-files -
+
This variable, when set to `on', causes Readline to match files whose names begin with a `.' (hidden files) when performing filename completion, unless the leading `.' is @@ -9662,14 +9774,14 @@ This variable is `on' by default.

output-meta -
+
If set to `on', Readline will display characters with the eighth bit set directly rather than as a meta-prefixed escape sequence. The default is `off'.

page-completions -
+
If set to `on', Readline uses an internal more-like pager to display a screenful of possible completions at a time. This variable is `on' by default. @@ -9682,7 +9794,7 @@ The default is `off'.

revert-all-at-newline -
+
If set to `on', Readline will undo all changes to history lines before returning when accept-line is executed. By default, history lines may be modified and retain individual undo lists across @@ -9690,7 +9802,7 @@ calls to readline. The default is `off'.

show-all-if-ambiguous -
+
This alters the default behavior of the completion functions. If set to `on', words which have more than one possible completion cause the @@ -9699,7 +9811,7 @@ The default value is `off'.

show-all-if-unmodified -
+
This alters the default behavior of the completion functions in a fashion similar to show-all-if-ambiguous. If set to `on', @@ -9710,8 +9822,23 @@ of ringing the bell. The default value is `off'.

+

skip-completed-text +
+If set to `on', this alters the default completion behavior when +inserting a single match into the line. It's only active when +performing completion in the middle of a word. If enabled, readline +does not insert characters from the completion that match characters +after point in the word being completed, so portions of the word +following the cursor are not duplicated. +For instance, if this is enabled, attempting completion when the cursor +is after the `e' in `Makefile' will result in `Makefile' +rather than `Makefilefile', assuming there is a single possible +completion. +The default value is `off'. +

+

visible-stats -
+
If set to `on', a character denoting a file's type is appended to the filename when listing possible completions. The default is `off'. @@ -10135,68 +10262,68 @@ The text between the point and mark is referred to as the region.

8.4.1 Commands For Moving

- +
beginning-of-line (C-a) -
+
Move to the start of the current line.

- +

end-of-line (C-e) -
+
Move to the end of the line.

- +

forward-char (C-f) -
+
Move forward a character.

- +

backward-char (C-b) -
+
Move back a character.

- +

forward-word (M-f) -
+
Move forward to the end of the next word. Words are composed of letters and digits.

- +

backward-word (M-b) -
+
Move back to the start of the current or previous word. Words are composed of letters and digits.

- +

shell-forward-word () -
+
Move forward to the end of the next word. Words are delimited by non-quoted shell metacharacters.

- +

shell-backward-word () -
+
Move back to the start of the current or previous word. Words are delimited by non-quoted shell metacharacters.

- +

clear-screen (C-l) -
+
Clear the screen and redraw the current line, leaving the current line at the top of the screen.

- +

redraw-current-line () -
+
Refresh the current line. By default, this is unbound.

@@ -10222,9 +10349,9 @@ Refresh the current line. By default, this is unbound.

- +
accept-line (Newline or Return) -
+
Accept the line regardless of where the cursor is. If this line is non-empty, add it to the history list according to the setting of @@ -10233,81 +10360,81 @@ If this line is a modified history line, then restore the history line to its original state.

- +

previous-history (C-p) -
+
Move `back' through the history list, fetching the previous command.

- +

next-history (C-n) -
+
Move `forward' through the history list, fetching the next command.

- +

beginning-of-history (M-<) -
+
Move to the first line in the history.

- +

end-of-history (M->) -
+
Move to the end of the input history, i.e., the line currently being entered.

- +

reverse-search-history (C-r) -
+
Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

- +

forward-search-history (C-s) -
+
Search forward starting at the current line and moving `down' through the the history as necessary. This is an incremental search.

- +

non-incremental-reverse-search-history (M-p) -
+
Search backward starting at the current line and moving `up' through the history as necessary using a non-incremental search for a string supplied by the user.

- +

non-incremental-forward-search-history (M-n) -
+
Search forward starting at the current line and moving `down' through the the history as necessary using a non-incremental search for a string supplied by the user.

- +

history-search-forward () -
+
Search forward through the history for the string of characters between the start of the current line and the point. This is a non-incremental search. By default, this command is unbound.

- +

history-search-backward () -
+
Search backward through the history for the string of characters between the start of the current line and the point. This is a non-incremental search. By default, this command is unbound.

- +

yank-nth-arg (M-C-y) -
+
Insert the first argument to the previous command (usually the second word on the previous line) at point. With an argument n, @@ -10318,9 +10445,9 @@ Once the argument n is computed, the argument is extracted as if the `!n' history expansion had been specified.

- +

yank-last-arg (M-. or M-_) -
+
Insert last argument to the previous command (the last word of the previous history entry). With an argument, behave exactly like yank-nth-arg. @@ -10352,46 +10479,46 @@ as if the `!$' history expansion had been specified.

- +
delete-char (C-d) -
+
Delete the character at point. If point is at the beginning of the line, there are no characters in the line, and the last character typed was not bound to delete-char, then return EOF.

- +

backward-delete-char (Rubout) -
+
Delete the character behind the cursor. A numeric argument means to kill the characters instead of deleting them.

- +

forward-backward-delete-char () -
+
Delete the character under the cursor, unless the cursor is at the end of the line, in which case the character behind the cursor is deleted. By default, this is not bound to a key.

- +

quoted-insert (C-q or C-v) -
+
Add the next character typed to the line verbatim. This is how to insert key sequences like C-q, for example.

- +

self-insert (a, b, A, 1, !, ...) -
+
Insert yourself.

- +

transpose-chars (C-t) -
+
Drag the character before the cursor forward over the character at the cursor, moving the cursor forward as well. If the insertion point @@ -10400,39 +10527,39 @@ transposes the last two characters of the line. Negative arguments have no effect.

- +

transpose-words (M-t) -
+
Drag the word before point past the word after point, moving point past that word as well. If the insertion point is at the end of the line, this transposes the last two words on the line.

- +

upcase-word (M-u) -
+
Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move the cursor.

- +

downcase-word (M-l) -
+
Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but do not move the cursor.

- +

capitalize-word (M-c) -
+
Capitalize the current (or following) word. With a negative argument, capitalize the previous word, but do not move the cursor.

- +

overwrite-mode () -
+
Toggle overwrite mode. With an explicit positive numeric argument, switches to overwrite mode. With an explicit non-positive numeric argument, switches to insert mode. This command affects only @@ -10472,121 +10599,121 @@ By default, this command is unbound.
- +
kill-line (C-k) -
+
Kill the text from point to the end of the line.

- +

backward-kill-line (C-x Rubout) -
+
Kill backward to the beginning of the line.

- +

unix-line-discard (C-u) -
+
Kill backward from the cursor to the beginning of the current line.

- +

kill-whole-line () -
+
Kill all characters on the current line, no matter where point is. By default, this is unbound.

- +

kill-word (M-d) -
+
Kill from point to the end of the current word, or if between words, to the end of the next word. Word boundaries are the same as forward-word.

- +

backward-kill-word (M-DEL) -
+
Kill the word behind point. Word boundaries are the same as backward-word.

- +

shell-kill-word () -
+
Kill from point to the end of the current word, or if between words, to the end of the next word. Word boundaries are the same as shell-forward-word.

- +

backward-kill-word () -
+
Kill the word behind point. Word boundaries are the same as shell-backward-word.

- +

unix-word-rubout (C-w) -
+
Kill the word behind point, using white space as a word boundary. The killed text is saved on the kill-ring.

- +

unix-filename-rubout () -
+
Kill the word behind point, using white space and the slash character as the word boundaries. The killed text is saved on the kill-ring.

- +

delete-horizontal-space () -
+
Delete all spaces and tabs around point. By default, this is unbound.

- +

kill-region () -
+
Kill the text in the current region. By default, this command is unbound.

- +

copy-region-as-kill () -
+
Copy the text in the region to the kill buffer, so it can be yanked right away. By default, this command is unbound.

- +

copy-backward-word () -
+
Copy the word before point to the kill buffer. The word boundaries are the same as backward-word. By default, this command is unbound.

- +

copy-forward-word () -
+
Copy the word following point to the kill buffer. The word boundaries are the same as forward-word. By default, this command is unbound.

- +

yank (C-y) -
+
Yank the top of the kill ring into the buffer at point.

- +

yank-pop (M-y) -
+
Rotate the kill-ring, and yank the new top. You can only do this if the prior command is yank or yank-pop.
@@ -10610,16 +10737,16 @@ the prior command is yank or yank-pop.
- +
digit-argument (M-0, M-1, ... M--) -
+
Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument.

- +

universal-argument () -
+
This is another way to specify an argument. If this command is followed by one or more digits, optionally with a leading minus sign, those digits define the argument. @@ -10654,9 +10781,9 @@ By default, this is not bound to a key.

- +
complete (TAB) -
+
Attempt to perform completion on the text before point. The actual completion performed is application-specific. Bash attempts completion treating the text as a variable (if the @@ -10666,22 +10793,22 @@ command (including aliases and functions) in turn. If none of these produces a match, filename completion is attempted.

- +

possible-completions (M-?) -
+
List the possible completions of the text before point.

- +

insert-completions (M-*) -
+
Insert all completions of the text before point that would have been generated by possible-completions.

- +

menu-complete () -
+
Similar to complete, but replaces the word to be completed with a single match from the list of possible completions. Repeated execution of menu-complete steps through the list @@ -10696,9 +10823,17 @@ This command is intended to be bound to TAB, but is unbound by default.

- + +

menu-complete-backward () +
+Identical to menu-complete, but moves backward through the list +of possible completions, as if menu-complete had been given a +negative argument. +

+ +

delete-char-or-list () -
+
Deletes the character under the cursor if not at the beginning or end of the line (like delete-char). If at the end of the line, behaves identically to @@ -10706,64 +10841,64 @@ If at the end of the line, behaves identically to This command is unbound by default.

- +

complete-filename (M-/) -
+
Attempt filename completion on the text before point.

- +

possible-filename-completions (C-x /) -
+
List the possible completions of the text before point, treating it as a filename.

- +

complete-username (M-~) -
+
Attempt completion on the text before point, treating it as a username.

- +

possible-username-completions (C-x ~) -
+
List the possible completions of the text before point, treating it as a username.

- +

complete-variable (M-$) -
+
Attempt completion on the text before point, treating it as a shell variable.

- +

possible-variable-completions (C-x $) -
+
List the possible completions of the text before point, treating it as a shell variable.

- +

complete-hostname (M-@) -
+
Attempt completion on the text before point, treating it as a hostname.

- +

possible-hostname-completions (C-x @) -
+
List the possible completions of the text before point, treating it as a hostname.

- +

complete-command (M-!) -
+
Attempt completion on the text before point, treating it as a command name. Command completion attempts to match the text against aliases, reserved words, shell @@ -10771,32 +10906,32 @@ functions, shell builtins, and finally executable filenames, in that order.

- +

possible-command-completions (C-x !) -
+
List the possible completions of the text before point, treating it as a command name.

- +

dynamic-complete-history (M-TAB) -
+
Attempt completion on the text before point, comparing the text against lines from the history list for possible completion matches.

- +

dabbrev-expand () -
+
Attempt menu completion on the text before point, comparing the text against lines from the history list for possible completion matches.

- +

complete-into-braces (M-{) -
+
Perform filename completion and insert the list of possible completions enclosed within braces so the list is available to the shell (see section 3.5.1 Brace Expansion). @@ -10823,22 +10958,22 @@ enclosed within braces so the list is available to the shell
- +
start-kbd-macro (C-x () -
+
Begin saving the characters typed into the current keyboard macro.

- +

end-kbd-macro (C-x )) -
+
Stop saving the characters typed into the current keyboard macro and save the definition.

- +

call-last-kbd-macro (C-x e) -
+
Re-execute the last keyboard macro defined, by making the characters in the macro appear as if typed at the keyboard.

@@ -10864,87 +10999,99 @@ in the macro appear as if typed at the keyboard.

- +
re-read-init-file (C-x C-r) -
+
Read in the contents of the inputrc file, and incorporate any bindings or variable assignments found there.

- +

abort (C-g) -
+
Abort the current editing command and ring the terminal's bell (subject to the setting of bell-style).

- +

do-uppercase-version (M-a, M-b, M-x, ...) -
+
If the metafied character x is lowercase, run the command that is bound to the corresponding uppercase character.

- +

prefix-meta (ESC) -
+
Metafy the next character typed. This is for keyboards without a meta key. Typing `ESC f' is equivalent to typing M-f.

- +

undo (C-_ or C-x C-u) -
+
Incremental undo, separately remembered for each line.

- +

revert-line (M-r) -
+
Undo all changes made to this line. This is like executing the undo command enough times to get back to the beginning.

- +

tilde-expand (M-&) -
+
Perform tilde expansion on the current word.

- +

set-mark (C-@) -
+
Set the mark to the point. If a numeric argument is supplied, the mark is set to that position.

- +

exchange-point-and-mark (C-x C-x) -
+
Swap the point with the mark. The current cursor position is set to the saved position, and the old cursor position is saved as the mark.

- +

character-search (C-]) -
+
A character is read and point is moved to the next occurrence of that character. A negative count searches for previous occurrences.

- +

character-search-backward (M-C-]) -
+
A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent occurrences.

- + +

skip-csi-sequence () +
+Read enough characters to consume a multi-key sequence such as those +defined for keys like Home and End. Such sequences begin with a +Control Sequence Indicator (CSI), usually ESC-[. If this sequence is +bound to "\e[", keys producing such sequences will have no effect +unless explicitly bound to a readline command, instead of inserting +stray characters into the editing buffer. This is unbound by default, +but usually bound to ESC-[. +

+ +

insert-comment (M-#) -
+
Without a numeric argument, the value of the comment-begin variable is inserted at the beginning of the current line. If a numeric argument is supplied, this command acts as a toggle: if @@ -10959,115 +11106,115 @@ If a numeric argument causes the comment character to be removed, the line will be executed by the shell.

- +

dump-functions () -
+
Print all of the functions and their key bindings to the Readline output stream. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an inputrc file. This command is unbound by default.

- +

dump-variables () -
+
Print all of the settable variables and their values to the Readline output stream. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an inputrc file. This command is unbound by default.

- +

dump-macros () -
+
Print all of the Readline key sequences bound to macros and the strings they output. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an inputrc file. This command is unbound by default.

- +

glob-complete-word (M-g) -
+
The word before point is treated as a pattern for pathname expansion, with an asterisk implicitly appended. This pattern is used to generate a list of matching file names for possible completions.

- +

glob-expand-word (C-x *) -
+
The word before point is treated as a pattern for pathname expansion, and the list of matching file names is inserted, replacing the word. If a numeric argument is supplied, a `*' is appended before pathname expansion.

- +

glob-list-expansions (C-x g) -
+
The list of expansions that would have been generated by glob-expand-word is displayed, and the line is redrawn. If a numeric argument is supplied, a `*' is appended before pathname expansion.

- +

display-shell-version (C-x C-v) -
+
Display version information about the current instance of Bash.

- +

shell-expand-line (M-C-e) -
+
Expand the line as the shell does. This performs alias and history expansion as well as all of the shell word expansions (see section 3.5 Shell Expansions).

- +

history-expand-line (M-^) -
+
Perform history expansion on the current line.

- +

magic-space () -
+
Perform history expansion on the current line and insert a space (see section 9.3 History Expansion).

- +

alias-expand-line () -
+
Perform alias expansion on the current line (see section 6.6 Aliases).

- +

history-and-alias-expand-line () -
+
Perform history and alias expansion on the current line.

- +

insert-last-argument (M-. or M-_) -
+
A synonym for yank-last-arg.

- +

operate-and-get-next (C-o) -
+
Accept the current line for execution and fetch the next line relative to the current line from the history for editing. Any argument is ignored.

- +

edit-and-execute-command (C-xC-e) -
+
Invoke an editor on the current command line, and execute the result as shell commands. Bash attempts to invoke @@ -11143,10 +11290,15 @@ the programmable completion facilities are invoked. First, the command name is identified. If a compspec has been defined for that command, the compspec is used to generate the list of possible completions for the word. +If the command word is the empty string (completion attempted at the +beginning of an empty line), any compspec defined with +the `-E' option to complete is used. If the command word is a full pathname, a compspec for the full pathname is searched for first. If no compspec is found for the full pathname, an attempt is made to find a compspec for the portion following the final slash. +If those searches do not result in a compspec, any compspec defined with +the `-D' option to complete is used as the default.

Once a compspec has been found, it is used to generate the list of @@ -11264,6 +11416,31 @@ the value of the mark-directories Readline variable, regardless of the setting of the mark-symlinked-directories Readline variable.

+There is some support for dynamically modifying completions. This is +most useful when used in combination with a default completion specified +with `-D'. It's possible for shell functions executed as completion +handlers to indicate that completion should be retried by returning an +exit status of 124. If a shell function returns 124, and changes +the compspec associated with the command on which completion is being +attempted (supplied as the first argument when the function is executed), +programmable completion restarts from the beginning, with an +attempt to find a compspec for that command. This allows a set of +completions to be built dynamically as completion is attempted, rather than +being loaded all at once. +

+ +For instance, assuming that there is a library of compspecs, each kept in a +file corresponding to the name of the command, the following default +completion function would load completions dynamically: +

+ +
 
_completion_loader()
+{
+	. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
+}
+complete -D -F _completion_loader
+

+


@@ -11288,7 +11465,7 @@ facilities.
compgen -
+
 
compgen [option] [word]
 

@@ -11314,11 +11491,11 @@ matches were generated.

complete -
-
 
complete [-abcdefgjksuv] [-o comp-option] [-E] [-A action] [-G globpat] [-W wordlist]
+
+
 
complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist]
 [-F function] [-C command] [-X filterpat]
 [-P prefix] [-S suffix] name [name ...]
-complete -pr [-E] [name ...]
+complete -pr [-DE] [name ...]
 

Specify how arguments to each name should be completed. @@ -11328,13 +11505,17 @@ reused as input. The `-r' option removes a completion specification for each name, or, if no names are supplied, all completion specifications. +The `-D' option indicates that the remaining options and actions should +apply to the "default" command completion; that is, completion attempted +on a command for which no completion has previously been defined. The `-E' option indicates that the remaining options and actions should apply to "empty" command completion; that is, completion attempted on a blank line.

The process of applying these completion specifications when word completion -is attempted is described above (see section 8.6 Programmable Completion). +is attempted is described above (see section 8.6 Programmable Completion). The +`-D' option takes precedence over `-E'.

Other options, if specified, have the following meanings. @@ -11548,8 +11729,8 @@ an error occurs adding a completion specification.

compopt -
-
 
compopt [-o option] [+o option] [name]
+
+
 
compopt [-o option] [-DE] [+o option] [name]
 
Modify completion options for each name according to the options, or for the currently-execution completion if no names are supplied. @@ -11557,8 +11738,17 @@ If no options are given, display the completion options for each name or the current completion. The possible values of option are those valid for the complete builtin described above. +The `-D' option indicates that the remaining options should +apply to the "default" command completion; that is, completion attempted +on a command for which no completion has previously been defined. +The `-E' option indicates that the remaining options should +apply to "empty" command completion; that is, completion attempted on a +blank line.

+The `-D' option takes precedence over `-E'. +

+ The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a name for which no completion specification exists, or an output error occurs. @@ -11567,7 +11757,7 @@ specification exists, or an output error occurs.

- +

@@ -11712,7 +11902,7 @@ history list and history file.

fc -
+
 
fc [-e ename] [-lnr] [first] [last]
 fc -s [pat=rep] [command]
 

@@ -11746,7 +11936,7 @@ and typing `r' re-executes the last command (see section +

 
history [n]
 history -c
 history -d offset
@@ -11919,7 +12109,7 @@ writing the history file.
 
 An event designator is a reference to a command line entry in the
 history list.
-
+
 

@@ -12736,6 +12926,11 @@ See 4.2 Bash Builtin Commands, for details of t above under 3.5.8.1 Pattern Matching.

+

--enable-extended-glob-default +
Set the default value of the extglob shell option described +above under 4.3.2 The Shopt Builtin to be enabled. +

+

--enable-help-builtin
Include the help builtin, which displays help on shell builtins and variables (see section 4.2 Bash Builtin Commands). @@ -12862,7 +13057,7 @@ But first, you should make sure that it really is a bug, and that it appears in the latest version of Bash. The latest version of Bash is always available for FTP from -ftp://ftp.gnu.org/pub/bash/. +ftp://ftp.gnu.org/pub/gnu/bash/.

Once you have determined that a bug actually exists, use the @@ -12894,7 +13089,7 @@ the template it provides for filing a bug report.

Please send all reports concerning this manual to -chet@po.CWRU.Edu. +chet.ramey@case.edu.

@@ -13495,12 +13690,12 @@ The SVR4.2 shell behaves differently when invoked as jsh

- Version 1.2, November 2002 + Version 1.3, 3 November 2008

-
 
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
-51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
 
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+http://fsf.org/
 
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.
@@ -13618,6 +13813,10 @@ the text near the most prominent appearance of the work's title,
 preceding the beginning of the body of the text.
 

+The "publisher" means any person or entity that distributes copies +of the Document to the public. +

+ A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a @@ -13931,13 +14130,33 @@ title. TERMINATION

-You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. +

+ +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. +

+ +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. +

+ +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it.

  • @@ -13958,7 +14177,49 @@ following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. +

    + +

  • +RELICENSING +

    + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the +site means any set of copyrightable works thus published on the MMC +site. +

    + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. +

    + +"Incorporate" means to publish or republish a Document, in whole or +in part, as part of another Document. +

    + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole +or in part into the MMC, (1) had no cover texts or invariant sections, +and (2) were thus incorporated prior to November 1, 2008. +

    + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. +

    +

    @@ -13974,7 +14235,7 @@ license notices just after the title page: - + @@ -14115,15 +14376,15 @@ to permit their use in free software. - - - + + + - - + + @@ -14134,8 +14395,8 @@ to permit their use in free software. - - + + @@ -14143,13 +14404,13 @@ to permit their use in free software. - + - + - + @@ -14160,9 +14421,9 @@ to permit their use in free software. - + - + @@ -14176,7 +14437,7 @@ to permit their use in free software. - + @@ -14192,7 +14453,7 @@ to permit their use in free software. - +
     
      Copyright (C)  year  your name.
       Permission is granted to copy, distribute and/or modify this document
    -  under the terms of the GNU Free Documentation License, Version 1.2
    +  under the terms of the GNU Free Documentation License, Version 1.3
       or any later version published by the Free Software Foundation;
       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
       Texts.  A copy of the license is included in the section entitled ``GNU
    @@ -14106,7 +14367,7 @@ to permit their use in free software.
     
    alias4.2 Bash Builtin Commands

    B
    bg7.2 Job Control Builtins
    bg7.2 Job Control Builtins
    bind4.2 Bash Builtin Commands
    break4.1 Bourne Shell Builtins
    builtin4.2 Bash Builtin Commands
    caller4.2 Bash Builtin Commands
    cd4.1 Bourne Shell Builtins
    command4.2 Bash Builtin Commands
    compgen8.7 Programmable Completion Builtins
    complete8.7 Programmable Completion Builtins
    compopt8.7 Programmable Completion Builtins
    compgen8.7 Programmable Completion Builtins
    complete8.7 Programmable Completion Builtins
    compopt8.7 Programmable Completion Builtins
    continue4.1 Bourne Shell Builtins

    D
    declare4.2 Bash Builtin Commands
    dirs6.8.1 Directory Stack Builtins
    disown7.2 Job Control Builtins
    dirs6.8.1 Directory Stack Builtins
    disown7.2 Job Control Builtins

    E
    echo4.2 Bash Builtin Commands
    export4.1 Bourne Shell Builtins

    F
    fc9.2 Bash History Builtins
    fg7.2 Job Control Builtins
    fc9.2 Bash History Builtins
    fg7.2 Job Control Builtins

    G
    getopts4.1 Bourne Shell Builtins
    H
    hash4.1 Bourne Shell Builtins
    help4.2 Bash Builtin Commands
    history9.2 Bash History Builtins
    history9.2 Bash History Builtins

    J
    jobs7.2 Job Control Builtins
    jobs7.2 Job Control Builtins

    K
    kill7.2 Job Control Builtins
    kill7.2 Job Control Builtins

    L
    let4.2 Bash Builtin Commands
    mapfile4.2 Bash Builtin Commands

    P
    popd6.8.1 Directory Stack Builtins
    popd6.8.1 Directory Stack Builtins
    printf4.2 Bash Builtin Commands
    pushd6.8.1 Directory Stack Builtins
    pushd6.8.1 Directory Stack Builtins
    pwd4.1 Bourne Shell Builtins

    R
    shift4.1 Bourne Shell Builtins
    shopt4.3.2 The Shopt Builtin
    source4.2 Bash Builtin Commands
    suspend7.2 Job Control Builtins
    suspend7.2 Job Control Builtins

    T
    test4.1 Bourne Shell Builtins
    unset4.1 Bourne Shell Builtins

    W
    wait7.2 Job Control Builtins
    wait7.2 Job Control Builtins

    - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - + + - - + + - - - - + + + + - - + + - - + + - - - + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - + + - +
    Jump to:   .   @@ -14482,245 +14743,250 @@ to permit their use in free software.
    _3.4.2 Special Parameters

    A
    auto_resume7.3 Job Control Variables
    auto_resume7.3 Job Control Variables
    auto_resume7.3 Job Control Variables
    auto_resume7.3 Job Control Variables

    B
    BASH5.2 Bash Variables
    BASH5.2 Bash Variables
    BASH_ALIASES5.2 Bash Variables
    BASH_ALIASES5.2 Bash Variables
    BASH_ARGC5.2 Bash Variables
    BASH_ARGC5.2 Bash Variables
    BASH_ARGV5.2 Bash Variables
    BASH_ARGV5.2 Bash Variables
    BASH_CMDS5.2 Bash Variables
    BASH_CMDS5.2 Bash Variables
    BASH_COMMAND5.2 Bash Variables
    BASH_COMMAND5.2 Bash Variables
    BASH_ENV5.2 Bash Variables
    BASH_ENV5.2 Bash Variables
    BASH_EXECUTION_STRING5.2 Bash Variables
    BASH_EXECUTION_STRING5.2 Bash Variables
    BASH_LINENO5.2 Bash Variables
    BASH_LINENO5.2 Bash Variables
    BASH_REMATCH5.2 Bash Variables
    BASH_REMATCH5.2 Bash Variables
    BASH_SOURCE5.2 Bash Variables
    BASH_SOURCE5.2 Bash Variables
    BASH_SUBSHELL5.2 Bash Variables
    BASH_SUBSHELL5.2 Bash Variables
    BASH_VERSINFO5.2 Bash Variables
    BASH_VERSINFO5.2 Bash Variables
    BASH_VERSION5.2 Bash Variables
    BASH_VERSION5.2 Bash Variables
    BASHPID5.2 Bash Variables
    BASHPID5.2 Bash Variables
    bell-style8.3.1 Readline Init File Syntax
    bind-tty-special-chars8.3.1 Readline Init File Syntax
    BASH_ALIASES5.2 Bash Variables
    BASH_ALIASES5.2 Bash Variables
    BASH_ARGC5.2 Bash Variables
    BASH_ARGC5.2 Bash Variables
    BASH_ARGV5.2 Bash Variables
    BASH_ARGV5.2 Bash Variables
    BASH_CMDS5.2 Bash Variables
    BASH_CMDS5.2 Bash Variables
    BASH_COMMAND5.2 Bash Variables
    BASH_COMMAND5.2 Bash Variables
    BASH_ENV5.2 Bash Variables
    BASH_ENV5.2 Bash Variables
    BASH_EXECUTION_STRING5.2 Bash Variables
    BASH_EXECUTION_STRING5.2 Bash Variables
    BASH_LINENO5.2 Bash Variables
    BASH_LINENO5.2 Bash Variables
    BASH_REMATCH5.2 Bash Variables
    BASH_REMATCH5.2 Bash Variables
    BASH_SOURCE5.2 Bash Variables
    BASH_SOURCE5.2 Bash Variables
    BASH_SUBSHELL5.2 Bash Variables
    BASH_SUBSHELL5.2 Bash Variables
    BASH_VERSINFO5.2 Bash Variables
    BASH_VERSINFO5.2 Bash Variables
    BASH_VERSION5.2 Bash Variables
    BASH_VERSION5.2 Bash Variables
    BASH_XTRACEFD5.2 Bash Variables
    BASH_XTRACEFD5.2 Bash Variables
    BASHOPTS5.2 Bash Variables
    BASHOPTS5.2 Bash Variables
    BASHPID5.2 Bash Variables
    BASHPID5.2 Bash Variables
    bell-style8.3.1 Readline Init File Syntax
    bind-tty-special-chars8.3.1 Readline Init File Syntax

    C
    CDPATH5.1 Bourne Shell Variables
    CDPATH5.1 Bourne Shell Variables
    COLUMNS5.2 Bash Variables
    COLUMNS5.2 Bash Variables
    comment-begin8.3.1 Readline Init File Syntax
    COMP_CWORD5.2 Bash Variables
    COMP_CWORD5.2 Bash Variables
    COMP_KEY5.2 Bash Variables
    COMP_KEY5.2 Bash Variables
    COMP_LINE5.2 Bash Variables
    COMP_LINE5.2 Bash Variables
    COMP_POINT5.2 Bash Variables
    COMP_POINT5.2 Bash Variables
    COMP_TYPE5.2 Bash Variables
    COMP_TYPE5.2 Bash Variables
    COMP_WORDBREAKS5.2 Bash Variables
    COMP_WORDBREAKS5.2 Bash Variables
    COMP_WORDS5.2 Bash Variables
    COMP_WORDS5.2 Bash Variables
    completion-prefix-display-length8.3.1 Readline Init File Syntax
    completion-query-items8.3.1 Readline Init File Syntax
    COMPREPLY5.2 Bash Variables
    COMPREPLY5.2 Bash Variables
    convert-meta8.3.1 Readline Init File Syntax
    COLUMNS5.2 Bash Variables
    COLUMNS5.2 Bash Variables
    comment-begin8.3.1 Readline Init File Syntax
    COMP_CWORD5.2 Bash Variables
    COMP_CWORD5.2 Bash Variables
    COMP_KEY5.2 Bash Variables
    COMP_KEY5.2 Bash Variables
    COMP_LINE5.2 Bash Variables
    COMP_LINE5.2 Bash Variables
    COMP_POINT5.2 Bash Variables
    COMP_POINT5.2 Bash Variables
    COMP_TYPE5.2 Bash Variables
    COMP_TYPE5.2 Bash Variables
    COMP_WORDBREAKS5.2 Bash Variables
    COMP_WORDBREAKS5.2 Bash Variables
    COMP_WORDS5.2 Bash Variables
    COMP_WORDS5.2 Bash Variables
    completion-prefix-display-length8.3.1 Readline Init File Syntax
    completion-query-items8.3.1 Readline Init File Syntax
    COMPREPLY5.2 Bash Variables
    COMPREPLY5.2 Bash Variables
    convert-meta8.3.1 Readline Init File Syntax

    D
    DIRSTACK5.2 Bash Variables
    DIRSTACK5.2 Bash Variables
    disable-completion8.3.1 Readline Init File Syntax
    DIRSTACK5.2 Bash Variables
    DIRSTACK5.2 Bash Variables
    disable-completion8.3.1 Readline Init File Syntax

    E
    editing-mode8.3.1 Readline Init File Syntax
    EMACS5.2 Bash Variables
    EMACS5.2 Bash Variables
    enable-keypad8.3.1 Readline Init File Syntax
    EUID5.2 Bash Variables
    EUID5.2 Bash Variables
    expand-tilde8.3.1 Readline Init File Syntax
    editing-mode8.3.1 Readline Init File Syntax
    EMACS5.2 Bash Variables
    EMACS5.2 Bash Variables
    enable-keypad8.3.1 Readline Init File Syntax
    EUID5.2 Bash Variables
    EUID5.2 Bash Variables
    expand-tilde8.3.1 Readline Init File Syntax

    F
    FCEDIT5.2 Bash Variables
    FCEDIT5.2 Bash Variables
    FIGNORE5.2 Bash Variables
    FIGNORE5.2 Bash Variables
    FUNCNAME5.2 Bash Variables
    FUNCNAME5.2 Bash Variables
    FCEDIT5.2 Bash Variables
    FCEDIT5.2 Bash Variables
    FIGNORE5.2 Bash Variables
    FIGNORE5.2 Bash Variables
    FUNCNAME5.2 Bash Variables
    FUNCNAME5.2 Bash Variables

    G
    GLOBIGNORE5.2 Bash Variables
    GLOBIGNORE5.2 Bash Variables
    GROUPS5.2 Bash Variables
    GROUPS5.2 Bash Variables
    GLOBIGNORE5.2 Bash Variables
    GLOBIGNORE5.2 Bash Variables
    GROUPS5.2 Bash Variables
    GROUPS5.2 Bash Variables

    H
    histchars5.2 Bash Variables
    histchars5.2 Bash Variables
    HISTCMD5.2 Bash Variables
    HISTCMD5.2 Bash Variables
    HISTCONTROL5.2 Bash Variables
    HISTCONTROL5.2 Bash Variables
    HISTFILE5.2 Bash Variables
    HISTFILE5.2 Bash Variables
    HISTFILESIZE5.2 Bash Variables
    HISTFILESIZE5.2 Bash Variables
    HISTIGNORE5.2 Bash Variables
    HISTIGNORE5.2 Bash Variables
    history-preserve-point8.3.1 Readline Init File Syntax
    history-size8.3.1 Readline Init File Syntax
    HISTSIZE5.2 Bash Variables
    HISTSIZE5.2 Bash Variables
    HISTTIMEFORMAT5.2 Bash Variables
    HISTTIMEFORMAT5.2 Bash Variables
    histchars5.2 Bash Variables
    histchars5.2 Bash Variables
    HISTCMD5.2 Bash Variables
    HISTCMD5.2 Bash Variables
    HISTCONTROL5.2 Bash Variables
    HISTCONTROL5.2 Bash Variables
    HISTFILE5.2 Bash Variables
    HISTFILE5.2 Bash Variables
    HISTFILESIZE5.2 Bash Variables
    HISTFILESIZE5.2 Bash Variables
    HISTIGNORE5.2 Bash Variables
    HISTIGNORE5.2 Bash Variables
    history-preserve-point8.3.1 Readline Init File Syntax
    history-size8.3.1 Readline Init File Syntax
    HISTSIZE5.2 Bash Variables
    HISTSIZE5.2 Bash Variables
    HISTTIMEFORMAT5.2 Bash Variables
    HISTTIMEFORMAT5.2 Bash Variables
    HOME5.1 Bourne Shell Variables
    HOME5.1 Bourne Shell Variables
    horizontal-scroll-mode8.3.1 Readline Init File Syntax
    HOSTFILE5.2 Bash Variables
    HOSTFILE5.2 Bash Variables
    HOSTNAME5.2 Bash Variables
    HOSTNAME5.2 Bash Variables
    HOSTTYPE5.2 Bash Variables
    HOSTTYPE5.2 Bash Variables
    horizontal-scroll-mode8.3.1 Readline Init File Syntax
    HOSTFILE5.2 Bash Variables
    HOSTFILE5.2 Bash Variables
    HOSTNAME5.2 Bash Variables
    HOSTNAME5.2 Bash Variables
    HOSTTYPE5.2 Bash Variables
    HOSTTYPE5.2 Bash Variables

    I
    IFS5.1 Bourne Shell Variables
    IFS5.1 Bourne Shell Variables
    IGNOREEOF5.2 Bash Variables
    IGNOREEOF5.2 Bash Variables
    input-meta8.3.1 Readline Init File Syntax
    INPUTRC5.2 Bash Variables
    INPUTRC5.2 Bash Variables
    isearch-terminators8.3.1 Readline Init File Syntax
    IGNOREEOF5.2 Bash Variables
    IGNOREEOF5.2 Bash Variables
    input-meta8.3.1 Readline Init File Syntax
    INPUTRC5.2 Bash Variables
    INPUTRC5.2 Bash Variables
    isearch-terminators8.3.1 Readline Init File Syntax

    K
    keymap8.3.1 Readline Init File Syntax
    keymap8.3.1 Readline Init File Syntax

    L
    LANG5.2 Bash Variables
    LANG5.2 Bash Variables
    LC_ALL5.2 Bash Variables
    LC_ALL5.2 Bash Variables
    LC_COLLATE5.2 Bash Variables
    LC_COLLATE5.2 Bash Variables
    LC_CTYPE5.2 Bash Variables
    LC_CTYPE5.2 Bash Variables
    LANG5.2 Bash Variables
    LANG5.2 Bash Variables
    LC_ALL5.2 Bash Variables
    LC_ALL5.2 Bash Variables
    LC_COLLATE5.2 Bash Variables
    LC_COLLATE5.2 Bash Variables
    LC_CTYPE5.2 Bash Variables
    LC_CTYPE5.2 Bash Variables
    LC_MESSAGES3.1.2.5 Locale-Specific Translation
    LC_MESSAGES5.2 Bash Variables
    LC_MESSAGES5.2 Bash Variables
    LC_NUMERIC5.2 Bash Variables
    LC_NUMERIC5.2 Bash Variables
    LINENO5.2 Bash Variables
    LINENO5.2 Bash Variables
    LINES5.2 Bash Variables
    LINES5.2 Bash Variables
    LC_MESSAGES5.2 Bash Variables
    LC_MESSAGES5.2 Bash Variables
    LC_NUMERIC5.2 Bash Variables
    LC_NUMERIC5.2 Bash Variables
    LINENO5.2 Bash Variables
    LINENO5.2 Bash Variables
    LINES5.2 Bash Variables
    LINES5.2 Bash Variables

    M
    MACHTYPE5.2 Bash Variables
    MACHTYPE5.2 Bash Variables
    MACHTYPE5.2 Bash Variables
    MACHTYPE5.2 Bash Variables
    MAIL5.1 Bourne Shell Variables
    MAIL5.1 Bourne Shell Variables
    MAILCHECK5.2 Bash Variables
    MAILCHECK5.2 Bash Variables
    MAILCHECK5.2 Bash Variables
    MAILCHECK5.2 Bash Variables
    MAILPATH5.1 Bourne Shell Variables
    MAILPATH5.1 Bourne Shell Variables
    mark-modified-lines8.3.1 Readline Init File Syntax
    mark-symlinked-directories8.3.1 Readline Init File Syntax
    match-hidden-files8.3.1 Readline Init File Syntax
    meta-flag8.3.1 Readline Init File Syntax
    mark-modified-lines8.3.1 Readline Init File Syntax
    mark-symlinked-directories8.3.1 Readline Init File Syntax
    match-hidden-files8.3.1 Readline Init File Syntax
    meta-flag8.3.1 Readline Init File Syntax

    O
    OLDPWD5.2 Bash Variables
    OLDPWD5.2 Bash Variables
    OLDPWD5.2 Bash Variables
    OLDPWD5.2 Bash Variables
    OPTARG5.1 Bourne Shell Variables
    OPTARG5.1 Bourne Shell Variables
    OPTERR5.2 Bash Variables
    OPTERR5.2 Bash Variables
    OPTERR5.2 Bash Variables
    OPTERR5.2 Bash Variables
    OPTIND5.1 Bourne Shell Variables
    OPTIND5.1 Bourne Shell Variables
    OSTYPE5.2 Bash Variables
    OSTYPE5.2 Bash Variables
    output-meta8.3.1 Readline Init File Syntax
    OSTYPE5.2 Bash Variables
    OSTYPE5.2 Bash Variables
    output-meta8.3.1 Readline Init File Syntax

    P
    page-completions8.3.1 Readline Init File Syntax
    page-completions8.3.1 Readline Init File Syntax
    PATH5.1 Bourne Shell Variables
    PATH5.1 Bourne Shell Variables
    PIPESTATUS5.2 Bash Variables
    PIPESTATUS5.2 Bash Variables
    POSIXLY_CORRECT5.2 Bash Variables
    POSIXLY_CORRECT5.2 Bash Variables
    PPID5.2 Bash Variables
    PPID5.2 Bash Variables
    PROMPT_COMMAND5.2 Bash Variables
    PROMPT_COMMAND5.2 Bash Variables
    PROMPT_DIRTRIM5.2 Bash Variables
    PROMPT_DIRTRIM5.2 Bash Variables
    PIPESTATUS5.2 Bash Variables
    PIPESTATUS5.2 Bash Variables
    POSIXLY_CORRECT5.2 Bash Variables
    POSIXLY_CORRECT5.2 Bash Variables
    PPID5.2 Bash Variables
    PPID5.2 Bash Variables
    PROMPT_COMMAND5.2 Bash Variables
    PROMPT_COMMAND5.2 Bash Variables
    PROMPT_DIRTRIM5.2 Bash Variables
    PROMPT_DIRTRIM5.2 Bash Variables
    PS15.1 Bourne Shell Variables
    PS15.1 Bourne Shell Variables
    PS25.1 Bourne Shell Variables
    PS25.1 Bourne Shell Variables
    PS35.2 Bash Variables
    PS35.2 Bash Variables
    PS45.2 Bash Variables
    PS45.2 Bash Variables
    PWD5.2 Bash Variables
    PWD5.2 Bash Variables
    PS35.2 Bash Variables
    PS35.2 Bash Variables
    PS45.2 Bash Variables
    PS45.2 Bash Variables
    PWD5.2 Bash Variables
    PWD5.2 Bash Variables

    R
    RANDOM5.2 Bash Variables
    RANDOM5.2 Bash Variables
    REPLY5.2 Bash Variables
    REPLY5.2 Bash Variables
    revert-all-at-newline8.3.1 Readline Init File Syntax
    RANDOM5.2 Bash Variables
    RANDOM5.2 Bash Variables
    REPLY5.2 Bash Variables
    REPLY5.2 Bash Variables
    revert-all-at-newline8.3.1 Readline Init File Syntax

    S
    SECONDS5.2 Bash Variables
    SECONDS5.2 Bash Variables
    SHELL5.2 Bash Variables
    SHELL5.2 Bash Variables
    SHELLOPTS5.2 Bash Variables
    SHELLOPTS5.2 Bash Variables
    SHLVL5.2 Bash Variables
    SHLVL5.2 Bash Variables
    show-all-if-ambiguous8.3.1 Readline Init File Syntax
    show-all-if-unmodified8.3.1 Readline Init File Syntax
    SECONDS5.2 Bash Variables
    SECONDS5.2 Bash Variables
    SHELL5.2 Bash Variables
    SHELL5.2 Bash Variables
    SHELLOPTS5.2 Bash Variables
    SHELLOPTS5.2 Bash Variables
    SHLVL5.2 Bash Variables
    SHLVL5.2 Bash Variables
    show-all-if-ambiguous8.3.1 Readline Init File Syntax
    show-all-if-unmodified8.3.1 Readline Init File Syntax
    skip-completed-text8.3.1 Readline Init File Syntax

    T
    TEXTDOMAIN3.1.2.5 Locale-Specific Translation
    TEXTDOMAINDIR3.1.2.5 Locale-Specific Translation
    TIMEFORMAT5.2 Bash Variables
    TIMEFORMAT5.2 Bash Variables
    TMOUT5.2 Bash Variables
    TMOUT5.2 Bash Variables
    TMPDIR5.2 Bash Variables
    TMPDIR5.2 Bash Variables
    TIMEFORMAT5.2 Bash Variables
    TIMEFORMAT5.2 Bash Variables
    TMOUT5.2 Bash Variables
    TMOUT5.2 Bash Variables
    TMPDIR5.2 Bash Variables
    TMPDIR5.2 Bash Variables

    U
    UID5.2 Bash Variables
    UID5.2 Bash Variables
    UID5.2 Bash Variables
    UID5.2 Bash Variables

    V
    visible-stats8.3.1 Readline Init File Syntax
    visible-stats8.3.1 Readline Init File Syntax

    - - - - - - + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + +
    Jump to:   !   @@ -14842,246 +15108,250 @@ to permit their use in free software.
    Index Entry Section

    A
    abort (C-g)8.4.8 Some Miscellaneous Commands
    abort (C-g)8.4.8 Some Miscellaneous Commands
    accept-line (Newline or Return)8.4.2 Commands For Manipulating The History
    accept-line (Newline or Return)8.4.2 Commands For Manipulating The History
    alias-expand-line ()8.4.8 Some Miscellaneous Commands
    alias-expand-line ()8.4.8 Some Miscellaneous Commands
    abort (C-g)8.4.8 Some Miscellaneous Commands
    abort (C-g)8.4.8 Some Miscellaneous Commands
    accept-line (Newline or Return)8.4.2 Commands For Manipulating The History
    accept-line (Newline or Return)8.4.2 Commands For Manipulating The History
    alias-expand-line ()8.4.8 Some Miscellaneous Commands
    alias-expand-line ()8.4.8 Some Miscellaneous Commands

    B
    backward-char (C-b)8.4.1 Commands For Moving
    backward-char (C-b)8.4.1 Commands For Moving
    backward-delete-char (Rubout)8.4.3 Commands For Changing Text
    backward-delete-char (Rubout)8.4.3 Commands For Changing Text
    backward-kill-line (C-x Rubout)8.4.4 Killing And Yanking
    backward-kill-line (C-x Rubout)8.4.4 Killing And Yanking
    backward-kill-word ()8.4.4 Killing And Yanking
    backward-kill-word ()8.4.4 Killing And Yanking
    backward-kill-word (M-DEL)8.4.4 Killing And Yanking
    backward-kill-word (M-DEL)8.4.4 Killing And Yanking
    backward-word (M-b)8.4.1 Commands For Moving
    backward-word (M-b)8.4.1 Commands For Moving
    beginning-of-history (M-&#60;)8.4.2 Commands For Manipulating The History
    beginning-of-history (M-&#60;)8.4.2 Commands For Manipulating The History
    beginning-of-line (C-a)8.4.1 Commands For Moving
    beginning-of-line (C-a)8.4.1 Commands For Moving
    backward-char (C-b)8.4.1 Commands For Moving
    backward-char (C-b)8.4.1 Commands For Moving
    backward-delete-char (Rubout)8.4.3 Commands For Changing Text
    backward-delete-char (Rubout)8.4.3 Commands For Changing Text
    backward-kill-line (C-x Rubout)8.4.4 Killing And Yanking
    backward-kill-line (C-x Rubout)8.4.4 Killing And Yanking
    backward-kill-word ()8.4.4 Killing And Yanking
    backward-kill-word ()8.4.4 Killing And Yanking
    backward-kill-word (M-DEL)8.4.4 Killing And Yanking
    backward-kill-word (M-DEL)8.4.4 Killing And Yanking
    backward-word (M-b)8.4.1 Commands For Moving
    backward-word (M-b)8.4.1 Commands For Moving
    beginning-of-history (M-&#60;)8.4.2 Commands For Manipulating The History
    beginning-of-history (M-&#60;)8.4.2 Commands For Manipulating The History
    beginning-of-line (C-a)8.4.1 Commands For Moving
    beginning-of-line (C-a)8.4.1 Commands For Moving

    C
    call-last-kbd-macro (C-x e)8.4.7 Keyboard Macros
    call-last-kbd-macro (C-x e)8.4.7 Keyboard Macros
    capitalize-word (M-c)8.4.3 Commands For Changing Text
    capitalize-word (M-c)8.4.3 Commands For Changing Text
    character-search (C-])8.4.8 Some Miscellaneous Commands
    character-search (C-])8.4.8 Some Miscellaneous Commands
    character-search-backward (M-C-])8.4.8 Some Miscellaneous Commands
    character-search-backward (M-C-])8.4.8 Some Miscellaneous Commands
    clear-screen (C-l)8.4.1 Commands For Moving
    clear-screen (C-l)8.4.1 Commands For Moving
    complete (TAB)8.4.6 Letting Readline Type For You
    complete (TAB)8.4.6 Letting Readline Type For You
    complete-command (M-!)8.4.6 Letting Readline Type For You
    complete-command (M-!)8.4.6 Letting Readline Type For You
    complete-filename (M-/)8.4.6 Letting Readline Type For You
    complete-filename (M-/)8.4.6 Letting Readline Type For You
    complete-hostname (M-@)8.4.6 Letting Readline Type For You
    complete-hostname (M-@)8.4.6 Letting Readline Type For You
    complete-into-braces (M-{)8.4.6 Letting Readline Type For You
    complete-into-braces (M-{)8.4.6 Letting Readline Type For You
    complete-username (M-~)8.4.6 Letting Readline Type For You
    complete-username (M-~)8.4.6 Letting Readline Type For You
    complete-variable (M-$)8.4.6 Letting Readline Type For You
    complete-variable (M-$)8.4.6 Letting Readline Type For You
    copy-backward-word ()8.4.4 Killing And Yanking
    copy-backward-word ()8.4.4 Killing And Yanking
    copy-forward-word ()8.4.4 Killing And Yanking
    copy-forward-word ()8.4.4 Killing And Yanking
    copy-region-as-kill ()8.4.4 Killing And Yanking
    copy-region-as-kill ()8.4.4 Killing And Yanking
    call-last-kbd-macro (C-x e)8.4.7 Keyboard Macros
    call-last-kbd-macro (C-x e)8.4.7 Keyboard Macros
    capitalize-word (M-c)8.4.3 Commands For Changing Text
    capitalize-word (M-c)8.4.3 Commands For Changing Text
    character-search (C-])8.4.8 Some Miscellaneous Commands
    character-search (C-])8.4.8 Some Miscellaneous Commands
    character-search-backward (M-C-])8.4.8 Some Miscellaneous Commands
    character-search-backward (M-C-])8.4.8 Some Miscellaneous Commands
    clear-screen (C-l)8.4.1 Commands For Moving
    clear-screen (C-l)8.4.1 Commands For Moving
    complete (TAB)8.4.6 Letting Readline Type For You
    complete (TAB)8.4.6 Letting Readline Type For You
    complete-command (M-!)8.4.6 Letting Readline Type For You
    complete-command (M-!)8.4.6 Letting Readline Type For You
    complete-filename (M-/)8.4.6 Letting Readline Type For You
    complete-filename (M-/)8.4.6 Letting Readline Type For You
    complete-hostname (M-@)8.4.6 Letting Readline Type For You
    complete-hostname (M-@)8.4.6 Letting Readline Type For You
    complete-into-braces (M-{)8.4.6 Letting Readline Type For You
    complete-into-braces (M-{)8.4.6 Letting Readline Type For You
    complete-username (M-~)8.4.6 Letting Readline Type For You
    complete-username (M-~)8.4.6 Letting Readline Type For You
    complete-variable (M-$)8.4.6 Letting Readline Type For You
    complete-variable (M-$)8.4.6 Letting Readline Type For You
    copy-backward-word ()8.4.4 Killing And Yanking
    copy-backward-word ()8.4.4 Killing And Yanking
    copy-forward-word ()8.4.4 Killing And Yanking
    copy-forward-word ()8.4.4 Killing And Yanking
    copy-region-as-kill ()8.4.4 Killing And Yanking
    copy-region-as-kill ()8.4.4 Killing And Yanking

    D
    dabbrev-expand ()8.4.6 Letting Readline Type For You
    dabbrev-expand ()8.4.6 Letting Readline Type For You
    delete-char (C-d)8.4.3 Commands For Changing Text
    delete-char (C-d)8.4.3 Commands For Changing Text
    delete-char-or-list ()8.4.6 Letting Readline Type For You
    delete-char-or-list ()8.4.6 Letting Readline Type For You
    delete-horizontal-space ()8.4.4 Killing And Yanking
    delete-horizontal-space ()8.4.4 Killing And Yanking
    digit-argument (M-0, M-1, <small>...</small> M--)8.4.5 Specifying Numeric Arguments
    digit-argument (M-0, M-1, <small>...</small> M--)8.4.5 Specifying Numeric Arguments
    display-shell-version (C-x C-v)8.4.8 Some Miscellaneous Commands
    display-shell-version (C-x C-v)8.4.8 Some Miscellaneous Commands
    do-uppercase-version (M-a, M-b, M-x, <small>...</small>)8.4.8 Some Miscellaneous Commands
    do-uppercase-version (M-a, M-b, M-x, <small>...</small>)8.4.8 Some Miscellaneous Commands
    downcase-word (M-l)8.4.3 Commands For Changing Text
    downcase-word (M-l)8.4.3 Commands For Changing Text
    dump-functions ()8.4.8 Some Miscellaneous Commands
    dump-functions ()8.4.8 Some Miscellaneous Commands
    dump-macros ()8.4.8 Some Miscellaneous Commands
    dump-macros ()8.4.8 Some Miscellaneous Commands
    dump-variables ()8.4.8 Some Miscellaneous Commands
    dump-variables ()8.4.8 Some Miscellaneous Commands
    dynamic-complete-history (M-TAB)8.4.6 Letting Readline Type For You
    dynamic-complete-history (M-TAB)8.4.6 Letting Readline Type For You
    dabbrev-expand ()8.4.6 Letting Readline Type For You
    dabbrev-expand ()8.4.6 Letting Readline Type For You
    delete-char (C-d)8.4.3 Commands For Changing Text
    delete-char (C-d)8.4.3 Commands For Changing Text
    delete-char-or-list ()8.4.6 Letting Readline Type For You
    delete-char-or-list ()8.4.6 Letting Readline Type For You
    delete-horizontal-space ()8.4.4 Killing And Yanking
    delete-horizontal-space ()8.4.4 Killing And Yanking
    digit-argument (M-0, M-1, <small>...</small> M--)8.4.5 Specifying Numeric Arguments
    digit-argument (M-0, M-1, <small>...</small> M--)8.4.5 Specifying Numeric Arguments
    display-shell-version (C-x C-v)8.4.8 Some Miscellaneous Commands
    display-shell-version (C-x C-v)8.4.8 Some Miscellaneous Commands
    do-uppercase-version (M-a, M-b, M-x, <small>...</small>)8.4.8 Some Miscellaneous Commands
    do-uppercase-version (M-a, M-b, M-x, <small>...</small>)8.4.8 Some Miscellaneous Commands
    downcase-word (M-l)8.4.3 Commands For Changing Text
    downcase-word (M-l)8.4.3 Commands For Changing Text
    dump-functions ()8.4.8 Some Miscellaneous Commands
    dump-functions ()8.4.8 Some Miscellaneous Commands
    dump-macros ()8.4.8 Some Miscellaneous Commands
    dump-macros ()8.4.8 Some Miscellaneous Commands
    dump-variables ()8.4.8 Some Miscellaneous Commands
    dump-variables ()8.4.8 Some Miscellaneous Commands
    dynamic-complete-history (M-TAB)8.4.6 Letting Readline Type For You
    dynamic-complete-history (M-TAB)8.4.6 Letting Readline Type For You

    E
    edit-and-execute-command (C-xC-e)8.4.8 Some Miscellaneous Commands
    edit-and-execute-command (C-xC-e)8.4.8 Some Miscellaneous Commands
    end-kbd-macro (C-x ))8.4.7 Keyboard Macros
    end-kbd-macro (C-x ))8.4.7 Keyboard Macros
    end-of-history (M-&#62;)8.4.2 Commands For Manipulating The History
    end-of-history (M-&#62;)8.4.2 Commands For Manipulating The History
    end-of-line (C-e)8.4.1 Commands For Moving
    end-of-line (C-e)8.4.1 Commands For Moving
    exchange-point-and-mark (C-x C-x)8.4.8 Some Miscellaneous Commands
    exchange-point-and-mark (C-x C-x)8.4.8 Some Miscellaneous Commands
    edit-and-execute-command (C-xC-e)8.4.8 Some Miscellaneous Commands
    edit-and-execute-command (C-xC-e)8.4.8 Some Miscellaneous Commands
    end-kbd-macro (C-x ))8.4.7 Keyboard Macros
    end-kbd-macro (C-x ))8.4.7 Keyboard Macros
    end-of-history (M-&#62;)8.4.2 Commands For Manipulating The History
    end-of-history (M-&#62;)8.4.2 Commands For Manipulating The History
    end-of-line (C-e)8.4.1 Commands For Moving
    end-of-line (C-e)8.4.1 Commands For Moving
    exchange-point-and-mark (C-x C-x)8.4.8 Some Miscellaneous Commands
    exchange-point-and-mark (C-x C-x)8.4.8 Some Miscellaneous Commands

    F
    forward-backward-delete-char ()8.4.3 Commands For Changing Text
    forward-backward-delete-char ()8.4.3 Commands For Changing Text
    forward-char (C-f)8.4.1 Commands For Moving
    forward-char (C-f)8.4.1 Commands For Moving
    forward-search-history (C-s)8.4.2 Commands For Manipulating The History
    forward-search-history (C-s)8.4.2 Commands For Manipulating The History
    forward-word (M-f)8.4.1 Commands For Moving
    forward-word (M-f)8.4.1 Commands For Moving
    forward-backward-delete-char ()8.4.3 Commands For Changing Text
    forward-backward-delete-char ()8.4.3 Commands For Changing Text
    forward-char (C-f)8.4.1 Commands For Moving
    forward-char (C-f)8.4.1 Commands For Moving
    forward-search-history (C-s)8.4.2 Commands For Manipulating The History
    forward-search-history (C-s)8.4.2 Commands For Manipulating The History
    forward-word (M-f)8.4.1 Commands For Moving
    forward-word (M-f)8.4.1 Commands For Moving

    G
    glob-complete-word (M-g)8.4.8 Some Miscellaneous Commands
    glob-complete-word (M-g)8.4.8 Some Miscellaneous Commands
    glob-expand-word (C-x *)8.4.8 Some Miscellaneous Commands
    glob-expand-word (C-x *)8.4.8 Some Miscellaneous Commands
    glob-list-expansions (C-x g)8.4.8 Some Miscellaneous Commands
    glob-list-expansions (C-x g)8.4.8 Some Miscellaneous Commands
    glob-complete-word (M-g)8.4.8 Some Miscellaneous Commands
    glob-complete-word (M-g)8.4.8 Some Miscellaneous Commands
    glob-expand-word (C-x *)8.4.8 Some Miscellaneous Commands
    glob-expand-word (C-x *)8.4.8 Some Miscellaneous Commands
    glob-list-expansions (C-x g)8.4.8 Some Miscellaneous Commands
    glob-list-expansions (C-x g)8.4.8 Some Miscellaneous Commands

    H
    history-and-alias-expand-line ()8.4.8 Some Miscellaneous Commands
    history-and-alias-expand-line ()8.4.8 Some Miscellaneous Commands
    history-expand-line (M-^)8.4.8 Some Miscellaneous Commands
    history-expand-line (M-^)8.4.8 Some Miscellaneous Commands
    history-search-backward ()8.4.2 Commands For Manipulating The History
    history-search-backward ()8.4.2 Commands For Manipulating The History
    history-search-forward ()8.4.2 Commands For Manipulating The History
    history-search-forward ()8.4.2 Commands For Manipulating The History
    history-and-alias-expand-line ()8.4.8 Some Miscellaneous Commands
    history-and-alias-expand-line ()8.4.8 Some Miscellaneous Commands
    history-expand-line (M-^)8.4.8 Some Miscellaneous Commands
    history-expand-line (M-^)8.4.8 Some Miscellaneous Commands
    history-search-backward ()8.4.2 Commands For Manipulating The History
    history-search-backward ()8.4.2 Commands For Manipulating The History
    history-search-forward ()8.4.2 Commands For Manipulating The History
    history-search-forward ()8.4.2 Commands For Manipulating The History

    I
    insert-comment (M-#)8.4.8 Some Miscellaneous Commands
    insert-comment (M-#)8.4.8 Some Miscellaneous Commands
    insert-completions (M-*)8.4.6 Letting Readline Type For You
    insert-completions (M-*)8.4.6 Letting Readline Type For You
    insert-last-argument (M-. or M-_)8.4.8 Some Miscellaneous Commands
    insert-last-argument (M-. or M-_)8.4.8 Some Miscellaneous Commands
    insert-comment (M-#)8.4.8 Some Miscellaneous Commands
    insert-comment (M-#)8.4.8 Some Miscellaneous Commands
    insert-completions (M-*)8.4.6 Letting Readline Type For You
    insert-completions (M-*)8.4.6 Letting Readline Type For You
    insert-last-argument (M-. or M-_)8.4.8 Some Miscellaneous Commands
    insert-last-argument (M-. or M-_)8.4.8 Some Miscellaneous Commands

    K
    kill-line (C-k)8.4.4 Killing And Yanking
    kill-line (C-k)8.4.4 Killing And Yanking
    kill-region ()8.4.4 Killing And Yanking
    kill-region ()8.4.4 Killing And Yanking
    kill-whole-line ()8.4.4 Killing And Yanking
    kill-whole-line ()8.4.4 Killing And Yanking
    kill-word (M-d)8.4.4 Killing And Yanking
    kill-word (M-d)8.4.4 Killing And Yanking
    kill-line (C-k)8.4.4 Killing And Yanking
    kill-line (C-k)8.4.4 Killing And Yanking
    kill-region ()8.4.4 Killing And Yanking
    kill-region ()8.4.4 Killing And Yanking
    kill-whole-line ()8.4.4 Killing And Yanking
    kill-whole-line ()8.4.4 Killing And Yanking
    kill-word (M-d)8.4.4 Killing And Yanking
    kill-word (M-d)8.4.4 Killing And Yanking

    M
    magic-space ()8.4.8 Some Miscellaneous Commands
    magic-space ()8.4.8 Some Miscellaneous Commands
    menu-complete ()8.4.6 Letting Readline Type For You
    menu-complete ()8.4.6 Letting Readline Type For You
    magic-space ()8.4.8 Some Miscellaneous Commands
    magic-space ()8.4.8 Some Miscellaneous Commands
    menu-complete ()8.4.6 Letting Readline Type For You
    menu-complete ()8.4.6 Letting Readline Type For You
    menu-complete-backward ()8.4.6 Letting Readline Type For You
    menu-complete-backward ()8.4.6 Letting Readline Type For You

    N
    next-history (C-n)8.4.2 Commands For Manipulating The History
    next-history (C-n)8.4.2 Commands For Manipulating The History
    non-incremental-forward-search-history (M-n)8.4.2 Commands For Manipulating The History
    non-incremental-forward-search-history (M-n)8.4.2 Commands For Manipulating The History
    non-incremental-reverse-search-history (M-p)8.4.2 Commands For Manipulating The History
    non-incremental-reverse-search-history (M-p)8.4.2 Commands For Manipulating The History
    next-history (C-n)8.4.2 Commands For Manipulating The History
    next-history (C-n)8.4.2 Commands For Manipulating The History
    non-incremental-forward-search-history (M-n)8.4.2 Commands For Manipulating The History
    non-incremental-forward-search-history (M-n)8.4.2 Commands For Manipulating The History
    non-incremental-reverse-search-history (M-p)8.4.2 Commands For Manipulating The History
    non-incremental-reverse-search-history (M-p)8.4.2 Commands For Manipulating The History

    O
    operate-and-get-next (C-o)8.4.8 Some Miscellaneous Commands
    operate-and-get-next (C-o)8.4.8 Some Miscellaneous Commands
    overwrite-mode ()8.4.3 Commands For Changing Text
    overwrite-mode ()8.4.3 Commands For Changing Text
    operate-and-get-next (C-o)8.4.8 Some Miscellaneous Commands
    operate-and-get-next (C-o)8.4.8 Some Miscellaneous Commands
    overwrite-mode ()8.4.3 Commands For Changing Text
    overwrite-mode ()8.4.3 Commands For Changing Text

    P
    possible-command-completions (C-x !)8.4.6 Letting Readline Type For You
    possible-command-completions (C-x !)8.4.6 Letting Readline Type For You
    possible-completions (M-?)8.4.6 Letting Readline Type For You
    possible-completions (M-?)8.4.6 Letting Readline Type For You
    possible-filename-completions (C-x /)8.4.6 Letting Readline Type For You
    possible-filename-completions (C-x /)8.4.6 Letting Readline Type For You
    possible-hostname-completions (C-x @)8.4.6 Letting Readline Type For You
    possible-hostname-completions (C-x @)8.4.6 Letting Readline Type For You
    possible-username-completions (C-x ~)8.4.6 Letting Readline Type For You
    possible-username-completions (C-x ~)8.4.6 Letting Readline Type For You
    possible-variable-completions (C-x $)8.4.6 Letting Readline Type For You
    possible-variable-completions (C-x $)8.4.6 Letting Readline Type For You
    prefix-meta (ESC)8.4.8 Some Miscellaneous Commands
    prefix-meta (ESC)8.4.8 Some Miscellaneous Commands
    previous-history (C-p)8.4.2 Commands For Manipulating The History
    previous-history (C-p)8.4.2 Commands For Manipulating The History
    possible-command-completions (C-x !)8.4.6 Letting Readline Type For You
    possible-command-completions (C-x !)8.4.6 Letting Readline Type For You
    possible-completions (M-?)8.4.6 Letting Readline Type For You
    possible-completions (M-?)8.4.6 Letting Readline Type For You
    possible-filename-completions (C-x /)8.4.6 Letting Readline Type For You
    possible-filename-completions (C-x /)8.4.6 Letting Readline Type For You
    possible-hostname-completions (C-x @)8.4.6 Letting Readline Type For You
    possible-hostname-completions (C-x @)8.4.6 Letting Readline Type For You
    possible-username-completions (C-x ~)8.4.6 Letting Readline Type For You
    possible-username-completions (C-x ~)8.4.6 Letting Readline Type For You
    possible-variable-completions (C-x $)8.4.6 Letting Readline Type For You
    possible-variable-completions (C-x $)8.4.6 Letting Readline Type For You
    prefix-meta (ESC)8.4.8 Some Miscellaneous Commands
    prefix-meta (ESC)8.4.8 Some Miscellaneous Commands
    previous-history (C-p)8.4.2 Commands For Manipulating The History
    previous-history (C-p)8.4.2 Commands For Manipulating The History

    Q
    quoted-insert (C-q or C-v)8.4.3 Commands For Changing Text
    quoted-insert (C-q or C-v)8.4.3 Commands For Changing Text
    quoted-insert (C-q or C-v)8.4.3 Commands For Changing Text
    quoted-insert (C-q or C-v)8.4.3 Commands For Changing Text

    R
    re-read-init-file (C-x C-r)8.4.8 Some Miscellaneous Commands
    re-read-init-file (C-x C-r)8.4.8 Some Miscellaneous Commands
    redraw-current-line ()8.4.1 Commands For Moving
    redraw-current-line ()8.4.1 Commands For Moving
    reverse-search-history (C-r)8.4.2 Commands For Manipulating The History
    reverse-search-history (C-r)8.4.2 Commands For Manipulating The History
    revert-line (M-r)8.4.8 Some Miscellaneous Commands
    revert-line (M-r)8.4.8 Some Miscellaneous Commands
    re-read-init-file (C-x C-r)8.4.8 Some Miscellaneous Commands
    re-read-init-file (C-x C-r)8.4.8 Some Miscellaneous Commands
    redraw-current-line ()8.4.1 Commands For Moving
    redraw-current-line ()8.4.1 Commands For Moving
    reverse-search-history (C-r)8.4.2 Commands For Manipulating The History
    reverse-search-history (C-r)8.4.2 Commands For Manipulating The History
    revert-line (M-r)8.4.8 Some Miscellaneous Commands
    revert-line (M-r)8.4.8 Some Miscellaneous Commands

    S
    self-insert (a, b, A, 1, !, <small>...</small>)8.4.3 Commands For Changing Text
    self-insert (a, b, A, 1, !, <small>...</small>)8.4.3 Commands For Changing Text
    set-mark (C-@)8.4.8 Some Miscellaneous Commands
    set-mark (C-@)8.4.8 Some Miscellaneous Commands
    shell-backward-word ()8.4.1 Commands For Moving
    shell-backward-word ()8.4.1 Commands For Moving
    shell-expand-line (M-C-e)8.4.8 Some Miscellaneous Commands
    shell-expand-line (M-C-e)8.4.8 Some Miscellaneous Commands
    shell-forward-word ()8.4.1 Commands For Moving
    shell-forward-word ()8.4.1 Commands For Moving
    shell-kill-word ()8.4.4 Killing And Yanking
    shell-kill-word ()8.4.4 Killing And Yanking
    start-kbd-macro (C-x ()8.4.7 Keyboard Macros
    start-kbd-macro (C-x ()8.4.7 Keyboard Macros
    self-insert (a, b, A, 1, !, <small>...</small>)8.4.3 Commands For Changing Text
    self-insert (a, b, A, 1, !, <small>...</small>)8.4.3 Commands For Changing Text
    set-mark (C-@)8.4.8 Some Miscellaneous Commands
    set-mark (C-@)8.4.8 Some Miscellaneous Commands
    shell-backward-word ()8.4.1 Commands For Moving
    shell-backward-word ()8.4.1 Commands For Moving
    shell-expand-line (M-C-e)8.4.8 Some Miscellaneous Commands
    shell-expand-line (M-C-e)8.4.8 Some Miscellaneous Commands
    shell-forward-word ()8.4.1 Commands For Moving
    shell-forward-word ()8.4.1 Commands For Moving
    shell-kill-word ()8.4.4 Killing And Yanking
    shell-kill-word ()8.4.4 Killing And Yanking
    skip-csi-sequence ()8.4.8 Some Miscellaneous Commands
    skip-csi-sequence ()8.4.8 Some Miscellaneous Commands
    start-kbd-macro (C-x ()8.4.7 Keyboard Macros
    start-kbd-macro (C-x ()8.4.7 Keyboard Macros

    T
    tilde-expand (M-&#38;)8.4.8 Some Miscellaneous Commands
    tilde-expand (M-&#38;)8.4.8 Some Miscellaneous Commands
    transpose-chars (C-t)8.4.3 Commands For Changing Text
    transpose-chars (C-t)8.4.3 Commands For Changing Text
    transpose-words (M-t)8.4.3 Commands For Changing Text
    transpose-words (M-t)8.4.3 Commands For Changing Text
    tilde-expand (M-&#38;)8.4.8 Some Miscellaneous Commands
    tilde-expand (M-&#38;)8.4.8 Some Miscellaneous Commands
    transpose-chars (C-t)8.4.3 Commands For Changing Text
    transpose-chars (C-t)8.4.3 Commands For Changing Text
    transpose-words (M-t)8.4.3 Commands For Changing Text
    transpose-words (M-t)8.4.3 Commands For Changing Text

    U
    undo (C-_ or C-x C-u)8.4.8 Some Miscellaneous Commands
    undo (C-_ or C-x C-u)8.4.8 Some Miscellaneous Commands
    universal-argument ()8.4.5 Specifying Numeric Arguments
    universal-argument ()8.4.5 Specifying Numeric Arguments
    unix-filename-rubout ()8.4.4 Killing And Yanking
    unix-filename-rubout ()8.4.4 Killing And Yanking
    unix-line-discard (C-u)8.4.4 Killing And Yanking
    unix-line-discard (C-u)8.4.4 Killing And Yanking
    unix-word-rubout (C-w)8.4.4 Killing And Yanking
    unix-word-rubout (C-w)8.4.4 Killing And Yanking
    upcase-word (M-u)8.4.3 Commands For Changing Text
    upcase-word (M-u)8.4.3 Commands For Changing Text
    undo (C-_ or C-x C-u)8.4.8 Some Miscellaneous Commands
    undo (C-_ or C-x C-u)8.4.8 Some Miscellaneous Commands
    universal-argument ()8.4.5 Specifying Numeric Arguments
    universal-argument ()8.4.5 Specifying Numeric Arguments
    unix-filename-rubout ()8.4.4 Killing And Yanking
    unix-filename-rubout ()8.4.4 Killing And Yanking
    unix-line-discard (C-u)8.4.4 Killing And Yanking
    unix-line-discard (C-u)8.4.4 Killing And Yanking
    unix-word-rubout (C-w)8.4.4 Killing And Yanking
    unix-word-rubout (C-w)8.4.4 Killing And Yanking
    upcase-word (M-u)8.4.3 Commands For Changing Text
    upcase-word (M-u)8.4.3 Commands For Changing Text

    Y
    yank (C-y)8.4.4 Killing And Yanking
    yank (C-y)8.4.4 Killing And Yanking
    yank-last-arg (M-. or M-_)8.4.2 Commands For Manipulating The History
    yank-last-arg (M-. or M-_)8.4.2 Commands For Manipulating The History
    yank-nth-arg (M-C-y)8.4.2 Commands For Manipulating The History
    yank-nth-arg (M-C-y)8.4.2 Commands For Manipulating The History
    yank-pop (M-y)8.4.4 Killing And Yanking
    yank-pop (M-y)8.4.4 Killing And Yanking
    yank (C-y)8.4.4 Killing And Yanking
    yank (C-y)8.4.4 Killing And Yanking
    yank-last-arg (M-. or M-_)8.4.2 Commands For Manipulating The History
    yank-last-arg (M-. or M-_)8.4.2 Commands For Manipulating The History
    yank-nth-arg (M-C-y)8.4.2 Commands For Manipulating The History
    yank-nth-arg (M-C-y)8.4.2 Commands For Manipulating The History
    yank-pop (M-y)8.4.4 Killing And Yanking
    yank-pop (M-y)8.4.4 Killing And Yanking

    - + - + - + @@ -15276,12 +15546,12 @@ to permit their use in free software. - - + + - + @@ -15316,7 +15586,7 @@ to permit their use in free software. - + @@ -15342,14 +15612,14 @@ to permit their use in free software. - + - +
    Jump to:   A   @@ -15256,17 +15526,17 @@ to permit their use in free software.

    H
    history builtins9.2 Bash History Builtins
    history events9.3.1 Event Designators
    history events9.3.1 Event Designators
    history expansion9.3 History Expansion
    history list9.1 Bash History Facilities
    History, how to use8.7 Programmable Completion Builtins
    History, how to use8.7 Programmable Completion Builtins

    I
    identifier2. Definitions
    initialization file, readline8.3 Readline Init File
    installation10.1 Basic Installation
    interaction, readline8.2 Readline Interaction
    interactive shell6.1 Invoking Bash
    interactive shell6.1 Invoking Bash
    interactive shell6.3 Interactive Shells
    internationalization3.1.2.5 Locale-Specific Translation

    job control7.1 Job Control Basics

    K
    kill ring8.2.3 Readline Killing Commands
    killing text8.2.3 Readline Killing Commands
    kill ring8.2.3 Readline Killing Commands
    killing text8.2.3 Readline Killing Commands

    L
    localization3.1.2.5 Locale-Specific Translation
    login shell6.1 Invoking Bash
    login shell6.1 Invoking Bash

    M
    matching, pattern3.5.8.1 Pattern Matching
    quoting, ANSI3.1.2.4 ANSI-C Quoting

    R
    Readline, how to use7.3 Job Control Variables
    Readline, how to use7.3 Job Control Variables
    redirection3.6 Redirections
    reserved word2. Definitions
    restricted shell6.10 The Restricted Shell

    V
    variable, shell3.4 Shell Parameters
    variables, readline8.3.1 Readline Init File Syntax
    variables, readline8.3.1 Readline Init File Syntax

    W
    word2. Definitions
    word splitting3.5.7 Word Splitting

    Y
    yanking text8.2.3 Readline Killing Commands
    yanking text8.2.3 Readline Killing Commands

    Jump to:   A   @@ -15785,7 +16055,7 @@ to permit their use in free software. [ ? ]

    About this document

    -This document was generated by Chet Ramey on February, 5 2009 +This document was generated by Chet Ramey on December, 29 2009 using texi2html

    @@ -15947,7 +16217,7 @@ the following structure:
    This document was generated -by Chet Ramey on February, 5 2009 +by Chet Ramey on December, 29 2009 using texi2html diff --git a/doc/bashref.info b/doc/bashref.info index 44e8d9b..189e58b 100644 --- a/doc/bashref.info +++ b/doc/bashref.info @@ -2,10 +2,10 @@ This is bashref.info, produced by makeinfo version 4.13 from /Users/chet/src/bash/src/doc/bashref.texi. This text is a brief description of the features that are present in -the Bash shell (version 4.0, 29 December 2008). +the Bash shell (version 4.1, 23 December 2009). - This is Edition 4.0, last updated 29 December 2008, of `The GNU Bash -Reference Manual', for `Bash', Version 4.0. + This is Edition 4.1, last updated 23 December 2009, of `The GNU Bash +Reference Manual', for `Bash', Version 4.1. Copyright (C) 1988-2009 Free Software Foundation, Inc. @@ -15,7 +15,7 @@ preserved on all copies. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, - Version 1.2 or any later version published by the Free Software + Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being "A GNU Manual", and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled @@ -38,10 +38,10 @@ Bash Features ************* This text is a brief description of the features that are present in -the Bash shell (version 4.0, 29 December 2008). +the Bash shell (version 4.1, 23 December 2009). - This is Edition 4.0, last updated 29 December 2008, of `The GNU Bash -Reference Manual', for `Bash', Version 4.0. + This is Edition 4.1, last updated 23 December 2009, of `The GNU Bash +Reference Manual', for `Bash', Version 4.1. Bash contains features that appear in other popular shells, and some features that only appear in Bash. Some of the shells that Bash has @@ -442,6 +442,7 @@ decoded as follows: backspace `\e' +`\E' an escape character (not ANSI C) `\f' @@ -465,6 +466,9 @@ decoded as follows: `\'' single quote +`\"' + double quote + `\NNN' the eight-bit character whose value is the octal value NNN (one to three digits) @@ -699,7 +703,7 @@ syntax, it may be replaced with one or more newlines. `for' The syntax of the `for' command is: - for NAME [in WORDS ...]; do COMMANDS; done + for NAME [ [in [WORDS ...] ] ; ] do COMMANDS; done Expand WORDS, and execute COMMANDS once for each member in the resultant list, with NAME bound to the current member. If `in WORDS' is not present, the `for' command executes the COMMANDS @@ -767,7 +771,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre A list of patterns and an associated command-list is known as a CLAUSE. - Each clause must be terminated with `;;', `,&', or `;;&'. The + Each clause must be terminated with `;;', `;&', or `;;&'. The WORD undergoes tilde expansion, parameter expansion, command substitution, arithmetic expansion, and quote removal before matching is attempted. Each PATTERN undergoes tilde expansion, @@ -855,6 +859,9 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre performed. Conditional operators such as `-f' must be unquoted to be recognized as primaries. + When used with `[[', The `<' and `>' operators sort + lexicographically using the current locale. + When the `==' and `!=' operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below in *note Pattern Matching::. If the @@ -1024,13 +1031,17 @@ Parameters::). The special parameter `#' that expands to the number of positional parameters is updated to reflect the change. Special parameter `0' is unchanged. The first element of the `FUNCNAME' variable is set to the name of the function while the function is -executing. All other aspects of the shell execution environment are -identical between a function and its caller with the exception that the -`DEBUG' and `RETURN' traps are not inherited unless the function has -been given the `trace' attribute using the `declare' builtin or the `-o -functrace' option has been enabled with the `set' builtin, (in which -case all functions inherit the `DEBUG' and `RETURN' traps). *Note -Bourne Shell Builtins::, for the description of the `trap' builtin. +executing. + + All other aspects of the shell execution environment are identical +between a function and its caller with these exceptions: the `DEBUG' +and `RETURN' traps are not inherited unless the function has been given +the `trace' attribute using the `declare' builtin or the `-o functrace' +option has been enabled with the `set' builtin, (in which case all +functions inherit the `DEBUG' and `RETURN' traps), and the `ERR' trap +is not inherited unless the `-o errtrace' shell option has been enabled. +*Note Bourne Shell Builtins::, for the description of the `trap' +builtin. If the builtin command `return' is executed in a function, the function completes and execution resumes with the next command after @@ -1271,7 +1282,7 @@ are not sorted; left to right order is preserved. For example, bash$ echo a{d,c,b}e ade ace abe - A sequence expression takes the form `{X..Y[INCR]}', where X and Y + A sequence expression takes the form `{X..Y[..INCR]}', where X and Y are either integers or single characters, and INCR, an optional increment, is an integer. When integers are supplied, the expression expands to each number between X and Y, inclusive. Supplied integers @@ -1394,12 +1405,12 @@ positional parameter with more than one digit, or when PARAMETER is followed by a character that is not to be interpreted as part of its name. - If the first character of PARAMETER is an exclamation point, a level -of variable indirection is introduced. Bash uses the value of the -variable formed from the rest of PARAMETER as the name of the variable; -this variable is then expanded and that value is used in the rest of -the substitution, rather than the value of PARAMETER itself. This is -known as `indirect expansion'. The exceptions to this are the + If the first character of PARAMETER is an exclamation point (!), a +level of variable indirection is introduced. Bash uses the value of +the variable formed from the rest of PARAMETER as the name of the +variable; this variable is then expanded and that value is used in the +rest of the substitution, rather than the value of PARAMETER itself. +This is known as `indirect expansion'. The exceptions to this are the expansions of ${!PREFIX*} and ${!NAME[@]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection. @@ -1533,7 +1544,7 @@ omitted, the operator tests only for existence. `${PARAMETER,,PATTERN}' This expansion modifies the case of alphabetic characters in PARAMETER. The PATTERN is expanded to produce a pattern just as in - pathname expansion. The `^' operator converts lowercase letters + filename expansion. The `^' operator converts lowercase letters matching PATTERN to uppercase; the `,' operator converts matching uppercase letters to lowercase. The `^^' and `,,' expansions convert each matched character in the expanded value; the `^' and @@ -1679,7 +1690,7 @@ 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 generation, the character `.' at + 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 file name, the slash character must always be matched @@ -1807,6 +1818,13 @@ 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. + Each redirection that may be preceded by a file descriptor number +may instead be preceded by a word of the form {VARNAME}. In this case, +for each redirection operator except >&- and <&-, the shell will +allocate a file descriptor greater than 10 and assign it to {VARNAME}. +If >&- or <&- is preceded by {VARNAME}, the value of VARNAME defines +the file descriptor to close. + In the following descriptions, if the file descriptor number is omitted, and the first character of the redirection operator is `<', the redirection refers to the standard input (file descriptor 0). If @@ -1826,8 +1844,8 @@ the command (file descriptor 2) to the file DIRLIST, while the command ls 2>&1 > DIRLIST directs only the standard output to file DIRLIST, because the -standard error was duplicated as standard output before the standard -output was redirected to DIRLIST. +standard error was made a copy of the standard output before the +standard output was redirected to DIRLIST. Bash handles several filenames specially when they are used in redirections, as described in the following table: @@ -2399,8 +2417,13 @@ Completion Builtins::). Unless otherwise noted, each builtin command documented as accepting options preceded by `-' accepts `--' to signify the end of the options. -For example, the `:', `true', `false', and `test' builtins do not -accept options. +The `:', `true', `false', and `test' builtins do not accept options and +do not treat `--' specially. The `exit', `logout', `break', +`continue', `let', and `shift' builtins accept and process arguments +beginning with `-' without requiring `--'. Other builtins that accept +arguments but are not specified as accepting options interpret +arguments beginning with `-' as invalid options and require `--' to +prevent this interpretation.  File: bashref.info, Node: Bourne Shell Builtins, Next: Bash Builtins, Up: Shell Builtin Commands @@ -2702,28 +2725,33 @@ standard. shell input. The `-l' option causes the shell to print a list of signal names and their corresponding numbers. Each SIGSPEC is either a signal name or a signal number. Signal names are case - insensitive and the `SIG' prefix is optional. If a SIGSPEC is `0' - or `EXIT', ARG is executed when the shell exits. If a SIGSPEC is - `DEBUG', the command ARG is executed before every simple command, - `for' command, `case' command, `select' command, every arithmetic - `for' command, and before the first command executes in a shell - function. Refer to the description of the `extglob' option to the - `shopt' builtin (*note The Shopt Builtin::) for details of its - effect on the `DEBUG' trap. If a SIGSPEC is `ERR', the command ARG - is executed whenever a simple command has a non-zero exit status, - subject to the following conditions. The `ERR' trap is not - executed if the failed command is part of the command list - immediately following an `until' or `while' keyword, part of the - test in an `if' statement, part of a command executed in a `&&' or + insensitive and the `SIG' prefix is optional. + + If a SIGSPEC is `0' or `EXIT', ARG is executed when the shell + exits. If a SIGSPEC is `DEBUG', the command ARG is executed + before every simple command, `for' command, `case' command, + `select' command, every arithmetic `for' command, and before the + first command executes in a shell function. Refer to the + description of the `extdebug' option to the `shopt' builtin (*note + The Shopt Builtin::) for details of its effect on the `DEBUG' trap. + If a SIGSPEC is `RETURN', the command ARG is executed each time a + shell function or a script executed with the `.' or `source' + builtins finishes executing. + + If a SIGSPEC is `ERR', the command ARG is executed whenever a + simple command has a non-zero exit status, subject to the + following conditions. The `ERR' trap is not executed if the + failed command is part of the command list immediately following + an `until' or `while' keyword, part of the test following the `if' + or `elif' reserved words, part of a command executed in a `&&' or `||' list, or if the command's return status is being inverted using `!'. These are the same conditions obeyed by the `errexit' - option. If a SIGSPEC is `RETURN', the command ARG is executed - each time a shell function or a script executed with the `.' or - `source' builtins finishes executing. + option. Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their - original values in a child process when it is created. + original values in a subshell or subshell environment when one is + created. The return status is zero unless a SIGSPEC does not specify a valid signal. @@ -3098,10 +3126,10 @@ POSIX standard. `mapfile' mapfile [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD] [ -C CALLBACK] [-c QUANTUM] [ARRAY] - Read lines from the standard input into array variable ARRAY, or - from file descriptor FD if the `-u' option is supplied. The - variable `MAPFILE' is the default ARRAY. Options, if supplied, - have the following meanings: + Read lines from the standard input into the indexed array variable + ARRAY, or from file descriptor FD if the `-u' option is supplied. + The variable `MAPFILE' is the default ARRAY. Options, if + supplied, have the following meanings: `-n' Copy at most COUNT lines. If COUNT is 0, all lines are copied. @@ -3114,7 +3142,7 @@ POSIX standard. Discard the first COUNT lines read. `-t' - Remove a trailing line from each line read. + Remove a trailing newline from each line read. `-u' Read lines from file descriptor FD instead of the standard @@ -3138,7 +3166,8 @@ POSIX standard. before assigning to it. `mapfile' returns successfully unless an invalid option or option - argument is supplied, or ARRAY is invalid or unassignable. + argument is supplied, ARRAY is invalid or unassignable, or ARRAY + is not an indexed array. `printf' printf [-v VAR] FORMAT [ARGUMENTS] @@ -3166,7 +3195,7 @@ POSIX standard. success, non-zero on failure. `read' - read [-ers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...] + read [-ers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS] [-N NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...] One line is read from the standard input, or from the file descriptor FD supplied as an argument to the `-u' option, and the first word is assigned to the first NAME, the second word to the @@ -3205,7 +3234,15 @@ POSIX standard. `-n NCHARS' `read' returns after reading NCHARS characters rather than - waiting for a complete line of input. + waiting for a complete line of input, but honor a delimiter + if fewer than NCHARS characters are read before the delimiter. + + `-N NCHARS' + `read' returns after reading exactly NCHARS characters rather + than waiting for a complete line of input, unless EOF is + encountered or `read' times out. Delimiter characters + encountered in the input are not treated specially and do not + cause `read' to return until NCHARS characters are read. `-p PROMPT' Display PROMPT, without a trailing newline, before attempting @@ -3240,8 +3277,8 @@ POSIX standard. `readarray' readarray [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD] [ -C CALLBACK] [-c QUANTUM] [ARRAY] - Read lines from the standard input into array variable ARRAY, or - from file descriptor FD if the `-u' option is supplied. + Read lines from the standard input into the indexed array variable + ARRAY, or from file descriptor FD if the `-u' option is supplied. A synonym for `mapfile'. @@ -3323,10 +3360,12 @@ POSIX standard. The maximum size that may be locked into memory. `-m' - The maximum resident set size. + The maximum resident set size (many systems do not honor this + limit). `-n' - The maximum number of open file descriptors. + The maximum number of open file descriptors (most systems do + not allow this value to be set). `-p' The pipe buffer size. @@ -3425,20 +3464,27 @@ parameters, or to display the names and values of shell variables. prompt. `-e' - Exit immediately if a simple command (*note Simple - Commands::) exits with a non-zero status, unless the command - that fails is part of the command list immediately following - a `while' or `until' keyword, part of the test in an `if' - statement, part of a command executed in a `&&' or `||b' list, + Exit immediately if a pipeline (*note Pipelines::), which may + consist of a single simple command (*note Simple Commands::), + a subshell command enclosed in parentheses (*note Command + Grouping::), or one of the commands executed as part of a + command list enclosed by braces (*note Command Grouping::) + returns a non-zero status. The shell does not exit if the + command that fails is part of the command list immediately + following a `while' or `until' keyword, part of the test in + an `if' statement, part of any command executed in a `&&' or + `||' list except the command following the final `&&' or `||', any command in a pipeline but the last, or if the command's - return status is being inverted using `!'. Failing simple - commands that are part of shell functions or command lists - enclosed in braces or parentheses satisfying the above - conditions do not cause the shell to exit. A trap on `ERR', + return status is being inverted with `!'. A trap on `ERR', if set, is executed before the shell exits. + This option applies to the shell environment and each + subshell environment separately (*note Command Execution + Environment::), and may cause subshells to exit before + executing all the commands in the subshell. + `-f' - Disable file name generation (globbing). + Disable filename expansion (globbing). `-h' Locate and remember (hash) commands as they are looked up for @@ -3552,22 +3598,23 @@ parameters, or to display the names and values of shell variables. `-p' Turn on privileged mode. In this mode, the `$BASH_ENV' and `$ENV' files are not processed, shell functions are not - inherited from the environment, and the `SHELLOPTS', `CDPATH' - and `GLOBIGNORE' variables, if they appear in the - environment, are ignored. If the shell is started with the - effective user (group) id not equal to the real user (group) - id, and the `-p' option is not supplied, these actions are - taken and the effective user id is set to the real user id. - If the `-p' option is supplied at startup, the effective user - id is not reset. Turning this option off causes the - effective user and group ids to be set to the real user and - group ids. + inherited from the environment, and the `SHELLOPTS', + `BASHOPTS', `CDPATH' and `GLOBIGNORE' variables, if they + appear in the environment, are ignored. If the shell is + started with the effective user (group) id not equal to the + real user (group) id, and the `-p' option is not supplied, + these actions are taken and the effective user id is set to + the real user id. If the `-p' option is supplied at startup, + the effective user id is not reset. Turning this option off + causes the effective user and group ids to be set to the real + user and group ids. `-t' Exit after reading and executing one command. `-u' - Treat unset variables as an error when performing parameter + Treat unset variables and parameters other than the special + parameters `@' or `*' as an error when performing parameter expansion. An error message will be written to the standard error, and a non-interactive shell will exit. @@ -3799,7 +3846,7 @@ This builtin allows you to change additional shell optional behavior. `failglob' If set, patterns which fail to match filenames during - pathname expansion result in an expansion error. + filename expansion result in an expansion error. `force_fignore' If set, the suffixes specified by the `FIGNORE' shell variable @@ -4035,6 +4082,15 @@ Variables::). `BASH' The full pathname used to execute the current instance of Bash. +`BASHOPTS' + A colon-separated list of enabled shell options. Each word in the + list is a valid argument for the `-s' option to the `shopt' + builtin command (*note The Shopt Builtin::). The options + appearing in `BASHOPTS' are those reported as `on' by `shopt'. If + this variable is in the environment when Bash starts up, each + shell option in the list will be enabled before reading any + startup files. This variable is readonly. + `BASHPID' Expands to the process id of the current Bash process. This differs from `$$' under certain circumstances, such as subshells @@ -4140,6 +4196,17 @@ Variables::). `BASH_VERSION' The version number of the current instance of Bash. +`BASH_XTRACEFD' + If set to an integer corresponding to a valid file descriptor, Bash + will write the trace output generated when `set -x' is enabled to + that file descriptor. This allows tracing output to be separated + from diagnostic and error messages. The file descriptor is closed + when `BASH_XTRACEFD' is unset or assigned a new value. Unsetting + `BASH_XTRACEFD' or assigning it the empty string causes the trace + output to be sent to the standard error. Note that setting + `BASH_XTRACEFD' to 2 (the standard error file descriptor) and then + unsetting it will result in the standard error being closed. + `COLUMNS' Used by the `select' builtin command to determine the terminal width when printing selection lists. Automatically set upon @@ -4186,10 +4253,11 @@ Variables::). `COMP_WORDS' An array variable consisting of the individual words in the - current command line. The words are split on shell metacharacters - as the shell parser would separate them. This variable is - available only in shell functions invoked by the programmable - completion facilities (*note Programmable Completion::). + current command line. The line is split into words as Readline + would split it, using `COMP_WORDBREAKS' as described above. This + variable is available only in shell functions invoked by the + programmable completion facilities (*note Programmable + Completion::). `COMPREPLY' An array variable from which Bash reads the possible completions @@ -4332,10 +4400,10 @@ Variables::). list of possible hostname completions may be changed while the shell is running; the next time hostname completion is attempted after the value is changed, Bash adds the contents of the new file - to the existing list. If `HOSTFILE' is set, but has no value, - Bash attempts to read `/etc/hosts' to obtain the list of possible - hostname completions. When `HOSTFILE' is unset, the hostname list - is cleared. + to the existing list. If `HOSTFILE' is set, but has no value, or + does not name a readable file, Bash attempts to read `/etc/hosts' + to obtain the list of possible hostname completions. When + `HOSTFILE' is unset, the hostname list is cleared. `HOSTNAME' The name of the current host. @@ -4824,10 +4892,11 @@ Invoked with unequal effective and real UID/GIDs If Bash is started with the effective user (group) id not equal to the real user (group) id, and the `-p' option is not supplied, no startup files are read, shell functions are not inherited from the environment, -the `SHELLOPTS' variable, if it appears in the environment, is ignored, -and the effective user id is set to the real user id. If the `-p' -option is supplied at invocation, the startup behavior is the same, but -the effective user id is not reset. +the `SHELLOPTS', `BASHOPTS', `CDPATH', and `GLOBIGNORE' variables, if +they appear in the environment, are ignored, and the effective user id +is set to the real user id. If the `-p' option is supplied at +invocation, the startup behavior is the same, but the effective user id +is not reset.  File: bashref.info, Node: Interactive Shells, Next: Bash Conditional Expressions, Prev: Bash Startup Files, Up: Bash Features @@ -4981,6 +5050,9 @@ checked. If the FILE argument to one of the primaries is one of `/dev/stdin', `/dev/stdout', or `/dev/stderr', file descriptor 0, 1, or 2, respectively, is checked. + When used with `[[', The `<' and `>' operators sort +lexicographically using the current locale. + Unless otherwise specified, primaries that operate on files follow symbolic links and operate on the target of the link, rather than the link itself. @@ -5072,19 +5144,18 @@ link itself. True if the length of STRING is non-zero. `STRING1 == STRING2' - True if the strings are equal. `=' may be used in place of `==' - for strict POSIX compliance. +`STRING1 = STRING2' + True if the strings are equal. `=' should be used with the `test' + command for POSIX conformance. `STRING1 != STRING2' True if the strings are not equal. `STRING1 < STRING2' - True if STRING1 sorts before STRING2 lexicographically in the - current locale. + True if STRING1 sorts before STRING2 lexicographically. `STRING1 > STRING2' - True if STRING1 sorts after STRING2 lexicographically in the - current locale. + True if STRING1 sorts after STRING2 lexicographically. `ARG1 OP ARG2' `OP' is one of `-eq', `-ne', `-lt', `-le', `-gt', or `-ge'. These @@ -5308,10 +5379,13 @@ If SUBSCRIPT is `@' or `*', the expansion is the number of elements in the array. Referencing an array variable without a subscript is equivalent to referencing with a subscript of 0. + An array variable is considered set if a subscript has been assigned +a value. The null string is a valid value. + The `unset' builtin is used to destroy arrays. `unset' NAME[SUBSCRIPT] destroys the array element at index SUBSCRIPT. Care must be taken to avoid unwanted side effects caused by filename -generation. `unset' NAME, where NAME is an array, removes the entire +expansion. `unset' NAME, where NAME is an array, removes the entire array. A subscript of `*' or `@' also removes the entire array. The `declare', `local', and `readonly' builtins each accept a `-a' @@ -5758,6 +5832,10 @@ startup files. 42. The `ulimit' builtin uses a block size of 512 bytes for the `-c' and `-f' options. + 43. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not + interrupt the `wait' builtin and cause it to return immediately. + The trap command is run once for each child that exits. + There is other POSIX behavior that Bash does not implement by default even when in POSIX mode. Specifically: @@ -5800,7 +5878,8 @@ File: bashref.info, Node: Job Control Basics, Next: Job Control Builtins, Up: Job control refers to the ability to selectively stop (suspend) the execution of processes and continue (resume) their execution at a later point. A user typically employs this facility via an interactive -interface supplied jointly by the system's terminal driver and Bash. +interface supplied jointly by the operating system kernel's terminal +driver and Bash. The shell associates a JOB with each pipeline. It keeps a table of currently executing jobs, which may be listed with the `jobs' command. @@ -5819,10 +5898,11 @@ receive keyboard-generated signals such as `SIGINT'. These processes are said to be in the foreground. Background processes are those whose process group ID differs from the terminal's; such processes are immune to keyboard-generated signals. Only foreground processes are allowed -to read from or write to the terminal. Background processes which -attempt to read from (write to) the terminal are sent a `SIGTTIN' -(`SIGTTOU') signal by the terminal driver, which, unless caught, -suspends the process. +to read from or, if the user so specifies with `stty tostop', write to +the terminal. Background processes which attempt to read from (write +to when `stty tostop' is in effect) the terminal are sent a `SIGTTIN' +(`SIGTTOU') signal by the kernel's terminal driver, which, unless +caught, suspends the process. If the operating system on which Bash is running supports job control, Bash contains facilities to use it. Typing the SUSPEND @@ -6416,11 +6496,22 @@ Variable Settings editing mode, where the keystrokes are most similar to Emacs. This variable can be set to either `emacs' or `vi'. + `echo-control-characters' + When set to `on', on operating systems that indicate they + support it, readline echoes a character corresponding to a + signal generated from the keyboard. The default is `on'. + `enable-keypad' When set to `on', Readline will try to enable the application keypad when it is called. Some systems need this to enable the arrow keys. The default is `off'. + `enable-meta-key' + When set to `on', Readline will try to enable any meta + modifier key the terminal claims to support when it is + called. On many terminals, the meta key is used to send + eight-bit characters. The default is `on'. + `expand-tilde' If set to `on', tilde expansion is performed when Readline attempts word completion. The default is `off'. @@ -6523,6 +6614,19 @@ Variable Settings be listed immediately instead of ringing the bell. The default value is `off'. + `skip-completed-text' + If set to `on', this alters the default completion behavior + when inserting a single match into the line. It's only + active when performing completion in the middle of a word. + If enabled, readline does not insert characters from the + completion that match characters after point in the word + being completed, so portions of the word following the cursor + are not duplicated. For instance, if this is enabled, + attempting completion when the cursor is after the `e' in + `Makefile' will result in `Makefile' rather than + `Makefilefile', assuming there is a single possible + completion. The default value is `off'. + `visible-stats' If set to `on', a character denoting a file's type is appended to the filename when listing possible completions. @@ -7162,6 +7266,11 @@ File: bashref.info, Node: Commands For Completion, Next: Keyboard Macros, Pre command is intended to be bound to , but is unbound by default. +`menu-complete-backward ()' + Identical to `menu-complete', but moves backward through the list + of possible completions, as if `menu-complete' had been given a + negative argument. + `delete-char-or-list ()' Deletes the character under the cursor if not at the beginning or end of the line (like `delete-char'). If at the end of the line, @@ -7294,6 +7403,15 @@ File: bashref.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: of that character. A negative count searches for subsequent occurrences. +`skip-csi-sequence ()' + Read enough characters to consume a multi-key sequence such as + those defined for keys like Home and End. Such sequences begin + with a Control Sequence Indicator (CSI), usually ESC-[. If this + sequence is bound to "\e[", keys producing such sequences will + have no effect unless explicitly bound to a readline command, + instead of inserting stray characters into the editing buffer. + This is unbound by default, but usually bound to ESC-[. + `insert-comment (M-#)' Without a numeric argument, the value of the `comment-begin' variable is inserted at the beginning of the current line. If a @@ -7412,10 +7530,14 @@ programmable completion facilities are invoked. First, the command name is identified. If a compspec has been defined for that command, the compspec is used to generate the list of -possible completions for the word. If the command word is a full -pathname, a compspec for the full pathname is searched for first. If -no compspec is found for the full pathname, an attempt is made to find -a compspec for the portion following the final slash. +possible completions for the word. If the command word is the empty +string (completion attempted at the beginning of an empty line), any +compspec defined with the `-E' option to `complete' is used. If the +command word is a full pathname, a compspec for the full pathname is +searched for first. If no compspec is found for the full pathname, an +attempt is made to find a compspec for the portion following the final +slash. If those searches do not result in a compspec, any compspec +defined with the `-D' option to `complete' is used as the default. Once a compspec has been found, it is used to generate the list of matching words. If a compspec is not found, the default Bash completion @@ -7506,6 +7628,28 @@ to completed names which are symbolic links to directories, subject to the value of the MARK-DIRECTORIES Readline variable, regardless of the setting of the MARK-SYMLINKED-DIRECTORIES Readline variable. + There is some support for dynamically modifying completions. This is +most useful when used in combination with a default completion specified +with `-D'. It's possible for shell functions executed as completion +handlers to indicate that completion should be retried by returning an +exit status of 124. If a shell function returns 124, and changes the +compspec associated with the command on which completion is being +attempted (supplied as the first argument when the function is +executed), programmable completion restarts from the beginning, with an +attempt to find a compspec for that command. This allows a set of +completions to be built dynamically as completion is attempted, rather +than being loaded all at once. + + For instance, assuming that there is a library of compspecs, each +kept in a file corresponding to the name of the command, the following +default completion function would load completions dynamically: + + _completion_loader() + { + . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124 + } + complete -D -F _completion_loader +  File: bashref.info, Node: Programmable Completion Builtins, Prev: Programmable Completion, Up: Command Line Editing @@ -7534,23 +7678,27 @@ completion facilities. no matches were generated. `complete' - `complete [-abcdefgjksuv] [-o COMP-OPTION] [-E] [-A ACTION] [-G GLOBPAT] [-W WORDLIST] + `complete [-abcdefgjksuv] [-o COMP-OPTION] [-DE] [-A ACTION] [-G GLOBPAT] [-W WORDLIST] [-F FUNCTION] [-C COMMAND] [-X FILTERPAT] [-P PREFIX] [-S SUFFIX] NAME [NAME ...]' - `complete -pr [-E] [NAME ...]' + `complete -pr [-DE] [NAME ...]' Specify how arguments to each NAME should be completed. If the `-p' option is supplied, or if no options are supplied, existing completion specifications are printed in a way that allows them to be reused as input. The `-r' option removes a completion specification for each NAME, or, if no NAMEs are supplied, all - completion specifications. The `-E' option indicates that the - remaining options and actions should apply to "empty" command - completion; that is, completion attempted on a blank line. + completion specifications. The `-D' option indicates that the + remaining options and actions should apply to the "default" + command completion; that is, completion attempted on a command for + which no completion has previously been defined. The `-E' option + indicates that the remaining options and actions should apply to + "empty" command completion; that is, completion attempted on a + blank line. The process of applying these completion specifications when word completion is attempted is described above (*note Programmable - Completion::). + Completion::). The `-D' option takes precedence over `-E'. Other options, if specified, have the following meanings. The arguments to the `-G', `-W', and `-X' options (and, if necessary, @@ -7719,12 +7867,20 @@ completion facilities. adding a completion specification. `compopt' - `compopt' [-o OPTION] [+o OPTION] [NAME] + `compopt' [-o OPTION] [-DE] [+o OPTION] [NAME] Modify completion options for each NAME according to the OPTIONs, or for the currently-execution completion if no NAMEs are supplied. If no OPTIONs are given, display the completion options for each NAME or the current completion. The possible values of OPTION are - those valid for the `complete' builtin described above. + those valid for the `complete' builtin described above. The `-D' + option indicates that the remaining options should apply to the + "default" command completion; that is, completion attempted on a + command for which no completion has previously been defined. The + `-E' option indicates that the remaining options should apply to + "empty" command completion; that is, completion attempted on a + blank line. + + The `-D' option takes precedence over `-E'. The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a NAME for which no @@ -8486,6 +8642,10 @@ does not provide the necessary support. Include support for the extended pattern matching features described above under *note Pattern Matching::. +`--enable-extended-glob-default' + Set the default value of the EXTGLOB shell option described above + under *note The Shopt Builtin:: to be enabled. + `--enable-help-builtin' Include the `help' builtin, which displays help on shell builtins and variables (*note Bash Builtins::). @@ -8575,7 +8735,7 @@ Appendix A Reporting Bugs Please report all bugs you find in Bash. But first, you should make sure that it really is a bug, and that it appears in the latest version of Bash. The latest version of Bash is always available for FTP from -`ftp://ftp.gnu.org/pub/bash/'. +`ftp://ftp.gnu.org/pub/gnu/bash/'. Once you have determined that a bug actually exists, use the `bashbug' command to submit a bug report. If you have a fix, you are @@ -8598,7 +8758,8 @@ newsgroup `gnu.bash.bug'. `bashbug' inserts the first three items automatically into the template it provides for filing a bug report. - Please send all reports concerning this manual to . + Please send all reports concerning this manual to +.  File: bashref.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top @@ -8970,10 +9131,10 @@ File: bashref.info, Node: GNU Free Documentation License, Next: Indexes, Prev Appendix C GNU Free Documentation License ***************************************** - Version 1.2, November 2002 + Version 1.3, 3 November 2008 - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + `http://fsf.org/' Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -9075,6 +9236,9 @@ Appendix C GNU Free Documentation License Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. + The "publisher" means any person or entity that distributes copies + of the Document to the public. + A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ @@ -9340,12 +9504,29 @@ Appendix C GNU Free Documentation License 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document - except as expressly provided for under this License. Any other - attempt to copy, modify, sublicense or distribute the Document is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense, or distribute it is void, + and will automatically terminate your rights under this License. + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from + that copyright holder, and you cure the violation prior to 30 days + after your receipt of the notice. + + Termination of your rights under this section does not terminate + the licenses of parties who have received copies or rights from + you under this License. If your rights have been terminated and + not permanently reinstated, receipt of a copy of some or all of + the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE @@ -9363,7 +9544,41 @@ Appendix C GNU Free Documentation License published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the - Free Software Foundation. + Free Software Foundation. If the Document specifies that a proxy + can decide which future versions of this License can be used, that + proxy's public statement of acceptance of a version permanently + authorizes you to choose that version for the Document. + + 11. RELICENSING + + "Massive Multiauthor Collaboration Site" (or "MMC Site") means any + World Wide Web server that publishes copyrightable works and also + provides prominent facilities for anybody to edit those works. A + public wiki that anybody can edit is an example of such a server. + A "Massive Multiauthor Collaboration" (or "MMC") contained in the + site means any set of copyrightable works thus published on the MMC + site. + + "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 + license published by Creative Commons Corporation, a not-for-profit + corporation with a principal place of business in San Francisco, + California, as well as future copyleft versions of that license + published by that same organization. + + "Incorporate" means to publish or republish a Document, in whole or + in part, as part of another Document. + + An MMC is "eligible for relicensing" if it is licensed under this + License, and if all works that were first published under this + License somewhere other than this MMC, and subsequently + incorporated in whole or in part into the MMC, (1) had no cover + texts or invariant sections, and (2) were thus incorporated prior + to November 1, 2008. + + The operator of an MMC Site may republish an MMC contained in the + site under CC-BY-SA on the same site at any time before August 1, + 2009, provided the MMC is eligible for relicensing. + ADDENDUM: How to use this License for your documents ==================================================== @@ -9374,7 +9589,7 @@ notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.2 + under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU @@ -9443,7 +9658,7 @@ D.1 Index of Shell Builtin Commands * complete: Programmable Completion Builtins. (line 28) * compopt: Programmable Completion Builtins. - (line 213) + (line 217) * continue: Bourne Shell Builtins. (line 55) * declare: Bash Builtins. (line 142) @@ -9482,13 +9697,13 @@ D.1 Index of Shell Builtin Commands * mapfile: Bash Builtins. (line 342) * popd: Directory Stack Builtins. (line 37) -* printf: Bash Builtins. (line 387) +* printf: Bash Builtins. (line 388) * pushd: Directory Stack Builtins. (line 58) * pwd: Bourne Shell Builtins. (line 163) -* read: Bash Builtins. (line 412) -* readarray: Bash Builtins. (line 484) +* read: Bash Builtins. (line 413) +* readarray: Bash Builtins. (line 493) * readonly: Bourne Shell Builtins. (line 172) * return: Bourne Shell Builtins. @@ -9497,7 +9712,7 @@ D.1 Index of Shell Builtin Commands * shift: Bourne Shell Builtins. (line 201) * shopt: The Shopt Builtin. (line 9) -* source: Bash Builtins. (line 492) +* source: Bash Builtins. (line 501) * suspend: Job Control Builtins. (line 94) * test: Bourne Shell Builtins. @@ -9506,14 +9721,14 @@ D.1 Index of Shell Builtin Commands (line 281) * trap: Bourne Shell Builtins. (line 286) -* type: Bash Builtins. (line 496) -* typeset: Bash Builtins. (line 527) -* ulimit: Bash Builtins. (line 533) +* type: Bash Builtins. (line 505) +* typeset: Bash Builtins. (line 536) +* ulimit: Bash Builtins. (line 542) * umask: Bourne Shell Builtins. - (line 327) -* unalias: Bash Builtins. (line 619) + (line 332) +* unalias: Bash Builtins. (line 630) * unset: Bourne Shell Builtins. - (line 344) + (line 349) * wait: Job Control Builtins. (line 73) @@ -9580,156 +9795,160 @@ D.3 Parameter and Variable Index * auto_resume: Job Control Variables. (line 6) * BASH: Bash Variables. (line 13) -* BASH_ALIASES: Bash Variables. (line 21) -* BASH_ARGC: Bash Variables. (line 28) -* BASH_ARGV: Bash Variables. (line 38) -* BASH_CMDS: Bash Variables. (line 48) -* BASH_COMMAND: Bash Variables. (line 55) -* BASH_ENV: Bash Variables. (line 60) -* BASH_EXECUTION_STRING: Bash Variables. (line 66) -* BASH_LINENO: Bash Variables. (line 69) -* BASH_REMATCH: Bash Variables. (line 78) -* BASH_SOURCE: Bash Variables. (line 86) -* BASH_SUBSHELL: Bash Variables. (line 90) -* BASH_VERSINFO: Bash Variables. (line 94) -* BASH_VERSION: Bash Variables. (line 118) -* BASHPID: Bash Variables. (line 16) +* BASH_ALIASES: Bash Variables. (line 30) +* BASH_ARGC: Bash Variables. (line 37) +* BASH_ARGV: Bash Variables. (line 47) +* BASH_CMDS: Bash Variables. (line 57) +* BASH_COMMAND: Bash Variables. (line 64) +* BASH_ENV: Bash Variables. (line 69) +* BASH_EXECUTION_STRING: Bash Variables. (line 75) +* BASH_LINENO: Bash Variables. (line 78) +* BASH_REMATCH: Bash Variables. (line 87) +* BASH_SOURCE: Bash Variables. (line 95) +* BASH_SUBSHELL: Bash Variables. (line 99) +* BASH_VERSINFO: Bash Variables. (line 103) +* BASH_VERSION: Bash Variables. (line 127) +* BASH_XTRACEFD: Bash Variables. (line 130) +* BASHOPTS: Bash Variables. (line 16) +* BASHPID: Bash Variables. (line 25) * bell-style: Readline Init File Syntax. (line 38) * bind-tty-special-chars: Readline Init File Syntax. (line 45) * CDPATH: Bourne Shell Variables. (line 9) -* COLUMNS: Bash Variables. (line 121) +* COLUMNS: Bash Variables. (line 141) * comment-begin: Readline Init File Syntax. (line 50) -* COMP_CWORD: Bash Variables. (line 126) -* COMP_KEY: Bash Variables. (line 155) -* COMP_LINE: Bash Variables. (line 132) -* COMP_POINT: Bash Variables. (line 137) -* COMP_TYPE: Bash Variables. (line 145) -* COMP_WORDBREAKS: Bash Variables. (line 159) -* COMP_WORDS: Bash Variables. (line 165) +* COMP_CWORD: Bash Variables. (line 146) +* COMP_KEY: Bash Variables. (line 175) +* COMP_LINE: Bash Variables. (line 152) +* COMP_POINT: Bash Variables. (line 157) +* COMP_TYPE: Bash Variables. (line 165) +* COMP_WORDBREAKS: Bash Variables. (line 179) +* COMP_WORDS: Bash Variables. (line 185) * completion-prefix-display-length: Readline Init File Syntax. (line 60) * completion-query-items: Readline Init File Syntax. (line 67) -* COMPREPLY: Bash Variables. (line 172) +* COMPREPLY: Bash Variables. (line 193) * convert-meta: Readline Init File Syntax. (line 77) -* DIRSTACK: Bash Variables. (line 177) +* DIRSTACK: Bash Variables. (line 198) * disable-completion: Readline Init File Syntax. (line 83) * editing-mode: Readline Init File Syntax. (line 88) -* EMACS: Bash Variables. (line 187) +* EMACS: Bash Variables. (line 208) * enable-keypad: Readline Init File Syntax. - (line 94) -* EUID: Bash Variables. (line 192) -* expand-tilde: Readline Init File Syntax. (line 99) -* FCEDIT: Bash Variables. (line 196) -* FIGNORE: Bash Variables. (line 200) -* FUNCNAME: Bash Variables. (line 206) -* GLOBIGNORE: Bash Variables. (line 215) -* GROUPS: Bash Variables. (line 221) -* histchars: Bash Variables. (line 227) -* HISTCMD: Bash Variables. (line 242) -* HISTCONTROL: Bash Variables. (line 247) -* HISTFILE: Bash Variables. (line 263) -* HISTFILESIZE: Bash Variables. (line 267) -* HISTIGNORE: Bash Variables. (line 275) +* EUID: Bash Variables. (line 213) +* expand-tilde: Readline Init File Syntax. + (line 110) +* FCEDIT: Bash Variables. (line 217) +* FIGNORE: Bash Variables. (line 221) +* FUNCNAME: Bash Variables. (line 227) +* GLOBIGNORE: Bash Variables. (line 236) +* GROUPS: Bash Variables. (line 242) +* histchars: Bash Variables. (line 248) +* HISTCMD: Bash Variables. (line 263) +* HISTCONTROL: Bash Variables. (line 268) +* HISTFILE: Bash Variables. (line 284) +* HISTFILESIZE: Bash Variables. (line 288) +* HISTIGNORE: Bash Variables. (line 296) * history-preserve-point: Readline Init File Syntax. - (line 103) + (line 114) * history-size: Readline Init File Syntax. - (line 109) -* HISTSIZE: Bash Variables. (line 294) -* HISTTIMEFORMAT: Bash Variables. (line 298) + (line 120) +* HISTSIZE: Bash Variables. (line 315) +* HISTTIMEFORMAT: Bash Variables. (line 319) * HOME: Bourne Shell Variables. (line 13) * horizontal-scroll-mode: Readline Init File Syntax. - (line 114) -* HOSTFILE: Bash Variables. (line 307) -* HOSTNAME: Bash Variables. (line 318) -* HOSTTYPE: Bash Variables. (line 321) + (line 125) +* HOSTFILE: Bash Variables. (line 328) +* HOSTNAME: Bash Variables. (line 339) +* HOSTTYPE: Bash Variables. (line 342) * IFS: Bourne Shell Variables. (line 18) -* IGNOREEOF: Bash Variables. (line 324) +* IGNOREEOF: Bash Variables. (line 345) * input-meta: Readline Init File Syntax. - (line 121) -* INPUTRC: Bash Variables. (line 334) + (line 132) +* INPUTRC: Bash Variables. (line 355) * isearch-terminators: Readline Init File Syntax. - (line 128) + (line 139) * keymap: Readline Init File Syntax. - (line 135) -* LANG: Bash Variables. (line 338) -* LC_ALL: Bash Variables. (line 342) -* LC_COLLATE: Bash Variables. (line 346) -* LC_CTYPE: Bash Variables. (line 353) + (line 146) +* LANG: Bash Variables. (line 359) +* LC_ALL: Bash Variables. (line 363) +* LC_COLLATE: Bash Variables. (line 367) +* LC_CTYPE: Bash Variables. (line 374) * LC_MESSAGES <1>: Locale Translation. (line 11) -* LC_MESSAGES: Bash Variables. (line 358) -* LC_NUMERIC: Bash Variables. (line 362) -* LINENO: Bash Variables. (line 366) -* LINES: Bash Variables. (line 370) -* MACHTYPE: Bash Variables. (line 375) +* LC_MESSAGES: Bash Variables. (line 379) +* LC_NUMERIC: Bash Variables. (line 383) +* LINENO: Bash Variables. (line 387) +* LINES: Bash Variables. (line 391) +* MACHTYPE: Bash Variables. (line 396) * MAIL: Bourne Shell Variables. (line 22) -* MAILCHECK: Bash Variables. (line 379) +* MAILCHECK: Bash Variables. (line 400) * MAILPATH: Bourne Shell Variables. (line 27) * mark-modified-lines: Readline Init File Syntax. - (line 148) + (line 159) * mark-symlinked-directories: Readline Init File Syntax. - (line 153) + (line 164) * match-hidden-files: Readline Init File Syntax. - (line 158) + (line 169) * meta-flag: Readline Init File Syntax. - (line 121) -* OLDPWD: Bash Variables. (line 387) + (line 132) +* OLDPWD: Bash Variables. (line 408) * OPTARG: Bourne Shell Variables. (line 34) -* OPTERR: Bash Variables. (line 390) +* OPTERR: Bash Variables. (line 411) * OPTIND: Bourne Shell Variables. (line 38) -* OSTYPE: Bash Variables. (line 394) +* OSTYPE: Bash Variables. (line 415) * output-meta: Readline Init File Syntax. - (line 165) + (line 176) * page-completions: Readline Init File Syntax. - (line 170) + (line 181) * PATH: Bourne Shell Variables. (line 42) -* PIPESTATUS: Bash Variables. (line 397) -* POSIXLY_CORRECT: Bash Variables. (line 402) -* PPID: Bash Variables. (line 411) -* PROMPT_COMMAND: Bash Variables. (line 415) -* PROMPT_DIRTRIM: Bash Variables. (line 419) +* PIPESTATUS: Bash Variables. (line 418) +* POSIXLY_CORRECT: Bash Variables. (line 423) +* PPID: Bash Variables. (line 432) +* PROMPT_COMMAND: Bash Variables. (line 436) +* PROMPT_DIRTRIM: Bash Variables. (line 440) * PS1: Bourne Shell Variables. (line 48) * PS2: Bourne Shell Variables. (line 53) -* PS3: Bash Variables. (line 425) -* PS4: Bash Variables. (line 430) -* PWD: Bash Variables. (line 436) -* RANDOM: Bash Variables. (line 439) -* REPLY: Bash Variables. (line 444) +* PS3: Bash Variables. (line 446) +* PS4: Bash Variables. (line 451) +* PWD: Bash Variables. (line 457) +* RANDOM: Bash Variables. (line 460) +* REPLY: Bash Variables. (line 465) * revert-all-at-newline: Readline Init File Syntax. - (line 180) -* SECONDS: Bash Variables. (line 447) -* SHELL: Bash Variables. (line 453) -* SHELLOPTS: Bash Variables. (line 458) -* SHLVL: Bash Variables. (line 467) + (line 191) +* SECONDS: Bash Variables. (line 468) +* SHELL: Bash Variables. (line 474) +* SHELLOPTS: Bash Variables. (line 479) +* SHLVL: Bash Variables. (line 488) * show-all-if-ambiguous: Readline Init File Syntax. - (line 186) + (line 197) * show-all-if-unmodified: Readline Init File Syntax. - (line 192) + (line 203) +* skip-completed-text: Readline Init File Syntax. + (line 212) * TEXTDOMAIN: Locale Translation. (line 11) * TEXTDOMAINDIR: Locale Translation. (line 11) -* TIMEFORMAT: Bash Variables. (line 472) -* TMOUT: Bash Variables. (line 510) -* TMPDIR: Bash Variables. (line 522) -* UID: Bash Variables. (line 526) +* TIMEFORMAT: Bash Variables. (line 493) +* TMOUT: Bash Variables. (line 531) +* TMPDIR: Bash Variables. (line 543) +* UID: Bash Variables. (line 547) * visible-stats: Readline Init File Syntax. - (line 201) + (line 225)  File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes @@ -9764,18 +9983,18 @@ D.4 Function Index * copy-region-as-kill (): Commands For Killing. (line 54) * delete-char (C-d): Commands For Text. (line 6) * delete-char-or-list (): Commands For Completion. - (line 34) + (line 39) * delete-horizontal-space (): Commands For Killing. (line 46) * digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6) * do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands. (line 14) * downcase-word (M-l): Commands For Text. (line 42) * dump-functions (): Miscellaneous Commands. - (line 64) + (line 73) * dump-macros (): Miscellaneous Commands. - (line 76) + (line 85) * dump-variables (): Miscellaneous Commands. - (line 70) + (line 79) * end-kbd-macro (C-x )): Keyboard Macros. (line 9) * end-of-history (M->): Commands For History. (line 23) * end-of-line (C-e): Commands For Moving. (line 9) @@ -9788,7 +10007,7 @@ D.4 Function Index * history-search-backward (): Commands For History. (line 51) * history-search-forward (): Commands For History. (line 46) * insert-comment (M-#): Miscellaneous Commands. - (line 51) + (line 60) * insert-completions (M-*): Commands For Completion. (line 18) * kill-line (C-k): Commands For Killing. (line 6) @@ -9797,6 +10016,8 @@ D.4 Function Index * kill-word (M-d): Commands For Killing. (line 19) * menu-complete (): Commands For Completion. (line 22) +* menu-complete-backward (): Commands For Completion. + (line 34) * next-history (C-n): Commands For History. (line 17) * non-incremental-forward-search-history (M-n): Commands For History. (line 41) @@ -9818,6 +10039,8 @@ D.4 Function Index * self-insert (a, b, A, 1, !, ...): Commands For Text. (line 24) * set-mark (C-@): Miscellaneous Commands. (line 32) +* skip-csi-sequence (): Miscellaneous Commands. + (line 51) * start-kbd-macro (C-x (): Keyboard Macros. (line 6) * transpose-chars (C-t): Commands For Text. (line 27) * transpose-words (M-t): Commands For Text. (line 33) @@ -9917,7 +10140,7 @@ D.5 Concept Index * history list: Bash History Facilities. (line 6) * History, how to use: Programmable Completion Builtins. - (line 225) + (line 237) * identifier: Definitions. (line 51) * initialization file, readline: Readline Init File. (line 6) * installation: Basic Installation. (line 6) @@ -10007,119 +10230,119 @@ Node: Escape Character14830 Node: Single Quotes15315 Node: Double Quotes15663 Node: ANSI-C Quoting16788 -Node: Locale Translation17744 -Node: Comments18640 -Node: Shell Commands19258 -Node: Simple Commands20082 -Node: Pipelines20713 -Node: Lists22969 -Node: Compound Commands24698 -Node: Looping Constructs25502 -Node: Conditional Constructs27949 -Node: Command Grouping35955 -Node: Coprocesses37434 -Node: Shell Functions39078 -Node: Shell Parameters43539 -Node: Positional Parameters45955 -Node: Special Parameters46855 -Node: Shell Expansions49819 -Node: Brace Expansion51744 -Node: Tilde Expansion54497 -Node: Shell Parameter Expansion56848 -Node: Command Substitution65746 -Node: Arithmetic Expansion67079 -Node: Process Substitution67929 -Node: Word Splitting68979 -Node: Filename Expansion70602 -Node: Pattern Matching72742 -Node: Quote Removal76381 -Node: Redirections76676 -Node: Executing Commands84819 -Node: Simple Command Expansion85489 -Node: Command Search and Execution87419 -Node: Command Execution Environment89756 -Node: Environment92742 -Node: Exit Status94402 -Node: Signals96023 -Node: Shell Scripts97991 -Node: Shell Builtin Commands100509 -Node: Bourne Shell Builtins102186 -Node: Bash Builtins119504 -Node: Modifying Shell Behavior143695 -Node: The Set Builtin144040 -Node: The Shopt Builtin153080 -Node: Special Builtins163942 -Node: Shell Variables164921 -Node: Bourne Shell Variables165361 -Node: Bash Variables167342 -Node: Bash Features189660 -Node: Invoking Bash190543 -Node: Bash Startup Files196352 -Node: Interactive Shells201321 -Node: What is an Interactive Shell?201731 -Node: Is this Shell Interactive?202380 -Node: Interactive Shell Behavior203195 -Node: Bash Conditional Expressions206475 -Node: Shell Arithmetic210054 -Node: Aliases212800 -Node: Arrays215372 -Node: The Directory Stack219214 -Node: Directory Stack Builtins219928 -Node: Printing a Prompt222820 -Node: The Restricted Shell225572 -Node: Bash POSIX Mode227404 -Node: Job Control235257 -Node: Job Control Basics235717 -Node: Job Control Builtins240330 -Node: Job Control Variables244694 -Node: Command Line Editing245852 -Node: Introduction and Notation247419 -Node: Readline Interaction249041 -Node: Readline Bare Essentials250232 -Node: Readline Movement Commands252021 -Node: Readline Killing Commands252986 -Node: Readline Arguments254906 -Node: Searching255950 -Node: Readline Init File258136 -Node: Readline Init File Syntax259283 -Node: Conditional Init Constructs272517 -Node: Sample Init File275050 -Node: Bindable Readline Commands278167 -Node: Commands For Moving279374 -Node: Commands For History280518 -Node: Commands For Text283673 -Node: Commands For Killing286346 -Node: Numeric Arguments288797 -Node: Commands For Completion289936 -Node: Keyboard Macros293703 -Node: Miscellaneous Commands294274 -Node: Readline vi Mode299585 -Node: Programmable Completion300499 -Node: Programmable Completion Builtins306332 -Node: Using History Interactively314758 -Node: Bash History Facilities315442 -Node: Bash History Builtins318356 -Node: History Interaction322213 -Node: Event Designators324918 -Node: Word Designators325933 -Node: Modifiers327572 -Node: Installing Bash328976 -Node: Basic Installation330113 -Node: Compilers and Options332805 -Node: Compiling For Multiple Architectures333546 -Node: Installation Names335210 -Node: Specifying the System Type336028 -Node: Sharing Defaults336744 -Node: Operation Controls337417 -Node: Optional Features338375 -Node: Reporting Bugs347777 -Node: Major Differences From The Bourne Shell348971 -Node: GNU Free Documentation License365658 -Node: Indexes388119 -Node: Builtin Index388573 -Node: Reserved Word Index395400 -Node: Variable Index397848 -Node: Function Index409654 -Node: Concept Index416386 +Node: Locale Translation17773 +Node: Comments18669 +Node: Shell Commands19287 +Node: Simple Commands20111 +Node: Pipelines20742 +Node: Lists22998 +Node: Compound Commands24727 +Node: Looping Constructs25531 +Node: Conditional Constructs27986 +Node: Command Grouping36099 +Node: Coprocesses37578 +Node: Shell Functions39222 +Node: Shell Parameters43776 +Node: Positional Parameters46192 +Node: Special Parameters47092 +Node: Shell Expansions50056 +Node: Brace Expansion51981 +Node: Tilde Expansion54736 +Node: Shell Parameter Expansion57087 +Node: Command Substitution65988 +Node: Arithmetic Expansion67321 +Node: Process Substitution68171 +Node: Word Splitting69221 +Node: Filename Expansion70844 +Node: Pattern Matching72983 +Node: Quote Removal76622 +Node: Redirections76917 +Node: Executing Commands85442 +Node: Simple Command Expansion86112 +Node: Command Search and Execution88042 +Node: Command Execution Environment90379 +Node: Environment93365 +Node: Exit Status95025 +Node: Signals96646 +Node: Shell Scripts98614 +Node: Shell Builtin Commands101132 +Node: Bourne Shell Builtins103160 +Node: Bash Builtins120536 +Node: Modifying Shell Behavior145364 +Node: The Set Builtin145709 +Node: The Shopt Builtin155233 +Node: Special Builtins166095 +Node: Shell Variables167074 +Node: Bourne Shell Variables167514 +Node: Bash Variables169495 +Node: Bash Features192981 +Node: Invoking Bash193864 +Node: Bash Startup Files199673 +Node: Interactive Shells204685 +Node: What is an Interactive Shell?205095 +Node: Is this Shell Interactive?205744 +Node: Interactive Shell Behavior206559 +Node: Bash Conditional Expressions209839 +Node: Shell Arithmetic213488 +Node: Aliases216234 +Node: Arrays218806 +Node: The Directory Stack222764 +Node: Directory Stack Builtins223478 +Node: Printing a Prompt226370 +Node: The Restricted Shell229122 +Node: Bash POSIX Mode230954 +Node: Job Control239011 +Node: Job Control Basics239471 +Node: Job Control Builtins244188 +Node: Job Control Variables248552 +Node: Command Line Editing249710 +Node: Introduction and Notation251277 +Node: Readline Interaction252899 +Node: Readline Bare Essentials254090 +Node: Readline Movement Commands255879 +Node: Readline Killing Commands256844 +Node: Readline Arguments258764 +Node: Searching259808 +Node: Readline Init File261994 +Node: Readline Init File Syntax263141 +Node: Conditional Init Constructs277628 +Node: Sample Init File280161 +Node: Bindable Readline Commands283278 +Node: Commands For Moving284485 +Node: Commands For History285629 +Node: Commands For Text288784 +Node: Commands For Killing291457 +Node: Numeric Arguments293908 +Node: Commands For Completion295047 +Node: Keyboard Macros299007 +Node: Miscellaneous Commands299578 +Node: Readline vi Mode305384 +Node: Programmable Completion306298 +Node: Programmable Completion Builtins313504 +Node: Using History Interactively322640 +Node: Bash History Facilities323324 +Node: Bash History Builtins326238 +Node: History Interaction330095 +Node: Event Designators332800 +Node: Word Designators333815 +Node: Modifiers335454 +Node: Installing Bash336858 +Node: Basic Installation337995 +Node: Compilers and Options340687 +Node: Compiling For Multiple Architectures341428 +Node: Installation Names343092 +Node: Specifying the System Type343910 +Node: Sharing Defaults344626 +Node: Operation Controls345299 +Node: Optional Features346257 +Node: Reporting Bugs355816 +Node: Major Differences From The Bourne Shell357017 +Node: GNU Free Documentation License373704 +Node: Indexes398900 +Node: Builtin Index399354 +Node: Reserved Word Index406181 +Node: Variable Index408629 +Node: Function Index420722 +Node: Concept Index427731  End Tag Table diff --git a/doc/bashref.pdf b/doc/bashref.pdf index 60958a60bbfe5c88585e8646fc0908925475d7a6..61b2472565bd7c97d168f84a0cd5d69d65e26f2a 100644 GIT binary patch delta 418582 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

    O3mV=&+_ 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

    HD3%E%)4wai_d5)YCzyzRi9u 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 delta 419219 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≫DPM@N&Kt7Xct|vQUpP& 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

    6E+H3imu{gW18 zUWmwhYMv3wy8~>7*Lh2%AgDioiK^TP7Rg<(!jg&IEw$a@ysJEomVQQNgjTgd-)! zi=&T+8w@M?1!LsM1hkX^dRY#iZv7FG!uZV_f8!!kSWvzSw_A(&q3iU7i;i__K`qzh zs>;}gN}Sf)fMU<9V@8r{-G^-LXd9RT$Hy1$ZqAULBNnY82r{v_+Dh$ifU$ZJ+xn!9 zri}+fVnHZUC*S{%5l76&Hl(fI=ebKs-?5>6ea#(N#DBq zZ<~fSUgGPbHKWd2Idy6Ik!s7zm%5gxyFuWqR?!%{XF$XoDhHp>w1nOR` z7Y`UoVKr$rgtW4{gyZ-(Qd{ttREB(9tPXgQzbFf(YqiFrTh%I{Fo!jpe^{2j;`P)D zU9}{Ux-1OJvD>dMmiQYt-Etk3Z{Jb+zbRjWpQ*{r%P&BK9 zdz*vvJT3uZTu{27x8xuojG7&SttvAj6&;U_9l17N`>M&hGmeV9e1!{|TSgq0j|}TT zzw4x&twYiov?9}thD2*nj;a7*bh;ZROJB;;6UUzMyB3sWWOlxgW18FO=s>n$Ll(fA zP_hW? zz!p?4JdlGqJ!jd@6f;DZG#(MkiyYv-isjAKcVmavdOyzqbN%ddBD(TU+zJ+23Idmi zhc!rc(k7a1y^~Y6uC~)65C&#_sIoS*9NPfCDiX&nG|O3fk&fLR-SumBlNgFUIoi-| z=nhnF5|LGkpr*o05Lh_mr_8Ps56~JHAla7qJOtKkccuvs`A4wGPQX$pXdQ4YzhPW+ z^|5l)YrQf4v@%d=zKd?`K3N-MFR5*`q$op={Im@tPV7~AM@{BRAZE%?yKRC7uA(!;NY%9{Wt z6;wwJ6WaH9_47FY$?CPuv`f=l%u-~OQ=RN5^_22>a{#hX^&=`-{T7Is=Dm@q|Jtnl zyBBX+676o#nrRJ{Na_}?md>nbFvt$TuQ&uc;h`%|$Rc}WX7J=bt_MI4^`j=P%s!-l zCl2pT2wso~HA0OZaqScQVWhsn>hCaGrqhF&U+f|prVOy~losXa9J(?|u5HhZ6%ka? z(eaFR<@WH+MZ}&Hg2LYBt@`4$3*(fNN|~lT5$SSRzGLlHa{V&w zAl&^Ce}=RM%t&5W1^^DgqV<(${hLEcob{1{w90Q2`S6{9@moD&N?F=cv&B5hf_m4rjgt%vFNU=6z*XZz+dmt8eXWAsZ+CoEr(olggOX{# z$fg=CalWn1H6b3#?5jex-`tf$%rXtn+Ms1zPXaKQ3Al}r3C%NMf<;ptDJD+g6{WIr zLq{x^N%9j{U~o{5`!8%0D?BXS}n;hhc{;E1E2&^R&p1WhTIUjMKE5efl9 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

    p!|=N->q zt}1$4@@qr(jEbuFuiBD0D%&F#iXXapJ0$tPs`AMEE&iwdN4^vOO#Wb(PY8W`mZp8q zr*g;Hx01$diqD)jowV#&W{qFu^04SBnfuTAO4;r@7-qhEa&FiXL-${bcdBRg)UGTG z97sC1%|bkLgKK=%pE&_FaRnBX4?UHaZv?K*(au>G`ZnX<>@CcTb}LqGUBr1KeBS+c z#x+~}CCS&2c{(rlyjrYu=7_;P?}XW@C*EI{3|tdFC+_~PKDW;^H&$rqi_Qw0F6>+o0cf7V|YyUg)o908wtxIVPzw5(+?;gc`Ut;;Qfh51< z@T2I#kkq=vh7%rCYBN?Jw=~}%Wyh)GEZ2`$`Tp>_4$DGipPiM))fbO!I8&B7tKI^Q{K9nQLnnNT1V+TNd=>-kT1~AB^&nJddco zTk9YFrz;w~qv_oT_MH7i<{}Gfv+D|ahYkjK(3Mslx?ouzB3h83S9nk|k9j@zl7>N` zu@5;^ZGG+wXT_|J9*WemuWopVd8Q zPSaEo=R{9Uy!)%I!_m3WbDh3pu+~z2Z?);AX&cs?C98yncpsW~p|0U|acBBZ*Dvks zv-Z$e%`l(6&v06)+k{e=Y3Z;1#Igv1EXyw!aC%Cn}6 zMxk3*T`PQJ`PIJCzHXP>;f{k&Q7=fGBEJK)7g57j&74=$tYtP(p0GTxxxcvW^hI9G zr$n@l)p(Z~eN9a3m={^})~TGe_xFDo*uBkzEw=YM=UEO-bc=h?4iU5Gmx}A<$~tLY zor~0d)TK{zUw_k%tQ7okx)ym_70qjD#}$NgdQs1$+Pc${pDBOn=TeBa^rd~4t^

    D`u=ntTh^j%;-BQ_Sy<(| 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 LbaWQjS&980A;mU^ diff --git a/doc/bashref.ps b/doc/bashref.ps index fba1104..8eb5d43 100644 --- a/doc/bashref.ps +++ b/doc/bashref.ps @@ -4,14 +4,14 @@ %%Pages: 164 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 -%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMBXTI10 CMTI10 -%%+ CMCSC10 CMSLTT10 CMTT12 CMSY9 CMR8 CMTT9 CMTI9 CMR9 +%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMMI12 CMMI10 CMCSC10 +%%+ CMTI10 CMSLTT10 CMTT12 CMTT9 CMMI9 CMR9 %%DocumentPaperSizes: Letter %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2009.02.05:0805 +%DVIPSSource: TeX output 2009.12.29:1559 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -568,29 +568,29 @@ F91393D79AEC524DE64ED9AD42516985CE04D37027DFFFAFD36CF3D444D7F946 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont -%%BeginFont: CMTI9 -%!PS-AdobeFont-1.1: CMTI9 1.0 -%%CreationDate: 1991 Aug 18 21:08:07 +%%BeginFont: CMMI9 +%!PS-AdobeFont-1.1: CMMI9 1.100 +%%CreationDate: 1996 Jul 23 07:53:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin -/version (1.0) readonly def +/version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI9) readonly def +/FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /CMTI9 def +/FontName /CMMI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 46 /period put +dup 58 /period put readonly def -/FontBBox{-35 -250 1148 750}readonly def +/FontBBox{-29 -250 1075 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE @@ -599,31 +599,31 @@ D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E3948FFB3DF7BFF10C9BDA4EFE5F68A8CB1526990D1357AE6D2F7C2D2EF8496 -4E47B39E6712EB8908A3265E5FAB40567E866C244814449F1E993AAB422C3F1D -DFA8C7118584F2E5197FD4BFA3A8AE9E953C6CD4672C0FF51E41C3A919749C1A -F06650DF4C5E17492164BDBCDF22609A74BFA7F69960A64B9F949FFC2A807458 -8579366C4F41BDE1FDFBCC4845FA19BBB6963D65EE8532549274BAEBDFF24FA6 -03235D1BE37C06B1938AF369DA75BF38DDBC87A1FF445EAA16E1895ABE9506B9 -211955753E447865D33CEF007391D2666A046277A30A49804FFCED3FEA5EB2C3 -E52EE14A9F75241EA10C91974CDA6236EB840FD44D6DDE4D9B3266C3B99BD38B -D835BCA8CB819C073480FB972CC028D218F6A1D344CE1B63F4FBF2C826F412E1 -6E0B05A26125865A14FD7B7030B478BB8BC6BC395335C3BA940E1C348267F4F9 -0AF97BBEE253511940F1048E175D3569F7D05A28851B6F50765FEB6C9654FEDC -1BF52F535DB5BB90C1BD5D2EBF75E0AEBE82B20507F3C28A03746781018D4EB2 -298E4F2C27ACF73FA73EBE43F014BB575AAD516C0407B29E1653375135ECB74D -C91372F06FA8EF37C31AF3FA48AE65318EAA6C34830A5377ABB2DFA5DA53A574 -433484BA1466709A4B186761655C8E482833B697673E847C691079E7F1DCB8D6 -1AD91101D757B83E2090337D525AEECB028FB3C9F6A6E6AD2F322CFDC5A833E6 -1CE4EDBF41FD34FD61630581D222F854A76C2EA9FD72796A7C9CC1F6C2FCCD16 -E95CA05826A4ECFADA6A5FB83C41A7131E52BA6585DD6DD78515D8F7327DFC6F -9404F89293D6ACB433CD0802C43F0E74C6C4766A23A6AE3788FE6CAE82E1A104 -BAEC8BEFDEFE4F292F625E60362F3886F602CE4121BF0AAD93526314BCBB5971 -40091A7BBF7EFB3BA355B88C897D9C70C841DE41309348751EDFFA8675215988 -49CB1599834A01EC6CD4FD813AFF97A614F56975775D5F48E9C1A9CE532FAEB1 -4EBE20C3FA87CFE03664C428BFC5C894668E507950005BD8C2BCA8998C1FB92C -4E6B791BA05B79F332EB8AF5B0F851B8B7EE372EC0861B09C007CDF43F82D0B7 -35446F682A0DA7F4112CDABE4F922EACFCB7B8C88BF550B60957E7 +9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 +86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 +DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD +67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF +6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 +FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 +22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD +730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F +449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 +97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A +E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C +AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA +A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 +B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B +9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E +759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 +5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 +BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 +3435E9C9445A59A7C666418C4F2512C32058B1CE1EA46C7839C6E372F6CC60AE +2CF46DD2F130B532DE8ECD42D9204500E413799E298CF6426F28D23BB7216BEA +1A618B3ECC61B44DDEF0BB22D640B47C09AC0DF378CE68FC9CD88BDAE9ED89CB +431A5CF9C3E9528FEE7A9936C2B1CF7B38DD2B95773F0EA0051607BE1B0B3588 +A8B907A5EF011B4622C5093A7B107DD1EED6FEE9536DECF1CC96E65373D0F433 +30AE3C094654ABF4698C07F8C74E71D023DFD242EE83B1306786124DD8C6BFA7 +801E66CB944BE7EBCB3FE803EC97067AF7AFC8A4E9AC9D11 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1486,54 +1486,116 @@ D81D0B277CA333690FB282 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont -%%BeginFont: CMR8 -%!PS-AdobeFont-1.1: CMR8 1.0 -%%CreationDate: 1991 Aug 20 16:39:40 +%%BeginFont: CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin -/version (1.0) readonly def +/version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR8) readonly def +/FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /CMR8 def +/FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for +dup 11 /ff put +dup 12 /fi put +dup 13 /fl put +dup 14 /ffi put +dup 33 /exclam put +dup 34 /quotedblright put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 44 /comma put dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 61 /equal put +dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put dup 80 /P put +dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put dup 91 /bracketleft put +dup 92 /quotedblleft put +dup 93 /bracketright put +dup 96 /quoteleft put dup 97 /a put +dup 98 /b put dup 99 /c put +dup 100 /d put dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put dup 106 /j put dup 107 /k put +dup 108 /l put +dup 109 /m put dup 110 /n put +dup 111 /o put dup 112 /p put +dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /endash put +dup 124 /emdash put readonly def -/FontBBox{-36 -250 1070 750}readonly def +/FontBBox{-251 -250 1009 969}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 @@ -1541,210 +1603,511 @@ D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C -68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 -3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65 -48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3 -9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB -0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB -8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F -EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466 -FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3 -9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62 -D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8 -9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5 -ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6 -10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582 -83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493 -2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA912A2BCC6CA6105B29 -044005DDBEAF88E0F05541BBD233977A447B469F013D8535A9D7023CC0FB7B49 -A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0 -23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413 -19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42 -1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39 -8BF6B05F0B97F8FDED86BDA32D9EE6204BEE321529D58F28F7A9B3D04A4469E2 -775A8B43DF5350CA25E95F1794CEA94B99AA02F3498C608E6277595DFEC6CC7C -965B69856CB2AFCAA52F66F5A019C999A1C79906EADED8AB0A185F84F5FC544F -B289E583A8AB4726F9538F4DDEA903CC1E623DC5EC25CD02353A4C9A63CCB7B3 -483A481AD7220714EED8EA179FD74724C7D1F7032527E25A43FB59367B10F3F9 -4BC23E2AD9F5744EB954C8A0086C0ED51450A8EE7DCA2BC27081C4F49FEFCFC0 -DE75DFA3E620747E85ED0F66EC590FE6CE40D08497B52B89FDD0EF6B1D4C0A8E -FB12E7A909CA56C9A44DAE837CFB4515412DA996C9E3A430D48B20671F04448C -51A14CB5E9B2565D33A0C0992D9456F3272776BAB972E4AD37CD9538F78BE951 -9A5898C0E3F68EBE589967254EC4E10B6010E386ECF44C742D37C64502DCB250 -E9CCD2AF341A18836489360B950DAB980CB0621155E647B6DE953A6DB1AF51B1 -31375114FB8E6AC909DF17A7362DA2ADAB0DF9ABF040426957B6264BA0DF2B48 -1AEAD8B9068A3E5A4D85166392CD12ED01738931E5683E83EE999C08C54AD19D -FAE794A00EDFFB4F430DFF757CC2163DE77D79C3F0ECDF5D42A1B079729E276B -DC2691D6B29EB3C37824D4A5C7A452C10C98E38FBD2437BB29CB8964ECB475F1 -3DF9D1EC2F4723CFC914DF067470AB81C22F69FF0A615F693C0BF7084FF67DE4 -741E765B47E222EFEF6DDCBCC5BB5EA3FE507959AA9CA4FF0CEB615938095738 -AE8107FB11FD1C35A85721CAF2FF491E90F4F15B4A8F8CBD72EAC28909FBD231 -B0A45D94469D2C03CC351E5C4127CD2334F94A1EE91FAF19DFAD50D49DDCA165 -1CC936EAC431720FEEEC3184C1578EC4E9C6084EF6C6A30A327A455DE14E72F2 -0ADF4A1DC4232577BA25B75DAFA460FC1E018DF361AA3A8874EB6B445F973459 -83E3C1D441BCF8A100C22DD2B94DF2E3EB57C2C792A2C789137911DC67926D62 -2848C29EC41A771243F46D48FC17133E004F9DA9202364E74773A22999E03437 -1D34277B9724E78020DFE394298E990132C6647546B2F95CC2B336C40A335EAE -85E5CE36670AA9E28C37E43AE4D5CDBE11352105A1A23B2B781A88EAE094B83F -D9FA26C3F500B5BA7E08758777F11A110679044B09CE57B64D1EA9BD4BCB4E71 -E15E27D15A83FC12ACE44971B199C9ECF06F20DBF062B6654DC6E15DAAED262B -D645A7B0B9F6A4159201A1650DDD4F74EC78F5EC876A1F58F351BD3AAD7C46B9 -076F73EC8972CE1DA144C78E629FA13B34AF57913B2101A4A236DDF2FCFF1834 -1C24D8360B9D8A24CE3AD889967CDE59D26511EE57B2C06F05AA04788E1231E2 -854E0A2EE1A5CC34B44547D9EBF87FBC6D1B9E0E5C0323D1BC82EE7358F247FF -6EC3C4F7817F405F91B5AA3FAD663BA2F7E28FC7B50427449B942D0A3820D2C1 -A10EBEBAB909EC5072E37106156859B98B0EAFAEFB8E13A4EB6A1E004B525C69 -DDE72B04661C425A7E03FE440008695D45934CB6192B6A30A5CA8A3FC61D1EA1 -CC2E1F17EA42F6A562E063C2E66B90189D123E6570A485D5019BEABD9C39F639 -6601DA48143C88488B0484E823A382172B3133384336F5369928B5161B7AE927 -710CB575FD233FC0908DC203D3B9A8ADAA0F454054BD29B037F3FBE0AB0F5A50 -A3B80660E06E62CB7306FE8612909E8DF7A1CB7B39B77524CC7472B3964C7C21 -7F59E69BEB0EFB64AD1F79C38D246CB63F61BB31DAA2BCCEAFBC1F418F2B6DF0 -292B5F8A4763BD8BBAD841D0A08D3145064510D427C5978470067ED239D81F6B -0A10477AC233C934CEA58FA051E7F1D915CCA135A0658BA7736574DEE0887216 -CA99343D134715DBD2A5C46B3BD995A4B106DFE5A24347DFE38A14CBBAE8DBF4 -F8B7F782BA8FC181C3F8FB1DEC2C706D7DCCCD97EE254FAE1A9FC6B2466C04AF -626E2A59C8B4E96FFF0DDA9872209084296276E54C5E8BB93E043BD9C9A36AED -2C3E82BCBECEEB0C2DE7356F71235D9CF94EFDD4098B0DA80ADEC47ADA99A946 -B79DCE7274C6DC92757550B7FBF608886D3196206A3ACAAC643395C000541E5D -19C9EBC62BE7AF3F3F81BBCB0476BE81B2083E8802DF643E0E4A8C873D17BDA3 -76141A6F8C990869A3DCD7AB7F46C701DC92ABDF4AD9F38F01D2005415C1BADA -9832C0888E5926C5344B85F4830C17FC928A585CC745DC25A7CEF3B4D41C6680 -219EAF65CADA5524F5FB1F09343CC28AED8FB7A164C25F9CC5E8FC6180D08D88 -509A93BF0AC28ABF2B9C27D5707C4F0188E843E3E8DC73A58D74B4D88525F699 -5B98C71A6982D6DBB65B105B2D6E65E8171D915D8A1BBD89BB160C96F478D61C -EC0FBEEB9AF29705CCD13061097953825DA7354112DD72F1AAF30EBF508A5A02 -6C7680AC7583974BF6A82F4AB9F35260EACEC1C9036C12C88B28B3C2467E4FDD -A22FF5FE59355DD4BFD849B5AC6C9F52DC51A3B8A4CD1AA7491E785B0DF81C1E -33B610B2F1B3595C0D82B86789D548A92C20F5177B17C35A961F858D7DF0CE07 -CF9A957E2FE826F2C6ACE69A2082EEFD86D932C9C3574160AF7784CFA05C1EB1 -A881D7AFEB71668F1DEDA3F8055640E7CB2E7DD23139FDD37373FC6DFEA85C22 -B59330D72D6331B8A1D28A9B3D2172A177AE5CF0D22D28A1911F9F3FA700D355 -F84230610E2B79A735889C5CC591347AC17F9E65C03C0A1CDA2CEF75CF01D6C7 -C6D5F727258F499B09B0A042A97F7ACDDD7B188A5B917E3D7E7A411A0AC84F59 -B96A7DC581B81019168C31F7E5F6EB8211F1F44B785391D41E89565385D15D9F -66FB6986A66B2460B4C8229E244A322ED81FEBCA8E2827E4A5E54236E33A788D -0A06625F92AA6347A73A477A6A37292BDBF2DF42D5FDB1027DCBC8E481147AB3 -7779E5EF008A67808490E7904DFC740E38BC185CF0C8F0C9002606D31764AE5D -FC5F6E9C330D43ECA95380B988084074E8C268FDFA357F7045B7603DFFC5B0BD -01B257B0A754A14A565FA0D8C89CF7C4C9FB69445ACF7ABEDBEEC24C87E89889 -61DAF3144291D4A8E7ABB3CA95F9E89AE84649419A20ACFE872E8BF81C523626 -6CC14EDFE5565FA25E65290EC272E2DCE660A916D60C07C4C9CFBF539C7B5497 -C55F8FA22CC53374F6E07374A73B0F6F68FC0376703B6E73B319312448DD1CB1 -962E16A84A3873A322E7B3C737B42E18D53B02BE9EDB07D21663D0ED6443538A -276EC167D6DE7B94625C6254FB5555DA81B5D6CC92191D15C002F813A73E19A4 -A7C63106EB5C5EA7BD9E1FF3D4C3BFB6265C48AB48CC4A3FBA55B0D2D8795D55 -484F3E387BB56602B8C2EC4D04A8E123AD02422D1FA04809A7F2884957E9DAD7 -EDE67F91D63FD0D73D89D9BB9126B5DF3C1C09CFC81A7C60CF6463ABA6197D2E -CC1E8339E2F5A26569838E66E7024DE8BF50BFFA3F1E6A923D363DAFE4751B48 -D5ED2CD68C5C8F248CA0C0A9B9CE506BE17B4044FE73003395274498928E081C -450385B2F2D9FBF91871109F137E52CCA8035C9B30D3419901F342AAB26F874E -449F214DD406C210DCC35EA89E6A0397E5AB4725586EA12B8C10F41D292F9140 -115A57DFF19496AD04C0D9A640F7AA25E9E22A05B23C7A6FBCC115E3DAC7A34E -BCE9EC19AE54BCA3A7FEA7AA0C23B24870FBCD9BB15AB17F7002CC33ECD6F0EC -4D43607C98126E7FF7A59EA187F3DEF3B6B1A174926B2D0CED8159B3741C0F67 -A16AACD009847CAFAD44B338D2A4F3148D6CA437A8F7709AB4D29EFC4A37C256 -5A3A52282ED1B5114C14045D2A3806C8A7DB6854EF7E158DB4CD6C4F84A46047 -098F6158763C0049A17CFADB12AA198B74E7AB62805556BD9DB8424A1037136B -5AE30853446E67EE01770DC8153A906FC71DE0D8C85B86DDD62E6951B77E1709 -900338A3CB40515E0636185392979B2BE52FEAC763930A99019C675FBFB94041 -DC09D119540CE689EF7C3ABA5D62573F6E4559B44F3F8AE1C3D04540525A10F6 -501588CF0897D767C84E00896EE7CEF9FE832E772AFEAC08B1700F8F54056E19 -F05D44DA94063E497FA35C720A6EEBB2156BC1D91E68101C366AA5BC68CDC2BF -90CB15EB12AE0F234B370EFC0B4A23C4E503EAF5529A032838C87F51FA806214 -41BF8EDBF22C89F8905D4C8F7260B2269180C6E3127ED31ABD878D74EA7BDE87 -F597D440AE923A58AB02D27E349CA7CC043B946D89D81C8AE4264863989AB2AE -5061880897F46E6CF9519548AC8A01431C746C482F4B4C6166788D372CE9C997 -E233DF9597857AF04E493EAFCE780FD229D04F4FA02CE51ACF4BD4CE1917F19D -12C4B25B1A3575F0B41317EEA24DE1BEFDB1BC3AFD5F61E512238726E8E3A31A -8B2F3BE79948C8B1B6CA815AEFE34B90DB93B7282C775D1FE88632A41B4FCBD2 -A05A9A04968293E79A8FE18892B806179790119BA3FE378B2AC882295A25C7FB -59C0F458CB0FA4B103153A2AA534C24ED96976843EA8B30E30E6DB279426C24F -DB7D8ADC3FAEDDE6F204824C5ED8A31E10FA0B8DAD46E1BDC4E80436148D1134 -09D08C56667DE58A1E78DA8103A4E9D6ED7DEACF7561BF0C85039468226296AC -861156CB0F0FF2FEC76D2A32E7E49C48F06A95D61A2FE40F135634BCB99FE538 -1F8492A5CEAC9CD4AC76533C237259E077AF4F1F26B3D1B0EC473CD56D3BAA8B -CDDAE26E7CEFBED818C1DD83AB0142EBB928E6FBC0697FD81B7A73B5CA05A16F -11EC2428A8A77674D63707F0C91D78EC64F8D5F648199904AFCB27DFB49FC8B4 -CBFC4869BC0A2FCFC7AB259DDF59A941CF4A1D4AD4F451CD7FBDB168FF72038B -F1578D89C8F938FF72D408753AD113114460BEB902B7A0EC4F37A6FE3117E4CB -625A664D7FC480E986681C7E3055036ADB8546EAC44B5F12CB4001039A9DE56F -A61D523DE1B0F83609E46E38CFE4146049420154A9C7C75622032404970B674D -4F79BC99A5F3F720A45709338E8C6A529257281CC880C8C77CDD0F7E6B495D67 -AB139E3DA9CCC3C99306C3CE9B0E53D77B1A009A261B8A22B789BB67934EE7F3 -A1CA8C2170082F18903F335085FE5219EB3CD0ED4DC01C9A45426C26046219F5 -3CA60CADB58F6ADE1FEAB848184067C6ABFC365553E20960EDF70DC319FF9574 -654155F8AEFD9864A839EF5E0327291C8784AA2DADD37665FD8A2D70066411CA -C88205E79FF0E2C2FEED0661FFD3736A81A26AEF35599A7463B9F036D6B22AF5 -A6B0C9254F72BECE010800BB32100A745954D96F9A273D5BAC6658B5433BAA80 -22B18397514F4C3DA8D0AFE9ECF437788CF11071BEDBFA9D5FCE42FB0896FFC9 -629971DF9C78E9C40B065C909971202797E90387D12835DF3D305370094E9B37 -4D294623FD09CFDEE5CA6F75827A69303D30026AB518BE812F021C7B25AAFE70 -6485201252BE6AD4F19F33A18844904890003E57A763FCA21B0744BDEE1473E0 -CDD16D4A0A20DDC9B9CCD3E7146C95696FBAD1D1426C6EFF8733219106B56B58 -42DFF423398F878930F85DA3245F6E248E98674144209F1DEFC9BB3D80F4425E -F6CF06E89522871DAC2865 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMSY9 -%!PS-AdobeFont-1.1: CMSY9 1.0 -%%CreationDate: 1991 Aug 15 07:22:27 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CMSY9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 104 /angbracketleft put -dup 105 /angbracketright put -readonly def -/FontBBox{-30 -958 1146 777}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 -7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 -A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 -E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A -221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A -27D1663E0B62F461F6E40A5D6676D0037D33F24E2FAC2B0009AD3C8350CDF8CC -65BCA87979C36D14CB552E9A985E48BE4E88ECA16DF418749AF04FDD2B0E1380 -D281BB2476BB45FF30946B247DFD7F57305FA87E50CA338121C71CDFDF927A9C -77FF14CB4A1D6D80356FB1171ED38C37702350497B44E42CE31DB2F493807DAA -15B887C671199A54C4C1294BC520F5538C15556BC43C9F62342B121C6DCD6C5F -491DA47FF360201EE21C08A781ED0589A6DF91B99FE118B9B29E4F068672E52F -1A06C514D91C4C937D4E642503392B1CD1BF5AF0BCA28EBD840AD76CC39AD7AA -CF2C05711374F7849708E1106F88737C9AA60612D384CA8C173FF1031EBF6EA4 -176136DE1B9F29E40E82680A2CFFDC24DA05853307F1D1F6537D061EBCBCC5AE -E6316380ECD8E63ACBEA9FD1FC28949366850AAABCBC9552CAB2CA3BB934C8A2 -14C9DFADE24D9214858B1D42B2171DB18A475AF78868C2549F19555AAB07F586 -58B28541C74E14F28B68DA42A9D46C031CBD74FC09BFEAA3AC1DDC68B7B71B81 -6003C9C6AC8EDDDC046D247A2B8AFA63A3B1BA1F12AE0B4DD07327F0138BF470 -4630E4B5DA55C194F454EE2E872E0ABE6B879DF2E87CF81F75D79F458F7D3F81 -FDB76C15EEC4125D18685E1D8591C54C0B0D069E2ED73434617B9D30E64457E6 -1542E4630E848948FF2747D5C31B9C314AE108931003DB9F76644DB43D245499 -2D28E8452E50B1945E13A5DE2A8B93523D3671D1C7ED07EAB6FFB559E5A1F828 -B22D2FAF349B40C3B31FE806595F67C5E75260514F456FA0013668D948619514 -0EFFC35C1AA131AF8578A254AE62CA75A6631489C78CCE633A3B302BFACB +2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 +87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F +D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 +92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C +295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 +409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C +4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF +2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E +0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E +B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 +24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B +43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF +D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 +5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC +96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 +7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 +0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 +B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D +AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 +97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 +FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 +20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 +0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD +F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 +3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 +A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 +5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA +2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9 +0E172209FBE3857AF495A7F2B34BC895A39A30F903DC6E3202D29AC110D868F4 +7184CB78407B8B9D42F6375F67FD4B828592E4A977B9E71854D143CD1A9EDCD1 +767CC2929E071FBA4C3D17500E28A23F697B5D5CC68D5F56EAD14BD504E07182 +3FDC12F5404E74EC1C02AF00C1A6A17F958770ED4A024F5B3644DEFB61F2578E +56013D0B4E7CA3AD255E23DD63369A921D427EEE0E098E8148B16E8A5613A8F8 +A5F1099E15AD16EC554B644DF306F0CF3571055A81F1B464529DB49E919F88E7 +581066BEC4765E31BBE28C245BBF0B74610DBA30C63A71A4F3B60593A6B41C6C +636C980828CFE9A3362FBC02F1967F0F770A4790F90DEF9D56E0A76B0703FC58 +2841E6E8D984FB476D4FEB960FFB6B386EC6CBB9EB83704B0AF63F38C77090A8 +DAA165E6C6BC86601B14F8E9F504A9D578AF05128D8C1BCEA9D21057958D5DCF +63459352EAD6B4A2A666CC5D85855641CB31507F9E30405977B74356FE985A6D +541884CB65A4F5A8D4C82CB9D82846CC510CBD243E98A0011AD37A81047021DF +46F69D7C3DFAF2F10F1F0CCEFBE12EB70420BE90C450975434E223C67D24226E +8B62BCA6BF93B0B1373AF55E4ADD92775B2DF199B6599CB02DB64B2D6160BEBE +449C057B5B2D226E0F5D7CFB5C9A4A7184FB29A595E91252AE787861A6331FC2 +6605C995D55120121CB463473A7CBD22F270D56CA8E0DA99832A468D399CB9F5 +A1CBCF0031D99F3C4F4B78A0944BED5A7B1AE23E3A66EED453917F9296077306 +06CFA772BE60854A30885DC5FB8417E0D3F7AB45ABFE186D877A377F5D17DD35 +0FAB81745294E35A5DCAB20321C6ECAE276B63BB17366867F346CAD53E06AD96 +091CAC75465BCDDFDE9C4364B2A8EF496C4CDF76B058E4BC1F616F6CF62FB60A +64F81BABA7A729B8CF679CEE01B1C985558E8D1493C03B834F3696E5511A1917 +2AE7E16AA8FC516CD2CEDE020BC5777598165B6EF2310F4DBD54FE14071101EB +47F4B2B59778B1EA7DE13ADF46393E07DBE2082C2487944A71CEDD4ED7D3D877 +749D2500636C3996A34EE0CBA770F6B6A655DCB9840AA8236EF3F6182E1C8997 +395077D9DB15B9D0A2DF9A3F6042C94E6E492C965E4E8542AC4AF5B21906B6E8 +4AE2B01C0810E38BFAE99DD83EBFF8E145D09F763B6B134A25A1CC067C6DC1D0 +7286045CE90BA968598D83E5602ED96C72A424848E211C028CB344D95DA04ADE +4C5DADCE9009A72B6EC01E7B5CF8C52BDFD2B416F5E1833F514659D94BB2F452 +EC4F2E65CE71AAF79106A0468D76D283ADD44D7DB5760AA429D61C1DC2E912C7 +9446C19557A1D12E7116B765BE522EA166E8F0B604807215323DC5C2DB1F2E05 +246873CE189E03FA291A961E4AD90563A8F7B0E08A67DE4CB3607C6ECA114DD0 +DCE97976E208615F3CA13FC44041360086A4A173D5441D9C33A38013099F73E9 +0FBC96808F7442FD4D56DF7C4F2D4C9B2301F7CE626B4C6C1617B8F1584DF195 +F92FC6385070EB02BF2541307E4EA34C131815FB9028C118F4B792C5E92BA39B +732EC013E2B29FF8AB36FECD056B8A0123B2E0E756F6F36D1121446A90F6BFD7 +D076C80FCC1E88445AFF2C4D17D25BCC028840AAECD82282BD3720BDC1ADC56C +9EA1525E6DDC2B3C5E66115838C0168070EF155FFA9EE2AF0B1F58736140541C +42300199F8F7509DC6F8FCB3E3F76E429A92CE89A195FD2C39ECC95D90D8745E +5667E1399D4D54788BA3A46906538E24B3846FF10246C3CC049846391B8728FD +9EAD19AB90473454C26C6CCADD66E6C5DE8225A164730F6778DF10820C2BA54C +D9E5823FB4FB192F7210200093A7FDEF6803F656D3201DD7B065E834205A528C +BCDA52E22337E27447C2C750C3730E9BBDA96E944A74AD2B02E4CF6D3B5B7E03 +A9D0DFD550C7224EDDF2F7CFEB0818D15545A50333AE7A8D44F5183E572EF324 +FF51EA08E93305172AD6945C1F023676C538160448E1DF49DEC2BF386B4AF07F +AEEC9D2E0A70CF68473886A398DC83F0CCBE0955E80E7CF44D03717875B89ABD +780C448DFAE200862748F1AEC7F958C42344C93D6B6EF29DF4F563C4912EA159 +4E8C77EA5AC7CA4487E9D29D2D13EF45DABA13F0D1B922CDF7FB0F347C5857BF +EF7ACC16EB538BC2217B0137BD575DAE18F3DA198CF90B0DCB373040C91F6F24 +486DBBA77F6032A17FF382FB14F4AAA3D3608ABA208E94B69A0A1E721B995E54 +F271E5CED22F28313D7FE5679610A946D3AA637765CD441270BAD7808844363B +4251D831391E2C6E88F609BD4280D2B07663B482A2C018512C665BC7ACAA5A7B +29187497986970C06AEEA1CACC1D9375576B85F2BC1CB9498A8F60C8466133AD +8D01E2080BF508B1B4A372209F5CF528986EFF0FA4333BF92EB50154D1CFDC92 +57BC2210E3FF670DA4E64F98C6CB3F396AEB146E7F845F62AEA83388A2AB028E +F12C1FC987897640ED50DD651EE9B0710138751C2E3C9FAA647A4A8D52B0E267 +11108B99F7E090DA4F777B73A33B006C209307F2170D75F5BEB1B576C1A3E2DB +9207958A900BF90786908A9B9CE1DD9EAB4D6EF7FD724B2A22F944FEEE17355E +D21493AA355501EBD985AEFB696ABBC75C40CD1A2FE0DE4BE42F16CF7B599957 +E8096363723E2BBED8B24551DE3FAB160985F36ACDAE7321D7B3A9AD0F164B08 +52074C54BE452F5445D375B85DC2F7F6AD2C0794C0830AC559209E68169DADEF +F78B82317AB6ABDD8874FFD804F70730A9D084B4E9E143226EAC38E7B1F4E1C9 +0270BA81A8B43CCC2F8F3B5E01E90284BC56126233FD45044FD64E5B2D159EB2 +5579F9FD11E0C86CD4F3FF5D06B11BCB1A2BE95570307A372E5FCD0495611D17 +623804766C93D6AC547AEF388F2A3598E519E3D41353F3ABB6F2EAB767D740AF +AA6ED9641EB3E75E36CB9E4779C5A443C4CF780F47CD103CA77C0C873E8AACEE +A7BF44436605A1698CC66DC38DB95393CECED515664ECA7D744AA1FF262F3DC2 +DC7A6420735E7CCA979D78DC2A46C49D0AE793B6DBEBB2F598149827B6A53AE2 +2063E781A6C9A9DB2E3749E46F5E192954E51AC6A715954CA0AC851B2E87C33B +9670D407D1768B181BAE10589F38DAA5C0DC4C33DB7D5BAAC1A23D10C311C09A +35EDD551BD1534D3DBFE58D7A7AA79F93772EFC6052AD3E8F1D196073BB1885B +FBF95F9BFE07E8E2AFC23358A1DF2079C7A6E8D221617A5A6FEF9FC048CA06CF +F2353B9A16F17D6D408FEAD5DB180AAFCA1C17BFB5A7473076DD4EB598ED049C +9469628318347508C2BC5CDF052D452FE48ED25D7F3FC062C8702BFEAE853F1B +CE12F266E2B4CAFE23E2A6BDB3A50669CF1A4F4F1889A90B77A69F00597D5568 +BCB4D9F21BE26267E84AF5C401F96B3B23A80D7FC6956ACD1E0709D0D7222498 +6417B31705074D6728F508F21A3CEA89CCF53F3E0C4E03A2CBB1276A45F456A0 +128F0BD9E095457527D9B6A248DA7FA24ADD7F0B0A7B825FAF9AF69E210FF3C5 +73764761DD61D03DAA7AF4009002AF363A101FDF3BF338247B6B2215AAE38476 +AD6613B5C7D9D0BAA9556BE4C57CBD3C0A86F5446FEE7AB2B738E4043A7AB149 +DF8A86270E888605ABEA1962CABA87E1B6BE4F772D0278FA5286EDAFFE55ACD7 +97EBF448FAA44F33CCAD8A28E883F03EADB5AAE23F700571F6A1ADBB515216B9 +02B59E11FCD26B98FB61871DF998E725974B71BA9B8075C9ACA5BA5AACC43079 +28F62018463D91D404A1024655DAD4CA952E2939394CFFAABF278DF6AC311007 +F9D7FB5FD477B669C2A068BCFEA52F248FFD1D0ED2E47556DD686E5090F91265 +A9B7D19F400A6A056A56C0EA9E74CFD16484BD2767E6B51F5AF34FA6030BAD0B +A791CB6307133C9C16E63547B41DE8A67E0E2A60DBD575D3945B8E29AB07A1DB +E752B54F6B423C787DC3E2E48F3D546C2F6245C8B775684CF1106D621C64E111 +BCC2369ED42B5AC1A43A3F56902CDD3D1167EB6B08D14ABDC75B2E50175D730B +D2AF00DA66A847A3C9A49D447E6071A7E977A58E300D96657AABDEFFEA489DC9 +75AE346C6B9BEF82AF077D6A90489FBF0101FE77BE5C3DC2670765688E014FD0 +5E0E8A2210CA3EB3AA78FF1781552D0DCC4A98A991D582F5D40A0174E33AE2DC +715F5FCE505E8333530611DCDEF642E35839C33C9B94C40792D970EDCBC9CD16 +0EB0D3377020678B474DF8CB1EC018C586399ED22B01218B5C75CE40EBBDA0A9 +EDE1F4E03CEB5B3EECEB0694059162830F53EEBF77CDC7550C20DD9EADE2F052 +6CE34C8F67C21BF6005828D755E857C058E6C7060B610D801617A601DC3F8EAF +618AD72C4828E33967AAB60B411DB233B7B29D62B017FC51467603FF003CD000 +607B8D8DFC04FC22A178E6A038ADF4E8EC72382906BEE75B24CA8F6BCAFDF77A +2D0B5DD4FA43E1007B84948293F8C019DB9979523DA8CA732784082A6ADEF415 +5FF813D469C337441EAA8CF9F920BCA094744A306D4922CC420757D541BD2435 +FE2717A018C89A5490FAB88D6984C09E5C7F62BFF6DFCA24A69F8E29A9DF0D5E +9FC0A12EA1940F72D90DD7CDDB82B2597DA1CBD8F4302F9598920A9B9AE67D0F +E10B30B928B6B2669A08792235482A728E9549E76A15DA1029BE883FF2715020 +73337BEEEF7CAE168CEB6E2AC916D5A68BF4211DEC462703828F2E5CE112E398 +7B79DF6389E5CC1AEB74BB4E4C6793A2666BF9EAFA72BE966C9451104CE2CE24 +45894DF3304E620F484273163D9213853D242DC308055AEE087A588A6FC8CA96 +52D94D576539C3728853FB9658A0CED91EB96148B806644895A49328625499D6 +3186BF65D263D138AC4027A43FFF7024518037ECC474BC3D42307D474312D388 +A163D7DDD77003116C071FF5A84B61DA0E559E96B427ED0D346417236C1AD6E7 +B1CAD4C7AABE7A900D6E4B9C8D472C8909123F0203E285E5DBF7C111B18AEFBD +624DD20CFCF974241215364B627B04FF18D0068835B21C07739A91DDE7B08FE3 +82D175CB6A9FE5DEC9DFC4066339988F06ED8F41E7700E2D0B23016DA5119F3F +9BE6162549B3B4920B383980EFBD90C90AD4E935A9816ECB45ACB0D9F13A3F8C +BB175A17070C5D6195F064CED7176E8484A88D3FFB76BD7700F1CC331CABBAE4 +C89BE8F6D93453E30D2BAABCBDD3551CF2A36BA79E99930F6DD82BE1B0546E9C +7E0CDEB1C823D75FB0998300FDDBF750A43460D0415DE713B7C2A5E7316D020E +B4A20F987C0A996DFA94D6833EC9539B0E75528F7E9FBBD4C4726F2783EB33EA +D564885E0233331432CBF3424C130D3A96F79F4BB503A310D3030BE5AF110CE2 +7A463DC21A8692CEE0A80FCFF803E7202048A8F3ED58EECCC8CCD35B32D414ED +2FE715B39DBD34CB9AD7FAFDB1A1993D3AD5264DE6A52B7D04FD681A28BCD3F6 +80DAB12C43362512F4CECBF5438B3A72317A1BB884DB9B519A8DA6CE1CAD2CC8 +81E283839366441718896F219440D63D2497971BC9E5AFF32A156BA3AD297EA0 +46DFF3B39E4EE1389FB041EB63A82529BBFD882BE02BDE0B25D15C5EE522663F +5C7D054249460D66987AFE8C7FCA65A88003DC933240920463D50130F7A79F85 +17FB7EA80120C5E91411366F06953609323B21A4B5702447D1C54A08A4104EC0 +7C2F9B1C42EB601DB32FEBA0F5A03B7EDF4A3EE9B25A26E4D797BABD1D80E6F5 +1EE2347925BE9A99D7563053611095EF6E54675E146E3B04F3E0F3C051EF3175 +187665A2C7EAB425A8EF999692BE5C224A27B635E249618CCFBD80E7CCB959BC +3DAB0121A2CA60F33E604591C285A31B4B289F44C9E452C7AC45994EA9AF436E +D1282AFA204248362A2C93B4574663B15787575C116CFB343CF0AEC7D593669C +A7D457AC8F865266593D38C52EF63F818835F45C957D2BB9A216EB42DF410DAD +BB20BE33D50278FB254C3414619ADE4CAE4C296DCE73813C777186EB4E67E0C3 +958FCAACE325BB5BDE181053EA6A0C55972CA85A56EAA1C1E3DC9A6534602C39 +24645BF60AB0BB12873BDC5AFC9D2A857C6DA73DAB8B476F8B0D0275220E0A9F +82EFA82C02AE2C375ED3AC6D372590DE40842638F674E7CF92A21551D15E8EF9 +86259CFCA8D82AC06B5B7BB79B9D7CB7C711D5947D01E8FCBEB3028BD300139C +819123EDD7FED75EBA789815185FF47EF9BAC1F23433523A1F4A1FB01153ADEF +8732F194895831C0A1C3D0A186F788BB5B4672A028752287F6570FEDCA05B4EA +0F45CC407AC51FB6960CB331514FF07C7FB6AB575A9558D6C16DA3C4DA01F47B +66617F310D5D3D3197A5E7400D72FD86FBA372454B9BF6F7E2D937EA3A57808F +792E8E51CE5BE1EDA1AF93768B37370DB0075A4C564B128779152E8E363DCA39 +C4DF701E223ED5088F7B71FA76BCC01B3A983E855EF34E6E660FE58D4615CA18 +0868D0104890EA7B56DEB102CFE3A2E6EBD9BF225C51A9BEDAEBE67425A0C3EB +4CDF81701BE383C279850DD8DF20956DFBDCC484D2331F9435CBBB81B57677B5 +4C08D89FD133EA65EB64D26AB8A3A5B69EB04B95DE0B06C3E28D2C6BDEF75325 +3A5CC081DDD1CFD2B505FBD4EEB20E4485F1059591DA43E4CD81C5D491ACE20F +5F71533978C0AF5239EDC9F5BA1FFD5EF3F11F4924D5F27D3205391297F4F6F8 +1AB40A0DDE52ABF5C1A8934B4687604AFB30D2CFE4E0CD2B3E135A7CAE24E872 +E5C67FEA64A4F404354C6F8F284DB570123133B911624E23BC8DE3C6C88F49EA +A78C39621372444C86BBBB534EC955D1116B95D50A7C15EA6CE8644AC2C43382 +196E3ECB853D09713D83F9AEB36CB66BF51204EB72B5F3D0D428BDF2DE64B856 +A0B35830D72ACCCA11A8E19071DC8A3DC7907276FE897AE4545BA75E4AC26078 +046644462A4A8470E593273DED74D8438A7D64625FD4F3E8FCF4062A754FEC62 +0B42D9D0B1EA160A11BCA8C16D33E840455047C747C0D6E7C94B7724E4142A5B +A765C17BE7B49FBDC0CC5A91C837518E745A530327C229463BA7CF9543C5C54C +7E6C2357F18CC07A6D33769343630BA8E4F5AF449465789E48041597A7E4EAF2 +C87CFD08ADEFDCC8691EA54E793C2B2F6C9798C1207AAA3DF7073C15F67F4325 +D881C081634073B98A5964E40744B976744954727CB6C93E89B8B7797D7AC5BF +71F0FB317CE8DB3452FA7F0B6DB6EF9A51372E333982016D2B6F25B018C8ED5D +CB31BD9001BA52D967639B6DF4432BAB04A0CF33BC4AC5216BEFC9B3E7ABAB2E +88D5C93DDABF3ABA3D48781C168AF2D36B2CA24E3EAFFED679453913701E4796 +01091556E4AFD9BFD85BE266F63EE32CABADDB819911C2496A876DF4FE185EE5 +0CDC8CFBF824812402882061FDC2AAE8C85BF2454B513291F8D3C9C85B6DFD63 +628806A9B99D8D3FDC5B9809879C7BF34AE7D6E49736B8E7BC4E93845EF26FB6 +2D5DD1BCF13CB6A3D92924923C1608CAB3E63190854EEEAF7502D68A48194825 +43083BF0607815B532066C631C52C1B8BE3A1C9CF00FFC0C6E044EE75F097BB9 +7D75D7D04E9F412D0823ACA48BB0375270414AA399C72B51F36DBBA81130BD5D +94C5963FE39F8FD28B1B9C93306424AA6F70795A49D5FB9A567D62E4C506967D +6F61E3E15659D23A3B8A60CD0F90888C0B96488612E5253A7855BA567A7C6B3F +1973A96975AE4674332854BB40C4051194A564EB78DFAFE80A8CAEE74C42CDA0 +9254462ED0E1CEE88E0346672815FC0559C8C524FF2E303015DC709A239A2C50 +E49EDB65EEC7EE3A937386DF93D1CCC27270E50312440E06C6BBBE4E8792A47C +D063898C5F34D83BBFEF71DD8B2C081DC8D122A1B279EAAA44D69F5D95ED7DD3 +0820BAAD9C6E3AFF1E24AF5CED94E682FF612C44948E94B982C73A5371D97B90 +4BD25D3850B26F71F71EC4EE368C88582B1677A57403774BC15AD4A153B2C112 +537EF525582DAC217594D09373E745EFCF65911FC804E6CFB441F24416AF11BB +CEFDCA172D7BD04B2E207517A4E578F622488E3D88EB4ABD24F67CB3CB21394E +8B599E4F646A4B4AEE8424B2E322CBB4F98D00FDDB7B21FB72C9A2ED08984504 +42FA811EF7E8B99FC632BFA1044CDC831220988071A33FA5C4B4A0058384357B +BD1B1A113C3C4E1FBE658FB25D111B15A4C253AD44C331233147F289552664A1 +F0C1F186810459C6A41EE0A53EE20149ADBB40EBE3775FE2577A52BAEE2DC9D7 +17D807C801572DD209956BD69D672A731CF9D8747231EDC0BBF0BA5946978A0C +5AB3D4FD0333937C949AFE2E92617A4B46BA01537494101F96568D28993DB807 +3BCD5078A3D49E9950A6E373E7E3E08BED02CECEA8A739985F01E1C4293EEC78 +99D9A46E0936476C2A50CD25F3D8BFFBAB66B8EA5FEC0D0B6DEB314D2D06262E +C6B39A36606F745819252FECD07F53AF0FE4792FD615E329A49994C63EF1AFE1 +B28429C1E8A94EC01D0FB2EC7C0F8DB9DEB0F32947528DE7BE3D008BABCB1C2B +0442AB83B7945E4682BB77D4BF15855464CA59F6E2B67F7E97675F79A78CFE83 +C0313A826C35CD5B321A41EDB4B799B175CB0A27B60D71D24F4286635A354DF6 +84A777DF84AD8D3B4FCEFC6D96A8754C668770DB7A7B200B8E542B7490152BC2 +24B8CCA8E1D9A3BCA2325DAE70DD5109977D5F8C0568AC55F70812B1841F8017 +4CC2C36B4D8618D2B3DBF87F54C2141AA75ED0B5285D1EDA2435BAFC99F518D2 +F3F41B8F674095D15CDC366B8F344DD917EF647B9EAA1F499DDE25D39EA758B7 +D2EDD23E00B8182E9410C14BC31A75C2FE70869212B5F58915F5EF929C2333AB +B9833686A29D7D43BF99D45BD60439CDD5FE3A50ABD328F6C87701C714359F45 +F8664941CACECAC72308503C9FDAB00EF7941AE1EA57A3C4DA8835207CF56F29 +0EDA202E8EC2164041701D2BB5C31F46F4A7AFBF71D8487750E76BDCEBEBBDE0 +B0096D143E923F7B5E6AE139CC44177E86FF3C1348B097004EA8D359D45B7713 +00892975F37C2A2141432DB9D43D84F650575ED5E05DEF92B391562B1EB58CD4 +7942D928E05578CE75CD38458DBB5A0D345A80193D36158A4BAF4E738AD1CA62 +81F8E071DFF98448ACC3D3700A79FD05B7ABA3C06D166EF11B2C622438A60B25 +2D913DD1C1D5B84DF40097E303DACD1E7B6C70C17BFA2851331B5452DD60DF6A +D00501179E18756106D813BAFE909E32ACAAB36785409DBCFF0DC8EF504D94C6 +1353141DDEB71F73E33AE10D48B356797E2E8B5FDB99332F52728E4DD1B01ECD +D43535A1A32D54EE60A6168EEC7156FE6B2AABFC9C6C502B8B19D69E56FA5BBB +7B6ECFF2CD15C964183F3358D2C2D5736B11724E8B5B070C06A729A46606EF12 +2471EE0F28EB50B0B89334C903BEF66B9E6748EB62217C8C4869C2477E9D8D07 +08A53DAFA31818EAB2C9E7E3AADD92B6811B9E2EEC1861A56BDA86590BCB2ADF +31E762D31064C82E4517640539A598E68203C6296ABE191BA759BF5F1A64D9D1 +45A10DDDE932C24F3FD7EBFAF21E43217781334472AF231E4D0E41C509B00B33 +4494FD54A54E3EE5A7A30C148BBF3A8141F825DA530769C32B52BF44E11C00C6 +7F3F71A041287DCCC2B9BC1CAC1F393F8227C256F139607829D18A1EA86BB97C +AA02C568EE3074D8D72D32F53EC60598617DDA06352F83A66123D2183EB58246 +3078ED99ED3A3F326AA95D6E83C2CEFD6B78FE2F2E8BC6BBC96FBDD27E443221 +B2C9F258F0E41C0BAD87EEDA543A2240E4ECC1A0F27F8087310B21211D133DCD +91B0F57E649B550193B0A80946B9A78DB36AB95611BDF60B7F4E009306D7F92A +8E1092B2B87B57A1A72BD5F231F0DDB91B9527A1F128FEB68372CC0704900993 +7BA65818F86C935CE0007A6FF9DBA13B4D2684BC40AD7AA39F7AF164700E91F3 +82B2F393C4D071A58830C91287450D37091E2A750715BC7920137FF21EB45E14 +10C278990E7868671185959739C2373BD957140285B0B13D9BF99D0D895B0E64 +6B4D1B9BD58268B99C6AD6339AA9AF00621C5F19C604760794992EACD9AE35FB +8055C9EC7B456824CCB1F832A9216D853A2E74F66BB9006DCC3D5E00331A9E4C +17ADAF039C11DC0ABB78144D9347A2A2D5A1CA5686D602D9E05EA9F5258BC992 +2FF2D4B6F132DDB2B44CAC473EEF92509D609BD925BE5F1E0A4B17AFB88FA1DC +077B1B4B47A0C2A6521D98EFC7FC0618C07813ABB0AAD9BB44361E6960DD86D4 +1AAAF213B0E459DB193E47382564C8B43D5E2BB1A76D9B00CEE59A0BA1EB70D2 +5FD3907964AF0FCE666350CB0E71A2DE9F2C38068ADF8A80CD08AB3664F0D8CE +CBA06D3427E2D9CCCA8BBBBE30D76693A6E33F0FA093CF77E1D521E5CDC094E2 +C7C078E637FBFC23BB92C158411B65E3944EC1A307801D88DEA7D0ECBEFCD242 +6261F2C8F21353EF10EBECC427CD82D5A05297347024E4A4A1429C09A8675BBD +8E9FE30DCF0C1743AF8E2FCD94C5FE0CD84148336D6DE4A2FE1B9470C998CDB1 +BF1331AE586CAE6EA795E063A7EFCD5C517BA446C798CAD723DD60712F59E12D +9E48DEC3C28462EC24A720B8FF706560850F34D47AC35FDFD2321CF03E70CC01 +C17A5FFC311BC4F86FB8840984A7C6301DFE29DE27E61D4E2A21B45E93C67DF6 +6851DE050CE8EBDDC60D80B3EC6EC129A237F077F1CA031B64AEAC2511BF0CBE +594139930826B9C08E2964A58F135EEE5C49194A77808944FFF53C33EDF831F0 +9C6F8FD4986BF5B22AAC4F363B48B60BFEE02F289286435CD0558847F9F7670E +70784604B75C9B6EF327BE547B26634D77A65BDEB092418EC321481C0E54A8C1 +520294C14422C78CA00A56BB67E75B8A82F2D6F0B4536D8F986AD679C98C4E28 +1233ECE67645F2852D63608F0661F8E6F4B4AE19CA443D58BB0224C15C7250F8 +1EAB2E52C334811FD9EBE0CE83ECEC82FE75BAAE2970CFF8A48D96574A89E270 +EDF3172C1B1CE073005F3CD914283149A6ABFA26979FA942C02DD6D3B25DE635 +638EF495A73307E51FF0CDF0024E872B25A00D3BDB193E02547D5D22BF0DCCDB +97C60D1FC7D7E7202F3F8AAEB43A9DD8CDFDE52819AD152C5DED4CCE57F17B73 +4B49D33E6A94995F9F1B65E86E8C601502416FD071E53FA1117014B9B6926183 +58A94512114E8E65A93FCCBAC3490506915A03209FEE47F9F375F74ED3BB6D17 +6169D49650112156515F95AEF30B40886F7E76977921A91A81CA0135C45D8FEC +D1882CE1FE2FADDFE51FC81BA5CB3B25FCB1D66925A83F014915431A6FC8DE7B +64BCDBCF86AC60B8DEB471513A77A7D706F95B7831F6CF572BF59D2FFC17487D +4C7C1F072BFC246D205E5DE07CD2C847B5F952C9F4A56D5F995BF9C984059E6D +BF7627540F1385DEFD1B10904F38E89B04A2A10AAAFFFCDF844B83C2F42A96A0 +A9A56CCE03ACAE766ACCDB94D5E8EB6F1C65AC89EEA87C8A10B2054C62C7910A +AACFE3C4598A034FBE0EC9265FD121A036103FB5EEE6BC3A75F5DA03A4ECC38A +47467415C26A30863CB6B554DAB4D31841E6EA7BF3E825213B1B8E937832D271 +CA30CB39D34949D88A6505FAD3767CC6301AFC64F3B7C7314955D4577D1091B6 +D17B5A86F6B03FE591ECE351CCA301AA3186E8CAF897DBFE62FF9FE2BEDE52BD +8BF91A3332E70912B4F41EC27A5D843F40FE6F2E9D914B19C2B717CB3D758F9D +B38436B22EBE94F93234F57A5C10FD16338DADFD5E2506F36CD2C597FA71FCE1 +6DAF07C543FF764C69FFDDACF6E4D36FBC43B1D12E3D794E7D8CEDE19EA5A840 +73D9C27C0802B264DBE0A88BCDAA28FAA21768FC9162FD523BB88B33D47B83D4 +CDE6EFA33F908DC4D08EF99A66D4BE4F3B0EDC0571DBE24AAB7BFE6EF61EA800 +63A28D318F872BE817BDE61FC18547BACD2E20826D31B887CBB032F603D1A8B4 +740C630684D7D5277C102622B021A94BC6778E95EF72EFA105629F941589936A +8637EB305A4D2D34D4E91727487C4FD3AD1CD54835245511F92C7D5339706F82 +2166652497E715CF95C28550648799556B3C930853165BF7529BED689BBCB4BB +7BF17F636C8550015E1F5D1E9B84E020FAE16188A0E5D35219887925FDB3451C +6D748C7C01006F48D61743803C4AF43D599CCAB72B3BD3D54CA06CBEDEFE6580 +6CCC0AD4825D300AB511ADCB73D598D72A69BAE2AAC68E83F6158B90CEB61418 +931882921551622EAB521451A770B8CB37AF98066796923B2D2DB0360C8C50EF +1C38F511663CC74139C3A736C8D9E32CEBCD6C76CE7BA90BF99F8438FCA9AADE +9C2D3765A233F3407AA935C2B0E78D20F51F03D4AF95FD9265A5B4E81A70F365 +F7F41C1DE616150F7318725AD035FB85A1CE2BE0BC985AEC91BB729EA3C50696 +605A1D27690E1F9A044F0046E3C051454AF414D8499020ED8C125E50235B2CFC +4E2D40371B113B3F6F5A5AB11D9585D451390AC886DC4A63F09C99EEF844862B +394BDDFC170D5D2D52F334E260CE7F821A880C0FFD71762C70A0C182331D074D +05679BC6B45D3AFE4102007FBB7E8EDEEDC678C35450E3B591D9DEC9E0ADACAD +BA83A5AFDD1652D4FAC6879A8DA4D0C7F06F2C15D19DBC96EAFBEF722FC02F2C +AB5CFB310E84FB104BDF6E2F09915EC3AB1E37F53FD59C4EE2B5662B1AAB849E +554472C675AC8EF847039923AA1624C6C32286E9A458877C5FCECF7B6CA1568A +C9D47FDC77151406D8F87D2A40179067FC738EC9CD16AFDE2554C8B036DE44E8 +E028D2748C70F456C5A72C694AB55C0C912BD509766484D026BC6C9E086CB98B +FA3D2D198527644A5913F48ADEF18C34B02EC085131FFCB039DA40302BD725FB +C1624B2625B7E33BA8DA5318C98BF031D08363172BBD64F7114737F415F3C0B9 +593A6607699B2795F3AF151F6474CB1065F655D4F61F435D6D737D89A48174E0 +48916AD8E74E9AF0864D378967B44384ECFC992D07F3525FED977E13C8E08BDE +E6C73A9FCC110D592769F22FBE3AD16BFAC56612EEA2291132197132EFE4F8F8 +0153C23422BD913B9EAF0A4881BA22E6DB148C7120B3100321880B8938EC1327 +20B4D8DF046B0724C980569222BF08DED088D39E613A0CDBC6069B0D3D8782CF +1383AC14455985A6D26E7686BF6CA39B87CD15405D783A95BC462FE21D14BD61 +4A7AAF05ACA0CDD079E4776D48B6A5FD0D6E6DB159F09358B93CD5E98286982C +1DBA18A61D8BAFE933F94D8835E297B886585724F460A4724C706E90B6B4A938 +30A1554536A2A6FBCBE6145136A01EE051258B3D2CAA0BE9FA5D87617EAF5B81 +4989D0100D1DF1475D19591D4962F269788484833D4297B5B4AFB56E21AA7ECE +68FCD137FB888FE908ECCBBA4218026C0EE52EE046CD113B5185F093BFAE7F11 +964068B1EC998136616C69FF172829A1B24571BB5B6C6C3A9C4683FC99900F69 +AD839F972E4318B5DD3F189F1F7A2173F8D4FF60C81847792ECD2D26222CB479 +15A6B0FB560684CF2129879002019A9122EDE9E4879194AE5A363D91E7AFA33D +07ADF72E5C0B2B13496591662E1D14C0B1EB1628E59D7754E14CF28DC18D2269 +FC99697B1976ACCCC77A8E6FCE44CD91B4F11055FB4735D9A2449C3D29CFCB05 +95E9F08D0D359CF454C25C64248AB1AD08D71B452673448214A4AAA787623E6A +FE57143A557FBFDCFBC6FF8D6939725B59031B1C120AA7EA05FEF8123E8CFC70 +6E4C6F20EB68014DDAC3DD5E8DF02C131C26139D1266EA5E5082C07E1883216D +D23AD5C840F04465A12DE929BDE69193062E814D93D681AF67D50D2B7B1EC175 +27AF17F8F538D09AFEE2EE1A394A6A6E8DA057C74B842D9A75BAC2B642CD7B93 +83CEC2D79ED00016D48CDA845F1A800626239C919313906B5A7D1E016F26D1C3 +543A67AAB698E21CF45C65AABC2DEC61CB78EFC8FBBED7D1B7D1FF47FD5B5EF8 +1D45DF65C69ED1485859E029DBAB233A93E9CC86BD1509AFBD3F4D09655D07EE +2FEB614C28A7FF72B4B18B38FAB217EF4F59627B7E2EEEC0AA2D9739DCDE5062 +66E4CD49456D111AEF35AC11AB1843A5A6E2343D111A2F039554C195FCA18B4D +6EB5A869E06D046CAE3784DEBB455C07211257C174A28B9A01A8F0787A428BC3 +B1827F1CD86E9C9F2279B6EAC9BA07CFB55988F6622EE68B9E832C407FF6D3B5 +04973A4EF13E5431F06148CFEFF5B3A31D98A82D8972907C6557A33BDD20D053 +C967DC3399E4F5D61439869AFA1B293737F877FC4B544BF61AF482CB7FC1C1B0 +9780180EB8CAD7F07EF95919B4C44B43681FCA7E0818205450DBE4614CF0DC39 +28A303E4DB82C3C2289CD3323340FA5B2086E34DCB74C4F4DCF41AEA4943AA48 +8A64DD91FE7102BF4E40A43FCD360C3B0C5103BDC555193FC0AA209D9806955A +5F89B92A8AC3AB9AB3F036378B26197C56223E6886D0F713AE5CC32C71E4B1A1 +D5BCF53A9213DF7B3C0198CE0DE819FFEEF250132150EB78D61CC1839F9E4660 +2BF7E88C072F6B9E2FECEF82A24F959B3D37A3E77FAF592E1008E8F5F19EB9A2 +4735E8F64343E2CD69C298A6A9318C09E8242340BBCBFA81A83958CDFFE39146 +39A143B1F5E3247D50EEEDB18AAB03A584EE00D470E59E432955EA484C76942B +C4968C023A1143DC66D7FDDDCE31E99F41B969F6D4479B809D3C9464979275C8 +EEA46290956E7359F091BD876FB1EF5329048883A9F3C0FEF768F402173CA5A6 +30D7A5D57D05A4A8824702E76AA5F5D003A78E133CFFD42D99F6F02082E33D8A +90C7437604DC3900056FBF8F5F1AAB3853C554B8736ABE01FFB1E5BD575F9D30 +C36F5E11DEFE09E0A561FFBFB3E9F0E635D75D545246DA7D8F50CCED8BAD92D7 +0FDF181FB3DA4FE539ABDD8FC3579490A87B674B88EDC86D2F6D39CAF33AA197 +1DB1E5221B056B5445C2FA6447243474B1EB79A4B03B136D485AB4A62974F0CE +01C65B7CF210D1A9DE21849A9255960692068407635A23A7B0F0265ADDFDE177 +097C1F3BD1DD1D6FACB7CDF110BFDE0B2963269BD31E1A4358E4626A9D3C8563 +3D44F9196D567ED72539C0B750DDDCE780E14EA3B683CC098D464E4A757DCA91 +A7014851D8596285CDF52646146DD5DF679FF81359DE979D33DF491F3662C87C +469CA72935A4C3EB71A299BCF6E1B3F173130F86859A6F6F469B0BF3AF7D2E73 +0630AA1973CC564FBFE0C752FED518163E5CBF7C9CDD22DEFED51619838136EC +174D503ECAB2323971D68A3853818CE57A77EE2468FE5C7273C77B29315D98AD +8E0742DC918898F2F551CF381F162186F87BCA3C6DDE7438E1B06A4609FD3BC9 +2DFA788022309AED10281D4CB3A71A1595BE7DC1386240D95D729E251020B356 +511D5CAFD847AFFEFBD79862BA19DC4C7951970C0C9ED44ABA02A68FF5CCC246 +13BD451E7C5913C5DE0C523612E27FC923C74BFD5677EEA6457B02E0444A04C8 +3FB26E224713F2AAA3EA3B5FC50A36EADBE3AB0777D88C151F8C7503D20ABC11 +0CBF03C39C97DF7E43DE551D9E041EEA9C86AFD3518F9E9A8C2AB570E531D75E +AF59BDE9780919E64DF81AC24EDAF91DC47EBEAFBB5BBA57D5800D801C116437 +C63C7A8DE84782394B4CB699A3A0B0E3798324E1FCA522F5854ABC83B0D4B418 +4D408A0B1B900E8602A3EF6D9EE3BBA3DD876AFD25F69513FBE5BD51B401864A +76255A5E64AF2B28B3B3D138069D5906FD33483AA62D3FA2A1747AD444C55A76 +93FD19854E684A584C822F4A9D2C9799E83230E8774C0A5942806F3738AD1425 +C055CBF364A6EB3D47012389FE430DCFA3440F84500E35843CCBFF860DE1DC66 +8F32943568A0767A3989ACDE3FCBE70B0A2F59012E677A5453ADB258EC8169AC +BA489273284F03A6875CC457C5717A97D7B945CDA1670ADBBC5D3FD622EF483C +99CB7717190B5190408DB73E488FCED65518E8CA3EBBAB43449DB5F57810B4FE +6695F940926DE16480831E8E4DAD65074D989C772E1A143547200B733F3CA84E +A9EDC51A074092AB4963466806EA91E34EE4439D2C8F1AC9DC3B31AC04F94641 +D053C4B265C3387BC718B363C2BBC6C6F284935FD9C7FD7BA14A32B2C2AF1E4B +3739A2257C60B5DD3715E99B0EC878442EC6305224F09158B947670AFB74597A +5224189B403BA81BE4404900BA522E4E78AFD79F96E5F6549711D417AE05342D +6BE3A1FE0BA1F1633391DCB6E798D14A190C6588161AE82B101F77C973310252 +E90CBFA354C89B1D816BF1370F9345834A05EFB21E8C52DED86BB69EFD3C3764 +DBE34A571602F05538400E4BDA2AF7CA8B50C28AFC821B251B9EB5C3F4183836 +F27CBBC378621A244DD82BEC981A6D1A132EA870A09C3AE661B0EE145C2ACDCD +317B8B0CCAAFEAE0ADA2A777359170183C9A69E0CD629C17A0F84B3C32B3862E +2D4C313B9A61935F57F4F93D5292880079E6071682E80D9A87DAD6C609D9D141 +14879B8CA8A7449D04FCA686D44696FD8331B9E6EE6C2B59B950DE663964BCDA +74BFADA585601819C06FE1FA3C098F92E96AEE4FA6F0600718B127D220319750 +EACE38DCAC4AA2CFA1E5BB904F4BE757C68583F875426434819631882F75FA35 +62A62AACBDBE7AB41261B68B1A553C93801723747A90D71764DAF8FB7FECDDCE +7548D5167D3AD2CF89A4504EE7454F3BF2A8A6F8958AEDF25729C61A38870C7A +098D0F41A77E4C5432C4FF56E6C96BB34BE9276727C63FE9B4246A41C614FB89 +223CA46A324DC52FDC7186B468771F4F7033B702260CFFACFFF59CA7F6253CC1 +7344A2A4A885C5A5090F14EE18EBBEC69EC24D809AAA923FD9C1B386F9A64530 +C6379E44AF4824D13D4F947094DD3BE24FBC7D790E6BD0F1A6B3AE63B352D83F +CD789FFDE1965600535B61D91C4C2C44E5ED051715D3900929FA4C13C792761F +448E9B00E59184182398DFC523E990A2432F6C77F05C7A1CF7F24E7E5EB1078A +9769D53ED58F5523C6FC25441682DE3A91B0B14AC6CFFD2CF1ECC6264249B14F +9F1B9682E2A21E2A6070FCA63AF62E2381AA5F4180AAADA3E775891680F3BBA9 +55CBB62C7E80108A348AB2F99B664A9667183159DCE3FC08DDBCFE625528AD54 +9E3CF770CB13D05E4F9424F38FE35074CE024B2AABA2963A5565C70E6579EDFA +A9DA79C5E9C678CD9D988E0EE58DEFE3D6959675A004A236C4074B0452764632 +F6E5A18DDF3942BF038CF0A2AC9AEF98A6EE6CE5F2DEBE26218D2105A3807508 +5DB199DA8381E56E52FF8CF776A88DDEB9312BDD07B6AB03EC9E35876DB3AACA +9CFFBA40CD426FEFB6992C89FE4BEBD80681A1E01701A3DDBCB85E30D7405F86 +21D1D5ED21CB1F559096E2874572221B95FE3528F6571E46D12A89DD347CA976 +F0E0BCD152AEB860F53707461A50A4A2F0D5BD384B44C4122FCF544C3763A8D5 +D978842034B5B083D2C02FBC4AA897BA90BC2DCD408B77B0D14E9BC4F52E1F01 +C5C8BE41EBBA87969DBD1C48E69C0715C65A954603BA69CD423B641FBE43E859 +2D8024429D19182CA87670B2BD8F0488FB68B453DF5B52DA10A2437528FD55F9 +94C868088C61586E09CCA9CC24B7269FD330B69112A16776A08491E653DE7A13 +50AB14E3E6ABE9ADAD7B7601676AB0AA88C0603C1CF6E07B1DE7ABB6ACFE948B +E1B9DA9237F9C41B48F5F0708A0F3E85F0A12F1369AEDE38ED12F3FCB02238E9 +2B674E995A7DFB44459AE09702BA0EC70737213594F0DC1A5D4A9E841BE5D985 +5C42F5A9D5E25CBF85771D0C6D14F934AC5D3622EEA3419D362AC03FF973715D +A82F54E81D9A2DEA6D5047DC4706B71F5B8929C7D11BFDF1EDB5B4574B8CFEFF +A619B01E0B73830F3B241DA42B8EE022B639165C26445B1172D8F625E24CCBF2 +F86E2170EE96EB1B0CA10200E393DC402DA602415A150529C2022F9C4398AD58 +1BEC5AAB4A3D18C54E8DB9DE2AC089C066CAF988FB093EEE303FC99D12E355ED +EAFFA90F0426CFE25A69070FBC7376214B3A8A3FC60E560009A2159B07CAA909 +8DF022C891F54C2DED1391AFFE894BC990B28EB94A7EAB870799E6D0980974C7 +99DAF9F1464B4F3603E3382F195DED9B78EB08700546509F730E2C016AF19088 +289998B271B69468F6319AC55D7BF218CA407BEF60366CE694A4DFC9E3CCC5BD +9F30F14123B1E7CDB50344C45708E600A08B86A88AF3EA67D85C9C19D9AE3189 +2B3373E3AA286D8F4C481930920805802BFC8E51696CD82383653DACC794CB8B +F115851597EDF37827EA38B94657E9C7030CA1C46D238A181B3EDE8A3217CCE8 +519C5D0F74CDBA7DE1C0F2D47AD98FF5B1ABF695CFD1CAD1902BD47F9DE9EB5A +EB190C525E83020CC24830F52ED40DD3D5D9579E3CC02867918BC5B60C6CC68F +BF2DDA27F17FBF84BF7C4DD978CABE2C3092F6C9E201B31578FAC3D9655D8081 +FD8BD9B977DFD95FD1887AE024E7FD9202D3662B5C75760A4E70B08DA6C95006 +E7F7689D66DC874568B0FBF98B6C4E5CBFA96C306B7EEEFEB0A0D5D96A8472E5 +0F649A6C61CAD0D90D46C847081E496F4D523D471AF73B82CC6D744C9A274328 +7969F66EE4002C3B82B5ACEBFAFCDCB77FA8062A742974C27D4A4AA37C3B89B0 +12E8B6814C41776A41652A65D6464C8ECAF0FA42A28ABB9E84841D5D9B334245 +22EB2B835A002038B512C633BC20D7BF59C4725094A38CD11EEC59A4605D1CFC +E9DA9254910AA951D47A7108EDAAE8383B51059A0BF6357F698C21D9A473044B +7828FB5BF05DB0435CB37840BBCAA368D07CF44ADD383E521731A300CEDE2F2C +B108643D548331850F51464E8AE5D257EF53D51516FB4C4C4176A6D9A2F46DB0 +70B10360A8DD870C0B654D1002B8E25C9D39DB5AB34F4D0857D980999E5ED4D1 +5A33CB97414E39BA94A9799412CA6E08BADDD5F33C33A7BBF38B91F6E59B4C52 +25E8115A08ECCC5F54EE4BA92962A12402433EF12CF3FF90D50DA8939B50C1ED +6CFD48FE86B06EC15443B257E5377BACF3BA79C1C90688B54AA9D4A56B0CAC8E +DFFBA242084DD87534FA21E0174E4D342DBF3E4A44C18E6C976E5164DB749528 +14F598CFF640A4DE7D57163F18714D35CC9A10D727187097A0A6F42721D78213 +F1BFFE950D5505D9427C9D7E19D99D231001D2BA8569E8E49CDBD82FC0E358AF +A4ADF0EF2728D289FE4A5F4F8D6B8AC38DC3FAE985005EC396444CAA7582843E +B7EA619993758B7174F39155E4A0C36122729205C09474094F8E5E48341F8368 +702E7A85258052F0260B1A4F7E36D679E13E28FB0DE87275A92DF72585C1AAA0 +772ED992E6F49F3B392085586DDD87E6BE16656C673ED5E134E17501144D84C7 +B661005829B212EB53A07F7590196B217BD097914E955C5D81F9B6944AC83716 +E10A2868234A4DAE402054D384BC00ECC3C8DB95A443A4211A125751DB40A283 +CB3FE6125CC609A97C5FA631213AE1CAFEFAF41182459E13E97A4DA186D613C4 +08ECBBB9E6A40809883266EF6E68B07935245823F358C4235C446C750A80746E +8B156B6D95B636700AE9FF44704AE2DEEF8463282B171423F24B921874C9FD81 +5E6905B6266EEE8EFCD5164D8985E2EA84DDB0637B09B95B61A94AFD5899B26B +917F7984A7B6206D2859B4024E80C71B47FA862F6F648C444C8920FB8A6D6F68 +5F1DF4B28A8F7B3253C9FF97D7676FD694FB420454041D4249ABEE685276117E +5F59C853078E6C1DF2C54B9DB5324281F41AC6106FA7246C2BF540DE25BE4E36 +E2572AEA0A993F57EC8A19E7E78A7B8FF6628FE898184763440C8B52F8A8214B +C1F67D3DD2F63C60DB01110A998A99372F63DEB1002AA6F885F356B0CC8CF6D7 +208FE8B8586B03C760F26C300CCD82811D71C385FAE1FC4770027B2994BCDB4A +88EDEAC938E4B3144DBBF9A921A429824AADC7D1D71ED3947763F97E5B227336 +E0D5C3108EA260DE5237B6324527373B0937873586BE1E408B2326981242EC82 +247ACBF8169B5FAC8D59CB8377858A44458280852FEA8420B3A7C6E975D5A0DE +F871DBEEC19DF6560AD6760C0C69388C4910BF79F3CE9B8DBA56431EE3F60097 +BD782A01CF2DDE86662D878A5D5F332BAEB6C2866129120F08A7DFFBCB908475 +A6B827DB33150A8A2FA8C8C942C0E5F26A6CB80D1944C630C421644D6BEAE3A1 +DC78596083F8E0FD24EABD83E2EFA91A2FFC5A31F7756ADFEC46F6149F7843B8 +1CFFFEFC1A3624F416B0AE9E65496455825B53C2ABA1CBD2818C9F60EDF6AB64 +671A87B5B908260E44110C38841A3C2C47032CA91B904895063DB6F1EDFB0BA4 +5D28A4D3F8E1828BC4409BFF5ACD5E0D89CEE8A2418DE054498E8D1C82081E58 +E5365C9993E10EF250A644A4365E34C0E94BED8A638F3281404A8275AE7237F6 +14AEAEFD6AFA0660D1428FE7F6443F4686CA7CB0F48023D3D165158A2A3238CC +0D318B2042209B6522A7F42BD4F67FBABE76D3409FAAE2B16C27C5FC4DC3D2B4 +DD15497659235D1A264F50B912A13F43637350FBCD3BEACA5D3CF62260F44733 +48A4C4FD285967AC60A49EA5FA8E253C009A1166C8E402F83F5E6A460018FBBE +32CEA943B9871D9A4559A6EE776E46C6FDA4692169F5CDCD9458813C6C32689F +AA853F11AC89828E0FFDAF7D8BF25D9FA9F900D554CA7B2095B5F89688A5A6BC +B39508E0D96C8E33A3894A5E00E0A97007B08C64E1A14D080F3E2594A5A029E4 +305EC3790B1CACC592644035C2279226EC4227E8DCA3B15488173CE5231221E4 +A6DFA0FE8BF3912843432CC081AA1396874099332DE150402AA21D1DBA056548 +F6FB3E96488BD07DDB8813653B67C9D4CF67E5CD80C00EF70BA738460AAC255E +A0AE846B04C59A56009EB9CC1A2F0040C20CDFEC2FF8AA1245DF14D74C71B769 +572A15F5A8E627EBE5C8081BF6B77E251340C30EDDF3207C7923B7C70FC00927 +AB4F26BABB73FDFB7BB8002F96F1B14C8259A1A5CF1DE0EFCCF711B93B1ABC51 +A92E11E3B43450B7252E3FEB3491B36C18C35F5D8FDDF35D0D29A6AAD844B4B0 +A94079C01DC7139C526DECDE8F307FB8687BFB484E21A9D97FBA35BFB5B85927 +BEA114B7CD39C8FA313AA8AB4995C496DC3909E45ABDA71126C5649C1D8ED49C +C99A956859216BAB195F56412B73682520947030B9C8C3A760BDFE4F0457ECB2 +D9480917AFF2411FAA0AE36390D14FEBFA2E682C04AF7AAF447160EF4CC7EF70 +D50BC32731B9CC9A79D378BDD5E5B33319A2F93F500C8B88D54F6465A8E66A4B +A5C81A6FF7BF8960C274288D3E3C3CA91765F3FEDA39EA1F5FD1357346BF30C2 +DA09C2A5B36BA44B73F2C1F2F29A08E86285D9A5B33C97F7FFC877DBCD2C5098 +B5C6768E13BBFFBBB9E385C5DE70564456F45E9C5E48C92A4E12F31206E52D72 +6F1BBDCE33FEA115502B2DE84F9B0DB87FD0A19ADFFD0D0AC5348E4DAEEB7BE6 +54A0E92CFB4BA347075ADA7B07FD44F436BC74DB1361F0195B9DC7CA76DC994F +BD4AFAB58C4758331853F35B90D737CC6BB90F82946F1CEDDC36BCAFFBD91778 +2C45352271F00B553E70E1C7699353C21AC2FF5269D5C070A24642A20F959E4B +EC352E7BFAB8C8CD0259A47222B98A223ADAE09309CE254008D0A8215890541A +2B64D0AE4846D56B0E296C2BECB4E6E15FAE6189907A772DCBFE7D9A534DAF45 +E9806B580D6E7437D6EC6C212918E096FAAE8AAF2EE471A670487D9106C59C8D +9E0E72CA5B325E976E534E0FC4402580D531D8873DCBEF1FA5AD86758E8E3000 +7CC778A190AA1F04591FEC4DC81DC3B4D9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1785,9 +2148,7 @@ dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put -dup 104 /h put dup 105 /i put -dup 106 /j put dup 108 /l put dup 109 /m put dup 110 /n put @@ -1795,7 +2156,6 @@ dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put -dup 116 /t put dup 117 /u put dup 120 /x put readonly def @@ -1827,120 +2187,106 @@ E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091 22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060 1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98 6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C -146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFB5F708A36D89A -354AAEB20A954E4FB9682D9D227FAEFB5CD1388867E0860EBB0E279ACE74934E -3D12254656E004266D501B9DE05E7FAB380E4B69467E641D0857F13BABA4A940 -02BD22D63B9600A7FC571C1A3AFF39B9DF9F0DD9F396497CFDD52BFACB8CCDF9 -FF9277FBE2D32303E4B3CAD99F79A7F45618B900CFD718F9AC9FCC77058D9486 -97FC192847B08CAC407B89801CE23E7D54AF9DCCD0320CB64BA0B3E41079316F -19B5A779D0BEC5FD5763BEF31035BD24BCCC838444B60BB1EFC43921BDC2DFDF -C3CECA21CC24C1C7C3CF17D2565DA4EBC9EE79001A286A1D0E0E8F48E4FA44DE -5DAEC3E84B688D4235E35D78264A9CC83AED6DDD0E4591102EDCE85F2FBB474D -CB049179585556D6948D6F720F88853586A768547C085FD2DAFA1B4C986CB4C3 -A92B580C149EE31212E1A0EC36D1830FDDE4F19FB39C2F64586C292AF3BFBED3 -6E3E8DD85124644B874A723D6E9544A3E56BACE9D8A0CDE0CFB0C334258D6A71 -F3A580D03195D0B2B72D92B4EFAB8F8151564C2E86CDDEA43546DCCF1DE7EDC6 -FD8123D17D3DC8A7805395A556CDB49FEFE2136DB8C62B163C37FF258FF675D6 -2D9C7841F7F1FF81389F85DF6382DE676B524F3956216CFECC417767DA7F55E2 -8470E949ADB93BE1E12B281532463BB4CE03C47EECE8D6C4AA13BFCD1C7313F7 -B626AB03395711F8EE5880A5C452E6A0DC1F25285E9C41044CE657AA0BFF7240 -BD162FBC9523073CAAA4790293305910CB07AC00893F35FDC0F0536C84A8D184 -E85542A95786168E1477DFF426E56E03028F3209A56995A842118ED577AA7A2C -735B6808DFEECF65D37E6B7998909F23A9B39E575963B07CF93D47FFFDA47EB6 -8F8EA091835E8293F2DE1C42668A16608AF3F3B2C53222A727A68327ABDC1270 -E98ABEAFC84434D8265697A16A55A735F77EEBF682F1C4A5DE01E042187E3845 -987EB0027B14F7C0EF6C9C5A346ECD3417E381F3FF97AD21907D0DC835E6D976 -990047FA51AD8DAEE9A86381D60B8A60244604701A782FA90D24C34502636353 -2A2C507E189F1D1ED2B4E2EAA426A236C200208B43C765F680AA8F31CFC57992 -4BA5003418EF6A81B2770DEC775C05F1CD948A39C3F5FA49D710151DA9AC22FE -2E68640D5A47F5B4416F0F52279D1B87C563C95639B4AA9AD4D403FB48632824 -4AFCAF43318E8E61D68B67F207DFB322ADBF72C805F09ED0505212F64A6185EF -625F9BBA2126013E181577EB5B4C5A395B98871DAB1164572FDA647DB840ECBB -B119758B52CD0151D12D12EBB5E3AABD05AAA33CFB30BB47F7C4DA5963CE2718 -4EF6272DC76784551C91B62BA293AD0FF335CB2BB8577A957CAFE7E3A91EEAD6 -E3EDD75B5A2BF62FA89A87814F1025344029BB7EF08D1227A6139EFFC9DFB5A9 -F17EB228E3A0CEB99FF9DFEDABEFE69BBEAF6C796F976595FCDA62CB0DF03A1D -2F7D4A307DD6834159ED84EF35D9C2B8DB908469E146640B7499B7B17E3209DF -BFD574F6537287CAAF629AA021A784ECF4751940D231A6832C520318266248BA -0D2EEBCA5CCC8AC81707E6F35424FF58D5B4828B71D5A59480A2502CD71D5620 -05BBE8D046E1E00F6E726CDC38E0788584646D710EA033E917CC3686DD133B07 -4FB8A343C20F11FBD21A93A3DB65383872BEAC848834D03F0217183DF50E3916 -AB7B68238C23848CFC7D345FC4C70AC15CCC3433592AE028C8424E539826AC0A -83E3AA79AE231B447D6DCE32B074B5611EADE8C152F93B571154DB9213E6F6B6 -EAE38C9B2971C8313D15C953CBB7A37F5BA658306AACC6FD3AE4A3D0B1110507 -0854DBB4FAD36BDEDF0ADA15108D9B6F7F61A10A9AD25E87F84A04989551B306 -8C393AAE446F7CB06CB19B9D805DE0C52C70869CAB832F04F3E92E094031E553 -5B8679720C774280F66B56DD63D9EE47371EA55817C4F66BA651C473C27A5F2E -1675547F0B8861A42CD2ADBB8BC778156B5E139A611CE0A17140B72FFB99EF64 -D805E4C477C0EB42A59331D1E7020FCBEFB1B8753CC8DB27509E886EEBBB99C0 -937E7CC06C3F42613612CF874263BE46DA67355ED0ACAC9A1DB02C5934562EEF -D6B30388D057D4488C4B77B3E04140C48966DCDD773BA08661710D19813A7887 -6735A595B2D10D4CA14A807120A43B09DC8855B0EC0749F3532002801F45BE01 -3ACA592F545511E6A889833BCB595D94CCC0905C4E298BF2D1BA59B1CF7BBCC9 -832827A0FA9505B6D468F73DBFC63CF5188A5E2C1291C7666BF88A82FFF54275 -BA9AC8F7A3EE9469FB4D5271750D4AF3FC0BFF55A5F8DD60AD8745822B98495C -2843A39D4FFF1760C2C7F066A760B2D44EA0D36BFC8171EB791126BC3E3575F1 -7194B6A35677519DBEE369390AAFDBCF8C867BFEDE73AD82F90D2F641A9A4016 -C24294F7302D00AF096FD25D8ED6D779D3A1D65F7BA72D9F88BCAC873AA8F3C6 -BB9F693671D2C1E75F57C379604972E32DEE03D3709F7B1E2A71775EB003C9B8 -7DD49825CC31AA66E5573863B2975826C19B8A6BF57B8D2E47F33FAC2E3C23E1 -22946FC2FECF4B38E11F79B9C82EF395BE97E699470836C5FA2F4953C6BE47FD -E8062B48E429629C765EFCEE6CB7DD1D6F58D37E57A8FC521CABE705C7CA7417 -41D0224C9C3D4210101B65ECF0EB4795B03C2ABC4504C09E9ECF74114B39D1BC -8E83B1D818A5A89886071A14D57DAAEDD70540952F0C649452A42F6626C0C1DA -165CE8233F8D318BE73E0F5E1CDBCD62C4BBFAF01A152372BBDF03D4F5950969 -BAE25148A8EF0BA62C20D9500F98697B6D3474B5E5F82AB1C260D52F78CBE06E -D487AC6E916929C5D35BFF07447608DF3C31296551245DE0A3F539C0BEBF5EFF -3686859A904A688FCEE6E2770DB0209B52BC1260B4B0953665572E53FBA56545 -263D697F6D0EE366972A66D481FDE9B5B760A749D9CEE1477A263BDE7163F785 -12E5E52AEAAFB6A05AA3A9412E623AFF76DA062BC8768DCD745FD0B4BC618104 -C4FD4CE144C19D032CED19B8F0A0DA3CC45B2315EA918AC2580BFD08269F1A49 -12DD707B3EBAC19D2593C43CBA8937708BE239D569415E55F885384032B30D95 -1294463865AC6E40EF853BACA42E65F2E8718FC747FFE9633F614B9CE0A47CB7 -8F22A5EC845BFBC50F822319D4CD604CC4A74A2649B2B3B67CB5D79F93C9DFBF -457049066E8A4F3A7DC08593FA16FAF7AB4D8DEE6DAA41DE801BDE5A295CDBCE -177EA270FC3C77914CD71BC4C508943B00CF8CCE983809DF50BECD29382C1BB4 -CAD8D737A88F25C0B9BACD9403A5699166DE2DF733BCA2B7A5C6220466B2649D -46F72A5B9220DE95F19ADD3A5B4588AB50FD5BB335F89FFF1738C8A4E8592E9D -5BD54974C2F5F5449C2100FC239466021C5AD8ACF6F07C9C6B01060CEC83FBE5 -091CCD6B39BEB888015A349245FDE839454038D30A8F800588535A2FCEF762F1 -F90AB562F287030CD4B5D946AA3E78EBA4C852D5AE9205E67401B012F257A72C -2296AB4606F43EF8B1ACB295BFC33F3ADEA31DDD57D6B4A0C133F0F200DEA2D3 -E4126CB9104194E6617A15E1796A14598F3A71EEFFF09EE3DE6EE31FCCAC8C73 -5EE4782DA3CEDCC41EB50C9E12269BE8CD955C55261931E63F3E5B521EE9F6DB -83B0F15E7DB784734E76B21424497B72646245B705BCE06988FD09A65FC7A09A -27DDB98733BF0D7C56331EE45E9507923BC85F4B72053C2548604ADD163E28BD -00EFB6D761342A3BE08CAFEF79F21E5E2949AB810133A394609923C920D44E10 -F605E5D90BF5183CB14536FEAFF86475E0605AC83CA928201ED1E5D8C5AF6AE8 -C7C3FC31C213633EFFFC133CBD012B6DC15A49D6D9FC0456BEB04FD8BB2CC10F -29A93B34FEDAAF618DB52B2993E7EA0897B4A8E5729D0906FEA1F244100E53AC -70EAFF565BA48199A29705D8D41DF7F1A7382D11616ECE63B1F1343209404B00 -6705E0ACA23888F0E5A183AD39F812CA47B7C6EA888B302764D7817260744D5A -CBD64E7741D914DBCB538200B8F2DB8332C1CECC251C4A5A3F64D30569000DFE -A5870E1697576F04F2C887B3E406A99E525D50FA1EF50048FA427B62953ED05D -DF8CD3817D3DDA730622EB3E00A098B84F1E09734ED33DB4E2D0E1692DB61A2D -3FAD2FDC0ADA0251D32517E08F0E74FBAAF407A35DB779995C8B5552696065AA -E4A0789023826E290408D0B871309C665C6CD1645E4039F7F63D1FE9FA5740B8 -D590F177E0381832A300C22CCD9E91E7A93F40B0F5953E40F0CF021FCD5DA3F1 -444B6E8D2E0EC54C49E083806CD5743ED134E97F525BB9F77942688A7820FCC9 -335AAD4E6C71F201B5CF7E1D7C8156F2D2C26D51675C7A164F8C5F8BC0BAD163 -3009C8647860B4F760396872D61C8ACB542AD323EB06546B781D9D6681D0AB8F -9D340526B5062A4CD4FC09425D4338DADF27DD627D25E300ED19D37B14BF4413 -63E6E6F6DC32C593EA549B7A8877312E4498D93F13F1280071546DAA3264589F -A724E78CB69BC18A4C95D987E5264847D55F4BC4EA50220D73C1799D849FC874 -FBCA9C2FE0E4AC60AD37B569FFA06A12D4ABFAD51FC492E1353150BDA27BC49C -791492C6D340C9BB73FCDC6A30655474D22E25845143E8DE4327765874FA7BBD -7E09AC46D9EF1FCAEAB13FEC348EB2819DE9F7395B5B98EC1EE1EE1E14E0E28F -9FB50D0908738B115941BF6A1550D64D7E88390C1E184089638BF40053685A1A -19B7F1AE7AC99C4D58119B957F3E465674A5654AFA70EEBAB7B0B2D6D7DBD979 -6EE804BC93B9465D453E97617A4166B14831FB9249395A9C1496D51E086B2943 -E32CF0283A4E99D0D2907545D17E7F023EC829527F389374FA1A28E068B4014D -D0353CC5EBA3603B41993B3ABF2A9EDA80E30CEB08EF43DB69B70D80E9175F1D -FA17A21172CA272B7E2FA169530C6F6D9E4B7DC99B0D60686C9905B627531100 -B2D49835AC49F002A9E481B62ABE97A4D9487A7F4DF4DC87FFED30809A855486 -89E50FDD6D9AF814F74B5A2FA2940DBFE394C573B5150CC5B2BF3FBC787C7217 -00C26BC6F88B5B4B2EC52BF5A6F3E24003A3A59B901FEBAB824BE07F958AB71C -E61D639EAB084E31FF721B4E17DEEB0E8A0E14E13ACA8BEFE2 +146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFB5A6812F33CB8 +554D92C7AB2C51C09C7EE0E5344CE62BEEB49D5F09AAE8AE94984EAD1847C5C7 +72B2A06D1906BE1B19B8672AF6C90238BB7A697EDF6C299BB33275CACDECCCB5 +5A2AC6B60E598D35B682B3445B029767AAED04633BD8C7F65DF5B19E68BAB10A +1941EF5974412C72A167C7899691A81DFB0F11107009CBDBE91BA59603A49A10 +7D1F25271F3978093DF92B9899EA3F62A16C032F432ADF2D882FBBE99164176F +026A97BF90473AD4F4DAB59E8D19A3F95A29E4D872FFA35AA6821F8BB8912534 +AF87564ABC178962288EB3EF0996127FDEEB56DA2A67399B52A50869E6F81207 +423B5181D9707C9C5A8E4EEAD48B967A5CE54ADA3A4C923E6B9E5D893E9FC93A +D8D2FE2ACD2CCFD644D020FBD6E57B8CE610A777C9C0C13F99B949105004821C +A093A86B100DB0FF4B1151E0E3CE04C45A6A3EEE664243CC1A58DBA98FA7E455 +460C26843DC93DF1F9D1E076FD2EFEB77EE7BD7ED299E991DFE2F98089CCE967 +40FF20C8751D5266C7C44BBB5B357C808EC9019446E96D1520C3C707A0C5AF9A +A0AC16D7DCCE3E622B1AFE418CF0FDF81220202C6A6413F071E4781425C6BCC0 +6443F29F7C38C6086F644100AD8DDF3D78D120CE99F422C9A277589362076868 +AB8B5C5A7B99E79266915C95BE2D712322C85FDF0A2118452E1321AD76C7FCC9 +F4F067BF3A9B7F06ED98C9534528A3EDAEE3354BC95C03E21441B199CA288E58 +7AECE47656B66475AC53D9B7FC4613260628895CA1BFB21E25B1098EE7779DA6 +D46C18933860924530644D877A5A1755A6EADF2EC377A40AB8A87FE650B774C2 +AD0FB796AFF2DC6DEE921DFCB4406440F493777AB4AB145CF5DABC0A803E36BC +63ADB4E3A8E4060CDA2767C70793726A3E093235BFE0EE4498B7D8A01762734B +303E9D24E5354AF9B2519CFB708661C630664F9EDE2CDCA80777FECA16627495 +04E32CD2A9B68E29577B27C65B0AA3AD89C23BA2B79F0EFB08C08BA8DFC1D5B9 +FA53DB87349E7CC25082FB7395CEB69C8A185A6C6BA5686E476FC86D6A22E306 +AB5E1C1D2809485E299312C66BC6C9BC0D95552539D22DA59B874A318C03D9E0 +0A60B47AB88C68AFC89B5EEA0521C4528283FC44BBB90861F9C1D428C81E69DC +D2476FAA9113341BE5324695E96BB0E9E83455BD2F020B19C7D47DDD66932C57 +B92E7A6EC1EFE1B38F145E4A09C4F86E2DE2251078F33399B6DBF6B093B596C3 +8553B2C2B14CFF58CCBD97C117616E5A0FA91F740F1F113CA22C8872082750CB +AB56FB6298AA24A6FC17CB63FD919D83FFD8E21D7CF08278AD5B774B18E2845E +B8A690ADB9EEF48C65B7A1FE2767E923A4ED2FC14831F76D07B5449057CD6ADA +8A6017783DB40B74467260E2E710DAD3B54A3750B2EDD2A5D9D86F33B2692F42 +DB513C6CE754145E880CD636BD81FB09DDD312285B37EAEB06771AF9C4A94FB2 +B5118E00399D78094375E381860F28AF216546AE14336AA8021AAEBEC7B18D4B +4D951ADFFF236BE54405680A893DA6963810697D154E599CE6488C6E0651942B +A046A769CFB69F0D6ED0CCEB32DFF9BA1F42DC407AD6168D1E8F9F543462CA0B +D2D4F6A743241A0AE8209D24C3CFD15FCE0BFC5B12A38D79D7B6B542358E5D38 +1E2FB10DF79DB1EBEDA7B62B4ED1908B6958367320BC5540F29720015BF69836 +A816CEA95F20AB0C4AFBAEE96E148642AFC20ACED0614386B26FD5A17A661987 +6BD1EA156E836689A39200851A1ABFC51691BAE4706F60F255443A6A5D1770B6 +97F11FAC489336A2EE528D25FB23C8EFAD6DBA039A189885A350C82880DC5223 +1B30F1EC85EB3CCDCD88DD1C030F9B346A46C4EA46FEDC6E13AB155AAADB4CCB +1E2B585A9C1C6CEA143E43DE0A0E344AF525368138B475C665572B46BCB211F5 +9B14464D112DA0BC53710A573B9D061399DD6D4C7E7DFAEE23F06DA8AC4FEC16 +6493ABC66E6C64D115992E8C11307589809ED7DBF05F079003517753256BBC3F +129CC928B009A30709FA4A8527686342C3EF7F7352D7C070838D6586B1E5728A +2AB44B2DD2B158CD4D4214A01D25384ACE75298AC298E6D47FD1F4936A52855A +C99070A834C957F9B09BEA059841DA63CA94CD5BC7B01A7156BBBE71254A1F4A +EE8E7A82EC8A64B4CF55F0FA6ED8A60B7DA91518AE7FBE43E93025E2BCEE5B92 +3A622D725BEA3D14E14735BCE2FC04BF11120B761E3DCEF94D582020BBD67C32 +3B1AEAA0A82FAEAA69B8A2C74F6D82436ABBAEB48F2DCD8F4C9A99012E73F8EB +E34E43E27AE6B7228EC48B226DE50FD58AEEF7A28CE336F4A113D679024A053B +AFE36FEE965917F5A1910443C11147836AF4430C3D4A7D4F4CF759E9E1EF1268 +163F077B862B77ABD0F7DB83EC447F872BC219AFA9B3EBC8FF0A9CB558A35F5A +FA49258CB038E7D3F0EE530972D4C245EEBEA89BE3DC179B567487EB44FA6CF9 +088A5ABBF8DF8EA830FF67A9409BC8258285F7650F924E167F405EADEAE15921 +9A72E2C9DF52FD66C9762EF5CDC5146932D2F322871922577C04CD90865E1BA6 +1E792CB2EE30BE10721C014DF1C53D8F2F07B27E970D9AA1D70DDB06D09BBAED +CBFC0855651175B85C86119EC3316F7A8A9F237C63AEFEBCEA7DB430B8A9A0F9 +87C7DF4A86ED545DA1CF238A61B9E6F6E827BED954282F163F01E911B17C4000 +E8BEDE28EF8AE821F1A319EF110C75A15FF0D55FEF8D9961D4FBFE1087C5888D +CED4ADB1EA201C1D91FD6DF71D121B5F05F98041AF17514496D5B3CA7BB09E0E +19FA8C9FF2196DE23663684794C65C684B7AF97BE6754AA108C2C7015A14D975 +1B8D3D39F376E3F693E12DB603A39BD41670CA0F997BAA41E30817B4CD2DAB98 +1EAC8E82E058A71C1729EF32B9DB11A9F2546E43618ACB1D0CC698219C6FDE29 +E4D783343E8A3DAF9DB2EC3FF1E95EBC4D9B0E482FCDCBF5D14FE05E4D3F87F2 +07659A072D9465DA3D5D684481AEFD853D83ADAF5B61BA84F09346FB68379836 +00652CCDB39DC8CA06A668EFA3A570B6F22F5BA266F6A6C8BAE414ABE7278973 +CBCF137158CD9DBC409F2B510E86879EFAFBD5D810717BCBEF5E45E74193A352 +E6F1BAC1433CEB19BE0FDEB6EF159FEE2CCBF08FF84C788AB5B898F460C756F0 +1DE3CF57C53E48C2A61EEB5A83875C156F000909E643F202148DA4D634BCF8BB +212AE802172D1B73DBCA14040817537FEBBD6DFF70C55A53C03DC314394EC407 +0BA251E7DBFD890416B42630CAC6B927D1324F9FA3BA236C5A7CF47C1C97FC62 +2C80366A3FF8A31E07754E01DF6293487C8F05E2C7E07DF4EE1B103C4AC1A979 +4FDBE6F0E997E72B321CEC0D5AC53D13D13749700199D7E4A728A8DC2E4566C3 +6EC71AC96F2EA85ED2EC9DD95B69A8368521FE1860BADDB68AD640AE3D651D58 +47F72E37D21B707D9C68F9485D2229233B284EEBA81FE8FDE475E62729054F11 +B2ABF54A241DE72B75B06A594016362AADCD8E06E7BECD43A9DD3167831FE455 +4AF2706AF62475223AC236B1218CF8E167B7C2704B185F9AD9FF978E1341692E +6716EDBE7925E39DF0315408E92E2274829945A54CE69EC9A6A3F7A5A382366D +72770D713BABC37C30686CCE65AA741A93561F9B9D938A4A63D791DE94B6455F +5E5FED608643CE8C429E4A3E845E79965AA5CC327524626D833A44E0BA98C915 +41F440B593B406CDDB69A369606C034E065EAB6FE42B6F0E9852878B934A03CB +037F5AAD74C1C5E846AB464C0566F36B921144C6E44824D78D81FEBCF8F58D25 +04161A00B077979A9A4A7E8E1CEA8EB6220F8BBA12756F4BE9D7026244970E41 +B982BA34C9DC3A0BCF765A77B314903338F301DD71FDD813ED616A88DD4DF27D +5F3B4261450145A2A7F5EDE3616B026F5FA3B67B4C83139DD628127D4C46652B +0187BA8DB624E4444555B851C759F6EA0BEE67AA734ED11E6BFAC849711AFCF9 +1DF03E08886702F00E1889DD54D65DA5D377FCFBF958250B926A0DD7B1AFCB63 +ACE9ED6756F871F7FD49583B2DCAE606E015D5C9DA104C844E393DCD49033471 +1248AAAA3812AD25210516018A15CE1C14CAFB533D4FD3A2A4ACA4230FEAB582 +C2BDC65CED03492CADAE4B1686CCAA16CD8C7581672590727933FE63030DF2AF +FEE52DF524AE193D19B2821DCF83EF667CFA3770A3214FBDFFE854ADFC42BFD4 +8E461C73E94DAA9693AE3F632EC8BC5BA18CF4A5C49716C6D7840CE439A508DA +32650240CFE8A11D2EA8E44DDDC4C3F86FFF13F10BFF03A9BADE6B614D23F05D +AC5400CCE1ACDA00A76443871FCECF4F7F68FC04C71A56DC94290DDCAFC88B27 +141DA29CC8500D776DBF086280D30B6F498E83FFB6C1CFCBF64046C819B8DD7E +1622CF99F02DB2EAB639A148FDA44139203C21B179BFD9F2600F1D6EFE2F2F49 +6F0CE21F7FB711E494F65ACCC420850E77939D8F179D861190BA922E5AE6A1BE +E5981475AB279740A40CBCA4B1C955C888F97C1FAAA6F1AF6F2CFFC5F2458F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2477,7 +2823,7 @@ end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put -dup 46 /period put +dup 45 /hyphen put dup 97 /a put dup 99 /c put dup 100 /d put @@ -2541,107 +2887,108 @@ A7F3F8ECD0F177EDF5F4D5522C5984A3678FF32EEEB570B69C142AB89467641F 45FEC01A911F1390E3E3B80D59A30805601366FC0535E62E0CD9EAEBDE4DDEE0 260B40C3F20D80944ADEBD496A4C82985FA55362CEF5AA91377F3E5E2C3300AA C24A28B5DE446EA56CE7173EA3A3983F8A39C1C04DC1117A9AD9EE90A6B0A6B8 -340651456ECDE5360D8CFC8D88EF157B44EA6BD3CEEF3BB89425A716D03A671F -E2DAC845699F8213DF6BF7EAA0CCE93CFD7557629AFEF755FD9506F006789AD9 -100BAEE1F8DAFB9C55DCD2CF75ABA02841B88EACAEBFBB6A3AE4F145204944B1 -1B7EA32D8730B3E29C5D0CD64AFD23656C6E462ECB6CDF4757F8EFC0CB2DDA8A -91B79D3F44A59B587DA59DDDFB2BE6AC75606C0A1F15CDCD27C6AD77C38CA62B -692230D98A504D41F645E9379A8A8B3F95F33E4CC3605A9B44422EAFA939C4E0 -19EB1E3A67FAC6E7E905F92B1E7F35F150F75364B22B71B8DAFA0E995CF30D8D -119A9EEC79606E9B038E4B4D449653B0537907789B54D8E949BF20BC6AAD3C0E -53075AFD1F67865A1D42AB0945534D9C59AA91C7C87275E2B3024CECBAE47E64 -9E6190D0E790CE26F88CE6C0F7258FFDEC557C88F5560A756705B2D8B0B2F1FE -279CF534C2604BB283024ECFB6AA6D1496021FCAEC3390B01DC093F7D04C9D67 -E2D77BB40E9035A1C41632037B5DB63C6302D464ABC9FEE829B742105984C3D3 -3AA836FF446D394DDC7882C3A9FF355340EAA8461CB4AA082F03E11B6034DA2F -37FB132E23E182E74333E46ADC2CA82A58AC483FBCA5FA6A0B7CC69FE75339E9 -58350D7C0B336626ECF2BC024FB5712BA5B3F7936995FD937A4B1EA5FC4A6BFD -050B25C5DDD3B64207A90097897FAC7F0D5F8C51ED0CD8F74D9C3C6006118B69 -0A3C80BF08509EC03A7712076C9B789B9AFCBE0848FC16DFE18C9043D2C62CEE -21422D965A6A398D7E3880C18461D16B0805FB95F5A7429D35F707C9543AF4C3 -6568A1CD13E4D551C4D391390A9FD45D993B0A27A327B9E3E6511B3EF6C14BAA -F972D98A7596CD6A145603D942F59FD2081EEC6978C7AD5AA04683291CE5CF85 -1CAD87DAAE0FFF00D14AFFEF3472F8413558DCE88E196647ABE2198E401ABE29 -875BBF2E2AE0AFB0C9A262F60DD9CB19F43BD16CD90B199359A01490ACA053B3 -77A76B7FB98A3E096A4C376A9DF69C8B91F76ADC634B4AFB58ED00C9655A0E7E -A0C55508304363A82C81254D827FA1911C16D49670A63E4402BD78A1F7F4C616 -4910967EF94276B30AFDEB5724EA1F087D572BE403B0CFD786D5397453B44DA4 -A3F91FDF0789626FF3D8178331683B1CD16EBF7F97742AA3A966B8BC92E87D5B -B529CA5522D31A6EC30BBB4C80023BA8887D87DBB8FBEE8524409A554F5282A7 -F2D389139DBE74563663CE5C839DB39F9390CCFF9AA3AAF8C713A5F60D2FEA06 -E069A8AF06B118EE22926B6AA67AC8D9E8F7B8C95C6884A2816BB1BFA71D86A1 -303B0448D870CB6D41006A017B26617782496EE396E68F8501F6B0ABC13EBB88 -C1AD1BD3C33DF6B013B8CD034F268645A2215713874D66C21EB75E65A2A88AAB -6E83D74DD9D509F2B0D4355D528F9AD6A7EBF6ADFAF76A9220573F3E6219BD96 -640F535F5F0B154FF77B5D6097C6D13F739E9AEBE8B2E745224EF1AE4570A437 -0086BB3069D29059EEDD760AFF1D448F69669BDD37ED7FD90D5B18B055A9A1DD -D1237817EEFEB2C4DE9F27BDAEBDC0970587C9AFBCEF71F45CD7E6199EFDCBC0 -0C7FBC2BC922289493C40FA7C624A1AEB18133FC0B5292EA905823937E82A2C2 -00081E0DB58E59DE2D0962765CB54FCF8F9FAE24ED3FC649B1B4C2B1B7A85425 -B637B0431AA42CD8012D6FB016B984DAB93E0794C35EAD838B750DB8D3D5CA79 -E89C09DFFD4FF26D29BE719A1792A868DB70004051C3F801DF00CF356A5F2083 -CEA418DDD9C73F3DE15D1E0B1FB2D3A17CF92321E155AE4940DB50DCB15A333C -622AB7D7A004348BADDD7ABF5B941463BEF9FBB812186CF17856FE4474DF7C4B -6261E8D0FC262334A4605F4E6AFFD23F0B91A54C83638FC7A909694A3EFF251D -16DD6B72F4E90C159EF9E0F2084795E93D4C38606AC68D72E28C5D9AF4FBCEA6 -329E7617D13F8F81B0F91541A53B502EFE17D2776D7286BCA63A6AE78EADE167 -32F3F3929D941516A9AAF2D3D26AA900491CE534BA3FFB14D60FDC6F51D36FD5 -20D2B2C17A8751F02E90BF48B080DAC2BC7601604D97BDC0441D08D31E8DA70A -528239646607E9AD6708A8E401229DB8DEB508BFE65582CF91506F3F627B24D3 -4D7A8BF6C5CAE1A0BDE435ECC247551935EAB94BBA6BBA5BF1DFA673F4B5060A -0AA6018F6D67B86E5437D3AF6E9A3A68AD7BF229919881FB6FC3B48FDFA51B1E -9AABDBC1F9E8D97ED2B1FE2D465F6D7CE514FEF2B62276AA872546A0E27903E2 -F1D0460EE43C3806EBD9EA14C41088AB8AE0DAE60E5CE0FB63A226B232F78A7B -B6C96617C75BE615A510248A4FF3F09F7AD0EB0B104BB0EE5316496390A0DF28 -BED8A07237800A2FF3D37E3880D3602459C7BD5A92F393595D4FABE161052D34 -EEDF37EA8885564680BEBF27DD504EBDB28413CD242E181C07F2038EEA55D346 -B4431A12F580300AA1D2E12C9CEE10602D63852A26964E5523B1040A86A1B33D -FE271D325052B0A79F2A736DA669EC660AA60C844F2A08913E04CC92800A9358 -5C0F1A4164140397FBF75672C7366128A2A3DE696901EA882DCA6EDC457D6145 -FC84214EAB132905FC7529E63022CD7E08D828E47B5C7D0BBCD171F0C0788A2D -BE4FE10CBF36FB8DFCEB0702365B4A58F8DA9F8C24061970B47C39E0153DC714 -9EE93688EB1BB49F171364F1BCFD69B0B38BEEC512841B7B59F48E2BDF0C8232 -3CBEE59A81530987299A450478201B8FB8E98B0F6369F5FE50106C3A0AF03D98 -49B780C7FD6BFCB03677033FA56127E28871494281C0ADB19DB2D777D299FE76 -C262C2E999F56E64284C4533AF281C1936EA6174AC011C38680D10829226B268 -AFF13938517274BD415ABE48CF8928DAD48C10852C257858F2BC616499086BE6 -9D3F0A2F6FEC61CA36A7271549AD623B6AC984DDB50A603D5682718730E7D200 -CBF0518D89F46E91B8580D8E9902018EBC8B1FD4D1A8648EE790A5067A2B2F0F -AD3A4AD02F0CFA43E612C2AE8E758AA1D80989FCD00E41487E3D2A563B2369F0 -E4DFF0582EAD6552253FDE8FCF3E1DDBA63185E512F41193533E21BC5EAEBD92 -A48DF5F64384719683608F1DE5767882784CC7B5E15B2E296B5303BBBED04074 -9CECCFD4ADF441ABE8F689B4843E9A23D6F49F93A28E8AB4B16ECA7D3FE5F5D0 -2D615E219C92538BFA1B4A69379A138E54E640119E9DB26441D797A337494517 -EFF7DF0429A7F508F8DBE974FCFBC97D9D1380BD012B2C20DC36D2337F259AAE -691A0705BDB9394DC90A1DF5C180C033A0D139C1B12E62061E05F9A2551B7F9B -A7A90850ECB9878A9DD62FE08100A77CF9BC4BE11231F190B741741686F48FF5 -A19AE1DBB06323E9A1BB20D1F4EC8A845FD8C702C4E9090BAEAD6CA0E188F1E2 -D26280B587334AA83E36BBF96AC652AB10FDE648B364235582169B5CD5F6E65C -91D1224171D25026FE6C030C29FEBCC84AC1D4FDB1E027952F00658B3EEDF9C0 -E498969539211F54CEF79EA07E8BE789CB88A7D0DC064C6B138B0A08E78FA517 -A466F534A15C839B94D7643CFB51C8B0D83522479542F044B14A751D5EE125EF -08539F8A1FE1C0F083747BAB9CEEB7940BE0DED33165DB549D8E91EFD50CB8FE -C48BF3901D4515FFE1F82CF7155F7A441C00D380EDB2AC81A23114BF7E2CAB46 -2517D67692C1FEBC62EEBA954BCF7407E096D839C9998AAF740B2F6503B4B40E -A85255E6AAC61D6E83E25D205DD4784EB270CA150F639078DA1AC9B2D2338488 -C0DA863DD9FED4A30C6803CB601883E95C1209D1E3572EDAFAFEB2D5B8F025F6 -84765B31CAD2D66C3AFE6417E2156B039893183C7AC26EBEF0001CECCEFCE180 -511CB2691E429155ACB128EA2E33E38434467F89F9A61CD996921C8B378B72C9 -EE97FF7AA8D2CD8797037892209C10F5947350E7DDC33DC6A01D23374CB1EAAD -537DEBF3B575143F6BDEF20DE12B2DAC6B522F7048E23F9B22B2EC042DBCB851 -5B392DCE99C783C870EEF9586D731732AF882401E812C2A553D6DBA2D78C324C -A653B748A155C1AAE475B5B7D416E8E4463AF3CA87146BADBA7DB13412C94949 -317812DD7BD9F9945DCBEFFD7C05BA588714371AFCD0147B0F7A5DC66E0F0F7F -4B597E49716029FFFAE90EF4A6D633407CD450BB2B831AC6289F449724DCF278 -AEFFDDB0D12BA46B7D39F11888A50BEDAEAC715E4B880E9FC41C635463BD99E1 -4C401E5965405ECCE3AC654A2AFC59E95ED0416C797E5F145724DCD5A293A717 -9A977A438CD5EDB02D1208F8A3CDF4E00E6D6A188DCFEC2CD5BF86CBF61D7C67 -A1A0A7946A35D7E7AC06F71DE671E33EC9A9ECA21E966AB453DEBF483D36F688 -9D03C08AC0B39B8FA47C704E1B7522ACCA02C9DD0A21D47C0A4E007C9C2A6F61 -C0BD63CAAB8FB38E4D9775B42C49C33FC4A10AC96F71D2282E1A5C3CA63AC981 -3F84C84EB68C4225FC169E8BC6F0CFDD7CBD8EB98A49C1F60705E8F3686EED4A -CF7E7FBB6630537CACB9C8A7F75DAA999BD91F88AA09F399AD41C19ABC746E83 -93CEC3820496D0C0B4EB224AE6286A637DA5DE +340651456ECDE53615252416539F5CDCC809BBEB1FD5312D83E683356670AACC +97E95202657848F59D564FC6F4DD08792FCA977F09DBB0ECF3A57BAAC110DF24 +29AA33642650834A240116F984213A043B38FDC4922254789F951FE907B95881 +28B3CB8D33416E23168989E283ED3D01C5C17E9003676FE45C35E14DD10042EA +F0BF9262955F512C16D95B55C2D976B6C7DCE0665C82C1DD66752A74B8FD4EB9 +4DD212B7A7A82D1BF4ECC2FDB00680D107B3074A5A0638699B86EDC52AB0875E +CFECE6276446186B226D8ABEAA30EC5524F6A293EC01DF5EB1B8BD65A0318419 +F56652CDF1C7BA2189FA55A8BB75630F58A2270D573A2924C1A2EAF4DD3ED46D +293711EDC9F95497CBC2BDB73C35A6D614CD8B871A29AB724F4C35CBB3E5E36F +F2CA1079FCE485B94B0582B17E08B21165B8B0B367AD4468229996DFD88A3558 +F61AEB65C3D7B646F126C2C929ECF6BD3AC4156FFCA2D175D3DB61910F22E2DC +D493751023913190A945A274AD2744258A3AA21C284F7EAAE53CA112EEE32E8D +D70D543688BFEB944C697DF184161DAFA6198317774DF841E5378B44865A34F3 +C7870FC43F21B52364A0059F8660D55AA1D418CE4376F8EED12C015AD054E3DE +623A8C6CC5278069D34FF8E0D5133B950CC5912E4EC8C3120F40D530110834CA +E0A0C90F4432836A3C01B3D7021AE52E7F2E9796AE380979C80AC2210FDCAD6D +65A099C762B1EA11F4FE055684CF3C449B2CD9ABCDC0FB3317BDB45EAF9707A8 +39DC9289C9F89EC6E79974B9A3FE62C3C0BA62D0EA6DEB3FCE1FF38170205011 +E76AEA346EAB416F39BF6AABED2DBEBD993520282AAA34077E2B21D5833D737F +F92E8883D351BCE621BCF65DE21FE99467B4E3CBF022B6AE9886000212C69EB0 +8270823D46B390AAF582747D1E57BBB27F2B4461513125AC826B0181690AA46B +0690E903DBD3FF7D23CBE2FA6FC2504342DB6797658DCEDBFD8C61D034694881 +71D7DECC437496E7E7408F465E945E28C544942CC0BCBC250D4E0AF14D9F81E7 +8D8521A893AB2DD7B456FF8F0DE426AF5F94CD626CE320AC8D2C0FB2DCBE346C +E864950CE39F58A8EEEC66FB491B3BEF7A5ECC9F652C4560D46775E553FA3B14 +E8D88EE59D2C6C8940B4942478E6652113A7104EF9A7B7BF39BB1C85055C8647 +EA3F3EACEDC13EA0020326E111EE6CCE763B761A82853D626036DC1FC293B118 +F3054946D2123D595F452AA40E8DC325669DCBFDC3DC330932A4C4086A9D9FC0 +6A03D3B807D7FEB165869EA049BC841CB94F34FD3C00B7A355399ACDE83C51A8 +4C4506E7D670F49A5B21E249AB3E5347C17FB9AFFBD4D5423F62751DDE8BFBB0 +21967DE512591E181108649B113CC3E7319D61CF208F4E0011E79A8585532C37 +19CB1DE645A5B07C8AC0C5C55BCAC7E01F13F6544B428B6F3A7FE67509A14A35 +430CB295ECF49CB5D00DB6C14E60A164C8D8D83341AF9DD6250CCDA3845A29EE +0BFA6D3B0820A5BDDAC9680EABF26A5EBDCE9CD54ECB820F2590BDEA36BBEB23 +F12CD662ABAC43B4096ADDFDB6E0BDD31E07D3DF37A72F0BD72DA2BDDBD756FD +A52D351EDA9FC8B39BA1CFDABFF5B7B061E8435486ECA0ACACBC4917CDB9D4C7 +6D81CC1A9FEE75EA765B4F20F511F271B5B4E054E02CA7FF5990BAE4D271C5DA +ED2E796B32B7015493512F81B910B5795D38DAFF64928CABBBE031E92B1C08A2 +86F2C1F68FDE286FAF7CA74C9913385D739262D5C06EF73A1C3976698F51D2D0 +F858984D2BCA7941D2181C99A7C33B65A17B6A1C02CCFDB9A23D0E3E729B85AB +405830E2D06B2B35EB265900DDBDBE125C0F82613FF98CF49E7294F3ECF414DF +EA84248C22A561477861EA75492743C4FB8935D446A121FD8F60AC14C61DB254 +07FBDDA07CDD853AFE99EB5B54C3F89503040DB85714CD95725D3344C5131B3A +5330021B809B995E123E060CCDAB57183CA09E554E8145887E80EF7AF58835C7 +D6F5A4E695551D4CABDDF5E90DB51A41110BAB360EFED144A6699F00FE3023A7 +CF7AA2055BC8D55C67DE8128527AE31D9130E5EA7A07BF2067CB108127BD8C5A +B6D325A6415EA9C20C5702A1A58725A385F69BFDAD14B6C21D2CF73A77E68713 +45DB838A412DEA0D0575D6DD2B7A1650BCAB58E5BEEAAEADA39023C2CB326512 +E8D89107960E19213BA4C18929C09C2EF5E216F2DF15FEE3D68E2D3253FF0FBD +0B1E09E63EE47A6EEE92F79FB4D3382AE21F7C7FE24C1C5E28B6BABB761FB9D6 +6BFBB74E0A29FBF106DC542DA56E84B1DA7EF89DC9EE90B6421CD0C69FBD7850 +5C5D461310A26AD4E91563CEBD727B0E327E5DE3DCF1DC53974B5D47D21B8B6B +A91C05685BC0AA35709BD3DBE8AA91F9ACA6A1091EF4CD5336C76543A1EBDE83 +ADA5206DA79094F67BA57B508073ED36029A5472EABADE8DD76CDC578827DE8F +A92896430254C0A2DB513EF6A5B619880926C0039ECBED0ED9CB4EE2DDAE7B38 +39633206926DB7589EDA69A409B9F6A0E691DEB2B7EA4069C5689F1FF2B73AFD +1EB302099183F5611D5AB1027B7D970DB28B621E67936ED0EB201A048BA1310F +7F4401234B19FD34674B851E635A1621C15A1F4D1232ABFF7B1E145F6DD8E603 +38F1A2487B742AE67F4773B3C595A7602247DA7CB4C6F8A9963F63DC09E6A532 +BFE5F5AEC47992B8813ADD822CB3E731940A8BA3B39C01EA2A935A6BD453D655 +B1A11B3107D196A5760ED2E4E1B4C61D3EB276FFF61DB628695CC6902CC3C708 +8196E3165A0CCEAF5352D3B7555D83E6D0377C325B1224E86930040F3FF47DE6 +F5EDB77FE09A3F8D39A0783B2E8739D9D8EC76F0C846C32259C8691118E67475 +10470154D3B6B35E4C6EAE6A5898313E55DB0625A3F92E755393AD5D51E40955 +BB5373BB842E80B0EFC3C4B3783B980952E871730DFC94056E093072869C14EE +3E722BB2801C8BDF3C0EA18C7DB3AF8EFFA64FFC28094D2EFE57DD02F4C7D576 +977D9AF960A3C79C3B3C95AA5F3FF4D9E1DD7C1E2470351296F1D2D0C68911FF +26B3C4F5CA46BB694244554CAC720E1D1CF66F68E9E1E0502773AE3D5C317A98 +4B08881BF4D931E1D2C6FB39D8C04F4149F003C846D7EAF1474FB8CBE9E3A93A +AF8A65A5B4ED2D2011B60C4F48FC91A030D6C6977159AA76838B6CE596A6DA92 +BE1B1D3A9C2BAB9EEC1E32D810DAED8AB3AC500BADBC03B357DF6AB8DD95FF22 +499BA619627A9BE8F803F331C95AA64A1FEF457C96012068637F7DB1AA4A2B43 +17285FE41B2109E3CB752413933E04292449CAA9DF8502E55C808BC2DF3F2B1E +0F0167D66371E6FDE932B77C478BE64124158C7D3EB2AEB7C1138C51F9BBE4BC +27DFC04D1C87B422709024AE639FFE87EBC03AF0AABDEA9A836EF77CFA0F60E3 +EF2FD1967D178827C85ED92D08F44642EE15D547DE067DF3F432FB557BA6D162 +3F3575BB854DA9FE02C7C4E06A75AF13A4924D144C3A91FFCE9BC2FC878259F1 +7C4051FAC31F1FF13A2D088C72F3B1EB03618B2D0E620759C1DD37D171EAE046 +5A51AFAD8ED2A7A18FEF4B4A16AC12CD92233007E2C48FAEEB1501A3F82AAC62 +FA3A83A70653EB36D237C23B37B1E2A549C50C9D51DF8A737E422ABA9C1CE63F +862BB06BC0134FC43658008E3F5D40C55FE92AABDE7B3AE6546AC1C37D2BE0AE +6C870FB22D5A744126A34AA7F426CF2E74F3F7443373615FA9A530BE5B4A57C3 +8E650A8B155FF8620F458F0CD87841A4F41587578F5A420D7CE90C6449BBD6D8 +0BCBD039A4A03E6CE6E02B2D31F544DED20D9BB03A1E50D6CA679011844C452B +96CDD80B67CC95C6B760A2A59A74FE37695ACD1673AC17ACA5F27AECAF921931 +47C905266992CE1E53677854D6111E787550717D74C93AC6C9DCD8F559AAA559 +1ABD98B9B1956E4CBEB9CEC3A1BC1AE6C45106A6BC2D86216DBBD7F953E5B271 +465D5DB891CF5571745CF32CFE0A52526B8215DD9F165D7A53820F1E089DF84B +2EACF3C25DD708843DB319888186D4279DAF34DBC50FA97E4EA0D3F297578140 +5267C8EE6AFBA8C1598B4263100DF52D3897010A429BC15498C9F9C181542201 +488922DA2077CD26BBC5477430B2F06C629A2E720632D6812E3A606A650CD38E +BC8828E1E37395FE0283B71451A0E94E16D8CC642AE498A191E7135C383F7742 +57200F56FCA40362072E3DE4957842C710AEFCB4F8830C4912EA5032E8EECDB2 +4C1CA969FFBDF37966A782DC92A0C8D1D9024A7F6131C1CEB3B458A8EB69C008 +9319C05A1AEFDE3BB663FB9174B94FEED60F6D914DAB5029DAF2F3A8131CD499 +5A74469662E126B9B000D5EC348452DE795677ABAB9089FDEB1B27B2E2E5E4F1 +B31E25B11D4B4C4E73499070249B16C0344FFBA87CD10A44A1E9E9F2962CC186 +78739D31823C2DE468D1FBB9849CC92F18B5FBE9DD385576A54215DF9339D5B8 +3AB66E902E43732750DA2F57F9F6C928C84E1B6ED12FBEADAFCC659E571F7D8D +2B9121C134EB9FEE6FAF9C46D29AC24EB5592C9EEC5BF4140E8BBAF20422E47F +A16A7BD43A6DA305A9FEC0A4BF7237AE50572766B27A0A2A4AAD47465B50D487 +BF9FC09B1680AAF48203C0C0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2652,29 +2999,95 @@ CF7E7FBB6630537CACB9C8A7F75DAA999BD91F88AA09F399AD41C19ABC746E83 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont -%%BeginFont: CMBXTI10 -%!PS-AdobeFont-1.1: CMBXTI10 1.0 -%%CreationDate: 1991 Aug 18 17:46:30 +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin -/version (1.0) readonly def +/version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBXTI10) readonly def +/FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def +/Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /CMBXTI10 def +/FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 46 /period put +dup 58 /period put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD +0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE +E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C +7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37 +88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6 +DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1 +AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI12 +%!PS-AdobeFont-1.1: CMMI12 1.100 +%%CreationDate: 1996 Jul 27 08:57:55 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI12) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 58 /period put readonly def -/FontBBox{-29 -250 1274 754}readonly def +/FontBBox{-30 -250 1026 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE @@ -2682,32 +3095,32 @@ D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF -E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207 -BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3 -3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2 -F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707 -C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E -BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632 -2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1 -879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D -141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF -63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46 -4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B -FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD -395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003 -82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1 -763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019 -165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E -57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED -E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5 -178DAA7C97C35EAFA47778CE03E863303582D8A9900EF4F8DA879DED54BACD7A -4A50C18AA2ED906FC4DC073B1E6CA1E3855AD5B7698EF4A96B77DBE19A12382A -CFA8717DE230CB6182F2250885B8E90AC42A66484A7B527061B223A6D1CC72D4 -890359E7E04690BFFA99FAB5CC9999F0873A9DBE49E33F79E483FAD72313DF9A -7B7D926461988C23CCE9F71AB7BB63BDB2B10B3F78176380AFFC154825C9BDCE -82303FBFC3B59E070438984C28D12E8655BBBF049125BF56DD2B0DE8C0450E55 -82832DA59EBEB001AAD86F2317460DD7ED264611B9043614221ECF +D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 +5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC +4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 +3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 +EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F +4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 +2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A +323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C +2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 +D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA +5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F +0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D +A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 +2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 +00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 +CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 +99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA +C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D +5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 +55B50047CC8911C98FE1A7BA6CDEA82D34476286E710776823690AD333DD3A49 +335002F4680DBE1C21174BF016B0DF799B01EB9D6988479A8334BBA2F8DC7146 +BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888 +15EE6D514D3457F7F3C6A3D17EE1DA076F73ECC392D349174DA9E4680F29CE10 +0157E42CA35F5DBFF56BFC3AA07E61A78DBE882C5AB388220C19750D3643E7C8 +23D6673027CE568A4ACCE1D12B1D9E5A43507F4AF9BC873237F65A6B95078DD2 +378007CF0F0DE7CCEF760E19D6D1D7B412EC5D4972 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -3841,689 +4254,66 @@ E6ED1E83A78C452A4B55AA0A93EBEA6CC4618FEEA937695E6513B7875E4EFCDC 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont -%%BeginFont: CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 33 /exclam put -dup 34 /quotedblright put -dup 36 /dollar put -dup 37 /percent put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 61 /equal put -dup 63 /question put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 90 /Z put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 -016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 -9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F -D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 -469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 -2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 -87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F -D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 -92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C -295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 -409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C -4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF -2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E -0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E -B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 -24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B -43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF -D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 -5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC -96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 -7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 -0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 -B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D -AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 -97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 -FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 -20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 -0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD -F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 -3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 -A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 -5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA -2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9 -0E172209FBE3857AF495A7F2B34BC895A39A30F903DC6E3202D29AC110D868F4 -7184CB78407B8B9D42F6375F67FD4B828592E4A977B9E71854D143CD1A9EDCD1 -767CC2929E071FBA4C3D17500E28A23F697B5D5CC68D5F56EAD14BD504E07182 -3FDC12F5404E74EC1C02AF00C1A6A17F958770ED4A024F5B3644DEFB61F2578E -56013D0B4E7CA3AD255E23DD63369A921D427EEE0E098E8148B16E8A5613A8F8 -A5F1099E15AD16EC554B644DF306F0CF3571055A81F1B464529DB49E919F88E7 -581066BEC4765E31BBE28C245BBF0B74610DBA30C63A71A4F3B60593A6B41C6C -636C980828CFE9A3362FBC02F1967F0F770A4790F90DEF9D56E0A76B0703FC58 -2841E6E8D984FB476D4FEB960FFB6B386EC6CBB9EB83704B0AF63F38C77090A8 -DAA165E6C6BC86601B14F8E9F504A9D578AF05128D8C1BCEA9D21057958D5DCF -63459352EAD6B4A2A666CC5D85855641CB31507F9E30405977B74356FE985A6D -541884CB65A4F5A8D4C82CB9D82846CC510CBD243E98A0011AD37A81047021DF -46F69D7C3DFAF2F10F1F0CCEFBE12EB70420BE90C450975434E223C67D24226E -8B62BCA6BF93B0B1373AF55E4ADD92775B2DF199B6599CB02DB64B2D6160BEBE -449C057B5B2D226E0F5D7CFB5C9A4A7184FB29A595E91252AE787861A6331FC2 -6605C995D55120121CB463473A7CBD22F270D56CA8E0DA99832A468D399CB9F5 -A1CBCF0031D99F3C4F4B78A0944BED5A7B1AE23E3A66EED453917F9296077306 -06CFA772BE60854A30885DC5FB8417E0D3F7AB45ABFE186D877A377F5D17DD35 -0FAB81745294E35A5DCAB20321C6ECAE276B63BB17366867F346CAD53E06AD96 -091CAC75465BCDDFDE9C4364B2A8EF496C4CDF76B058E4BC1F616F6CF62FB60A -64F81BABA7A729B8CF679CEE01B1C985558E8D1493C03B834F3696E5511A1917 -2AE7E16AA8FC516CD2CEDE020BC5777598165B6EF2310F4DBD54FE14071101EB -47F4B2B59778B1EA7DE13ADF46393E07DBE2082C2487944A71CEDD4ED7D3D877 -749D2500636C3996A34EE0CBA770F6B6A655DCB9840AA8236EF3F6182E1C8997 -395077D9DB15B9D0A2DF9A3F6042C94E6E492C965E4E8542AC4AF5B21906B6E8 -4AE2B01C0810E38BFAE99DD83EBFF8E145D09F763B6B134A25A1CC067C6DC1D0 -7286045CE90BA968598D83E5602ED96C72A424848E211C028CB344D95DA04ADE -4C5DADCE9009A72B6EC01E7B5CF8C52BDFD2B416F5E1833F514659D94BB2F452 -EC4F2E65CE71AAF79106A0468D76D283ADD44D7DB5760AA429D61C1DC2E912C7 -9446C19557A1D12E7116B765BE522EA166E8F0B604807215323DC5C2DB1F2E05 -246873CE189E03FA291A961E4AD90563A8F7B0E08A67DE4CB3607C6ECA114DD0 -DCE97976E208615F3CA13FC44041360086A4A173D5441D9C33A38013099F73E9 -0FBC96808F7442FD4D56DF7C4F2D4C9B2301F7CE626B4C6C1617B8F1584DF195 -F92FC6385070EB02BF2541307E4EA34C131815FB9028C118F4B792C5E81D87D9 -39E842ED5DFBBC9A98C5488037F0BECD5F109FFF47225F6DF1D19FDE8CA9CA1D -C92848624AD79ECF4B2CA10EB20FF975B53C530E2F18B36CCB3EFB7D2F4ECD2A -5B9E0B06BC681C6C47DA9305769E3FA19B7DAB49DD5AFDBB99F6E8167FD22ADD -D72AEC3FE48B61A79344903A56D3AB0859EAAAA2C57CBC7FD3E3C764B09FF3A1 -B7B343B90FE87FB519F0B73B1F875C7BBE1A79A2D252ADD544588D87519D231B -0EFD8F40679FC4FEB38F6FE44A465BCD131B3DFFE441BAE1FD4DE8F6E2348367 -35B34E1C7AC6CB1C074FB9C553F6B0315E7BE56858C58B4478376F8F8701D1E6 -7824F4403E97D6B0F31951BC3870BC51B6541B8CC858E33C2936B5F8D9F1830F -079493441FD87755609ABE661AD5458F1D2603709B2B301621365604037B9E65 -BC593479F0C10F290F9338FB78C702BBC548DED7A114C906181920E441C5357E -20215DC55A95077F95BAA4C110315E35CE4651FE41C227BB00BD9D65F0E219C2 -149D7A974B09A4E09D777C4FE67E0D1D2185F754892C4272619AE7B6E0F02BB1 -29E861C2D698844C43D6AC0A9DFD9815E78CC56DA2555A10E828EFD206E4AB25 -C197098AE1452D6B8C47242C04D2BF0437BE5E67CC54FDD5CB6608BFFB5AB410 -105C578884CC694E0C3D7C55007E3C8192B3980F2924BB4357420673364D5B00 -01DAD2BA5663C1344227C0468B6342A352002CEA59B84F1100A725F2405DF490 -899A6C89E04D9F8F441610A8339BDCB4CEA373FB9DEFC80404ACBA788004DE4B -1651F5F6EDBD8A80F35F7557EF8753DD07F1E6717E585863373012F3BB30AB9C -81F557AB952A89F3A40C1E127CE6D92A42BDAFFBF6E563A8103F498F9E023DD3 -57753FA6204A6D4E75DF1D2E12B90825EE4B8A25BAADE05909A3DC123AD5D758 -DFECF546C6FB6ABC379EEC8456EDD1929DC0A2E54C2832367685102A1B551D56 -2597BEDB41DC6ED60EF1037AD230BA8DAC47D00C8028E05671E606DB31400C70 -F904AE27AD72C25667D356EF230C3EBFB7A7FB054B85E7E03EE79B634E99B64B -D150A5A70550B951B0C017BBAC86875A95F81533C480864873DDE91D749A9711 -5706C4B772D183C3AB1365BE2CB6FE7076F8D5CD0947E29E753BF8A5B7E1056F -A3BD8445DC8F6794279D4A2CBCC17C880BD6037EF42FF33145D3430A8BF59AB2 -C274DB67C99E300BF9307470D1985351B9458198CD6D26D73DAA4AC79F493BFD -04DFA3B693184EB767B4A387825BD140C9F25E71A2DB694AFF848C8896670EE7 -2C2072BB9B6F67DA8011C1C19695BF08CAC4E53A9E91795A8BFEDF8E2AAB1F2B -8B0D5D49FB2B451A1CAE0CE5CC553B7D57DB61545E33ECA3919FEF2F6E56F809 -60A643392A38FFC1434C86C2E42477AE0434FFD40A08279A292C6AE79C41E972 -6AD3F2DD0CB187CAD26150ECF73E062F08741E52E202F8377C04845345DE86B3 -51C89220827DE253E71BE4A414B2350948A222BCAA37F881ACFB9DB4E33D5332 -D963375F5C182B624F2A7CDADE56ECCF8308203997AE4275F7AFF69F5768CF3F -E6E96EC1F9073B91A0CC6F3FB34E3CAF07A082E63E3D52175D1CC9301DE10DF8 -5886B5AE99859120122B81078F45016AD121EA32A6C269592514248D5C1B1BCF -D00F8F7FA0E65CC1C381D125BD71F45517CD0F2954AD07163B338B8E3223AD61 -D7FB848B0BE3908E8A3A091E9DC8AB756B4DB9AAA2B9080B9EB3484ACA51CE90 -760DDA3976DE784E5A818F6D253CD618938BEB3EFEF692EFDDBC67DBBDD10CAD -E5844DC3A93241B0915A1CD159B89C688539F73CEFB8B78A42965F6A97113ABA -6AEEC6C40A22C696ACD950B366EF9CC6F8CC1139401FA7807CCF03BD0F26AECB -D17D4565FF7FC7D9C54C52C8CC93400AECC75B9D6C79CD8DD2F85FF06D0F8EDD -857B0122963E348D8AA00E62564E3EF1AA181E46C9FB78C75DE79076F824B770 -FBE6C219DD052BF444557F8DB9BB857AB012404C94464314D1EE9BD7DEBB1A20 -34A09453E728B61B568D2B0BFC1618023C7AB01397BEF08F98AB11F9BF7F7E83 -9232547A51A89F5D9F99DA2F3EDE816ACA350FCC739B951D53FB2015D69525AD -811BABE6134F016EAD9032106B1EDC3F071836D7AEDADF127DC3E93DD7499F8A -2C188EE1B4DAE7BEF5FF76C34DFED2497306E9568F22D3226D5F43E9EE2FB1FF -C1507FC85F46B4488063EA6AFDFB1B665238F9DD585C1834570304A202B3642E -3F446AB17D5B0AB9E72AEBFDC5C24BE5D8256378BEE6801B4E499BFDA01718A8 -3211A2FF431FB61886D0BA683EDE528D43C02301B8BD6CC88565BFC2E7822232 -97260C07B7F9C3FB6F612944C6C904CCB3066EE7319C77EE2075FE360647B808 -F7769BCC25A66F16F2E6B304175A5ED31E307ED75AC63B19BAB7F16292D4DC79 -D9F2650BC99415C3576F446E649B32AB5D34475393D59A4EE020BDA982C8E97B -8ACD4C947AEF3D6059C7A2E0201C1544ED144676E1A61025236360E147D246F0 -5BEF0C386AB72C98BE6C131B6983282334A5307C34A30E755B0C1205C279CCE2 -CF007E0FF9290FAD9E2B8794A09FD1A915DC48CDB4DF940C9482E51C65AC6E8E -2B0A86A2DE91E0AA3E1A4B52DDAA231DC9B8AFEE466EA97EE2C4528F07416D3F -E32794F6688FC9147DF36A3E31C749B46665E334AACAD4B06AFAFB6A648C0497 -9BC64C85E2A46D2DDD04928BB6F06A3E7D36EB6724E5CDEC59C25A3F0D3AA0A4 -955525F02D8DC9AB61A63B07C4324788ED6527E42420FBD41A016BE1F4B8C1BF -4181FA4B896B7E9DF2E723A35C7C709CB97C83988D0BC9F3FA153CC165EF7D87 -8DAA9335D9646B65AA78EBF8D7DBDCA81659D41DEA8A64DB880435622528C74B -FB60A7ABD521E2B43E63792304BE70A52E72A06F23F4A1CC6034B33128E12952 -FBC1BD7741632BB354DD3AFFA3115BE4F2C37D6C18E074B6CCB3AE77FD0163FE -383154C14646C2EA8C0F341E8865AB3E8DA44DA947D267F978912D87F8EB2EAB -D9D9EC2FB624C73EF0B954F5A64B6DF48A8BE53D441AF8F90B6F1D0C2B0EEF1C -2E7789FBD48A2DFAE0FF490E3B97F1673B96082F44D23569628B0ED086CC4E3C -4E975A0230CEEE9F7C157F7960D74CD082C9B51FFC10AC9BEE4A7FF286631DEF -B3C1FA6CA426906277676E81CBFAD4146DF186F42DB0736E9A145107FA1D99A1 -C744D16D31507C59607395B8C6814F1181F75122BB14031C690FCFA42EC96625 -6834576440BAAF9C545DF0AF2FE7A6885733279ABF1E4AF8FC770E72AB8D31CC -01E338F202631597B7B10721BF07AAE87E15ADBC6114175D74FF1690AFC0895E -34F9F41FDA6E8CF1C4AE566864103DD05E7C3A259DAD0DCD5DB5CE42F1FAE46B -D0AD22F61B614FCFE7B7D3BFB1FBEE2192CDE426D8DD00B717125858E9E3AEF0 -3938483E09E3C52B9A2644FD9EC9B958E55AFE9E80CB16A0E2EC5212DA0E2688 -618C2AC16C07204FE17E769413658DB8DCC6A30EE41C2760BB4ACDFCC8F6EC74 -A159A8D12698CF4E584C7DFB8DED5E8335B57BEA2863CC16CB41DDF3E7C14DA8 -ED96E67B36FE099F2A5A03BB3FE2EDDE5FD35B5A3AF0D38FDB717223EB173936 -BA93570378A445663C0321F7D7A364D1D7A4425CB7A440AC7E393F20F24F955F -2D2508AE7FC814CEF69ECB4A10C9CC75A33A9DBB0F1560F9205C385271188C8F -88E006A378C8C5A3893F13CFA9D1983649691E79BE3C9DE927C1D75B65984930 -360BC3A409F05C570D7F5C6D286474DCDE71CB54452AD5ED88DBE99313972E83 -3B07A63DFA335215BF05110FDB22E4A30898E460DAD779E2179D956CE67CD203 -767DFBD873030279F8AFF1038924286000882B3D6561611511B45BF0BE8D44AC -EFA6546D7E03D0A3A8EA6C7738C5626363CADEB76DF443FA0A22BB071EB2A3B8 -AC9E711083D2069DB81D3E9B48D38F4240A315801DE86938FB7CE118A98891BC -DE1189516246649771CF1EC7092E9BECDDD470870F686D0E2B94EF7C6DBE515B -08796F044E9850EAEA5CBBB74DA4F65C1B71F4A28E8560287E0020E45D35FF0B -CD03B41BDFDDE66009C42B92573D99A9D6388BA5BF3C1BE9358CBB3FF12C0560 -47856725CFFBAF426FF7946BC0269A26CE765B51822EFA55FB9EFBABA5009AE7 -A7D8B6AC8B3B5CDE8A77736BD56DCB1DDC56BDD310BBF1E3B5F011C52773B9B0 -2CCE81FA331E7CCD3B32537AEFFBCE8CE6661F47816E2DE080D02A433908E4A1 -593637AC4BC55ABE6AE3137214F017BA34B0E9A0372F3A757474F5A4EBBF6DD4 -7B697C418423258D7964BF7C73544F0A1FCFB00AD5209CB4A74B139777ECCFF3 -8B8F88F2EA3EF58B02FCD2352FE7DF7A07CD5C7527E786945C54E74F22CB406D -BFC1E81557EC68F3F90C8D659636F19B50417AF09E31A0444F9903F1937C08CE -53F8C437778B2D2A9DAE9BEFAAEE650D4631FA93CF90E4C7463EDE6429DBFC98 -128EBC51AE5E15E24F5F5C1EFF658BF48D9B563CB5021903BD30E6AC48B406DA -49CAF07D734862D79EB760C89707B0EB590DAF9DC168DC858D7D9F1341CC54C6 -57FA2E962A7D7E3BDFA52A7C704421A15E8A241ACDBC926EE4EDC928C8FC64EF -BBE40A6C632A87AC4F222465D9033BAB39DE7EA3DA62EFBBE69E6C9ABC6A76AB -9F48AB41CA976AB98D24D68050BB0D940BBF71030D16CAD3B72D680E83104A2F -D223DC5E892357F7B061D46AF3CA3A7DCBA293A90CC944C1D04E7F59C399EDE0 -8D5DCDD1C9F0627A90BD84420336308EB8FB3AFBC436988EEA496A3DD16A9796 -4D884A95889EC70957FBF271293C6E930FBB138307D0A44627F15E61B1802B53 -BA5C3565B120C5E85696AF565B4A37129CD03965E65CF4919488DF467923F28D -3D78CD43B52317B05267AEEA30D67415FFD6C410E45C1719BB18798159449B61 -2BCC2D1D96D5BA1654F9E2A01370382D89E69A5867CDD197E93FF3C3C53E616E -1E468D285F33DB55E8EA96B7F4FD6FB9F4DBFAC80BA2D928C34978192E0BF3D9 -C204F90291A869A63D00993F00DB5AFF0A0B66E7E3520E8C25ADD0C316D99EC9 -3B9C8CFB1FB1138EF8ED87CE9E3E0A2B7A95D2B8AAB5C64A94F447CC53C5C0DB -F6BC9C2F41A52F32FE10247E45E3083A899A89E41FE25CE013F7E3012A8311F1 -E92192697C1D187572AB6E83D060B66BFC823258E7535ED5B481562605D2A272 -5D5F77F24B7E62E085B33EA1BA61DC7B06176248EE719D0B71447238CAA84339 -3F112F6AC99E93C6923356633A5FA6B3FE2C4ABF77652345E3585F8B50843F40 -FE7FBBDD919022B384B7F8426074D45F09976962B14D152F6A39ACE1A5790F18 -CD3209FDC1AE36578895FEEB036C7E4FBD148766F73A330AED55C83025ADDC01 -74B139ED6FF9929939EED736C053E37146DED46D9531C502A250C2259A7B31BE -6C65D5F41C89CB5F1EA7E83CB3AC45E5D63FE71E0C94152E74CCBD954EE51EB1 -8BA9CC4EF80F75FA153C33585D34E0159EBAAC68D1B4929D7DB8B3F32ED0D98D -739089C9567D66F5B1ECFEEA96425FFD66E70C27F838E3FDEDD0C7BC2B55DC9A -1772D5D6406C8A7B0F833C47B85A9C4D015A3C77E58B5564679BF0A318AE3A4D -4C531A1D4799318357F6C645537E083528D994679796C870959A17D509C54FF0 -0B543E3A682DC3527C588C5111CD073D82470F5A6B34EFB35BC64D8F179220B8 -93B9912FE6CBFDF37B5332A6DA64AE63583DF9C33B05953130F30591BFAE2346 -677FB81E405A78C8596177AE4D34D3D5BF50448545F9AD243C59A25708C3E9C8 -729AE758846A9CBE673E1D100294739FD3E39069DBB55D2926F733997FEF54C7 -DE70FB76E9BDB6122A2FE4E6A4D2048E134372C29761DF2F4BE07E1FE74A29E0 -05C3C55AA1F57474257691F49CC2F5C6913541BF2385E627B156A16B241542DC -04917B6880605C1BDB04A67247C7ABA5E4BCF517AAC406CA2ADD25A45CEDDB59 -AEC46D3AAA6248D1E7CF712EA43087149E3BA6DEEF7E65F11DAFC2BB2487B4EC -D2E28974537C601456DD2F8F07D9F7D6E0E9D58D8EEAA1F55EFA919813C90F4C -354FB972518732FDFF0843365450BCE633CA433AFD356092C3CEBE76EC592389 -36CA73BB3758DA97EB205E020B079E6CA53CACD69133ED876D9F79CFB8BADFA2 -296AAD4D8884D1CF88C9069E550A07E7BAB1A897B09B62664112A8BF5D15B5BA -D7B70CAE815A38D20C584CF39D6B7A4F8C545ABD6E2E5A7770F3B129834DAE61 -CC4B72FEB802B869AF5CAAEE1143D351F44F42568232CEFD0215A3913A08093F -215673A0640925283D9EF4A0C247A1B5733EA65AE42C34D15A037B59F785EBF3 -9A9F1518C95ECBB3EEB3FBB9D95EC1C92CFE12903E3EB0DFA2A686E453D15C5C -D8D2E14E3CCDB006226B55C316F8A71BA71C33EA80C336123D330638327EEADC -E0EDF1B5BFE215784CB2E24147C956CDFC1A8E19F04CBF3F3DE21160938854D6 -65D54E269E8DD5AB182E53EF4E901E3D18EA0A759D2953F4D749D84B1345AC6E -7609D075B700E16E6DC5ADBAE448B3638B470FBB994A918AA7A2F893852BF7C6 -A2045D6C6152A0CA26CAAEFBC2ABF520BA8F5F8E02B02F31C8CE48C5AC58997B -9993A4DB61DBF348F390C3431DE057CF78AD293A889D34E3898A2164B024700B -2D363DBC75298A9132C4A7D1EAEED0B8D8CC39486215E37B0C0B2C449CA966C0 -7A1576A9B6E6500DC6FC19AA18D190C1238E8E1426A9D53319FE9DA6EAC47963 -EB29BDF6221F93CD59F4531434ECB3F3A308131BC3CE132384779A0DF4169B29 -F6D2137D4592E1BAE07EAE366222F9FF9D211BA9578BBDBEBF0B3A7C66081661 -9A7838AFC1F02E3741BD1EB11857A3B22C8A1C75E09B465E83265C76FEC52D9B -068522D0430B331A2DB7BD17C5842E8FC59AF72B5D76519918BF4103F010AF89 -481B04229CA964AA4CD0EA1F4CA43E7FDEF816E9007FE8569170849EB20E00BC -ABA510AFC2EB129B8FC8392B6CDBDEF5ABEFDF008C4D2D1DCEE00F08DB217819 -3931A142ABFB8B45849F46F36D23DC20DD91A26C3572278E2F3D6A855D9FEED0 -A003706C47279D54A0D5954138A6728CDD0F5EBD0B91A7A68F77D7CD569F71D5 -30B97D8B539710D2F8808E19A2EB4DE33A9D93246B4DEBBE1E214CD7CA20D50D -A606422E11263A9F8E48BFEFB41E3FBDC046B0DCCD7E09A0D819B51AC93C20D5 -8648078EB45B7D048CE2129939F914440883EDB9040E7C09F7B8226BB2331359 -2B939F4A25279E475C1AB8882C79BCD257B739CD8D67886134737F436B7843FA -3C810FC94E7FFBEC6516CD38CA5030C5D7918B46C8CC7142E6ED67B90E636F98 -790DBB9831A5AA5CB236C7C676F978B8955444FAEBB40F7B5037AA8B5022A362 -687B60BAE867CD376E314BBF92D3D179F5E586E61CFECEED0D282985ABA8349B -1730C8ABA94E968ADB27C810FD6AA0AD6D21715B99E3489D19123E4C7AE1FFA0 -B603EAD675D994928475B386B36A95B803C92D640844CED78BF2820474302B3E -270B024C1177DC6348F6EE8AB15E3A31F704A12D522EE52584A9FC83333D28E0 -E0EFB793CE3A2AB9B3E47390041CBBCAE80126CC979738F86AB71CC326621D46 -955F30C2C8CA525ADD3EFE6F08CD7C5ED92998E632E1BB735C281DD9804C9284 -297091B3F03CB65427EE59D8396DBFF74D5F336980728C4BD47AD7654D6A4170 -719D7B1BECBF07A8C121A76B048212C53D717F6B53C351C747ABA94121277498 -60B5F2325C8713D711DADE62E78B9F609DBE324DEA85C0E0AA4D64DEED24CDD6 -36CC8D07C25B26DB301D77F42FEDE64606289406851B01066BCBAE9E28DCA25C -1B47E0BF99B7C37F6596697F5914DD1C348583C34D0A5F466BC878E799A1959F -DCE22CCF7714F62BDBD9D5B89C146623B72E2954BA834BB8806F2BB5D8B497B0 -3E44CCE42C9650D9D7E8DFA51E226152B49C9078E56399DE9794AE2487A59C05 -4B07A98DF5A070783EC944427691B9569C74960F361412B2ACC6993D23D46EE7 -E5D329816C48AC4F171C077A56798E784E7AE3F5D4D81511B9D4BB12718E85B5 -D4785828049C5B302167FAC29C122A42FFA992325B2C98E0C1D3659C586709E6 -F1239FA7EE27701DA10D641C6BA4FFC41C7DE6F7793CCFA21B43ACF3CD22C8EE -49E8C3D0768FC44A0EF0A42F0036A43723C9AC9790BB0C43B5D709E456046535 -953FC9ED60E171811A8F463541EE0923E3A983C0A5829D76520EE74B4B263919 -35AC18D065B205178259B31F7B1FBFA0B89E5CF3B667131673C2C4F9899AF5E3 -0E0082DB1200E2D362CE2997FAA8BD268AC400F06ED52A103965F7DA16A56AF7 -F6038AD9048E9862C923536313D18049B820E3E6458995D4E4E89DF07C44B601 -9F2AF1056240D9CDBF902BAC35979E898E1ABEC6117DBD7971033FB25C0C0BA0 -0D91412EC5FDBE3FA15626D1EC48351AFB407D2ABB421C6463204C9EEE32D484 -A5A8D4F784CFC8BA2EA6C78C562EF0B37003DC2DC23F0227D9B7A21F374F70F0 -1DC35DC48E2D4607DC13BBE956F2F9944F37CCD34A0381E8EE992EEE87A36F05 -F0B16D265EF73EFE1AF99C3C505EB7ABF83E36197C467B32FE791AD8F66F96FD -5BFE4B0613A2850A55FE9CA88320539C5C31C7DE8CACFBBFB93B06E79909B600 -5BD835028D6AA5D57382910AEBD08C929910F0FDA337D64C9AFE6738A34DB777 -AA99A88A16F676C2EE5EB95D3444A86CC06279623D7516EF9C21E2280AF797E8 -B0C0E71C6DE3B21FA8AE3F4BC29A80FA53F1751862F1432EBE8A1B60FEF61E16 -827B2AE734C4C2483786E44478F0623FC20222FC04D57AC3735FCAF448CE56B3 -5468205A1EF35929340AC330FB861A793C12385322F7604586C6F6FAB32767DE -EC475AFCBE5D579C9C5B15D29732DEAE9C29A85B0CF306DFADDD8A17A8A20D41 -1C58521DBBFA795E1CF501F5950B850A8A794AA166F12968BE1F10A5671D30D9 -9964A02C55C0EAF96343DE356AF06C54F029F7FC03EF6A7E76A9DB5684ED0315 -B51B3FDB6C40C512BFFCDB50100222E7E4D78B831AFD79CF46674A45C530A41F -106FF90A59D4F8BF0C620114AC3D5A0FA34E36B55D7D82EE7BD79498C721C7CA -2C1B79F7266C6F040F3E1DEC13373DB338EC02EDFA2E14D4BD3DBFDF94641756 -44357AAADE9616236BE9CE1B799AB3057E564447CE28038CFAC0EDDC5F1D20E6 -996C3BACB92044DD3332DB7893FB8A22691A7F71A8E10A9046B7E2801B1A0CD1 -C3BDFA06840677BAAC1A98CBA28A57176E8639F20F0BA93420DBDE97F1AC2A78 -CCCEC3D400923F4FDC970AD501E435C9BD246C6396AB8D37EB4A59F24DDD2A91 -4F2071458F9CC55FE63D7A16822ED199FA50DF3C653841537B9CA060D06374B9 -E53B56EAAE5377EAF9ED4751E0D2783E80CF206681E33EA9FF5D8F938FF42C17 -0F5359BB48D40DB82C952A3D850441543CF581CD291D784B9E3876BCFDA51E8A -7CE65E700DD5B6B2A5519E0484003BAA8F1F21950D6030447F12D26D6D0DF5B6 -C1B0D403CD4155C2C8D5D214D86D72B5B78B3B3ED2062A480EAC959C0F7D9F58 -B5EA0F4DD9599C83F1537AFC6B4EE2F5A92EE88C4B708BF9400CE3AA3FF14C20 -4850ECD07AB485F00C1FE75ED659448E252F7773E36B6B59ECD9AC6FAEF06122 -25D3DBFB44F70FA158E4D988B31C88A3D54FC01DB249F949AE1E06FD5FBE4970 -ADCB92CFEFADC41791A17B7DA3C785124CCE543BB24D3540B9F9A76439C49240 -6278B1F414E13B63249B3CC2216A1C5F9E8390865AF3514879F88429ED73725C -6ED2A8F1E22326D33D372A3E4C9523873CD3323DDFA9502F06B495F3FAF5C60D -784C5AD72F6F84F5396F9E3B167CD84C330CD2B777C16903516665EBE04B7AFE -F13B3CC49DDE9734710E221245B1B0242DC3DEA68C2C96E0F51E40212B264648 -562F3A7A2B12E54DFD9C3E4B0B593F8DE6D38BD6A516DB966483FAE1BB9D9858 -A66863EB013BD05588FEA4596962A88F5D7D27D7C0A11DD2626B32DCF117FA5C -5680E532C95A57F074378635A4D4136E73043734E411E47306928A2BC27960A1 -2739FF7C2F9B73F463AFBD28452C5FFC70D0268B91016F2EFA5932FBCE86B5AF -DC6368B80F11DE7715DAB114F28491D6F8B31B6C6C4DD126F812D93C515D34BE -516EC1BD3940F375AB4C1615EDA54F7586DD4EF0A04798A6855F98A302EAA67B -9816DAE0A37230DD5C2CD5E5612F05533565D9802584C92CE40E4F5B1F589AFF -276793334C091D79D77C148AF4FB69715FBE46399E3C6114282C2F61B2D596F6 -A159CC88BBCB01CDA19304D5B99927AC44A867D79F9FE058488B0D0CCE96BEF8 -DE97A68A493150E4B398BABCC2CD541F4D60D586234413D6484B6216518377B4 -899982E1FC8F041A7DB85E53970A7A73A28AB98D0ADBD53980AB0FE0E4777389 -6582B0B8FA0AF694CEB70F098400ED36C91860F70626813BB2D78162FB24C6E6 -75A956BCDE5716C135E4F06E2AF5FBC236A715A5E495BC577FC5787628C5E536 -46EAD10E8488D38655F899DDBB905DA9F93569EC9F8E705A336272F067B8D31F -EC2007F68ACC8E063773F3CB0B4671E89E5D6AA6A41E6B2E9723CADD17394C0B -C22DFFB74D0DA404EEE86F3928793EBBDC6E59FE4F9BB10248FFCF4F5E8960A5 -BF458817ED22FFEADAA6291B50E76659CC7C0C4F87A2841788A9F71289BA7450 -B70E6369E766F1AADF807CDDDF2E0DB49280B252120A7B56F2111A6F2E835CE6 -3EC2AE54D820BAEB19E47DC45F75712B2ADF84AC11DA640BB1B645A7859A68A4 -AA9375942FF5FFCCC6D3484D742E09550A8D3D2E3F451EA4712F1A2754C745DD -EBD5FC7A22A74BC1D550F0BE5C5132A23DC05D7714D9ACFF7141D6ADF958B9B6 -D0265BBF8A6EE985813F543BC897588F119A61A933713AEBE144DA7E0374DA24 -85232F206A8DBE5E5FBBADBD08A328B9912F2106D3E5F37407AB0B1B7E3706DF -C869B47CA793F3EACB0F3867F2BFC4A572BC263A661526F415289E6FE6A98CA1 -365F38A715D82EC626C34DC041E9F3371E6EF1A5A13A598D12E33088AD2D055C -24996E174C9C115094028A082566A9457C4D2A99E035BCD07159585689381D5C -53AC9E8319698424018ECB25690EFD36393D2FDF6F989C1CAFC5D40192147ED6 -FE84C93A1B5BB92E71A59537536857A0361ECC8DC57D07EC027AC1B1ED166B15 -0C1F45555560FD3E2CFF7A19B090456E57D3656E45DD8CE6E81EC3F8C03829A7 -1846E8296DAAC9B4774AFC8E2C5AA2AD2D5D83F28C242D47AB652FFFAA9D7403 -2A04AF87D477D80D7F52DB590A333A990C83B263FE27A7633BE1A9B49A7A9214 -3AF37383EDBDDACE9472829F23F3D6D18588C9072E050FA2B5ABCB7779CC1C49 -30478BD91773BEC9B1222FE293077844BEDACF2519F02E7D8E0E6264EEEEC523 -2A8FB7054E4EF01BF5C1770ABC1E75824EF28907AAF2D79B1CDD31CB29B4B7B5 -1FAB24FF24FB947EAAB5228030C21AF42B16064E533117A7F101019CC85C4873 -3821907608D71609639CDD3D435FF30C82C3954C8B2EC22C95C26B0C15CA0CDE -9AC3B015C9FB5F03370101719851FB22773CDC0008F636E53964C1429461470B -D398251346BCE391000D8C69CD86366FFC84DBC645084191FB35B142A1741AFA -F6E9D1355CAA69F4FBE160B88D8187609D9F426C0C4D7C440D0571FAF0FF988D -8CDE5F66D47B40349463F1DF1E67AD514B88233B6D8A5AA8F94D2E70B4A215B6 -0442C8906A768E87D30F8173292556E278C0E27694547D31A77EB8D0C7098F6C -40573F6F9ACBF67362868B94EBC2F7DC0CB9F66F1EFD4D56E6FAD086F8E10E69 -4CE496936420560DB4493D9E66BB505790D021DAAE167F4F93C0C78F22A0C787 -1C126761C204E5ABE81845A10FD73D0A37CE5C09444D137365E55E08FB7A4D2F -CEE7D970175F44B750887ED52D07EB09AFF64D6FBC8E0220D358181E72DB6EB3 -0A794BE0EA91B9C549FF45815A23ED65E27646A7F5186334CCFD180E4304FDA2 -63530FD22F62A234EFDC7D4A7D691BC1639BD9E28D0A1DC0D7CD975CFCB219BA -311F934F175F5DDBA3027C664A6A0B43137661BE848A6CCF2FAE338584BB16BD -D12846E5A31B5987643D6FD36D88A4580EFC7C2E187258F076CF408377E5D9F6 -E4D72535751317240FACB2C0B316E380C3FBE4A34D4B735B2A0E07F0AFA6BCD4 -5A3696C9C0BA1D44EE8C81C651A2D103063F95F433839EA50F617BE476C98832 -C96D8E130B8666ADBB59DCC94104D777E7AD89C69AF35C768BABB664B9B3F761 -37E581AB3D09415B0A5A04A840F8E9B77E332C595F1C9C68D6E1050379BB9CBF -85B08954F025F0EC42DC8DCA66F35151685766925A661BE20602C716F29771DF -B97AE157947DB24EBFBDDFC162B9D763774D958AC244EB0ED10B67486F924F92 -092ECBDBCCAE2E187FC1C10B272E9DC5049DCB146E72B1C8CEEE027BF4393B37 -9A2D56F971AE8C5AFBC1D155B2FB3A485DC60058F50E41C11FFA783421F009BB -0A56C4B7D38CA448C34F301DF1B21FA8E2B0985F053010A39C359276400581BA -359942B434000B01BD856B78DD2292B95D4A1E8EE01CF515E1F2D74CE2878B9E -83D44C1A3257782D76C283EFF5CA6390BBDFFE3C5E5D62C96B9FC4B3D3F21D50 -4C7F6C1D30AEECDDE1D9A5E9C6E170636026AC2F8C036FE704814547914D115A -ED4EB7E90568279DE9F9EA886D84DD37811116BF085887582037BD2554E6725C -D361D3F2A755E5FCDB0069FA63F08AFEED9A69E6C39DCE99BE85D73FEC078AEC -A498AF621BA68E8A0F6A8EA08E5837F2DAF737AD7AB35D66B8488E9A7A96E5EE -3A8E354FCA750C1727F326BF15D29E488D0755D96252550F78130562884C12CE -EDB3656D1A71FB61A1AEA86ECDDF9C22B3B755E99D651E47FBDFEBBACFA023EB -FE245A88B8B84E55172332FBAD5267354C033DCEAD6B6E9A756A25B5C90A6D54 -CB5406FC7DF8A2116FC73C66EB1296C8BD62C481FC2556A9847F403B219FD110 -8E9F62CD3326C153603B9405986914A33D3998CE44A75622C5F60E94429C6B2E -5FC9D143012E2036FD5D85F6B94BCDAF2A3E04581AAAA03B26A5F502D7064995 -24143B568DC72D8652080D57A374305800A69A57157F4456276EA0278573CDFD -03DF212A15CCBF2BEA4A2484B444E56477AC4D3E098E04FA91AD2F8B3955BA23 -CF267E3822EF6DB589125BA0571F01AE172CB7B3981CA5069DE807C1F4E81546 -C4E225221588D70714CB92404D5614751805CC4482977CD37394EE9D87302781 -BFEF351085C77D55EBCD63968D74F98E2900019A9DED8492022DF9285B4BB82B -411500E9ADB89EFC013BAEF1A50F93F33A88697FD01E0E274A18345B511D325A -BF9F31B5B2D40C6F0F24DEF390DC240D447E2DD478B117308B1B4AAAFE68987A -95B9778FC8ADDAD6C9659B4E227509E2D96C8F9613D1B9756FCAFE634B8F8338 -122AC433D3BB361B8C92370C3D29FBEAD42D1DB08BEE961BEEA935170F6CE431 -DB51DD0E3495DBADA3283753163ED2F33FCEC11DC47E9DD9A9AFA0C8535E39EB -1197F01A6E8E1B659AFD036F05B62E789EF74AE5C75E49EB4E4959AD9ACCA133 -D6F3C4DD031CF7C0906F4C25D561100C9DCDFB3FE775F32411518E933CB23885 -1FBF2A7D90963FBC1E5428DFCD47F1C40E03E73BC5F319FD85D6499C220C3975 -8E2E45F501F38001E8739CA6AF6DBDEA31830F44E0A58435524055DCEFEB13D4 -7C0821962995506A4D91767EC8E848BCAA045F4E17F49C3BCE53634B76DC9631 -38C7644E4A178F68FADF357371EA05B2107CD38FBB65885DF3A1B9A2D789F1D3 -CC448BF8A824DD198EB25ABA590695EBF737E579317EE43BDB461E68CD94F9A6 -EE70ED0223183CC7FE942FC95A909AD18B332933D99868976ED7A4BAB80A0F73 -5D2DF126958885409EE7DA9171DEB5C1DD45EA8C5605B09D5D7030784E809EEF -23671F7E446759C3A7805E4610EF2809B942188C9843C457BABED6E86E596B45 -ECB617325C1AD8DFCF4BC5918C588F17C232F7D6A68A0C34B619DC7B2C312AA6 -C28C5B668F3E5F5AD6E0E703C067CB4A9EAF9C332E8ABD6CCC5C9A9A9170E513 -B30356843C3179918AB79BD8DFD5D1C5EE4BFB490F2A2D5578ABF904DA06797A -18BA6B29B40167A15F30BEFEDE3B883BA2E3F7456B79829EA6401A1D4B24D246 -2F30494780181F6D14E98254B408B9A5F19359AEFE16C0ECAC266457198288FD -9896565A0FA172EC4A1C00E0246590608CF4A0EDCBE3C379DAFD947CC822D857 -002538210C115755346538F9D1513AF7F2F1A8030331D8BDEC178B4D0EB36C1F -6F4D0FB8C372759B5C4AE183BAB4C8CA99BD066C7592A4D29DE2125F8AB91522 -55A4C9A6185433933E53D9CFB6C0F9A084FFCAD64C6A93B03F68A33D0F7E53E3 -04694D65EEE330CF14D8A29950C6C15B3AF83A3C7E2EBAB95B34EF658A98A203 -B5B1AC2E6243FECA9270A9C758B30905F02A687C0B7F9A3735C27852BBE116B2 -88E54702854EAEF3E3660B5F23A7F1259C882EAAE8348F9E75B9BB05CE4FBD39 -A2D151AA4879FB77DF3B8323AA075A42D13361DAE648FDFC4ABBDCC7D959EA55 -48F3E55975DF3B9A80CDCB9346B21D61E3F2903E4BB9D22E9B633544BFCBFAF8 -D5F87DAFECEEE13D8775EB47EB44D7A19A88B80428A036890EDFC600042BC8FE -77EB131364D1BBF8AFB417ACB7C553B73774E3C236EDEF4BFF06A50CC08108C8 -7F93F127B101F476A60B3322A0FE523B03A926F43ADB5900EBC129266054F71B -A894F48EE8BB0E44DF612C92784A49503F529E282D75D260176059615C0D91D0 -392654CB3CB9009F606F3C0D54B7892EF75CBE163CA8B9F6B60E472456F4FEBE -3B3FB3535F173461EDB704CF7DDC9E11D11A45273DB61AFEBD3B1F51CA18FC2C -547699AAAB9F72A89E359C00E71A45CE5B3950331D6E61290BE0F4E3227C8807 -7FD95D8F16ED419EEA012B9FDE77865AF6AB873899C28A55B17AD0B4E525C736 -F1A543174F4592D26E2F4FF193E133390C69775C16DA080EE99949C17224DAE9 -76D150B46EBB6B89A2611CF17BEEF95E26295A3730FB9674ABF84FDBDCC4C82A -86510B30C3EC9565B667822C2BAEA34244103D388BF1FEA474031527C85B7F20 -D7F35DB51D0388BCE4F5B7BCCE5BC825337599425B3B03C9B9927769F9F78FAD -48A5C1C811D68FCB696A558182AC8BED38EB4049CDF644CB285EE86E4DA468D7 -68309CDEFB98DAD41CA0E1E54B48ED6ED1010D1305F94190F7E240937CB71E07 -E20B12CFAB644F4AD60961D12B0B0B3FF8BB24C951FAF5938D05B3D23431DE44 -4D323074DE804F11BA8B647CAD1A9239D4AA19654B7D398E65CA7209B66B51A4 -D29BCF59F6B9A2A7A8599B3BD55A227848CEEA57FA1480D86FBE093B70852A76 -07CCC9C1091F2E271351ED33642F46C9C9C7823B1BF97F82B6A24875E77B9B89 -D2A5D8EBBB583508508B30B43296002D1CFA28962E535C272992B76E0890F12E -73B03B78574FF185DC13B1523C7264638C95902C0FAC2D099629A2B6C47866E1 -C351E6F8E7F92EDBA9AAF8E7CC8248E555137D22FDA47100EFF2760EB03F52D4 -D77F574551E0C12DC99FE8C73809143DAC2EF085B5C4B1F9DD3792A70D634BCF -3CBFB43650FA4E32F88BFDA71FBEBBCE2890E0C3883FD33BC745B517E4B64DF5 -D86FB991298CF808C6769A803A5538C1E666BA226967933B025878D1CCB8F4A0 -AF0957FD2BA6E56439195CCA8E252B10C0AF848DC2E4F70B15C33C9EA7C99303 -D58661AE49F17F056CF8BDA8D690156E5A3F6FE21BE40AAE2C820F142C22ACE5 -ED070363D3FA1004DA3959A6304E5F572F0142BF397DC61E6349DC3E98491493 -D1D2B70C5BDCA541AF6105CB609E7884258806E5891BDBD7613076A8B8E42BCA -E6B84FAC6DD3FD824680F5BA77B1910DFF6B954A8DAE3F6B3D9780A55D7A67F7 -843C14EBA078C1912AEB85CDAF69BB2385C7ADE1F90F01E47989043BE89B5041 -B6B024E26962BF694172E6116EBA7312CD6268B7920FED3ADE0E3E227D7A83F8 -8278620B2D157151AA95BC6D4CA943EA6BC73FBA1ED2D84CE5EBFADD41D99B9C -9A80300D83A88672CFCF7B3F3F0B6EE62F28A8330C95A1D8646225D5C6B1B9B3 -84431BEC2507094BCE297FC0411D4BB4B6181B6A05C8F2C2A24D12E50A178784 -E57937467F1843338A34B52D23BCF961F9863D89A440EB7F05266CA3EBE5A68B -61F2904FA54DDFE56F2D502797E0AF36273DE22C03C3AAD424567FD23CFA632E -BD0F0409B3B52C6093336007E9A7F8EE660CD790CFFB05E36BD1AF81C82778B4 -0465BA6A9D4AB37BB128BE326ECEBDA72A3E25CEBEC61024D4D9F5A24F43C2D2 -9AF358500EDAF56CB0D66CEC0B0123DEC9B8C05F10278E8EC00C8BB7D13316CF -0BE24A5DBB0B31F5FA4DA8AE1DAECADD078A4300BB7DDF6BCF8DB490110F94F0 -869DE91639AAACF9D9CB2CB491B6D39270416AD441DFE95DFDB8CBE0221D236F -2DC9A6A25E7A9735317BA259695EBA983FB2AF9D119A193BC6E02128AFB31A0E -255E04ED690221C0CC651C1AA9C904578B4EB970409FBE0E99917ABB34C0939A -EAE4B0CE6EE177E9EDA5BD3601F45800E74E615DDE96D3ADA9F279E5972E5240 -020BC2ED41EC8924C413051A2AAE855BC63899175917CC8721C1F08EFC33E428 -8FECFFEAC1BAFC8ECA17056DA5CE6180485687DB086CB14C5A349D0EAC073BE2 -305C0F7FEA8A642495E0ED4F46B0640475C5D75935430EE0A01CFF8CB138379E -FA46E77966D46B8DFFC61D80FF9FED124B505386FD1BAFC58E53B29FD438D6CE -23625AD8CBABBAD9A857BC85DBC6051CF69F624979C658A3792F1CD12D22F117 -59ACE97B90B45043C4577747E9ACBA0A2D6097650B7EA939FF865009DC33993E -B35C62C341F0791D8F129791D0D8FE20553DB7F30FED403F364DDC40211047F1 -E3D2519BEBAC8F8330435B60B38C0049DE44DF7ABA93229AFECCBD4C3CDD9B48 -8861EE1D31DA56E240CA5540B367C8065053FAD0E29105BB6C6D485BE059C6AD -9986BB21961824A6152EB3758D8D50B73E783C9E4671392A713B41ED3C4F3713 -7E4C3EA0C1C55DBD7ECB96E3645BB2EFEE56522C5A79B12F672376C801E3BA24 -160DD230F9A0B4DF94A5AD361BFD9A1B83233A0402E93EF14E4B13E7B13F2C2C -46656A2C359D5020C928C5F232AFB484C67C607F4B818DEBA385B1B508AE9078 -E3A15FDB784B24391116483ADD33339845FA6D12F742DF2A2DF85853026DDCCE -F7126C4EBD7F8FF55BF4A37D5032795C76CB3D79EE4BD55B06B9C51F3E8F24A5 -A9DF3636127D413C87C4931F5FD1783F381BE866DE87BFC738BD1B1DAD380EFE -1FBF60C8C7D13352E34B55665095409F9D19ACE1F365BD24F8A7A5DD82D6D41F -3B1CE83C28F95F2B41E54834089C63582C9BFEB052BEE8F82D3DFA7DD9F19DAF -1131F7C9850B29941E672EE78B6A4057D3326B230592394FDD3E19B93B450DB6 -CED6713F8D5BC0267A33329BC29E246074DC152090199FC2DC2F132A0C989CCF -9460630EED38B0BD398607CB8EC039CD4BDEA661F8F50198F4116C40F82F209B -0B5E71659F203864A60920B83097E0F02ED6CFF75BD53659D34F42318707029E -186816165393FDEB184194A329C25877D1C9C383C99BA7E54778703215CDB884 -46AAA8F1B548D15ED0452526D015B4194C95ABA65609DCB9EA418F8361BD9330 -BB4F7AD0B50505E0AEAFBA39017E2C31649CD6E0DB2A2AC5D85D27CD5C4C6837 -A37A75BA69DD080979E3A4428E157722AB00EC9EC0EC2760F7637E7EE226661E -84E8F77EBA9B837CCD22D4286A6CF695F8CA22D157C7C623BBDD074A6162EC85 -8B0EE8BD06EB146AB5204D9084D0842367A38730112CE27D791E781AB81FB69F -EFA5C20D70F0A1B10A1EEAD6B460F3C76CDCFE0D92D45F472600A00C8782232E -0F6858B5B92B4486211FC32C812CB429F54A3787B9B51E16D52B55EC79157905 -643DF8A892FE7AF73E1D51D57ED3899060801E32B53F93FD91686E7F857AAAA8 -55DE0750B64F8C319DC27CA19A7D38E9045A6DF2B444472A790338738D63B6EA -C0786F1926A8194A4F6680A454DA83DE8158C68F596DB8791727813FB96A7E40 -B7EC5F671E5867AA4A189629F8B9E8BA7A607741D41223B6E09484DE58719022 -24F225EDC4C3CD0F18B968E6A743C8E3B8206DED5F00F5E93B2A3FC315A486FA -C57EEDF67C5DA9BD101D98E6F729068B2D3A27A95A1F8C0EA92E5824574C4E1C -3A4FD1688C0AB93BCC4E8315EA4B10F9BC75C490B18C5010F30A393DA18D2041 -E95C675B35C74EC532F2C0EA8E48907A0DBE20CBC3C52BC3D18FA15444AF9F5B -ECDC5C3473ACC1C1605B15A7ED2BFBA556EFD85A2A9E4CC80AB1414316AC9B90 -DD10C24B1085B050DF5FD2F28E1A0694524F2CEF7C5152B76AEA117E51E225C1 -1EC484D1D441D99ED10FFD31715E6F10475AD4647A9A46EF22962D6997F27ACE -10F583F5A02448312DE0F2B32CD484681B70807F43BE286C6B196A06806D0B22 -A3E58C0AB56BB717BC0A8510B5E49211A69EF1E6DA0BA4A41A6B76E7A881EFDA -31CD1F081FD48F7938044B4AC86BADBA466071EF588D8C45D539F74FB0B0E1C3 -79AD2DC87C0F2C3FC264823E22E19C4E3E8078CEA42E071A5E6D5381BCF18829 -EF2893EA32B4108A2F52D7CFEC54A7265A0F4752EBA32BFC821F9A4A020AC999 -BA39EE3139091E66829D26DC1A24A767B0456FE50E3EC915F4E7D53B48D0F54B -919EF87C10D3CF27FAFC925DD511C57B811AB2C40DCB4873A2FC903A954CF044 -1E4D6EB8E89BF9219CC31EF005F963E7D4D33C0434C1E76A83A6511FBFEE37E0 -533353F555E6303791EB82C52117BA073C9BB48B9062A556DF64CEB85EE0DA79 -32F94DF379D63C5E1316E6ACE816F26E207FA06C491AB34C3AD43E758D234827 -5A8509A6452E36DC81A7BA870D3AEBAD3BA821AEBA9B8FDAB7D33F0E4470F891 -58490414EBAC971E215E1A3BD789C1D7774F184CC5320FBF9382FA3291C1E823 -641AFAFE393A04B603EB6EF4C8E11746223A929E18AF414A75AB1A840F52B268 -AF74B03390A16431719523125C0D750984B771E8CA1E3FFBBACEDDE42A875A72 -116CE3F9D605FA6489646ED1D6D98E093C829FAFAB2D21377ABDA3F3642BE95D -DFEAEBE6BA1F65E1DC4AA7B84FF25213D963E4F417024E6D436E1D3F551B3CCA -71F37632B7B10CD4B9D437D6CD22620F003827787EEF30CD18D2320138ECE5A8 -B83C7C9A31391D2321683DD1A4A2969442E1D375138A12B63219AF769DDE5FDC -C5AFFCE6CEA25BBDA9DB06F9655019B4ADE0D8C72C213CEB7CFA448F9E4B0026 -E8A531AA99026848E32BEB52E1815D04C711B3AE4CE048ED2B95A8E8E5AF394A -C0059D62AB26C4F13EB8BE84232329B606F8738697ED0761E12D74731D4B66AA -14C337680BC5F746E17CF94E5759815F5EE644774BC783B1C0069803CA6B859C -FBECB5605CA1C721B604BF48A7A2AD7149333EA8EDA9A9CBF1A1DDD368510AD0 -9D7444BCAE2E5D8A11F5F08BE716A32E389C6DAE4EA62A3511562D70F8F79946 -A4AD033778741EEF0A55CEA96ABD06FAC4A1F2E973E8969566231CD704AD7632 -591B2CDD3FA6FC413AD1C5A5684182BC95A757C44F8FE6D0263188AF5E6A87D7 -92740B707FF88179CBF34065832869F094FF12DEB66BE0D01AB466E236CE -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont TeXDict begin 40258431 52099146 1000 600 600 (bashref.dvi) @start /Fa 130[62 1[62 123[{}2 119.552 /CMTT12 rf /Fb 133[34 41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23 21 43 38 23 34 43 34 43 38 8[58 4[43 57 1[52 60 58 70 3[28 58 3[59 1[54 58 7[38 38 38 38 38 38 38 38 38 38 -3[21 31[43 12[{}50 74.7198 /CMR9 rf /Fc 209[24 46[{}1 -74.7198 /CMTI9 rf /Fd 134[39 39 2[39 39 39 39 2[39 39 +3[21 31[43 12[{}50 74.7198 /CMR9 rf /Fc 197[21 58[{}1 +74.7198 /CMMI9 rf /Fd 134[39 39 2[39 39 39 39 2[39 39 39 39 2[39 39 2[39 3[39 19[39 27[39 39 2[39 45[{}18 74.7198 /CMSLTT10 rf /Fe 129[39 39 1[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 39 1[39 39 39 5[39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 1[39 -39 1[39 33[{}81 74.7198 /CMTT9 rf /Ff 138[39 27 28 28 -1[39 1[39 2[37 22 4[31 1[31 1[35 5[20 6[51 39 52 1[48 -3[44 5[46 48 54 51 50 53 15[35 3[24 5[20 39[{}26 66.4176 -/CMR8 rf /Fg 150[30 30 104[{}2 74.7198 /CMSY9 rf /Fh -135[61 2[61 1[46 2[56 63 5[30 1[64 2[62 52[55 47[{}9 -99.6264 /CMCSC10 rf /Fi 140[56 3[56 56 1[56 2[56 56 56 -57[56 45[{}8 109.091 /CMTT12 rf /Fj 134[48 48 48 48 48 +39 1[39 33[{}81 74.7198 /CMTT9 rf /Ff 167[62 3[60 46 +2[57 1[62 76 52 1[43 1[62 65 54 1[63 60 67[{}13 83.022 +/CMR10 rf /Fg 135[67 2[67 1[50 2[61 69 5[33 1[70 2[68 +52[60 47[{}9 109.174 /CMCSC10 rf /Fh 140[56 3[56 56 1[56 +2[56 56 56 57[56 45[{}8 109.091 /CMTT12 rf /Fi 134[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 1[48 2[48 3[48 3[48 1[48 1[48 1[48 48 48 1[48 48 -48 1[48 48 48 48 1[48 6[48 6[48 48 48 48 2[48 2[48 2[48 -39[{}50 90.9091 /CMSLTT10 rf /Fk 134[65 65 89 65 68 48 -48 50 65 68 61 68 102 34 65 1[34 68 61 37 56 68 55 68 -60 34 6[93 1[127 2[85 68 92 92 84 92 96 116 74 96 1[46 -96 96 77 81 94 89 87 93 1[58 5[61 61 61 61 61 61 61 61 -61 61 1[34 41 34 4[34 26[68 72 11[{}63 109.091 /CMBX12 -rf /Fl 135[56 2[56 54 42 55 1[51 58 56 68 47 1[39 27 -56 58 49 51 57 54 53 56 46[50 2[50 1[34 45[{}23 90.9091 -/CMCSC10 rf /Fm 135[42 1[42 1[30 37 38 1[46 46 51 74 -23 2[28 1[42 1[42 46 42 1[46 50[28 33[51 12[{}18 90.9091 -/CMTI10 rf /Fn 209[43 46[{}1 119.552 /CMBXTI10 rf /Fo -134[85 85 1[85 90 63 64 66 1[90 81 90 134 45 1[49 45 -90 81 49 74 90 72 90 78 10[122 124 112 90 120 3[126 153 -97 1[83 60 126 127 101 106 124 117 115 122 7[81 81 81 -81 81 81 81 81 81 81 35[90 94 11[{}52 143.462 /CMBX12 -rf /Fp 200[0 21[91 17[45 1[91 12[71{}5 90.9091 /CMSY10 -rf /Fq 134[48 48 66 48 51 35 36 36 48 51 45 51 76 25 -48 28 25 51 45 28 40 51 40 51 45 8[68 93 1[68 66 51 67 -1[62 71 68 83 57 71 1[33 68 71 59 62 69 66 64 68 13[45 -45 45 3[30 2[45 27[76 1[51 53 11[{}54 90.9091 /CMSL10 -rf /Fr 134[71 71 97 71 75 52 53 55 1[75 67 75 112 37 -71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102 -139 102 103 94 75 100 101 92 101 105 128 81 105 69 50 -105 106 85 88 103 97 96 102 105 64 4[37 67 67 67 67 67 -67 67 67 67 67 1[37 45 37 1[67 5[67 112 1[41 20[75 78 -11[{}73 119.552 /CMBX12 rf /Fs 129[48 48 48 48 48 48 +48 48 48 48 48 48 1[48 2[48 3[48 3[48 1[48 1[48 1[48 +48 48 1[48 48 48 1[48 48 48 48 1[48 6[48 6[48 48 48 48 +2[48 2[48 2[48 39[{}50 90.9091 /CMSLTT10 rf /Fj 134[65 +65 89 65 68 48 48 50 65 68 61 68 102 34 65 1[34 68 61 +37 56 68 55 68 60 34 6[93 1[127 2[85 68 92 92 84 92 96 +116 74 96 1[46 96 96 77 81 94 89 87 93 1[58 5[61 61 61 +61 61 61 61 61 61 61 1[34 41 34 4[34 26[68 72 11[{}63 +109.091 /CMBX12 rf /Fk 135[42 1[42 1[30 37 38 1[46 46 +51 74 23 2[28 1[42 1[42 46 42 1[46 51[33 32[51 12[{}18 +90.9091 /CMTI10 rf /Fl 135[56 2[56 1[42 55 1[51 58 56 +68 47 2[27 1[58 49 51 57 54 53 56 46[50 2[50 1[34 45[{}20 +90.9091 /CMCSC10 rf /Fm 197[25 58[{}1 90.9091 /CMMI10 +rf /Fn 197[33 58[{}1 119.552 /CMMI12 rf /Fo 134[85 85 +1[85 90 63 64 66 1[90 81 90 134 45 1[49 45 90 81 49 74 +90 72 90 78 10[122 124 112 90 120 3[126 153 97 1[83 60 +126 127 101 106 124 117 115 122 7[81 81 81 81 81 81 81 +81 81 81 35[90 94 11[{}52 143.462 /CMBX12 rf /Fp 200[0 +21[91 17[45 1[91 12[71{}5 90.9091 /CMSY10 rf /Fq 134[48 +48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45 +28 40 51 40 51 45 8[68 93 1[68 66 51 67 1[62 71 68 83 +57 71 1[33 68 71 59 62 69 66 64 68 13[45 45 45 3[30 2[45 +27[76 1[51 53 11[{}54 90.9091 /CMSL10 rf /Fr 134[71 71 +97 71 75 52 53 55 1[75 67 75 112 37 71 41 37 75 67 41 +61 75 60 75 65 3[37 1[37 1[102 102 139 102 103 94 75 +100 101 92 101 105 128 81 105 69 50 105 106 85 88 103 +97 96 102 105 64 4[37 67 67 67 67 67 67 67 67 67 67 1[37 +45 37 1[67 5[67 112 1[41 20[75 78 11[{}73 119.552 /CMBX12 +rf /Fs 129[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 48 48 48 48 48 48 48 48 1[48 48 48 48 48 48 48 +48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 33[{}93 -90.9091 /CMTT10 rf /Ft 131[91 45 40 48 48 66 48 51 35 -36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 -45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71 -68 83 57 71 47 33 68 71 59 62 69 66 64 68 1[43 1[71 1[25 -25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 2[35 35 -25 1[76 45 1[45 25 18[76 51 51 53 11[{}87 90.9091 /CMR10 -rf /Fu 138[108 1[76 79 3[108 1[54 3[108 1[59 88 1[86 -1[94 14[144 4[184 10[138 66[{}13 172.154 /CMBX12 rf end +48 48 48 48 48 48 48 48 33[{}93 90.9091 /CMTT10 rf /Ft +131[91 45 40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 +48 28 25 51 45 28 40 51 40 51 45 25 2[25 45 25 56 68 +68 93 68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 +59 62 69 66 64 68 1[43 1[71 1[25 25 45 45 45 45 45 45 +45 45 45 45 45 25 30 25 2[35 35 25 71 76 45 1[45 25 18[76 +51 51 53 11[{}88 90.9091 /CMR10 rf /Fu 138[108 1[76 79 +3[108 1[54 3[108 1[59 88 1[86 1[94 14[144 4[184 10[138 +66[{}13 172.154 /CMBX12 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi @@ -4536,8 +4326,8 @@ letter %%Page: 1 1 TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5 b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31 -b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.0,)g(for)f -Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.0.)3145 1697 y(Decem)m(b)s(er)g(2008) +b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.1,)g(for)f +Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.1.)3145 1697 y(Decem)m(b)s(er)g(2009) 150 4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11 @@ -4545,11 +4335,11 @@ b(oundation)p 150 5141 3600 17 v eop end %%Page: 2 2 TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f (description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f -(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.0,)c(29)f(Decem)m(b)s -(er)g(2008\).)150 3133 y(This)f(is)g(Edition)h(4.0,)h(last)g(up)s -(dated)d(29)i(Decem)m(b)s(er)h(2008,)h(of)d Fq(The)g(GNU)i(Bash)e +(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.1,)c(23)f(Decem)m(b)s +(er)g(2009\).)150 3133 y(This)f(is)g(Edition)h(4.1,)h(last)g(up)s +(dated)d(23)i(Decem)m(b)s(er)h(2009,)h(of)d Fq(The)g(GNU)i(Bash)e (Reference)i(Man)m(ual)p Ft(,)150 3243 y(for)e Fs(Bash)p -Ft(,)g(V)-8 b(ersion)31 b(4.0.)150 3377 y(Cop)m(yrigh)m(t)602 +Ft(,)g(V)-8 b(ersion)31 b(4.1.)150 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fp(\015)f Ft(1988{2009)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d @@ -4560,7 +4350,7 @@ b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150 b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g (under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39 -b(1.2)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28 +b(1.3)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28 b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8 b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28 b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33 @@ -4581,516 +4371,572 @@ eop end %%Page: -1 3 TeXDict begin -1 2 bop 3725 -116 a Ft(i)150 299 y Fo(T)-13 b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fr(1)135 b(In)l(tro)t -(duction)15 b Fn(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) -60 b Fr(1)449 778 y Ft(1.1)92 b(What)31 b(is)f(Bash?)21 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(1)449 888 y(1.2)92 -b(What)31 b(is)f(a)h(shell?)14 b Fm(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 -b Ft(1)150 1130 y Fr(2)135 b(De\014nitions)37 b Fn(.)19 -b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)81 -b Fr(3)150 1400 y(3)135 b(Basic)45 b(Shell)g(F)-11 b(eatures)12 -b Fn(.)20 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f -(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)57 b Fr(5)449 1537 y Ft(3.1)92 -b(Shell)30 b(Syn)m(tax)22 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b Ft(5)748 1646 y(3.1.1)93 b(Shell)30 b(Op)s(eration)10 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b Ft(5)748 1756 y(3.1.2)93 b(Quoting)10 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b Ft(5)1047 1866 y(3.1.2.1)93 b(Escap)s(e)30 b(Character)24 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(6)1047 1975 y(3.1.2.2)93 -b(Single)31 b(Quotes)15 b Fm(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 -b Ft(6)1047 2085 y(3.1.2.3)93 b(Double)31 b(Quotes)15 -b Fm(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)44 b Ft(6)1047 2194 y(3.1.2.4)93 -b(ANSI-C)30 b(Quoting)18 b Fm(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 -b Ft(6)1047 2304 y(3.1.2.5)93 b(Lo)s(cale-Sp)s(eci\014c)32 -b(T)-8 b(ranslation)11 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)41 b Ft(7)748 2413 y(3.1.3)93 b(Commen)m(ts)25 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)55 b Ft(7)449 2523 y(3.2)92 b(Shell)30 b(Commands)23 -b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(7)748 2633 y(3.2.1)93 -b(Simple)30 b(Commands)15 b Fm(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)45 b Ft(8)748 2742 y(3.2.2)93 b(Pip)s(elines)14 -b Fm(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)44 b Ft(8)748 2852 y(3.2.3)93 b(Lists)30 -b(of)h(Commands)23 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -54 b Ft(9)748 2961 y(3.2.4)93 b(Comp)s(ound)28 b(Commands)17 -b Fm(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b Ft(9)1047 3071 -y(3.2.4.1)93 b(Lo)s(oping)30 b(Constructs)c Fm(.)15 b(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 -b Ft(9)1047 3181 y(3.2.4.2)93 b(Conditional)31 b(Constructs)18 -b Fm(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 -b Ft(10)1047 3290 y(3.2.4.3)93 b(Grouping)30 b(Commands)13 -b Fm(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)42 b Ft(13)748 3400 y(3.2.5)93 b(Copro)s(cesses)20 -b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)49 b Ft(14)449 3509 y(3.3)92 b(Shell)30 b(F)-8 b(unctions)8 -b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b Ft(14)449 3619 y(3.4)92 -b(Shell)30 b(P)m(arameters)20 b Fm(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b -Ft(16)748 3729 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)14 -b Fm(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b Ft(16)748 3838 -y(3.4.2)93 b(Sp)s(ecial)30 b(P)m(arameters)f Fm(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Ft(16)449 -3948 y(3.5)92 b(Shell)30 b(Expansions)20 b Fm(.)14 b(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b Ft(17)748 4057 y(3.5.1)93 b(Brace)31 b(Expansion)e -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)58 -b Ft(18)748 4167 y(3.5.2)93 b(Tilde)30 b(Expansion)17 -b Fm(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 -b Ft(19)748 4276 y(3.5.3)93 b(Shell)30 b(P)m(arameter)h(Expansion)18 -b Fm(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)47 b Ft(20)748 4386 y(3.5.4)93 b(Command)29 -b(Substitution)f Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(22)748 -4496 y(3.5.5)93 b(Arithmetic)31 b(Expansion)12 b Fm(.)j(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)42 b Ft(23)748 4605 y(3.5.6)93 b(Pro)s(cess)30 -b(Substitution)19 b Fm(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b Ft(23)748 4715 y(3.5.7)93 b(W)-8 b(ord)30 b(Splitting)c -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b Ft(24)748 4824 y(3.5.8)93 b(Filename)31 b(Expansion)25 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(24)1047 -4934 y(3.5.8.1)93 b(P)m(attern)31 b(Matc)m(hing)20 b -Fm(.)d(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)49 b Ft(25)748 5044 y(3.5.9)93 b(Quote)30 -b(Remo)m(v)-5 b(al)15 b Fm(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)44 b Ft(26)449 5153 y(3.6)92 b(Redirections)24 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(26)748 5263 -y(3.6.1)93 b(Redirecting)31 b(Input)11 b Fm(.)j(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)h(.)f(.)g(.)g(.)40 b Ft(27)p eop end +(duction)13 b Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)h(:)57 b Fr(1)275 778 y Ft(1.1)92 +b(What)31 b(is)f(Bash?)22 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)52 b Ft(1)275 888 y(1.2)92 b(What)31 +b(is)f(a)h(shell?)13 b Fm(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)44 b Ft(1)150 1130 y Fr(2)135 b(De\014nitions)13 +b Fn(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)h(:)f(:)h(:)f(:)57 b Fr(3)150 1400 y(3)135 b(Basic)45 +b(Shell)g(F)-11 b(eatures)27 b Fn(:)21 b(:)e(:)g(:)h(:)f(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h +(:)f(:)72 b Fr(5)275 1537 y Ft(3.1)92 b(Shell)30 b(Syn)m(tax)25 +b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55 +b Ft(5)399 1646 y(3.1.1)93 b(Shell)30 b(Op)s(eration)c +Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(5)399 1756 +y(3.1.2)93 b(Quoting)15 b Fm(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)45 b Ft(6)524 1866 y(3.1.2.1)93 b(Escap)s(e)30 +b(Character)11 b Fm(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Ft(6)524 1975 y(3.1.2.2)93 +b(Single)31 b(Quotes)d Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)58 b Ft(6)524 +2085 y(3.1.2.3)93 b(Double)31 b(Quotes)26 b Fm(:)16 b(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)56 +b Ft(6)524 2194 y(3.1.2.4)93 b(ANSI-C)30 b(Quoting)d +Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)57 b Ft(6)524 2304 y(3.1.2.5)93 b(Lo)s(cale-Sp)s(eci\014c) +32 b(T)-8 b(ranslation)8 b Fm(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h +(:)38 b Ft(7)399 2413 y(3.1.3)93 b(Commen)m(ts)26 b Fm(:)15 +b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b +Ft(7)275 2523 y(3.2)92 b(Shell)30 b(Commands)21 b Fm(:)14 +b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)51 b Ft(7)399 +2633 y(3.2.1)93 b(Simple)30 b(Commands)c Fm(:)15 b(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57 +b Ft(8)399 2742 y(3.2.2)93 b(Pip)s(elines)18 b Fm(:)d(:)g(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)48 b Ft(8)399 +2852 y(3.2.3)93 b(Lists)30 b(of)h(Commands)15 b Fm(:)f(:)h(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)45 +b Ft(8)399 2961 y(3.2.4)93 b(Comp)s(ound)28 b(Commands)22 +b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)54 b Ft(9)524 3071 y(3.2.4.1)93 b(Lo)s(oping)30 +b(Constructs)11 b Fm(:)k(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)41 b Ft(9)524 3181 y(3.2.4.2)93 b(Conditional)31 +b(Constructs)18 b Fm(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47 +b Ft(10)524 3290 y(3.2.4.3)93 b(Grouping)30 b(Commands)15 +b Fm(:)f(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)45 +b Ft(13)399 3400 y(3.2.5)93 b(Copro)s(cesses)18 b Fm(:)d(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)47 b Ft(14)275 3509 y(3.3)92 +b(Shell)30 b(F)-8 b(unctions)29 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)58 b Ft(14)275 3619 y(3.4)92 b(Shell)30 +b(P)m(arameters)17 b Fm(:)f(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 +b Ft(15)399 3729 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)20 +b Fm(:)d(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)50 b Ft(16)399 3838 y(3.4.2)93 b(Sp)s(ecial)30 +b(P)m(arameters)16 b Fm(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)46 b Ft(16)275 3948 +y(3.5)92 b(Shell)30 b(Expansions)17 b Fm(:)d(:)h(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)46 b Ft(17)399 4057 y(3.5.1)93 b(Brace)31 +b(Expansion)21 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(18)399 +4167 y(3.5.2)93 b(Tilde)30 b(Expansion)10 b Fm(:)15 b(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)40 b Ft(19)399 4276 y(3.5.3)93 b(Shell)30 b(P)m(arameter)i +(Expansion)18 b Fm(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:) +48 b Ft(19)399 4386 y(3.5.4)93 b(Command)29 b(Substitution)12 +b Fm(:)j(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)42 b Ft(22)399 4496 y(3.5.5)93 b(Arithmetic)31 b(Expansion)19 +b Fm(:)c(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)48 b Ft(23)399 4605 y(3.5.6)93 b(Pro)s(cess)30 +b(Substitution)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)57 b Ft(23)399 4715 y(3.5.7)93 +b(W)-8 b(ord)31 b(Splitting)20 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49 +b Ft(23)399 4824 y(3.5.8)93 b(Filename)32 b(Expansion)13 +b Fm(:)i(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)43 b Ft(24)524 4934 y(3.5.8.1)93 b(P)m(attern)31 +b(Matc)m(hing)d Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)56 b Ft(24)399 5044 y(3.5.9)93 b(Quote)31 +b(Remo)m(v)-5 b(al)9 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 +b Ft(25)275 5153 y(3.6)92 b(Redirections)26 b Fm(:)15 +b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)55 +b Ft(26)399 5263 y(3.6.1)93 b(Redirecting)31 b(Input)23 +b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)h(:)52 b Ft(27)p eop end %%Page: -2 4 TeXDict begin -2 3 bop 150 -116 a Ft(ii)2612 b(Bash)31 -b(Reference)g(Man)m(ual)748 83 y(3.6.2)93 b(Redirecting)31 -b(Output)18 b Fm(.)13 b(.)i(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 -b Ft(27)748 193 y(3.6.3)93 b(App)s(ending)28 b(Redirected)j(Output)16 -b Fm(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)45 b Ft(27)748 302 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output) -g(and)h(Standard)f(Error)954 412 y Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)54 b Ft(28)748 521 y(3.6.5)93 b(App)s(ending)28 -b(Standard)h(Output)h(and)f(Standard)h(Error)954 631 -y Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 -b Ft(28)748 741 y(3.6.6)93 b(Here)30 b(Do)s(cumen)m(ts)13 -b Fm(.)k(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 -b Ft(28)748 850 y(3.6.7)93 b(Here)30 b(Strings)10 b Fm(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 -b Ft(29)748 960 y(3.6.8)93 b(Duplicating)31 b(File)h(Descriptors)17 -b Fm(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)47 b Ft(29)748 1069 y(3.6.9)93 b(Mo)m(ving)31 -b(File)h(Descriptors)15 b Fm(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)44 -b Ft(29)748 1179 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f -(for)f(Reading)h(and)e(W)-8 b(riting)954 1289 y Fm(.)16 -b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) -f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b -Ft(29)449 1398 y(3.7)92 b(Executing)31 b(Commands)25 -b Fm(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -56 b Ft(30)748 1508 y(3.7.1)93 b(Simple)30 b(Command)f(Expansion)c -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)55 b Ft(30)748 1617 y(3.7.2)93 b(Command)29 -b(Searc)m(h)i(and)e(Execution)13 b Fm(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)42 b Ft(30)748 1727 y(3.7.3)93 -b(Command)29 b(Execution)i(En)m(vironmen)m(t)18 b Fm(.)d(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b Ft(31)748 1836 -y(3.7.4)93 b(En)m(vironmen)m(t)21 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b Ft(32)748 1946 -y(3.7.5)93 b(Exit)30 b(Status)8 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)37 b Ft(32)748 -2056 y(3.7.6)93 b(Signals)10 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 -b Ft(33)449 2165 y(3.8)92 b(Shell)30 b(Scripts)21 b Fm(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(34)150 2408 y Fr(4)135 -b(Shell)45 b(Builtin)g(Commands)38 b Fn(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)82 b Fr(35)449 -2545 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)16 b -Fm(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -45 b Ft(35)449 2654 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)17 -b Fm(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) -f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b Ft(41)449 2764 y(4.3)92 b(Mo)s(difying)30 b(Shell)h(Beha)m(vior)23 -b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b Ft(50)748 2873 y(4.3.1)93 b(The)29 b(Set)i(Builtin)11 -b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)40 -b Ft(50)748 2983 y(4.3.2)93 b(The)29 b(Shopt)h(Builtin)23 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b Ft(54)449 3093 y(4.4)92 b(Sp)s(ecial)31 b(Builtins)22 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)52 b Ft(58)150 3335 y Fr(5)135 -b(Shell)45 b(V)-11 b(ariables)10 b Fn(.)21 b(.)e(.)h(.)f(.)g(.)h(.)f(.) -h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)55 b Fr(61)449 3472 y Ft(5.1)92 b(Bourne)30 -b(Shell)g(V)-8 b(ariables)11 b Fm(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(61)449 3582 y(5.2)92 -b(Bash)30 b(V)-8 b(ariables)17 b Fm(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b Ft(61)150 3824 y Fr(6)135 b(Bash)44 b(F)-11 b(eatures)31 -b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f -(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)75 b Fr(71)449 -3961 y Ft(6.1)92 b(In)m(v)m(oking)31 b(Bash)e Fm(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)58 b Ft(71)449 4071 y(6.2)92 b(Bash)30 -b(Startup)g(Files)c Fm(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(73)449 4180 y(6.3)92 -b(In)m(teractiv)m(e)33 b(Shells)14 b Fm(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)43 -b Ft(75)748 4290 y(6.3.1)93 b(What)31 b(is)f(an)g(In)m(teractiv)m(e)j -(Shell?)20 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)49 b Ft(75)748 4399 y(6.3.2)93 -b(Is)30 b(this)g(Shell)g(In)m(teractiv)m(e?)10 b Fm(.)18 -b(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(75)748 4509 y(6.3.3)93 -b(In)m(teractiv)m(e)32 b(Shell)f(Beha)m(vior)22 b Fm(.)16 -b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)51 b Ft(75)449 4619 y(6.4)92 b(Bash)30 -b(Conditional)h(Expressions)20 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) -f(.)49 b Ft(76)449 4728 y(6.5)92 b(Shell)30 b(Arithmetic)f -Fm(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)h(.)f(.)g(.)57 b Ft(78)449 4838 y(6.6)92 b(Aliases)25 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 -b Ft(79)449 4947 y(6.7)92 b(Arra)m(ys)29 b Fm(.)15 b(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(80)449 5057 y(6.8)92 -b(The)30 b(Directory)i(Stac)m(k)15 b Fm(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) -f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b Ft(81)748 -5166 y(6.8.1)93 b(Directory)31 b(Stac)m(k)h(Builtins)10 -b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Ft(82)449 5276 y(6.9)92 -b(Con)m(trolling)31 b(the)g(Prompt)15 b Fm(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)44 b Ft(83)p eop end +b(Reference)g(Man)m(ual)399 83 y(3.6.2)93 b(Redirecting)31 +b(Output)26 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(27)399 193 y(3.6.3)93 +b(App)s(ending)28 b(Redirected)k(Output)12 b Fm(:)h(:)j(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)41 b Ft(27)399 302 y(3.6.4)93 b(Redirecting)31 +b(Standard)e(Output)h(and)f(Standard)h(Error)d Fm(:)15 +b(:)g(:)h(:)f(:)h(:)f(:)g(:)58 b Ft(27)399 412 y(3.6.5)93 +b(App)s(ending)28 b(Standard)i(Output)f(and)h(Standard)f(Error)19 +b Fm(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)48 b Ft(28)399 +521 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)c Fm(:)15 +b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)56 b Ft(28)399 631 y(3.6.7)93 b(Here)31 +b(Strings)c Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 +b Ft(28)399 741 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)16 +b Fm(:)g(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 +b Ft(28)399 850 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)19 +b Fm(:)d(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)49 +b Ft(29)399 960 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f(for) +f(Reading)h(and)f(W)-8 b(riting)19 b Fm(:)e(:)e(:)h(:)f(:)h(:)f(:)49 +b Ft(29)275 1069 y(3.7)92 b(Executing)31 b(Commands)17 +b Fm(:)d(:)h(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Ft(29)399 1179 y(3.7.1)93 +b(Simple)30 b(Command)f(Expansion)23 b Fm(:)15 b(:)g(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)52 b Ft(29)399 1289 y(3.7.2)93 b(Command)29 +b(Searc)m(h)i(and)f(Execution)d Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 +b Ft(30)399 1398 y(3.7.3)93 b(Command)29 b(Execution)i(En)m(vironmen)m +(t)8 b Fm(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)38 b Ft(30)399 1508 +y(3.7.4)93 b(En)m(vironmen)m(t)18 b Fm(:)d(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)47 b Ft(31)399 1617 y(3.7.5)93 b(Exit)31 b(Status)c +Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57 b +Ft(32)399 1727 y(3.7.6)93 b(Signals)15 b Fm(:)g(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)44 b Ft(32)275 1836 +y(3.8)92 b(Shell)30 b(Scripts)23 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)53 b Ft(33)150 2079 y Fr(4)135 +b(Shell)45 b(Builtin)g(Commands)22 b Fn(:)e(:)g(:)f(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)67 +b Fr(35)275 2216 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)e +Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)57 b Ft(35)275 2325 y(4.2)92 +b(Bash)30 b(Builtin)h(Commands)24 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)54 +b Ft(41)275 2435 y(4.3)92 b(Mo)s(difying)30 b(Shell)g(Beha)m(vior)9 +b Fm(:)17 b(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)39 b Ft(51)399 2545 y(4.3.1)93 b(The)30 +b(Set)g(Builtin)c Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)55 b +Ft(51)399 2654 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)13 +b Fm(:)j(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)43 b Ft(55)275 2764 y(4.4)92 b(Sp)s(ecial)30 +b(Builtins)21 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)50 +b Ft(59)150 3006 y Fr(5)135 b(Shell)45 b(V)-11 b(ariables)19 +b Fn(:)h(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)64 +b Fr(61)275 3143 y Ft(5.1)92 b(Bourne)30 b(Shell)g(V)-8 +b(ariables)22 b Fm(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Ft(61)275 +3253 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)16 b Fm(:)h(:)f(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Ft(61)150 3495 y +Fr(6)135 b(Bash)44 b(F)-11 b(eatures)13 b Fn(:)20 b(:)g(:)f(:)g(:)h(:)f +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Fr(71)275 +3632 y Ft(6.1)92 b(In)m(v)m(oking)31 b(Bash)d Fm(:)16 +b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b +Ft(71)275 3742 y(6.2)92 b(Bash)30 b(Startup)g(Files)20 +b Fm(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Ft(73)275 +3851 y(6.3)92 b(In)m(teractiv)m(e)32 b(Shells)11 b Fm(:)16 +b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41 b Ft(75)399 +3961 y(6.3.1)93 b(What)31 b(is)f(an)h(In)m(teractiv)m(e)h(Shell?)17 +b Fm(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)47 b +Ft(75)399 4071 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m(e?) +14 b Fm(:)k(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +44 b Ft(75)399 4180 y(6.3.3)93 b(In)m(teractiv)m(e)33 +b(Shell)d(Beha)m(vior)23 b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)52 b Ft(75)275 4290 y(6.4)92 b(Bash)30 +b(Conditional)h(Expressions)22 b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Ft(76)275 4399 y(6.5)92 +b(Shell)30 b(Arithmetic)c Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)55 b Ft(78)275 4509 y(6.6)92 b(Aliases)12 b Fm(:)k(:)g(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)42 +b Ft(79)275 4619 y(6.7)92 b(Arra)m(ys)17 b Fm(:)e(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)47 +b Ft(80)275 4728 y(6.8)92 b(The)29 b(Directory)j(Stac)m(k)e +Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(81)399 4838 y(6.8.1)93 +b(Directory)32 b(Stac)m(k)f(Builtins)14 b Fm(:)i(:)g(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Ft(81)275 +4947 y(6.9)92 b(Con)m(trolling)31 b(the)g(Prompt)24 b +Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)54 b Ft(82)275 5057 y(6.10)92 b(The)30 +b(Restricted)h(Shell)23 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)53 +b Ft(84)275 5166 y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)9 +b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Ft(84)p eop +end %%Page: -3 5 -TeXDict begin -3 4 bop 3674 -116 a Ft(iii)449 83 y(6.10)92 -b(The)30 b(Restricted)i(Shell)11 b Fm(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)40 b Ft(84)449 193 -y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)16 b Fm(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b -Ft(85)150 435 y Fr(7)135 b(Job)45 b(Con)l(trol)32 b Fn(.)20 -b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f -(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 b Fr(89)449 -572 y Ft(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)23 b Fm(.)16 -b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)52 b Ft(89)449 682 y(7.2)92 b(Job)30 b(Con)m(trol)h(Builtins)12 -b Fm(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) -f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)41 b Ft(90)449 791 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8 -b(ariables)30 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)58 b Ft(92)150 1034 y Fr(8)135 b(Command)45 -b(Line)g(Editing)38 b Fn(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)81 b Fr(93)449 1171 y -Ft(8.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f(Editing)24 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(93)449 -1280 y(8.2)92 b(Readline)31 b(In)m(teraction)15 b Fm(.)i(.)e(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)44 -b Ft(93)748 1390 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)25 -b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Ft(93)748 1499 y(8.2.2)93 -b(Readline)31 b(Mo)m(v)m(emen)m(t)h(Commands)13 b Fm(.)h(.)h(.)g(.)g(.) -g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b -Ft(94)748 1609 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)20 -b Fm(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)50 b Ft(94)748 1719 y(8.2.4)93 b(Readline)31 -b(Argumen)m(ts)23 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 -b Ft(95)748 1828 y(8.2.5)93 b(Searc)m(hing)30 b(for)h(Commands)e(in)h -(the)g(History)c Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 -b Ft(95)449 1938 y(8.3)92 b(Readline)31 b(Init)f(File)f -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) -g(.)g(.)g(.)g(.)56 b Ft(96)748 2047 y(8.3.1)93 b(Readline)31 -b(Init)f(File)h(Syn)m(tax)12 b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41 -b Ft(96)748 2157 y(8.3.2)93 b(Conditional)30 b(Init)h(Constructs)d -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)58 b Ft(102)748 2266 y(8.3.3)93 b(Sample)30 -b(Init)g(File)20 b Fm(.)c(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -50 b Ft(103)449 2376 y(8.4)92 b(Bindable)31 b(Readline)g(Commands)11 -b Fm(.)j(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(106)748 2486 -y(8.4.1)93 b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)c -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(106)748 2595 y(8.4.2)93 -b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f(History)17 -b Fm(.)e(.)g(.)g(.)h(.)f(.)46 b Ft(107)748 2705 y(8.4.3)93 -b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8 b(ext)29 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -58 b Ft(108)748 2814 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8 -b(anking)16 b Fm(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b -Ft(109)748 2924 y(8.4.5)93 b(Sp)s(ecifying)29 b(Numeric)i(Argumen)m(ts) -23 b Fm(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)53 b Ft(110)748 3034 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s -(e)f(F)-8 b(or)31 b(Y)-8 b(ou)18 b Fm(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Ft(110)748 3143 y(8.4.7)93 -b(Keyb)s(oard)29 b(Macros)10 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) -f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)40 b Ft(112)748 3253 y(8.4.8)93 b(Some)30 -b(Miscellaneous)i(Commands)12 b Fm(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Ft(112)449 3362 y(8.5)92 -b(Readline)31 b(vi)f(Mo)s(de)c Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(114)449 -3472 y(8.6)92 b(Programmable)31 b(Completion)12 b Fm(.)j(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(115)449 3582 y(8.7)92 -b(Programmable)31 b(Completion)g(Builtins)12 b Fm(.)j(.)g(.)g(.)h(.)f -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 -b Ft(116)150 3824 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l -(ely)14 b Fn(.)22 b(.)d(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f -(.)58 b Fr(121)449 3961 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8 -b(acilities)11 b Fm(.)19 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)41 b Ft(121)449 4071 y(9.2)92 b(Bash)30 b(History)h -(Builtins)9 b Fm(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)h(.)f(.)38 b Ft(121)449 4180 y(9.3)92 b(History)31 -b(Expansion)d Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)58 b Ft(123)748 4290 y(9.3.1)93 b(Ev)m(en)m(t)31 -b(Designators)21 b Fm(.)c(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 -b Ft(123)748 4399 y(9.3.2)93 b(W)-8 b(ord)30 b(Designators)g -Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Ft(124)748 -4509 y(9.3.3)93 b(Mo)s(di\014ers)27 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)57 b Ft(125)p -eop end +TeXDict begin -3 4 bop 3674 -116 a Ft(iii)150 83 y Fr(7)135 +b(Job)45 b(Con)l(trol)24 b Fn(:)c(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)69 b Fr(89)275 220 y +Ft(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)17 b Fm(:)f(:)g(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)47 b Ft(89)275 330 y(7.2)92 b(Job)30 b(Con)m(trol)h +(Builtins)25 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)55 b Ft(90)275 +439 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8 b(ariables)19 +b Fm(:)e(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)49 b Ft(92)150 682 y Fr(8)135 +b(Command)45 b(Line)g(Editing)27 b Fn(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)72 +b Fr(93)275 819 y Ft(8.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f +(Editing)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)56 b Ft(93)275 928 y(8.2)92 b(Readline)31 +b(In)m(teraction)8 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)38 +b Ft(93)399 1038 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)d +Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)57 +b Ft(94)399 1147 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i +(Commands)27 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57 +b Ft(94)399 1257 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)19 +b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)49 +b Ft(95)399 1367 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)11 +b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)41 b Ft(95)399 1476 y(8.2.5)93 b(Searc)m(hing)31 +b(for)f(Commands)f(in)h(the)h(History)9 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)38 +b Ft(95)275 1586 y(8.3)92 b(Readline)31 b(Init)f(File)23 +b Fm(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Ft(96)399 +1695 y(8.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)15 +b Fm(:)g(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)44 +b Ft(96)399 1805 y(8.3.2)93 b(Conditional)31 b(Init)f(Constructs)25 +b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)56 +b Ft(102)399 1914 y(8.3.3)93 b(Sample)30 b(Init)g(File)12 +b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)42 b Ft(103)275 2024 y(8.4)92 +b(Bindable)30 b(Readline)h(Commands)11 b Fm(:)k(:)g(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Ft(106)399 2134 y(8.4.1)93 +b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)e Fm(:)16 b(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(106)399 +2243 y(8.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f +(History)17 b Fm(:)g(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)47 b Ft(107)399 2353 y(8.4.3)93 b(Commands)29 b(F)-8 +b(or)31 b(Changing)f(T)-8 b(ext)21 b Fm(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +51 b Ft(108)399 2462 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8 +b(anking)22 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)52 b Ft(109)399 2572 y(8.4.5)93 b(Sp)s(ecifying)30 +b(Numeric)g(Argumen)m(ts)17 b Fm(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)47 +b Ft(110)399 2682 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F) +-8 b(or)31 b(Y)-8 b(ou)12 b Fm(:)k(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)42 +b Ft(110)399 2791 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)21 +b Fm(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)51 b Ft(112)399 2901 y(8.4.8)93 b(Some)30 +b(Miscellaneous)j(Commands)24 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55 +b Ft(112)275 3010 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)20 +b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)50 b Ft(114)275 +3120 y(8.6)92 b(Programmable)30 b(Completion)16 b Fm(:)g(:)f(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46 +b Ft(115)275 3230 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)c +Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(117)150 +3472 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l(ely)39 +b Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h +(:)80 b Fr(121)275 3609 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8 +b(acilities)21 b Fm(:)d(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)51 b Ft(121)275 3719 +y(9.2)92 b(Bash)30 b(History)h(Builtins)19 b Fm(:)d(:)g(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49 +b Ft(121)275 3828 y(9.3)92 b(History)31 b(Expansion)21 +b Fm(:)15 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)52 b Ft(123)399 3938 +y(9.3.1)93 b(Ev)m(en)m(t)31 b(Designators)10 b Fm(:)18 +b(:)d(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)40 b Ft(123)399 4047 y(9.3.2)93 b(W)-8 b(ord)31 +b(Designators)17 b Fm(:)g(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47 b Ft(124)399 4157 +y(9.3.3)93 b(Mo)s(di\014ers)26 b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)57 b Ft(125)150 4399 y Fr(10)135 b(Installing)46 +b(Bash)24 b Fn(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f +(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)68 +b Fr(127)275 4536 y Ft(10.1)92 b(Basic)32 b(Installation)20 +b Fm(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(127)275 4646 +y(10.2)92 b(Compilers)30 b(and)g(Options)8 b Fm(:)15 +b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)38 b Ft(128)275 4755 y(10.3)92 b(Compiling)30 +b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)21 b Fm(:)c(:)e(:)h(:)f(:) +h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g +(:)52 b Ft(128)275 4865 y(10.4)92 b(Installation)32 b(Names)13 +b Fm(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Ft(128)275 4975 y(10.5)92 +b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s(e)12 b Fm(:)j(:)g(:)h(:)f +(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Ft(128)275 +5084 y(10.6)92 b(Sharing)30 b(Defaults)15 b Fm(:)i(:)e(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)46 b Ft(129)275 5194 y(10.7)92 b(Op)s(eration)30 +b(Con)m(trols)24 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Ft(129)275 +5303 y(10.8)92 b(Optional)31 b(F)-8 b(eatures)10 b Fm(:)17 +b(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Ft(129)p eop end %%Page: -4 6 TeXDict begin -4 5 bop 150 -116 a Ft(iv)2589 b(Bash)31 -b(Reference)g(Man)m(ual)150 83 y Fr(10)135 b(Installing)46 -b(Bash)30 b Fn(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f -(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)74 b Fr(127)449 -220 y Ft(10.1)92 b(Basic)32 b(Installation)d Fm(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -57 b Ft(127)449 330 y(10.2)92 b(Compilers)30 b(and)g(Options)22 -b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)51 -b Ft(127)449 439 y(10.3)92 b(Compiling)31 b(F)-8 b(or)31 -b(Multiple)g(Arc)m(hitectures)12 b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)41 b Ft(128)449 -549 y(10.4)92 b(Installation)32 b(Names)22 b Fm(.)16 -b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)51 -b Ft(128)449 658 y(10.5)92 b(Sp)s(ecifying)30 b(the)h(System)f(T)m(yp)s -(e)11 b Fm(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(128)449 -768 y(10.6)92 b(Sharing)30 b(Defaults)21 b Fm(.)16 b(.)f(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 -b Ft(129)449 878 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)12 -b Fm(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)41 b Ft(129)449 987 y(10.8)92 b(Optional)31 b(F)-8 -b(eatures)17 b Fm(.)g(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)47 b Ft(129)150 1230 y Fr(App)t(endix)d(A)99 -b(Rep)t(orting)46 b(Bugs)12 b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)g(.)h(.)f(.)h(.)56 b Fr(135)150 1499 y(App)t(endix)44 -b(B)105 b(Ma)7 b(jor)46 b(Di\013erences)g(F)-11 b(rom)45 -b(The)f(Bourne)419 1632 y(Shell)17 b Fn(.)j(.)f(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)61 b Fr(137)449 1769 -y Ft(B.1)92 b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 -b(rom)31 b(The)f(SVR4.2)h(Shell)21 b Fm(.)15 b(.)g(.)g(.)g(.)50 -b Ft(141)150 2012 y Fr(App)t(endix)44 b(C)104 b(GNU)46 -b(F)-11 b(ree)44 b(Do)t(cumen)l(tation)j(License)454 -2144 y Fn(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.) -f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h -(.)f(.)g(.)h(.)f(.)h(.)f(.)79 b Fr(143)150 2414 y(App)t(endix)44 -b(D)98 b(Indexes)36 b Fn(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)79 b Fr(151)449 -2551 y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)21 -b Fm(.)14 b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(151)449 2661 y(D.2)92 -b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8 b(ords)13 -b Fm(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b Ft(152)449 2770 -y(D.3)92 b(P)m(arameter)32 b(and)d(V)-8 b(ariable)32 -b(Index)21 b Fm(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Ft(152)449 -2880 y(D.4)92 b(F)-8 b(unction)31 b(Index)19 b Fm(.)c(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b Ft(154)449 2990 y(D.5)92 b(Concept)31 b(Index)9 b Fm(.)k(.)j(.)f(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g -(.)38 b Ft(156)p eop end +b(Reference)g(Man)m(ual)150 83 y Fr(App)t(endix)44 b(A)160 +b(Rep)t(orting)46 b(Bugs)35 b Fn(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fr(135)150 353 y(App)t(endix)44 +b(B)166 b(Ma)7 b(jor)45 b(Di\013erences)i(F)-11 b(rom)44 +b(The)419 486 y(Bourne)g(Shell)35 b Fn(:)19 b(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)78 b Fr(137)275 623 y Ft(B.1)92 +b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 b(rom)31 +b(The)e(SVR4.2)j(Shell)13 b Fm(:)i(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)43 +b Ft(141)150 865 y Fr(App)t(endix)h(C)165 b(GNU)45 b(F)-11 +b(ree)45 b(Do)t(cumen)l(tation)h(License)439 998 y Fn(:)19 +b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64 b Fr(143)150 +1268 y(App)t(endix)44 b(D)159 b(Indexes)15 b Fn(:)20 +b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Fr(151)275 1405 +y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)16 +b Fm(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) +h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(151)275 +1514 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8 +b(ords)12 b Fm(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h +(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)42 +b Ft(152)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8 +b(ariable)32 b(Index)20 b Fm(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)50 b Ft(152)275 1733 y(D.4)92 b(F)-8 b(unction)31 +b(Index)16 b Fm(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f +(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)47 +b Ft(154)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fm(:)15 +b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h +(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) +f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Ft(156)p +eop end %%Page: 1 7 TeXDict begin 1 6 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(1)150 299 y Fo(1)80 b(In)l(tro)t(duction) -150 675 y Fr(1.1)68 b(What)45 b(is)g(Bash?)275 923 y -Ft(Bash)29 b(is)h(the)f(shell,)i(or)e(command)g(language)i(in)m -(terpreter,)g(for)e(the)h Fl(gnu)f Ft(op)s(erating)h(system.)40 -b(The)150 1033 y(name)33 b(is)g(an)g(acron)m(ym)g(for)g(the)g(`)p +150 602 y Fr(1.1)68 b(What)45 b(is)g(Bash?)150 762 y +Ft(Bash)38 b(is)g(the)g(shell,)i(or)d(command)h(language)h(in)m +(terpreter,)h(for)e(the)g Fl(gnu)f Ft(op)s(erating)h(system.)63 +b(The)150 871 y(name)33 b(is)g(an)g(acron)m(ym)g(for)g(the)g(`)p Fs(Bourne-Again)27 b(SHell)p Ft(',)32 b(a)i(pun)d(on)i(Stephen)f -(Bourne,)h(the)g(author)150 1142 y(of)f(the)f(direct)h(ancestor)h(of)e +(Bourne,)h(the)g(author)150 981 y(of)f(the)f(direct)h(ancestor)h(of)e (the)h(curren)m(t)f(Unix)g(shell)h Fs(sh)p Ft(,)f(whic)m(h)g(app)s -(eared)g(in)g(the)h(Sev)m(en)m(th)g(Edition)150 1252 +(eared)g(in)g(the)h(Sev)m(en)m(th)g(Edition)150 1091 y(Bell)g(Labs)e(Researc)m(h)h(v)m(ersion)g(of)f(Unix.)275 -1391 y(Bash)f(is)g(largely)i(compatible)f(with)f Fs(sh)g +1220 y(Bash)f(is)g(largely)i(compatible)f(with)f Fs(sh)g Ft(and)g(incorp)s(orates)g(useful)g(features)g(from)g(the)g(Korn)g -(shell)150 1500 y Fs(ksh)37 b Ft(and)h(the)g(C)g(shell)g +(shell)150 1330 y Fs(ksh)37 b Ft(and)h(the)g(C)g(shell)g Fs(csh)p Ft(.)64 b(It)38 b(is)g(in)m(tended)g(to)h(b)s(e)f(a)g (conforman)m(t)h(implemen)m(tation)h(of)e(the)g Fl(ieee)150 -1610 y(posix)c Ft(Shell)g(and)g(T)-8 b(o)s(ols)35 b(p)s(ortion)f(of)g +1439 y(posix)c Ft(Shell)g(and)g(T)-8 b(o)s(ols)35 b(p)s(ortion)f(of)g (the)h Fl(ieee)f(posix)f Ft(sp)s(eci\014cation)j(\()p -Fl(ieee)e Ft(Standard)f(1003.1\).)56 b(It)150 1719 y(o\013ers)31 +Fl(ieee)e Ft(Standard)f(1003.1\).)56 b(It)150 1549 y(o\013ers)31 b(functional)f(impro)m(v)m(emen)m(ts)i(o)m(v)m(er)g Fs(sh)d Ft(for)i(b)s(oth)e(in)m(teractiv)m(e)k(and)d(programming)g(use.)275 -1858 y(While)h(the)g Fl(gnu)f Ft(op)s(erating)h(system)g(pro)m(vides)f +1679 y(While)h(the)g Fl(gnu)f Ft(op)s(erating)h(system)g(pro)m(vides)f (other)h(shells,)g(including)f(a)h(v)m(ersion)g(of)g -Fs(csh)p Ft(,)f(Bash)150 1968 y(is)j(the)h(default)f(shell.)49 +Fs(csh)p Ft(,)f(Bash)150 1788 y(is)j(the)h(default)f(shell.)49 b(Lik)m(e)34 b(other)g Fl(gnu)f Ft(soft)m(w)m(are,)i(Bash)f(is)f(quite) h(p)s(ortable.)49 b(It)33 b(curren)m(tly)g(runs)f(on)150 -2077 y(nearly)c(ev)m(ery)g(v)m(ersion)g(of)f(Unix)h(and)e(a)i(few)f +1898 y(nearly)c(ev)m(ery)g(v)m(ersion)g(of)f(Unix)h(and)e(a)i(few)f (other)h(op)s(erating)g(systems)f Fp(\000)g Ft(indep)s(enden)m -(tly-supp)s(orted)150 2187 y(p)s(orts)j(exist)h(for)f +(tly-supp)s(orted)150 2008 y(p)s(orts)j(exist)h(for)f Fl(ms-dos)p Ft(,)f Fl(os/2)p Ft(,)i(and)f(Windo)m(ws)g(platforms.)150 -2455 y Fr(1.2)68 b(What)45 b(is)g(a)h(shell?)275 2703 -y Ft(A)m(t)41 b(its)f(base,)j(a)e(shell)f(is)g(simply)g(a)h(macro)f -(pro)s(cessor)g(that)h(executes)g(commands.)70 b(The)40 -b(term)150 2813 y(macro)29 b(pro)s(cessor)f(means)g(functionalit)m(y)i -(where)e(text)i(and)e(sym)m(b)s(ols)g(are)g(expanded)g(to)h(create)h -(larger)150 2922 y(expressions.)275 3061 y(A)k(Unix)h(shell)g(is)f(b)s -(oth)g(a)h(command)g(in)m(terpreter)g(and)f(a)h(programming)f -(language.)55 b(As)35 b(a)g(com-)150 3170 y(mand)30 b(in)m(terpreter,)i +2231 y Fr(1.2)68 b(What)45 b(is)g(a)h(shell?)150 2390 +y Ft(A)m(t)32 b(its)f(base,)h(a)f(shell)g(is)h(simply)e(a)h(macro)h +(pro)s(cessor)f(that)g(executes)i(commands.)42 b(The)30 +b(term)h(macro)150 2500 y(pro)s(cessor)25 b(means)g(functionalit)m(y)i +(where)d(text)j(and)d(sym)m(b)s(ols)h(are)h(expanded)e(to)i(create)h +(larger)f(expres-)150 2609 y(sions.)275 2739 y(A)34 b(Unix)h(shell)g +(is)f(b)s(oth)g(a)h(command)g(in)m(terpreter)g(and)f(a)h(programming)f +(language.)55 b(As)35 b(a)g(com-)150 2848 y(mand)30 b(in)m(terpreter,)i (the)g(shell)f(pro)m(vides)g(the)h(user)e(in)m(terface)j(to)f(the)f (ric)m(h)h(set)g(of)f Fl(gnu)g Ft(utilities.)44 b(The)150 -3280 y(programming)30 b(language)h(features)f(allo)m(w)h(these)g +2958 y(programming)30 b(language)h(features)f(allo)m(w)h(these)g (utilities)g(to)g(b)s(e)e(com)m(bined.)41 b(Files)31 -b(con)m(taining)g(com-)150 3390 y(mands)e(can)i(b)s(e)e(created,)j(and) +b(con)m(taining)g(com-)150 3068 y(mands)e(can)i(b)s(e)e(created,)j(and) d(b)s(ecome)i(commands)f(themselv)m(es.)42 b(These)30 -b(new)f(commands)h(ha)m(v)m(e)i(the)150 3499 y(same)f(status)h(as)f +b(new)f(commands)h(ha)m(v)m(e)i(the)150 3177 y(same)f(status)h(as)f (system)g(commands)g(in)g(directories)h(suc)m(h)f(as)g(`)p Fs(/bin)p Ft(',)g(allo)m(wing)i(users)d(or)h(groups)f(to)150 -3609 y(establish)h(custom)f(en)m(vironmen)m(ts)h(to)g(automate)h(their) -f(common)f(tasks.)275 3748 y(Shells)j(ma)m(y)h(b)s(e)f(used)g(in)m +3287 y(establish)h(custom)f(en)m(vironmen)m(ts)h(to)g(automate)h(their) +f(common)f(tasks.)275 3417 y(Shells)j(ma)m(y)h(b)s(e)f(used)g(in)m (teractiv)m(ely)k(or)d(non-in)m(teractiv)m(ely)-8 b(.)54 b(In)33 b(in)m(teractiv)m(e)j(mo)s(de,)f(they)e(accept)150 -3857 y(input)21 b(t)m(yp)s(ed)h(from)g(the)h(k)m(eyb)s(oard.)37 +3526 y(input)21 b(t)m(yp)s(ed)h(from)g(the)h(k)m(eyb)s(oard.)37 b(When)22 b(executing)i(non-in)m(teractiv)m(ely)-8 b(,)27 -b(shells)c(execute)g(commands)150 3967 y(read)30 b(from)g(a)h(\014le.) -275 4105 y(A)41 b(shell)g(allo)m(ws)h(execution)h(of)e +b(shells)c(execute)g(commands)150 3636 y(read)30 b(from)g(a)h(\014le.) +275 3765 y(A)41 b(shell)g(allo)m(ws)h(execution)h(of)e Fl(gnu)g Ft(commands,)i(b)s(oth)e(sync)m(hronously)f(and)h(async)m -(hronously)-8 b(.)150 4215 y(The)29 b(shell)g(w)m(aits)i(for)e(sync)m +(hronously)-8 b(.)150 3875 y(The)29 b(shell)g(w)m(aits)i(for)e(sync)m (hronous)f(commands)h(to)h(complete)h(b)s(efore)e(accepting)i(more)e -(input;)g(asyn-)150 4325 y(c)m(hronous)22 b(commands)h(con)m(tin)m(ue)h +(input;)g(asyn-)150 3985 y(c)m(hronous)22 b(commands)h(con)m(tin)m(ue)h (to)f(execute)h(in)e(parallel)i(with)f(the)f(shell)h(while)g(it)g -(reads)g(and)f(executes)150 4434 y(additional)35 b(commands.)50 +(reads)g(and)f(executes)150 4094 y(additional)35 b(commands.)50 b(The)33 b Fq(redirection)h Ft(constructs)g(p)s(ermit)f(\014ne-grained) -g(con)m(trol)i(of)f(the)g(input)150 4544 y(and)40 b(output)f(of)i +g(con)m(trol)i(of)f(the)g(input)150 4204 y(and)40 b(output)f(of)i (those)f(commands.)70 b(Moreo)m(v)m(er,)45 b(the)c(shell)f(allo)m(ws)h (con)m(trol)h(o)m(v)m(er)g(the)e(con)m(ten)m(ts)i(of)150 -4653 y(commands')30 b(en)m(vironmen)m(ts.)275 4792 y(Shells)k(also)i +4313 y(commands')30 b(en)m(vironmen)m(ts.)275 4443 y(Shells)k(also)i (pro)m(vide)g(a)f(small)h(set)f(of)g(built-in)g(commands)g(\()p Fq(builtins)t Ft(\))g(implemen)m(ting)h(function-)150 -4902 y(alit)m(y)i(imp)s(ossible)e(or)g(incon)m(v)m(enien)m(t)j(to)e +4553 y(alit)m(y)i(imp)s(ossible)e(or)g(incon)m(v)m(enien)m(t)j(to)e (obtain)g(via)g(separate)g(utilities.)61 b(F)-8 b(or)37 -b(example,)i Fs(cd)p Ft(,)e Fs(break)p Ft(,)150 5011 +b(example,)i Fs(cd)p Ft(,)e Fs(break)p Ft(,)150 4662 y Fs(continue)p Ft(,)43 b(and)f Fs(exec)p Ft(\))g(cannot)h(b)s(e)e (implemen)m(ted)i(outside)g(of)f(the)h(shell)f(b)s(ecause)h(they)f -(directly)150 5121 y(manipulate)37 b(the)g(shell)f(itself.)61 +(directly)150 4772 y(manipulate)37 b(the)g(shell)f(itself.)61 b(The)36 b Fs(history)p Ft(,)g Fs(getopts)p Ft(,)g Fs(kill)p Ft(,)h(or)g Fs(pwd)f Ft(builtins,)h(among)h(others,)150 -5230 y(could)33 b(b)s(e)f(implemen)m(ted)h(in)g(separate)g(utilities,)i +4881 y(could)33 b(b)s(e)f(implemen)m(ted)h(in)g(separate)g(utilities,)i (but)d(they)h(are)h(more)f(con)m(v)m(enien)m(t)h(to)g(use)e(as)h -(builtin)150 5340 y(commands.)40 b(All)31 b(of)g(the)f(shell)h -(builtins)f(are)h(describ)s(ed)e(in)h(subsequen)m(t)g(sections.)p -eop end +(builtin)150 4991 y(commands.)40 b(All)31 b(of)g(the)f(shell)h +(builtins)f(are)h(describ)s(ed)e(in)h(subsequen)m(t)g(sections.)275 +5121 y(While)39 b(executing)h(commands)e(is)g(essen)m(tial,)43 +b(most)c(of)g(the)g(p)s(o)m(w)m(er)f(\(and)g(complexit)m(y\))j(of)e +(shells)150 5230 y(is)34 b(due)f(to)i(their)f(em)m(b)s(edded)f +(programming)h(languages.)52 b(Lik)m(e)35 b(an)m(y)f(high-lev)m(el)i +(language,)h(the)d(shell)150 5340 y(pro)m(vides)c(v)-5 +b(ariables,)32 b(\015o)m(w)e(con)m(trol)i(constructs,)f(quoting,)g(and) +f(functions.)p eop end %%Page: 2 8 TeXDict begin 2 7 bop 150 -116 a Ft(2)2617 b(Bash)31 -b(Reference)g(Man)m(ual)275 299 y(While)39 b(executing)h(commands)e(is) -g(essen)m(tial,)43 b(most)c(of)g(the)g(p)s(o)m(w)m(er)f(\(and)g -(complexit)m(y\))j(of)e(shells)150 408 y(is)34 b(due)f(to)i(their)f(em) -m(b)s(edded)f(programming)h(languages.)52 b(Lik)m(e)35 -b(an)m(y)f(high-lev)m(el)i(language,)h(the)d(shell)150 -518 y(pro)m(vides)c(v)-5 b(ariables,)32 b(\015o)m(w)e(con)m(trol)i -(constructs,)f(quoting,)g(and)f(functions.)275 653 y(Shells)21 -b(o\013er)i(features)f(geared)h(sp)s(eci\014cally)g(for)f(in)m -(teractiv)m(e)j(use)d(rather)g(than)g(to)h(augmen)m(t)g(the)f(pro-)150 -762 y(gramming)32 b(language.)48 b(These)32 b(in)m(teractiv)m(e)j -(features)d(include)g(job)g(con)m(trol,)j(command)c(line)i(editing,)150 -872 y(command)d(history)g(and)g(aliases.)42 b(Eac)m(h)31 +b(Reference)g(Man)m(ual)275 299 y(Shells)21 b(o\013er)i(features)f +(geared)h(sp)s(eci\014cally)g(for)f(in)m(teractiv)m(e)j(use)d(rather)g +(than)g(to)h(augmen)m(t)g(the)f(pro-)150 408 y(gramming)32 +b(language.)48 b(These)32 b(in)m(teractiv)m(e)j(features)d(include)g +(job)g(con)m(trol,)j(command)c(line)i(editing,)150 518 +y(command)d(history)g(and)g(aliases.)42 b(Eac)m(h)31 b(of)g(these)g(features)f(is)h(describ)s(ed)e(in)h(this)g(man)m(ual.)p eop end %%Page: 3 9 TeXDict begin 3 8 bop 150 -116 a Ft(Chapter)30 b(2:)41 -b(De\014nitions)2662 b(3)150 299 y Fo(2)80 b(De\014nitions)275 -552 y Ft(These)30 b(de\014nitions)g(are)g(used)g(throughout)g(the)g -(remainder)g(of)h(this)f(man)m(ual.)150 720 y Fs(POSIX)240 +b(De\014nitions)2662 b(3)150 299 y Fo(2)80 b(De\014nitions)150 +552 y Ft(These)30 b(de\014nitions)g(are)h(used)e(throughout)h(the)h +(remainder)f(of)g(this)h(man)m(ual.)150 720 y Fs(POSIX)240 b Ft(A)27 b(family)g(of)g(op)s(en)f(system)g(standards)g(based)g(on)h (Unix.)39 b(Bash)27 b(is)g(primarily)f(concerned)630 830 y(with)k(the)h(Shell)f(and)g(Utilities)i(p)s(ortion)e(of)h(the)f @@ -5170,4726 +5016,4811 @@ Fs(metacharacters)p Ft(.)p eop end %%Page: 5 11 TeXDict begin 5 10 bop 150 -116 a Ft(Chapter)30 b(3:)41 b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(5)150 299 -y Fo(3)80 b(Basic)54 b(Shell)e(F)-13 b(eatures)275 544 -y Ft(Bash)27 b(is)g(an)g(acron)m(ym)h(for)f(`)p Fs(Bourne-Again)g -(SHell)p Ft('.)39 b(The)26 b(Bourne)h(shell)h(is)f(the)g(traditional)i -(Unix)150 653 y(shell)34 b(originally)h(written)e(b)m(y)g(Stephen)g -(Bourne.)50 b(All)34 b(of)g(the)f(Bourne)h(shell)f(builtin)g(commands)h -(are)150 763 y(a)m(v)-5 b(ailable)32 b(in)c(Bash,)i(The)f(rules)g(for)g -(ev)-5 b(aluation)31 b(and)d(quoting)i(are)f(tak)m(en)i(from)d(the)i -Fl(posix)e Ft(sp)s(eci\014ca-)150 872 y(tion)j(for)f(the)h(`standard')f -(Unix)g(shell.)275 1010 y(This)h(c)m(hapter)i(brie\015y)e(summarizes)h -(the)h(shell's)f(`building)g(blo)s(c)m(ks':)45 b(commands,)32 -b(con)m(trol)i(struc-)150 1120 y(tures,)k(shell)e(functions,)h(shell)g -Fm(p)-5 b(ar)g(ameters)p Ft(,)41 b(shell)36 b(expansions,)i -Fm(r)-5 b(e)g(dir)g(e)g(ctions)p Ft(,)40 b(whic)m(h)c(are)h(a)f(w)m(a)m -(y)h(to)150 1230 y(direct)31 b(input)e(and)h(output)g(from)g(and)g(to)h -(named)f(\014les,)g(and)g(ho)m(w)g(the)h(shell)g(executes)g(commands.) -150 1496 y Fr(3.1)68 b(Shell)45 b(Syn)l(tax)275 1744 -y Ft(When)32 b(the)h(shell)g(reads)g(input,)g(it)g(pro)s(ceeds)f -(through)h(a)g(sequence)g(of)g(op)s(erations.)48 b(If)33 -b(the)g(input)150 1853 y(indicates)e(the)f(b)s(eginning)f(of)h(a)g -(commen)m(t,)h(the)f(shell)g(ignores)g(the)g(commen)m(t)h(sym)m(b)s(ol) -f(\(`)p Fs(#)p Ft('\),)h(and)e(the)150 1963 y(rest)i(of)f(that)h(line.) -275 2101 y(Otherwise,)h(roughly)f(sp)s(eaking,)i(the)f(shell)g(reads)g -(its)g(input)f(and)h(divides)f(the)i(input)e(in)m(to)h(w)m(ords)150 -2210 y(and)23 b(op)s(erators,)j(emplo)m(ying)e(the)g(quoting)h(rules)e +y Fo(3)80 b(Basic)54 b(Shell)e(F)-13 b(eatures)150 603 +y Ft(Bash)21 b(is)g(an)f(acron)m(ym)i(for)e(`)p Fs(Bourne-Again)27 +b(SHell)p Ft('.)37 b(The)20 b(Bourne)g(shell)h(is)g(the)g(traditional)h +(Unix)f(shell)150 712 y(originally)h(written)f(b)m(y)f(Stephen)g +(Bourne.)38 b(All)21 b(of)g(the)g(Bourne)f(shell)h(builtin)f(commands)g +(are)i(a)m(v)-5 b(ailable)150 822 y(in)26 b(Bash,)h(The)f(rules)f(for)h +(ev)-5 b(aluation)28 b(and)d(quoting)h(are)h(tak)m(en)g(from)f(the)g +Fl(posix)f Ft(sp)s(eci\014cation)i(for)f(the)150 931 +y(`standard')k(Unix)g(shell.)275 1089 y(This)h(c)m(hapter)i(brie\015y)e +(summarizes)h(the)h(shell's)f(`building)g(blo)s(c)m(ks':)45 +b(commands,)32 b(con)m(trol)i(struc-)150 1199 y(tures,)k(shell)e +(functions,)h(shell)g Fk(p)-5 b(ar)g(ameters)p Ft(,)41 +b(shell)36 b(expansions,)i Fk(r)-5 b(e)g(dir)g(e)g(ctions)p +Ft(,)40 b(whic)m(h)c(are)h(a)f(w)m(a)m(y)h(to)150 1308 +y(direct)31 b(input)e(and)h(output)g(from)g(and)g(to)h(named)f +(\014les,)g(and)g(ho)m(w)g(the)h(shell)g(executes)g(commands.)150 +1576 y Fr(3.1)68 b(Shell)45 b(Syn)l(tax)150 1735 y Ft(When)40 +b(the)h(shell)g(reads)f(input,)i(it)f(pro)s(ceeds)f(through)g(a)h +(sequence)g(of)g(op)s(erations.)71 b(If)40 b(the)h(input)150 +1845 y(indicates)31 b(the)f(b)s(eginning)f(of)h(a)g(commen)m(t,)h(the)f +(shell)g(ignores)g(the)g(commen)m(t)h(sym)m(b)s(ol)f(\(`)p +Fs(#)p Ft('\),)h(and)e(the)150 1954 y(rest)i(of)f(that)h(line.)275 +2112 y(Otherwise,)h(roughly)f(sp)s(eaking,)i(the)f(shell)g(reads)g(its) +g(input)f(and)h(divides)f(the)i(input)e(in)m(to)h(w)m(ords)150 +2222 y(and)23 b(op)s(erators,)j(emplo)m(ying)e(the)g(quoting)h(rules)e (to)h(select)i(whic)m(h)d(meanings)h(to)h(assign)f(v)-5 -b(arious)23 b(w)m(ords)150 2320 y(and)30 b(c)m(haracters.)275 -2458 y(The)38 b(shell)h(then)f(parses)g(these)h(tok)m(ens)h(in)m(to)f +b(arious)23 b(w)m(ords)150 2331 y(and)30 b(c)m(haracters.)275 +2489 y(The)38 b(shell)h(then)f(parses)g(these)h(tok)m(ens)h(in)m(to)f (commands)g(and)f(other)h(constructs,)i(remo)m(v)m(es)f(the)150 -2568 y(sp)s(ecial)31 b(meaning)f(of)g(certain)h(w)m(ords)f(or)g(c)m +2598 y(sp)s(ecial)31 b(meaning)f(of)g(certain)h(w)m(ords)f(or)g(c)m (haracters,)i(expands)d(others,)h(redirects)h(input)e(and)g(output)150 -2677 y(as)d(needed,)g(executes)g(the)g(sp)s(eci\014ed)e(command,)j(w)m +2708 y(as)d(needed,)g(executes)g(the)g(sp)s(eci\014ed)e(command,)j(w)m (aits)f(for)f(the)g(command's)g(exit)i(status,)f(and)f(mak)m(es)150 -2787 y(that)31 b(exit)g(status)g(a)m(v)-5 b(ailable)33 +2818 y(that)31 b(exit)g(status)g(a)m(v)-5 b(ailable)33 b(for)d(further)f(insp)s(ection)h(or)h(pro)s(cessing.)150 -3018 y Fk(3.1.1)63 b(Shell)41 b(Op)s(eration)275 3266 -y Ft(The)28 b(follo)m(wing)i(is)f(a)g(brief)f(description)h(of)g(the)g -(shell's)g(op)s(eration)h(when)d(it)j(reads)e(and)g(executes)j(a)150 -3375 y(command.)40 b(Basically)-8 b(,)34 b(the)c(shell)h(do)s(es)f(the) -h(follo)m(wing:)199 3513 y(1.)61 b(Reads)42 b(its)h(input)e(from)h(a)g -(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(34\),)k -(from)41 b(a)i(string)330 3623 y(supplied)26 b(as)i(an)f(argumen)m(t)g +3040 y Fj(3.1.1)63 b(Shell)41 b(Op)s(eration)150 3187 +y Ft(The)c(follo)m(wing)h(is)f(a)h(brief)e(description)i(of)f(the)g +(shell's)h(op)s(eration)f(when)f(it)i(reads)f(and)f(executes)j(a)150 +3297 y(command.)h(Basically)-8 b(,)34 b(the)c(shell)h(do)s(es)f(the)h +(follo)m(wing:)199 3454 y(1.)61 b(Reads)42 b(its)h(input)e(from)h(a)g +(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(33\),)k +(from)41 b(a)i(string)330 3564 y(supplied)26 b(as)i(an)f(argumen)m(t)g (to)h(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option)f(\(see)g -(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)330 3732 y(page)j(71\),)h(or) -e(from)g(the)h(user's)f(terminal.)199 3869 y(2.)61 b(Breaks)43 +(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)330 3673 y(page)j(71\),)h(or) +e(from)g(the)h(user's)f(terminal.)199 3820 y(2.)61 b(Breaks)43 b(the)g(input)f(in)m(to)h(w)m(ords)f(and)g(op)s(erators,)k(ob)s(eying)d -(the)g(quoting)g(rules)f(describ)s(ed)f(in)330 3978 y(Section)27 +(the)g(quoting)g(rules)f(describ)s(ed)f(in)330 3929 y(Section)27 b(3.1.2)i([Quoting],)f(page)f(6.)40 b(These)26 b(tok)m(ens)i(are)f (separated)g(b)m(y)f Fs(metacharacters)p Ft(.)36 b(Alias)330 -4088 y(expansion)30 b(is)h(p)s(erformed)d(b)m(y)j(this)f(step)g(\(see)i -(Section)f(6.6)g([Aliases],)i(page)e(79\).)199 4224 y(3.)61 +4039 y(expansion)30 b(is)h(p)s(erformed)d(b)m(y)j(this)f(step)g(\(see)i +(Section)f(6.6)g([Aliases],)i(page)e(79\).)199 4185 y(3.)61 b(P)m(arses)35 b(the)g(tok)m(ens)g(in)m(to)h(simple)e(and)g(comp)s (ound)f(commands)h(\(see)h(Section)h(3.2)f([Shell)g(Com-)330 -4334 y(mands],)30 b(page)h(8\).)199 4470 y(4.)61 b(P)m(erforms)40 +4294 y(mands],)30 b(page)h(7\).)199 4441 y(4.)61 b(P)m(erforms)40 b(the)h(v)-5 b(arious)40 b(shell)h(expansions)f(\(see)h(Section)g(3.5)g -([Shell)g(Expansions],)h(page)f(17\),)330 4580 y(breaking)35 +([Shell)g(Expansions],)h(page)f(17\),)330 4550 y(breaking)35 b(the)g(expanded)g(tok)m(ens)h(in)m(to)g(lists)f(of)g(\014lenames)h -(\(see)g(Section)f(3.5.8)i([Filename)g(Ex-)330 4689 y(pansion],)30 +(\(see)g(Section)f(3.5.8)i([Filename)g(Ex-)330 4660 y(pansion],)30 b(page)h(24\))h(and)e(commands)g(and)g(argumen)m(ts.)199 -4826 y(5.)61 b(P)m(erforms)36 b(an)m(y)i(necessary)f(redirections)g +4806 y(5.)61 b(P)m(erforms)36 b(an)m(y)i(necessary)f(redirections)g (\(see)h(Section)f(3.6)h([Redirections],)i(page)e(26\))g(and)e(re-)330 -4935 y(mo)m(v)m(es)c(the)e(redirection)h(op)s(erators)g(and)f(their)g -(op)s(erands)f(from)h(the)h(argumen)m(t)f(list.)199 5071 +4915 y(mo)m(v)m(es)c(the)e(redirection)h(op)s(erators)g(and)f(their)g +(op)s(erands)f(from)h(the)h(argumen)m(t)f(list.)199 5062 y(6.)61 b(Executes)31 b(the)g(command)f(\(see)h(Section)g(3.7)h -([Executing)f(Commands],)f(page)h(30\).)199 5208 y(7.)61 +([Executing)f(Commands],)f(page)h(29\).)199 5208 y(7.)61 b(Optionally)40 b(w)m(aits)g(for)f(the)g(command)g(to)h(complete)g(and) f(collects)i(its)f(exit)g(status)f(\(see)h(Sec-)330 5317 -y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(33\).)p +y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(32\).)p eop end %%Page: 6 12 TeXDict begin 6 11 bop 150 -116 a Ft(6)2617 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(3.1.2)63 b(Quoting)275 -537 y Ft(Quoting)24 b(is)g(used)f(to)h(remo)m(v)m(e)i(the)e(sp)s(ecial) -g(meaning)g(of)g(certain)h(c)m(haracters)h(or)d(w)m(ords)h(to)g(the)g -(shell.)150 647 y(Quoting)k(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s +b(Reference)g(Man)m(ual)150 299 y Fj(3.1.2)63 b(Quoting)150 +446 y Ft(Quoting)32 b(is)h(used)e(to)i(remo)m(v)m(e)h(the)e(sp)s(ecial) +h(meaning)f(of)h(certain)g(c)m(haracters)g(or)f(w)m(ords)g(to)h(the)f +(shell.)150 555 y(Quoting)c(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s (ecial)h(treatmen)m(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m -(en)m(t)g(reserv)m(ed)150 757 y(w)m(ords)i(from)g(b)s(eing)g +(en)m(t)g(reserv)m(ed)150 665 y(w)m(ords)i(from)g(b)s(eing)g (recognized)h(as)g(suc)m(h,)f(and)g(to)h(prev)m(en)m(t)g(parameter)g -(expansion.)275 886 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m +(expansion.)275 793 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m (haracters)i(\(see)f(Chapter)e(2)i([De\014nitions],)h(page)f(3\))g(has) -e(sp)s(ecial)i(meaning)150 995 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g +e(sp)s(ecial)i(meaning)150 902 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g (b)s(e)g(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68 -b(When)39 b(the)h(command)f(history)150 1105 y(expansion)i(facilities)j +b(When)39 b(the)h(command)f(history)150 1012 y(expansion)i(facilities)j (are)e(b)s(eing)f(used)g(\(see)h(Section)h(9.3)f([History)h(In)m -(teraction],)j(page)c(123\),)47 b(the)150 1214 y Fq(history)30 +(teraction],)j(page)c(123\),)47 b(the)150 1122 y Fq(history)30 b(expansion)h Ft(c)m(haracter,)h(usually)f(`)p Fs(!)p Ft(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g -(expansion.)41 b(See)150 1324 y(Section)22 b(9.1)g([Bash)f(History)h(F) +(expansion.)41 b(See)150 1231 y(Section)22 b(9.1)g([Bash)f(History)h(F) -8 b(acilities],)26 b(page)c(121,)j(for)20 b(more)h(details)h -(concerning)g(history)f(expansion.)275 1453 y(There)37 -b(are)h(three)f(quoting)h(mec)m(hanisms:)56 b(the)38 -b Fq(escap)s(e)g(c)m(haracter)p Ft(,)j(single)d(quotes,)i(and)d(double) -150 1563 y(quotes.)150 1770 y Fk(3.1.2.1)63 b(Escap)s(e)41 -b(Character)275 2009 y Ft(A)27 b(non-quoted)g(bac)m(kslash)h(`)p -Fs(\\)p Ft(')f(is)g(the)h(Bash)f(escap)s(e)g(c)m(haracter.)42 -b(It)27 b(preserv)m(es)g(the)g(literal)i(v)-5 b(alue)28 -b(of)150 2119 y(the)f(next)g(c)m(haracter)h(that)f(follo)m(ws,)i(with)d -(the)h(exception)g(of)g Fs(newline)p Ft(.)38 b(If)26 -b(a)h Fs(\\newline)d Ft(pair)i(app)s(ears,)150 2228 y(and)k(the)h(bac)m +(concerning)g(history)f(expansion.)275 1359 y(There)36 +b(are)i(three)f(quoting)g(mec)m(hanisms:)55 b(the)37 +b Fq(escap)s(e)h(c)m(haracter)7 b Ft(,)40 b(single)d(quotes,)j(and)c +(double)150 1469 y(quotes.)150 1655 y Fj(3.1.2.1)63 b(Escap)s(e)41 +b(Character)150 1802 y Ft(A)36 b(non-quoted)f(bac)m(kslash)h(`)p +Fs(\\)p Ft(')g(is)f(the)h(Bash)g(escap)s(e)f(c)m(haracter.)58 +b(It)36 b(preserv)m(es)f(the)h(literal)h(v)-5 b(alue)36 +b(of)150 1911 y(the)27 b(next)g(c)m(haracter)h(that)f(follo)m(ws,)i +(with)d(the)h(exception)g(of)g Fs(newline)p Ft(.)38 b(If)26 +b(a)h Fs(\\newline)d Ft(pair)i(app)s(ears,)150 2021 y(and)k(the)h(bac)m (kslash)g(itself)g(is)g(not)g(quoted,)g(the)f Fs(\\newline)f Ft(is)h(treated)i(as)f(a)g(line)g(con)m(tin)m(uation)h(\(that)150 -2338 y(is,)f(it)g(is)f(remo)m(v)m(ed)h(from)f(the)h(input)e(stream)i -(and)f(e\013ectiv)m(ely)j(ignored\).)150 2545 y Fk(3.1.2.2)63 -b(Single)42 b(Quotes)275 2784 y Ft(Enclosing)36 b(c)m(haracters)i(in)d -(single)i(quotes)g(\(`)p Fs(')p Ft('\))f(preserv)m(es)h(the)f(literal)h -(v)-5 b(alue)37 b(of)f(eac)m(h)h(c)m(haracter)150 2894 -y(within)24 b(the)h(quotes.)39 b(A)25 b(single)h(quote)f(ma)m(y)g(not)g -(o)s(ccur)g(b)s(et)m(w)m(een)g(single)h(quotes,)g(ev)m(en)g(when)d -(preceded)150 3003 y(b)m(y)30 b(a)h(bac)m(kslash.)150 -3211 y Fk(3.1.2.3)63 b(Double)42 b(Quotes)275 3450 y -Ft(Enclosing)36 b(c)m(haracters)i(in)e(double)g(quotes)h(\(`)p -Fs(")p Ft('\))g(preserv)m(es)f(the)g(literal)i(v)-5 b(alue)37 -b(of)f(all)h(c)m(haracters)150 3559 y(within)25 b(the)g(quotes,)i(with) -e(the)g(exception)h(of)g(`)p Fs($)p Ft(',)g(`)p Fs(`)p -Ft(',)h(`)p Fs(\\)p Ft(',)f(and,)g(when)e(history)i(expansion)f(is)g -(enabled,)150 3669 y(`)p Fs(!)p Ft('.)48 b(The)32 b(c)m(haracters)i(`)p -Fs($)p Ft(')f(and)f(`)p Fs(`)p Ft(')h(retain)g(their)g(sp)s(ecial)g -(meaning)g(within)f(double)h(quotes)g(\(see)g(Sec-)150 -3778 y(tion)e(3.5)h([Shell)e(Expansions],)g(page)i(17\).)42 -b(The)30 b(bac)m(kslash)h(retains)g(its)g(sp)s(ecial)g(meaning)f(only)h -(when)150 3888 y(follo)m(w)m(ed)40 b(b)m(y)e(one)h(of)g(the)f(follo)m -(wing)i(c)m(haracters:)58 b(`)p Fs($)p Ft(',)41 b(`)p -Fs(`)p Ft(',)g(`)p Fs(")p Ft(',)g(`)p Fs(\\)p Ft(',)g(or)d -Fs(newline)p Ft(.)63 b(Within)38 b(double)150 3998 y(quotes,)c(bac)m -(kslashes)g(that)f(are)g(follo)m(w)m(ed)h(b)m(y)f(one)g(of)f(these)h(c) -m(haracters)i(are)e(remo)m(v)m(ed.)48 b(Bac)m(kslashes)150 -4107 y(preceding)25 b(c)m(haracters)h(without)f(a)h(sp)s(ecial)f -(meaning)h(are)f(left)h(unmo)s(di\014ed.)37 b(A)25 b(double)f(quote)i -(ma)m(y)g(b)s(e)150 4217 y(quoted)g(within)f(double)g(quotes)g(b)m(y)h -(preceding)f(it)h(with)f(a)h(bac)m(kslash.)40 b(If)25 -b(enabled,)i(history)e(expansion)150 4326 y(will)38 b(b)s(e)e(p)s -(erformed)g(unless)h(an)g(`)p Fs(!)p Ft(')h(app)s(earing)f(in)g(double) -g(quotes)h(is)f(escap)s(ed)g(using)g(a)h(bac)m(kslash.)150 -4436 y(The)30 b(bac)m(kslash)h(preceding)f(the)h(`)p -Fs(!)p Ft(')f(is)h(not)f(remo)m(v)m(ed.)275 4565 y(The)41 -b(sp)s(ecial)h(parameters)f(`)p Fs(*)p Ft(')h(and)f(`)p -Fs(@)p Ft(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g(when)f(in)g(double)g -(quotes)h(\(see)150 4674 y(Section)31 b(3.5.3)h([Shell)f(P)m(arameter)h -(Expansion],)e(page)h(20\).)150 4882 y Fk(3.1.2.4)63 -b(ANSI-C)40 b(Quoting)275 5121 y Ft(W)-8 b(ords)33 b(of)h(the)g(form)f -Fs($')p Fj(string)11 b Fs(')31 b Ft(are)j(treated)g(sp)s(ecially)-8 -b(.)52 b(The)33 b(w)m(ord)g(expands)g(to)i Fq(string)p -Ft(,)f(with)150 5230 y(bac)m(kslash-escap)s(ed)44 b(c)m(haracters)h -(replaced)f(as)g(sp)s(eci\014ed)f(b)m(y)g(the)g(ANSI)g(C)g(standard.)79 -b(Bac)m(kslash)150 5340 y(escap)s(e)31 b(sequences,)g(if)f(presen)m(t,) -h(are)g(deco)s(ded)f(as)g(follo)m(ws:)p eop end +2131 y(is,)f(it)g(is)f(remo)m(v)m(ed)h(from)f(the)h(input)e(stream)i +(and)f(e\013ectiv)m(ely)j(ignored\).)150 2317 y Fj(3.1.2.2)63 +b(Single)42 b(Quotes)150 2464 y Ft(Enclosing)24 b(c)m(haracters)h(in)e +(single)h(quotes)g(\(`)p Fs(')p Ft('\))g(preserv)m(es)g(the)f(literal)i +(v)-5 b(alue)24 b(of)g(eac)m(h)g(c)m(haracter)h(within)150 +2573 y(the)31 b(quotes.)42 b(A)31 b(single)h(quote)f(ma)m(y)g(not)g(o)s +(ccur)g(b)s(et)m(w)m(een)g(single)h(quotes,)f(ev)m(en)h(when)d +(preceded)i(b)m(y)g(a)150 2683 y(bac)m(kslash.)150 2869 +y Fj(3.1.2.3)63 b(Double)42 b(Quotes)150 3016 y Ft(Enclosing)24 +b(c)m(haracters)h(in)f(double)f(quotes)h(\(`)p Fs(")p +Ft('\))g(preserv)m(es)g(the)g(literal)h(v)-5 b(alue)24 +b(of)g(all)g(c)m(haracters)h(within)150 3125 y(the)34 +b(quotes,)h(with)f(the)g(exception)h(of)f(`)p Fs($)p +Ft(',)h(`)p Fs(`)p Ft(',)g(`)p Fs(\\)p Ft(',)g(and,)f(when)f(history)g +(expansion)h(is)g(enabled,)h(`)p Fs(!)p Ft('.)150 3235 +y(The)25 b(c)m(haracters)h(`)p Fs($)p Ft(')g(and)f(`)p +Fs(`)p Ft(')g(retain)h(their)f(sp)s(ecial)h(meaning)f(within)g(double)g +(quotes)h(\(see)g(Section)g(3.5)150 3345 y([Shell)j(Expansions],)g +(page)h(17\).)41 b(The)28 b(bac)m(kslash)i(retains)f(its)h(sp)s(ecial)f +(meaning)g(only)g(when)f(follo)m(w)m(ed)150 3454 y(b)m(y)41 +b(one)f(of)h(the)g(follo)m(wing)h(c)m(haracters:)63 b(`)p +Fs($)p Ft(',)43 b(`)p Fs(`)p Ft(',)h(`)p Fs(")p Ft(',)g(`)p +Fs(\\)p Ft(',)f(or)e Fs(newline)p Ft(.)69 b(Within)41 +b(double)f(quotes,)150 3564 y(bac)m(kslashes)25 b(that)h(are)f(follo)m +(w)m(ed)h(b)m(y)e(one)h(of)g(these)g(c)m(haracters)h(are)f(remo)m(v)m +(ed.)40 b(Bac)m(kslashes)26 b(preceding)150 3673 y(c)m(haracters)35 +b(without)e(a)h(sp)s(ecial)f(meaning)h(are)f(left)h(unmo)s(di\014ed.)47 +b(A)34 b(double)f(quote)g(ma)m(y)h(b)s(e)f(quoted)150 +3783 y(within)h(double)h(quotes)g(b)m(y)g(preceding)g(it)g(with)g(a)g +(bac)m(kslash.)55 b(If)35 b(enabled,)h(history)f(expansion)g(will)150 +3892 y(b)s(e)f(p)s(erformed)g(unless)g(an)h(`)p Fs(!)p +Ft(')g(app)s(earing)f(in)h(double)f(quotes)i(is)f(escap)s(ed)g(using)f +(a)h(bac)m(kslash.)55 b(The)150 4002 y(bac)m(kslash)31 +b(preceding)f(the)h(`)p Fs(!)p Ft(')f(is)h(not)g(remo)m(v)m(ed.)275 +4130 y(The)41 b(sp)s(ecial)h(parameters)f(`)p Fs(*)p +Ft(')h(and)f(`)p Fs(@)p Ft(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g +(when)f(in)g(double)g(quotes)h(\(see)150 4240 y(Section)31 +b(3.5.3)h([Shell)f(P)m(arameter)h(Expansion],)e(page)h(19\).)150 +4426 y Fj(3.1.2.4)63 b(ANSI-C)40 b(Quoting)150 4573 y +Ft(W)-8 b(ords)41 b(of)h(the)f(form)g Fs($')p Fi(string)11 +b Fs(')38 b Ft(are)k(treated)g(sp)s(ecially)-8 b(.)75 +b(The)41 b(w)m(ord)g(expands)f(to)i Fq(string)8 b Ft(,)44 +b(with)150 4682 y(bac)m(kslash-escap)s(ed)g(c)m(haracters)h(replaced)f +(as)g(sp)s(eci\014ed)f(b)m(y)g(the)g(ANSI)g(C)g(standard.)79 +b(Bac)m(kslash)150 4792 y(escap)s(e)31 b(sequences,)g(if)f(presen)m(t,) +h(are)g(deco)s(ded)f(as)g(follo)m(ws:)150 4938 y Fs(\\a)384 +b Ft(alert)31 b(\(b)s(ell\))150 5084 y Fs(\\b)384 b Ft(bac)m(kspace)150 +5230 y Fs(\\e)150 5340 y(\\E)g Ft(an)30 b(escap)s(e)h(c)m(haracter)h +(\(not)f(ANSI)f(C\))p eop end %%Page: 7 13 TeXDict begin 7 12 bop 150 -116 a Ft(Chapter)30 b(3:)41 b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(7)150 299 -y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))150 481 y Fs(\\b)384 -b Ft(bac)m(kspace)150 664 y Fs(\\e)g Ft(an)30 b(escap)s(e)h(c)m -(haracter)h(\(not)f(ANSI)f(C\))150 846 y Fs(\\f)384 b -Ft(form)30 b(feed)150 1029 y Fs(\\n)384 b Ft(newline)150 -1211 y Fs(\\r)g Ft(carriage)32 b(return)150 1394 y Fs(\\t)384 -b Ft(horizon)m(tal)32 b(tab)150 1576 y Fs(\\v)384 b Ft(v)m(ertical)32 -b(tab)150 1759 y Fs(\\\\)384 b Ft(bac)m(kslash)150 1941 -y Fs(\\')g Ft(single)31 b(quote)150 2124 y Fs(\\)p Fj(nnn)288 -b Ft(the)31 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5 +y Fs(\\f)384 b Ft(form)30 b(feed)150 475 y Fs(\\n)384 +b Ft(newline)150 652 y Fs(\\r)g Ft(carriage)32 b(return)150 +828 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)150 1005 +y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)150 1181 y Fs(\\\\)384 +b Ft(bac)m(kslash)150 1358 y Fs(\\')g Ft(single)31 b(quote)150 +1534 y Fs(\\")384 b Ft(double)30 b(quote)150 1711 y Fs(\\)p +Fi(nnn)288 b Ft(the)31 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5 b(alue)31 b(is)f(the)h(o)s(ctal)g(v)-5 b(alue)31 b Fq(nnn)e -Ft(\(one)i(to)g(three)g(digits\))150 2306 y Fs(\\x)p -Fj(HH)288 b Ft(the)36 b(eigh)m(t-bit)i(c)m(haracter)f(whose)f(v)-5 +Ft(\(one)i(to)g(three)g(digits\))150 1887 y Fs(\\x)p +Fi(HH)288 b Ft(the)36 b(eigh)m(t-bit)i(c)m(haracter)f(whose)f(v)-5 b(alue)36 b(is)g(the)g(hexadecimal)h(v)-5 b(alue)36 b -Fq(HH)46 b Ft(\(one)37 b(or)f(t)m(w)m(o)630 2416 y(hex)30 -b(digits\))150 2598 y Fs(\\c)p Fj(x)336 b Ft(a)31 b(con)m(trol-)p -Fq(x)38 b Ft(c)m(haracter)150 2792 y(The)30 b(expanded)f(result)i(is)f +Fq(HH)46 b Ft(\(one)37 b(or)f(t)m(w)m(o)630 1997 y(hex)30 +b(digits\))150 2173 y Fs(\\c)p Fi(x)336 b Ft(a)31 b(con)m(trol-)p +Fq(x)38 b Ft(c)m(haracter)150 2358 y(The)30 b(expanded)f(result)i(is)f (single-quoted,)i(as)f(if)f(the)g(dollar)h(sign)g(had)e(not)i(b)s(een)f -(presen)m(t.)150 3063 y Fk(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41 -b(T)-10 b(ranslation)275 3330 y Ft(A)30 b(double-quoted)h(string)f -(preceded)g(b)m(y)h(a)g(dollar)g(sign)f(\(`)p Fs($)p -Ft('\))i(will)e(cause)i(the)e(string)h(to)g(b)s(e)f(trans-)150 -3439 y(lated)j(according)g(to)g(the)f(curren)m(t)g(lo)s(cale.)47 -b(If)32 b(the)g(curren)m(t)g(lo)s(cale)i(is)e Fs(C)g -Ft(or)g Fs(POSIX)p Ft(,)f(the)h(dollar)h(sign)f(is)150 -3549 y(ignored.)41 b(If)30 b(the)g(string)h(is)f(translated)h(and)f -(replaced,)h(the)g(replacemen)m(t)g(is)g(double-quoted.)275 -3707 y(Some)20 b(systems)h(use)f(the)h(message)h(catalog)h(selected)f -(b)m(y)f(the)g Fs(LC_MESSAGES)c Ft(shell)k(v)-5 b(ariable.)39 -b(Others)150 3816 y(create)g(the)e(name)g(of)g(the)g(message)h(catalog) -i(from)d(the)g(v)-5 b(alue)37 b(of)g(the)h Fs(TEXTDOMAIN)c -Ft(shell)j(v)-5 b(ariable,)150 3926 y(p)s(ossibly)31 -b(adding)g(a)g(su\016x)g(of)h(`)p Fs(.mo)p Ft('.)43 b(If)31 -b(y)m(ou)h(use)f(the)h Fs(TEXTDOMAIN)c Ft(v)-5 b(ariable,)33 -b(y)m(ou)f(ma)m(y)g(need)f(to)h(set)150 4035 y(the)22 -b Fs(TEXTDOMAINDIR)d Ft(v)-5 b(ariable)23 b(to)g(the)f(lo)s(cation)i -(of)e(the)h(message)g(catalog)i(\014les.)38 b(Still)23 -b(others)f(use)g(b)s(oth)150 4145 y(v)-5 b(ariables)31 +(presen)m(t.)150 2575 y Fj(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41 +b(T)-10 b(ranslation)150 2722 y Ft(A)28 b(double-quoted)g(string)f +(preceded)h(b)m(y)f(a)h(dollar)h(sign)e(\(`)p Fs($)p +Ft('\))i(will)f(cause)g(the)g(string)g(to)g(b)s(e)f(translated)150 +2831 y(according)f(to)f(the)g(curren)m(t)g(lo)s(cale.)41 +b(If)24 b(the)h(curren)m(t)g(lo)s(cale)h(is)f Fs(C)g +Ft(or)g Fs(POSIX)p Ft(,)f(the)h(dollar)h(sign)f(is)g(ignored.)150 +2941 y(If)30 b(the)g(string)h(is)f(translated)h(and)f(replaced,)h(the)g +(replacemen)m(t)h(is)e(double-quoted.)275 3093 y(Some)20 +b(systems)h(use)f(the)h(message)h(catalog)h(selected)f(b)m(y)f(the)g +Fs(LC_MESSAGES)c Ft(shell)k(v)-5 b(ariable.)39 b(Others)150 +3202 y(create)g(the)e(name)g(of)g(the)g(message)h(catalog)i(from)d(the) +g(v)-5 b(alue)37 b(of)g(the)h Fs(TEXTDOMAIN)c Ft(shell)j(v)-5 +b(ariable,)150 3312 y(p)s(ossibly)31 b(adding)g(a)g(su\016x)g(of)h(`)p +Fs(.mo)p Ft('.)43 b(If)31 b(y)m(ou)h(use)f(the)h Fs(TEXTDOMAIN)c +Ft(v)-5 b(ariable,)33 b(y)m(ou)f(ma)m(y)g(need)f(to)h(set)150 +3421 y(the)22 b Fs(TEXTDOMAINDIR)d Ft(v)-5 b(ariable)23 +b(to)g(the)f(lo)s(cation)i(of)e(the)h(message)g(catalog)i(\014les.)38 +b(Still)23 b(others)f(use)g(b)s(oth)150 3531 y(v)-5 b(ariables)31 b(in)f(this)g(fashion:)41 b Fs(TEXTDOMAINDIR)p Ft(/)p -Fs(LC_MESSAGES)p Ft(/LC)p 2528 4145 28 4 v 34 w(MESSA)m(GES/)p -Fs(TEXTDOMAIN)p Ft(.mo.)150 4415 y Fk(3.1.3)63 b(Commen)m(ts)275 -4682 y Ft(In)34 b(a)j(non-in)m(teractiv)m(e)h(shell,)f(or)f(an)f(in)m -(teractiv)m(e)k(shell)d(in)f(whic)m(h)h(the)f Fs(interactive_comments) -150 4792 y Ft(option)41 b(to)h(the)f Fs(shopt)e Ft(builtin)i(is)g -(enabled)g(\(see)g(Section)h(4.3.2)h([The)d(Shopt)g(Builtin],)45 -b(page)c(54\),)150 4902 y(a)d(w)m(ord)f(b)s(eginning)g(with)h(`)p -Fs(#)p Ft(')g(causes)g(that)g(w)m(ord)g(and)f(all)h(remaining)g(c)m -(haracters)h(on)f(that)g(line)g(to)150 5011 y(b)s(e)33 -b(ignored.)52 b(An)33 b(in)m(teractiv)m(e)k(shell)d(without)g(the)h -Fs(interactive_comments)28 b Ft(option)34 b(enabled)g(do)s(es)150 -5121 y(not)39 b(allo)m(w)i(commen)m(ts.)68 b(The)39 b -Fs(interactive_comments)33 b Ft(option)40 b(is)f(on)g(b)m(y)g(default)g -(in)g(in)m(teractiv)m(e)150 5230 y(shells.)k(See)31 b(Section)h(6.3)g -([In)m(teractiv)m(e)h(Shells],)f(page)f(75,)h(for)f(a)h(description)f -(of)g(what)g(mak)m(es)g(a)h(shell)150 5340 y(in)m(teractiv)m(e.)p -eop end -%%Page: 8 14 -TeXDict begin 8 13 bop 150 -116 a Ft(8)2617 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fr(3.2)68 b(Shell)45 -b(Commands)275 544 y Ft(A)32 b(simple)g(shell)g(command)g(suc)m(h)g(as) -h Fs(echo)c(a)h(b)g(c)i Ft(consists)g(of)h(the)f(command)g(itself)h -(follo)m(w)m(ed)h(b)m(y)150 654 y(argumen)m(ts,)d(separated)g(b)m(y)f -(spaces.)275 790 y(More)h(complex)h(shell)f(commands)g(are)g(comp)s -(osed)g(of)g(simple)g(commands)g(arranged)g(together)h(in)150 -899 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31 +Fs(LC_MESSAGES)p Ft(/LC)p 2528 3531 28 4 v 34 w(MESSA)m(GES/)p +Fs(TEXTDOMAIN)p Ft(.mo.)150 3747 y Fj(3.1.3)63 b(Commen)m(ts)150 +3894 y Ft(In)21 b(a)i(non-in)m(teractiv)m(e)h(shell,)g(or)e(an)g(in)m +(teractiv)m(e)j(shell)d(in)g(whic)m(h)g(the)g Fs(interactive_comments) +16 b Ft(option)150 4004 y(to)40 b(the)f Fs(shopt)e Ft(builtin)h(is)h +(enabled)g(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)k(page)e +(55\),)i(a)d(w)m(ord)150 4113 y(b)s(eginning)26 b(with)g(`)p +Fs(#)p Ft(')g(causes)h(that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m +(haracters)g(on)f(that)h(line)g(to)g(b)s(e)f(ignored.)150 +4223 y(An)43 b(in)m(teractiv)m(e)j(shell)e(without)f(the)g +Fs(interactive_comments)38 b Ft(option)44 b(enabled)f(do)s(es)g(not)g +(allo)m(w)150 4333 y(commen)m(ts.)56 b(The)34 b Fs +(interactive_comments)c Ft(option)35 b(is)g(on)g(b)m(y)g(default)g(in)g +(in)m(teractiv)m(e)j(shells.)55 b(See)150 4442 y(Section)30 +b(6.3)f([In)m(teractiv)m(e)j(Shells],)d(page)h(75,)g(for)e(a)i +(description)e(of)h(what)g(mak)m(es)h(a)f(shell)g(in)m(teractiv)m(e.) +150 4700 y Fr(3.2)68 b(Shell)45 b(Commands)150 4860 y +Ft(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g Fs(echo)29 +b(a)h(b)g(c)41 b Ft(consists)i(of)f(the)f(command)h(itself)h(follo)m(w) +m(ed)g(b)m(y)150 4969 y(argumen)m(ts,)31 b(separated)g(b)m(y)f(spaces.) +275 5121 y(More)h(complex)h(shell)f(commands)g(are)g(comp)s(osed)g(of)g +(simple)g(commands)g(arranged)g(together)h(in)150 5230 +y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31 b(a)g(pip)s(eline)f(in)g(whic)m(h)g(the)h(output)f(of)h(one)f(command)h -(b)s(ecomes)f(the)h(input)f(of)150 1009 y(a)h(second,)f(in)h(a)f(lo)s +(b)s(ecomes)f(the)h(input)f(of)150 5340 y(a)h(second,)f(in)h(a)f(lo)s (op)h(or)f(conditional)i(construct,)f(or)f(in)g(some)h(other)g -(grouping.)150 1235 y Fk(3.2.1)63 b(Simple)41 b(Commands)275 -1481 y Ft(A)26 b(simple)h(command)g(is)f(the)h(kind)f(of)h(command)g -(encoun)m(tered)g(most)g(often.)40 b(It's)27 b(just)f(a)i(sequence)150 -1590 y(of)f(w)m(ords)f(separated)h(b)m(y)g Fs(blank)p -Ft(s,)f(terminated)h(b)m(y)g(one)g(of)g(the)g(shell's)g(con)m(trol)h -(op)s(erators)f(\(see)h(Chap-)150 1700 y(ter)34 b(2)g([De\014nitions],) -i(page)f(3\).)51 b(The)34 b(\014rst)f(w)m(ord)g(generally)i(sp)s -(eci\014es)e(a)i(command)e(to)i(b)s(e)e(executed,)150 -1809 y(with)d(the)h(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)h -(command's)f(argumen)m(ts.)275 1945 y(The)h(return)h(status)g(\(see)i -(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(33\))g(of)g(a)g(simple)f -(command)g(is)h(its)150 2055 y(exit)38 b(status)f(as)g(pro)m(vided)f(b) +(grouping.)p eop end +%%Page: 8 14 +TeXDict begin 8 13 bop 150 -116 a Ft(8)2617 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y Fj(3.2.1)63 b(Simple)41 +b(Commands)150 446 y Ft(A)29 b(simple)f(command)g(is)h(the)g(kind)e(of) +i(command)f(encoun)m(tered)h(most)g(often.)40 b(It's)29 +b(just)f(a)h(sequence)g(of)150 555 y(w)m(ords)22 b(separated)i(b)m(y)e +Fs(blank)p Ft(s,)i(terminated)f(b)m(y)g(one)g(of)g(the)g(shell's)g(con) +m(trol)h(op)s(erators)f(\(see)h(Chapter)f(2)150 665 y([De\014nitions],) +37 b(page)e(3\).)54 b(The)35 b(\014rst)e(w)m(ord)i(generally)g(sp)s +(eci\014es)g(a)g(command)f(to)h(b)s(e)f(executed,)j(with)150 +775 y(the)31 b(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)h +(command's)f(argumen)m(ts.)275 912 y(The)h(return)h(status)g(\(see)i +(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(32\))g(of)g(a)g(simple)f +(command)g(is)h(its)150 1022 y(exit)38 b(status)f(as)g(pro)m(vided)f(b) m(y)h(the)g Fl(posix)f Ft(1003.1)j Fs(waitpid)c Ft(function,)j(or)f -(128)p Fs(+)p Fq(n)g Ft(if)g(the)g(command)150 2164 y(w)m(as)31 -b(terminated)g(b)m(y)f(signal)h Fq(n)p Ft(.)150 2391 -y Fk(3.2.2)63 b(Pip)s(elines)275 2636 y Ft(A)26 b Fs(pipeline)e -Ft(is)i(a)h(sequence)g(of)f(simple)h(commands)e(separated)i(b)m(y)f -(one)h(of)g(the)f(con)m(trol)i(op)s(erators)150 2746 -y(`)p Fs(|)p Ft(')j(or)f(`)p Fs(|&)p Ft('.)275 2882 y(The)f(format)i -(for)f(a)h(pip)s(eline)f(is)390 3017 y Fs([time)46 b([-p]])h([!])g -Fj(command1)56 b Fs([)47 b([|)g(or)h(|&])e Fj(command2)56 -b Fs(...])150 3153 y Ft(The)25 b(output)f(of)i(eac)m(h)g(command)f(in)f -(the)i(pip)s(eline)e(is)i(connected)g(via)f(a)h(pip)s(e)e(to)i(the)f -(input)f(of)h(the)h(next)150 3263 y(command.)40 b(That)29 -b(is,)h(eac)m(h)h(command)e(reads)g(the)h(previous)f(command's)g -(output.)40 b(This)29 b(connection)150 3372 y(is)h(p)s(erformed)f(b)s -(efore)h(an)m(y)h(redirections)g(sp)s(eci\014ed)f(b)m(y)g(the)g -(command.)275 3508 y(If)j(`)p Fs(|&)p Ft(')h(is)h(used,)f(the)h -(standard)e(error)h(of)g Fq(command1)42 b Ft(is)34 b(connected)h(to)g -Fq(command2)7 b Ft('s)35 b(standard)150 3618 y(input)25 -b(through)g(the)h(pip)s(e;)h(it)f(is)g(shorthand)f(for)g -Fs(2>&1)k(|)p Ft(.)39 b(This)25 b(implicit)i(redirection)g(of)f(the)g -(standard)150 3727 y(error)k(is)g(p)s(erformed)f(after)i(an)m(y)g -(redirections)g(sp)s(eci\014ed)e(b)m(y)i(the)f(command.)275 -3863 y(The)36 b(reserv)m(ed)g(w)m(ord)g Fs(time)g Ft(causes)h(timing)g -(statistics)h(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h(pip)s(eline)f(once) -h(it)150 3973 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e -(consist)h(of)f(elapsed)h(\(w)m(all-clo)s(c)m(k\))i(time)e(and)f(user)f -(and)h(system)150 4082 y(time)i(consumed)f(b)m(y)g(the)h(command's)f +(128)p Fs(+)p Fq(n)g Ft(if)g(the)g(command)150 1131 y(w)m(as)31 +b(terminated)g(b)m(y)f(signal)h Fq(n)p Ft(.)150 1333 +y Fj(3.2.2)63 b(Pip)s(elines)150 1480 y Ft(A)35 b Fs(pipeline)e +Ft(is)j(a)f(sequence)h(of)f(simple)g(commands)g(separated)h(b)m(y)f +(one)g(of)h(the)f(con)m(trol)i(op)s(erators)150 1590 +y(`)p Fs(|)p Ft(')31 b(or)f(`)p Fs(|&)p Ft('.)275 1727 +y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390 1865 +y Fs([time)46 b([-p]])h([!])g Fi(command1)56 b Fs([)47 +b([|)g(or)h(|&])e Fi(command2)56 b Fs(...])150 2002 y +Ft(The)25 b(output)f(of)i(eac)m(h)g(command)f(in)f(the)i(pip)s(eline)e +(is)i(connected)g(via)f(a)h(pip)s(e)e(to)i(the)f(input)f(of)h(the)h +(next)150 2112 y(command.)40 b(That)29 b(is,)h(eac)m(h)h(command)e +(reads)g(the)h(previous)f(command's)g(output.)40 b(This)29 +b(connection)150 2221 y(is)h(p)s(erformed)f(b)s(efore)h(an)m(y)h +(redirections)g(sp)s(eci\014ed)f(b)m(y)g(the)g(command.)275 +2359 y(If)j(`)p Fs(|&)p Ft(')h(is)h(used,)f(the)h(standard)e(error)h +(of)g Fq(command1)42 b Ft(is)34 b(connected)h(to)g Fq(command2)7 +b Ft('s)35 b(standard)150 2468 y(input)25 b(through)g(the)h(pip)s(e;)h +(it)f(is)g(shorthand)f(for)g Fs(2>&1)k(|)p Ft(.)39 b(This)25 +b(implicit)i(redirection)g(of)f(the)g(standard)150 2578 +y(error)k(is)g(p)s(erformed)f(after)i(an)m(y)g(redirections)g(sp)s +(eci\014ed)e(b)m(y)i(the)f(command.)275 2715 y(The)36 +b(reserv)m(ed)g(w)m(ord)g Fs(time)g Ft(causes)h(timing)g(statistics)h +(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h(pip)s(eline)f(once)h(it)150 +2825 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e(consist)h +(of)f(elapsed)h(\(w)m(all-clo)s(c)m(k\))i(time)e(and)f(user)f(and)h +(system)150 2935 y(time)i(consumed)f(b)m(y)g(the)h(command's)f (execution.)57 b(The)35 b(`)p Fs(-p)p Ft(')h(option)f(c)m(hanges)i(the) -f(output)f(format)150 4192 y(to)i(that)f(sp)s(eci\014ed)f(b)m(y)h +f(output)f(format)150 3044 y(to)i(that)f(sp)s(eci\014ed)f(b)m(y)h Fl(posix)p Ft(.)57 b(The)35 b Fs(TIMEFORMAT)e Ft(v)-5 b(ariable)37 b(ma)m(y)g(b)s(e)e(set)h(to)h(a)f(format)g(string)g(that) -150 4301 y(sp)s(eci\014es)29 b(ho)m(w)g(the)g(timing)g(information)h +150 3154 y(sp)s(eci\014es)29 b(ho)m(w)g(the)g(timing)g(information)h (should)d(b)s(e)i(displa)m(y)m(ed.)41 b(See)29 b(Section)h(5.2)g([Bash) -f(V)-8 b(ariables],)150 4411 y(page)29 b(61,)h(for)e(a)g(description)h +f(V)-8 b(ariables],)150 3263 y(page)29 b(61,)h(for)e(a)g(description)h (of)f(the)g(a)m(v)-5 b(ailable)31 b(formats.)40 b(The)28 b(use)g(of)g Fs(time)f Ft(as)i(a)f(reserv)m(ed)h(w)m(ord)f(p)s(er-)150 -4521 y(mits)g(the)g(timing)g(of)g(shell)g(builtins,)g(shell)g +3373 y(mits)g(the)g(timing)g(of)g(shell)g(builtins,)g(shell)g (functions,)g(and)f(pip)s(elines.)40 b(An)27 b(external)i -Fs(time)d Ft(command)150 4630 y(cannot)31 b(time)g(these)g(easily)-8 -b(.)275 4766 y(If)24 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async) -m(hronously)f(\(see)h(Section)g(3.2.3)h([Lists],)g(page)e(9\),)i(the)f -(shell)150 4875 y(w)m(aits)31 b(for)f(all)i(commands)e(in)g(the)g(pip)s -(eline)g(to)h(complete.)275 5011 y(Eac)m(h)25 b(command)g(in)g(a)g(pip) +Fs(time)d Ft(command)150 3483 y(cannot)31 b(time)g(these)g(easily)-8 +b(.)275 3620 y(If)24 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async) +m(hronously)f(\(see)h(Section)g(3.2.3)h([Lists],)g(page)e(8\),)i(the)f +(shell)150 3730 y(w)m(aits)31 b(for)f(all)i(commands)e(in)g(the)g(pip)s +(eline)g(to)h(complete.)275 3867 y(Eac)m(h)25 b(command)g(in)g(a)g(pip) s(eline)g(is)g(executed)h(in)f(its)g(o)m(wn)h(subshell)e(\(see)i -(Section)g(3.7.3)h([Command)150 5121 y(Execution)36 b(En)m(vironmen)m -(t],)i(page)e(31\).)58 b(The)36 b(exit)g(status)g(of)g(a)g(pip)s(eline) -g(is)f(the)h(exit)h(status)f(of)g(the)150 5230 y(last)27 +(Section)g(3.7.3)h([Command)150 3977 y(Execution)36 b(En)m(vironmen)m +(t],)i(page)e(30\).)58 b(The)36 b(exit)g(status)g(of)g(a)g(pip)s(eline) +g(is)f(the)h(exit)h(status)f(of)g(the)150 4086 y(last)27 b(command)f(in)f(the)i(pip)s(eline,)f(unless)g(the)g Fs(pipefail)e Ft(option)i(is)g(enabled)g(\(see)h(Section)g(4.3.1)h -([The)150 5340 y(Set)34 b(Builtin],)j(page)e(51\).)53 +([The)150 4196 y(Set)34 b(Builtin],)j(page)e(51\).)53 b(If)34 b Fs(pipefail)e Ft(is)i(enabled,)h(the)g(pip)s(eline's)f -(return)f(status)h(is)h(the)f(v)-5 b(alue)35 b(of)p eop -end -%%Page: 9 15 -TeXDict begin 9 14 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)150 299 -y(the)32 b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)e(a)i +(return)f(status)h(is)h(the)f(v)-5 b(alue)35 b(of)150 +4305 y(the)d(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)e(a)i (non-zero)f(status,)h(or)f(zero)h(if)f(all)h(commands)f(exit)150 -408 y(successfully)-8 b(.)67 b(If)38 b(the)h(reserv)m(ed)g(w)m(ord)g(`) -p Fs(!)p Ft(')g(precedes)g(the)g(pip)s(eline,)h(the)g(exit)f(status)g -(is)g(the)g(logical)150 518 y(negation)h(of)f(the)f(exit)i(status)f(as) -f(describ)s(ed)g(ab)s(o)m(v)m(e.)66 b(The)38 b(shell)h(w)m(aits)h(for)e -(all)h(commands)g(in)f(the)150 628 y(pip)s(eline)30 b(to)h(terminate)g -(b)s(efore)f(returning)g(a)h(v)-5 b(alue.)150 881 y Fk(3.2.3)63 -b(Lists)41 b(of)h(Commands)275 1139 y Ft(A)29 b Fs(list)f -Ft(is)i(a)f(sequence)h(of)g(one)f(or)h(more)f(pip)s(elines)g(separated) -h(b)m(y)f(one)h(of)f(the)h(op)s(erators)g(`)p Fs(;)p -Ft(',)g(`)p Fs(&)p Ft(',)150 1249 y(`)p Fs(&&)p Ft(',)h(or)f(`)p -Fs(||)p Ft(',)g(and)g(optionally)i(terminated)f(b)m(y)f(one)h(of)f(`)p -Fs(;)p Ft(',)h(`)p Fs(&)p Ft(',)g(or)f(a)h Fs(newline)p -Ft(.)275 1398 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p +4415 y(successfully)-8 b(.)67 b(If)38 b(the)h(reserv)m(ed)g(w)m(ord)g +(`)p Fs(!)p Ft(')g(precedes)g(the)g(pip)s(eline,)h(the)g(exit)f(status) +g(is)g(the)g(logical)150 4525 y(negation)h(of)f(the)f(exit)i(status)f +(as)f(describ)s(ed)g(ab)s(o)m(v)m(e.)66 b(The)38 b(shell)h(w)m(aits)h +(for)e(all)h(commands)g(in)f(the)150 4634 y(pip)s(eline)30 +b(to)h(terminate)g(b)s(efore)f(returning)g(a)h(v)-5 b(alue.)150 +4836 y Fj(3.2.3)63 b(Lists)41 b(of)h(Commands)150 4983 +y Ft(A)37 b Fs(list)e Ft(is)i(a)g(sequence)g(of)g(one)g(or)f(more)h +(pip)s(elines)f(separated)h(b)m(y)g(one)g(of)f(the)h(op)s(erators)g(`)p +Fs(;)p Ft(',)i(`)p Fs(&)p Ft(',)150 5093 y(`)p Fs(&&)p +Ft(',)31 b(or)f(`)p Fs(||)p Ft(',)g(and)g(optionally)i(terminated)f(b)m +(y)f(one)h(of)f(`)p Fs(;)p Ft(',)h(`)p Fs(&)p Ft(',)g(or)f(a)h +Fs(newline)p Ft(.)275 5230 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p Fs(&&)p Ft(')d(and)g(`)p Fs(||)p Ft(')h(ha)m(v)m(e)h(equal)f (precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Fs(;)p Ft(')g(and)f(`)p -Fs(&)p Ft(',)i(whic)m(h)150 1507 y(ha)m(v)m(e)32 b(equal)e(precedence.) -275 1656 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h -(app)s(ear)f(in)h(a)g Fs(list)e Ft(to)j(delimit)f(commands,)g(equiv-) -150 1766 y(alen)m(t)i(to)f(a)g(semicolon.)275 1915 y(If)c(a)h(command)f -(is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p +Fs(&)p Ft(',)i(whic)m(h)150 5340 y(ha)m(v)m(e)32 b(equal)e(precedence.) +p eop end +%%Page: 9 15 +TeXDict begin 9 14 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)275 299 +y(A)29 b(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h(app)s +(ear)f(in)h(a)g Fs(list)e Ft(to)j(delimit)f(commands,)g(equiv-)150 +408 y(alen)m(t)i(to)f(a)g(semicolon.)275 551 y(If)c(a)h(command)f(is)h +(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p Fs(&)p Ft(',)h(the)e(shell)h(executes)h(the)f(command)150 -2024 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28 -b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h -Fq(bac)m(kground)p Ft(.)150 2134 y(The)f(shell)h(do)s(es)f(not)h(w)m +661 y(async)m(hronously)g(in)g(a)h(subshell.)39 b(This)28 +b(is)g(kno)m(wn)g(as)h(executing)h(the)e(command)h(in)f(the)g +Fq(bac)m(kground)t Ft(.)150 770 y(The)g(shell)h(do)s(es)f(not)h(w)m (ait)g(for)f(the)h(command)f(to)i(\014nish,)d(and)h(the)h(return)e -(status)i(is)g(0)g(\(true\).)40 b(When)150 2243 y(job)g(con)m(trol)h -(is)g(not)f(activ)m(e)i(\(see)f(Chapter)f(7)h([Job)f(Con)m(trol],)j -(page)e(89\),)j(the)d(standard)e(input)g(for)150 2353 -y(async)m(hronous)k(commands,)k(in)d(the)f(absence)i(of)f(an)m(y)g -(explicit)h(redirections,)j(is)43 b(redirected)h(from)150 -2463 y Fs(/dev/null)p Ft(.)275 2612 y(Commands)19 b(separated)j(b)m(y)f -(a)g(`)p Fs(;)p Ft(')g(are)h(executed)g(sequen)m(tially;)k(the)21 -b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 2721 +(status)i(is)g(0)g(\(true\).)40 b(When)150 880 y(job)g(con)m(trol)h(is) +g(not)f(activ)m(e)i(\(see)f(Chapter)f(7)h([Job)f(Con)m(trol],)j(page)e +(89\),)j(the)d(standard)e(input)g(for)150 990 y(async)m(hronous)k +(commands,)k(in)d(the)f(absence)i(of)f(an)m(y)g(explicit)h +(redirections,)j(is)43 b(redirected)h(from)150 1099 y +Fs(/dev/null)p Ft(.)275 1242 y(Commands)19 b(separated)j(b)m(y)f(a)g(`) +p Fs(;)p Ft(')g(are)h(executed)g(sequen)m(tially;)k(the)21 +b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 1352 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i(is)f (the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275 -2870 y Fl(and)g Ft(and)h Fl(or)g Ft(lists)h(are)g(sequences)f(of)h(one) +1494 y Fl(and)g Ft(and)h Fl(or)g Ft(lists)h(are)g(sequences)f(of)h(one) g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op) -s(er-)150 2980 y(ators)e(`)p Fs(&&)p Ft(')f(and)g(`)p +s(er-)150 1604 y(ators)e(`)p Fs(&&)p Ft(')f(and)g(`)p Fs(||)p Ft(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fl(and)30 b Ft(and)f Fl(or)h Ft(lists)h(are)g(executed)g(with)f(left)h(asso)s -(ciativit)m(y)-8 b(.)275 3129 y(An)30 b Fl(and)f Ft(list)i(has)f(the)h -(form)390 3277 y Fj(command1)56 b Fs(&&)47 b Fj(command2)150 -3426 y Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h +(ciativit)m(y)-8 b(.)275 1747 y(An)30 b Fl(and)f Ft(list)i(has)f(the)h +(form)390 1890 y Fi(command1)56 b Fs(&&)47 b Fi(command2)150 +2032 y Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h Fq(command1)38 b Ft(returns)29 b(an)h(exit)h(status)g(of)g(zero.)275 -3575 y(An)f Fl(or)f Ft(list)i(has)f(the)h(form)390 3724 -y Fj(command1)56 b Fs(||)47 b Fj(command2)150 3873 y +2175 y(An)f Fl(or)f Ft(list)i(has)f(the)h(form)390 2318 +y Fi(command1)56 b Fs(||)47 b Fi(command2)150 2461 y Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h Fq(command1)38 b Ft(returns)29 b(a)i(non-zero)g(exit)g(status.)275 -4022 y(The)h(return)g(status)i(of)f Fl(and)f Ft(and)h +2604 y(The)h(return)g(status)i(of)f Fl(and)f Ft(and)h Fl(or)f Ft(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h -(command)f(executed)150 4132 y(in)d(the)h(list.)150 4385 -y Fk(3.2.4)63 b(Comp)s(ound)42 b(Commands)275 4643 y -Ft(Comp)s(ound)e(commands)i(are)h(the)g(shell)g(programming)f -(constructs.)77 b(Eac)m(h)44 b(construct)e(b)s(egins)150 -4753 y(with)d(a)g(reserv)m(ed)g(w)m(ord)f(or)h(con)m(trol)h(op)s -(erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f -(reserv)m(ed)150 4862 y(w)m(ord)k(or)h(op)s(erator.)77 -b(An)m(y)42 b(redirections)h(\(see)h(Section)f(3.6)h([Redirections],)j -(page)c(26\))g(asso)s(ciated)150 4972 y(with)26 b(a)g(comp)s(ound)f -(command)h(apply)g(to)h(all)g(commands)f(within)f(that)i(comp)s(ound)e -(command)h(unless)150 5081 y(explicitly)32 b(o)m(v)m(erridden.)275 -5230 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e -(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150 -5340 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)p -eop end +(command)f(executed)150 2713 y(in)d(the)h(list.)150 2921 +y Fj(3.2.4)63 b(Comp)s(ound)42 b(Commands)150 3068 y +Ft(Comp)s(ound)32 b(commands)j(are)g(the)g(shell)g(programming)f +(constructs.)54 b(Eac)m(h)35 b(construct)g(b)s(egins)f(with)150 +3177 y(a)k(reserv)m(ed)f(w)m(ord)h(or)f(con)m(trol)i(op)s(erator)f(and) +f(is)g(terminated)h(b)m(y)f(a)h(corresp)s(onding)f(reserv)m(ed)g(w)m +(ord)150 3287 y(or)44 b(op)s(erator.)81 b(An)m(y)44 b(redirections)g +(\(see)h(Section)g(3.6)g([Redirections],)j(page)d(26\))g(asso)s(ciated) +g(with)150 3396 y(a)g(comp)s(ound)e(command)i(apply)f(to)h(all)h +(commands)e(within)g(that)h(comp)s(ound)e(command)i(unless)150 +3506 y(explicitly)32 b(o)m(v)m(erridden.)275 3649 y(Bash)45 +b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e(commands,)j +(and)44 b(mec)m(hanisms)i(to)g(group)150 3758 y(commands)30 +b(and)g(execute)i(them)e(as)g(a)h(unit.)150 3966 y Fj(3.2.4.1)63 +b(Lo)s(oping)43 b(Constructs)150 4113 y Ft(Bash)31 b(supp)s(orts)d(the) +j(follo)m(wing)g(lo)s(oping)g(constructs.)275 4256 y(Note)k(that)f +(wherev)m(er)g(a)g(`)p Fs(;)p Ft(')g(app)s(ears)f(in)h(the)g +(description)g(of)g(a)g(command's)g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e) +150 4365 y(replaced)c(with)f(one)h(or)f(more)g(newlines.)150 +4537 y Fs(until)240 b Ft(The)30 b(syn)m(tax)h(of)f(the)h +Fs(until)e Ft(command)h(is:)870 4676 y Fs(until)46 b +Fi(test-commands)11 b Fs(;)44 b(do)j Fi(consequent-commands)11 +b Fs(;)42 b(done)630 4814 y Ft(Execute)g Fq(consequen)m(t-commands)k +Ft(as)41 b(long)h(as)f Fq(test-commands)46 b Ft(has)41 +b(an)g(exit)h(status)630 4924 y(whic)m(h)c(is)h(not)g(zero.)67 +b(The)38 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)g(the)g +(last)g(command)630 5034 y(executed)31 b(in)f Fq(consequen)m +(t-commands)t Ft(,)h(or)g(zero)g(if)f(none)h(w)m(as)f(executed.)150 +5201 y Fs(while)240 b Ft(The)30 b(syn)m(tax)h(of)f(the)h +Fs(while)e Ft(command)h(is:)870 5340 y Fs(while)46 b +Fi(test-commands)11 b Fs(;)44 b(do)j Fi(consequent-commands)11 +b Fs(;)42 b(done)p eop end %%Page: 10 16 TeXDict begin 10 15 bop 150 -116 a Ft(10)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(3.2.4.1)63 b(Lo)s(oping)43 -b(Constructs)275 544 y Ft(Bash)30 b(supp)s(orts)f(the)h(follo)m(wing)i -(lo)s(oping)f(constructs.)275 680 y(Note)k(that)f(wherev)m(er)g(a)g(`)p -Fs(;)p Ft(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's) -g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 790 y(replaced)c(with)f(one)h -(or)f(more)g(newlines.)150 951 y Fs(until)240 b Ft(The)30 -b(syn)m(tax)h(of)f(the)h Fs(until)e Ft(command)h(is:)870 -1086 y Fs(until)46 b Fj(test-commands)11 b Fs(;)44 b(do)j -Fj(consequent-commands)11 b Fs(;)42 b(done)630 1222 y -Ft(Execute)g Fq(consequen)m(t-commands)k Ft(as)41 b(long)h(as)f -Fq(test-commands)46 b Ft(has)41 b(an)g(exit)h(status)630 -1331 y(whic)m(h)c(is)h(not)g(zero.)67 b(The)38 b(return)g(status)h(is)f -(the)h(exit)h(status)f(of)g(the)g(last)g(command)630 -1441 y(executed)31 b(in)f Fq(consequen)m(t-commands)p -Ft(,)i(or)e(zero)h(if)g(none)f(w)m(as)h(executed.)150 -1602 y Fs(while)240 b Ft(The)30 b(syn)m(tax)h(of)f(the)h -Fs(while)e Ft(command)h(is:)870 1737 y Fs(while)46 b -Fj(test-commands)11 b Fs(;)44 b(do)j Fj(consequent-commands)11 -b Fs(;)42 b(done)630 1872 y Ft(Execute)g Fq(consequen)m(t-commands)k -Ft(as)41 b(long)h(as)f Fq(test-commands)46 b Ft(has)41 -b(an)g(exit)h(status)630 1982 y(of)34 b(zero.)53 b(The)34 -b(return)f(status)h(is)h(the)f(exit)h(status)g(of)f(the)g(last)h -(command)f(executed)h(in)630 2091 y Fq(consequen)m(t-commands)p +b(Reference)g(Man)m(ual)630 299 y(Execute)42 b Fq(consequen)m +(t-commands)k Ft(as)41 b(long)h(as)f Fq(test-commands)46 +b Ft(has)41 b(an)g(exit)h(status)630 408 y(of)34 b(zero.)53 +b(The)34 b(return)f(status)h(is)h(the)f(exit)h(status)g(of)f(the)g +(last)h(command)f(executed)h(in)630 518 y Fq(consequen)m(t-commands)t Ft(,)c(or)g(zero)g(if)f(none)g(w)m(as)h(executed.)150 -2252 y Fs(for)336 b Ft(The)30 b(syn)m(tax)h(of)f(the)h -Fs(for)e Ft(command)i(is:)870 2387 y Fs(for)47 b Fj(name)57 -b Fs([in)47 b Fj(words)57 b Fs(...)o(];)47 b(do)g Fj(commands)11 -b Fs(;)45 b(done)630 2522 y Ft(Expand)31 b Fq(w)m(ords)p -Ft(,)j(and)e(execute)i Fq(commands)i Ft(once)d(for)g(eac)m(h)h(mem)m(b) -s(er)e(in)g(the)h(resultan)m(t)630 2632 y(list,)c(with)f -Fq(name)33 b Ft(b)s(ound)26 b(to)j(the)f(curren)m(t)g(mem)m(b)s(er.)40 -b(If)27 b(`)p Fs(in)j Fj(words)11 b Ft(')27 b(is)h(not)g(presen)m(t,)h -(the)630 2741 y Fs(for)g Ft(command)g(executes)i(the)e -Fq(commands)k Ft(once)d(for)f(eac)m(h)i(p)s(ositional)f(parameter)g -(that)630 2851 y(is)d(set,)h(as)f(if)g(`)p Fs(in)j("$@")p -Ft(')c(had)g(b)s(een)g(sp)s(eci\014ed)g(\(see)i(Section)f(3.4.2)i([Sp)s -(ecial)e(P)m(arameters],)630 2961 y(page)c(17\).)39 b(The)21 -b(return)g(status)h(is)g(the)g(exit)h(status)f(of)g(the)g(last)g -(command)g(that)g(executes.)630 3070 y(If)i(there)h(are)h(no)e(items)i -(in)e(the)h(expansion)g(of)g Fq(w)m(ords)p Ft(,)h(no)f(commands)f(are)h -(executed,)j(and)630 3180 y(the)j(return)e(status)i(is)f(zero.)630 -3315 y(An)g(alternate)i(form)e(of)h(the)f Fs(for)g Ft(command)g(is)g -(also)h(supp)s(orted:)870 3450 y Fs(for)47 b(\(\()g Fj(expr1)57 -b Fs(;)47 b Fj(expr2)57 b Fs(;)48 b Fj(expr3)57 b Fs(\)\))47 -b(;)g(do)g Fj(commands)57 b Fs(;)47 b(done)630 3585 y -Ft(First,)38 b(the)f(arithmetic)h(expression)e Fq(expr1)43 -b Ft(is)36 b(ev)-5 b(aluated)38 b(according)f(to)g(the)g(rules)f(de-) -630 3695 y(scrib)s(ed)41 b(b)s(elo)m(w)h(\(see)h(Section)g(6.5)g -([Shell)g(Arithmetic],)j(page)d(78\).)77 b(The)42 b(arithmetic)630 -3805 y(expression)33 b Fq(expr2)41 b Ft(is)34 b(then)f(ev)-5 -b(aluated)35 b(rep)s(eatedly)f(un)m(til)g(it)g(ev)-5 -b(aluates)35 b(to)g(zero.)51 b(Eac)m(h)630 3914 y(time)23 -b Fq(expr2)30 b Ft(ev)-5 b(aluates)25 b(to)e(a)g(non-zero)h(v)-5 -b(alue,)25 b Fq(commands)h Ft(are)d(executed)g(and)g(the)g(arith-)630 -4024 y(metic)29 b(expression)f Fq(expr3)36 b Ft(is)28 +668 y Fs(for)336 b Ft(The)30 b(syn)m(tax)h(of)f(the)h +Fs(for)e Ft(command)i(is:)870 797 y Fs(for)47 b Fi(name)57 +b Fs([)48 b([in)e([)p Fi(words)57 b Fs(...)o(])48 b(])f(;)h(])f(do)g +Fi(commands)11 b Fs(;)45 b(done)630 927 y Ft(Expand)31 +b Fq(w)m(ords)t Ft(,)i(and)e(execute)j Fq(commands)i +Ft(once)d(for)f(eac)m(h)i(mem)m(b)s(er)e(in)g(the)g(resultan)m(t)630 +1037 y(list,)d(with)f Fq(name)33 b Ft(b)s(ound)26 b(to)j(the)f(curren)m +(t)g(mem)m(b)s(er.)40 b(If)27 b(`)p Fs(in)j Fi(words)11 +b Ft(')27 b(is)h(not)g(presen)m(t,)h(the)630 1146 y Fs(for)g +Ft(command)g(executes)i(the)e Fq(commands)k Ft(once)d(for)f(eac)m(h)i +(p)s(ositional)f(parameter)g(that)630 1256 y(is)d(set,)h(as)f(if)g(`)p +Fs(in)j("$@")p Ft(')c(had)g(b)s(een)g(sp)s(eci\014ed)g(\(see)i(Section) +f(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)630 1365 y(page)c(16\).)39 +b(The)21 b(return)g(status)h(is)g(the)g(exit)h(status)f(of)g(the)g +(last)g(command)g(that)g(executes.)630 1475 y(If)37 b(there)h(are)g(no) +g(items)g(in)g(the)g(expansion)g(of)f Fq(w)m(ords)t Ft(,)j(no)d +(commands)h(are)g(executed,)630 1585 y(and)30 b(the)g(return)g(status)g +(is)h(zero.)630 1714 y(An)f(alternate)i(form)e(of)h(the)f +Fs(for)g Ft(command)g(is)g(also)h(supp)s(orted:)870 1844 +y Fs(for)47 b(\(\()g Fi(expr1)57 b Fs(;)47 b Fi(expr2)57 +b Fs(;)48 b Fi(expr3)57 b Fs(\)\))47 b(;)g(do)g Fi(commands)57 +b Fs(;)47 b(done)630 1974 y Ft(First,)38 b(the)f(arithmetic)h +(expression)e Fq(expr1)43 b Ft(is)36 b(ev)-5 b(aluated)38 +b(according)f(to)g(the)g(rules)f(de-)630 2083 y(scrib)s(ed)41 +b(b)s(elo)m(w)h(\(see)h(Section)g(6.5)g([Shell)g(Arithmetic],)j(page)d +(78\).)77 b(The)42 b(arithmetic)630 2193 y(expression)33 +b Fq(expr2)41 b Ft(is)34 b(then)f(ev)-5 b(aluated)35 +b(rep)s(eatedly)f(un)m(til)g(it)g(ev)-5 b(aluates)35 +b(to)g(zero.)51 b(Eac)m(h)630 2302 y(time)23 b Fq(expr2)30 +b Ft(ev)-5 b(aluates)25 b(to)e(a)g(non-zero)h(v)-5 b(alue,)25 +b Fq(commands)h Ft(are)d(executed)g(and)g(the)g(arith-)630 +2412 y(metic)29 b(expression)f Fq(expr3)36 b Ft(is)28 b(ev)-5 b(aluated.)41 b(If)28 b(an)m(y)h(expression)f(is)g(omitted,)i -(it)f(b)s(eha)m(v)m(es)g(as)630 4133 y(if)i(it)h(ev)-5 +(it)f(b)s(eha)m(v)m(es)g(as)630 2522 y(if)i(it)h(ev)-5 b(aluates)32 b(to)g(1.)44 b(The)30 b(return)g(v)-5 b(alue)32 b(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f(in)630 -4243 y Fq(list)i Ft(that)e(is)f(executed,)i(or)e(false)h(if)g(an)m(y)f +2631 y Fq(list)i Ft(that)e(is)f(executed,)i(or)e(false)h(if)g(an)m(y)f (of)h(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275 -4404 y(The)26 b Fs(break)g Ft(and)h Fs(continue)e Ft(builtins)i(\(see)h +2781 y(The)26 b Fs(break)g Ft(and)h Fs(continue)e Ft(builtins)i(\(see)h (Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(35\))g(ma)m(y) -150 4514 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150 -4741 y Fk(3.2.4.2)63 b(Conditional)42 b(Constructs)150 -4986 y Fs(if)384 b Ft(The)30 b(syn)m(tax)h(of)f(the)h -Fs(if)f Ft(command)g(is:)870 5121 y Fs(if)47 b Fj(test-commands)11 -b Fs(;)44 b(then)965 5230 y Fj(consequent-commands)11 -b Fs(;)870 5340 y([elif)46 b Fj(more-test-commands)11 -b Fs(;)42 b(then)p eop end -%%Page: 11 17 -TeXDict begin 11 16 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)965 299 -y Fj(more-consequents)11 b Fs(;])870 408 y([else)46 b -Fj(alternate-consequents)11 b Fs(;])870 518 y(fi)630 -646 y Ft(The)53 b Fq(test-commands)58 b Ft(list)c(is)g(executed,)60 -b(and)53 b(if)g(its)h(return)e(status)i(is)f(zero,)61 -b(the)630 756 y Fq(consequen)m(t-commands)44 b Ft(list)d(is)f -(executed.)70 b(If)40 b Fq(test-commands)k Ft(returns)39 -b(a)h(non-zero)630 865 y(status,)45 b(eac)m(h)e Fs(elif)d -Ft(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit)h(status)f -(is)f(zero,)46 b(the)630 975 y(corresp)s(onding)37 b -Fq(more-consequen)m(ts)42 b Ft(is)c(executed)g(and)f(the)h(command)g -(completes.)63 b(If)630 1084 y(`)p Fs(else)29 b Fj +150 2890 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150 +3080 y Fj(3.2.4.2)63 b(Conditional)42 b(Constructs)150 +3247 y Fs(if)384 b Ft(The)30 b(syn)m(tax)h(of)f(the)h +Fs(if)f Ft(command)g(is:)870 3377 y Fs(if)47 b Fi(test-commands)11 +b Fs(;)44 b(then)965 3486 y Fi(consequent-commands)11 +b Fs(;)870 3596 y([elif)46 b Fi(more-test-commands)11 +b Fs(;)42 b(then)965 3705 y Fi(more-consequents)11 b +Fs(;])870 3815 y([else)46 b Fi(alternate-consequents)11 +b Fs(;])870 3925 y(fi)630 4054 y Ft(The)53 b Fq(test-commands)58 +b Ft(list)c(is)g(executed,)60 b(and)53 b(if)g(its)h(return)e(status)i +(is)f(zero,)61 b(the)630 4164 y Fq(consequen)m(t-commands)44 +b Ft(list)d(is)f(executed.)70 b(If)40 b Fq(test-commands)k +Ft(returns)39 b(a)h(non-zero)630 4273 y(status,)45 b(eac)m(h)e +Fs(elif)d Ft(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit) +h(status)f(is)f(zero,)46 b(the)630 4383 y(corresp)s(onding)37 +b Fq(more-consequen)m(ts)42 b Ft(is)c(executed)g(and)f(the)h(command)g +(completes.)63 b(If)630 4493 y(`)p Fs(else)29 b Fi (alternate-consequents)11 b Ft(')23 b(is)30 b(presen)m(t,)f(and)g(the)g -(\014nal)g(command)f(in)h(the)g(\014nal)630 1194 y Fs(if)44 +(\014nal)g(command)f(in)h(the)g(\014nal)630 4602 y Fs(if)44 b Ft(or)g Fs(elif)f Ft(clause)i(has)f(a)h(non-zero)g(exit)g(status,)j -(then)c Fq(alternate-consequen)m(ts)51 b Ft(is)630 1303 +(then)c Fq(alternate-consequen)m(ts)51 b Ft(is)630 4712 y(executed.)k(The)34 b(return)g(status)h(is)f(the)h(exit)h(status)f(of) -g(the)g(last)g(command)g(executed,)630 1413 y(or)30 b(zero)i(if)e(no)g -(condition)h(tested)g(true.)150 1559 y Fs(case)288 b +g(the)g(last)g(command)g(executed,)630 4821 y(or)30 b(zero)i(if)e(no)g +(condition)h(tested)g(true.)150 4971 y Fs(case)288 b Ft(The)30 b(syn)m(tax)h(of)f(the)h Fs(case)e Ft(command)h(is:)870 -1687 y Fs(case)47 b Fj(word)57 b Fs(in)47 b([)g([\(])g -Fj(pattern)57 b Fs([|)47 b Fj(pattern)11 b Fs(]...)l(\))48 -b Fj(command-list)55 b Fs(;;]...)46 b(esac)630 1815 y(case)20 +5101 y Fs(case)47 b Fi(word)57 b Fs(in)47 b([)g([\(])g +Fi(pattern)57 b Fs([|)47 b Fi(pattern)11 b Fs(]...)l(\))48 +b Fi(command-list)55 b Fs(;;]...)46 b(esac)630 5230 y(case)20 b Ft(will)i(selectiv)m(ely)j(execute)e(the)e Fq(command-list)k Ft(corresp)s(onding)20 b(to)i(the)g(\014rst)f Fq(pattern)630 -1924 y Ft(that)42 b(matc)m(hes)g Fq(w)m(ord)p Ft(.)73 -b(If)41 b(the)g(shell)g(option)h Fs(nocasematch)c Ft(\(see)k(the)g -(description)f(of)630 2034 y Fs(shopt)34 b Ft(in)h(Section)h(4.3.2)h -([The)e(Shopt)f(Builtin],)k(page)e(54\))g(is)g(enabled,)g(the)g(matc)m -(h)g(is)630 2144 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g -(case)h(of)f(alphab)s(etic)g(c)m(haracters.)44 b(The)30 -b(`)p Fs(|)p Ft(')h(is)g(used)630 2253 y(to)e(separate)g(m)m(ultiple)g -(patterns,)g(and)e(the)i(`)p Fs(\))p Ft(')f(op)s(erator)g(terminates)h -(a)g(pattern)f(list.)41 b(A)630 2363 y(list)31 b(of)g(patterns)f(and)g -(an)g(asso)s(ciated)i(command-list)f(is)f(kno)m(wn)g(as)h(a)g -Fq(clause)p Ft(.)630 2491 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g -(terminated)h(with)e(`)p Fs(;;)p Ft(',)45 b(`)p Fs(,&)p -Ft(',)f(or)d(`)p Fs(;;&)p Ft('.)73 b(The)41 b Fq(w)m(ord)j -Ft(under-)630 2600 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g -(expansion,)g(command)f(substitution,)h(arithmetic)630 -2710 y(expansion,)47 b(and)d(quote)g(remo)m(v)-5 b(al)45 -b(b)s(efore)f(matc)m(hing)h(is)f(attempted.)82 b(Eac)m(h)45 -b Fq(pattern)630 2819 y Ft(undergo)s(es)38 b(tilde)h(expansion,)i -(parameter)e(expansion,)i(command)d(substitution,)j(and)630 -2929 y(arithmetic)32 b(expansion.)630 3057 y(There)e(ma)m(y)g(b)s(e)f -(an)h(arbitrary)g(n)m(um)m(b)s(er)f(of)h Fs(case)f Ft(clauses,)i(eac)m -(h)g(terminated)g(b)m(y)e(a)i(`)p Fs(;;)p Ft(',)630 3166 -y(`)p Fs(;&)p Ft(',)c(or)e(`)p Fs(;;&)p Ft('.)39 b(The)25 -b(\014rst)g(pattern)h(that)g(matc)m(hes)h(determines)e(the)h -(command-list)g(that)630 3276 y(is)k(executed.)630 3404 -y(Here)35 b(is)g(an)g(example)h(using)e Fs(case)g Ft(in)g(a)h(script)g -(that)h(could)f(b)s(e)f(used)g(to)h(describ)s(e)g(one)630 -3513 y(in)m(teresting)d(feature)f(of)f(an)g(animal:)870 -3641 y Fs(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f(animal:)f(") -870 3751 y(read)h(ANIMAL)870 3861 y(echo)g(-n)g("The)f($ANIMAL)g(has)h -(")870 3970 y(case)g($ANIMAL)e(in)965 4080 y(horse)i(|)g(dog)g(|)h -(cat\))e(echo)h(-n)g("four";;)965 4189 y(man)g(|)h(kangaroo)d(\))j -(echo)e(-n)i("two";;)965 4299 y(*\))g(echo)e(-n)h("an)g(unknown)f -(number)g(of";;)870 4408 y(esac)870 4518 y(echo)h(")g(legs.")630 -4664 y Ft(If)25 b(the)h(`)p Fs(;;)p Ft(')g(op)s(erator)g(is)g(used,)g +5340 y Ft(that)42 b(matc)m(hes)g Fq(w)m(ord)t Ft(.)71 +b(If)41 b(the)g(shell)g(option)g Fs(nocasematch)d Ft(\(see)k(the)f +(description)g(of)p eop end +%%Page: 11 17 +TeXDict begin 11 16 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)630 299 +y Fs(shopt)34 b Ft(in)h(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)k +(page)e(55\))g(is)g(enabled,)g(the)g(matc)m(h)g(is)630 +408 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g(case)h(of)f +(alphab)s(etic)g(c)m(haracters.)44 b(The)30 b(`)p Fs(|)p +Ft(')h(is)g(used)630 518 y(to)e(separate)g(m)m(ultiple)g(patterns,)g +(and)e(the)i(`)p Fs(\))p Ft(')f(op)s(erator)g(terminates)h(a)g(pattern) +f(list.)41 b(A)630 628 y(list)31 b(of)g(patterns)f(and)g(an)g(asso)s +(ciated)i(command-list)f(is)f(kno)m(wn)g(as)h(a)g Fq(clause)5 +b Ft(.)630 754 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g(terminated)h +(with)e(`)p Fs(;;)p Ft(',)45 b(`)p Fs(;&)p Ft(',)f(or)d(`)p +Fs(;;&)p Ft('.)73 b(The)41 b Fq(w)m(ord)j Ft(under-)630 +864 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g +(command)f(substitution,)h(arithmetic)630 973 y(expansion,)47 +b(and)d(quote)g(remo)m(v)-5 b(al)45 b(b)s(efore)f(matc)m(hing)h(is)f +(attempted.)82 b(Eac)m(h)45 b Fq(pattern)630 1083 y Ft(undergo)s(es)38 +b(tilde)h(expansion,)i(parameter)e(expansion,)i(command)d +(substitution,)j(and)630 1192 y(arithmetic)32 b(expansion.)630 +1319 y(There)e(ma)m(y)g(b)s(e)f(an)h(arbitrary)g(n)m(um)m(b)s(er)f(of)h +Fs(case)f Ft(clauses,)i(eac)m(h)g(terminated)g(b)m(y)e(a)i(`)p +Fs(;;)p Ft(',)630 1428 y(`)p Fs(;&)p Ft(',)c(or)e(`)p +Fs(;;&)p Ft('.)39 b(The)25 b(\014rst)g(pattern)h(that)g(matc)m(hes)h +(determines)e(the)h(command-list)g(that)630 1538 y(is)k(executed.)630 +1665 y(Here)35 b(is)g(an)g(example)h(using)e Fs(case)g +Ft(in)g(a)h(script)g(that)h(could)f(b)s(e)f(used)g(to)h(describ)s(e)g +(one)630 1774 y(in)m(teresting)d(feature)f(of)f(an)g(animal:)870 +1901 y Fs(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f(animal:)f(") +870 2010 y(read)h(ANIMAL)870 2120 y(echo)g(-n)g("The)f($ANIMAL)g(has)h +(")870 2229 y(case)g($ANIMAL)e(in)965 2339 y(horse)i(|)g(dog)g(|)h +(cat\))e(echo)h(-n)g("four";;)965 2449 y(man)g(|)h(kangaroo)d(\))j +(echo)e(-n)i("two";;)965 2558 y(*\))g(echo)e(-n)h("an)g(unknown)f +(number)g(of";;)870 2668 y(esac)870 2777 y(echo)h(")g(legs.")630 +2921 y Ft(If)25 b(the)h(`)p Fs(;;)p Ft(')g(op)s(erator)g(is)g(used,)g (no)g(subsequen)m(t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)f -(\014rst)630 4774 y(pattern)g(matc)m(h.)40 b(Using)26 +(\014rst)630 3030 y(pattern)g(matc)m(h.)40 b(Using)26 b(`)p Fs(;&)p Ft(')f(in)h(place)g(of)g(`)p Fs(;;)p Ft(')g(causes)g -(execution)h(to)f(con)m(tin)m(ue)h(with)f(the)630 4883 +(execution)h(to)f(con)m(tin)m(ue)h(with)f(the)630 3140 y Fq(command-list)39 b Ft(asso)s(ciated)f(with)e(the)g(next)g(clause,)j (if)d(an)m(y)-8 b(.)59 b(Using)37 b(`)p Fs(;;&)p Ft(')f(in)g(place)h -(of)630 4993 y(`)p Fs(;;)p Ft(')30 b(causes)g(the)g(shell)g(to)g(test)h +(of)630 3249 y(`)p Fs(;;)p Ft(')30 b(causes)g(the)g(shell)g(to)g(test)h (the)f(patterns)g(in)f(the)h(next)g(clause,)h(if)e(an)m(y)-8 -b(,)31 b(and)f(execute)630 5103 y(an)m(y)h(asso)s(ciated)h +b(,)31 b(and)f(execute)630 3359 y(an)m(y)h(asso)s(ciated)h Fq(command-list)h Ft(on)d(a)h(successful)f(matc)m(h.)630 -5230 y(The)c(return)f(status)h(is)g(zero)h(if)f(no)g +3485 y(The)c(return)f(status)h(is)g(zero)h(if)f(no)g Fq(pattern)g Ft(is)g(matc)m(hed.)40 b(Otherwise,)27 b(the)g(return)e -(status)630 5340 y(is)30 b(the)h(exit)g(status)g(of)f(the)h -Fq(command-list)i Ft(executed.)p eop end -%%Page: 12 18 -TeXDict begin 12 17 bop 150 -116 a Ft(12)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(select)630 434 y -Ft(The)i Fs(select)f Ft(construct)i(allo)m(ws)h(the)f(easy)g +(status)630 3595 y(is)30 b(the)h(exit)g(status)g(of)f(the)h +Fq(command-list)i Ft(executed.)150 3738 y Fs(select)630 +3865 y Ft(The)g Fs(select)f Ft(construct)i(allo)m(ws)h(the)f(easy)g (generation)h(of)e(men)m(us.)50 b(It)34 b(has)f(almost)i(the)630 -544 y(same)c(syn)m(tax)g(as)f(the)h Fs(for)e Ft(command:)870 -679 y Fs(select)46 b Fj(name)57 b Fs([in)47 b Fj(words)57 -b Fs(...)o(];)47 b(do)h Fj(commands)11 b Fs(;)44 b(done)630 -815 y Ft(The)d(list)i(of)e(w)m(ords)h(follo)m(wing)h +3974 y(same)c(syn)m(tax)g(as)f(the)h Fs(for)e Ft(command:)870 +4101 y Fs(select)46 b Fi(name)57 b Fs([in)47 b Fi(words)57 +b Fs(...)o(];)47 b(do)h Fi(commands)11 b Fs(;)44 b(done)630 +4227 y Ft(The)d(list)i(of)e(w)m(ords)h(follo)m(wing)h Fs(in)e Ft(is)h(expanded,)i(generating)f(a)f(list)g(of)g(items.)75 -b(The)630 924 y(set)41 b(of)f(expanded)f(w)m(ords)g(is)i(prin)m(ted)e +b(The)630 4337 y(set)41 b(of)f(expanded)f(w)m(ords)g(is)i(prin)m(ted)e (on)h(the)g(standard)f(error)h(output)g(stream,)j(eac)m(h)630 -1034 y(preceded)30 b(b)m(y)g(a)h(n)m(um)m(b)s(er.)40 -b(If)29 b(the)i(`)p Fs(in)f Fj(words)11 b Ft(')29 b(is)h(omitted,)i -(the)e(p)s(ositional)i(parameters)630 1143 y(are)22 b(prin)m(ted,)h(as) +4446 y(preceded)30 b(b)m(y)g(a)h(n)m(um)m(b)s(er.)40 +b(If)29 b(the)i(`)p Fs(in)f Fi(words)11 b Ft(')29 b(is)h(omitted,)i +(the)e(p)s(ositional)i(parameters)630 4556 y(are)22 b(prin)m(ted,)h(as) f(if)f(`)p Fs(in)30 b("$@")p Ft(')21 b(had)g(b)s(een)f(sp)s(eci\014ed.) 37 b(The)21 b Fs(PS3)g Ft(prompt)g(is)g(then)g(displa)m(y)m(ed)630 -1253 y(and)38 b(a)h(line)g(is)f(read)h(from)f(the)h(standard)e(input.) +4666 y(and)38 b(a)h(line)g(is)f(read)h(from)f(the)h(standard)e(input.) 65 b(If)38 b(the)h(line)g(consists)g(of)f(a)h(n)m(um)m(b)s(er)630 -1363 y(corresp)s(onding)33 b(to)i(one)f(of)g(the)g(displa)m(y)m(ed)h(w) +4775 y(corresp)s(onding)33 b(to)i(one)f(of)g(the)g(displa)m(y)m(ed)h(w) m(ords,)f(then)g(the)g(v)-5 b(alue)34 b(of)h Fq(name)k -Ft(is)34 b(set)g(to)630 1472 y(that)g(w)m(ord.)49 b(If)32 +Ft(is)34 b(set)g(to)630 4885 y(that)g(w)m(ord.)49 b(If)32 b(the)i(line)f(is)h(empt)m(y)-8 b(,)35 b(the)e(w)m(ords)g(and)f(prompt) -h(are)g(displa)m(y)m(ed)h(again.)50 b(If)630 1582 y Fs(EOF)23 +h(are)g(displa)m(y)m(ed)h(again.)50 b(If)630 4994 y Fs(EOF)23 b Ft(is)g(read,)j(the)d Fs(select)f Ft(command)i(completes.)40 b(An)m(y)23 b(other)h(v)-5 b(alue)24 b(read)g(causes)g -Fq(name)630 1691 y Ft(to)31 b(b)s(e)f(set)h(to)g(n)m(ull.)41 +Fq(name)630 5104 y Ft(to)31 b(b)s(e)f(set)h(to)g(n)m(ull.)41 b(The)29 b(line)i(read)f(is)h(sa)m(v)m(ed)g(in)f(the)h(v)-5 -b(ariable)31 b Fs(REPLY)p Ft(.)630 1827 y(The)42 b Fq(commands)j +b(ariable)31 b Fs(REPLY)p Ft(.)630 5230 y(The)42 b Fq(commands)j Ft(are)d(executed)h(after)g(eac)m(h)g(selection)h(un)m(til)e(a)h -Fs(break)d Ft(command)i(is)630 1936 y(executed,)32 b(at)f(whic)m(h)f(p) -s(oin)m(t)g(the)h Fs(select)d Ft(command)i(completes.)630 -2072 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f -(to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h(curren)m(t)630 -2181 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f -(index)f(of)i(the)g(\014le)f(selected.)870 2317 y Fs(select)46 -b(fname)g(in)i(*;)870 2426 y(do)870 2536 y(echo)f(you)g(picked)f -($fname)g(\\\($REPLY\\\))870 2645 y(break;)870 2755 y(done)150 -2916 y(\(\(...)o(\)\))870 3051 y(\(\()h Fj(expression)56 -b Fs(\)\))630 3187 y Ft(The)33 b(arithmetic)i Fq(expression)f -Ft(is)f(ev)-5 b(aluated)35 b(according)g(to)f(the)g(rules)f(describ)s -(ed)g(b)s(elo)m(w)630 3296 y(\(see)j(Section)f(6.5)h([Shell)f -(Arithmetic],)i(page)f(78\).)55 b(If)34 b(the)h(v)-5 -b(alue)35 b(of)g(the)g(expression)g(is)630 3406 y(non-zero,)27 -b(the)f(return)e(status)i(is)g(0;)h(otherwise)f(the)g(return)e(status)i -(is)g(1.)39 b(This)25 b(is)g(exactly)630 3516 y(equiv)-5 -b(alen)m(t)32 b(to)870 3651 y Fs(let)47 b(")p Fj(expression)11 -b Fs(")630 3786 y Ft(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i -(page)f(41,)i(for)c(a)i(full)f(description)g(of)g(the)h -Fs(let)e Ft(builtin.)150 3948 y Fs([[...)o(]])870 4083 -y([[)47 b Fj(expression)56 b Fs(]])630 4218 y Ft(Return)25 +Fs(break)d Ft(command)i(is)630 5340 y(executed,)32 b(at)f(whic)m(h)f(p) +s(oin)m(t)g(the)h Fs(select)d Ft(command)i(completes.)p +eop end +%%Page: 12 18 +TeXDict begin 12 17 bop 150 -116 a Ft(12)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y(Here)39 b(is)g(an)g(example)h(that)f +(allo)m(ws)i(the)e(user)f(to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h +(curren)m(t)630 408 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f +(name)h(and)f(index)f(of)i(the)g(\014le)f(selected.)870 +542 y Fs(select)46 b(fname)g(in)i(*;)870 651 y(do)870 +761 y(echo)f(you)g(picked)f($fname)g(\\\($REPLY\\\))870 +870 y(break;)870 980 y(done)150 1136 y(\(\(...)o(\)\))870 +1270 y(\(\()h Fi(expression)56 b Fs(\)\))630 1403 y Ft(The)33 +b(arithmetic)i Fq(expression)f Ft(is)f(ev)-5 b(aluated)35 +b(according)g(to)f(the)g(rules)f(describ)s(ed)g(b)s(elo)m(w)630 +1512 y(\(see)j(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)f(78\).)55 +b(If)34 b(the)h(v)-5 b(alue)35 b(of)g(the)g(expression)g(is)630 +1622 y(non-zero,)27 b(the)f(return)e(status)i(is)g(0;)h(otherwise)f +(the)g(return)e(status)i(is)g(1.)39 b(This)25 b(is)g(exactly)630 +1731 y(equiv)-5 b(alen)m(t)32 b(to)870 1864 y Fs(let)47 +b(")p Fi(expression)11 b Fs(")630 1998 y Ft(See)25 b(Section)h(4.2)h +([Bash)e(Builtins],)i(page)f(41,)i(for)c(a)i(full)f(description)g(of)g +(the)h Fs(let)e Ft(builtin.)150 2154 y Fs([[...)o(]])870 +2287 y([[)47 b Fi(expression)56 b Fs(]])630 2420 y Ft(Return)25 b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5 b(aluation)27 b(of)e(the)h(conditional)h(expres-)630 -4328 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29 +2530 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29 b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m -(w)h(in)630 4437 y(Section)36 b(6.4)h([Bash)f(Conditional)g -(Expressions],)h(page)f(77.)57 b(W)-8 b(ord)36 b(splitting)h(and)e -(\014le-)630 4547 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f +(w)h(in)630 2639 y(Section)36 b(6.4)h([Bash)f(Conditional)g +(Expressions],)h(page)f(76.)57 b(W)-8 b(ord)36 b(splitting)h(and)e +(\014le-)630 2749 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f (on)h(the)h(w)m(ords)f(b)s(et)m(w)m(een)h(the)g(`)p Fs([[)p -Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 4657 y(expansion,)31 +Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 2859 y(expansion,)31 b(parameter)g(and)f(v)-5 b(ariable)31 b(expansion,)g(arithmetic)g -(expansion,)g(command)630 4766 y(substitution,)40 b(pro)s(cess)f +(expansion,)g(command)630 2968 y(substitution,)40 b(pro)s(cess)f (substitution,)h(and)e(quote)h(remo)m(v)-5 b(al)40 b(are)f(p)s -(erformed.)63 b(Condi-)630 4876 y(tional)32 b(op)s(erators)e(suc)m(h)g +(erformed.)63 b(Condi-)630 3078 y(tional)32 b(op)s(erators)e(suc)m(h)g (as)h(`)p Fs(-f)p Ft(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e -(recognized)j(as)f(primaries.)630 5011 y(When)22 b(the)h(`)p +(recognized)j(as)f(primaries.)630 3211 y(When)d(used)g(with)g(`)p +Fs([[)p Ft(',)h(The)f(`)p Fs(<)p Ft(')g(and)g(`)p Fs(>)p +Ft(')h(op)s(erators)f(sort)h(lexicographically)i(using)d(the)630 +3320 y(curren)m(t)i(lo)s(cale.)630 3453 y(When)22 b(the)h(`)p Fs(==)p Ft(')f(and)g(`)p Fs(!=)p Ft(')g(op)s(erators)h(are)g(used,)g (the)g(string)f(to)i(the)e(righ)m(t)h(of)g(the)g(op)s(erator)630 -5121 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h(according) +3563 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h(according) g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630 -5230 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(25.) +3673 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(24.) 59 b(If)36 b(the)g(shell)g(option)h Fs(nocasematch)630 -5340 y Ft(\(see)42 b(the)f(description)g(of)h Fs(shopt)d +3782 y Ft(\(see)42 b(the)f(description)g(of)h Fs(shopt)d Ft(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45 -b(page)d(54\))p eop end -%%Page: 13 19 -TeXDict begin 13 18 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299 -y(is)40 b(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)g(without)g -(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630 408 -y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28 b(is)g(0)g(if)g -(the)g(string)g(matc)m(hes)h(\(`)p Fs(==)p Ft('\))f(or)g(do)s(es)f(not) -h(matc)m(h)630 518 y(\(`)p Fs(!=)p Ft('\)the)33 b(pattern,)g(and)f(1)g -(otherwise.)47 b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s -(e)f(quoted)g(to)630 628 y(force)f(it)g(to)g(b)s(e)f(matc)m(hed)h(as)f -(a)h(string.)630 757 y(An)i(additional)i(binary)e(op)s(erator,)i(`)p +b(page)d(55\))630 3892 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s +(erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630 +4001 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28 +b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h(\(`)p Fs(==)p +Ft('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 4111 y(\(`)p +Fs(!=)p Ft('\)the)33 b(pattern,)g(and)f(1)g(otherwise.)47 +b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s(e)f(quoted)g(to) +630 4221 y(force)f(it)g(to)g(b)s(e)f(matc)m(hed)h(as)f(a)h(string.)630 +4354 y(An)i(additional)i(binary)e(op)s(erator,)i(`)p Fs(=~)p Ft(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g -(precedence)h(as)630 867 y(`)p Fs(==)p Ft(')29 b(and)f(`)p +(precedence)h(as)630 4463 y(`)p Fs(==)p Ft(')29 b(and)f(`)p Fs(!=)p Ft('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the) e(righ)m(t)i(of)f(the)g(op)s(erator)g(is)g(consid-)630 -976 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m -(hed)i(accordingly)g(\(as)f(in)g Fm(r)-5 b(e)g(gex)11 -b Ft(3\)\).)630 1086 y(The)29 b(return)f(v)-5 b(alue)30 +4573 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m +(hed)i(accordingly)g(\(as)f(in)g Fk(r)-5 b(e)g(gex)11 +b Ft(3\)\).)630 4682 y(The)29 b(return)f(v)-5 b(alue)30 b(is)g(0)g(if)f(the)h(string)g(matc)m(hes)g(the)g(pattern,)g(and)f(1)h -(otherwise.)41 b(If)29 b(the)630 1196 y(regular)e(expression)g(is)h +(otherwise.)41 b(If)29 b(the)630 4792 y(regular)e(expression)g(is)h (syn)m(tactically)i(incorrect,)f(the)e(conditional)i(expression's)e -(return)630 1305 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39 +(return)630 4902 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39 b(the)h(shell)f(option)h Fs(nocasematch)d Ft(\(see)j(the)g(description) -g(of)f Fs(shopt)f Ft(in)630 1415 y(Section)32 b(4.3.2)g([The)f(Shopt)f -(Builtin],)i(page)g(54\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s -(erformed)630 1524 y(without)36 b(regard)g(to)h(the)f(case)h(of)f +g(of)f Fs(shopt)f Ft(in)630 5011 y(Section)32 b(4.3.2)g([The)f(Shopt)f +(Builtin],)i(page)g(55\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s +(erformed)630 5121 y(without)36 b(regard)g(to)h(the)f(case)h(of)f (alphab)s(etic)h(c)m(haracters.)59 b(An)m(y)36 b(part)g(of)h(the)f -(pattern)630 1634 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b) +(pattern)630 5230 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b) s(e)f(matc)m(hed)i(as)f(a)g(string.)57 b(Substrings)34 -b(matc)m(hed)j(b)m(y)630 1743 y(paren)m(thesized)44 b(sub)s +b(matc)m(hed)j(b)m(y)630 5340 y(paren)m(thesized)44 b(sub)s (expressions)e(within)i(the)g(regular)g(expression)g(are)g(sa)m(v)m(ed) -h(in)f(the)630 1853 y(arra)m(y)38 b(v)-5 b(ariable)38 -b Fs(BASH_REMATCH)p Ft(.)59 b(The)36 b(elemen)m(t)j(of)f -Fs(BASH_REMATCH)c Ft(with)j(index)g(0)h(is)630 1963 y(the)c(p)s(ortion) -f(of)h(the)f(string)h(matc)m(hing)g(the)g(en)m(tire)h(regular)e -(expression.)50 b(The)33 b(elemen)m(t)630 2072 y(of)39 -b Fs(BASH_REMATCH)c Ft(with)j(index)g Fq(n)f Ft(is)i(the)f(p)s(ortion)g -(of)h(the)f(string)h(matc)m(hing)g(the)g Fq(n)p Ft(th)630 -2182 y(paren)m(thesized)31 b(sub)s(expression.)630 2311 -y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m -(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630 -2421 y(order)30 b(of)g(precedence:)630 2570 y Fs(\()g -Fj(expression)38 b Fs(\))1110 2680 y Ft(Returns)30 b(the)h(v)-5 -b(alue)31 b(of)g Fq(expression)p Ft(.)42 b(This)30 b(ma)m(y)i(b)s(e)e -(used)g(to)i(o)m(v)m(erride)g(the)1110 2790 y(normal)e(precedence)h(of) -g(op)s(erators.)630 2939 y Fs(!)f Fj(expression)1110 -3049 y Ft(T)-8 b(rue)30 b(if)g Fq(expression)g Ft(is)h(false.)630 -3198 y Fj(expression1)38 b Fs(&&)30 b Fj(expression2)1110 -3308 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expression1)38 -b Ft(and)29 b Fq(expression2)38 b Ft(are)31 b(true.)630 -3457 y Fj(expression1)38 b Fs(||)30 b Fj(expression2)1110 -3567 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expression1)38 -b Ft(or)30 b Fq(expression2)38 b Ft(is)30 b(true.)630 -3716 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f Ft(op)s(erators)i(do)f(not)h -(ev)-5 b(aluate)27 b Fq(expression2)33 b Ft(if)26 b(the)f(v)-5 -b(alue)26 b(of)g Fq(expression1)630 3826 y Ft(is)k(su\016cien)m(t)h(to) -g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)g -(conditional)h(expression.)150 4035 y Fk(3.2.4.3)63 b(Grouping)43 -b(Commands)275 4274 y Ft(Bash)22 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m -(ys)g(to)g(group)f(a)g(list)h(of)f(commands)g(to)g(b)s(e)g(executed)h -(as)f(a)h(unit.)37 b(When)22 b(com-)150 4384 y(mands)30 -b(are)i(group)s(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g -(the)f(en)m(tire)h(command)g(list.)44 b(F)-8 b(or)32 -b(example,)150 4493 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g -(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.) -150 4643 y Fs(\(\))870 4772 y(\()47 b Fj(list)58 b Fs(\))630 -4902 y Ft(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i -(paren)m(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630 -5011 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d -(Execution)i(En)m(vironmen)m(t],)g(page)f(31\),)630 5121 -y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j +h(in)f(the)p eop end +%%Page: 13 19 +TeXDict begin 13 18 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299 +y(arra)m(y)38 b(v)-5 b(ariable)38 b Fs(BASH_REMATCH)p +Ft(.)59 b(The)36 b(elemen)m(t)j(of)f Fs(BASH_REMATCH)c +Ft(with)j(index)g(0)h(is)630 408 y(the)c(p)s(ortion)f(of)h(the)f +(string)h(matc)m(hing)g(the)g(en)m(tire)h(regular)e(expression.)50 +b(The)33 b(elemen)m(t)630 518 y(of)39 b Fs(BASH_REMATCH)c +Ft(with)j(index)g Fq(n)f Ft(is)i(the)f(p)s(ortion)g(of)h(the)f(string)h +(matc)m(hing)g(the)g Fq(n)p Ft(th)630 628 y(paren)m(thesized)31 +b(sub)s(expression.)630 770 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m +(bined)i(using)f(the)h(follo)m(wing)h(op)s(erators,)g(listed)f(in)f +(decreasing)630 879 y(order)30 b(of)g(precedence:)630 +1054 y Fs(\()g Fi(expression)38 b Fs(\))1110 1163 y Ft(Returns)30 +b(the)h(v)-5 b(alue)31 b(of)g Fq(expression)p Ft(.)42 +b(This)30 b(ma)m(y)i(b)s(e)e(used)g(to)i(o)m(v)m(erride)g(the)1110 +1273 y(normal)e(precedence)h(of)g(op)s(erators.)630 1447 +y Fs(!)f Fi(expression)1110 1557 y Ft(T)-8 b(rue)30 b(if)g +Fq(expression)g Ft(is)h(false.)630 1731 y Fi(expression1)38 +b Fs(&&)30 b Fi(expression2)1110 1841 y Ft(T)-8 b(rue)30 +b(if)g(b)s(oth)g Fq(expression1)38 b Ft(and)29 b Fq(expression2)38 +b Ft(are)31 b(true.)630 2015 y Fi(expression1)38 b Fs(||)30 +b Fi(expression2)1110 2125 y Ft(T)-8 b(rue)30 b(if)g(either)h +Fq(expression1)38 b Ft(or)30 b Fq(expression2)38 b Ft(is)30 +b(true.)630 2299 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f +Ft(op)s(erators)i(do)f(not)h(ev)-5 b(aluate)27 b Fq(expression2)33 +b Ft(if)26 b(the)f(v)-5 b(alue)26 b(of)g Fq(expression1)630 +2408 y Ft(is)k(su\016cien)m(t)h(to)g(determine)g(the)f(return)g(v)-5 +b(alue)31 b(of)f(the)h(en)m(tire)g(conditional)h(expression.)150 +2623 y Fj(3.2.4.3)63 b(Grouping)43 b(Commands)150 2770 +y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m(ys)f(to)h(group)e(a)h +(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h(as)g(a)h(unit.)40 +b(When)29 b(com-)150 2879 y(mands)h(are)i(group)s(ed,)f(redirections)h +(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h(command)g(list.)44 +b(F)-8 b(or)32 b(example,)150 2989 y(the)f(output)f(of)g(all)h(the)g +(commands)f(in)g(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g +(single)g(stream.)150 3171 y Fs(\(\))870 3313 y(\()47 +b Fi(list)58 b Fs(\))630 3455 y Ft(Placing)30 b(a)f(list)g(of)g +(commands)f(b)s(et)m(w)m(een)i(paren)m(theses)e(causes)i(a)f(subshell)e +(en)m(vironmen)m(t)630 3564 y(to)k(b)s(e)e(created)j(\(see)f(Section)g +(3.7.3)h([Command)d(Execution)i(En)m(vironmen)m(t],)g(page)f(30\),)630 +3674 y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j Ft(to)f(b)s(e)e(executed)h(in)f(that)h(subshell.)39 b(Since)28 -b(the)f Fq(list)630 5230 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5 +b(the)f Fq(list)630 3783 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5 b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j -(after)e(the)630 5340 y(subshell)g(completes.)p eop end +(after)e(the)630 3893 y(subshell)g(completes.)150 4067 +y Fs({})870 4209 y({)47 b Fi(list)11 b Fs(;)46 b(})630 +4351 y Ft(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h +(curly)f(braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630 +4461 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42 +b(No)27 b(subshell)f(is)g(created.)41 b(The)26 b(semicolon)i(\(or)f +(newline\))630 4570 y(follo)m(wing)32 b Fq(list)h Ft(is)d(required.)275 +4752 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j +(there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150 +4862 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67 +b(The)39 b(braces)g(are)h Fs(reserved)28 b(words)p Ft(,)40 +b(so)g(they)f(m)m(ust)150 4971 y(b)s(e)d(separated)h(from)f(the)g +Fq(list)j Ft(b)m(y)e Fs(blank)p Ft(s)e(or)h(other)h(shell)f(metac)m +(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 5081 +y Fs(operators)p Ft(,)23 b(and)h(are)g(recognized)i(as)e(separate)i +(tok)m(ens)f(b)m(y)f(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f +(separated)150 5191 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.) +275 5340 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h +(constructs)g(is)f(the)h(exit)g(status)f(of)h Fq(list)r +Ft(.)p eop end %%Page: 14 20 TeXDict begin 14 19 bop 150 -116 a Ft(14)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs({})870 431 y({)47 -b Fj(list)11 b Fs(;)46 b(})630 564 y Ft(Placing)30 b(a)g(list)g(of)g -(commands)f(b)s(et)m(w)m(een)h(curly)f(braces)g(causes)h(the)f(list)h -(to)g(b)s(e)f(executed)630 673 y(in)d(the)h(curren)m(t)g(shell)f(con)m -(text.)42 b(No)27 b(subshell)f(is)g(created.)41 b(The)26 -b(semicolon)i(\(or)f(newline\))630 783 y(follo)m(wing)32 -b Fq(list)h Ft(is)d(required.)275 938 y(In)44 b(addition)h(to)h(the)f -(creation)i(of)e(a)g(subshell,)j(there)e(is)f(a)g(subtle)g -(di\013erence)h(b)s(et)m(w)m(een)f(these)150 1048 y(t)m(w)m(o)c -(constructs)e(due)g(to)g(historical)i(reasons.)67 b(The)39 -b(braces)g(are)h Fs(reserved)28 b(words)p Ft(,)40 b(so)g(they)f(m)m -(ust)150 1158 y(b)s(e)d(separated)h(from)f(the)g Fq(list)j -Ft(b)m(y)e Fs(blank)p Ft(s)e(or)h(other)h(shell)f(metac)m(haracters.)62 -b(The)36 b(paren)m(theses)h(are)150 1267 y Fs(operators)p -Ft(,)23 b(and)h(are)g(recognized)i(as)e(separate)i(tok)m(ens)f(b)m(y)f -(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f(separated)150 -1377 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.)275 -1509 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h(constructs)g -(is)f(the)h(exit)g(status)f(of)h Fq(list)p Ft(.)150 1727 -y Fk(3.2.5)63 b(Copro)s(cesses)275 1969 y Ft(A)34 b Fs(coprocess)e -Ft(is)j(a)g(shell)g(command)f(preceded)h(b)m(y)f(the)h -Fs(coproc)e Ft(reserv)m(ed)i(w)m(ord.)53 b(A)35 b(copro)s(cess)150 -2079 y(is)30 b(executed)g(async)m(hronously)g(in)f(a)h(subshell,)f(as)h -(if)g(the)g(command)f(had)g(b)s(een)g(terminated)h(with)g(the)150 -2189 y(`)p Fs(&)p Ft(')k(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m -(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m(een)h(the)f -(executing)h(shell)f(and)f(the)150 2298 y(copro)s(cess.)275 -2431 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390 -2563 y Fs(coproc)46 b([)p Fj(NAME)11 b Fs(])46 b Fj(command)56 -b Fs([)p Fj(redirections)11 b Fs(])150 2696 y Ft(This)41 -b(creates)j(a)f(copro)s(cess)f(named)g Fq(NAME)p Ft(.)h(If)f -Fq(NAME)48 b Ft(is)42 b(not)h(supplied,)h(the)e(default)h(name)f(is)150 -2805 y Fq(COPR)m(OC)p Ft(.)23 b Fq(NAME)29 b Ft(m)m(ust)24 -b(not)g(b)s(e)f(supplied)f(if)i Fq(command)i Ft(is)e(a)g(simple)g -(command)f(\(see)i(Section)f(3.2.1)150 2915 y([Simple)39 -b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g(in)m(terpreted)h -(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150 -3024 y(command.)275 3157 y(When)23 b(the)h(copro)s(c)g(is)g(executed,)i +b(Reference)g(Man)m(ual)150 299 y Fj(3.2.5)63 b(Copro)s(cesses)150 +446 y Ft(A)37 b Fs(coprocess)c Ft(is)k(a)g(shell)f(command)h(preceded)f +(b)m(y)g(the)h Fs(coproc)d Ft(reserv)m(ed)j(w)m(ord.)59 +b(A)36 b(copro)s(cess)h(is)150 555 y(executed)g(async)m(hronously)g(in) +f(a)h(subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated) +i(with)g(the)150 665 y(`)p Fs(&)p Ft(')d(con)m(trol)h(op)s(erator,)g +(with)f(a)g(t)m(w)m(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m +(een)h(the)f(executing)h(shell)f(and)f(the)150 775 y(copro)s(cess.)275 +906 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390 +1037 y Fs(coproc)46 b([)p Fi(NAME)11 b Fs(])46 b Fi(command)56 +b Fs([)p Fi(redirections)11 b Fs(])150 1168 y Ft(This)41 +b(creates)i(a)g(copro)s(cess)f(named)f Fq(NAME)5 b Ft(.)43 +b(If)f Fq(NAME)47 b Ft(is)42 b(not)g(supplied,)i(the)e(default)g(name)g +(is)150 1277 y Fq(COPR)m(OC)8 b Ft(.)22 b Fq(NAME)29 +b Ft(m)m(ust)23 b(not)g(b)s(e)g(supplied)e(if)i Fq(command)k +Ft(is)c(a)g(simple)g(command)g(\(see)h(Section)g(3.2.1)150 +1387 y([Simple)39 b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g +(in)m(terpreted)h(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150 +1496 y(command.)275 1627 y(When)23 b(the)h(copro)s(c)g(is)g(executed,)i (the)e(shell)g(creates)h(an)e(arra)m(y)i(v)-5 b(ariable)24 -b(\(see)h(Section)f(6.7)h([Arra)m(ys],)150 3267 y(page)43 +b(\(see)h(Section)f(6.7)h([Arra)m(ys],)150 1737 y(page)43 b(80\))g(named)f Fq(NAME)48 b Ft(in)42 b(the)g(con)m(text)i(of)e(the)h (executing)g(shell.)76 b(The)42 b(standard)f(output)h(of)150 -3376 y Fq(command)d Ft(is)d(connected)h(via)g(a)f(pip)s(e)g(to)g(a)h +1846 y Fq(command)d Ft(is)d(connected)h(via)g(a)f(pip)s(e)g(to)g(a)h (\014le)f(descriptor)g(in)f(the)i(executing)g(shell,)h(and)d(that)i -(\014le)150 3486 y(descriptor)25 b(is)f(assigned)h(to)h +(\014le)150 1956 y(descriptor)25 b(is)f(assigned)h(to)h Fq(NAME)5 b Ft([0].)40 b(The)25 b(standard)e(input)h(of)h Fq(command)j Ft(is)d(connected)g(via)h(a)f(pip)s(e)150 -3595 y(to)33 b(a)f(\014le)g(descriptor)g(in)f(the)i(executing)g(shell,) +2066 y(to)33 b(a)f(\014le)g(descriptor)g(in)f(the)i(executing)g(shell,) f(and)g(that)g(\014le)g(descriptor)g(is)g(assigned)g(to)h -Fq(NAME)5 b Ft([1].)150 3705 y(This)31 b(pip)s(e)g(is)h(established)g +Fq(NAME)5 b Ft([1].)150 2175 y(This)31 b(pip)s(e)g(is)h(established)g (b)s(efore)g(an)m(y)g(redirections)g(sp)s(eci\014ed)g(b)m(y)f(the)i -(command)e(\(see)i(Section)g(3.6)150 3814 y([Redirections],)25 +(command)e(\(see)i(Section)g(3.6)150 2285 y([Redirections],)25 b(page)e(26\).)39 b(The)21 b(\014le)h(descriptors)g(can)g(b)s(e)f (utilized)i(as)f(argumen)m(ts)h(to)f(shell)g(commands)150 -3924 y(and)30 b(redirections)h(using)f(standard)f(w)m(ord)h -(expansions.)275 4057 y(The)f(pro)s(cess)h(id)f(of)h(the)g(shell)h(spa) +2394 y(and)30 b(redirections)h(using)f(standard)f(w)m(ord)h +(expansions.)275 2525 y(The)f(pro)s(cess)h(id)f(of)h(the)g(shell)h(spa) m(wned)e(to)i(execute)g(the)f(copro)s(cess)h(is)f(a)m(v)-5 -b(ailable)32 b(as)e(the)g(v)-5 b(alue)31 b(of)150 4166 -y(the)26 b(v)-5 b(ariable)26 b Fq(NAME)p 931 4166 28 +b(ailable)32 b(as)e(the)g(v)-5 b(alue)31 b(of)150 2635 +y(the)26 b(v)-5 b(ariable)26 b Fq(NAME)p 931 2635 28 4 v 46 w Ft(PID.)g(The)f Fs(wait)g Ft(builtin)g(command)g(ma)m(y)h(b)s (e)f(used)g(to)i(w)m(ait)f(for)g(the)g(copro)s(cess)150 -4276 y(to)31 b(terminate.)275 4408 y(The)e(return)h(status)g(of)h(a)g -(copro)s(cess)f(is)h(the)f(exit)i(status)e(of)h Fq(command)p -Ft(.)150 4660 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)275 -4902 y Ft(Shell)27 b(functions)g(are)g(a)h(w)m(a)m(y)g(to)g(group)f -(commands)g(for)g(later)i(execution)f(using)f(a)h(single)g(name)f(for) -150 5011 y(the)35 b(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m -(e)h(a)g Fs(")p Ft(regular)p Fs(")f Ft(command.)54 b(When)35 -b(the)h(name)f(of)g(a)h(shell)150 5121 y(function)j(is)g(used)f(as)h(a) +2745 y(to)31 b(terminate.)275 2876 y(The)e(return)h(status)g(of)h(a)g +(copro)s(cess)f(is)h(the)f(exit)i(status)e(of)h Fq(command)t +Ft(.)150 3101 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 +3260 y Ft(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e +(commands)g(for)h(later)g(execution)h(using)e(a)h(single)g(name)g(for) +150 3370 y(the)f(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m(e) +h(a)g Fs(")p Ft(regular)p Fs(")f Ft(command.)54 b(When)35 +b(the)h(name)f(of)g(a)h(shell)150 3480 y(function)j(is)g(used)f(as)h(a) h(simple)f(command)g(name,)i(the)e(list)h(of)f(commands)g(asso)s -(ciated)i(with)d(that)150 5230 y(function)25 b(name)h(is)g(executed.)40 +(ciated)i(with)d(that)150 3589 y(function)25 b(name)h(is)g(executed.)40 b(Shell)25 b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g -(shell)g(con)m(text;)j(no)c(new)150 5340 y(pro)s(cess)30 -b(is)g(created)i(to)f(in)m(terpret)g(them.)p eop end -%%Page: 15 21 -TeXDict begin 15 20 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)275 299 -y(F)-8 b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390 -433 y Fs([)47 b(function)f(])h Fj(name)58 b Fs(\(\))47 -b Fj(compound-command)54 b Fs([)47 b Fj(redirections)55 -b Fs(])275 567 y Ft(This)31 b(de\014nes)h(a)h(shell)g(function)g(named) -f Fq(name)p Ft(.)48 b(The)32 b(reserv)m(ed)h(w)m(ord)f -Fs(function)f Ft(is)h(optional.)49 b(If)150 676 y(the)39 +(shell)g(con)m(text;)j(no)c(new)150 3699 y(pro)s(cess)30 +b(is)g(created)i(to)f(in)m(terpret)g(them.)275 3830 y(F)-8 +b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390 +3961 y Fs([)47 b(function)f(])h Fi(name)58 b Fs(\(\))47 +b Fi(compound-command)54 b Fs([)47 b Fi(redirections)55 +b Fs(])275 4092 y Ft(This)31 b(de\014nes)h(a)g(shell)h(function)f +(named)g Fq(name)5 b Ft(.)47 b(The)32 b(reserv)m(ed)h(w)m(ord)f +Fs(function)e Ft(is)i(optional.)48 b(If)150 4201 y(the)39 b Fs(function)f Ft(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e (paren)m(theses)h(are)f(optional.)69 b(The)39 b Fq(b)s(o)s(dy)45 -b Ft(of)40 b(the)150 786 y(function)h(is)h(the)g(comp)s(ound)e(command) -h Fq(comp)s(ound-command)j Ft(\(see)e(Section)h(3.2.4)g([Comp)s(ound) -150 896 y(Commands],)33 b(page)g(9\).)48 b(That)33 b(command)g(is)f -(usually)h(a)g Fq(list)i Ft(enclosed)e(b)s(et)m(w)m(een)h -Fs({)e Ft(and)g Fs(})p Ft(,)h(but)f(ma)m(y)150 1005 y(b)s(e)27 -b(an)m(y)h(comp)s(ound)e(command)h(listed)h(ab)s(o)m(v)m(e.)41 -b Fq(comp)s(ound-command)30 b Ft(is)e(executed)g(whenev)m(er)g -Fq(name)150 1115 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g +b Ft(of)40 b(the)150 4311 y(function)h(is)h(the)g(comp)s(ound)e +(command)h Fq(comp)s(ound-command)j Ft(\(see)e(Section)h(3.2.4)g([Comp) +s(ound)150 4420 y(Commands],)33 b(page)g(9\).)48 b(That)33 +b(command)g(is)f(usually)h(a)g Fq(list)i Ft(enclosed)e(b)s(et)m(w)m +(een)h Fs({)e Ft(and)g Fs(})p Ft(,)h(but)f(ma)m(y)150 +4530 y(b)s(e)27 b(an)m(y)h(comp)s(ound)e(command)h(listed)h(ab)s(o)m(v) +m(e.)41 b Fq(comp)s(ound-command)30 b Ft(is)e(executed)g(whenev)m(er)g +Fq(name)150 4640 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g (a)h(command.)61 b(An)m(y)37 b(redirections)h(\(see)g(Section)g(3.6)g -([Redirections],)150 1224 y(page)31 b(26\))h(asso)s(ciated)g(with)e +([Redirections],)150 4749 y(page)31 b(26\))h(asso)s(ciated)g(with)e (the)g(shell)h(function)f(are)h(p)s(erformed)d(when)i(the)g(function)g -(is)h(executed.)275 1358 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b) +(is)h(executed.)275 4880 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b) s(e)g(deleted)g(using)g(the)g(`)p Fs(-f)p Ft(')g(option)g(to)h(the)f -Fs(unset)e Ft(builtin)i(\(see)150 1468 y(Section)31 b(4.1)h([Bourne)e -(Shell)g(Builtins],)h(page)h(35\).)275 1602 y(The)26 +Fs(unset)e Ft(builtin)i(\(see)150 4990 y(Section)31 b(4.1)h([Bourne)e +(Shell)g(Builtins],)h(page)h(35\).)275 5121 y(The)26 b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h (unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150 -1711 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46 +5230 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46 b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150 -1821 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed) -i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 1955 y(Note)22 b(that)f(for)f -(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g -(curly)f(braces)h(that)g(surround)150 2064 y(the)38 b(b)s(o)s(dy)d(of)j -(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s -(dy)f(b)m(y)h Fs(blank)p Ft(s)f(or)h(newlines.)62 b(This)150 -2174 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m -(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i -(are)150 2284 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e -(whitespace)h(or)g(another)g(shell)g(metac)m(haracter.)41 -b(Also,)28 b(when)150 2393 y(using)i(the)g(braces,)h(the)g -Fq(list)i Ft(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a) -e(`)p Fs(&)p Ft(',)h(or)g(a)f(newline.)275 2527 y(When)i(a)i(function)f -(is)g(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome) -g(the)h(p)s(ositional)g(pa-)150 2637 y(rameters)42 b(during)e(its)i +5340 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed) +i(in)e(the)g(b)s(o)s(dy)-8 b(.)p eop end +%%Page: 15 21 +TeXDict begin 15 20 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)275 299 +y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)g(most)g +(common)g(usage)g(the)g(curly)f(braces)h(that)g(surround)150 +408 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g +(separated)h(from)f(the)g(b)s(o)s(dy)f(b)m(y)h Fs(blank)p +Ft(s)f(or)h(newlines.)62 b(This)150 518 y(is)38 b(b)s(ecause)g(the)h +(braces)f(are)h(reserv)m(ed)f(w)m(ords)g(and)f(are)i(only)f(recognized) +i(as)e(suc)m(h)g(when)f(they)i(are)150 628 y(separated)26 +b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h(or)g(another)g +(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150 737 +y(using)i(the)g(braces,)h(the)g Fq(list)i Ft(m)m(ust)d(b)s(e)g +(terminated)h(b)m(y)f(a)h(semicolon,)h(a)e(`)p Fs(&)p +Ft(',)h(or)g(a)f(newline.)275 879 y(When)i(a)i(function)f(is)g +(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g +(the)h(p)s(ositional)g(pa-)150 988 y(rameters)42 b(during)e(its)i (execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m -(arameters],)i(page)c(16\).)75 b(The)150 2746 y(sp)s(ecial)37 +(arameters],)i(page)c(16\).)75 b(The)150 1098 y(sp)s(ecial)37 b(parameter)f(`)p Fs(#)p Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b) s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150 -2856 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35 +1207 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35 b(parameter)h Fs(0)f Ft(is)g(unc)m(hanged.)54 b(The)35 -b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 2966 -y Ft(v)-5 b(ariable)27 b(is)g(set)g(to)h(the)f(name)f(of)h(the)g -(function)f(while)h(the)g(function)f(is)h(executing.)40 -b(All)28 b(other)f(asp)s(ects)150 3075 y(of)32 b(the)g(shell)g -(execution)i(en)m(vironmen)m(t)e(are)h(iden)m(tical)g(b)s(et)m(w)m(een) -g(a)f(function)g(and)f(its)i(caller)g(with)f(the)150 -3185 y(exception)h(that)f(the)g Fs(DEBUG)f Ft(and)g Fs(RETURN)f -Ft(traps)h(are)h(not)g(inherited)g(unless)f(the)h(function)f(has)h(b)s -(een)150 3294 y(giv)m(en)h(the)f Fs(trace)e Ft(attribute)j(using)e(the) -h Fs(declare)e Ft(builtin)h(or)h(the)g Fs(-o)e(functrace)f -Ft(option)j(has)g(b)s(een)150 3404 y(enabled)39 b(with)f(the)h -Fs(set)e Ft(builtin,)k(\(in)e(whic)m(h)f(case)i(all)f(functions)f -(inherit)h(the)f Fs(DEBUG)g Ft(and)g Fs(RETURN)150 3513 -y Ft(traps\).)66 b(See)40 b(Section)f(4.1)h([Bourne)f(Shell)g -(Builtins],)j(page)e(35,)i(for)d(the)g(description)g(of)g(the)g -Fs(trap)150 3623 y Ft(builtin.)275 3757 y(If)e(the)g(builtin)g(command) -h Fs(return)d Ft(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h -(completes)h(and)150 3867 y(execution)25 b(resumes)e(with)h(the)g(next) -g(command)f(after)i(the)f(function)f(call.)40 b(An)m(y)24 -b(command)f(asso)s(ciated)150 3976 y(with)36 b(the)h -Fs(RETURN)d Ft(trap)i(is)h(executed)g(b)s(efore)f(execution)i(resumes.) -57 b(When)37 b(a)f(function)g(completes,)150 4086 y(the)h(v)-5 -b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f(and)g(the)g(sp)s -(ecial)h(parameter)f(`)p Fs(#)p Ft(')g(are)h(restored)f(to)h(the)150 -4195 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g(function's)f -(execution.)40 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(giv)m(en)h -(to)g Fs(return)p Ft(,)150 4305 y(that)j(is)g(the)f(function's)h -(return)e(status;)j(otherwise)f(the)f(function's)h(return)e(status)i -(is)f(the)h(exit)h(status)150 4415 y(of)h(the)f(last)h(command)f -(executed)i(b)s(efore)e(the)g Fs(return)p Ft(.)275 4548 -y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i(b)s(e) -e(declared)h(with)f(the)h Fs(local)f Ft(builtin.)40 b(These)29 -b(v)-5 b(ariables)150 4658 y(are)31 b(visible)g(only)f(to)h(the)g -(function)f(and)g(the)g(commands)g(it)h(in)m(v)m(ok)m(es.)275 -4792 y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s +b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 1317 +y Ft(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h +(function)f(while)g(the)h(function)f(is)g(executing.)275 +1459 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en) +m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g +(and)150 1568 y(its)35 b(caller)i(with)d(these)i(exceptions:)50 +b(the)36 b Fs(DEBUG)d Ft(and)h Fs(RETURN)g Ft(traps)g(are)i(not)f +(inherited)f(unless)h(the)150 1678 y(function)26 b(has)g(b)s(een)f(giv) +m(en)i(the)g Fs(trace)d Ft(attribute)j(using)f(the)g +Fs(declare)e Ft(builtin)i(or)g(the)h Fs(-o)i(functrace)150 +1787 y Ft(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g +Fs(set)f Ft(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f(functions)e +(inherit)h(the)g Fs(DEBUG)150 1897 y Ft(and)33 b Fs(RETURN)f +Ft(traps\),)j(and)e(the)h Fs(ERR)f Ft(trap)h(is)g(not)g(inherited)f +(unless)g(the)h Fs(-o)c(errtrace)h Ft(shell)j(option)150 +2007 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f +(Shell)g(Builtins],)i(page)f(35,)i(for)c(the)i(description)f(of)150 +2116 y(the)c Fs(trap)e Ft(builtin.)275 2258 y(If)37 b(the)g(builtin)g +(command)h Fs(return)d Ft(is)j(executed)g(in)g(a)g(function,)h(the)e +(function)h(completes)h(and)150 2367 y(execution)25 b(resumes)e(with)h +(the)g(next)g(command)f(after)i(the)f(function)f(call.)40 +b(An)m(y)24 b(command)f(asso)s(ciated)150 2477 y(with)36 +b(the)h Fs(RETURN)d Ft(trap)i(is)h(executed)g(b)s(efore)f(execution)i +(resumes.)57 b(When)37 b(a)f(function)g(completes,)150 +2586 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s(ositional)h(parameters)f +(and)g(the)g(sp)s(ecial)h(parameter)f(`)p Fs(#)p Ft(')g(are)h(restored) +f(to)h(the)150 2696 y(v)-5 b(alues)26 b(they)f(had)g(prior)f(to)i(the)g +(function's)f(execution.)40 b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h +(is)f(giv)m(en)h(to)g Fs(return)p Ft(,)150 2806 y(that)j(is)g(the)f +(function's)h(return)e(status;)j(otherwise)f(the)f(function's)h(return) +e(status)i(is)f(the)h(exit)h(status)150 2915 y(of)h(the)f(last)h +(command)f(executed)i(b)s(efore)e(the)g Fs(return)p Ft(.)275 +3057 y(V)-8 b(ariables)31 b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i +(b)s(e)e(declared)h(with)f(the)h Fs(local)f Ft(builtin.)40 +b(These)29 b(v)-5 b(ariables)150 3166 y(are)31 b(visible)g(only)f(to)h +(the)g(function)f(and)g(the)g(commands)g(it)h(in)m(v)m(ok)m(es.)275 +3308 y(F)-8 b(unction)38 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s (e)e(listed)h(with)f(the)h(`)p Fs(-f)p Ft(')f(option)h(to)h(the)e -Fs(declare)f Ft(or)150 4902 y Fs(typeset)d Ft(builtin)h(commands)h +Fs(declare)f Ft(or)150 3417 y Fs(typeset)d Ft(builtin)h(commands)h (\(see)h(Section)g(4.2)g([Bash)f(Builtins],)i(page)f(41\).)55 -b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 5011 y +b(The)35 b(`)p Fs(-F)p Ft(')g(option)g(to)150 3527 y Fs(declare)f Ft(or)i Fs(typeset)e Ft(will)i(list)h(the)f(function)g (names)g(only)g(\(and)g(optionally)h(the)f(source)g(\014le)h(and)150 -5121 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e +3636 y(line)c(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled\).)49 b(F)-8 b(unctions)33 -b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 5230 y(subshells)f +b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 3746 y(subshells)f (automatically)37 b(ha)m(v)m(e)d(them)g(de\014ned)e(with)h(the)g(`)p Fs(-f)p Ft(')h(option)g(to)g(the)f Fs(export)f Ft(builtin)h(\(see)150 -5340 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\).)47 +3856 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\).)47 b(Note)33 b(that)g(shell)f(functions)g(and)f(v)-5 b(ariables)33 -b(with)p eop end -%%Page: 16 22 -TeXDict begin 16 21 bop 150 -116 a Ft(16)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y(the)f(same)g(name)g(ma)m(y)g(result)g -(in)g(m)m(ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e(the)h(en)m -(vironmen)m(t)g(passed)150 408 y(to)h(the)g(shell's)f(c)m(hildren.)41 +b(with)150 3965 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m +(ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e(the)h(en)m +(vironmen)m(t)g(passed)150 4075 y(to)h(the)g(shell's)f(c)m(hildren.)41 b(Care)30 b(should)g(b)s(e)f(tak)m(en)j(in)e(cases)h(where)f(this)g(ma) -m(y)h(cause)g(a)g(problem.)275 540 y(F)-8 b(unctions)30 +m(y)h(cause)g(a)g(problem.)275 4216 y(F)-8 b(unctions)30 b(ma)m(y)h(b)s(e)f(recursiv)m(e.)41 b(No)31 b(limit)g(is)g(placed)g(on) f(the)g(n)m(um)m(b)s(er)g(of)g(recursiv)m(e)h(calls.)150 -787 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)275 1028 y -Ft(A)32 b Fq(parameter)40 b Ft(is)32 b(an)h(en)m(tit)m(y)h(that)f -(stores)g(v)-5 b(alues.)48 b(It)33 b(can)g(b)s(e)e(a)i -Fs(name)p Ft(,)g(a)g(n)m(um)m(b)s(er,)f(or)g(one)h(of)g(the)150 -1138 y(sp)s(ecial)i(c)m(haracters)h(listed)g(b)s(elo)m(w.)53 -b(A)35 b Fq(v)-5 b(ariable)41 b Ft(is)34 b(a)h(parameter)h(denoted)e(b) -m(y)h(a)g Fs(name)p Ft(.)52 b(A)35 b(v)-5 b(ariable)150 -1248 y(has)29 b(a)h Fq(v)-5 b(alue)35 b Ft(and)28 b(zero)j(or)e(more)g -Fq(attributes)p Ft(.)41 b(A)m(ttributes)30 b(are)g(assigned)g(using)f -(the)g Fs(declare)e Ft(builtin)150 1357 y(command)22 -b(\(see)h(the)f(description)g(of)g(the)g Fs(declare)f -Ft(builtin)g(in)h(Section)h(4.2)g([Bash)f(Builtins],)j(page)d(41\).)275 -1488 y(A)28 b(parameter)h(is)g(set)g(if)f(it)h(has)f(b)s(een)g -(assigned)h(a)g(v)-5 b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g -(v)-5 b(alid)28 b(v)-5 b(alue.)41 b(Once)150 1598 y(a)31 -b(v)-5 b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h -(b)m(y)f(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275 -1729 y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e -(a)h(statemen)m(t)h(of)e(the)h(form)390 1861 y Fj(name)11 -b Fs(=[)p Fj(value)g Fs(])150 1992 y Ft(If)34 b Fq(v)-5 -b(alue)40 b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35 +4459 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)150 4619 +y Ft(A)23 b Fq(parameter)31 b Ft(is)23 b(an)g(en)m(tit)m(y)i(that)f +(stores)g(v)-5 b(alues.)39 b(It)23 b(can)h(b)s(e)f(a)g +Fs(name)p Ft(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s +(ecial)150 4728 y(c)m(haracters)i(listed)f(b)s(elo)m(w.)39 +b(A)24 b Fq(v)-5 b(ariable)29 b Ft(is)24 b(a)g(parameter)g(denoted)f(b) +m(y)h(a)g Fs(name)p Ft(.)37 b(A)24 b(v)-5 b(ariable)24 +b(has)f(a)h Fq(v)-5 b(alue)150 4838 y Ft(and)33 b(zero)i(or)e(more)h +Fq(attributes)t Ft(.)51 b(A)m(ttributes)34 b(are)g(assigned)g(using)f +(the)h Fs(declare)e Ft(builtin)h(command)150 4947 y(\(see)e(the)g +(description)f(of)h(the)f Fs(declare)f Ft(builtin)h(in)g(Section)h(4.2) +g([Bash)g(Builtins],)g(page)g(41\).)275 5089 y(A)d(parameter)h(is)g +(set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g(v)-5 +b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5 +b(alid)28 b(v)-5 b(alue.)41 b(Once)150 5198 y(a)31 b(v)-5 +b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h(b)m(y)f +(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275 5340 +y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e(a)h +(statemen)m(t)h(of)e(the)h(form)p eop end +%%Page: 16 22 +TeXDict begin 16 21 bop 150 -116 a Ft(16)2572 b(Bash)31 +b(Reference)g(Man)m(ual)390 299 y Fi(name)11 b Fs(=[)p +Fi(value)g Fs(])150 435 y Ft(If)34 b Fq(v)-5 b(alue)40 +b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35 b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35 b Fq(v)-5 b(alue)5 b Ft(s)35 b(undergo)f(tilde)h(ex-)150 -2101 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36 +544 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36 b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150 -2211 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).) +654 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).) 72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Fs(integer)e -Ft(attribute)i(set,)j(then)150 2321 y Fq(v)-5 b(alue)38 +Ft(attribute)i(set,)j(then)150 763 y Fq(v)-5 b(alue)38 b Ft(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f (ev)m(en)h(if)e(the)h Fs($\(\(...)o(\)\))f Ft(expansion)h(is)g(not)g -(used)150 2430 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f +(used)150 873 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f (page)h(23\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s -(erformed,)f(with)150 2540 y(the)35 b(exception)h(of)f +(erformed,)f(with)150 983 y(the)35 b(exception)h(of)f Fs("$@")f Ft(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36 b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150 -2649 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g +1092 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g (argumen)m(ts)h(to)g(the)g Fs(alias)p Ft(,)e Fs(declare)p -Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 2759 +Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 1202 y Fs(readonly)p Ft(,)d(and)i Fs(local)f Ft(builtin)h(commands.)275 -2890 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m +1338 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m (t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5 -b(ariable)31 b(or)150 3000 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g +b(ariable)31 b(or)150 1447 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g ([Arra)m(ys],)g(page)g(80\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g -(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 3109 y(or)36 +(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 1557 y(or)36 b(add)g(to)h(the)f(v)-5 b(ariable's)37 b(previous)f(v)-5 b(alue.)59 b(When)36 b(`)p Fs(+=)p Ft(')g(is)g(applied)g(to)h(a)g(v)-5 -b(ariable)37 b(for)f(whic)m(h)g(the)150 3219 y(in)m(teger)k(attribute)e +b(ariable)37 b(for)f(whic)m(h)g(the)150 1666 y(in)m(teger)k(attribute)e (has)g(b)s(een)g(set,)j Fq(v)-5 b(alue)44 b Ft(is)38 b(ev)-5 b(aluated)39 b(as)g(an)f(arithmetic)h(expression)f(and)g(added) -150 3329 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5 +150 1776 y(to)e(the)f(v)-5 b(ariable's)36 b(curren)m(t)f(v)-5 b(alue,)37 b(whic)m(h)e(is)g(also)h(ev)-5 b(aluated.)56 b(When)35 b(`)p Fs(+=)p Ft(')g(is)h(applied)f(to)g(an)g(arra)m(y)150 -3438 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see) +1886 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f(assignmen)m(t)j(\(see) f(Section)h(6.7)f([Arra)m(ys],)i(page)f(80\),)h(the)e(v)-5 -b(ariable's)25 b(v)-5 b(alue)150 3548 y(is)32 b(not)f(unset)h(\(as)g +b(ariable's)25 b(v)-5 b(alue)150 1995 y(is)32 b(not)f(unset)h(\(as)g (it)g(is)f(when)g(using)g(`)p Fs(=)p Ft('\),)i(and)e(new)g(v)-5 b(alues)32 b(are)g(app)s(ended)d(to)k(the)f(arra)m(y)g(b)s(eginning)150 -3657 y(at)27 b(one)f(greater)i(than)e(the)g(arra)m(y's)h(maxim)m(um)f +2105 y(at)27 b(one)f(greater)i(than)e(the)g(arra)m(y's)h(maxim)m(um)f (index)g(\(for)g(indexed)g(arra)m(ys\),)i(or)e(added)g(as)g(additional) -150 3767 y(k)m(ey-v)-5 b(alue)35 b(pairs)e(in)g(an)g(asso)s(ciativ)m(e) +150 2214 y(k)m(ey-v)-5 b(alue)35 b(pairs)e(in)g(an)g(asso)s(ciativ)m(e) j(arra)m(y)-8 b(.)51 b(When)33 b(applied)g(to)h(a)g(string-v)-5 b(alued)34 b(v)-5 b(ariable,)35 b Fq(v)-5 b(alue)39 b -Ft(is)150 3877 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5 -b(ariable's)31 b(v)-5 b(alue.)150 4091 y Fk(3.4.1)63 -b(P)m(ositional)41 b(P)m(arameters)275 4332 y Ft(A)36 -b Fq(p)s(ositional)i(parameter)44 b Ft(is)37 b(a)g(parameter)g(denoted) -g(b)m(y)g(one)g(or)g(more)g(digits,)i(other)e(than)g(the)150 -4442 y(single)k(digit)f Fs(0)p Ft(.)69 b(P)m(ositional)42 -b(parameters)f(are)f(assigned)g(from)g(the)g(shell's)g(argumen)m(ts)g -(when)f(it)i(is)150 4551 y(in)m(v)m(ok)m(ed,)f(and)d(ma)m(y)g(b)s(e)g -(reassigned)g(using)f(the)i Fs(set)e Ft(builtin)g(command.)61 -b(P)m(ositional)39 b(parameter)e Fs(N)150 4661 y Ft(ma)m(y)27 -b(b)s(e)g(referenced)f(as)h Fs(${N})p Ft(,)g(or)g(as)g -Fs($N)f Ft(when)g Fs(N)g Ft(consists)i(of)f(a)g(single)g(digit.)41 -b(P)m(ositional)29 b(parameters)150 4770 y(ma)m(y)j(not)f(b)s(e)g -(assigned)h(to)g(with)f(assignmen)m(t)h(statemen)m(ts.)45 -b(The)30 b Fs(set)h Ft(and)g Fs(shift)e Ft(builtins)i(are)h(used)150 -4880 y(to)h(set)f(and)f(unset)h(them)g(\(see)h(Chapter)e(4)h([Shell)g -(Builtin)h(Commands],)e(page)i(35\).)47 b(The)31 b(p)s(ositional)150 -4990 y(parameters)24 b(are)g(temp)s(orarily)g(replaced)h(when)d(a)j -(shell)f(function)f(is)h(executed)h(\(see)f(Section)h(3.3)g([Shell)150 -5099 y(F)-8 b(unctions],)31 b(page)h(14\).)275 5230 y(When)27 -b(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f(than)g(a)g -(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150 5340 -y(b)s(e)h(enclosed)h(in)f(braces.)p eop end -%%Page: 17 23 -TeXDict begin 17 22 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)150 299 -y Fk(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)275 539 -y Ft(The)27 b(shell)h(treats)h(sev)m(eral)g(parameters)g(sp)s(ecially) --8 b(.)41 b(These)28 b(parameters)g(ma)m(y)g(only)g(b)s(e)g -(referenced;)150 648 y(assignmen)m(t)j(to)g(them)g(is)f(not)h(allo)m(w) -m(ed.)150 799 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f +Ft(is)150 2324 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5 +b(ariable's)31 b(v)-5 b(alue.)150 2525 y Fj(3.4.1)63 +b(P)m(ositional)41 b(P)m(arameters)150 2671 y Ft(A)28 +b Fq(p)s(ositional)h(parameter)35 b Ft(is)28 b(a)g(parameter)g(denoted) +g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g(than)e(the)h(single)150 +2781 y(digit)34 b Fs(0)p Ft(.)48 b(P)m(ositional)36 b(parameters)d(are) +g(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in) +m(v)m(ok)m(ed,)150 2891 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using) +e(the)h Fs(set)g Ft(builtin)f(command.)67 b(P)m(ositional)41 +b(parameter)e Fs(N)g Ft(ma)m(y)h(b)s(e)150 3000 y(referenced)34 +b(as)h Fs(${N})p Ft(,)g(or)f(as)h Fs($N)e Ft(when)h Fs(N)g +Ft(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37 +b(parameters)d(ma)m(y)150 3110 y(not)j(b)s(e)f(assigned)h(to)g(with)f +(assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Fs(set)g +Ft(and)g Fs(shift)f Ft(builtins)h(are)h(used)f(to)150 +3219 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h +(Builtin)g(Commands],)h(page)f(35\).)68 b(The)39 b(p)s(ositional)150 +3329 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h +(shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150 +3439 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(14\).)275 +3574 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f +(than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150 +3684 y(b)s(e)h(enclosed)h(in)f(braces.)150 3885 y Fj(3.4.2)63 +b(Sp)s(ecial)41 b(P)m(arameters)150 4032 y Ft(The)d(shell)g(treats)h +(sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38 +b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150 +4141 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150 +4303 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f (parameters,)h(starting)g(from)e(one.)41 b(When)30 b(the)g(expansion) -630 909 y(o)s(ccurs)e(within)f(double)h(quotes,)h(it)g(expands)e(to)i +630 4412 y(o)s(ccurs)e(within)f(double)h(quotes,)h(it)g(expands)e(to)i (a)f(single)h(w)m(ord)f(with)g(the)g(v)-5 b(alue)29 b(of)f(eac)m(h)630 -1018 y(parameter)i(separated)g(b)m(y)f(the)g(\014rst)g(c)m(haracter)i +4522 y(parameter)i(separated)g(b)m(y)f(the)g(\014rst)g(c)m(haracter)i (of)e(the)h Fs(IFS)e Ft(sp)s(ecial)i(v)-5 b(ariable.)41 -b(That)30 b(is,)630 1128 y Fs("$*")h Ft(is)i(equiv)-5 -b(alen)m(t)33 b(to)h Fs("$1)p Fj(c)11 b Fs($2)p Fj(c)g +b(That)30 b(is,)630 4631 y Fs("$*")h Ft(is)i(equiv)-5 +b(alen)m(t)33 b(to)h Fs("$1)p Fi(c)11 b Fs($2)p Fi(c)g Fs(...)l(")p Ft(,)33 b(where)f Fq(c)38 b Ft(is)32 b(the)h(\014rst)e(c)m -(haracter)j(of)f(the)f(v)-5 b(alue)630 1238 y(of)30 b(the)g +(haracter)j(of)f(the)f(v)-5 b(alue)630 4741 y(of)30 b(the)g Fs(IFS)g Ft(v)-5 b(ariable.)41 b(If)30 b Fs(IFS)f Ft(is)h(unset,)g(the) g(parameters)g(are)h(separated)f(b)m(y)g(spaces.)41 b(If)630 -1347 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f(the)h(parameters)g(are)f(joined)h -(without)f(in)m(terv)m(ening)i(separators.)150 1498 y +4850 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f(the)h(parameters)g(are)f(joined)h +(without)f(in)m(terv)m(ening)i(separators.)150 5011 y Fs(@)432 b Ft(Expands)29 b(to)h(the)h(p)s(ositional)f(parameters,)h (starting)g(from)e(one.)41 b(When)30 b(the)g(expansion)630 -1608 y(o)s(ccurs)c(within)g(double)f(quotes,)j(eac)m(h)f(parameter)g +5121 y(o)s(ccurs)c(within)g(double)f(quotes,)j(eac)m(h)f(parameter)g (expands)e(to)i(a)g(separate)g(w)m(ord.)39 b(That)630 -1717 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5 b(alen)m(t)30 +5230 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5 b(alen)m(t)30 b(to)f Fs("$1")g("$2")h(...)o Ft(.)40 b(If)28 b(the)g(double-quoted)h -(expansion)f(o)s(ccurs)630 1827 y(within)d(a)h(w)m(ord,)g(the)g +(expansion)f(o)s(ccurs)630 5340 y(within)d(a)h(w)m(ord,)g(the)g (expansion)f(of)h(the)g(\014rst)f(parameter)h(is)f(joined)h(with)f(the) -h(b)s(eginning)630 1936 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e -(the)h(expansion)g(of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630 -2046 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59 +h(b)s(eginning)p eop end +%%Page: 17 23 +TeXDict begin 17 22 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)630 299 +y(part)25 b(of)g(the)g(original)g(w)m(ord,)h(and)e(the)h(expansion)g +(of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630 +408 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59 b(When)36 b(there)h(are)g(no)f(p)s(ositional)h(parameters,)630 -2156 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e -(\(i.e.,)i(they)e(are)h(remo)m(v)m(ed\).)150 2306 y Fs(#)432 -b Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)h -(parameters)g(in)f(decimal.)150 2457 y Fs(?)432 b Ft(Expands)29 +518 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e(\(i.e.,) +i(they)e(are)h(remo)m(v)m(ed\).)150 677 y Fs(#)432 b +Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)h +(parameters)g(in)f(decimal.)150 836 y Fs(?)432 b Ft(Expands)29 b(to)i(the)g(exit)g(status)g(of)f(the)h(most)f(recen)m(tly)i(executed)f -(foreground)f(pip)s(eline.)150 2608 y Fs(-)432 b Ft(\(A)31 +(foreground)f(pip)s(eline.)150 995 y Fs(-)432 b Ft(\(A)31 b(h)m(yphen.\))42 b(Expands)30 b(to)h(the)g(curren)m(t)g(option)h (\015ags)f(as)g(sp)s(eci\014ed)f(up)s(on)g(in)m(v)m(o)s(cation,)630 -2718 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g +1105 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g (set)f(b)m(y)h(the)f(shell)h(itself)g(\(suc)m(h)f(as)h(the)f(`)p -Fs(-i)p Ft(')630 2827 y(option\).)150 2978 y Fs($)432 +Fs(-i)p Ft(')630 1215 y(option\).)150 1374 y Fs($)432 b Ft(Expands)39 b(to)j(the)f(pro)s(cess)f Fl(id)h Ft(of)g(the)g(shell.) 73 b(In)40 b(a)h Fs(\(\))f Ft(subshell,)j(it)e(expands)f(to)i(the)630 -3088 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g -(not)g(the)f(subshell.)150 3239 y Fs(!)432 b Ft(Expands)39 +1483 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g +(not)g(the)f(subshell.)150 1643 y Fs(!)432 b Ft(Expands)39 b(to)i(the)g(pro)s(cess)e Fl(id)i Ft(of)f(the)h(most)g(recen)m(tly)g -(executed)g(bac)m(kground)g(\(asyn-)630 3348 y(c)m(hronous\))30 -b(command.)150 3499 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g +(executed)g(bac)m(kground)g(\(asyn-)630 1752 y(c)m(hronous\))30 +b(command.)150 1911 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g (the)g(shell)g(or)f(shell)h(script.)38 b(This)21 b(is)h(set)g(at)h -(shell)f(initialization.)630 3609 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m +(shell)f(initialization.)630 2021 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m (ed)i(with)e(a)g(\014le)g(of)h(commands)e(\(see)j(Section)f(3.8)g -([Shell)f(Scripts],)630 3718 y(page)39 b(34\),)i Fs($0)d +([Shell)f(Scripts],)630 2130 y(page)39 b(33\),)i Fs($0)d Ft(is)g(set)g(to)h(the)f(name)g(of)g(that)h(\014le.)64 b(If)37 b(Bash)i(is)f(started)g(with)g(the)g(`)p Fs(-c)p -Ft(')630 3828 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h +Ft(')630 2240 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h (Bash],)h(page)e(71\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g -(\014rst)630 3938 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e) +(\014rst)630 2350 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e) f(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31 -b(it)g(is)f(set)630 4047 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m +b(it)g(is)f(set)630 2459 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m (ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150 -4198 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29 +2618 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29 b(shell)e(startup,)h(set)f(to)h(the)g(absolute)g(pathname)f(used)f(to)i -(in)m(v)m(ok)m(e)630 4308 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s +(in)m(v)m(ok)m(e)630 2728 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s (eing)h(executed)h(as)f(passed)f(in)g(the)h(en)m(vironmen)m(t)h(or)e -(argumen)m(t)630 4417 y(list.)72 b(Subsequen)m(tly)-8 +(argumen)m(t)630 2838 y(list.)72 b(Subsequen)m(tly)-8 b(,)43 b(expands)c(to)j(the)e(last)i(argumen)m(t)f(to)g(the)g(previous) -f(command,)630 4527 y(after)35 b(expansion.)54 b(Also)36 +f(command,)630 2947 y(after)35 b(expansion.)54 b(Also)36 b(set)f(to)h(the)f(full)f(pathname)h(used)f(to)h(in)m(v)m(ok)m(e)i(eac) -m(h)f(command)630 4636 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m +m(h)f(command)630 3057 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m (vironmen)m(t)h(exp)s(orted)f(to)g(that)h(command.)72 -b(When)630 4746 y(c)m(hec)m(king)32 b(mail,)f(this)g(parameter)g(holds) -e(the)i(name)f(of)h(the)g(mail)g(\014le.)150 4991 y Fr(3.5)68 -b(Shell)45 b(Expansions)275 5230 y Ft(Expansion)29 b(is)h(p)s(erformed) -e(on)i(the)g(command)g(line)g(after)h(it)f(has)g(b)s(een)f(split)h(in)m -(to)h Fs(token)p Ft(s.)39 b(There)150 5340 y(are)31 b(sev)m(en)g(kinds) -e(of)i(expansion)f(p)s(erformed:)p eop end -%%Page: 18 24 -TeXDict begin 18 23 bop 150 -116 a Ft(18)2572 b(Bash)31 -b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(brace)31 -b(expansion)225 429 y Fp(\017)60 b Ft(tilde)31 b(expansion)225 -560 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5 b(ariable)31 -b(expansion)225 691 y Fp(\017)60 b Ft(command)30 b(substitution)225 -821 y Fp(\017)60 b Ft(arithmetic)32 b(expansion)225 952 -y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 1082 y Fp(\017)60 -b Ft(\014lename)31 b(expansion)275 1234 y(The)i(order)g(of)h -(expansions)g(is:)47 b(brace)34 b(expansion,)h(tilde)g(expansion,)f -(parameter,)i(v)-5 b(ariable,)36 b(and)150 1343 y(arithmetic)46 -b(expansion)f(and)g(command)f(substitution)h(\(done)g(in)g(a)g -(left-to-righ)m(t)j(fashion\),)h(w)m(ord)150 1453 y(splitting,)31 -b(and)f(\014lename)h(expansion.)275 1584 y(On)42 b(systems)h(that)h -(can)g(supp)s(ort)e(it,)47 b(there)d(is)f(an)h(additional)g(expansion)f -(a)m(v)-5 b(ailable:)69 b Fq(pro)s(cess)150 1693 y(substitution)p +b(When)630 3166 y(c)m(hec)m(king)32 b(mail,)f(this)g(parameter)g(holds) +e(the)i(name)f(of)h(the)g(mail)g(\014le.)150 3399 y Fr(3.5)68 +b(Shell)45 b(Expansions)150 3558 y Ft(Expansion)27 b(is)i(p)s(erformed) +d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)s(een)f(split)h(in)m +(to)i Fs(token)p Ft(s.)38 b(There)28 b(are)150 3668 y(sev)m(en)j(kinds) +e(of)i(expansion)f(p)s(erformed:)225 3802 y Fp(\017)60 +b Ft(brace)31 b(expansion)225 3936 y Fp(\017)60 b Ft(tilde)31 +b(expansion)225 4071 y Fp(\017)60 b Ft(parameter)31 b(and)f(v)-5 +b(ariable)31 b(expansion)225 4205 y Fp(\017)60 b Ft(command)30 +b(substitution)225 4339 y Fp(\017)60 b Ft(arithmetic)32 +b(expansion)225 4474 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 +4608 y Fp(\017)60 b Ft(\014lename)31 b(expansion)275 +4767 y(The)i(order)g(of)h(expansions)g(is:)47 b(brace)34 +b(expansion,)h(tilde)g(expansion,)f(parameter,)i(v)-5 +b(ariable,)36 b(and)150 4877 y(arithmetic)46 b(expansion)f(and)g +(command)f(substitution)h(\(done)g(in)g(a)g(left-to-righ)m(t)j +(fashion\),)h(w)m(ord)150 4986 y(splitting,)31 b(and)f(\014lename)h +(expansion.)275 5121 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,) +47 b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5 +b(ailable:)69 b Fq(pro)s(cess)150 5230 y(substitution)p Ft(.)61 b(This)36 b(is)h(p)s(erformed)f(at)i(the)f(same)h(time)f(as)h (parameter,)h(v)-5 b(ariable,)40 b(and)d(arithmetic)150 -1803 y(expansion)30 b(and)g(command)g(substitution.)275 -1933 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d -(\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n)m(um)m(b)s(er)150 -2043 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f -(expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m(ord.)58 -b(The)150 2152 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f +5340 y(expansion)30 b(and)g(command)g(substitution.)p +eop end +%%Page: 18 24 +TeXDict begin 18 23 bop 150 -116 a Ft(18)2572 b(Bash)31 +b(Reference)g(Man)m(ual)275 299 y(Only)k(brace)i(expansion,)h(w)m(ord)e +(splitting,)j(and)d(\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n) +m(um)m(b)s(er)150 408 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e +(expansions)f(expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m +(ord.)58 b(The)150 518 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f (expansions)g(of)h Fs("$@")e Ft(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f -(P)m(arameters],)150 2262 y(page)e(17\))h(and)d Fs("${)p -Fj(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g -(page)g(80\).)275 2393 y(After)41 b(all)i(expansions,)h +(P)m(arameters],)150 628 y(page)e(16\))h(and)d Fs("${)p +Fi(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g +(page)g(80\).)275 765 y(After)41 b(all)i(expansions,)h Fs(quote)29 b(removal)40 b Ft(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m -(v)-5 b(al],)47 b(page)42 b(26\))h(is)150 2502 y(p)s(erformed.)150 -2715 y Fk(3.5.1)63 b(Brace)40 b(Expansion)275 2955 y -Ft(Brace)21 b(expansion)g(is)g(a)g(mec)m(hanism)g(b)m(y)g(whic)m(h)f -(arbitrary)h(strings)f(ma)m(y)i(b)s(e)e(generated.)38 -b(This)20 b(mec)m(h-)150 3064 y(anism)35 b(is)h(similar)f(to)h -Fq(\014lename)g(expansion)f Ft(\(see)i(Section)f(3.5.8)h([Filename)g -(Expansion],)f(page)g(24\),)150 3174 y(but)24 b(the)i(\014le)f(names)g -(generated)h(need)f(not)g(exist.)40 b(P)m(atterns)26 -b(to)g(b)s(e)e(brace)i(expanded)e(tak)m(e)j(the)e(form)g(of)150 -3283 y(an)30 b(optional)h Fq(pream)m(ble)p Ft(,)g(follo)m(w)m(ed)g(b)m -(y)f(either)g(a)h(series)f(of)g(comma-separated)i(strings)d(or)h(a)h -(seqeunce)150 3393 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i -(braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fq(p)s(ostscript)p -Ft(.)57 b(The)36 b(pream)m(ble)g(is)150 3503 y(pre\014xed)28 -b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g -(the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150 -3612 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ) -m(t.)275 3743 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59 +(v)-5 b(al],)47 b(page)42 b(25\))h(is)150 875 y(p)s(erformed.)150 +1077 y Fj(3.5.1)63 b(Brace)40 b(Expansion)150 1224 y +Ft(Brace)28 b(expansion)f(is)h(a)f(mec)m(hanism)h(b)m(y)f(whic)m(h)f +(arbitrary)h(strings)g(ma)m(y)h(b)s(e)f(generated.)40 +b(This)27 b(mec)m(ha-)150 1334 y(nism)e(is)h(similar)g(to)g +Fq(\014lename)g(expansion)f Ft(\(see)i(Section)f(3.5.8)i([Filename)f +(Expansion],)f(page)h(24\),)h(but)150 1443 y(the)36 b(\014le)f(names)h +(generated)g(need)f(not)h(exist.)57 b(P)m(atterns)36 +b(to)g(b)s(e)f(brace)h(expanded)e(tak)m(e)j(the)f(form)f(of)150 +1553 y(an)29 b(optional)i Fq(pream)m(ble)5 b Ft(,)30 +b(follo)m(w)m(ed)i(b)m(y)d(either)h(a)g(series)g(of)g(comma-separated)h +(strings)e(or)h(a)g(seqeunce)150 1663 y(expression)36 +b(b)s(et)m(w)m(een)g(a)g(pair)g(of)g(braces,)i(follo)m(w)m(ed)f(b)m(y)f +(an)g(optional)h Fq(p)s(ostscript)r Ft(.)56 b(The)36 +b(pream)m(ble)g(is)150 1772 y(pre\014xed)28 b(to)h(eac)m(h)h(string)f +(con)m(tained)h(within)e(the)h(braces,)g(and)g(the)g(p)s(ostscript)f +(is)h(then)f(app)s(ended)f(to)150 1882 y(eac)m(h)32 b(resulting)e +(string,)h(expanding)e(left)j(to)f(righ)m(t.)275 2019 +y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59 b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g -(sorted;)150 3852 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m -(ed.)41 b(F)-8 b(or)31 b(example,)390 3983 y Fs(bash$)46 -b(echo)h(a{d,c,b}e)390 4093 y(ade)g(ace)g(abe)275 4223 -y Ft(A)29 b(sequence)g(expression)g(tak)m(es)h(the)f(form)g -Fs({)p Fj(x)p Fs(..)p Fj(y)11 b Fs([)p Fj(incr)g Fs(]})p -Ft(,)25 b(where)k Fq(x)35 b Ft(and)28 b Fq(y)37 b Ft(are)29 -b(either)h(in)m(tegers)150 4333 y(or)42 b(single)h(c)m(haracters,)48 -b(and)41 b Fq(incr)p Ft(,)46 b(an)c(optional)i(incremen)m(t,)i(is)c(an) -h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 4442 -y(supplied,)f(the)f(expression)f(expands)f(to)i(eac)m(h)h(n)m(um)m(b)s -(er)d(b)s(et)m(w)m(een)i Fq(x)47 b Ft(and)41 b Fq(y)p -Ft(,)j(inclusiv)m(e.)75 b(Supplied)150 4552 y(in)m(tegers)33 +(sorted;)150 2129 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m +(ed.)41 b(F)-8 b(or)31 b(example,)390 2267 y Fs(bash$)46 +b(echo)h(a{d,c,b}e)390 2376 y(ade)g(ace)g(abe)275 2514 +y Ft(A)20 b(sequence)h(expression)g(tak)m(es)h(the)f(form)f +Fs({)p Fi(x)11 b Fs(..)p Fi(y)g Fs([..)p Fi(incr)g Fs(]})p +Ft(,)18 b(where)i Fq(x)27 b Ft(and)20 b Fq(y)28 b Ft(are)22 +b(either)f(in)m(tegers)150 2623 y(or)42 b(single)h(c)m(haracters,)j +(and)c Fq(incr)7 b Ft(,)44 b(an)e(optional)h(incremen)m(t,)j(is)c(an)g +(in)m(teger.)77 b(When)41 b(in)m(tegers)j(are)150 2733 +y(supplied,)e(the)f(expression)g(expands)f(to)h(eac)m(h)h(n)m(um)m(b)s +(er)e(b)s(et)m(w)m(een)h Fq(x)47 b Ft(and)40 b Fq(y)8 +b Ft(,)44 b(inclusiv)m(e.)73 b(Supplied)150 2842 y(in)m(tegers)33 b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Fs(0)p Ft(')h(to)g(force)g (eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42 -b(When)31 b(either)150 4661 y Fq(x)43 b Ft(or)36 b Fq(y)44 +b(When)31 b(either)150 2952 y Fq(x)43 b Ft(or)36 b Fq(y)44 b Ft(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g (force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150 -4771 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h +3062 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h (necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the) -150 4881 y(expression)h(expands)g(to)h(eac)m(h)h(c)m(haracter)g -(lexicographically)i(b)s(et)m(w)m(een)d Fq(x)44 b Ft(and)37 -b Fq(y)p Ft(,)i(inclusiv)m(e.)64 b(Note)150 4990 y(that)30 -b(b)s(oth)e Fq(x)35 b Ft(and)28 b Fq(y)37 b Ft(m)m(ust)29 -b(b)s(e)f(of)h(the)g(same)g(t)m(yp)s(e.)41 b(When)28 -b(the)i(incremen)m(t)f(is)g(supplied,)f(it)i(is)f(used)f(as)150 -5100 y(the)j(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h(term.)41 +150 3171 y(expression)h(expands)f(to)i(eac)m(h)g(c)m(haracter)g +(lexicographically)i(b)s(et)m(w)m(een)e Fq(x)43 b Ft(and)37 +b Fq(y)8 b Ft(,)38 b(inclusiv)m(e.)62 b(Note)150 3281 +y(that)30 b(b)s(oth)e Fq(x)35 b Ft(and)28 b Fq(y)37 b +Ft(m)m(ust)29 b(b)s(e)f(of)h(the)g(same)g(t)m(yp)s(e.)41 +b(When)28 b(the)i(incremen)m(t)f(is)g(supplied,)f(it)i(is)f(used)f(as) +150 3390 y(the)j(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h(term.)41 b(The)30 b(default)g(incremen)m(t)h(is)g(1)f(or)h(-1)g(as)f -(appropriate.)275 5230 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s +(appropriate.)275 3528 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s (efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i -(sp)s(ecial)150 5340 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed) +(sp)s(ecial)150 3638 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed) f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g(textual.)46 -b(Bash)32 b(do)s(es)f(not)h(apply)p eop end +b(Bash)32 b(do)s(es)f(not)h(apply)150 3747 y(an)m(y)27 +b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g +(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)150 +3857 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f(parameter)h +(expansion,)g(the)g(string)f(`)p Fs(${)p Ft(')g(is)g(not)g(considered)g +(eligible)i(for)150 3966 y(brace)31 b(expansion.)275 +4104 y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain) +h(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150 +4214 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5 +b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h +(formed)150 4323 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275 +4461 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted) +g(with)g(a)h(bac)m(kslash)f(to)h(prev)m(en)m(t)g(its)g(b)s(eing)f +(considered)g(part)g(of)g(a)h(brace)150 4570 y(expression.)51 +b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g +(expansion,)h(the)f(string)g(`)p Fs(${)p Ft(')g(is)g(not)g(considered) +150 4680 y(eligible)e(for)e(brace)h(expansion.)275 4818 +y(This)f(construct)h(is)g(t)m(ypically)i(used)d(as)h(shorthand)f(when)g +(the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)150 +4927 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m(v)m +(e)i(example:)390 5065 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o +(ew,)o(dist)o(,bug)o(s})275 5202 y Ft(or)390 5340 y Fs(chown)g(root)h +(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})p +eop end %%Page: 19 25 TeXDict begin 19 24 bop 150 -116 a Ft(Chapter)30 b(3:)41 b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299 -y(an)m(y)27 b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text) -i(of)e(the)g(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h -(braces.)150 408 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f -(parameter)h(expansion,)g(the)g(string)f(`)p Fs(${)p -Ft(')g(is)g(not)g(considered)g(eligible)i(for)150 518 -y(brace)31 b(expansion.)275 658 y(A)e(correctly-formed)i(brace)f -(expansion)f(m)m(ust)h(con)m(tain)h(unquoted)e(op)s(ening)g(and)g -(closing)i(braces,)150 768 y(and)h(at)i(least)g(one)f(unquoted)g(comma) -g(or)g(a)h(v)-5 b(alid)33 b(sequence)g(expression.)48 -b(An)m(y)33 b(incorrectly)h(formed)150 877 y(brace)d(expansion)f(is)g -(left)h(unc)m(hanged.)275 1017 y(A)25 b Fs({)g Ft(or)g(`)p -Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)g(with)g(a)h(bac)m(kslash)f(to)h -(prev)m(en)m(t)g(its)g(b)s(eing)f(considered)g(part)g(of)g(a)h(brace) -150 1127 y(expression.)51 b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e -(with)g(parameter)g(expansion,)h(the)f(string)g(`)p Fs(${)p -Ft(')g(is)g(not)g(considered)150 1236 y(eligible)e(for)e(brace)h -(expansion.)275 1376 y(This)f(construct)h(is)g(t)m(ypically)i(used)d -(as)h(shorthand)f(when)g(the)h(common)g(pre\014x)f(of)h(the)g(strings)g -(to)150 1486 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s -(o)m(v)m(e)i(example:)390 1626 y Fs(mkdir)46 b -(/usr/local/src/bash/{old,n)o(ew,)o(dist)o(,bug)o(s})275 -1766 y Ft(or)390 1905 y Fs(chown)g(root)h(/usr/{ucb/{ex,edit},lib/)o -({ex?)o(.?*,)o(how)o(_ex})o(})150 2140 y Fk(3.5.2)63 -b(Tilde)41 b(Expansion)275 2390 y Ft(If)i(a)i(w)m(ord)e(b)s(egins)h -(with)f(an)h(unquoted)f(tilde)i(c)m(haracter)h(\(`)p -Fs(~)p Ft('\),)i(all)d(of)g(the)f(c)m(haracters)h(up)e(to)150 -2499 y(the)35 b(\014rst)f(unquoted)f(slash)i(\(or)g(all)g(c)m -(haracters,)i(if)e(there)g(is)f(no)h(unquoted)e(slash\))i(are)g -(considered)g(a)150 2609 y Fq(tilde-pre\014x)p Ft(.)55 -b(If)35 b(none)g(of)g(the)g(c)m(haracters)i(in)d(the)i(tilde-pre\014x)f -(are)g(quoted,)i(the)e(c)m(haracters)i(in)e(the)150 2719 -y(tilde-pre\014x)27 b(follo)m(wing)h(the)f(tilde)h(are)f(treated)h(as)f -(a)g(p)s(ossible)f Fq(login)i(name)p Ft(.)39 b(If)27 -b(this)f(login)i(name)f(is)g(the)150 2828 y(n)m(ull)k(string,)h(the)f -(tilde)h(is)g(replaced)g(with)f(the)g(v)-5 b(alue)32 -b(of)f(the)h Fs(HOME)e Ft(shell)h(v)-5 b(ariable.)45 -b(If)31 b Fs(HOME)f Ft(is)h(unset,)150 2938 y(the)37 -b(home)f(directory)h(of)g(the)f(user)g(executing)i(the)f(shell)f(is)h -(substituted)f(instead.)59 b(Otherwise,)38 b(the)150 -3047 y(tilde-pre\014x)30 b(is)h(replaced)g(with)f(the)g(home)h -(directory)g(asso)s(ciated)g(with)f(the)h(sp)s(eci\014ed)f(login)h -(name.)275 3187 y(If)h(the)h(tilde-pre\014x)f(is)h(`)p +y Fj(3.5.2)63 b(Tilde)41 b(Expansion)150 446 y Ft(If)29 +b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m +(haracter)h(\(`)p Fs(~)p Ft('\),)g(all)g(of)f(the)g(c)m(haracters)h(up) +d(to)j(the)f(\014rst)150 555 y(unquoted)23 b(slash)h(\(or)h(all)g(c)m +(haracters,)i(if)d(there)g(is)h(no)f(unquoted)f(slash\))h(are)h +(considered)f(a)g Fq(tilde-pre\014x)6 b Ft(.)150 665 +y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f +(are)h(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150 +775 y(follo)m(wing)28 b(the)f(tilde)g(are)g(treated)h(as)f(a)g(p)s +(ossible)f Fq(login)i(name)5 b Ft(.)40 b(If)26 b(this)g(login)i(name)f +(is)f(the)h(n)m(ull)g(string,)150 884 y(the)35 b(tilde)g(is)g(replaced) +g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g Fs(HOME)e +Ft(shell)i(v)-5 b(ariable.)54 b(If)34 b Fs(HOME)g Ft(is)h(unset,)g(the) +g(home)150 994 y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell) +h(is)f(substituted)g(instead.)47 b(Otherwise,)33 b(the)g +(tilde-pre\014x)150 1103 y(is)d(replaced)h(with)f(the)h(home)f +(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)e(login)j +(name.)275 1235 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p Fs(~+)p Ft(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5 b(ariable)34 b Fs(PWD)d Ft(replaces)j(the)f(tilde-pre\014x.)47 -b(If)150 3297 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p +b(If)150 1344 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p Ft(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5 b(ariable)31 b Fs(OLDPWD)p Ft(,)e(if)h(it)h(is)g(set,)g(is)f -(substituted.)275 3437 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the) -e(tilde)g(in)g(the)g(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s -(er)d Fq(N)p Ft(,)j(optionally)150 3546 y(pre\014xed)22 +(substituted.)275 1476 y(If)e(the)i(c)m(haracters)g(follo)m(wing)h(the) +e(tilde)h(in)f(the)g(tilde-pre\014x)h(consist)f(of)h(a)f(n)m(um)m(b)s +(er)f Fq(N)10 b Ft(,)30 b(optionally)150 1585 y(pre\014xed)22 b(b)m(y)h(a)h(`)p Fs(+)p Ft(')f(or)h(a)f(`)p Fs(-)p Ft(',)j(the)d (tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e -(elemen)m(t)j(from)e(the)150 3656 y(directory)36 b(stac)m(k,)i(as)e(it) +(elemen)m(t)j(from)e(the)150 1695 y(directory)36 b(stac)m(k,)i(as)e(it) g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f Fs(dirs)g Ft(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters) -150 3766 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g +150 1804 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g (an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m -(k],)150 3875 y(page)c(81\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans) +(k],)150 1914 y(page)c(81\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans) e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f -(leading)h(`)p Fs(+)p Ft(')g(or)150 3985 y(`)p Fs(-)p -Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 4125 y(If)e(the)i(login) +(leading)h(`)p Fs(+)p Ft(')g(or)150 2024 y(`)p Fs(-)p +Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 2155 y(If)e(the)i(login) g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f (fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275 -4265 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m +2286 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m (k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m -(wing)150 4374 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p +(wing)150 2396 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p Fs(=)p Ft('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g (also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37 -b(one)150 4484 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in) +b(one)150 2505 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in) g(assignmen)m(ts)h(to)g Fs(PATH)p Ft(,)f Fs(MAILPATH)p Ft(,)e(and)i Fs(CDPATH)p Ft(,)f(and)h(the)g(shell)150 -4593 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275 -4733 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h -(treats)g(unquoted)e(tilde-pre\014xes:)150 4901 y Fs(~)432 -b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)150 5066 -y(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')150 5230 y Fs(~fred/foo)630 -5340 y Ft(The)30 b(sub)s(directory)f Fs(foo)h Ft(of)g(the)h(home)f -(directory)h(of)g(the)f(user)g Fs(fred)p eop end -%%Page: 20 26 -TeXDict begin 20 25 bop 150 -116 a Ft(20)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(~+/foo)192 b Ft(`)p -Fs($PWD/foo)p Ft(')150 443 y Fs(~-/foo)g Ft(`)p Fs(${OLDPWD-'~-'}/foo)p -Ft(')150 587 y Fs(~)p Fj(N)384 b Ft(The)30 b(string)g(that)h(w)m(ould)f -(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p -Fj(N)11 b Ft(')150 732 y Fs(~+)p Fj(N)336 b Ft(The)30 -b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p -Fs(dirs)g(+)p Fj(N)11 b Ft(')150 876 y Fs(~-)p Fj(N)336 +2615 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275 +2746 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h +(treats)g(unquoted)e(tilde-pre\014xes:)150 2899 y Fs(~)432 +b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)150 3052 +y(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')150 3205 y Fs(~fred/foo)630 +3315 y Ft(The)30 b(sub)s(directory)f Fs(foo)h Ft(of)g(the)h(home)f +(directory)h(of)g(the)f(user)g Fs(fred)150 3468 y(~+/foo)192 +b Ft(`)p Fs($PWD/foo)p Ft(')150 3621 y Fs(~-/foo)g Ft(`)p +Fs(${OLDPWD-'~-'}/foo)p Ft(')150 3774 y Fs(~)p Fi(N)384 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m -(y)f(`)p Fs(dirs)g(-)p Fj(N)11 b Ft(')150 1077 y Fk(3.5.3)63 -b(Shell)41 b(P)m(arameter)f(Expansion)275 1314 y Ft(The)26 -b(`)p Fs($)p Ft(')i(c)m(haracter)h(in)m(tro)s(duces)e(parameter)h -(expansion,)g(command)f(substitution,)h(or)g(arithmetic)150 -1423 y(expansion.)38 b(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h -(to)g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i -(whic)m(h)150 1533 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect) -f(the)g(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m -(haracters)i(immediately)150 1643 y(follo)m(wing)g(it)f(whic)m(h)f -(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 -1769 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f -(brace)g(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m -(y)f(a)150 1879 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,) -j(and)c(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,) -150 1989 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275 -2116 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p +(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 3927 y Fs(~+)p +Fi(N)336 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m +(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fi(N)11 b Ft(')150 4080 +y Fs(~-)p Fi(N)336 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g +(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(-)p Fi(N)11 +b Ft(')150 4273 y Fj(3.5.3)63 b(Shell)41 b(P)m(arameter)f(Expansion)150 +4420 y Ft(The)g(`)p Fs($)p Ft(')h(c)m(haracter)i(in)m(tro)s(duces)d +(parameter)h(expansion,)j(command)d(substitution,)i(or)e(arithmetic)150 +4529 y(expansion.)d(The)22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to) +g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m +(h)150 4639 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g +(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i +(immediately)150 4749 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g +(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 4880 +y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f(brace)g +(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m(y)f(a) +150 4989 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c +(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)150 +5099 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275 +5230 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p Fs({)p Fq(parameter)7 b Fs(})p Ft(.)73 b(The)40 b(v)-5 -b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 2225 y(substituted.)43 +b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 5340 y(substituted.)43 b(The)31 b(braces)g(are)h(required)e(when)h Fq(parameter)38 -b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)150 -2335 y(than)h(one)g(digit,)i(or)e(when)g Fq(parameter)39 -b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter)h(that)e(is)h -(not)f(to)h(b)s(e)f(in)m(terpreted)150 2444 y(as)f(part)f(of)g(its)h -(name.)275 2571 y(If)26 b(the)i(\014rst)f(c)m(haracter)i(of)e -Fq(parameter)35 b Ft(is)27 b(an)g(exclamation)j(p)s(oin)m(t,)e(a)g(lev) -m(el)h(of)e(v)-5 b(ariable)29 b(indirection)150 2681 -y(is)38 b(in)m(tro)s(duced.)62 b(Bash)38 b(uses)f(the)h(v)-5 -b(alue)38 b(of)g(the)g(v)-5 b(ariable)39 b(formed)e(from)g(the)h(rest)g -(of)g Fq(parameter)45 b Ft(as)150 2790 y(the)32 b(name)h(of)f(the)h(v) --5 b(ariable;)34 b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f -(and)h(that)h(v)-5 b(alue)32 b(is)h(used)e(in)h(the)h(rest)150 -2900 y(of)h(the)f(substitution,)i(rather)e(than)g(the)h(v)-5 -b(alue)34 b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33 -b(is)g(kno)m(wn)g(as)h Fs(indirect)150 3010 y(expansion)p -Ft(.)81 b(The)44 b(exceptions)h(to)h(this)e(are)h(the)g(expansions)f -(of)h($)p Fs({)p Ft(!)p Fq(pre\014x*)8 b Fs(})43 b Ft(and)h($)p -Fs({)p Ft(!)p Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})150 -3119 y Ft(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28 -b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m(w)g(the)g -(left)f(brace)h(in)f(order)f(to)150 3229 y(in)m(tro)s(duce)i -(indirection.)275 3356 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m -(w,)i Fq(w)m(ord)h Ft(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j -(parameter)e(expansion,)150 3465 y(command)30 b(substitution,)g(and)g -(arithmetic)i(expansion.)275 3592 y(When)h(not)h(p)s(erforming)e +b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)p +eop end +%%Page: 20 26 +TeXDict begin 20 25 bop 150 -116 a Ft(20)2572 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y(than)h(one)g(digit,)i(or)e(when)g +Fq(parameter)39 b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter) +h(that)e(is)h(not)f(to)h(b)s(e)f(in)m(terpreted)150 408 +y(as)f(part)f(of)g(its)h(name.)275 553 y(If)c(the)g(\014rst)g(c)m +(haracter)i(of)f Fq(parameter)35 b Ft(is)27 b(an)h(exclamation)i(p)s +(oin)m(t)d(\(!\),)i(a)f(lev)m(el)i(of)d(v)-5 b(ariable)29 +b(indirec-)150 663 y(tion)e(is)f(in)m(tro)s(duced.)39 +b(Bash)27 b(uses)e(the)i(v)-5 b(alue)27 b(of)f(the)h(v)-5 +b(ariable)27 b(formed)f(from)g(the)g(rest)h(of)f Fq(parameter)34 +b Ft(as)150 772 y(the)e(name)h(of)f(the)h(v)-5 b(ariable;)34 +b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f(and)h(that)h(v)-5 +b(alue)32 b(is)h(used)e(in)h(the)h(rest)150 882 y(of)h(the)f +(substitution,)i(rather)e(than)g(the)h(v)-5 b(alue)34 +b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33 b(is)g(kno)m(wn)g(as)h +Fs(indirect)150 991 y(expansion)p Ft(.)45 b(The)32 b(exceptions)i(to)g +(this)e(are)h(the)g(expansions)g(of)g($)p Fs({)p Ft(!)p +Fq(pre\014x*)8 b Fs(})31 b Ft(and)i($)p Fs({)p Ft(!)p +Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})33 b Ft(de-)150 +1101 y(scrib)s(ed)h(b)s(elo)m(w.)56 b(The)35 b(exclamation)j(p)s(oin)m +(t)d(m)m(ust)g(immediately)i(follo)m(w)g(the)e(left)i(brace)e(in)g +(order)g(to)150 1210 y(in)m(tro)s(duce)30 b(indirection.)275 +1355 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i +Fq(w)m(ord)h Ft(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j +(parameter)e(expansion,)150 1465 y(command)30 b(substitution,)g(and)g +(arithmetic)i(expansion.)275 1609 y(When)h(not)h(p)s(erforming)e (substring)h(expansion,)h(using)f(the)h(form)f(describ)s(ed)g(b)s(elo)m -(w,)h(Bash)g(tests)150 3702 y(for)44 b(a)i(parameter)f(that)g(is)g +(w,)h(Bash)g(tests)150 1719 y(for)44 b(a)i(parameter)f(that)g(is)g (unset)f(or)h(n)m(ull.)84 b(Omitting)45 b(the)g(colon)h(results)e(in)g -(a)i(test)f(only)g(for)g(a)150 3811 y(parameter)36 b(that)f(is)g +(a)i(test)f(only)g(for)g(a)150 1828 y(parameter)36 b(that)f(is)g (unset.)55 b(Put)34 b(another)i(w)m(a)m(y)-8 b(,)38 b(if)d(the)g(colon) h(is)f(included,)h(the)f(op)s(erator)g(tests)h(for)150 -3921 y(b)s(oth)22 b Fq(parameter)7 b Ft('s)22 b(existence)i(and)e(that) +1938 y(b)s(oth)22 b Fq(parameter)7 b Ft('s)22 b(existence)i(and)e(that) h(its)g(v)-5 b(alue)23 b(is)g(not)f(n)m(ull;)k(if)c(the)h(colon)g(is)g -(omitted,)i(the)e(op)s(erator)150 4031 y(tests)31 b(only)g(for)f -(existence.)150 4175 y Fs(${)p Fj(parameter)11 b Fs(:)p -Fp(\000)p Fj(word)g Fs(})630 4284 y Ft(If)30 b Fq(parameter)37 +(omitted,)i(the)e(op)s(erator)150 2047 y(tests)31 b(only)g(for)f +(existence.)150 2222 y Fs(${)p Fi(parameter)11 b Fs(:)p +Fp(\000)p Fi(word)g Fs(})630 2331 y Ft(If)30 b Fq(parameter)37 b Ft(is)30 b(unset)g(or)h(n)m(ull,)f(the)h(expansion)f(of)g Fq(w)m(ord)k Ft(is)c(substituted.)40 b(Otherwise,)630 -4394 y(the)31 b(v)-5 b(alue)30 b(of)h Fq(parameter)37 -b Ft(is)31 b(substituted.)150 4538 y Fs(${)p Fj(parameter)11 -b Fs(:=)p Fj(word)g Fs(})630 4648 y Ft(If)33 b Fq(parameter)40 -b Ft(is)33 b(unset)f(or)h(n)m(ull,)h(the)f(expansion)g(of)g -Fq(w)m(ord)j Ft(is)d(assigned)g(to)h Fq(parameter)p Ft(.)630 -4757 y(The)c(v)-5 b(alue)32 b(of)f Fq(parameter)38 b -Ft(is)31 b(then)g(substituted.)42 b(P)m(ositional)33 -b(parameters)e(and)f(sp)s(ecial)630 4867 y(parameters)h(ma)m(y)g(not)f +2441 y(the)31 b(v)-5 b(alue)30 b(of)h Fq(parameter)37 +b Ft(is)31 b(substituted.)150 2610 y Fs(${)p Fi(parameter)11 +b Fs(:=)p Fi(word)g Fs(})630 2720 y Ft(If)32 b Fq(parameter)40 +b Ft(is)32 b(unset)g(or)h(n)m(ull,)g(the)f(expansion)h(of)f +Fq(w)m(ord)k Ft(is)d(assigned)f(to)i Fq(parameter)7 b +Ft(.)630 2829 y(The)30 b(v)-5 b(alue)32 b(of)f Fq(parameter)38 +b Ft(is)31 b(then)g(substituted.)42 b(P)m(ositional)33 +b(parameters)e(and)f(sp)s(ecial)630 2939 y(parameters)h(ma)m(y)g(not)f (b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150 -5011 y Fs(${)p Fj(parameter)11 b Fs(:?)p Fj(word)g Fs(})630 -5121 y Ft(If)26 b Fq(parameter)33 b Ft(is)26 b(n)m(ull)g(or)g(unset,)h +3108 y Fs(${)p Fi(parameter)11 b Fs(:?)p Fi(word)g Fs(})630 +3218 y Ft(If)26 b Fq(parameter)33 b Ft(is)26 b(n)m(ull)g(or)g(unset,)h (the)f(expansion)g(of)g Fq(w)m(ord)k Ft(\(or)c(a)h(message)g(to)g(that) -f(e\013ect)630 5230 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h +f(e\013ect)630 3328 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h (is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f -(it)h(is)f(not)630 5340 y(in)m(teractiv)m(e,)33 b(exits.)42 +(it)h(is)f(not)630 3437 y(in)m(teractiv)m(e,)33 b(exits.)42 b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fq(parameter)38 -b Ft(is)30 b(substituted.)p eop end +b Ft(is)30 b(substituted.)150 3606 y Fs(${)p Fi(parameter)11 +b Fs(:+)p Fi(word)g Fs(})630 3716 y Ft(If)35 b Fq(parameter)42 +b Ft(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i +(otherwise)e(the)h(expansion)630 3826 y(of)31 b Fq(w)m(ord)i +Ft(is)e(substituted.)150 3995 y Fs(${)p Fi(parameter)11 +b Fs(:)p Fi(offset)g Fs(})150 4105 y(${)p Fi(parameter)g +Fs(:)p Fi(offset)g Fs(:)p Fi(le)o(ngt)o(h)g Fs(})630 +4214 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g Ft(c)m(haracters)h +(of)e Fq(parameter)53 b Ft(starting)46 b(at)g(the)f(c)m(haracter)630 +4324 y(sp)s(eci\014ed)30 b(b)m(y)g Fq(o\013set)r Ft(.)43 +b(If)30 b Fq(length)h Ft(is)g(omitted,)g(expands)f(to)h(the)g +(substring)f(of)g Fq(parameter)630 4433 y Ft(starting)38 +b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)d(b)m(y)h +Fq(o\013set)r Ft(.)62 b Fq(length)38 b Ft(and)e Fq(o\013set)k +Ft(are)e(arithmetic)630 4543 y(expressions)30 b(\(see)i(Section)g(6.5)g +([Shell)f(Arithmetic],)h(page)g(78\).)43 b(This)30 b(is)h(referred)f +(to)i(as)630 4653 y(Substring)d(Expansion.)630 4792 y +Fq(length)j Ft(m)m(ust)f(ev)-5 b(aluate)33 b(to)f(a)g(n)m(um)m(b)s(er)e +(greater)i(than)f(or)g(equal)h(to)g(zero.)45 b(If)30 +b Fq(o\013set)35 b Ft(ev)-5 b(al-)630 4902 y(uates)36 +b(to)h(a)f(n)m(um)m(b)s(er)e(less)i(than)f(zero,)j(the)e(v)-5 +b(alue)36 b(is)g(used)f(as)g(an)h(o\013set)h(from)e(the)h(end)630 +5011 y(of)h(the)g(v)-5 b(alue)38 b(of)f Fq(parameter)7 +b Ft(.)61 b(If)36 b Fq(parameter)44 b Ft(is)37 b(`)p +Fs(@)p Ft(',)i(the)f(result)f(is)g Fq(length)g Ft(p)s(ositional)630 +5121 y(parameters)i(b)s(eginning)f(at)i Fq(o\013set)r +Ft(.)67 b(If)39 b Fq(parameter)45 b Ft(is)39 b(an)g(indexed)g(arra)m(y) +g(name)g(sub-)630 5230 y(scripted)34 b(b)m(y)g(`)p Fs(@)p +Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(result)g(is)g(the)g +Fq(length)h Ft(mem)m(b)s(ers)e(of)h(the)g(arra)m(y)h(b)s(eginning)630 +5340 y(with)25 b Fs(${)p Fi(parameter)11 b Fs([)p Fi(offset)g +Fs(]})p Ft(.)33 b(A)25 b(negativ)m(e)j Fq(o\013set)g +Ft(is)e(tak)m(en)g(relativ)m(e)i(to)e(one)g(greater)p +eop end %%Page: 21 27 TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299 -y Fs(${)p Fj(parameter)11 b Fs(:+)p Fj(word)g Fs(})630 -408 y Ft(If)35 b Fq(parameter)42 b Ft(is)36 b(n)m(ull)f(or)h(unset,)g -(nothing)g(is)f(substituted,)i(otherwise)e(the)h(expansion)630 -518 y(of)31 b Fq(w)m(ord)i Ft(is)e(substituted.)150 664 -y Fs(${)p Fj(parameter)11 b Fs(:)p Fj(offset)g Fs(})150 -774 y(${)p Fj(parameter)g Fs(:)p Fj(offset)g Fs(:)p Fj(le)o(ngt)o(h)g -Fs(})630 883 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g -Ft(c)m(haracters)h(of)e Fq(parameter)53 b Ft(starting)46 -b(at)g(the)f(c)m(haracter)630 993 y(sp)s(eci\014ed)30 -b(b)m(y)h Fq(o\013set)p Ft(.)42 b(If)31 b Fq(length)g -Ft(is)g(omitted,)h(expands)e(to)h(the)g(substring)f(of)g -Fq(parameter)630 1103 y Ft(starting)38 b(at)g(the)f(c)m(haracter)i(sp)s -(eci\014ed)e(b)m(y)g Fq(o\013set)p Ft(.)62 b Fq(length)38 -b Ft(and)f Fq(o\013set)j Ft(are)e(arithmetic)630 1212 -y(expressions)30 b(\(see)i(Section)g(6.5)g([Shell)f(Arithmetic],)h -(page)g(78\).)43 b(This)30 b(is)h(referred)f(to)i(as)630 -1322 y(Substring)d(Expansion.)630 1450 y Fq(length)j -Ft(m)m(ust)f(ev)-5 b(aluate)33 b(to)f(a)g(n)m(um)m(b)s(er)e(greater)i -(than)f(or)g(equal)h(to)g(zero.)45 b(If)30 b Fq(o\013set)35 -b Ft(ev)-5 b(al-)630 1559 y(uates)36 b(to)h(a)f(n)m(um)m(b)s(er)e(less) -i(than)f(zero,)j(the)e(v)-5 b(alue)36 b(is)g(used)f(as)g(an)h(o\013set) -h(from)e(the)h(end)630 1669 y(of)i(the)f(v)-5 b(alue)38 -b(of)g Fq(parameter)p Ft(.)62 b(If)37 b Fq(parameter)45 -b Ft(is)37 b(`)p Fs(@)p Ft(',)j(the)d(result)h(is)f Fq(length)h -Ft(p)s(ositional)630 1778 y(parameters)h(b)s(eginning)g(at)g -Fq(o\013set)p Ft(.)68 b(If)39 b Fq(parameter)46 b Ft(is)39 -b(an)g(indexed)f(arra)m(y)i(name)f(sub-)630 1888 y(scripted)34 -b(b)m(y)g(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(result)g(is)g -(the)g Fq(length)h Ft(mem)m(b)s(ers)e(of)h(the)g(arra)m(y)h(b)s -(eginning)630 1998 y(with)25 b Fs(${)p Fj(parameter)11 -b Fs([)p Fj(offset)g Fs(]})p Ft(.)33 b(A)25 b(negativ)m(e)j -Fq(o\013set)g Ft(is)e(tak)m(en)g(relativ)m(e)i(to)e(one)g(greater)630 -2107 y(than)g(the)h(maxim)m(um)f(index)g(of)g(the)h(sp)s(eci\014ed)f +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)630 299 +y(than)26 b(the)h(maxim)m(um)f(index)g(of)g(the)h(sp)s(eci\014ed)f (arra)m(y)-8 b(.)40 b(Substring)25 b(expansion)h(applied)g(to)630 -2217 y(an)k(asso)s(ciativ)m(e)j(arra)m(y)e(pro)s(duces)e(unde\014ned)f -(results.)630 2345 y(Note)37 b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m +408 y(an)k(asso)s(ciativ)m(e)j(arra)m(y)e(pro)s(duces)e(unde\014ned)f +(results.)630 548 y(Note)37 b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m (ust)f(b)s(e)f(separated)h(from)f(the)h(colon)h(b)m(y)e(at)i(least)g -(one)630 2454 y(space)g(to)g(a)m(v)m(oid)g(b)s(eing)f(confused)f(with)h +(one)630 658 y(space)g(to)g(a)m(v)m(oid)g(b)s(eing)f(confused)f(with)h (the)h(`)p Fs(:-)p Ft(')f(expansion.)57 b(Substring)35 -b(indexing)h(is)630 2564 y(zero-based)24 b(unless)f(the)h(p)s -(ositional)g(parameters)g(are)g(used,)g(in)g(whic)m(h)f(case)h(the)g -(indexing)630 2673 y(starts)30 b(at)g(1)f(b)m(y)h(default.)40 -b(If)29 b Fq(o\013set)j Ft(is)e(0,)g(and)f(the)g(p)s(ositional)h -(parameters)g(are)g(used,)f Fs($@)630 2783 y Ft(is)h(pre\014xed)g(to)h -(the)f(list.)150 2929 y Fs(${!)p Fj(prefix)11 b Fs(*})150 -3039 y(${!)p Fj(prefix)g Fs(@})630 3148 y Ft(Expands)24 -b(to)h(the)g(names)g(of)g(v)-5 b(ariables)26 b(whose)f(names)f(b)s -(egin)h(with)f Fq(pre\014x)p Ft(,)i(separated)f(b)m(y)630 -3258 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Fs(IFS)f +b(indexing)h(is)630 767 y(zero-based)24 b(unless)f(the)h(p)s(ositional) +g(parameters)g(are)g(used,)g(in)g(whic)m(h)f(case)h(the)g(indexing)630 +877 y(starts)30 b(at)g(1)f(b)m(y)h(default.)40 b(If)29 +b Fq(o\013set)j Ft(is)e(0,)g(and)f(the)g(p)s(ositional)h(parameters)g +(are)g(used,)f Fs($@)630 986 y Ft(is)h(pre\014xed)g(to)h(the)f(list.) +150 1156 y Fs(${!)p Fi(prefix)11 b Fs(*})150 1265 y(${!)p +Fi(prefix)g Fs(@})630 1375 y Ft(Expands)23 b(to)i(the)g(names)f(of)h(v) +-5 b(ariables)25 b(whose)f(names)g(b)s(egin)g(with)g +Fq(pre\014x)6 b Ft(,)25 b(separated)g(b)m(y)630 1484 +y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Fs(IFS)f Ft(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Fs(@)p -Ft(')g(is)g(used)f(and)h(the)g(expan-)630 3367 y(sion)35 +Ft(')g(is)g(used)f(and)h(the)g(expan-)630 1594 y(sion)35 b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5 b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630 -3477 y(w)m(ord.)150 3623 y Fs(${!)p Fj(name)11 b Fs([@]})150 -3733 y(${!)p Fj(name)g Fs([*]})630 3842 y Ft(If)26 b +1704 y(w)m(ord.)150 1873 y Fs(${!)p Fi(name)11 b Fs([@]})150 +1983 y(${!)p Fi(name)g Fs([*]})630 2092 y Ft(If)26 b Fq(name)32 b Ft(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29 b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h -(assigned)630 3952 y(in)c Fq(name)p Ft(.)39 b(If)24 b -Fq(name)30 b Ft(is)24 b(not)h(an)f(arra)m(y)-8 b(,)27 -b(expands)c(to)j(0)f(if)f Fq(name)30 b Ft(is)24 b(set)h(and)f(n)m(ull)g -(otherwise.)630 4061 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f +(assigned)630 2202 y(in)c Fq(name)5 b Ft(.)39 b(If)23 +b Fq(name)30 b Ft(is)24 b(not)g(an)g(arra)m(y)-8 b(,)27 +b(expands)c(to)i(0)f(if)h Fq(name)k Ft(is)24 b(set)h(and)e(n)m(ull)h +(otherwise.)630 2311 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f (the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d -(k)m(ey)630 4171 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 -4317 y Fs(${#)p Fj(parameter)11 b Fs(})630 4427 y Ft(The)40 +(k)m(ey)630 2421 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 +2590 y Fs(${#)p Fi(parameter)11 b Fs(})630 2700 y Ft(The)40 b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5 b(alue)41 b(of)f Fq(parameter)47 b Ft(is)40 b(substituted.)630 -4536 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p +2809 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p Fs(@)p Ft(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m -(b)s(er)f(of)h(p)s(ositional)630 4646 y(parameters.)i(If)32 +(b)s(er)f(of)h(p)s(ositional)630 2919 y(parameters.)i(If)32 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m (y)g(`)p Fs(*)p Ft(')h(or)g(`)p Fs(@)p Ft(',)g(the)g(v)-5 -b(alue)630 4755 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h -(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)150 4902 y -Fs(${)p Fj(parameter)11 b Fs(#)p Fj(word)g Fs(})150 5011 -y(${)p Fj(parameter)g Fs(##)p Fj(word)g Fs(})630 5121 +b(alue)630 3029 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h +(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)150 3198 y +Fs(${)p Fi(parameter)11 b Fs(#)p Fi(word)g Fs(})150 3308 +y(${)p Fi(parameter)g Fs(##)p Fi(word)g Fs(})630 3417 y Ft(The)31 b Fq(w)m(ord)k Ft(is)d(expanded)f(to)i(pro)s(duce)e(a)h (pattern)g(just)f(as)i(in)e(\014lename)h(expansion)g(\(see)630 -5230 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(24\).)56 +3527 y(Section)k(3.5.8)h([Filename)g(Expansion],)g(page)f(24\).)56 b(If)35 b(the)h(pattern)f(matc)m(hes)i(the)e(b)s(e-)630 -5340 y(ginning)28 b(of)g(the)h(expanded)e(v)-5 b(alue)29 -b(of)f Fq(parameter)p Ft(,)h(then)f(the)g(result)g(of)h(the)f -(expansion)g(is)p eop end -%%Page: 22 28 -TeXDict begin 22 27 bop 150 -116 a Ft(22)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(the)36 b(expanded)f(v)-5 -b(alue)36 b(of)g Fq(parameter)43 b Ft(with)35 b(the)h(shortest)g(matc)m -(hing)h(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 408 y(case\))26 -b(or)f(the)g(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p -Fs(##)p Ft(')g(case\))h(deleted.)39 b(If)24 b Fq(parameter)32 -b Ft(is)25 b(`)p Fs(@)p Ft(')630 518 y(or)j(`)p Fs(*)p +3636 y(ginning)g(of)g(the)g(expanded)f(v)-5 b(alue)36 +b(of)f Fq(parameter)7 b Ft(,)36 b(then)f(the)g(result)g(of)g(the)g +(expansion)630 3746 y(is)28 b(the)g(expanded)e(v)-5 b(alue)28 +b(of)g Fq(parameter)35 b Ft(with)27 b(the)h(shortest)g(matc)m(hing)h +(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 3856 y(case\))e(or)f(the)g +(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p Fs(##)p +Ft(')g(case\))h(deleted.)39 b(If)24 b Fq(parameter)32 +b Ft(is)25 b(`)p Fs(@)p Ft(')630 3965 y(or)j(`)p Fs(*)p Ft(',)i(the)e(pattern)h(remo)m(v)-5 b(al)29 b(op)s(eration)g(is)f (applied)h(to)g(eac)m(h)g(p)s(ositional)g(parameter)g(in)630 -628 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.) +4075 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.) 45 b(If)32 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(v)-5 -b(ariable)630 737 y(subscripted)39 b(with)g(`)p Fs(@)p +b(ariable)630 4184 y(subscripted)39 b(with)g(`)p Fs(@)p Ft(')h(or)g(`)p Fs(*)p Ft(',)j(the)d(pattern)h(remo)m(v)-5 b(al)41 b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)630 -847 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h -(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 993 -y Fs(${)p Fj(parameter)11 b Fs(\045)p Fj(word)g Fs(})150 -1103 y(${)p Fj(parameter)g Fs(\045\045)p Fj(word)g Fs(})630 -1212 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a) +4294 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h +(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 4463 +y Fs(${)p Fi(parameter)11 b Fs(\045)p Fi(word)g Fs(})150 +4573 y(${)p Fi(parameter)g Fs(\045\045)p Fi(word)g Fs(})630 +4682 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a) i(pattern)f(just)g(as)h(in)f(\014lename)h(expansion.)55 -b(If)630 1322 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s -(ortion)e(of)h(the)g(expanded)g(v)-5 b(alue)43 b(of)g -Fq(parameter)p Ft(,)630 1431 y(then)c(the)g(result)g(of)h(the)f +b(If)630 4792 y(the)43 b(pattern)f(matc)m(hes)i(a)e(trailing)i(p)s +(ortion)e(of)g(the)h(expanded)e(v)-5 b(alue)43 b(of)g +Fq(parameter)7 b Ft(,)630 4902 y(then)39 b(the)g(result)g(of)h(the)f (expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fq(parameter)46 -b Ft(with)39 b(the)h(shortest)630 1541 y(matc)m(hing)31 +b Ft(with)39 b(the)h(shortest)630 5011 y(matc)m(hing)31 b(pattern)e(\(the)h(`)p Fs(\045)p Ft(')g(case\))h(or)e(the)h(longest)h (matc)m(hing)f(pattern)g(\(the)g(`)p Fs(\045\045)p Ft(')g(case\))630 -1650 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33 +5121 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33 b(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(pattern)g(remo)m(v)-5 -b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 1760 y(eac)m(h)38 +b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 5230 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h -(the)f(resultan)m(t)h(list.)61 b(If)630 1870 y Fq(parameter)38 +(the)f(resultan)m(t)h(list.)61 b(If)630 5340 y Fq(parameter)38 b Ft(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h (`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)g(the)f(pattern)h(remo)m(v)-5 -b(al)630 1979 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m -(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g -(is)630 2089 y(the)h(resultan)m(t)g(list.)150 2235 y -Fs(${)p Fj(parameter)11 b Fs(/)p Fj(pattern)g Fs(/)p -Fj(s)o(tri)o(ng)f Fs(})630 2345 y Ft(The)37 b Fq(pattern)g +b(al)p eop end +%%Page: 22 28 +TeXDict begin 22 27 bop 150 -116 a Ft(22)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y(op)s(eration)f(is)g(applied)f(to)i +(eac)m(h)g(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the) +h(expansion)g(is)630 408 y(the)h(resultan)m(t)g(list.)150 +579 y Fs(${)p Fi(parameter)11 b Fs(/)p Fi(pattern)g Fs(/)p +Fi(s)o(tri)o(ng)f Fs(})630 688 y Ft(The)37 b Fq(pattern)g Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e -(\014lename)i(expansion.)630 2454 y Fq(P)m(arameter)46 +(\014lename)i(expansion.)630 798 y Fq(P)m(arameter)46 b Ft(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f Fq(pattern)g Ft(against)h(its)f(v)-5 b(alue)39 b(is)630 -2564 y(replaced)34 b(with)e Fq(string)p Ft(.)49 b(If)33 -b Fq(pattern)g Ft(b)s(egins)g(with)f(`)p Fs(/)p Ft(',)j(all)f(matc)m -(hes)g(of)f Fq(pattern)g Ft(are)h(re-)630 2673 y(placed)28 -b(with)f Fq(string)p Ft(.)40 b(Normally)28 b(only)f(the)h(\014rst)e -(matc)m(h)j(is)e(replaced.)40 b(If)27 b Fq(pattern)g -Ft(b)s(egins)630 2783 y(with)34 b(`)p Fs(#)p Ft(',)h(it)g(m)m(ust)f -(matc)m(h)h(at)f(the)h(b)s(eginning)e(of)h(the)g(expanded)f(v)-5 -b(alue)35 b(of)f Fq(parameter)p Ft(.)630 2892 y(If)g -Fq(pattern)g Ft(b)s(egins)g(with)g(`)p Fs(\045)p Ft(',)h(it)g(m)m(ust)f -(matc)m(h)h(at)g(the)f(end)g(of)g(the)h(expanded)e(v)-5 -b(alue)35 b(of)630 3002 y Fq(parameter)p Ft(.)41 b(If)29 -b Fq(string)37 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)h(of)e -Fq(pattern)h Ft(are)g(deleted)g(and)f(the)g Fs(/)g Ft(follo)m(wing)630 -3112 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f(omitted.)51 +908 y(replaced)33 b(with)f Fq(string)8 b Ft(.)47 b(If)33 +b Fq(pattern)f Ft(b)s(egins)g(with)h(`)p Fs(/)p Ft(',)g(all)h(matc)m +(hes)f(of)g Fq(pattern)g Ft(are)g(re-)630 1017 y(placed)27 +b(with)f Fq(string)8 b Ft(.)40 b(Normally)27 b(only)g(the)g(\014rst)f +(matc)m(h)h(is)g(replaced.)40 b(If)26 b Fq(pattern)g +Ft(b)s(egins)630 1127 y(with)33 b(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f +(matc)m(h)i(at)f(the)g(b)s(eginning)f(of)g(the)h(expanded)f(v)-5 +b(alue)34 b(of)g Fq(parameter)7 b Ft(.)630 1236 y(If)34 +b Fq(pattern)g Ft(b)s(egins)g(with)g(`)p Fs(\045)p Ft(',)h(it)g(m)m +(ust)f(matc)m(h)h(at)g(the)f(end)g(of)g(the)h(expanded)e(v)-5 +b(alue)35 b(of)630 1346 y Fq(parameter)7 b Ft(.)40 b(If)29 +b Fq(string)36 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)g(of)f +Fq(pattern)g Ft(are)g(deleted)h(and)e(the)h Fs(/)f Ft(follo)m(wing)630 +1455 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f(omitted.)51 b(If)33 b Fq(parameter)41 b Ft(is)33 b(`)p Fs(@)p Ft(')h(or)g(`)p Fs(*)p Ft(',)g(the)g(substitution)f(op)s(eration)630 -3221 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in) +1565 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in) g(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630 -3331 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43 +1675 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43 b Ft(is)36 b(an)g(arra)m(y)h(v)-5 b(ariable)37 b(subscripted)e(with)h -(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 3440 +(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 1784 y(substitution)30 b(op)s(eration)h(is)f(applied)g(to)h(eac)m(h)g(mem)m (b)s(er)f(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)630 -3550 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150 -3696 y Fs(${)p Fj(parameter)11 b Fs(^)p Fj(pattern)g -Fs(})150 3806 y(${)p Fj(parameter)g Fs(^^)p Fj(pattern)g -Fs(})150 3915 y(${)p Fj(parameter)p Fs(,)p Fj(pattern)g -Fs(})150 4025 y(${)p Fj(parameter)p Fs(,,)p Fj(pattern)g -Fs(})630 4134 y Ft(This)36 b(expansion)g(mo)s(di\014es)g(the)g(case)i -(of)f(alphab)s(etic)g(c)m(haracters)h(in)e Fq(parameter)p -Ft(.)59 b(The)630 4244 y Fq(pattern)31 b Ft(is)g(expanded)f(to)h(pro)s -(duce)f(a)h(pattern)g(just)f(as)h(in)g(pathname)g(expansion.)41 -b(The)630 4354 y(`)p Fs(^)p Ft(')36 b(op)s(erator)g(con)m(v)m(erts)h +1894 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150 +2064 y Fs(${)p Fi(parameter)11 b Fs(^)p Fi(pattern)g +Fs(})150 2174 y(${)p Fi(parameter)g Fs(^^)p Fi(pattern)g +Fs(})150 2283 y(${)p Fi(parameter)g Fs(,)p Fi(pattern)g +Fs(})150 2393 y(${)p Fi(parameter)g Fs(,,)p Fi(pattern)g +Fs(})630 2502 y Ft(This)35 b(expansion)h(mo)s(di\014es)f(the)h(case)h +(of)f(alphab)s(etic)h(c)m(haracters)g(in)f Fq(parameter)7 +b Ft(.)57 b(The)630 2612 y Fq(pattern)36 b Ft(is)f(expanded)g(to)h(pro) +s(duce)e(a)i(pattern)g(just)f(as)h(in)f(\014lename)g(expansion.)56 +b(The)630 2722 y(`)p Fs(^)p Ft(')36 b(op)s(erator)g(con)m(v)m(erts)h (lo)m(w)m(ercase)h(letters)f(matc)m(hing)g Fq(pattern)f -Ft(to)g(upp)s(ercase;)i(the)e(`)p Fs(,)p Ft(')630 4463 +Ft(to)g(upp)s(ercase;)i(the)e(`)p Fs(,)p Ft(')630 2831 y(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s(ercase)e(letters)i (to)g(lo)m(w)m(ercase.)59 b(The)36 b(`)p Fs(^^)p Ft(')g(and)f(`)p -Fs(,,)p Ft(')630 4573 y(expansions)c(con)m(v)m(ert)i(eac)m(h)g(matc)m +Fs(,,)p Ft(')630 2941 y(expansions)c(con)m(v)m(ert)i(eac)m(h)g(matc)m (hed)f(c)m(haracter)h(in)e(the)h(expanded)f(v)-5 b(alue;)32 -b(the)g(`)p Fs(^)p Ft(')g(and)630 4682 y(`)p Fs(,)p Ft(')24 +b(the)g(`)p Fs(^)p Ft(')g(and)630 3050 y(`)p Fs(,)p Ft(')24 b(expansions)f(matc)m(h)i(and)e(con)m(v)m(ert)j(only)d(the)h(\014rst)f (c)m(haracter)j(in)d(the)h(expanded)f(v)-5 b(alue.)630 -4792 y(If)31 b Fq(pattern)g Ft(is)g(omitted,)i(it)f(is)f(treated)h(lik) +3160 y(If)31 b Fq(pattern)g Ft(is)g(omitted,)i(it)f(is)f(treated)h(lik) m(e)h(a)e(`)p Fs(?)p Ft(',)h(whic)m(h)f(matc)m(hes)i(ev)m(ery)f(c)m -(haracter.)44 b(If)630 4902 y Fq(parameter)37 b Ft(is)31 +(haracter.)44 b(If)630 3270 y Fq(parameter)37 b Ft(is)31 b(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)f(the)h(case)g(mo)s (di\014cation)g(op)s(eration)g(is)f(applied)g(to)i(eac)m(h)f(p)s(osi-) -630 5011 y(tional)26 b(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f +630 3379 y(tional)26 b(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f (is)g(the)h(resultan)m(t)g(list.)40 b(If)23 b Fq(parameter)32 -b Ft(is)630 5121 y(an)e(arra)m(y)g(v)-5 b(ariable)31 +b Ft(is)630 3489 y(an)e(arra)m(y)g(v)-5 b(ariable)31 b(subscripted)d(with)i(`)p Fs(@)p Ft(')g(or)f(`)p Fs(*)p Ft(',)i(the)f(case)g(mo)s(di\014cation)h(op)s(eration)f(is)630 -5230 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g +3598 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g (in)g(turn,)g(and)f(the)h(expansion)f(is)h(the)g(resultan)m(t)630 -5340 y(list.)p eop end -%%Page: 23 29 -TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299 -y Fk(3.5.4)63 b(Command)41 b(Substitution)275 543 y Ft(Command)29 -b(substitution)i(allo)m(ws)h(the)f(output)g(of)g(a)g(command)g(to)g -(replace)h(the)f(command)g(itself.)150 653 y(Command)e(substitution)h -(o)s(ccurs)h(when)e(a)i(command)f(is)g(enclosed)h(as)g(follo)m(ws:)390 -788 y Fs($\()p Fj(command)11 b Fs(\))150 922 y Ft(or)390 -1057 y Fs(`)p Fj(command)g Fs(`)150 1192 y Ft(Bash)45 -b(p)s(erforms)f(the)h(expansion)f(b)m(y)h(executing)i -Fq(command)h Ft(and)c(replacing)i(the)f(command)g(sub-)150 -1301 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g +3708 y(list.)150 3918 y Fj(3.5.4)63 b(Command)41 b(Substitution)150 +4065 y Ft(Command)f(substitution)h(allo)m(ws)i(the)e(output)g(of)h(a)f +(command)g(to)h(replace)g(the)g(command)f(itself.)150 +4175 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is) +g(enclosed)h(as)g(follo)m(ws:)390 4320 y Fs($\()p Fi(command)11 +b Fs(\))150 4465 y Ft(or)390 4611 y Fs(`)p Fi(command)g +Fs(`)150 4756 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h +(executing)i Fq(command)h Ft(and)c(replacing)i(the)f(command)g(sub-)150 +4866 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g (command,)j(with)d(an)m(y)h(trailing)g(newlines)f(deleted.)150 -1411 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e +4975 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e (they)g(ma)m(y)h(b)s(e)f(remo)m(v)m(ed)i(during)d(w)m(ord)h(splitting.) -44 b(The)150 1520 y(command)21 b(substitution)g Fs($\(cat)29 -b Fj(file)11 b Fs(\))20 b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g +44 b(The)150 5085 y(command)21 b(substitution)g Fs($\(cat)29 +b Fi(file)11 b Fs(\))20 b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g (equiv)-5 b(alen)m(t)22 b(but)f(faster)h Fs($\(<)30 b -Fj(file)11 b Fs(\))p Ft(.)275 1655 y(When)33 b(the)i(old-st)m(yle)h +Fi(file)11 b Fs(\))p Ft(.)275 5230 y(When)33 b(the)i(old-st)m(yle)h (bac)m(kquote)f(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f -(retains)h(its)f(literal)150 1765 y(meaning)k(except)h(when)e(follo)m +(retains)h(its)f(literal)150 5340 y(meaning)k(except)h(when)e(follo)m (w)m(ed)j(b)m(y)e(`)p Fs($)p Ft(',)j(`)p Fs(`)p Ft(',)f(or)e(`)p Fs(\\)p Ft('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g -(b)m(y)g(a)150 1874 y(bac)m(kslash)j(terminates)g(the)f(command)g -(substitution.)69 b(When)40 b(using)g(the)g Fs($\()p -Fj(command)11 b Fs(\))37 b Ft(form,)42 b(all)150 1984 -y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e) -g(up)f(the)g(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8 -b(.)275 2119 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39 -b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g -(escap)s(e)150 2228 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m -(kslashes.)275 2363 y(If)e(the)i(substitution)e(app)s(ears)h(within)g -(double)f(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion) -150 2473 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150 -2697 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)275 2942 -y Ft(Arithmetic)33 b(expansion)f(allo)m(ws)i(the)e(ev)-5 -b(aluation)34 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g -(substi-)150 3051 y(tution)f(of)f(the)h(result.)40 b(The)30 -b(format)h(for)f(arithmetic)i(expansion)e(is:)390 3186 -y Fs($\(\()47 b Fj(expression)55 b Fs(\)\))275 3321 y +(b)m(y)g(a)p eop end +%%Page: 23 29 +TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299 +y(bac)m(kslash)41 b(terminates)g(the)f(command)g(substitution.)69 +b(When)40 b(using)g(the)g Fs($\()p Fi(command)11 b Fs(\))37 +b Ft(form,)42 b(all)150 408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f +(the)f(paren)m(theses)h(mak)m(e)g(up)f(the)g(command;)h(none)f(are)h +(treated)g(sp)s(ecially)-8 b(.)275 543 y(Command)22 b(substitutions)g +(ma)m(y)i(b)s(e)e(nested.)39 b(T)-8 b(o)23 b(nest)g(when)f(using)h(the) +g(bac)m(kquoted)h(form,)g(escap)s(e)150 653 y(the)31 +b(inner)e(bac)m(kquotes)j(with)e(bac)m(kslashes.)275 +787 y(If)e(the)i(substitution)e(app)s(ears)h(within)g(double)f(quotes,) +i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)150 +897 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150 +1096 y Fj(3.5.5)63 b(Arithmetic)40 b(Expansion)150 1243 +y Ft(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5 +b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g +(substitution)150 1353 y(of)31 b(the)f(result.)41 b(The)30 +b(format)g(for)g(arithmetic)i(expansion)e(is:)390 1488 +y Fs($\(\()47 b Fi(expression)55 b Fs(\)\))275 1622 y Ft(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g (within)f(double)h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150 -3430 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8 +1732 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8 b(.)41 b(All)27 b(tok)m(ens)h(in)e(the)h(expression)g(undergo)f -(parameter)h(ex-)150 3540 y(pansion,)h(command)f(substitution,)h(and)f +(parameter)h(ex-)150 1841 y(pansion,)h(command)f(substitution,)h(and)f (quote)i(remo)m(v)-5 b(al.)41 b(Arithmetic)28 b(expansions)g(ma)m(y)g -(b)s(e)f(nested.)275 3675 y(The)34 b(ev)-5 b(aluation)37 +(b)s(e)f(nested.)275 1976 y(The)34 b(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m -(w)g(\(see)g(Section)g(6.5)h([Shell)150 3784 y(Arithmetic],)32 +(w)g(\(see)g(Section)g(6.5)h([Shell)150 2086 y(Arithmetic],)32 b(page)f(78\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5 b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150 -3894 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s -(ccurs.)150 4118 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)275 -4363 y Ft(Pro)s(cess)33 b(substitution)h(is)g(supp)s(orted)e(on)h -(systems)h(that)h(supp)s(ort)d(named)h(pip)s(es)g(\()p -Fl(fif)n(o)p Ft(s\))h(or)g(the)150 4472 y(`)p Fs(/dev/fd)p -Ft(')29 b(metho)s(d)h(of)g(naming)g(op)s(en)g(\014les.)41 -b(It)30 b(tak)m(es)i(the)f(form)f(of)390 4607 y Fs(<\()p -Fj(list)11 b Fs(\))150 4742 y Ft(or)390 4876 y Fs(>\()p -Fj(list)g Fs(\))150 5011 y Ft(The)23 b(pro)s(cess)g Fq(list)j -Ft(is)d(run)f(with)h(its)h(input)f(or)g(output)g(connected)h(to)h(a)e -Fl(fif)n(o)g Ft(or)h(some)g(\014le)f(in)g(`)p Fs(/dev/fd)p -Ft('.)150 5121 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as) -h(an)f(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)f(the)h -(result)g(of)g(the)150 5230 y(expansion.)40 b(If)28 b(the)h -Fs(>\()p Fj(list)11 b Fs(\))26 b Ft(form)i(is)h(used,)f(writing)h(to)g -(the)g(\014le)f(will)h(pro)m(vide)g(input)f(for)g Fq(list)p -Ft(.)41 b(If)28 b(the)150 5340 y Fs(<\()p Fj(list)11 +2195 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s +(ccurs.)150 2395 y Fj(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150 +2542 y Ft(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems) +g(that)h(supp)s(ort)d(named)i(pip)s(es)f(\()p Fl(fif)n(o)p +Ft(s\))i(or)f(the)150 2651 y(`)p Fs(/dev/fd)p Ft(')29 +b(metho)s(d)h(of)g(naming)g(op)s(en)g(\014les.)41 b(It)30 +b(tak)m(es)i(the)f(form)f(of)390 2786 y Fs(<\()p Fi(list)11 +b Fs(\))150 2921 y Ft(or)390 3055 y Fs(>\()p Fi(list)g +Fs(\))150 3190 y Ft(The)23 b(pro)s(cess)g Fq(list)j Ft(is)d(run)f(with) +h(its)h(input)f(or)g(output)g(connected)h(to)h(a)e Fl(fif)n(o)g +Ft(or)h(some)g(\014le)f(in)g(`)p Fs(/dev/fd)p Ft('.)150 +3300 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)h(an)f +(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)f(the)h(result)g +(of)g(the)150 3409 y(expansion.)40 b(If)28 b(the)h Fs(>\()p +Fi(list)11 b Fs(\))26 b Ft(form)h(is)i(used,)f(writing)h(to)g(the)f +(\014le)h(will)g(pro)m(vide)f(input)g(for)g Fq(list)r +Ft(.)41 b(If)28 b(the)150 3519 y Fs(<\()p Fi(list)11 b Fs(\))23 b Ft(form)h(is)i(used,)f(the)h(\014le)f(passed)g(as)g(an)g (argumen)m(t)h(should)e(b)s(e)h(read)g(to)h(obtain)g(the)f(output)g(of) -p eop end +150 3628 y Fq(list)r Ft(.)41 b(Note)31 b(that)f(no)f(space)h(ma)m(y)g +(app)s(ear)f(b)s(et)m(w)m(een)h(the)g Fs(<)f Ft(or)h +Fs(>)f Ft(and)g(the)g(left)h(paren)m(thesis,)h(otherwise)150 +3738 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h +(redirection.)275 3873 y(When)36 b(a)m(v)-5 b(ailable,)40 +b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m(ultaneously)i +(with)g(parameter)g(and)150 3982 y(v)-5 b(ariable)31 +b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.) +150 4182 y Fj(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150 +4329 y Ft(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g +(expansion,)g(command)g(substitution,)g(and)f(arithmetic)150 +4438 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h +(quotes)h(for)f(w)m(ord)g(splitting.)275 4573 y(The)43 +b(shell)h(treats)h(eac)m(h)h(c)m(haracter)f(of)g Fs($IFS)e +Ft(as)h(a)g(delimiter,)49 b(and)43 b(splits)h(the)h(results)e(of)i(the) +150 4682 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h(these)g(c) +m(haracters.)70 b(If)39 b Fs(IFS)g Ft(is)h(unset,)i(or)d(its)h(v)-5 +b(alue)40 b(is)g(exactly)150 4792 y Fs()p +Ft(,)26 b(the)32 b(default,)g(then)f(sequences)h(of)62 +b Fs()p Ft(,)30 b Fs()p Ft(,)h(and)f Fs()150 +4902 y Ft(at)39 b(the)f(b)s(eginning)g(and)f(end)h(of)g(the)h(results)f +(of)g(the)g(previous)g(expansions)g(are)g(ignored,)j(and)d(an)m(y)150 +5011 y(sequence)31 b(of)g Fs(IFS)f Ft(c)m(haracters)j(not)e(at)g(the)g +(b)s(eginning)g(or)f(end)h(serv)m(es)g(to)h(delimit)f(w)m(ords.)42 +b(If)30 b Fs(IFS)g Ft(has)150 5121 y(a)g(v)-5 b(alue)30 +b(other)g(than)g(the)g(default,)g(then)f(sequences)h(of)g(the)g +(whitespace)g(c)m(haracters)h Fs(space)e Ft(and)g Fs(tab)150 +5230 y Ft(are)36 b(ignored)g(at)g(the)g(b)s(eginning)f(and)g(end)g(of)h +(the)g(w)m(ord,)h(as)f(long)g(as)g(the)g(whitespace)h(c)m(haracter)g +(is)150 5340 y(in)f(the)g(v)-5 b(alue)36 b(of)g Fs(IFS)f +Ft(\(an)h Fs(IFS)f Ft(whitespace)h(c)m(haracter\).)60 +b(An)m(y)35 b(c)m(haracter)j(in)d Fs(IFS)g Ft(that)i(is)f(not)g +Fs(IFS)p eop end %%Page: 24 30 TeXDict begin 24 29 bop 150 -116 a Ft(24)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fq(list)p Ft(.)41 b(Note)31 -b(that)f(no)g(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m(een)h(the)g -Fs(<)f Ft(or)h Fs(>)f Ft(and)g(the)h(left)g(paren)m(thesis,)h -(otherwise)150 408 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m -(terpreted)h(as)f(a)h(redirection.)275 542 y(When)36 -b(a)m(v)-5 b(ailable,)40 b(pro)s(cess)c(substitution)h(is)f(p)s -(erformed)f(sim)m(ultaneously)i(with)g(parameter)g(and)150 -652 y(v)-5 b(ariable)31 b(expansion,)g(command)f(substitution,)g(and)g -(arithmetic)i(expansion.)150 873 y Fk(3.5.7)63 b(W)-10 -b(ord)41 b(Splitting)275 1116 y Ft(The)35 b(shell)i(scans)f(the)g -(results)g(of)g(parameter)h(expansion,)h(command)d(substitution,)j(and) -e(arith-)150 1225 y(metic)31 b(expansion)g(that)g(did)e(not)i(o)s(ccur) -f(within)g(double)g(quotes)h(for)f(w)m(ord)g(splitting.)275 -1359 y(The)43 b(shell)h(treats)h(eac)m(h)h(c)m(haracter)f(of)g -Fs($IFS)e Ft(as)h(a)g(delimiter,)49 b(and)43 b(splits)h(the)h(results)e -(of)i(the)150 1468 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h -(these)g(c)m(haracters.)70 b(If)39 b Fs(IFS)g Ft(is)h(unset,)i(or)d -(its)h(v)-5 b(alue)40 b(is)g(exactly)150 1578 y Fs -()p Ft(,)26 b(the)32 b(default,)g(then)f -(sequences)h(of)62 b Fs()p Ft(,)30 b Fs()p -Ft(,)h(and)f Fs()150 1688 y Ft(at)39 b(the)f(b)s(eginning)g -(and)f(end)h(of)g(the)h(results)f(of)g(the)g(previous)g(expansions)g -(are)g(ignored,)j(and)d(an)m(y)150 1797 y(sequence)31 -b(of)g Fs(IFS)f Ft(c)m(haracters)j(not)e(at)g(the)g(b)s(eginning)g(or)f -(end)h(serv)m(es)g(to)h(delimit)f(w)m(ords.)42 b(If)30 -b Fs(IFS)g Ft(has)150 1907 y(a)g(v)-5 b(alue)30 b(other)g(than)g(the)g -(default,)g(then)f(sequences)h(of)g(the)g(whitespace)g(c)m(haracters)h -Fs(space)e Ft(and)g Fs(tab)150 2016 y Ft(are)36 b(ignored)g(at)g(the)g -(b)s(eginning)f(and)g(end)g(of)h(the)g(w)m(ord,)h(as)f(long)g(as)g(the) -g(whitespace)h(c)m(haracter)g(is)150 2126 y(in)f(the)g(v)-5 -b(alue)36 b(of)g Fs(IFS)f Ft(\(an)h Fs(IFS)f Ft(whitespace)h(c)m -(haracter\).)60 b(An)m(y)35 b(c)m(haracter)j(in)d Fs(IFS)g -Ft(that)i(is)f(not)g Fs(IFS)150 2236 y Ft(whitespace,)27 -b(along)f(with)f(an)m(y)g(adjacen)m(t)h Fs(IFS)e Ft(whitespace)i(c)m -(haracters,)i(delimits)e(a)f(\014eld.)38 b(A)26 b(sequence)150 -2345 y(of)35 b Fs(IFS)f Ft(whitespace)h(c)m(haracters)i(is)d(also)i -(treated)g(as)f(a)g(delimiter.)55 b(If)34 b(the)h(v)-5 -b(alue)35 b(of)g Fs(IFS)f Ft(is)h(n)m(ull,)h(no)150 2455 -y(w)m(ord)30 b(splitting)h(o)s(ccurs.)275 2588 y(Explicit)44 -b(n)m(ull)f(argumen)m(ts)g(\()p Fs("")g Ft(or)h Fs('')p -Ft(\))f(are)g(retained.)80 b(Unquoted)43 b(implicit)h(n)m(ull)f -(argumen)m(ts,)150 2698 y(resulting)24 b(from)f(the)g(expansion)g(of)h -(parameters)g(that)g(ha)m(v)m(e)h(no)e(v)-5 b(alues,)25 -b(are)f(remo)m(v)m(ed.)40 b(If)23 b(a)g(parameter)150 -2807 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double) -g(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.) -275 2941 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h -(splitting)g(is)f(p)s(erformed.)150 3162 y Fk(3.5.8)63 -b(Filename)41 b(Expansion)275 3405 y Ft(After)h(w)m(ord)g(splitting,)k -(unless)c(the)g(`)p Fs(-f)p Ft(')g(option)h(has)f(b)s(een)g(set)g -(\(see)i(Section)f(4.3.1)h([The)e(Set)150 3515 y(Builtin],)48 -b(page)c(51\),)k(Bash)43 b(scans)h(eac)m(h)g(w)m(ord)f(for)g(the)h(c)m -(haracters)h(`)p Fs(*)p Ft(',)i(`)p Fs(?)p Ft(',)g(and)42 -b(`)p Fs([)p Ft('.)80 b(If)43 b(one)h(of)150 3624 y(these)d(c)m -(haracters)g(app)s(ears,)i(then)d(the)g(w)m(ord)g(is)g(regarded)g(as)h -(a)g Fq(pattern)p Ft(,)i(and)c(replaced)i(with)f(an)150 -3734 y(alphab)s(etically)h(sorted)f(list)g(of)g(\014le)g(names)g(matc)m -(hing)h(the)f(pattern.)68 b(If)40 b(no)f(matc)m(hing)i(\014le)f(names) -150 3844 y(are)e(found,)g(and)f(the)h(shell)f(option)h -Fs(nullglob)e Ft(is)h(disabled,)i(the)f(w)m(ord)f(is)h(left)g(unc)m -(hanged.)62 b(If)37 b(the)150 3953 y Fs(nullglob)32 b -Ft(option)i(is)g(set,)h(and)f(no)f(matc)m(hes)i(are)g(found,)e(the)h(w) -m(ord)g(is)g(remo)m(v)m(ed.)52 b(If)33 b(the)h Fs(failglob)150 -4063 y Ft(shell)27 b(option)g(is)g(set,)h(and)e(no)g(matc)m(hes)i(are)f -(found,)f(an)h(error)f(message)i(is)e(prin)m(ted)g(and)g(the)h(command) -150 4172 y(is)h(not)h(executed.)41 b(If)28 b(the)g(shell)h(option)g -Fs(nocaseglob)c Ft(is)k(enabled,)g(the)f(matc)m(h)i(is)e(p)s(erformed)f -(without)150 4282 y(regard)j(to)h(the)g(case)g(of)g(alphab)s(etic)g(c)m -(haracters.)275 4415 y(When)21 b(a)i(pattern)f(is)g(used)g(for)f -(\014lename)i(generation,)i(the)d(c)m(haracter)i(`)p -Fs(.)p Ft(')e(at)h(the)f(start)h(of)f(a)h(\014lename)150 -4525 y(or)g(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f -(matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g -Fs(dotglob)150 4635 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g +b(Reference)g(Man)m(ual)150 299 y(whitespace,)c(along)f(with)f(an)m(y)g +(adjacen)m(t)h Fs(IFS)e Ft(whitespace)i(c)m(haracters,)i(delimits)e(a)f +(\014eld.)38 b(A)26 b(sequence)150 408 y(of)35 b Fs(IFS)f +Ft(whitespace)h(c)m(haracters)i(is)d(also)i(treated)g(as)f(a)g +(delimiter.)55 b(If)34 b(the)h(v)-5 b(alue)35 b(of)g +Fs(IFS)f Ft(is)h(n)m(ull,)h(no)150 518 y(w)m(ord)30 b(splitting)h(o)s +(ccurs.)275 648 y(Explicit)44 b(n)m(ull)f(argumen)m(ts)g(\()p +Fs("")g Ft(or)h Fs('')p Ft(\))f(are)g(retained.)80 b(Unquoted)43 +b(implicit)h(n)m(ull)f(argumen)m(ts,)150 758 y(resulting)24 +b(from)f(the)g(expansion)g(of)h(parameters)g(that)g(ha)m(v)m(e)h(no)e +(v)-5 b(alues,)25 b(are)f(remo)m(v)m(ed.)40 b(If)23 b(a)g(parameter)150 +867 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)g +(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.) +275 997 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h +(splitting)g(is)f(p)s(erformed.)150 1187 y Fj(3.5.8)63 +b(Filename)41 b(Expansion)150 1334 y Ft(After)26 b(w)m(ord)g +(splitting,)i(unless)d(the)i(`)p Fs(-f)p Ft(')f(option)g(has)g(b)s(een) +f(set)i(\(see)g(Section)g(4.3.1)h([The)e(Set)g(Builtin],)150 +1444 y(page)h(51\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c) +m(haracters)g(`)p Fs(*)p Ft(',)h(`)p Fs(?)p Ft(',)g(and)e(`)p +Fs([)p Ft('.)39 b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 +1553 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g +Fq(pattern)p Ft(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h +(sorted)150 1663 y(list)k(of)g(\014le)g(names)g(matc)m(hing)h(the)f +(pattern.)45 b(If)32 b(no)f(matc)m(hing)i(\014le)f(names)g(are)g +(found,)f(and)h(the)g(shell)150 1772 y(option)c Fs(nullglob)e +Ft(is)i(disabled,)h(the)f(w)m(ord)g(is)g(left)g(unc)m(hanged.)40 +b(If)28 b(the)g Fs(nullglob)e Ft(option)i(is)g(set,)i(and)150 +1882 y(no)38 b(matc)m(hes)h(are)f(found,)h(the)f(w)m(ord)f(is)h(remo)m +(v)m(ed.)65 b(If)37 b(the)h Fs(failglob)e Ft(shell)i(option)g(is)g +(set,)j(and)c(no)150 1991 y(matc)m(hes)f(are)g(found,)f(an)g(error)f +(message)j(is)e(prin)m(ted)f(and)h(the)g(command)g(is)g(not)g +(executed.)56 b(If)35 b(the)150 2101 y(shell)e(option)h +Fs(nocaseglob)c Ft(is)j(enabled,)h(the)g(matc)m(h)g(is)f(p)s(erformed)e +(without)i(regard)g(to)h(the)g(case)g(of)150 2211 y(alphab)s(etic)d(c)m +(haracters.)275 2341 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g +(\014lename)h(expansion,)h(the)e(c)m(haracter)i(`)p Fs(.)p +Ft(')f(at)g(the)g(start)g(of)g(a)g(\014lename)150 2450 +y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f(matc) +m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g +Fs(dotglob)150 2560 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g (\014le)f(name,)h(the)g(slash)f(c)m(haracter)i(m)m(ust)e(alw)m(a)m(ys)i -(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 4744 y(In)30 +(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 2669 y(In)30 b(other)g(cases,)i(the)e(`)p Fs(.)p Ft(')h(c)m(haracter)h(is)e(not)h -(treated)g(sp)s(ecially)-8 b(.)275 4878 y(See)28 b(the)g(description)g +(treated)g(sp)s(ecially)-8 b(.)275 2799 y(See)28 b(the)g(description)g (of)g Fs(shopt)e Ft(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i -(page)g(54,)g(for)f(a)g(descrip-)150 4987 y(tion)j(of)f(the)h +(page)g(55,)g(for)f(a)g(descrip-)150 2909 y(tion)j(of)f(the)h Fs(nocaseglob)p Ft(,)d Fs(nullglob)p Ft(,)g Fs(failglob)p -Ft(,)h(and)g Fs(dotglob)g Ft(options.)275 5121 y(The)j +Ft(,)h(and)g Fs(dotglob)g Ft(options.)275 3039 y(The)j Fs(GLOBIGNORE)f Ft(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f (to)i(restrict)g(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150 -5230 y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g +3148 y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g (matc)m(hing)g(\014lename)f(that)g(also)h(matc)m(hes)f(one)g(of)g(the)g -(patterns)150 5340 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h +(patterns)150 3258 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h (from)e(the)i(list)f(of)g(matc)m(hes.)50 b(The)33 b(\014lenames)g(`)p -Fs(.)p Ft(')g(and)f(`)p Fs(..)p Ft(')h(are)g(alw)m(a)m(ys)p -eop end -%%Page: 25 31 -TeXDict begin 25 30 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299 -y(ignored)33 b(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m +Fs(.)p Ft(')g(and)f(`)p Fs(..)p Ft(')h(are)g(alw)m(a)m(ys)150 +3367 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m (ull.)48 b(Ho)m(w)m(ev)m(er,)35 b(setting)f Fs(GLOBIGNORE)c -Ft(to)j(a)g(non-n)m(ull)150 408 y(v)-5 b(alue)34 b(has)f(the)h +Ft(to)j(a)g(non-n)m(ull)150 3477 y(v)-5 b(alue)34 b(has)f(the)h (e\013ect)h(of)f(enabling)g(the)g Fs(dotglob)e Ft(shell)h(option,)j(so) -e(all)g(other)g(\014lenames)g(b)s(eginning)150 518 y(with)43 +e(all)g(other)g(\014lenames)g(b)s(eginning)150 3587 y(with)43 b(a)h(`)p Fs(.)p Ft(')f(will)h(matc)m(h.)80 b(T)-8 b(o)44 b(get)h(the)e(old)h(b)s(eha)m(vior)f(of)h(ignoring)f(\014lenames)h(b)s -(eginning)f(with)g(a)150 628 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p +(eginning)f(with)g(a)150 3696 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p Fs(.*)p Ft(')e(one)g(of)g(the)h(patterns)f(in)g Fs(GLOBIGNORE)p Ft(.)58 b(The)37 b Fs(dotglob)e Ft(option)j(is)f(disabled)g(when)150 -737 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 957 y Fk(3.5.8.1)63 -b(P)m(attern)40 b(Matc)m(hing)275 1200 y Ft(An)m(y)33 -b(c)m(haracter)i(that)f(app)s(ears)f(in)g(a)h(pattern,)g(other)g(than)f -(the)g(sp)s(ecial)h(pattern)g(c)m(haracters)h(de-)150 -1309 y(scrib)s(ed)30 b(b)s(elo)m(w,)h(matc)m(hes)h(itself.)43 -b(The)31 b Fl(nul)f Ft(c)m(haracter)i(ma)m(y)f(not)h(o)s(ccur)e(in)h(a) -g(pattern.)42 b(A)31 b(bac)m(kslash)150 1419 y(escap)s(es)36 -b(the)f(follo)m(wing)i(c)m(haracter;)j(the)c(escaping)g(bac)m(kslash)g -(is)f(discarded)g(when)g(matc)m(hing.)56 b(The)150 1528 -y(sp)s(ecial)31 b(pattern)f(c)m(haracters)i(m)m(ust)f(b)s(e)e(quoted)i -(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8 -b(.)275 1661 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m -(e)f(the)g(follo)m(wing)h(meanings:)150 1818 y Fs(*)432 +3806 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 3996 y Fj(3.5.8.1)63 +b(P)m(attern)40 b(Matc)m(hing)150 4143 y Ft(An)m(y)24 +b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h(pattern,)i(other)e(than)f +(the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h(describ)s(ed)150 +4252 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29 +b Fl(nul)h Ft(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)h +(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 4362 +y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37 b(escaping)i(bac)m +(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63 b(The)36 +b(sp)s(ecial)150 4471 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e +(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8 +b(.)275 4601 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m +(e)f(the)g(follo)m(wing)h(meanings:)150 4751 y Fs(*)432 b Ft(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g (string.)41 b(When)29 b(the)g Fs(globstar)e Ft(shell)i(option)630 -1927 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h +4861 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h (\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p -Fs(*)p Ft('s)630 2037 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc) +Fs(*)p Ft('s)630 4971 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc) m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630 -2147 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p +5080 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p Fs(/)p Ft(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Fs(*)p Ft('s)e(will)g -(matc)m(h)h(only)f(directories)630 2256 y(and)k(sub)s(directories.)150 -2413 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.) -150 2569 y Fs([...)o(])241 b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g -(the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters) -i(separated)e(b)m(y)g(a)630 2679 y(h)m(yphen)i(denotes)h(a)g +(matc)m(h)h(only)f(directories)630 5190 y(and)k(sub)s(directories.)150 +5340 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)p +eop end +%%Page: 25 31 +TeXDict begin 25 30 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299 +y Fs([...)o(])241 b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g(the)g +(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)i +(separated)e(b)m(y)g(a)630 408 y(h)m(yphen)i(denotes)h(a)g Fq(range)g(expression)p Ft(;)g(an)m(y)h(c)m(haracter)g(that)f(sorts)g -(b)s(et)m(w)m(een)g(those)h(t)m(w)m(o)630 2788 y(c)m(haracters,)f +(b)s(et)m(w)m(een)g(those)h(t)m(w)m(o)630 518 y(c)m(haracters,)f (inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g -(sequence)e(and)f(c)m(haracter)630 2898 y(set,)31 b(is)f(matc)m(hed.)42 +(sequence)e(and)f(c)m(haracter)630 628 y(set,)31 b(is)f(matc)m(hed.)42 b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p Fs([)p Ft(')h(is)f(a)h(`)p Fs(!)p Ft(')f(or)g(a)h(`)p -Fs(^)p Ft(')g(then)f(an)m(y)630 3008 y(c)m(haracter)c(not)f(enclosed)g +Fs(^)p Ft(')g(then)f(an)m(y)630 737 y(c)m(haracter)c(not)f(enclosed)g (is)g(matc)m(hed.)40 b(A)25 b(`)p Fp(\000)p Ft(')f(ma)m(y)i(b)s(e)e -(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 3117 +(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 847 y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50 b(A)33 b(`)p Fs(])p Ft(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f -(including)g(it)g(as)h(the)630 3227 y(\014rst)25 b(c)m(haracter)i(in)e +(including)g(it)g(as)h(the)630 956 y(\014rst)25 b(c)m(haracter)i(in)e (the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f -(range)g(expressions)f(is)630 3336 y(determined)e(b)m(y)g(the)g(curren) +(range)g(expressions)f(is)630 1066 y(determined)e(b)m(y)g(the)g(curren) m(t)f(lo)s(cale)j(and)e(the)g(v)-5 b(alue)23 b(of)g(the)h -Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 3446 y(if)30 -b(set.)630 3579 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f +Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 1176 y(if)30 +b(set.)630 1309 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f (lo)s(cale,)k(`)p Fs([a-dx-z])p Ft(')31 b(is)i(equiv)-5 -b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 3689 +b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 1418 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i -(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 3798 +(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 1528 y(`)p Fs([a-dx-z])p Ft(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5 b(alen)m(t)39 b(to)g(`)p Fs([abcdxyz])p Ft(';)g(it)g(migh)m(t)f(b)s(e)f -(equiv)-5 b(alen)m(t)630 3908 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p +(equiv)-5 b(alen)m(t)630 1637 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p Ft(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h -(in)m(terpretation)h(of)630 4017 y(ranges)e(in)f(brac)m(k)m(et)i +(in)m(terpretation)h(of)630 1747 y(ranges)e(in)f(brac)m(k)m(et)i (expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s -(cale)i(b)m(y)f(setting)630 4127 y(the)e Fs(LC_COLLATE)c +(cale)i(b)m(y)f(setting)630 1857 y(the)e Fs(LC_COLLATE)c Ft(or)k Fs(LC_ALL)d Ft(en)m(vironmen)m(t)j(v)-5 b(ariable)31 -b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 4260 +b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 1990 y(Within)23 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j Fq(c)m(haracter)g(classes)j Ft(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f (the)i(syn)m(tax)f Fs([:)p Fq(class)t Fs(:])p Ft(,)630 -4369 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m +2099 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m (wing)h(classes)f(de\014ned)e(in)h(the)h Fl(posix)f Ft(standard:)870 -4503 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g -(lower)870 4612 y(print)g(punct)g(space)f(upper)h(word)190 -b(xdigit)630 4745 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m +2233 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g +(lower)870 2342 y(print)g(punct)g(space)f(upper)h(word)190 +b(xdigit)630 2475 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m (y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75 -b(The)41 b Fs(word)630 4855 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h +b(The)41 b Fs(word)630 2585 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h (letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p -Fs(_)p Ft('.)630 4988 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p +Fs(_)p Ft('.)630 2718 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p Fs(])p Ft(',)i(an)e Fq(equiv)-5 b(alence)26 b(class)j Ft(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h -Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 5097 y(whic)m(h)29 +Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 2828 y(whic)m(h)29 b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w) -m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 5207 +m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 2937 y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h -Fq(c)p Ft(.)630 5340 y(Within)22 b(`)p Fs([)p Ft(')f(and)g(`)p -Fs(])p Ft(',)j(the)d(syn)m(tax)h Fs([.)p Fq(sym)m(b)s(ol)t -Fs(.])e Ft(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d -Fq(sym)m(b)s(ol)p Ft(.)p eop end -%%Page: 26 32 -TeXDict begin 26 31 bop 150 -116 a Ft(26)2572 b(Bash)31 -b(Reference)g(Man)m(ual)275 299 y(If)e(the)g Fs(extglob)f +Fq(c)6 b Ft(.)630 3070 y(Within)21 b(`)p Fs([)p Ft(')h(and)e(`)p +Fs(])p Ft(',)j(the)f(syn)m(tax)f Fs([.)p Fq(sym)m(b)s(ol)t +Fs(.])f Ft(matc)m(hes)i(the)f(collating)j(sym)m(b)s(ol)c +Fq(sym)m(b)s(ol)t Ft(.)275 3227 y(If)29 b(the)g Fs(extglob)f Ft(shell)h(option)h(is)g(enabled)f(using)g(the)h Fs(shopt)e -Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 408 +Ft(builtin,)h(sev)m(eral)i(extended)f(pattern)150 3336 y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58 b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fq(pattern-list)j -Ft(is)d(a)g(list)g(of)150 518 y(one)d(or)f(more)h(patterns)f(separated) -h(b)m(y)f(a)h(`)p Fs(|)p Ft('.)47 b(Comp)s(osite)33 b(patterns)f(ma)m -(y)i(b)s(e)d(formed)h(using)g(one)h(or)150 628 y(more)e(of)f(the)h -(follo)m(wing)g(sub-patterns:)150 790 y Fs(?\()p Fj(pattern-list)11 -b Fs(\))630 899 y Ft(Matc)m(hes)32 b(zero)f(or)g(one)f(o)s(ccurrence)h -(of)f(the)h(giv)m(en)g(patterns.)150 1060 y Fs(*\()p -Fj(pattern-list)11 b Fs(\))630 1170 y Ft(Matc)m(hes)32 -b(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.) -150 1331 y Fs(+\()p Fj(pattern-list)11 b Fs(\))630 1440 -y Ft(Matc)m(hes)32 b(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv) -m(en)i(patterns.)150 1601 y Fs(@\()p Fj(pattern-list)11 -b Fs(\))630 1711 y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g -(patterns.)150 1872 y Fs(!\()p Fj(pattern-list)11 b Fs(\))630 -1982 y Ft(Matc)m(hes)32 b(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m -(en)g(patterns.)150 2209 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 -b(al)275 2455 y Ft(After)32 b(the)h(preceding)f(expansions,)h(all)g -(unquoted)f(o)s(ccurrences)g(of)h(the)f(c)m(haracters)i(`)p -Fs(\\)p Ft(',)f(`)p Fs(')p Ft(',)h(and)150 2565 y(`)p -Fs(")p Ft(')d(that)g(did)e(not)i(result)f(from)g(one)h(of)f(the)h(ab)s -(o)m(v)m(e)g(expansions)f(are)h(remo)m(v)m(ed.)150 2826 -y Fr(3.6)68 b(Redirections)275 3072 y Ft(Before)33 b(a)h(command)e(is)h -(executed,)i(its)e(input)f(and)h(output)f(ma)m(y)i(b)s(e)e -Fq(redirected)37 b Ft(using)32 b(a)h(sp)s(ecial)150 3181 -y(notation)g(in)m(terpreted)g(b)m(y)f(the)g(shell.)46 +Ft(is)d(a)g(list)g(of)150 3446 y(one)d(or)f(more)h(patterns)f +(separated)h(b)m(y)f(a)h(`)p Fs(|)p Ft('.)47 b(Comp)s(osite)33 +b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150 +3556 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150 +3712 y Fs(?\()p Fi(pattern-list)11 b Fs(\))630 3822 y +Ft(Matc)m(hes)32 b(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m +(en)g(patterns.)150 3979 y Fs(*\()p Fi(pattern-list)11 +b Fs(\))630 4088 y Ft(Matc)m(hes)32 b(zero)f(or)g(more)f(o)s +(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)150 4245 +y Fs(+\()p Fi(pattern-list)11 b Fs(\))630 4354 y Ft(Matc)m(hes)32 +b(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m(en)i(patterns.) +150 4511 y Fs(@\()p Fi(pattern-list)11 b Fs(\))630 4621 +y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g(patterns.)150 +4777 y Fs(!\()p Fi(pattern-list)11 b Fs(\))630 4887 y +Ft(Matc)m(hes)32 b(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g +(patterns.)150 5083 y Fj(3.5.9)63 b(Quote)41 b(Remo)m(v)-7 +b(al)150 5230 y Ft(After)32 b(the)g(preceding)g(expansions,)h(all)f +(unquoted)f(o)s(ccurrences)h(of)g(the)h(c)m(haracters)g(`)p +Fs(\\)p Ft(',)g(`)p Fs(')p Ft(',)f(and)g(`)p Fs(")p Ft(')150 +5340 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m +(e)i(expansions)e(are)h(remo)m(v)m(ed.)p eop end +%%Page: 26 32 +TeXDict begin 26 31 bop 150 -116 a Ft(26)2572 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y Fr(3.6)68 b(Redirections)150 +458 y Ft(Before)43 b(a)f(command)f(is)h(executed,)j(its)d(input)f(and)g +(output)g(ma)m(y)i(b)s(e)e Fq(redirected)k Ft(using)c(a)h(sp)s(ecial) +150 568 y(notation)33 b(in)m(terpreted)g(b)m(y)f(the)g(shell.)46 b(Redirection)33 b(ma)m(y)g(also)g(b)s(e)f(used)f(to)i(op)s(en)e(and)h -(close)h(\014les)f(for)150 3291 y(the)h(curren)m(t)g(shell)g(execution) -h(en)m(vironmen)m(t.)49 b(The)33 b(follo)m(wing)h(redirection)g(op)s -(erators)f(ma)m(y)h(precede)150 3401 y(or)29 b(app)s(ear)g(an)m(ywhere) -g(within)g(a)h(simple)f(command)g(or)h(ma)m(y)g(follo)m(w)g(a)g -(command.)40 b(Redirections)31 b(are)150 3510 y(pro)s(cessed)f(in)g -(the)g(order)g(they)h(app)s(ear,)f(from)g(left)h(to)g(righ)m(t.)275 -3646 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g +(close)h(\014les)f(for)150 677 y(the)h(curren)m(t)g(shell)g(execution)h +(en)m(vironmen)m(t.)49 b(The)33 b(follo)m(wing)h(redirection)g(op)s +(erators)f(ma)m(y)h(precede)150 787 y(or)29 b(app)s(ear)g(an)m(ywhere)g +(within)g(a)h(simple)f(command)g(or)h(ma)m(y)g(follo)m(w)g(a)g +(command.)40 b(Redirections)31 b(are)150 897 y(pro)s(cessed)f(in)g(the) +g(order)g(they)h(app)s(ear,)f(from)g(left)h(to)g(righ)m(t.)275 +1048 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b) +m(y)h(a)h(\014le)f(descriptor)f(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b) +s(e)150 1158 y(preceded)41 b(b)m(y)g(a)g(w)m(ord)g(of)g(the)g(form)g +Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(.)72 b(In)40 b(this)h(case,)k +(for)c(eac)m(h)h(redirection)g(op)s(erator)150 1267 y(except)30 +b Fs(>)p Ft(&-)f(and)f Fs(<)p Ft(&-,)h(the)g(shell)g(will)h(allo)s +(cate)h(a)e(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i +(it)f(to)150 1377 y Fs({)p Fq(v)-5 b(arname)5 b Fs(})p +Ft(.)42 b(If)31 b Fs(>)p Ft(&-)f(or)h Fs(<)p Ft(&-)g(is)g(preceded)g(b) +m(y)g Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(,)31 b(the)g(v)-5 +b(alue)31 b(of)g Fq(v)-5 b(arname)37 b Ft(de\014nes)30 +b(the)h(\014le)150 1486 y(descriptor)f(to)h(close.)275 +1638 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g (descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g -(c)m(har-)150 3756 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g +(c)m(har-)150 1747 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g (is)g(`)p Fs(<)p Ft(',)i(the)e(redirection)g(refers)g(to)g(the)g -(standard)f(input)f(\(\014le)150 3866 y(descriptor)33 +(standard)f(input)f(\(\014le)150 1857 y(descriptor)33 b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f (redirection)g(op)s(erator)h(is)f(`)p Fs(>)p Ft(',)h(the)f(redirection) -g(refers)150 3975 y(to)e(the)g(standard)e(output)h(\(\014le)h -(descriptor)f(1\).)275 4111 y(The)h(w)m(ord)h(follo)m(wing)i(the)f +g(refers)150 1966 y(to)e(the)g(standard)e(output)h(\(\014le)h +(descriptor)f(1\).)275 2118 y(The)h(w)m(ord)h(follo)m(wing)i(the)f (redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f -(unless)e(other-)150 4221 y(wise)21 b(noted,)i(is)e(sub)5 +(unless)e(other-)150 2227 y(wise)21 b(noted,)i(is)e(sub)5 b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter) -e(expansion,)i(command)150 4330 y(substitution,)31 b(arithmetic)h +e(expansion,)i(command)150 2337 y(substitution,)31 b(arithmetic)h (expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g -(and)f(w)m(ord)h(splitting.)150 4440 y(If)f(it)h(expands)e(to)i(more)g +(and)f(w)m(ord)h(splitting.)150 2447 y(If)f(it)h(expands)e(to)i(more)g (than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275 -4576 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g +2598 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g (signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390 -4712 y Fs(ls)47 b(>)h Fj(dirlist)56 b Fs(2>&1)150 4848 +2749 y Fs(ls)47 b(>)h Fi(dirlist)56 b Fs(2>&1)150 2901 y Ft(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f (1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the) -150 4958 y(\014le)h Fq(dirlist)p Ft(,)h(while)f(the)h(command)390 -5094 y Fs(ls)47 b(2>&1)g(>)g Fj(dirlist)150 5230 y Ft(directs)34 -b(only)g(the)f(standard)g(output)g(to)h(\014le)g Fq(dirlist)p -Ft(,)h(b)s(ecause)e(the)h(standard)f(error)g(w)m(as)h(duplicated)150 -5340 y(as)d(standard)e(output)h(b)s(efore)g(the)h(standard)e(output)h -(w)m(as)h(redirected)g(to)g Fq(dirlist)p Ft(.)p eop end +150 3010 y(\014le)h Fq(dirlist)r Ft(,)h(while)f(the)h(command)390 +3161 y Fs(ls)47 b(2>&1)g(>)g Fi(dirlist)150 3313 y Ft(directs)28 +b(only)f(the)g(standard)g(output)g(to)h(\014le)f Fq(dirlist)r +Ft(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)g(made)h(a)f(cop)m +(y)150 3422 y(of)k(the)f(standard)g(output)g(b)s(efore)g(the)g +(standard)g(output)g(w)m(as)g(redirected)h(to)g Fq(dirlist)r +Ft(.)275 3574 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s +(ecially)h(when)f(they)g(are)g(used)g(in)g(redirections,)i(as)e +(describ)s(ed)150 3683 y(in)k(the)h(follo)m(wing)g(table:)150 +3868 y Fs(/dev/fd/)p Fi(fd)630 3977 y Ft(If)f Fq(fd)j +Ft(is)d(a)h(v)-5 b(alid)31 b(in)m(teger,)h(\014le)e(descriptor)h +Fq(fd)i Ft(is)d(duplicated.)150 4154 y Fs(/dev/stdin)630 +4263 y Ft(File)i(descriptor)e(0)h(is)f(duplicated.)150 +4440 y Fs(/dev/stdout)630 4549 y Ft(File)i(descriptor)e(1)h(is)f +(duplicated.)150 4725 y Fs(/dev/stderr)630 4835 y Ft(File)i(descriptor) +e(2)h(is)f(duplicated.)150 5011 y Fs(/dev/tcp/)p Fi(host)11 +b Fs(/)p Fi(port)630 5121 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 +b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c +Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 5230 +y(n)m(um)m(b)s(er)h(or)h(service)h(name,)j(Bash)c(attempts)h(to)g(op)s +(en)f(a)g(TCP)g(connection)h(to)g(the)630 5340 y(corresp)s(onding)29 +b(so)s(c)m(k)m(et.)p eop end %%Page: 27 33 TeXDict begin 27 32 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)275 299 -y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s(ecially)h(when)f -(they)g(are)g(used)g(in)g(redirections,)i(as)e(describ)s(ed)150 -408 y(in)k(the)h(follo)m(wing)g(table:)150 559 y Fs(/dev/fd/)p -Fj(fd)630 669 y Ft(If)f Fq(fd)j Ft(is)d(a)h(v)-5 b(alid)31 -b(in)m(teger,)h(\014le)e(descriptor)h Fq(fd)i Ft(is)d(duplicated.)150 -820 y Fs(/dev/stdin)630 929 y Ft(File)i(descriptor)e(0)h(is)f -(duplicated.)150 1080 y Fs(/dev/stdout)630 1190 y Ft(File)i(descriptor) -e(1)h(is)f(duplicated.)150 1341 y Fs(/dev/stderr)630 -1450 y Ft(File)i(descriptor)e(2)h(is)f(duplicated.)150 -1601 y Fs(/dev/tcp/)p Fj(host)11 b Fs(/)p Fj(port)630 -1711 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 b(alid)41 -b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c Fq(p)s(ort)j -Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 1820 y(n)m(um)m(b)s(er)h(or)h -(service)h(name,)j(Bash)c(attempts)h(to)g(op)s(en)f(a)g(TCP)g -(connection)h(to)g(the)630 1930 y(corresp)s(onding)29 -b(so)s(c)m(k)m(et.)150 2081 y Fs(/dev/udp/)p Fj(host)11 -b Fs(/)p Fj(port)630 2190 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 -b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c -Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 2300 -y(n)m(um)m(b)s(er)g(or)i(service)g(name,)k(Bash)c(attempts)g(to)h(op)s -(en)e(a)h(UDP)g(connection)g(to)h(the)630 2410 y(corresp)s(onding)29 -b(so)s(c)m(k)m(et.)275 2560 y(A)h(failure)h(to)g(op)s(en)e(or)i(create) -h(a)e(\014le)h(causes)g(the)f(redirection)h(to)g(fail.)275 -2691 y(Redirections)f(using)e(\014le)i(descriptors)f(greater)h(than)f -(9)h(should)e(b)s(e)h(used)f(with)h(care,)h(as)g(they)f(ma)m(y)150 -2800 y(con\015ict)i(with)f(\014le)h(descriptors)f(the)g(shell)h(uses)f -(in)m(ternally)-8 b(.)150 3012 y Fk(3.6.1)63 b(Redirecting)40 -b(Input)275 3251 y Ft(Redirection)35 b(of)f(input)g(causes)g(the)h -(\014le)f(whose)g(name)h(results)f(from)g(the)g(expansion)g(of)h -Fq(w)m(ord)i Ft(to)150 3361 y(b)s(e)d(op)s(ened)g(for)g(reading)g(on)h -(\014le)f(descriptor)h Fs(n)p Ft(,)g(or)g(the)f(standard)g(input)g -(\(\014le)h(descriptor)f(0\))h(if)g Fs(n)f Ft(is)150 -3471 y(not)d(sp)s(eci\014ed.)275 3601 y(The)e(general)j(format)e(for)h -(redirecting)g(input)e(is:)390 3731 y Fs([)p Fj(n)11 -b Fs(]<)p Fj(word)150 3942 y Fk(3.6.2)63 b(Redirecting)40 -b(Output)275 4182 y Ft(Redirection)31 b(of)f(output)g(causes)h(the)g -(\014le)f(whose)g(name)h(results)f(from)f(the)i(expansion)f(of)h -Fq(w)m(ord)i Ft(to)150 4292 y(b)s(e)e(op)s(ened)g(for)g(writing)h(on)f -(\014le)h(descriptor)f Fq(n)p Ft(,)h(or)f(the)h(standard)f(output)g -(\(\014le)h(descriptor)f(1\))h(if)g Fq(n)f Ft(is)150 -4401 y(not)j(sp)s(eci\014ed.)50 b(If)33 b(the)h(\014le)g(do)s(es)f(not) -h(exist)g(it)g(is)g(created;)j(if)c(it)h(do)s(es)g(exist)g(it)g(is)g -(truncated)g(to)g(zero)150 4511 y(size.)275 4641 y(The)29 -b(general)j(format)e(for)h(redirecting)g(output)f(is:)390 -4771 y Fs([)p Fj(n)11 b Fs(]>[|])p Fj(word)275 4902 y -Ft(If)30 b(the)h(redirection)g(op)s(erator)g(is)g(`)p -Fs(>)p Ft(',)g(and)f(the)h Fs(noclobber)d Ft(option)j(to)g(the)g -Fs(set)f Ft(builtin)g(has)h(b)s(een)150 5011 y(enabled,)i(the)f -(redirection)h(will)f(fail)h(if)f(the)g(\014le)g(whose)g(name)g -(results)g(from)g(the)g(expansion)g(of)g Fq(w)m(ord)150 -5121 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)150 299 +y Fs(/dev/udp/)p Fi(host)11 b Fs(/)p Fi(port)630 408 +y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5 b(alid)41 b(hostname)h(or)f(In) +m(ternet)h(address,)i(and)c Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s +(ort)630 518 y(n)m(um)m(b)s(er)g(or)i(service)g(name,)k(Bash)c +(attempts)g(to)h(op)s(en)e(a)h(UDP)g(connection)g(to)h(the)630 +628 y(corresp)s(onding)29 b(so)s(c)m(k)m(et.)275 785 +y(A)h(failure)h(to)g(op)s(en)e(or)i(create)h(a)e(\014le)h(causes)g(the) +f(redirection)h(to)g(fail.)275 918 y(Redirections)f(using)e(\014le)i +(descriptors)f(greater)h(than)f(9)h(should)e(b)s(e)h(used)f(with)h +(care,)h(as)g(they)f(ma)m(y)150 1027 y(con\015ict)i(with)f(\014le)h +(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8 +b(.)150 1224 y Fj(3.6.1)63 b(Redirecting)40 b(Input)150 +1371 y Ft(Redirection)35 b(of)f(input)f(causes)i(the)f(\014le)g(whose)g +(name)g(results)g(from)g(the)g(expansion)g(of)g Fq(w)m(ord)k +Ft(to)d(b)s(e)150 1481 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h +(descriptor)f Fs(n)p Ft(,)h(or)f(the)g(standard)g(input)f(\(\014le)i +(descriptor)f(0\))h(if)f Fs(n)g Ft(is)h(not)150 1590 +y(sp)s(eci\014ed.)275 1724 y(The)c(general)j(format)e(for)h +(redirecting)g(input)e(is:)390 1857 y Fs([)p Fi(n)11 +b Fs(]<)p Fi(word)150 2054 y Fj(3.6.2)63 b(Redirecting)40 +b(Output)150 2200 y Ft(Redirection)31 b(of)g(output)f(causes)h(the)f +(\014le)h(whose)f(name)g(results)h(from)e(the)i(expansion)f(of)h +Fq(w)m(ord)i Ft(to)f(b)s(e)150 2310 y(op)s(ened)d(for)g(writing)g(on)g +(\014le)h(descriptor)f Fq(n)p Ft(,)g(or)g(the)h(standard)e(output)h +(\(\014le)h(descriptor)f(1\))h(if)g Fq(n)e Ft(is)i(not)150 +2420 y(sp)s(eci\014ed.)40 b(If)30 b(the)g(\014le)h(do)s(es)f(not)h +(exist)g(it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g +(truncated)f(to)h(zero)g(size.)275 2553 y(The)e(general)j(format)e(for) +h(redirecting)g(output)f(is:)390 2686 y Fs([)p Fi(n)11 +b Fs(]>[|])p Fi(word)275 2819 y Ft(If)30 b(the)h(redirection)g(op)s +(erator)g(is)g(`)p Fs(>)p Ft(',)g(and)f(the)h Fs(noclobber)d +Ft(option)j(to)g(the)g Fs(set)f Ft(builtin)g(has)h(b)s(een)150 +2929 y(enabled,)i(the)f(redirection)h(will)f(fail)h(if)f(the)g(\014le)g +(whose)g(name)g(results)g(from)g(the)g(expansion)g(of)g +Fq(w)m(ord)150 3039 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41 b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p Fs(>|)p Ft(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150 -5230 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e +3148 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e Ft(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g -(ev)m(en)h(if)e(the)h(\014le)150 5340 y(named)30 b(b)m(y)g -Fq(w)m(ord)k Ft(exists.)p eop end +(ev)m(en)h(if)e(the)h(\014le)150 3258 y(named)30 b(b)m(y)g +Fq(w)m(ord)k Ft(exists.)150 3455 y Fj(3.6.3)63 b(App)s(ending)42 +b(Redirected)e(Output)150 3601 y Ft(Redirection)23 b(of)e(output)h(in)f +(this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f +(from)g(the)h(expansion)g(of)150 3711 y Fq(w)m(ord)28 +b Ft(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g +(descriptor)g Fq(n)p Ft(,)g(or)g(the)g(standard)f(output)h(\(\014le)g +(descriptor)150 3821 y(1\))31 b(if)f Fq(n)g Ft(is)h(not)f(sp)s +(eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s(es)g(not)h(exist)g(it)g +(is)f(created.)275 3954 y(The)f(general)j(format)e(for)h(app)s(ending)e +(output)h(is:)390 4087 y Fs([)p Fi(n)11 b Fs(]>>)p Fi(word)150 +4284 y Fj(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g +(Standard)g(Error)150 4431 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s +(oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f +(the)g(standard)f(error)150 4540 y(output)d(\(\014le)h(descriptor)f +(2\))h(to)g(b)s(e)f(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is) +f(the)g(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 4674 y(There)f(are)i(t)m +(w)m(o)h(formats)e(for)h(redirecting)g(standard)e(output)h(and)g +(standard)f(error:)390 4807 y Fs(&>)p Fi(word)150 4940 +y Ft(and)390 5073 y Fs(>&)p Fi(word)150 5207 y Ft(Of)h(the)g(t)m(w)m(o) +i(forms,)e(the)h(\014rst)e(is)i(preferred.)39 b(This)30 +b(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 b(to)390 +5340 y Fs(>)p Fi(word)57 b Fs(2>&1)p eop end %%Page: 28 34 TeXDict begin 28 33 bop 150 -116 a Ft(28)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(3.6.3)63 b(App)s(ending)42 -b(Redirected)e(Output)275 541 y Ft(Redirection)29 b(of)g(output)f(in)g -(this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f -(from)g(the)h(expan-)150 651 y(sion)34 b(of)f Fq(w)m(ord)k -Ft(to)e(b)s(e)e(op)s(ened)g(for)g(app)s(ending)f(on)i(\014le)f -(descriptor)h Fq(n)p Ft(,)g(or)g(the)f(standard)g(output)g(\(\014le)150 -760 y(descriptor)d(1\))h(if)g Fq(n)f Ft(is)g(not)h(sp)s(eci\014ed.)40 -b(If)29 b(the)i(\014le)f(do)s(es)h(not)f(exist)h(it)g(is)g(created.)275 -893 y(The)e(general)j(format)e(for)h(app)s(ending)e(output)h(is:)390 -1026 y Fs([)p Fj(n)11 b Fs(]>>)p Fj(word)150 1245 y Fk(3.6.4)63 -b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g(Error)275 -1487 y Ft(This)23 b(construct)i(allo)m(ws)h(b)s(oth)e(the)h(standard)f -(output)g(\(\014le)h(descriptor)f(1\))i(and)e(the)h(standard)e(error) -150 1597 y(output)30 b(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f -(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)f(the)g(expansion)h -(of)f Fq(w)m(ord)p Ft(.)275 1729 y(There)f(are)i(t)m(w)m(o)h(formats)e -(for)h(redirecting)g(standard)e(output)h(and)g(standard)f(error:)390 -1862 y Fs(&>)p Fj(word)150 1995 y Ft(and)390 2127 y Fs(>&)p -Fj(word)150 2260 y Ft(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e -(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5 -b(alen)m(t)32 b(to)390 2393 y Fs(>)p Fj(word)57 b Fs(2>&1)150 -2612 y Fk(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g -(Standard)g(Error)275 2854 y Ft(This)23 b(construct)i(allo)m(ws)h(b)s -(oth)e(the)h(standard)f(output)g(\(\014le)h(descriptor)f(1\))i(and)e -(the)h(standard)e(error)150 2964 y(output)30 b(\(\014le)h(descriptor)f -(2\))h(to)g(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g -(is)h(the)f(expansion)h(of)f Fq(w)m(ord)p Ft(.)275 3096 -y(The)f(format)i(for)f(app)s(ending)f(standard)h(output)g(and)f -(standard)h(error)g(is:)390 3229 y Fs(&>>)p Fj(word)150 -3362 y Ft(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 -b(to)390 3494 y Fs(>>)p Fj(word)57 b Fs(2>&1)150 3713 -y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)275 3956 y -Ft(This)28 b(t)m(yp)s(e)h(of)h(redirection)g(instructs)f(the)g(shell)h -(to)g(read)f(input)f(from)h(the)g(curren)m(t)h(source)f(un)m(til)h(a) -150 4065 y(line)h(con)m(taining)g(only)g Fq(w)m(ord)i -Ft(\(with)d(no)h(trailing)g(blanks\))f(is)g(seen.)41 +b(Reference)g(Man)m(ual)150 299 y Fj(3.6.5)63 b(App)s(ending)42 +b(Standard)f(Output)g(and)g(Standard)g(Error)150 446 +y Ft(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g(standard)g +(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g(standard)f(error) +150 555 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f(app)s +(ended)f(to)i(the)f(\014le)h(whose)f(name)g(is)h(the)f(expansion)h(of)f +Fq(w)m(ord)t Ft(.)275 689 y(The)f(format)i(for)f(app)s(ending)f +(standard)h(output)g(and)f(standard)h(error)g(is:)390 +822 y Fs(&>>)p Fi(word)150 955 y Ft(This)g(is)g(seman)m(tically)j +(equiv)-5 b(alen)m(t)32 b(to)390 1089 y Fs(>>)p Fi(word)57 +b Fs(2>&1)150 1286 y Fj(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 +1432 y Ft(This)c(t)m(yp)s(e)h(of)f(redirection)i(instructs)e(the)h +(shell)f(to)i(read)e(input)g(from)g(the)h(curren)m(t)f(source)h(un)m +(til)g(a)150 1542 y(line)31 b(con)m(taining)g(only)g +Fq(w)m(ord)i Ft(\(with)d(no)h(trailing)g(blanks\))f(is)g(seen.)41 b(All)31 b(of)f(the)h(lines)f(read)g(up)f(to)i(that)150 -4175 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g(the)h(standard)f(input)f -(for)h(a)h(command.)275 4307 y(The)e(format)i(of)g(here-do)s(cumen)m -(ts)f(is:)390 4440 y Fs(<<[)p Fp(\000)p Fs(])p Fj(word)772 -4550 y(here-document)390 4659 y(delimiter)275 4792 y +1652 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g(the)h(standard)f(input)f +(for)h(a)h(command.)275 1785 y(The)e(format)i(of)g(here-do)s(cumen)m +(ts)f(is:)390 1918 y Fs(<<[)p Fp(\000)p Fs(])p Fi(word)772 +2028 y(here-document)390 2137 y(delimiter)275 2271 y Ft(No)j(parameter)h(expansion,)g(command)f(substitution,)h(arithmetic)h -(expansion,)f(or)f(\014lename)g(ex-)150 4902 y(pansion)i(is)g(p)s -(erformed)e(on)i Fq(w)m(ord)p Ft(.)55 b(If)34 b(an)m(y)i(c)m(haracters) -g(in)f Fq(w)m(ord)j Ft(are)d(quoted,)i(the)e Fq(delimiter)43 -b Ft(is)35 b(the)150 5011 y(result)40 b(of)h(quote)g(remo)m(v)-5 -b(al)42 b(on)e Fq(w)m(ord)p Ft(,)j(and)d(the)g(lines)h(in)f(the)h -(here-do)s(cumen)m(t)f(are)h(not)f(expanded.)150 5121 +(expansion,)f(or)f(\014lename)g(ex-)150 2380 y(pansion)h(is)h(p)s +(erformed)f(on)g Fq(w)m(ord)t Ft(.)54 b(If)34 b(an)m(y)h(c)m(haracters) +i(in)d Fq(w)m(ord)k Ft(are)d(quoted,)i(the)e Fq(delimiter)42 +b Ft(is)35 b(the)150 2490 y(result)40 b(of)g(quote)h(remo)m(v)-5 +b(al)42 b(on)e Fq(w)m(ord)t Ft(,)i(and)d(the)i(lines)f(in)g(the)g +(here-do)s(cumen)m(t)h(are)f(not)g(expanded.)150 2600 y(If)32 b Fq(w)m(ord)k Ft(is)d(unquoted,)f(all)i(lines)f(of)f(the)h (here-do)s(cumen)m(t)g(are)g(sub)5 b(jected)32 b(to)i(parameter)f -(expansion,)150 5230 y(command)25 b(substitution,)g(and)g(arithmetic)h +(expansion,)150 2709 y(command)25 b(substitution,)g(and)g(arithmetic)h (expansion.)39 b(In)24 b(the)h(latter)h(case,)h(the)e(c)m(haracter)i -(sequence)150 5340 y Fs(\\newline)h Ft(is)j(ignored,)f(and)g(`)p +(sequence)150 2819 y Fs(\\newline)h Ft(is)j(ignored,)f(and)g(`)p Fs(\\)p Ft(')h(m)m(ust)f(b)s(e)g(used)f(to)i(quote)g(the)g(c)m (haracters)h(`)p Fs(\\)p Ft(',)e(`)p Fs($)p Ft(',)h(and)f(`)p -Fs(`)p Ft('.)p eop end -%%Page: 29 35 -TeXDict begin 29 34 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)275 299 -y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f(`)p -Fs(<<-)p Ft(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)e -(stripp)s(ed)f(from)h(input)150 408 y(lines)33 b(and)f(the)h(line)h -(con)m(taining)g Fq(delimiter)p Ft(.)49 b(This)32 b(allo)m(ws)i -(here-do)s(cumen)m(ts)f(within)f(shell)i(scripts)e(to)150 -518 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150 -762 y Fk(3.6.7)63 b(Here)41 b(Strings)275 1016 y Ft(A)30 -b(v)-5 b(arian)m(t)31 b(of)g(here)f(do)s(cumen)m(ts,)g(the)h(format)g -(is:)390 1161 y Fs(<<<)47 b Fj(word)275 1305 y Ft(The)29 +Fs(`)p Ft('.)275 2952 y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f +(`)p Fs(<<-)p Ft(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are) +e(stripp)s(ed)f(from)h(input)150 3062 y(lines)33 b(and)e(the)i(line)g +(con)m(taining)h Fq(delimiter)7 b Ft(.)47 b(This)31 b(allo)m(ws)j +(here-do)s(cumen)m(ts)f(within)e(shell)i(scripts)f(to)150 +3171 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150 +3368 y Fj(3.6.7)63 b(Here)41 b(Strings)150 3515 y Ft(A)30 +b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s(cumen)m(ts,)f(the)g(format)h +(is:)390 3648 y Fs(<<<)47 b Fi(word)275 3782 y Ft(The)29 b Fq(w)m(ord)34 b Ft(is)c(expanded)g(and)g(supplied)f(to)i(the)f -(command)h(on)f(its)h(standard)e(input.)150 1549 y Fk(3.6.8)63 -b(Duplicating)41 b(File)g(Descriptors)275 1803 y Ft(The)29 -b(redirection)i(op)s(erator)390 1948 y Fs([)p Fj(n)11 -b Fs(]<&)p Fj(word)150 2092 y Ft(is)35 b(used)e(to)j(duplicate)f(input) +(command)h(on)f(its)h(standard)e(input.)150 3979 y Fj(3.6.8)63 +b(Duplicating)41 b(File)g(Descriptors)150 4125 y Ft(The)30 +b(redirection)h(op)s(erator)390 4259 y Fs([)p Fi(n)11 +b Fs(]<&)p Fi(word)150 4392 y Ft(is)35 b(used)e(to)j(duplicate)f(input) f(\014le)g(descriptors.)53 b(If)34 b Fq(w)m(ord)k Ft(expands)c(to)h -(one)g(or)g(more)g(digits,)h(the)f(\014le)150 2202 y(descriptor)e +(one)g(or)g(more)g(digits,)h(the)f(\014le)150 4502 y(descriptor)e (denoted)h(b)m(y)g Fq(n)f Ft(is)g(made)h(to)g(b)s(e)f(a)h(cop)m(y)g(of) g(that)g(\014le)g(descriptor.)50 b(If)33 b(the)h(digits)g(in)f -Fq(w)m(ord)150 2311 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f +Fq(w)m(ord)150 4611 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f (descriptor)g(op)s(en)g(for)g(input,)g(a)h(redirection)g(error)f(o)s (ccurs.)40 b(If)29 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)150 -2421 y(to)31 b(`)p Fs(-)p Ft(',)g(\014le)g(descriptor)g +4721 y(to)31 b(`)p Fs(-)p Ft(',)g(\014le)g(descriptor)g Fq(n)f Ft(is)g(closed.)43 b(If)30 b Fq(n)g Ft(is)g(not)h(sp)s (eci\014ed,)f(the)h(standard)f(input)g(\(\014le)h(descriptor)f(0\))150 -2531 y(is)g(used.)275 2675 y(The)f(op)s(erator)390 2819 -y Fs([)p Fj(n)11 b Fs(]>&)p Fj(word)150 2964 y Ft(is)40 +4830 y(is)g(used.)275 4964 y(The)f(op)s(erator)390 5097 +y Fs([)p Fi(n)11 b Fs(]>&)p Fi(word)150 5230 y Ft(is)40 b(used)g(similarly)h(to)g(duplicate)f(output)g(\014le)h(descriptors.)70 b(If)40 b Fq(n)f Ft(is)i(not)f(sp)s(eci\014ed,)i(the)f(standard)150 -3073 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39 +5340 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39 b(If)30 b(the)g(digits)h(in)e Fq(w)m(ord)34 b Ft(do)29 -b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150 -3183 y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s(ccurs.)63 +b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)p +eop end +%%Page: 29 35 +TeXDict begin 29 34 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)150 299 +y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s(ccurs.)63 b(As)38 b(a)h(sp)s(ecial)f(case,)k(if)c Fq(n)f Ft(is)h(omitted,)k(and) -37 b Fq(w)m(ord)k Ft(do)s(es)150 3293 y(not)28 b(expand)f(to)i(one)f -(or)f(more)h(digits,)i(the)e(standard)e(output)i(and)f(standard)g -(error)g(are)i(redirected)f(as)150 3402 y(describ)s(ed)h(previously)-8 -b(.)150 3646 y Fk(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)275 -3900 y Ft(The)29 b(redirection)i(op)s(erator)390 4045 -y Fs([)p Fj(n)11 b Fs(]<&)p Fj(digit)p Fs(-)150 4189 -y Ft(mo)m(v)m(es)33 b(the)f(\014le)g(descriptor)f Fq(digit)k +37 b Fq(w)m(ord)k Ft(do)s(es)150 408 y(not)28 b(expand)f(to)i(one)f(or) +f(more)h(digits,)i(the)e(standard)e(output)i(and)f(standard)g(error)g +(are)i(redirected)f(as)150 518 y(describ)s(ed)h(previously)-8 +b(.)150 717 y Fj(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)150 +864 y Ft(The)30 b(redirection)h(op)s(erator)390 999 y +Fs([)p Fi(n)11 b Fs(]<&)p Fi(digit)g Fs(-)150 1133 y +Ft(mo)m(v)m(es)33 b(the)f(\014le)g(descriptor)f Fq(digit)k Ft(to)d(\014le)g(descriptor)g Fq(n)p Ft(,)f(or)h(the)g(standard)f -(input)f(\(\014le)j(descriptor)e(0\))150 4299 y(if)f +(input)f(\(\014le)j(descriptor)e(0\))150 1243 y(if)f Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)40 b Fq(digit)33 b Ft(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h -Fq(n)p Ft(.)275 4443 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s -(erator)390 4588 y Fs([)p Fj(n)11 b Fs(]>&)p Fj(digit)p -Fs(-)150 4732 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f +Fq(n)p Ft(.)275 1377 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s +(erator)390 1512 y Fs([)p Fi(n)11 b Fs(]>&)p Fi(digit)g +Fs(-)150 1646 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f Fq(digit)k Ft(to)e(\014le)f(descriptor)g Fq(n)p Ft(,)g(or)g(the)g (standard)f(output)h(\(\014le)g(descriptor)g(1\))150 -4842 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150 -5086 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g -(Reading)e(and)h(W)-10 b(riting)275 5340 y Ft(The)29 -b(redirection)i(op)s(erator)p eop end +1756 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150 +1955 y Fj(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g +(Reading)e(and)h(W)-10 b(riting)150 2102 y Ft(The)30 +b(redirection)h(op)s(erator)390 2236 y Fs([)p Fi(n)11 +b Fs(]<>)p Fi(word)150 2371 y Ft(causes)39 b(the)g(\014le)g(whose)g +(name)g(is)g(the)g(expansion)g(of)g Fq(w)m(ord)j Ft(to)d(b)s(e)g(op)s +(ened)f(for)g(b)s(oth)h(reading)g(and)150 2480 y(writing)33 +b(on)f(\014le)h(descriptor)f Fq(n)p Ft(,)h(or)g(on)f(\014le)h +(descriptor)g(0)g(if)f Fq(n)g Ft(is)h(not)g(sp)s(eci\014ed.)47 +b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 2590 y(exist,)e(it)g(is)g +(created.)150 2822 y Fr(3.7)68 b(Executing)46 b(Commands)150 +3046 y Fj(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 +3193 y Ft(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g +(shell)f(p)s(erforms)e(the)i(follo)m(wing)i(expansions,)e(assign-)150 +3303 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.) +199 3437 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h +(mark)m(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g +(preceding)f(the)330 3547 y(command)30 b(name\))h(and)f(redirections)h +(are)f(sa)m(v)m(ed)i(for)e(later)h(pro)s(cessing.)199 +3681 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5 +b(ariable)40 b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f +(\(see)h(Sec-)330 3791 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g +(17\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h +(the)e(\014rst)330 3901 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f +(the)g(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g +(are)g(the)h(argu-)330 4010 y(men)m(ts.)199 4145 y(3.)61 +b(Redirections)25 b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m +(v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d(26\).)199 +4279 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Fs(=)p +Ft(')h(in)e(eac)m(h)j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es) +e(tilde)i(expansion,)g(parameter)330 4389 y(expansion,)49 +b(command)d(substitution,)j(arithmetic)d(expansion,)k(and)45 +b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330 4498 y(b)s(eing)30 +b(assigned)h(to)g(the)f(v)-5 b(ariable.)275 4658 y(If)32 +b(no)i(command)f(name)g(results,)h(the)g(v)-5 b(ariable)34 +b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h(en)m(viron-) +150 4767 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5 b(ariables)26 +b(are)g(added)f(to)h(the)f(en)m(vironmen)m(t)h(of)g(the)f(executed)h +(command)g(and)150 4877 y(do)35 b(not)f(a\013ect)j(the)d(curren)m(t)h +(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g(the)f(assignmen) +m(ts)i(attempts)f(to)h(assign)150 4986 y(a)j(v)-5 b(alue)39 +b(to)g(a)g(readonly)f(v)-5 b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j +(and)c(the)i(command)f(exits)h(with)g(a)f(non-zero)150 +5096 y(status.)275 5230 y(If)33 b(no)g(command)g(name)h(results,)g +(redirections)g(are)g(p)s(erformed,)f(but)g(do)h(not)f(a\013ect)i(the)f +(curren)m(t)150 5340 y(shell)d(en)m(vironmen)m(t.)41 +b(A)30 b(redirection)h(error)f(causes)h(the)g(command)f(to)h(exit)g +(with)f(a)h(non-zero)g(status.)p eop end %%Page: 30 36 TeXDict begin 30 35 bop 150 -116 a Ft(30)2572 b(Bash)31 -b(Reference)g(Man)m(ual)390 299 y Fs([)p Fj(n)11 b Fs(]<>)p -Fj(word)150 431 y Ft(causes)39 b(the)g(\014le)g(whose)g(name)g(is)g -(the)g(expansion)g(of)g Fq(w)m(ord)j Ft(to)d(b)s(e)g(op)s(ened)f(for)g -(b)s(oth)h(reading)g(and)150 541 y(writing)33 b(on)f(\014le)h -(descriptor)f Fq(n)p Ft(,)h(or)g(on)f(\014le)h(descriptor)g(0)g(if)f -Fq(n)g Ft(is)h(not)g(sp)s(eci\014ed.)47 b(If)32 b(the)h(\014le)f(do)s -(es)h(not)150 651 y(exist,)e(it)g(is)g(created.)150 902 -y Fr(3.7)68 b(Executing)46 b(Commands)150 1230 y Fk(3.7.1)63 -b(Simple)41 b(Command)h(Expansion)275 1472 y Ft(When)35 -b(a)h(simple)f(command)h(is)f(executed,)j(the)e(shell)g(p)s(erforms)e -(the)i(follo)m(wing)h(expansions,)f(as-)150 1582 y(signmen)m(ts,)31 -b(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.)199 -1714 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h(mark)m -(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g(preceding)f -(the)330 1824 y(command)30 b(name\))h(and)f(redirections)h(are)f(sa)m -(v)m(ed)i(for)e(later)h(pro)s(cessing.)199 1956 y(2.)61 -b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5 b(ariable)40 -b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f(\(see)h(Sec-) -330 2066 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(17\).)61 -b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h(the)e -(\014rst)330 2175 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g -(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g(are)g -(the)h(argu-)330 2285 y(men)m(ts.)199 2418 y(3.)61 b(Redirections)25 -b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g -(Section)g(3.6)g([Redirections],)i(page)d(26\).)199 2550 -y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Fs(=)p Ft(')h(in)e(eac)m(h) -j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)e(tilde)i -(expansion,)g(parameter)330 2660 y(expansion,)49 b(command)d -(substitution,)j(arithmetic)d(expansion,)k(and)45 b(quote)h(remo)m(v)-5 -b(al)46 b(b)s(efore)330 2769 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5 -b(ariable.)275 2925 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v) --5 b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell) -h(en)m(viron-)150 3034 y(men)m(t.)39 b(Otherwise,)27 -b(the)e(v)-5 b(ariables)26 b(are)g(added)f(to)h(the)f(en)m(vironmen)m -(t)h(of)g(the)f(executed)h(command)g(and)150 3144 y(do)35 -b(not)f(a\013ect)j(the)d(curren)m(t)h(shell)g(en)m(vironmen)m(t.)54 -b(If)34 b(an)m(y)h(of)g(the)f(assignmen)m(ts)i(attempts)f(to)h(assign) -150 3254 y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5 -b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h -(with)g(a)f(non-zero)150 3363 y(status.)275 3496 y(If)33 -b(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s(erformed,)f -(but)g(do)h(not)f(a\013ect)i(the)f(curren)m(t)150 3605 -y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f(causes)h -(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275 -3738 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g -(expansion,)g(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m -(w.)150 3847 y(Otherwise,)39 b(the)e(command)g(exits.)62 -b(If)37 b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f -(substitu-)150 3957 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command) -f(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution) -150 4067 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f -(substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150 -4176 y(zero.)150 4394 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h -(Execution)275 4637 y Ft(After)35 b(a)h(command)f(has)h(b)s(een)e -(split)i(in)m(to)g(w)m(ords,)h(if)e(it)h(results)g(in)f(a)h(simple)f -(command)g(and)g(an)150 4746 y(optional)d(list)f(of)f(argumen)m(ts,)h -(the)g(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 4879 -y(1.)61 b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i -(the)e(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24 -b(there)g(exists)330 4988 y(a)h(shell)g(function)f(b)m(y)g(that)h -(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g -(in)g(Section)h(3.3)h([Shell)330 5098 y(F)-8 b(unctions],)31 -b(page)h(14.)199 5230 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g -(matc)m(h)i(a)e(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f -(the)g(list)h(of)g(shell)330 5340 y(builtins.)e(If)30 -b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.) -p eop end -%%Page: 31 37 -TeXDict begin 31 36 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)199 299 -y(3.)61 b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h(function)f -(nor)g(a)g(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i(Bash)330 -408 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Fs($PATH)d -Ft(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h(\014le)f(b)m -(y)g(that)330 518 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f -(remem)m(b)s(er)f(the)h(full)f(pathnames)g(of)h(executable)h(\014les)e -(to)330 628 y(a)m(v)m(oid)e(m)m(ultiple)f Fs(PATH)f Ft(searc)m(hes)i -(\(see)f(the)g(description)g(of)f Fs(hash)g Ft(in)g(Section)i(4.1)f -([Bourne)g(Shell)330 737 y(Builtins],)37 b(page)f(35\).)55 -b(A)35 b(full)g(searc)m(h)g(of)g(the)g(directories)h(in)f -Fs($PATH)e Ft(is)i(p)s(erformed)f(only)h(if)g(the)330 -847 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39 -b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g(shell)g(searc)m -(hes)330 956 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e -Fs(command_not_found_handle)p Ft(.)32 b(If)23 b(that)h(function)f -(exists,)330 1066 y(it)32 b(is)f(in)m(v)m(ok)m(ed)i(with)e(the)h -(original)g(command)f(and)g(the)h(original)g(command's)f(argumen)m(ts)h -(as)g(its)330 1176 y(argumen)m(ts,)h(and)e(the)i(function's)e(exit)i -(status)g(b)s(ecomes)f(the)g(exit)h(status)f(of)h(the)f(shell.)46 -b(If)31 b(that)330 1285 y(function)g(is)g(not)g(de\014ned,)f(the)i -(shell)f(prin)m(ts)f(an)h(error)g(message)h(and)f(returns)e(an)i(exit)h -(status)g(of)330 1395 y(127.)199 1531 y(4.)61 b(If)33 -b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g(the)h(command)f(name)g -(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)330 1640 -y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g(separate)h -(execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35 b(0)330 -1750 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h +b(Reference)g(Man)m(ual)275 299 y(If)26 b(there)i(is)f(a)h(command)f +(name)h(left)g(after)g(expansion,)g(execution)h(pro)s(ceeds)e(as)g +(describ)s(ed)f(b)s(elo)m(w.)150 408 y(Otherwise,)39 +b(the)e(command)g(exits.)62 b(If)37 b(one)g(of)g(the)h(expansions)f +(con)m(tained)h(a)g(command)f(substitu-)150 518 y(tion,)i(the)d(exit)h +(status)g(of)f(the)h(command)f(is)h(the)f(exit)h(status)g(of)f(the)h +(last)g(command)f(substitution)150 628 y(p)s(erformed.)55 +b(If)35 b(there)g(w)m(ere)h(no)g(command)f(substitutions,)i(the)e +(command)h(exits)g(with)f(a)h(status)g(of)150 737 y(zero.)150 +925 y Fj(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150 +1071 y Ft(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m +(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g(and)f(an)150 +1181 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g +(actions)h(are)f(tak)m(en.)199 1310 y(1.)61 b(If)24 b(the)g(command)g +(name)g(con)m(tains)i(no)e(slashes,)i(the)e(shell)h(attempts)g(to)g(lo) +s(cate)h(it.)39 b(If)24 b(there)g(exists)330 1419 y(a)h(shell)g +(function)f(b)m(y)g(that)h(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m +(ed)h(as)e(describ)s(ed)g(in)g(Section)h(3.3)h([Shell)330 +1529 y(F)-8 b(unctions],)31 b(page)h(14.)199 1657 y(2.)61 +b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e(function,)j(the)e +(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h(of)g(shell)330 +1767 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin) +f(is)g(in)m(v)m(ok)m(ed.)199 1895 y(3.)61 b(If)40 b(the)g(name)h(is)f +(neither)h(a)f(shell)h(function)f(nor)g(a)g(builtin,)j(and)d(con)m +(tains)h(no)g(slashes,)i(Bash)330 2005 y(searc)m(hes)c(eac)m(h)g +(elemen)m(t)g(of)g Fs($PATH)d Ft(for)i(a)g(directory)h(con)m(taining)g +(an)f(executable)h(\014le)f(b)m(y)g(that)330 2115 y(name.)56 +b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f(remem)m(b)s(er)f(the)h(full) +f(pathnames)g(of)h(executable)h(\014les)e(to)330 2224 +y(a)m(v)m(oid)e(m)m(ultiple)f Fs(PATH)f Ft(searc)m(hes)i(\(see)f(the)g +(description)g(of)f Fs(hash)g Ft(in)g(Section)i(4.1)f([Bourne)g(Shell) +330 2334 y(Builtins],)37 b(page)f(35\).)55 b(A)35 b(full)g(searc)m(h)g +(of)g(the)g(directories)h(in)f Fs($PATH)e Ft(is)i(p)s(erformed)f(only)h +(if)g(the)330 2443 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f +(table.)39 b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g +(shell)g(searc)m(hes)330 2553 y(for)e(a)h(de\014ned)e(shell)h(function) +h(named)e Fs(command_not_found_handle)p Ft(.)32 b(If)23 +b(that)h(function)f(exists,)330 2663 y(it)32 b(is)f(in)m(v)m(ok)m(ed)i +(with)e(the)h(original)g(command)f(and)g(the)h(original)g(command's)f +(argumen)m(ts)h(as)g(its)330 2772 y(argumen)m(ts,)h(and)e(the)i +(function's)e(exit)i(status)g(b)s(ecomes)f(the)g(exit)h(status)f(of)h +(the)f(shell.)46 b(If)31 b(that)330 2882 y(function)g(is)g(not)g +(de\014ned,)f(the)i(shell)f(prin)m(ts)f(an)h(error)g(message)h(and)f +(returns)e(an)i(exit)h(status)g(of)330 2991 y(127.)199 +3120 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g +(the)h(command)f(name)g(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the) +330 3229 y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g +(separate)h(execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35 +b(0)330 3339 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h (remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)h(set)g(to)g(the) -330 1860 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 -b(.)199 1996 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g +330 3449 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 +b(.)199 3577 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g (the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h -(\014le)g(is)g(not)330 2105 y(a)d(directory)-8 b(,)34 +(\014le)g(is)g(not)330 3687 y(a)d(directory)-8 b(,)34 b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fq(shell)g(script)h Ft(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330 -2215 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(34.)199 -2351 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async) +3796 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(33.)199 +3925 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async) m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f -(to)330 2460 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150 -2691 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)275 -2938 y Ft(The)29 b(shell)i(has)f(an)g Fq(execution)i(en)m(vironmen)m(t) -p Ft(,)f(whic)m(h)f(consists)h(of)g(the)f(follo)m(wing:)225 -3075 y Fp(\017)60 b Ft(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f +(to)330 4034 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150 +4222 y Fj(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150 +4369 y Ft(The)30 b(shell)g(has)h(an)f Fq(execution)h(en)m(vironmen)m(t) +r Ft(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225 +4497 y Fp(\017)60 b Ft(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f (shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g -(redirections)h(supplied)e(to)330 3185 y(the)g Fs(exec)e -Ft(builtin)225 3321 y Fp(\017)60 b Ft(the)28 b(curren)m(t)g(w)m(orking) +(redirections)h(supplied)e(to)330 4607 y(the)g Fs(exec)e +Ft(builtin)225 4735 y Fp(\017)60 b Ft(the)28 b(curren)m(t)g(w)m(orking) h(directory)g(as)f(set)h(b)m(y)f Fs(cd)p Ft(,)g Fs(pushd)p Ft(,)g(or)g Fs(popd)p Ft(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at) -330 3430 y(in)m(v)m(o)s(cation)225 3566 y Fp(\017)60 +330 4845 y(in)m(v)m(o)s(cation)225 4973 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f Fs(umask)f Ft(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)225 -3702 y Fp(\017)60 b Ft(curren)m(t)30 b(traps)g(set)h(b)m(y)f -Fs(trap)225 3838 y Fp(\017)60 b Ft(shell)30 b(parameters)f(that)h(are)g +5102 y Fp(\017)60 b Ft(curren)m(t)30 b(traps)g(set)h(b)m(y)f +Fs(trap)225 5230 y Fp(\017)60 b Ft(shell)30 b(parameters)f(that)h(are)g (set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f -Fs(set)f Ft(or)i(inherited)f(from)g(the)330 3948 y(shell's)i(paren)m(t) -f(in)g(the)h(en)m(vironmen)m(t)225 4084 y Fp(\017)60 -b Ft(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e -(inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330 -4194 y(en)m(vironmen)m(t)225 4330 y Fp(\017)60 b Ft(options)33 -b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or) -g(with)g(command-line)g(argumen)m(ts\))h(or)330 4439 -y(b)m(y)c Fs(set)225 4575 y Fp(\017)60 b Ft(options)31 +Fs(set)f Ft(or)i(inherited)f(from)g(the)330 5340 y(shell's)i(paren)m(t) +f(in)g(the)h(en)m(vironmen)m(t)p eop end +%%Page: 31 37 +TeXDict begin 31 36 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)225 299 +y Fp(\017)60 b Ft(shell)44 b(functions)f(de\014ned)f(during)h +(execution)i(or)e(inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h +(the)330 408 y(en)m(vironmen)m(t)225 543 y Fp(\017)60 +b Ft(options)33 b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m +(y)f(default)g(or)g(with)g(command-line)g(argumen)m(ts\))h(or)330 +652 y(b)m(y)c Fs(set)225 787 y Fp(\017)60 b Ft(options)31 b(enabled)f(b)m(y)g Fs(shopt)f Ft(\(see)j(Section)f(4.3.2)h([The)e -(Shopt)g(Builtin],)h(page)g(54\))225 4711 y Fp(\017)60 +(Shopt)g(Builtin],)h(page)g(55\))225 921 y Fp(\017)60 b Ft(shell)31 b(aliases)g(de\014ned)f(with)g Fs(alias)f Ft(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(79\))225 -4847 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f +1056 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f Fl(id)p Ft(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f -(\(see)i(Section)g(3.2.3)g([Lists],)330 4957 y(page)31 -b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Fs($$)p Ft(,)g(and)g(the)h(v)-5 -b(alue)31 b(of)f Fs($PPID)275 5121 y Ft(When)k(a)g(simple)h(command)f +(\(see)i(Section)g(3.2.3)g([Lists],)330 1165 y(page)31 +b(8\),)g(the)g(v)-5 b(alue)31 b(of)f Fs($$)p Ft(,)g(and)g(the)h(v)-5 +b(alue)31 b(of)f Fs($PPID)275 1324 y Ft(When)k(a)g(simple)h(command)f (other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g(to)h(b)s(e)f -(executed,)i(it)f(is)150 5230 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g +(executed,)i(it)f(is)150 1434 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g (separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g(of)h(the) -f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 5340 y(noted,)31 -b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)p -eop end -%%Page: 32 38 -TeXDict begin 32 37 bop 150 -116 a Ft(32)2572 b(Bash)31 -b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(the)31 -b(shell's)h(op)s(en)e(\014les,)i(plus)e(an)m(y)h(mo)s(di\014cations)h -(and)e(additions)h(sp)s(eci\014ed)g(b)m(y)g(redirections)g(to)330 -408 y(the)g(command)225 546 y Fp(\017)60 b Ft(the)31 -b(curren)m(t)f(w)m(orking)g(directory)225 684 y Fp(\017)60 -b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225 -821 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33 b(and)e(functions)h -(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5 b(ariables)32 -b(exp)s(orted)g(for)g(the)330 931 y(command,)e(passed)g(in)g(the)h(en)m -(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m(vironmen)m(t],)e(page)g -(32\))225 1069 y Fp(\017)60 b Ft(traps)31 b(caugh)m(t)h(b)m(y)f(the)g -(shell)h(are)f(reset)h(to)g(the)f(v)-5 b(alues)32 b(inherited)e(from)h -(the)g(shell's)h(paren)m(t,)g(and)330 1178 y(traps)e(ignored)h(b)m(y)f -(the)g(shell)h(are)g(ignored)275 1347 y(A)41 b(command)g(in)m(v)m(ok)m -(ed)i(in)e(this)h(separate)g(en)m(vironmen)m(t)g(cannot)g(a\013ect)h -(the)f(shell's)g(execution)150 1457 y(en)m(vironmen)m(t.)275 -1597 y(Command)35 b(substitution,)j(commands)e(group)s(ed)f(with)i -(paren)m(theses,)h(and)e(async)m(hronous)g(com-)150 1707 -y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i(subshell)e(en)m(vironmen)m -(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g(shell)g(en)m(vironmen)m(t,) -150 1817 y(except)i(that)g(traps)f(caugh)m(t)h(b)m(y)f(the)h(shell)f -(are)g(reset)h(to)g(the)f(v)-5 b(alues)35 b(that)g(the)f(shell)h -(inherited)e(from)150 1926 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s -(cation.)49 b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h -(as)e(part)g(of)h(a)f(pip)s(eline)g(are)h(also)150 2036 -y(executed)41 b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 -b(Changes)40 b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot) -150 2145 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m -(t.)275 2286 y(Subshells)24 b(spa)m(wned)h(to)i(execute)g(command)f +f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 1543 y(noted,)31 +b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225 +1678 y Fp(\017)60 b Ft(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e +(an)m(y)h(mo)s(di\014cations)h(and)e(additions)h(sp)s(eci\014ed)g(b)m +(y)g(redirections)g(to)330 1787 y(the)g(command)225 1922 +y Fp(\017)60 b Ft(the)31 b(curren)m(t)f(w)m(orking)g(directory)225 +2056 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225 +2190 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33 +b(and)e(functions)h(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5 +b(ariables)32 b(exp)s(orted)g(for)g(the)330 2300 y(command,)e(passed)g +(in)g(the)h(en)m(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m +(vironmen)m(t],)e(page)g(31\))225 2434 y Fp(\017)60 b +Ft(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the) +f(v)-5 b(alues)32 b(inherited)e(from)h(the)g(shell's)h(paren)m(t,)g +(and)330 2544 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored) +275 2703 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g +(en)m(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150 +2813 y(en)m(vironmen)m(t.)275 2947 y(Command)35 b(substitution,)j +(commands)e(group)s(ed)f(with)i(paren)m(theses,)h(and)e(async)m +(hronous)g(com-)150 3057 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i +(subshell)e(en)m(vironmen)m(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g +(shell)g(en)m(vironmen)m(t,)150 3166 y(except)i(that)g(traps)f(caugh)m +(t)h(b)m(y)f(the)h(shell)f(are)g(reset)h(to)g(the)f(v)-5 +b(alues)35 b(that)g(the)f(shell)h(inherited)e(from)150 +3276 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49 +b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h(as)e(part)g +(of)h(a)f(pip)s(eline)g(are)h(also)150 3385 y(executed)41 +b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 b(Changes)40 +b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)150 +3495 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275 +3629 y(Subshells)24 b(spa)m(wned)h(to)i(execute)g(command)f (substitutions)g(inherit)g(the)g(v)-5 b(alue)26 b(of)g(the)h(`)p -Fs(-e)p Ft(')e(option)150 2396 y(from)20 b(the)h(paren)m(t)g(shell.)37 +Fs(-e)p Ft(')e(option)150 3739 y(from)20 b(the)h(paren)m(t)g(shell.)37 b(When)21 b(not)f(in)h Fl(posix)f Ft(mo)s(de,)i(Bash)f(clears)g(the)g (`)p Fs(-e)p Ft(')f(option)h(in)g(suc)m(h)f(subshells.)275 -2536 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p +3873 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p Fs(&)p Ft(')g(and)f(job)g(con)m(trol)i(is)e(not)h(activ)m(e,)k(the)c -(default)g(standard)150 2646 y(input)e(for)g(the)h(command)f(is)h(the)g +(default)g(standard)150 3983 y(input)e(for)g(the)h(command)f(is)h(the)g (empt)m(y)g(\014le)f(`)p Fs(/dev/null)p Ft('.)61 b(Otherwise,)39 -b(the)f(in)m(v)m(ok)m(ed)h(command)150 2756 y(inherits)30 +b(the)f(in)m(v)m(ok)m(ed)h(command)150 4093 y(inherits)30 b(the)h(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s -(di\014ed)g(b)m(y)g(redirections.)150 2992 y Fk(3.7.4)63 -b(En)m(vironmen)m(t)275 3243 y Ft(When)31 b(a)g(program)h(is)f(in)m(v)m -(ok)m(ed)i(it)f(is)f(giv)m(en)h(an)g(arra)m(y)g(of)f(strings)g(called)i -(the)e Fq(en)m(vironmen)m(t)p Ft(.)45 b(This)150 3352 -y(is)30 b(a)h(list)g(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f -(form)g Fs(name=value)p Ft(.)275 3493 y(Bash)39 b(pro)m(vides)g(sev)m -(eral)i(w)m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69 -b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 3603 +(di\014ed)g(b)m(y)g(redirections.)150 4292 y Fj(3.7.4)63 +b(En)m(vironmen)m(t)150 4438 y Ft(When)28 b(a)i(program)e(is)h(in)m(v)m +(ok)m(ed)h(it)f(is)g(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)f(called)i +(the)f Fq(en)m(vironmen)m(t)r Ft(.)41 b(This)28 b(is)h(a)150 +4548 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g +Fs(name=value)p Ft(.)275 4682 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w) +m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69 +b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 4792 y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f (parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150 -3712 y(marking)26 b(it)g(for)g Fq(exp)s(ort)h Ft(to)g(c)m(hild)f(pro)s +4902 y(marking)26 b(it)g(for)g Fq(exp)s(ort)h Ft(to)g(c)m(hild)f(pro)s (cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m -(t.)39 b(The)150 3822 y Fs(export)c Ft(and)i(`)p Fs(declare)29 +(t.)39 b(The)150 5011 y Fs(export)c Ft(and)i(`)p Fs(declare)29 b(-x)p Ft(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g -(to)h(b)s(e)e(added)h(to)h(and)150 3931 y(deleted)21 +(to)h(b)s(e)e(added)h(to)h(and)150 5121 y(deleted)21 b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5 b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e -(mo)s(di\014ed,)i(the)150 4041 y(new)31 b(v)-5 b(alue)32 +(mo)s(di\014ed,)i(the)150 5230 y(new)31 b(v)-5 b(alue)32 b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e (old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150 -4151 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g +5340 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g (shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5 -b(alues)31 b(ma)m(y)h(b)s(e)150 4260 y(mo)s(di\014ed)26 -b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f -(the)g Fs(unset)e Ft(and)h(`)p Fs(export)j(-n)p Ft(')e(commands,)g -(plus)150 4370 y(an)m(y)k(additions)f(via)h(the)g Fs(export)d -Ft(and)i(`)p Fs(declare)f(-x)p Ft(')h(commands.)275 4510 -y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g -(function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150 -4620 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h -(as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150 -4730 y(page)g(16.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g -(a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h -(command.)275 4870 y(If)d(the)h(`)p Fs(-k)p Ft(')g(option)g(is)g(set)g -(\(see)h(Section)f(4.3.1)i([The)e(Set)g(Builtin],)h(page)f(51\),)i -(then)e(all)g(parameter)150 4980 y(assignmen)m(ts)i(are)g(placed)h(in)e -(the)h(en)m(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i -(that)f(precede)g(the)150 5090 y(command)g(name.)275 -5230 y(When)f(Bash)h(in)m(v)m(ok)m(es)i(an)e(external)g(command,)g(the) -g(v)-5 b(ariable)31 b(`)p Fs($_)p Ft(')f(is)g(set)g(to)h(the)f(full)f -(path)h(name)150 5340 y(of)h(the)f(command)g(and)g(passed)g(to)h(that)g -(command)f(in)g(its)h(en)m(vironmen)m(t.)p eop end -%%Page: 33 39 -TeXDict begin 33 38 bop 150 -116 a Ft(Chapter)30 b(3:)41 -b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)150 299 -y Fk(3.7.5)63 b(Exit)40 b(Status)275 539 y Ft(The)24 -b(exit)i(status)f(of)g(an)g(executed)h(command)e(is)h(the)h(v)-5 -b(alue)25 b(returned)f(b)m(y)h(the)g Fq(w)m(aitpid)k -Ft(system)c(call)150 648 y(or)e(equiv)-5 b(alen)m(t)25 -b(function.)38 b(Exit)24 b(statuses)g(fall)f(b)s(et)m(w)m(een)h(0)g -(and)f(255,)j(though,)f(as)e(explained)h(b)s(elo)m(w,)h(the)150 -758 y(shell)35 b(ma)m(y)g(use)f(v)-5 b(alues)35 b(ab)s(o)m(v)m(e)g(125) -h(sp)s(ecially)-8 b(.)54 b(Exit)35 b(statuses)g(from)f(shell)h -(builtins)f(and)f(comp)s(ound)150 867 y(commands)j(are)g(also)h -(limited)g(to)g(this)f(range.)58 b(Under)36 b(certain)h(circumstances,) -h(the)e(shell)h(will)f(use)150 977 y(sp)s(ecial)31 b(v)-5 -b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)f(failure)h(mo)s(des.)275 -1107 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s(oses,)e(a)j(command)e -(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h(status)f(has)f(succeeded.) -150 1217 y(A)e(non-zero)h(exit)g(status)g(indicates)g(failure.)40 -b(This)28 b(seemingly)i(coun)m(ter-in)m(tuitiv)m(e)i(sc)m(heme)e(is)f -(used)g(so)150 1326 y(there)34 b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m -(y)g(to)h(indicate)g(success)f(and)f(a)h(v)-5 b(ariet)m(y)35 -b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5 b(arious)150 -1436 y(failure)38 b(mo)s(des.)62 b(When)38 b(a)g(command)f(terminates)i -(on)e(a)i(fatal)g(signal)f(whose)g(n)m(um)m(b)s(er)e(is)i -Fq(N)p Ft(,)g(Bash)150 1546 y(uses)30 b(the)g(v)-5 b(alue)31 -b(128)p Fs(+)p Fq(N)42 b Ft(as)30 b(the)h(exit)g(status.)275 -1676 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s -(cess)e(created)i(to)g(execute)g(it)g(returns)d(a)j(status)f(of)150 -1785 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h -(executable,)h(the)f(return)e(status)i(is)f(126.)275 -1916 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f +b(alues)31 b(ma)m(y)h(b)s(e)p eop end +%%Page: 32 38 +TeXDict begin 32 37 bop 150 -116 a Ft(32)2572 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y(mo)s(di\014ed)26 b(in)g(the)h(shell,) +h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f(the)g +Fs(unset)e Ft(and)h(`)p Fs(export)j(-n)p Ft(')e(commands,)g(plus)150 +408 y(an)m(y)k(additions)f(via)h(the)g Fs(export)d Ft(and)i(`)p +Fs(declare)f(-x)p Ft(')h(commands.)275 549 y(The)j(en)m(vironmen)m(t)i +(for)f(an)m(y)g(simple)h(command)f(or)g(function)g(ma)m(y)g(b)s(e)g +(augmen)m(ted)h(temp)s(orarily)150 659 y(b)m(y)c(pre\014xing)e(it)i +(with)g(parameter)g(assignmen)m(ts,)h(as)e(describ)s(ed)g(in)g(Section) +i(3.4)g([Shell)e(P)m(arameters],)150 768 y(page)g(15.)41 +b(These)29 b(assignmen)m(t)i(statemen)m(ts)g(a\013ect)f(only)g(the)f +(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h(command.)275 +909 y(If)d(the)h(`)p Fs(-k)p Ft(')g(option)g(is)g(set)g(\(see)h +(Section)f(4.3.1)i([The)e(Set)g(Builtin],)h(page)f(51\),)i(then)e(all)g +(parameter)150 1019 y(assignmen)m(ts)i(are)g(placed)h(in)e(the)h(en)m +(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i(that)f +(precede)g(the)150 1128 y(command)g(name.)275 1269 y(When)f(Bash)h(in)m +(v)m(ok)m(es)i(an)e(external)g(command,)g(the)g(v)-5 +b(ariable)31 b(`)p Fs($_)p Ft(')f(is)g(set)g(to)h(the)f(full)f(path)h +(name)150 1379 y(of)h(the)f(command)g(and)g(passed)g(to)h(that)g +(command)f(in)g(its)h(en)m(vironmen)m(t.)150 1585 y Fj(3.7.5)63 +b(Exit)40 b(Status)150 1731 y Ft(The)26 b(exit)h(status)f(of)g(an)g +(executed)h(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h +(the)g Fq(w)m(aitpid)k Ft(system)d(call)g(or)150 1841 +y(equiv)-5 b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g +(b)s(et)m(w)m(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s +(elo)m(w,)h(the)150 1951 y(shell)i(ma)m(y)g(use)f(v)-5 +b(alues)35 b(ab)s(o)m(v)m(e)g(125)h(sp)s(ecially)-8 b(.)54 +b(Exit)35 b(statuses)g(from)f(shell)h(builtins)f(and)f(comp)s(ound)150 +2060 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58 +b(Under)36 b(certain)h(circumstances,)h(the)e(shell)h(will)f(use)150 +2170 y(sp)s(ecial)31 b(v)-5 b(alues)31 b(to)g(indicate)g(sp)s(eci\014c) +f(failure)h(mo)s(des.)275 2311 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s +(oses,)e(a)j(command)e(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h +(status)f(has)f(succeeded.)150 2420 y(A)e(non-zero)h(exit)g(status)g +(indicates)g(failure.)40 b(This)28 b(seemingly)i(coun)m(ter-in)m +(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 2530 y(there)34 +b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)g(to)h(indicate)g(success)f +(and)f(a)h(v)-5 b(ariet)m(y)35 b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5 +b(arious)150 2639 y(failure)37 b(mo)s(des.)61 b(When)37 +b(a)g(command)g(terminates)h(on)f(a)g(fatal)i(signal)f(whose)f(n)m(um)m +(b)s(er)e(is)i Fq(N)10 b Ft(,)38 b(Bash)150 2749 y(uses)30 +b(the)g(v)-5 b(alue)31 b(128)p Fs(+)p Fq(N)42 b Ft(as)30 +b(the)h(exit)g(status.)275 2890 y(If)k(a)h(command)g(is)g(not)g(found,) +g(the)g(c)m(hild)h(pro)s(cess)e(created)i(to)g(execute)g(it)g(returns)d +(a)j(status)f(of)150 2999 y(127.)42 b(If)30 b(a)h(command)f(is)g(found) +f(but)h(is)g(not)h(executable,)h(the)f(return)e(status)i(is)f(126.)275 +3140 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f (during)g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150 -2025 y(is)c(greater)i(than)e(zero.)275 2155 y(The)38 +3250 y(is)c(greater)i(than)e(zero.)275 3391 y(The)38 b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h -(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 2265 +(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 3500 y(ditional)i(Constructs],)h(page)f(10\))g(and)e(some)i(of)f(the)g(list) g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150 -2375 y(page)31 b(9\).)275 2505 y(All)40 b(of)g(the)h(Bash)f(builtins)f +3610 y(page)31 b(8\).)275 3751 y(All)40 b(of)g(the)h(Bash)f(builtins)f (return)g(an)h(exit)h(status)g(of)f(zero)h(if)f(they)g(succeed)g(and)g -(a)g(non-zero)150 2614 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m +(a)g(non-zero)150 3860 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m (y)g(b)s(e)f(used)g(b)m(y)g(the)h(conditional)h(and)e(list)h -(constructs.)50 b(All)35 b(builtins)150 2724 y(return)29 +(constructs.)50 b(All)35 b(builtins)150 3970 y(return)29 b(an)i(exit)g(status)g(of)f(2)h(to)g(indicate)g(incorrect)h(usage.)150 -2935 y Fk(3.7.6)63 b(Signals)275 3175 y Ft(When)27 b(Bash)h(is)h(in)m -(teractiv)m(e,)i(in)d(the)g(absence)h(of)f(an)m(y)g(traps,)h(it)f -(ignores)h Fs(SIGTERM)d Ft(\(so)i(that)h(`)p Fs(kill)150 -3285 y(0)p Ft(')k(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j +4175 y Fj(3.7.6)63 b(Signals)150 4322 y Ft(When)36 b(Bash)g(is)h(in)m +(teractiv)m(e,)j(in)c(the)h(absence)f(of)h(an)m(y)f(traps,)i(it)e +(ignores)h Fs(SIGTERM)d Ft(\(so)j(that)g(`)p Fs(kill)150 +4432 y(0)p Ft(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j (shell\),)f(and)d Fs(SIGINT)f Ft(is)i(caugh)m(t)h(and)f(handled)f(\(so) -h(that)h(the)f Fs(wait)150 3394 y Ft(builtin)24 b(is)h(in)m +h(that)h(the)f Fs(wait)150 4542 y Ft(builtin)24 b(is)h(in)m (terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d Fs(SIGINT)p Ft(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s -(ops.)150 3504 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g +(ops.)150 4651 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g Fs(SIGQUIT)p Ft(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h -(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 3614 y(page)f(89\),)h +(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 4761 y(page)f(89\),)h (Bash)e(ignores)h Fs(SIGTTIN)p Ft(,)e Fs(SIGTTOU)p Ft(,)g(and)g -Fs(SIGTSTP)p Ft(.)275 3744 y(Non-builtin)i(commands)g(started)g(b)m(y)g +Fs(SIGTSTP)p Ft(.)275 4902 y(Non-builtin)i(commands)g(started)g(b)m(y)g (Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5 -b(alues)31 b(inherited)150 3853 y(b)m(y)37 b(the)h(shell)g(from)f(its)h +b(alues)31 b(inherited)150 5011 y(b)m(y)37 b(the)h(shell)g(from)f(its)h (paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f -(e\013ect,)k(async)m(hronous)c(commands)150 3963 y(ignore)f +(e\013ect,)k(async)m(hronous)c(commands)150 5121 y(ignore)f Fs(SIGINT)e Ft(and)h Fs(SIGQUIT)e Ft(in)j(addition)f(to)i(these)f (inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)150 -4073 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m +5230 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m (eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)f -Fs(SIGTTIN)p Ft(,)150 4182 y Fs(SIGTTOU)p Ft(,)h(and)g -Fs(SIGTSTP)p Ft(.)275 4312 y(The)h(shell)i(exits)g(b)m(y)f(default)g -(up)s(on)f(receipt)i(of)f(a)h Fs(SIGHUP)p Ft(.)42 b(Before)32 -b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 4422 -y(resends)41 b(the)i Fs(SIGHUP)e Ft(to)i(all)g(jobs,)i(running)c(or)h -(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g -Fs(SIGCONT)d Ft(to)150 4532 y(ensure)32 b(that)h(they)g(receiv)m(e)i -(the)e Fs(SIGHUP)p Ft(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell) -g(from)g(sending)f(the)h Fs(SIGHUP)e Ft(signal)150 4641 -y(to)i(a)g(particular)g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h -(from)g(the)f(jobs)g(table)i(with)e(the)h Fs(disown)e -Ft(builtin)h(\(see)150 4751 y(Section)f(7.2)g([Job)f(Con)m(trol)h -(Builtins],)g(page)g(90\))h(or)e(mark)m(ed)g(to)h(not)f(receiv)m(e)i -Fs(SIGHUP)d Ft(using)h Fs(disown)150 4860 y(-h)p Ft(.)275 -4991 y(If)38 b(the)h Fs(huponexit)e Ft(shell)i(option)g(has)g(b)s(een)f -(set)i(with)f Fs(shopt)e Ft(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150 -5100 y(Builtin],)31 b(page)g(54\),)h(Bash)f(sends)e(a)i -Fs(SIGHUP)e Ft(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login) -e(shell)g(exits.)275 5230 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g -(command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic) -m(h)h(a)g(trap)150 5340 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g -(not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55 -b(When)35 b(Bash)g(is)p eop end -%%Page: 34 40 -TeXDict begin 34 39 bop 150 -116 a Ft(34)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y(w)m(aiting)38 b(for)f(an)g(async)m -(hronous)g(command)g(via)h(the)f Fs(wait)f Ft(builtin,)i(the)g -(reception)g(of)f(a)g(signal)h(for)150 408 y(whic)m(h)d(a)g(trap)g(has) -g(b)s(een)f(set)h(will)h(cause)f(the)g Fs(wait)f Ft(builtin)h(to)g -(return)f(immediately)i(with)f(an)g(exit)150 518 y(status)c(greater)g -(than)f(128,)i(immediately)g(after)f(whic)m(h)f(the)h(trap)f(is)g -(executed.)150 775 y Fr(3.8)68 b(Shell)45 b(Scripts)275 -1020 y Ft(A)c(shell)h(script)g(is)g(a)g(text)h(\014le)f(con)m(taining)h -(shell)f(commands.)75 b(When)41 b(suc)m(h)h(a)g(\014le)g(is)g(used)f -(as)150 1129 y(the)33 b(\014rst)f(non-option)h(argumen)m(t)h(when)e(in) -m(v)m(oking)i(Bash,)g(and)e(neither)h(the)g(`)p Fs(-c)p -Ft(')g(nor)g(`)p Fs(-s)p Ft(')f(option)i(is)150 1239 -y(supplied)j(\(see)j(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)h(page)f -(71\),)i(Bash)d(reads)f(and)g(executes)i(commands)150 -1348 y(from)31 b(the)h(\014le,)h(then)e(exits.)46 b(This)31 -b(mo)s(de)g(of)h(op)s(eration)h(creates)g(a)f(non-in)m(teractiv)m(e)i -(shell.)45 b(The)32 b(shell)150 1458 y(\014rst)26 b(searc)m(hes)h(for)f -(the)g(\014le)h(in)f(the)g(curren)m(t)h(directory)-8 -b(,)28 b(and)e(lo)s(oks)g(in)h(the)f(directories)h(in)f -Fs($PATH)f Ft(if)i(not)150 1567 y(found)i(there.)275 -1702 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f +Fs(SIGTTIN)p Ft(,)150 5340 y Fs(SIGTTOU)p Ft(,)h(and)g +Fs(SIGTSTP)p Ft(.)p eop end +%%Page: 33 39 +TeXDict begin 33 38 bop 150 -116 a Ft(Chapter)30 b(3:)41 +b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)275 299 +y(The)30 b(shell)i(exits)g(b)m(y)f(default)g(up)s(on)f(receipt)i(of)f +(a)h Fs(SIGHUP)p Ft(.)42 b(Before)32 b(exiting,)h(an)e(in)m(teractiv)m +(e)j(shell)150 408 y(resends)41 b(the)i Fs(SIGHUP)e Ft(to)i(all)g +(jobs,)i(running)c(or)h(stopp)s(ed.)76 b(Stopp)s(ed)41 +b(jobs)h(are)h(sen)m(t)g Fs(SIGCONT)d Ft(to)150 518 y(ensure)32 +b(that)h(they)g(receiv)m(e)i(the)e Fs(SIGHUP)p Ft(.)47 +b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)g(from)g(sending)f(the)h +Fs(SIGHUP)e Ft(signal)150 628 y(to)i(a)g(particular)g(job,)g(it)g +(should)f(b)s(e)g(remo)m(v)m(ed)h(from)g(the)f(jobs)g(table)i(with)e +(the)h Fs(disown)e Ft(builtin)h(\(see)150 737 y(Section)f(7.2)g([Job)f +(Con)m(trol)h(Builtins],)g(page)g(90\))h(or)e(mark)m(ed)g(to)h(not)f +(receiv)m(e)i Fs(SIGHUP)d Ft(using)h Fs(disown)150 847 +y(-h)p Ft(.)275 992 y(If)38 b(the)h Fs(huponexit)e Ft(shell)i(option)g +(has)g(b)s(een)f(set)i(with)f Fs(shopt)e Ft(\(see)j(Section)g(4.3.2)h +([The)e(Shopt)150 1102 y(Builtin],)31 b(page)g(55\),)h(Bash)f(sends)e +(a)i Fs(SIGHUP)e Ft(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i +(login)e(shell)g(exits.)275 1247 y(If)38 b(Bash)h(is)g(w)m(aiting)h +(for)f(a)g(command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h +(for)e(whic)m(h)h(a)g(trap)150 1357 y(has)c(b)s(een)f(set,)i(the)f +(trap)g(will)g(not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f +(completes.)55 b(When)35 b(Bash)g(is)150 1467 y(w)m(aiting)j(for)f(an)g +(async)m(hronous)g(command)g(via)h(the)f Fs(wait)f Ft(builtin,)i(the)g +(reception)g(of)f(a)g(signal)h(for)150 1576 y(whic)m(h)d(a)g(trap)g +(has)g(b)s(een)f(set)h(will)h(cause)f(the)g Fs(wait)f +Ft(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150 +1686 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h) +f(the)h(trap)f(is)g(executed.)150 1935 y Fr(3.8)68 b(Shell)45 +b(Scripts)150 2094 y Ft(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le) +f(con)m(taining)h(shell)f(commands.)40 b(When)29 b(suc)m(h)g(a)h +(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 2204 y(non-option)i +(argumen)m(t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)e(neither)h(the)g(`) +p Fs(-c)p Ft(')g(nor)g(`)p Fs(-s)p Ft(')g(option)g(is)g(supplied)150 +2313 y(\(see)25 b(Section)h(6.1)f([In)m(v)m(oking)h(Bash],)g(page)f +(71\),)i(Bash)e(reads)f(and)g(executes)i(commands)e(from)g(the)h +(\014le,)150 2423 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s +(eration)f(creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46 +b(The)31 b(shell)i(\014rst)e(searc)m(hes)150 2532 y(for)d(the)g(\014le) +g(in)g(the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e +(the)i(directories)g(in)e Fs($PATH)g Ft(if)h(not)g(found)e(there.)275 +2678 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f (sp)s(ecial)i(parameter)f Fs(0)f Ft(to)h(the)g(name)g(of)g(the)g -(\014le,)150 1812 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j +(\014le,)150 2787 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j (and)d(the)h(p)s(ositional)g(parameters)f(are)h(set)g(to)g(the)g -(remain-)150 1921 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m +(remain-)150 2897 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m (en.)67 b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h -(the)f(p)s(ositional)150 2031 y(parameters)31 b(are)f(unset.)275 -2165 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m +(the)f(p)s(ositional)150 3007 y(parameters)31 b(are)f(unset.)275 +3152 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m (y)e(using)g(the)h Fs(chmod)e Ft(command)h(to)h(turn)e(on)i(the)150 -2275 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h +3262 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h (\014le)f(while)g(searc)m(hing)h(the)f Fs($PATH)f Ft(for)h(a)h -(command,)h(it)150 2384 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h -(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 2519 -y Fs(filename)46 b Fj(arguments)150 2653 y Ft(is)30 b(equiv)-5 -b(alen)m(t)32 b(to)f(executing)390 2788 y Fs(bash)47 -b(filename)e Fj(arguments)150 2922 y Ft(if)30 b Fs(filename)d +(command,)h(it)150 3371 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h +(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 3517 +y Fs(filename)46 b Fi(arguments)150 3662 y Ft(is)30 b(equiv)-5 +b(alen)m(t)32 b(to)f(executing)390 3808 y Fs(bash)47 +b(filename)e Fi(arguments)150 3953 y Ft(if)30 b Fs(filename)d Ft(is)j(an)f(executable)j(shell)e(script.)40 b(This)29 b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150 -3032 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok) +4063 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok) m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h -(that)f(the)150 3142 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s +(that)f(the)150 4172 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s (ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g -Fs(hash)f Ft(in)h(Section)h(4.1)150 3251 y([Bourne)30 +Fs(hash)f Ft(in)h(Section)h(4.1)150 4282 y([Bourne)30 b(Shell)h(Builtins],)g(page)g(35\))h(are)e(retained)h(b)m(y)f(the)h(c)m -(hild.)275 3386 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g +(hild.)275 4427 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g (a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution) -150 3495 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h +150 4537 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h (script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p -Fs(#!)p Ft(',)f(the)g(remainder)150 3605 y(of)d(the)g(line)h(sp)s +Fs(#!)p Ft(',)f(the)g(remainder)150 4647 y(of)d(the)g(line)h(sp)s (eci\014es)e(an)h(in)m(terpreter)g(for)g(the)g(program.)43 b(Th)m(us,)30 b(y)m(ou)h(can)h(sp)s(ecify)e(Bash,)i Fs(awk)p -Ft(,)e(P)m(erl,)150 3714 y(or)g(some)h(other)g(in)m(terpreter)g(and)e +Ft(,)e(P)m(erl,)150 4756 y(or)g(some)h(other)g(in)m(terpreter)g(and)e (write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h -(language.)275 3849 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m +(language.)275 4902 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m (terpreter)g(consist)g(of)g(a)g(single)h(optional)f(argumen)m(t)h -(follo)m(wing)g(the)150 3958 y(in)m(terpreter)33 b(name)h(on)f(the)g +(follo)m(wing)g(the)150 5011 y(in)m(terpreter)33 b(name)h(on)f(the)g (\014rst)f(line)i(of)f(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y) -e(the)g(name)g(of)g(the)h(script)f(\014le,)150 4068 y(follo)m(w)m(ed)g +e(the)g(name)g(of)g(the)h(script)f(\014le,)150 5121 y(follo)m(w)m(ed)g (b)m(y)f(the)f(rest)h(of)g(the)f(argumen)m(ts.)45 b(Bash)31 b(will)h(p)s(erform)e(this)i(action)h(on)e(op)s(erating)h(systems)150 -4178 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40 +5230 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40 b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f(of)h(Unix)f(limit)i -(the)f(in)m(terpreter)150 4287 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g -(maxim)m(um)f(of)h(32)g(c)m(haracters.)275 4422 y(Bash)h(scripts)g -(often)g(b)s(egin)g(with)g Fs(#!)e(/bin/bash)g Ft(\(assuming)i(that)h -(Bash)f(has)g(b)s(een)f(installed)i(in)150 4531 y(`)p -Fs(/bin)p Ft('\),)25 b(since)e(this)g(ensures)f(that)i(Bash)f(will)h(b) -s(e)e(used)h(to)h(in)m(terpret)f(the)g(script,)i(ev)m(en)f(if)f(it)h -(is)f(executed)150 4641 y(under)29 b(another)h(shell.)p -eop end +(the)f(in)m(terpreter)150 5340 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g +(maxim)m(um)f(of)h(32)g(c)m(haracters.)p eop end +%%Page: 34 40 +TeXDict begin 34 39 bop 150 -116 a Ft(34)2572 b(Bash)31 +b(Reference)g(Man)m(ual)275 299 y(Bash)h(scripts)g(often)g(b)s(egin)g +(with)g Fs(#!)e(/bin/bash)g Ft(\(assuming)i(that)h(Bash)f(has)g(b)s +(een)f(installed)i(in)150 408 y(`)p Fs(/bin)p Ft('\),)25 +b(since)e(this)g(ensures)f(that)i(Bash)f(will)h(b)s(e)e(used)h(to)h(in) +m(terpret)f(the)g(script,)i(ev)m(en)f(if)f(it)h(is)f(executed)150 +518 y(under)29 b(another)h(shell.)p eop end %%Page: 35 41 TeXDict begin 35 40 bop 150 -116 a Ft(Chapter)30 b(4:)41 b(Shell)30 b(Builtin)h(Commands)2069 b(35)150 299 y Fo(4)80 -b(Shell)53 b(Builtin)f(Commands)275 535 y Ft(Builtin)25 -b(commands)f(are)h(con)m(tained)h(within)e(the)h(shell)g(itself.)40 -b(When)24 b(the)h(name)g(of)g(a)g(builtin)f(com-)150 -645 y(mand)i(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f +b(Shell)53 b(Builtin)f(Commands)150 541 y Ft(Builtin)34 +b(commands)f(are)h(con)m(tained)g(within)f(the)h(shell)g(itself.)50 +b(When)34 b(the)f(name)h(of)f(a)h(builtin)f(com-)150 +651 y(mand)26 b(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f (simple)h(command)f(\(see)h(Section)g(3.2.1)h([Simple)f(Commands],)150 -754 y(page)21 b(8\),)j(the)d(shell)g(executes)h(the)f(command)f +760 y(page)21 b(8\),)j(the)d(shell)g(executes)h(the)f(command)f (directly)-8 b(,)24 b(without)d(in)m(v)m(oking)h(another)f(program.)37 -b(Builtin)150 864 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g +b(Builtin)150 870 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g (functionalit)m(y)h(imp)s(ossible)e(or)h(incon)m(v)m(enien)m(t)h(to)f -(obtain)150 974 y(with)30 b(separate)h(utilities.)275 -1109 y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f +(obtain)150 979 y(with)30 b(separate)h(utilities.)275 +1117 y(This)c(section)j(brie\015y)e(describ)s(es)g(the)h(builtins)f (whic)m(h)g(Bash)h(inherits)f(from)g(the)h(Bourne)g(Shell,)g(as)150 -1218 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f +1226 y(w)m(ell)i(as)g(the)g(builtin)e(commands)h(whic)m(h)h(are)f (unique)g(to)h(or)f(ha)m(v)m(e)i(b)s(een)d(extended)i(in)f(Bash.)275 -1354 y(Sev)m(eral)45 b(builtin)e(commands)h(are)h(describ)s(ed)e(in)h +1363 y(Sev)m(eral)45 b(builtin)e(commands)h(are)h(describ)s(ed)e(in)h (other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150 -1463 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f +1473 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f (con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h -(Builtins],)150 1573 y(page)40 b(90\),)j(the)c(directory)h(stac)m(k)g +(Builtins],)150 1583 y(page)40 b(90\),)j(the)c(directory)h(stac)m(k)g (\(see)g(Section)g(6.8.1)h([Directory)g(Stac)m(k)f(Builtins],)i(page)e -(82\),)j(the)150 1682 y(command)23 b(history)h(\(see)g(Section)g(9.2)h +(81\),)j(the)150 1692 y(command)23 b(history)h(\(see)g(Section)g(9.2)h ([Bash)f(History)g(Builtins],)h(page)g(121\),)h(and)d(the)h -(programmable)150 1792 y(completion)32 b(facilities)g(\(see)g(Section)f -(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(116\).)275 -1927 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended) -g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2062 y(Unless)20 -b(otherwise)h(noted,)h(eac)m(h)g(builtin)e(command)g(do)s(cumen)m(ted)g -(as)h(accepting)h(options)e(preceded)150 2172 y(b)m(y)31 -b(`)p Fs(-)p Ft(')g(accepts)i(`)p Fs(--)p Ft(')e(to)h(signify)f(the)h -(end)e(of)i(the)f(options.)44 b(F)-8 b(or)32 b(example,)g(the)f -Fs(:)p Ft(,)h Fs(true)p Ft(,)e Fs(false)p Ft(,)h(and)150 -2282 y Fs(test)e Ft(builtins)h(do)g(not)h(accept)h(options.)150 -2541 y Fr(4.1)68 b(Bourne)45 b(Shell)g(Builtins)275 2786 -y Ft(The)31 b(follo)m(wing)i(shell)e(builtin)h(commands)f(are)h -(inherited)f(from)g(the)h(Bourne)f(Shell.)45 b(These)31 -b(com-)150 2895 y(mands)e(are)i(implemen)m(ted)g(as)g(sp)s(eci\014ed)e -(b)m(y)i(the)f Fl(posix)g Ft(standard.)150 3056 y Fs(:)g -Ft(\(a)h(colon\))870 3165 y Fs(:)47 b([)p Fj(arguments)11 -b Fs(])630 3300 y Ft(Do)43 b(nothing)f(b)s(ey)m(ond)g(expanding)f -Fq(argumen)m(ts)46 b Ft(and)c(p)s(erforming)f(redirections.)76 -b(The)630 3410 y(return)29 b(status)i(is)f(zero.)150 -3570 y Fs(.)g Ft(\(a)h(p)s(erio)s(d\))870 3679 y Fs(.)47 -b Fj(filename)57 b Fs([)p Fj(arguments)11 b Fs(])630 -3814 y Ft(Read)34 b(and)f(execute)i(commands)e(from)g(the)h +(programmable)150 1802 y(completion)32 b(facilities)g(\(see)g(Section)f +(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(117\).)275 +1939 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended) +g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2076 y(Unless)39 +b(otherwise)h(noted,)i(eac)m(h)f(builtin)e(command)g(do)s(cumen)m(ted)g +(as)h(accepting)h(options)f(pre-)150 2186 y(ceded)33 +b(b)m(y)h(`)p Fs(-)p Ft(')f(accepts)i(`)p Fs(--)p Ft(')e(to)h(signify)f +(the)h(end)e(of)i(the)f(options.)50 b(The)33 b Fs(:)p +Ft(,)h Fs(true)p Ft(,)f Fs(false)p Ft(,)f(and)h Fs(test)150 +2295 y Ft(builtins)i(do)g(not)h(accept)g(options)g(and)f(do)g(not)h +(treat)g(`)p Fs(--)p Ft(')f(sp)s(ecially)-8 b(.)57 b(The)35 +b Fs(exit)p Ft(,)h Fs(logout)p Ft(,)f Fs(break)p Ft(,)150 +2405 y Fs(continue)p Ft(,)29 b Fs(let)p Ft(,)i(and)g +Fs(shift)f Ft(builtins)g(accept)j(and)e(pro)s(cess)g(argumen)m(ts)g(b)s +(eginning)g(with)g(`)p Fs(-)p Ft(')g(with-)150 2515 y(out)f(requiring)f +(`)p Fs(--)p Ft('.)41 b(Other)29 b(builtins)h(that)g(accept)h(argumen)m +(ts)f(but)g(are)g(not)g(sp)s(eci\014ed)f(as)h(accepting)150 +2624 y(options)25 b(in)m(terpret)f(argumen)m(ts)h(b)s(eginning)e(with)h +(`)p Fs(-)p Ft(')h(as)f(in)m(v)-5 b(alid)25 b(options)g(and)e(require)h +(`)p Fs(--)p Ft(')g(to)h(prev)m(en)m(t)150 2734 y(this)30 +b(in)m(terpretation.)150 2970 y Fr(4.1)68 b(Bourne)45 +b(Shell)g(Builtins)150 3130 y Ft(The)22 b(follo)m(wing)j(shell)d +(builtin)h(commands)f(are)h(inherited)g(from)f(the)h(Bourne)g(Shell.)38 +b(These)22 b(commands)150 3239 y(are)31 b(implemen)m(ted)g(as)f(sp)s +(eci\014ed)g(b)m(y)g(the)h Fl(posix)e Ft(standard.)150 +3403 y Fs(:)h Ft(\(a)h(colon\))870 3512 y Fs(:)47 b([)p +Fi(arguments)11 b Fs(])630 3648 y Ft(Do)43 b(nothing)f(b)s(ey)m(ond)g +(expanding)f Fq(argumen)m(ts)46 b Ft(and)c(p)s(erforming)f +(redirections.)76 b(The)630 3758 y(return)29 b(status)i(is)f(zero.)150 +3920 y Fs(.)g Ft(\(a)h(p)s(erio)s(d\))870 4029 y Fs(.)47 +b Fi(filename)57 b Fs([)p Fi(arguments)11 b Fs(])630 +4165 y Ft(Read)34 b(and)f(execute)i(commands)e(from)g(the)h Fq(\014lename)39 b Ft(argumen)m(t)34 b(in)f(the)h(curren)m(t)g(shell) -630 3924 y(con)m(text.)45 b(If)31 b Fq(\014lename)37 +630 4275 y(con)m(text.)45 b(If)31 b Fq(\014lename)37 b Ft(do)s(es)31 b(not)g(con)m(tain)i(a)e(slash,)h(the)g Fs(PATH)e Ft(v)-5 b(ariable)32 b(is)f(used)f(to)i(\014nd)630 -4033 y Fq(\014lename)p Ft(.)52 b(When)34 b(Bash)g(is)h(not)f(in)g -Fl(posix)f Ft(mo)s(de,)i(the)g(curren)m(t)f(directory)g(is)g(searc)m -(hed)630 4143 y(if)d Fq(\014lename)36 b Ft(is)31 b(not)h(found)d(in)i +4384 y Fq(\014lename)5 b Ft(.)51 b(When)34 b(Bash)g(is)g(not)g(in)f +Fl(posix)g Ft(mo)s(de,)i(the)f(curren)m(t)f(directory)i(is)e(searc)m +(hed)630 4494 y(if)e Fq(\014lename)36 b Ft(is)31 b(not)h(found)d(in)i Fs($PATH)p Ft(.)41 b(If)31 b(an)m(y)g Fq(argumen)m(ts)k -Ft(are)c(supplied,)f(they)i(b)s(ecome)630 4253 y(the)e(p)s(ositional)h +Ft(are)c(supplied,)f(they)i(b)s(ecome)630 4604 y(the)e(p)s(ositional)h (parameters)g(when)e Fq(\014lename)35 b Ft(is)30 b(executed.)42 -b(Otherwise)30 b(the)g(p)s(ositional)630 4362 y(parameters)43 +b(Otherwise)30 b(the)g(p)s(ositional)630 4713 y(parameters)43 b(are)h(unc)m(hanged.)79 b(The)42 b(return)g(status)i(is)f(the)g(exit)h -(status)g(of)f(the)g(last)630 4472 y(command)37 b(executed,)k(or)c +(status)g(of)f(the)g(last)630 4823 y(command)37 b(executed,)k(or)c (zero)h(if)g(no)f(commands)g(are)h(executed.)63 b(If)36 -b Fq(\014lename)43 b Ft(is)38 b(not)630 4581 y(found,)22 +b Fq(\014lename)43 b Ft(is)38 b(not)630 4932 y(found,)22 b(or)f(cannot)g(b)s(e)f(read,)j(the)e(return)f(status)h(is)g(non-zero.) 38 b(This)20 b(builtin)h(is)f(equiv)-5 b(alen)m(t)630 -4691 y(to)31 b Fs(source)p Ft(.)150 4851 y Fs(break)870 -4986 y(break)46 b([)p Fj(n)11 b Fs(])630 5121 y Ft(Exit)45 -b(from)f(a)g Fs(for)p Ft(,)k Fs(while)p Ft(,)e Fs(until)p -Ft(,)h(or)d Fs(select)f Ft(lo)s(op.)83 b(If)44 b Fq(n)g -Ft(is)g(supplied,)j(the)e Fq(n)p Ft(th)630 5230 y(enclosing)c(lo)s(op)f -(is)h(exited.)70 b Fq(n)40 b Ft(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i -(equal)f(to)h(1.)70 b(The)40 b(return)630 5340 y(status)31 -b(is)f(zero)h(unless)f Fq(n)g Ft(is)g(not)h(greater)g(than)g(or)f -(equal)h(to)g(1.)p eop end +5042 y(to)31 b Fs(source)p Ft(.)150 5204 y Fs(break)870 +5340 y(break)46 b([)p Fi(n)11 b Fs(])p eop end %%Page: 36 42 TeXDict begin 36 41 bop 150 -116 a Ft(36)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(cd)870 430 y(cd)47 -b([-L|-P])f([)p Fj(directory)11 b Fs(])630 562 y Ft(Change)37 -b(the)g(curren)m(t)f(w)m(orking)i(directory)f(to)h Fq(directory)p -Ft(.)60 b(If)37 b Fq(directory)45 b Ft(is)37 b(not)g(giv)m(en,)630 -671 y(the)31 b(v)-5 b(alue)31 b(of)g(the)g Fs(HOME)e -Ft(shell)i(v)-5 b(ariable)32 b(is)f(used.)40 b(If)31 -b(the)g(shell)g(v)-5 b(ariable)31 b Fs(CDPATH)e Ft(exists,)630 -781 y(it)f(is)f(used)f(as)h(a)h(searc)m(h)f(path.)40 -b(If)26 b Fq(directory)35 b Ft(b)s(egins)27 b(with)g(a)g(slash,)h -Fs(CDPATH)d Ft(is)i(not)g(used.)630 913 y(The)h(`)p Fs(-P)p -Ft(')h(option)g(means)f(to)h(not)g(follo)m(w)h(sym)m(b)s(olic)f(links;) -g(sym)m(b)s(olic)g(links)f(are)h(follo)m(w)m(ed)630 1022 -y(b)m(y)23 b(default)h(or)g(with)f(the)h(`)p Fs(-L)p -Ft(')f(option.)39 b(If)23 b Fq(directory)32 b Ft(is)23 -b(`)p Fs(-)p Ft(',)j(it)e(is)f(equiv)-5 b(alen)m(t)25 -b(to)g Fs($OLDPWD)p Ft(.)630 1154 y(If)33 b(a)h(non-empt)m(y)g +b(Reference)g(Man)m(ual)630 299 y(Exit)45 b(from)f(a)g +Fs(for)p Ft(,)k Fs(while)p Ft(,)e Fs(until)p Ft(,)h(or)d +Fs(select)f Ft(lo)s(op.)83 b(If)44 b Fq(n)g Ft(is)g(supplied,)j(the)e +Fq(n)p Ft(th)630 408 y(enclosing)c(lo)s(op)f(is)h(exited.)70 +b Fq(n)40 b Ft(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i(equal)f(to)h(1.) +70 b(The)40 b(return)630 518 y(status)31 b(is)f(zero)h(unless)f +Fq(n)g Ft(is)g(not)h(greater)g(than)g(or)f(equal)h(to)g(1.)150 +671 y Fs(cd)870 803 y(cd)47 b([-L|-P])f([)p Fi(directory)11 +b Fs(])630 934 y Ft(Change)36 b(the)h(curren)m(t)f(w)m(orking)g +(directory)h(to)g Fq(directory)8 b Ft(.)59 b(If)35 b +Fq(directory)45 b Ft(is)36 b(not)h(giv)m(en,)630 1044 +y(the)31 b(v)-5 b(alue)31 b(of)g(the)g Fs(HOME)e Ft(shell)i(v)-5 +b(ariable)32 b(is)f(used.)40 b(If)31 b(the)g(shell)g(v)-5 +b(ariable)31 b Fs(CDPATH)e Ft(exists,)630 1154 y(it)f(is)f(used)f(as)h +(a)h(searc)m(h)f(path.)40 b(If)26 b Fq(directory)35 b +Ft(b)s(egins)27 b(with)g(a)g(slash,)h Fs(CDPATH)d Ft(is)i(not)g(used.) +630 1285 y(The)h(`)p Fs(-P)p Ft(')h(option)g(means)f(to)h(not)g(follo)m +(w)h(sym)m(b)s(olic)f(links;)g(sym)m(b)s(olic)g(links)f(are)h(follo)m +(w)m(ed)630 1395 y(b)m(y)23 b(default)h(or)g(with)f(the)h(`)p +Fs(-L)p Ft(')f(option.)39 b(If)23 b Fq(directory)32 b +Ft(is)23 b(`)p Fs(-)p Ft(',)j(it)e(is)f(equiv)-5 b(alen)m(t)25 +b(to)g Fs($OLDPWD)p Ft(.)630 1526 y(If)33 b(a)h(non-empt)m(y)g (directory)g(name)f(from)g Fs(CDPATH)f Ft(is)h(used,)h(or)g(if)f(`)p -Fs(-)p Ft(')h(is)f(the)h(\014rst)f(argu-)630 1263 y(men)m(t,)28 +Fs(-)p Ft(')h(is)f(the)h(\014rst)f(argu-)630 1636 y(men)m(t,)28 b(and)e(the)h(directory)g(c)m(hange)h(is)f(successful,)h(the)f -(absolute)g(pathname)g(of)f(the)h(new)630 1373 y(w)m(orking)k +(absolute)g(pathname)g(of)f(the)h(new)630 1745 y(w)m(orking)k (directory)g(is)f(written)g(to)i(the)e(standard)g(output.)630 -1504 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g -(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 1614 -y(erwise.)150 1767 y Fs(continue)870 1899 y(continue)46 -b([)p Fj(n)11 b Fs(])630 2030 y Ft(Resume)32 b(the)g(next)g(iteration)i +1877 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g +(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 1987 +y(erwise.)150 2140 y Fs(continue)870 2271 y(continue)46 +b([)p Fi(n)11 b Fs(])630 2403 y Ft(Resume)32 b(the)g(next)g(iteration)i (of)e(an)g(enclosing)h Fs(for)p Ft(,)f Fs(while)p Ft(,)f -Fs(until)p Ft(,)g(or)h Fs(select)f Ft(lo)s(op.)630 2140 +Fs(until)p Ft(,)g(or)h Fs(select)f Ft(lo)s(op.)630 2513 y(If)f Fq(n)h Ft(is)g(supplied,)e(the)j(execution)g(of)f(the)g Fq(n)p Ft(th)f(enclosing)i(lo)s(op)f(is)f(resumed.)42 -b Fq(n)30 b Ft(m)m(ust)h(b)s(e)630 2250 y(greater)39 +b Fq(n)30 b Ft(m)m(ust)h(b)s(e)630 2622 y(greater)39 b(than)f(or)g(equal)g(to)h(1.)63 b(The)38 b(return)e(status)j(is)e -(zero)i(unless)e Fq(n)h Ft(is)g(not)g(greater)630 2359 -y(than)30 b(or)g(equal)h(to)g(1.)150 2513 y Fs(eval)870 -2644 y(eval)47 b([)p Fj(arguments)11 b Fs(])630 2776 +(zero)i(unless)e Fq(n)h Ft(is)g(not)g(greater)630 2732 +y(than)30 b(or)g(equal)h(to)g(1.)150 2885 y Fs(eval)870 +3017 y(eval)47 b([)p Fi(arguments)11 b Fs(])630 3148 y Ft(The)25 b(argumen)m(ts)h(are)g(concatenated)i(together)f(in)m(to)f -(a)g(single)h(command,)f(whic)m(h)g(is)f(then)630 2885 +(a)g(single)h(command,)f(whic)m(h)g(is)f(then)630 3258 y(read)35 b(and)g(executed,)j(and)d(its)h(exit)g(status)g(returned)e (as)h(the)h(exit)g(status)g(of)g Fs(eval)p Ft(.)54 b(If)630 -2995 y(there)31 b(are)f(no)h(argumen)m(ts)f(or)h(only)f(empt)m(y)h +3367 y(there)31 b(are)f(no)h(argumen)m(ts)f(or)h(only)f(empt)m(y)h (argumen)m(ts,)g(the)f(return)g(status)g(is)h(zero.)150 -3148 y Fs(exec)870 3280 y(exec)47 b([-cl])f([-a)h Fj(name)11 -b Fs(])46 b([)p Fj(command)56 b Fs([)p Fj(arguments)11 -b Fs(]])630 3411 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g +3521 y Fs(exec)870 3652 y(exec)47 b([-cl])f([-a)h Fi(name)11 +b Fs(])46 b([)p Fi(command)56 b Fs([)p Fi(arguments)11 +b Fs(]])630 3784 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g (replaces)h(the)e(shell)h(without)f(creating)i(a)f(new)f(pro)s(cess.) -630 3521 y(If)h(the)g(`)p Fs(-l)p Ft(')g(option)h(is)f(supplied,)g(the) +630 3893 y(If)h(the)g(`)p Fs(-l)p Ft(')g(option)h(is)f(supplied,)g(the) h(shell)f(places)h(a)g(dash)e(at)i(the)f(b)s(eginning)f(of)i(the)630 -3630 y(zeroth)e(argumen)m(t)h(passed)e(to)h Fq(command)p -Ft(.)57 b(This)35 b(is)h(what)f(the)h Fs(login)e Ft(program)i(do)s(es.) -630 3740 y(The)d(`)p Fs(-c)p Ft(')h(option)g(causes)g +4003 y(zeroth)e(argumen)m(t)g(passed)f(to)h Fq(command)t +Ft(.)56 b(This)34 b(is)i(what)f(the)h Fs(login)e Ft(program)h(do)s(es.) +630 4113 y(The)e(`)p Fs(-c)p Ft(')h(option)g(causes)g Fq(command)j Ft(to)e(b)s(e)e(executed)i(with)e(an)h(empt)m(y)g(en)m -(vironmen)m(t.)630 3850 y(If)d(`)p Fs(-a)p Ft(')h(is)g(supplied,)f(the) -h(shell)g(passes)f Fq(name)37 b Ft(as)32 b(the)g(zeroth)g(argumen)m(t)g -(to)h Fq(command)p Ft(.)630 3959 y(If)45 b(no)g Fq(command)k +(vironmen)m(t.)630 4222 y(If)d(`)p Fs(-a)p Ft(')g(is)h(supplied,)f(the) +g(shell)h(passes)f Fq(name)37 b Ft(as)31 b(the)h(zeroth)g(argumen)m(t)g +(to)g Fq(command)t Ft(.)630 4332 y(If)45 b(no)g Fq(command)k Ft(is)c(sp)s(eci\014ed,)k(redirections)d(ma)m(y)g(b)s(e)f(used)f(to)j -(a\013ect)g(the)e(curren)m(t)630 4069 y(shell)33 b(en)m(vironmen)m(t.) +(a\013ect)g(the)e(curren)m(t)630 4441 y(shell)33 b(en)m(vironmen)m(t.) 48 b(If)32 b(there)h(are)g(no)f(redirection)h(errors,)g(the)g(return)e -(status)i(is)g(zero;)630 4178 y(otherwise)e(the)f(return)g(status)g(is) -h(non-zero.)150 4332 y Fs(exit)870 4463 y(exit)47 b([)p -Fj(n)11 b Fs(])630 4595 y Ft(Exit)30 b(the)g(shell,)h(returning)d(a)j +(status)i(is)g(zero;)630 4551 y(otherwise)e(the)f(return)g(status)g(is) +h(non-zero.)150 4704 y Fs(exit)870 4836 y(exit)47 b([)p +Fi(n)11 b Fs(])630 4967 y Ft(Exit)30 b(the)g(shell,)h(returning)d(a)j (status)f(of)g Fq(n)f Ft(to)h(the)g(shell's)g(paren)m(t.)41 -b(If)30 b Fq(n)f Ft(is)h(omitted,)h(the)630 4704 y(exit)c(status)g(is)g +b(If)30 b Fq(n)f Ft(is)h(omitted,)h(the)630 5077 y(exit)c(status)g(is)g (that)g(of)g(the)g(last)g(command)f(executed.)41 b(An)m(y)26 -b(trap)h(on)f Fs(EXIT)f Ft(is)i(executed)630 4814 y(b)s(efore)j(the)h -(shell)f(terminates.)150 4967 y Fs(export)870 5099 y(export)46 -b([-fn])g([-p])h([)p Fj(name)11 b Fs([=)p Fj(value)g -Fs(]])630 5230 y Ft(Mark)40 b(eac)m(h)h Fq(name)k Ft(to)40 -b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m -(vironmen)m(t.)70 b(If)39 b(the)630 5340 y(`)p Fs(-f)p -Ft(')29 b(option)h(is)g(supplied,)f(the)g Fq(name)5 b -Ft(s)30 b(refer)f(to)h(shell)g(functions;)f(otherwise)h(the)g(names)p -eop end +b(trap)h(on)f Fs(EXIT)f Ft(is)i(executed)630 5187 y(b)s(efore)j(the)h +(shell)f(terminates.)150 5340 y Fs(export)p eop end %%Page: 37 43 TeXDict begin 37 42 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(37)630 299 y(refer)36 -b(to)i(shell)e(v)-5 b(ariables.)60 b(The)36 b(`)p Fs(-n)p -Ft(')h(option)g(means)f(to)h(no)g(longer)g(mark)f(eac)m(h)i -Fq(name)630 408 y Ft(for)h(exp)s(ort.)65 b(If)39 b(no)g -Fq(names)j Ft(are)d(supplied,)h(or)f(if)g(the)g(`)p Fs(-p)p -Ft(')g(option)g(is)g(giv)m(en,)j(a)d(list)h(of)630 518 -y(exp)s(orted)c(names)h(is)f(displa)m(y)m(ed.)60 b(The)37 -b(`)p Fs(-p)p Ft(')f(option)h(displa)m(ys)g(output)f(in)g(a)h(form)f -(that)630 628 y(ma)m(y)c(b)s(e)e(reused)g(as)i(input.)42 -b(If)30 b(a)i(v)-5 b(ariable)31 b(name)h(is)f(follo)m(w)m(ed)h(b)m(y)f -(=)p Fq(v)-5 b(alue)p Ft(,)32 b(the)f(v)-5 b(alue)32 -b(of)630 737 y(the)f(v)-5 b(ariable)31 b(is)f(set)h(to)g -Fq(v)-5 b(alue)p Ft(.)630 870 y(The)29 b(return)e(status)j(is)f(zero)h -(unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i -(of)f(the)g(names)630 980 y(is)h(not)h(a)f(v)-5 b(alid)31 -b(shell)f(v)-5 b(ariable)31 b(name,)f(or)h(`)p Fs(-f)p -Ft(')f(is)g(supplied)f(with)g(a)i(name)f(that)h(is)f(not)h(a)630 -1089 y(shell)g(function.)150 1246 y Fs(getopts)870 1379 -y(getopts)46 b Fj(optstring)56 b(name)h Fs([)p Fj(args)11 -b Fs(])630 1512 y(getopts)28 b Ft(is)i(used)g(b)m(y)g(shell)g(scripts)g +b(Shell)30 b(Builtin)h(Commands)2069 b(37)870 299 y Fs(export)46 +b([-fn])g([-p])h([)p Fi(name)11 b Fs([=)p Fi(value)g +Fs(]])630 432 y Ft(Mark)40 b(eac)m(h)h Fq(name)k Ft(to)40 +b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m +(vironmen)m(t.)70 b(If)39 b(the)630 542 y(`)p Fs(-f)p +Ft(')29 b(option)h(is)g(supplied,)f(the)g Fq(name)5 b +Ft(s)30 b(refer)f(to)h(shell)g(functions;)f(otherwise)h(the)g(names)630 +651 y(refer)36 b(to)i(shell)e(v)-5 b(ariables.)60 b(The)36 +b(`)p Fs(-n)p Ft(')h(option)g(means)f(to)h(no)g(longer)g(mark)f(eac)m +(h)i Fq(name)630 761 y Ft(for)h(exp)s(ort.)65 b(If)39 +b(no)g Fq(names)j Ft(are)d(supplied,)h(or)f(if)g(the)g(`)p +Fs(-p)p Ft(')g(option)g(is)g(giv)m(en,)j(a)d(list)h(of)630 +870 y(exp)s(orted)c(names)h(is)f(displa)m(y)m(ed.)60 +b(The)37 b(`)p Fs(-p)p Ft(')f(option)h(displa)m(ys)g(output)f(in)g(a)h +(form)f(that)630 980 y(ma)m(y)31 b(b)s(e)f(reused)g(as)h(input.)41 +b(If)31 b(a)g(v)-5 b(ariable)31 b(name)g(is)g(follo)m(w)m(ed)i(b)m(y)d +(=)p Fq(v)-5 b(alue)5 b Ft(,)32 b(the)f(v)-5 b(alue)31 +b(of)630 1089 y(the)g(v)-5 b(ariable)31 b(is)f(set)h(to)g +Fq(v)-5 b(alue)5 b Ft(.)630 1223 y(The)29 b(return)e(status)j(is)f +(zero)h(unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f +(one)i(of)f(the)g(names)630 1332 y(is)h(not)h(a)f(v)-5 +b(alid)31 b(shell)f(v)-5 b(ariable)31 b(name,)f(or)h(`)p +Fs(-f)p Ft(')f(is)g(supplied)f(with)g(a)i(name)f(that)h(is)f(not)h(a) +630 1442 y(shell)g(function.)150 1598 y Fs(getopts)870 +1731 y(getopts)46 b Fi(optstring)56 b(name)h Fs([)p Fi(args)11 +b Fs(])630 1864 y(getopts)28 b Ft(is)i(used)g(b)m(y)g(shell)g(scripts)g (to)g(parse)g(p)s(ositional)h(parameters.)41 b Fq(optstring)d -Ft(con-)630 1622 y(tains)k(the)g(option)f(c)m(haracters)i(to)g(b)s(e)d +Ft(con-)630 1974 y(tains)k(the)g(option)f(c)m(haracters)i(to)g(b)s(e)d (recognized;)49 b(if)42 b(a)f(c)m(haracter)j(is)d(follo)m(w)m(ed)i(b)m -(y)f(a)630 1731 y(colon,)33 b(the)f(option)g(is)g(exp)s(ected)g(to)h +(y)f(a)630 2084 y(colon,)33 b(the)f(option)g(is)g(exp)s(ected)g(to)h (ha)m(v)m(e)g(an)e(argumen)m(t,)i(whic)m(h)f(should)e(b)s(e)h -(separated)630 1841 y(from)37 b(it)h(b)m(y)f(white)h(space.)63 +(separated)630 2193 y(from)37 b(it)h(b)m(y)f(white)h(space.)63 b(The)37 b(colon)h(\(`)p Fs(:)p Ft('\))h(and)d(question)i(mark)f(\(`)p -Fs(?)p Ft('\))i(ma)m(y)f(not)g(b)s(e)630 1951 y(used)g(as)g(option)h(c) +Fs(?)p Ft('\))i(ma)m(y)f(not)g(b)s(e)630 2303 y(used)g(as)g(option)h(c) m(haracters.)67 b(Eac)m(h)39 b(time)g(it)g(is)f(in)m(v)m(ok)m(ed,)k -Fs(getopts)37 b Ft(places)i(the)g(next)630 2060 y(option)29 -b(in)f(the)h(shell)g(v)-5 b(ariable)30 b Fq(name)p Ft(,)f(initializing) -i Fq(name)j Ft(if)28 b(it)h(do)s(es)g(not)g(exist,)h(and)e(the)630 -2170 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s -(cessed)h(in)m(to)h(the)g(v)-5 b(ariable)34 b Fs(OPTIND)p -Ft(.)48 b Fs(OPTIND)630 2279 y Ft(is)41 b(initialized)i(to)f(1)f(eac)m -(h)h(time)g(the)f(shell)g(or)g(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m -(ed.)74 b(When)41 b(an)630 2389 y(option)36 b(requires)e(an)h(argumen)m -(t,)i Fs(getopts)c Ft(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v) --5 b(ariable)630 2498 y Fs(OPTARG)p Ft(.)55 b(The)35 -b(shell)g(do)s(es)h(not)g(reset)g Fs(OPTIND)e Ft(automatically;)41 -b(it)36 b(m)m(ust)f(b)s(e)g(man)m(ually)630 2608 y(reset)i(b)s(et)m(w)m -(een)g(m)m(ultiple)h(calls)f(to)g Fs(getopts)e Ft(within)h(the)h(same)g -(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 2718 y(new)30 +Fs(getopts)37 b Ft(places)i(the)g(next)630 2412 y(option)29 +b(in)f(the)g(shell)h(v)-5 b(ariable)29 b Fq(name)5 b +Ft(,)29 b(initializing)h Fq(name)k Ft(if)28 b(it)h(do)s(es)f(not)g +(exist,)i(and)e(the)630 2522 y(index)33 b(of)g(the)h(next)f(argumen)m +(t)h(to)g(b)s(e)e(pro)s(cessed)h(in)m(to)h(the)g(v)-5 +b(ariable)34 b Fs(OPTIND)p Ft(.)48 b Fs(OPTIND)630 2632 +y Ft(is)41 b(initialized)i(to)f(1)f(eac)m(h)h(time)g(the)f(shell)g(or)g +(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m(ed.)74 b(When)41 +b(an)630 2741 y(option)36 b(requires)e(an)h(argumen)m(t,)i +Fs(getopts)c Ft(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v)-5 +b(ariable)630 2851 y Fs(OPTARG)p Ft(.)55 b(The)35 b(shell)g(do)s(es)h +(not)g(reset)g Fs(OPTIND)e Ft(automatically;)41 b(it)36 +b(m)m(ust)f(b)s(e)g(man)m(ually)630 2960 y(reset)i(b)s(et)m(w)m(een)g +(m)m(ultiple)h(calls)f(to)g Fs(getopts)e Ft(within)h(the)h(same)g +(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 3070 y(new)30 b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)630 -2851 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k +3203 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k Fs(getopts)39 b Ft(exits)j(with)f(a)h(return)e(v)-5 b(alue)630 -2960 y(greater)32 b(than)e(zero.)41 b Fs(OPTIND)29 b +3313 y(greater)32 b(than)e(zero.)41 b Fs(OPTIND)29 b Ft(is)h(set)h(to)g(the)g(index)f(of)g(the)h(\014rst)f(non-option)g -(argumen)m(t,)630 3070 y(and)g Fs(name)f Ft(is)h(set)h(to)g(`)p -Fs(?)p Ft('.)630 3203 y Fs(getopts)c Ft(normally)j(parses)e(the)i(p)s +(argumen)m(t,)630 3422 y(and)g Fs(name)f Ft(is)h(set)h(to)g(`)p +Fs(?)p Ft('.)630 3555 y Fs(getopts)c Ft(normally)j(parses)e(the)i(p)s (ositional)g(parameters,)g(but)e(if)i(more)f(argumen)m(ts)h(are)630 -3313 y(giv)m(en)h(in)f Fq(args)p Ft(,)h Fs(getopts)e -Ft(parses)h(those)h(instead.)630 3446 y Fs(getopts)h +3665 y(giv)m(en)h(in)f Fq(args)t Ft(,)h Fs(getopts)e +Ft(parses)g(those)i(instead.)630 3798 y Fs(getopts)h Ft(can)h(rep)s(ort)g(errors)g(in)h(t)m(w)m(o)h(w)m(a)m(ys.)51 b(If)33 b(the)h(\014rst)e(c)m(haracter)k(of)d Fq(optstring)42 -b Ft(is)34 b(a)630 3555 y(colon,)i Fq(silen)m(t)i Ft(error)33 +b Ft(is)34 b(a)630 3907 y(colon,)i Fq(silen)m(t)i Ft(error)33 b(rep)s(orting)h(is)h(used.)51 b(In)33 b(normal)i(op)s(eration)f -(diagnostic)i(messages)630 3665 y(are)30 b(prin)m(ted)e(when)g(in)m(v) +(diagnostic)i(messages)630 4017 y(are)30 b(prin)m(ted)e(when)g(in)m(v) -5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h(are)f -(encoun)m(tered.)630 3774 y(If)34 b(the)g(v)-5 b(ariable)35 +(encoun)m(tered.)630 4127 y(If)34 b(the)g(v)-5 b(ariable)35 b Fs(OPTERR)d Ft(is)i(set)h(to)f(0,)i(no)e(error)g(messages)h(will)f(b) -s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630 3884 y(the)c(\014rst)e(c)m +s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630 4236 y(the)c(\014rst)e(c)m (haracter)j(of)f Fs(optstring)d Ft(is)i(not)h(a)f(colon.)630 -4017 y(If)39 b(an)h(in)m(v)-5 b(alid)41 b(option)f(is)g(seen,)i +4369 y(If)39 b(an)h(in)m(v)-5 b(alid)41 b(option)f(is)g(seen,)i Fs(getopts)c Ft(places)j(`)p Fs(?)p Ft(')f(in)m(to)h -Fq(name)k Ft(and,)d(if)e(not)g(silen)m(t,)630 4127 y(prin)m(ts)f(an)h +Fq(name)k Ft(and,)d(if)e(not)g(silen)m(t,)630 4479 y(prin)m(ts)f(an)h (error)f(message)h(and)f(unsets)g Fs(OPTARG)p Ft(.)67 b(If)39 b Fs(getopts)f Ft(is)i(silen)m(t,)j(the)c(option)630 -4236 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f Fs(OPTARG)f +4589 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f Fs(OPTARG)f Ft(and)h(no)g(diagnostic)i(message)f(is)g(prin)m(ted.)630 -4369 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f +4722 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f Fs(getopts)f Ft(is)i(not)h(silen)m(t,)h(a)e(question)g(mark)630 -4479 y(\(`)p Fs(?)p Ft('\))h(is)g(placed)g(in)f Fq(name)p -Ft(,)h Fs(OPTARG)e Ft(is)h(unset,)h(and)f(a)g(diagnostic)i(message)g -(is)e(prin)m(ted.)39 b(If)630 4589 y Fs(getopts)28 b -Ft(is)h(silen)m(t,)i(then)e(a)h(colon)h(\(`)p Fs(:)p -Ft('\))f(is)g(placed)g(in)f Fq(name)35 b Ft(and)29 b -Fs(OPTARG)f Ft(is)h(set)h(to)h(the)630 4698 y(option)g(c)m(haracter)h -(found.)150 4855 y Fs(hash)870 4988 y(hash)47 b([-r])f([-p)h -Fj(filename)11 b Fs(])45 b([-dt])h([)p Fj(name)11 b Fs(])630 -5121 y Ft(Remem)m(b)s(er)36 b(the)g(full)g(pathnames)g(of)g(commands)g -(sp)s(eci\014ed)g(as)g Fq(name)41 b Ft(argumen)m(ts,)e(so)630 -5230 y(they)34 b(need)h(not)f(b)s(e)g(searc)m(hed)h(for)f(on)g -(subsequen)m(t)f(in)m(v)m(o)s(cations.)55 b(The)34 b(commands)g(are)630 -5340 y(found)39 b(b)m(y)i(searc)m(hing)g(through)f(the)h(directories)g -(listed)g(in)f Fs($PATH)p Ft(.)70 b(The)40 b(`)p Fs(-p)p -Ft(')g(option)p eop end +4831 y(\(`)p Fs(?)p Ft('\))35 b(is)g(placed)g(in)g Fq(name)5 +b Ft(,)36 b Fs(OPTARG)d Ft(is)h(unset,)i(and)e(a)h(diagnostic)h +(message)f(is)g(prin)m(ted.)630 4941 y(If)e Fs(getopts)f +Ft(is)h(silen)m(t,)j(then)d(a)i(colon)f(\(`)p Fs(:)p +Ft('\))h(is)e(placed)h(in)g Fq(name)k Ft(and)33 b Fs(OPTARG)f +Ft(is)i(set)g(to)630 5050 y(the)d(option)f(c)m(haracter)i(found.)150 +5207 y Fs(hash)870 5340 y(hash)47 b([-r])f([-p)h Fi(filename)11 +b Fs(])45 b([-dt])h([)p Fi(name)11 b Fs(])p eop end %%Page: 38 44 TeXDict begin 38 43 bop 150 -116 a Ft(38)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(inhibits)38 b(the)h(path)g(searc)m -(h,)j(and)c Fq(\014lename)44 b Ft(is)39 b(used)f(as)i(the)f(lo)s -(cation)h(of)f Fq(name)p Ft(.)66 b(The)630 408 y(`)p -Fs(-r)p Ft(')28 b(option)g(causes)g(the)g(shell)h(to)f(forget)h(all)g -(remem)m(b)s(ered)e(lo)s(cations.)41 b(The)28 b(`)p Fs(-d)p -Ft(')f(option)630 518 y(causes)38 b(the)g(shell)g(to)g(forget)g(the)g -(remem)m(b)s(ered)f(lo)s(cation)i(of)f(eac)m(h)h Fq(name)p -Ft(.)62 b(If)37 b(the)h(`)p Fs(-t)p Ft(')630 628 y(option)22 -b(is)g(supplied,)g(the)g(full)f(pathname)h(to)g(whic)m(h)g(eac)m(h)g -Fq(name)27 b Ft(corresp)s(onds)20 b(is)i(prin)m(ted.)630 -737 y(If)33 b(m)m(ultiple)h Fq(name)k Ft(argumen)m(ts)c(are)f(supplied) -f(with)h(`)p Fs(-t)p Ft(')g(the)h Fq(name)k Ft(is)c(prin)m(ted)e(b)s -(efore)630 847 y(the)h(hashed)f(full)g(pathname.)48 b(The)32 -b(`)p Fs(-l)p Ft(')h(option)g(causes)g(output)f(to)i(b)s(e)e(displa)m -(y)m(ed)h(in)g(a)630 956 y(format)f(that)g(ma)m(y)g(b)s(e)f(reused)g -(as)g(input.)43 b(If)31 b(no)h(argumen)m(ts)g(are)f(giv)m(en,)j(or)d -(if)g(only)h(`)p Fs(-l)p Ft(')630 1066 y(is)j(supplied,)f(information)h -(ab)s(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m(ted.)53 -b(The)34 b(return)630 1176 y(status)d(is)f(zero)h(unless)f(a)h +b(Reference)g(Man)m(ual)630 299 y(Remem)m(b)s(er)36 b(the)g(full)g +(pathnames)g(of)g(commands)g(sp)s(eci\014ed)g(as)g Fq(name)41 +b Ft(argumen)m(ts,)e(so)630 408 y(they)34 b(need)h(not)f(b)s(e)g(searc) +m(hed)h(for)f(on)g(subsequen)m(t)f(in)m(v)m(o)s(cations.)55 +b(The)34 b(commands)g(are)630 518 y(found)39 b(b)m(y)i(searc)m(hing)g +(through)f(the)h(directories)g(listed)g(in)f Fs($PATH)p +Ft(.)70 b(The)40 b(`)p Fs(-p)p Ft(')g(option)630 628 +y(inhibits)e(the)h(path)f(searc)m(h,)j(and)d Fq(\014lename)44 +b Ft(is)39 b(used)f(as)g(the)h(lo)s(cation)h(of)f Fq(name)5 +b Ft(.)65 b(The)630 737 y(`)p Fs(-r)p Ft(')28 b(option)g(causes)g(the)g +(shell)h(to)f(forget)h(all)g(remem)m(b)s(ered)e(lo)s(cations.)41 +b(The)28 b(`)p Fs(-d)p Ft(')f(option)630 847 y(causes)38 +b(the)f(shell)h(to)g(forget)g(the)f(remem)m(b)s(ered)g(lo)s(cation)i +(of)e(eac)m(h)h Fq(name)5 b Ft(.)62 b(If)37 b(the)g(`)p +Fs(-t)p Ft(')630 956 y(option)22 b(is)g(supplied,)g(the)g(full)f +(pathname)h(to)g(whic)m(h)g(eac)m(h)g Fq(name)27 b Ft(corresp)s(onds)20 +b(is)i(prin)m(ted.)630 1066 y(If)33 b(m)m(ultiple)h Fq(name)k +Ft(argumen)m(ts)c(are)f(supplied)f(with)h(`)p Fs(-t)p +Ft(')g(the)h Fq(name)k Ft(is)c(prin)m(ted)e(b)s(efore)630 +1176 y(the)h(hashed)f(full)g(pathname.)48 b(The)32 b(`)p +Fs(-l)p Ft(')h(option)g(causes)g(output)f(to)i(b)s(e)e(displa)m(y)m(ed) +h(in)g(a)630 1285 y(format)f(that)g(ma)m(y)g(b)s(e)f(reused)g(as)g +(input.)43 b(If)31 b(no)h(argumen)m(ts)g(are)f(giv)m(en,)j(or)d(if)g +(only)h(`)p Fs(-l)p Ft(')630 1395 y(is)j(supplied,)f(information)h(ab)s +(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m(ted.)53 +b(The)34 b(return)630 1504 y(status)d(is)f(zero)h(unless)f(a)h Fq(name)k Ft(is)c(not)f(found)f(or)i(an)f(in)m(v)-5 b(alid)31 -b(option)g(is)f(supplied.)150 1340 y Fs(pwd)870 1477 -y(pwd)47 b([-LP])630 1614 y Ft(Prin)m(t)24 b(the)h(absolute)g(pathname) +b(option)g(is)f(supplied.)150 1672 y Fs(pwd)870 1811 +y(pwd)47 b([-LP])630 1950 y Ft(Prin)m(t)24 b(the)h(absolute)g(pathname) g(of)f(the)h(curren)m(t)f(w)m(orking)h(directory)-8 b(.)40 -b(If)23 b(the)i(`)p Fs(-P)p Ft(')f(option)630 1724 y(is)36 +b(If)23 b(the)i(`)p Fs(-P)p Ft(')f(option)630 2060 y(is)36 b(supplied,)f(the)h(pathname)f(prin)m(ted)g(will)h(not)g(con)m(tain)h (sym)m(b)s(olic)f(links.)55 b(If)35 b(the)h(`)p Fs(-L)p -Ft(')630 1833 y(option)44 b(is)g(supplied,)i(the)e(pathname)f(prin)m +Ft(')630 2169 y(option)44 b(is)g(supplied,)i(the)e(pathname)f(prin)m (ted)h(ma)m(y)g(con)m(tain)h(sym)m(b)s(olic)f(links.)80 -b(The)630 1943 y(return)26 b(status)h(is)h(zero)g(unless)e(an)h(error)g +b(The)630 2279 y(return)26 b(status)h(is)h(zero)g(unless)e(an)h(error)g (is)g(encoun)m(tered)g(while)h(determining)f(the)g(name)630 -2052 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5 -b(alid)31 b(option)g(is)f(supplied.)150 2217 y Fs(readonly)870 -2354 y(readonly)46 b([-aApf])f([)p Fj(name)11 b Fs([=)p -Fj(value)g Fs(]])43 b(...)630 2491 y Ft(Mark)24 b(eac)m(h)h +2388 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5 +b(alid)31 b(option)g(is)f(supplied.)150 2556 y Fs(readonly)870 +2695 y(readonly)46 b([-aApf])f([)p Fi(name)11 b Fs([=)p +Fi(value)g Fs(]])43 b(...)630 2834 y Ft(Mark)24 b(eac)m(h)h Fq(name)k Ft(as)24 b(readonly)-8 b(.)39 b(The)24 b(v)-5 b(alues)24 b(of)g(these)g(names)g(ma)m(y)g(not)g(b)s(e)g(c)m(hanged)g -(b)m(y)630 2600 y(subsequen)m(t)e(assignmen)m(t.)39 b(If)22 +(b)m(y)630 2944 y(subsequen)m(t)e(assignmen)m(t.)39 b(If)22 b(the)h(`)p Fs(-f)p Ft(')f(option)i(is)e(supplied,)h(eac)m(h)h -Fq(name)k Ft(refers)22 b(to)i(a)f(shell)630 2710 y(function.)39 +Fq(name)k Ft(refers)22 b(to)i(a)f(shell)630 3053 y(function.)39 b(The)26 b(`)p Fs(-a)p Ft(')h(option)g(means)g(eac)m(h)h Fq(name)k Ft(refers)26 b(to)i(an)e(indexed)h(arra)m(y)g(v)-5 -b(ariable;)630 2819 y(the)33 b(`)p Fs(-A)p Ft(')g(option)g(means)g(eac) +b(ariable;)630 3163 y(the)33 b(`)p Fs(-A)p Ft(')g(option)g(means)g(eac) m(h)h Fq(name)k Ft(refers)32 b(to)h(an)g(asso)s(ciativ)m(e)j(arra)m(y)d -(v)-5 b(ariable.)49 b(If)32 b(no)630 2929 y Fq(name)f +(v)-5 b(ariable.)49 b(If)32 b(no)630 3272 y Fq(name)f Ft(argumen)m(ts)26 b(are)g(giv)m(en,)i(or)d(if)h(the)g(`)p Fs(-p)p Ft(')f(option)h(is)g(supplied,)f(a)h(list)h(of)e(all)i -(readonly)630 3039 y(names)37 b(is)g(prin)m(ted.)59 b(The)37 +(readonly)630 3382 y(names)37 b(is)g(prin)m(ted.)59 b(The)37 b(`)p Fs(-p)p Ft(')f(option)i(causes)f(output)g(to)g(b)s(e)f(displa)m -(y)m(ed)i(in)e(a)i(format)630 3148 y(that)25 b(ma)m(y)g(b)s(e)f(reused) -g(as)h(input.)38 b(If)24 b(a)h(v)-5 b(ariable)25 b(name)g(is)g(follo)m -(w)m(ed)h(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)27 b(the)d(v)-5 -b(alue)630 3258 y(of)27 b(the)g(v)-5 b(ariable)27 b(is)g(set)g(to)g -Fq(v)-5 b(alue)p Ft(.)40 b(The)26 b(return)g(status)h(is)f(zero)i -(unless)e(an)g(in)m(v)-5 b(alid)27 b(option)630 3367 -y(is)j(supplied,)f(one)h(of)g(the)g Fq(name)35 b Ft(argumen)m(ts)30 +(y)m(ed)i(in)e(a)i(format)630 3492 y(that)25 b(ma)m(y)g(b)s(e)e(reused) +h(as)g(input.)38 b(If)24 b(a)g(v)-5 b(ariable)25 b(name)g(is)f(follo)m +(w)m(ed)i(b)m(y)e(=)p Fq(v)-5 b(alue)5 b Ft(,)26 b(the)e(v)-5 +b(alue)630 3601 y(of)26 b(the)h(v)-5 b(ariable)27 b(is)f(set)h(to)g +Fq(v)-5 b(alue)5 b Ft(.)40 b(The)26 b(return)f(status)i(is)f(zero)h +(unless)e(an)i(in)m(v)-5 b(alid)26 b(option)630 3711 +y(is)k(supplied,)f(one)h(of)g(the)g Fq(name)35 b Ft(argumen)m(ts)30 b(is)g(not)g(a)g(v)-5 b(alid)31 b(shell)f(v)-5 b(ariable)30 -b(or)g(function)630 3477 y(name,)h(or)f(the)h(`)p Fs(-f)p +b(or)g(function)630 3820 y(name,)h(or)f(the)h(`)p Fs(-f)p Ft(')f(option)h(is)f(supplied)f(with)h(a)h(name)f(that)h(is)g(not)f(a)h -(shell)g(function.)150 3641 y Fs(return)870 3778 y(return)46 -b([)p Fj(n)11 b Fs(])630 3915 y Ft(Cause)30 b(a)g(shell)g(function)g +(shell)g(function.)150 3988 y Fs(return)870 4127 y(return)46 +b([)p Fi(n)11 b Fs(])630 4266 y Ft(Cause)30 b(a)g(shell)g(function)g (to)h(exit)f(with)g(the)g(return)f(v)-5 b(alue)31 b Fq(n)p Ft(.)40 b(If)29 b Fq(n)h Ft(is)g(not)g(supplied,)f(the)630 -4025 y(return)35 b(v)-5 b(alue)37 b(is)f(the)g(exit)h(status)f(of)h +4376 y(return)35 b(v)-5 b(alue)37 b(is)f(the)g(exit)h(status)f(of)h (the)f(last)h(command)f(executed)h(in)f(the)g(function.)630 -4134 y(This)21 b(ma)m(y)i(also)g(b)s(e)e(used)g(to)i(terminate)g +4485 y(This)21 b(ma)m(y)i(also)g(b)s(e)e(used)g(to)i(terminate)g (execution)g(of)f(a)h(script)f(b)s(eing)f(executed)i(with)f(the)630 -4244 y Fs(.)27 b Ft(\(or)g Fs(source)p Ft(\))f(builtin,)i(returning)e +4595 y Fs(.)27 b Ft(\(or)g Fs(source)p Ft(\))f(builtin,)i(returning)e (either)h Fq(n)g Ft(or)g(the)g(exit)h(status)g(of)f(the)g(last)h -(command)630 4354 y(executed)46 b(within)f(the)g(script)g(as)h(the)f +(command)630 4704 y(executed)46 b(within)f(the)g(script)g(as)h(the)f (exit)h(status)g(of)f(the)h(script.)85 b(An)m(y)45 b(command)630 -4463 y(asso)s(ciated)30 b(with)e(the)g Fs(RETURN)f Ft(trap)h(is)g +4814 y(asso)s(ciated)30 b(with)e(the)g Fs(RETURN)f Ft(trap)h(is)g (executed)h(b)s(efore)f(execution)h(resumes)f(after)h(the)630 -4573 y(function)38 b(or)f(script.)63 b(The)38 b(return)e(status)i(is)g +4924 y(function)38 b(or)f(script.)63 b(The)38 b(return)e(status)i(is)g (non-zero)h(if)e Fs(return)g Ft(is)g(used)g(outside)i(a)630 -4682 y(function)30 b(and)g(not)g(during)g(the)g(execution)i(of)e(a)h +5033 y(function)30 b(and)g(not)g(during)g(the)g(execution)i(of)e(a)h (script)f(b)m(y)h Fs(.)f Ft(or)g Fs(source)p Ft(.)150 -4847 y Fs(shift)870 4984 y(shift)46 b([)p Fj(n)11 b Fs(])630 -5121 y Ft(Shift)41 b(the)g(p)s(ositional)h(parameters)g(to)g(the)f -(left)h(b)m(y)g Fq(n)p Ft(.)73 b(The)40 b(p)s(ositional)j(parameters) -630 5230 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45 +5201 y Fs(shift)870 5340 y(shift)46 b([)p Fi(n)11 b Fs(])p +eop end +%%Page: 39 45 +TeXDict begin 39 44 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(39)630 299 y(Shift)41 +b(the)g(p)s(ositional)h(parameters)g(to)g(the)f(left)h(b)m(y)g +Fq(n)p Ft(.)73 b(The)40 b(p)s(ositional)j(parameters)630 +408 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45 b Fs($#)34 b Ft(are)g(renamed)g(to)h Fs($1)k Ft(.)22 b(.)g(.)46 b Fs($#)p Ft(-)p Fq(n)p Ft(.)51 b(P)m(arameters)36 -b(represen)m(ted)e(b)m(y)g(the)630 5340 y(n)m(um)m(b)s(ers)25 +b(represen)m(ted)e(b)m(y)g(the)630 518 y(n)m(um)m(b)s(ers)25 b Fs($#)i Ft(to)g Fs($#)p Ft(-)p Fq(n)p Fs(+)p Ft(1)g(are)g(unset.)39 b Fq(n)26 b Ft(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er) -c(less)i(than)g(or)p eop end -%%Page: 39 45 -TeXDict begin 39 44 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(39)630 299 y(equal)33 -b(to)h Fs($#)p Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h -(than)f Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630 -408 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g +c(less)i(than)g(or)630 628 y(equal)33 b(to)h Fs($#)p +Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h(than)f +Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630 +737 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g (is)f(assumed)g(to)h(b)s(e)f(1.)48 b(The)32 b(return)g(status)h(is)f -(zero)630 518 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g +(zero)630 847 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g Fs($#)e Ft(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150 -677 y Fs(test)150 787 y([)432 b Ft(Ev)-5 b(aluate)32 -b(a)f(conditional)h(expression)e Fq(expr)p Ft(.)41 b(Eac)m(h)31 -b(op)s(erator)g(and)f(op)s(erand)g(m)m(ust)h(b)s(e)f(a)630 -897 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)e -(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630 -1006 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h -(page)g(77.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630 -1116 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d +1006 y Fs(test)150 1116 y([)432 b Ft(Ev)-5 b(aluate)31 +b(a)g(conditional)g(expression)f Fq(expr)7 b Ft(.)40 +b(Eac)m(h)30 b(op)s(erator)h(and)e(op)s(erand)g(m)m(ust)h(b)s(e)g(a)630 +1225 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed) +e(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630 +1335 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h +(page)g(76.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630 +1445 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d (ignore)i(an)f(argumen)m(t)g(of)g(`)p Fs(--)p Ft(')g(as)h(signifying)f -(the)630 1225 y(end)j(of)g(options.)630 1360 y(When)g(the)h +(the)630 1554 y(end)j(of)g(options.)630 1689 y(When)g(the)h Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)m(t)e(to)i(the)e -(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1494 +(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 1823 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m (wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630 -1604 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5 +1933 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5 b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h -(argumen)m(ts;)g(see)630 1714 y(b)s(elo)m(w.)630 1873 -y Fs(!)f Fj(expr)210 b Ft(T)-8 b(rue)30 b(if)g Fq(expr)37 -b Ft(is)30 b(false.)630 2032 y Fs(\()g Fj(expr)40 b Fs(\))122 -b Ft(Returns)23 b(the)i(v)-5 b(alue)25 b(of)f Fq(expr)p -Ft(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h(to)h(o)m(v)m(erride)g(the)g -(normal)1110 2142 y(precedence)31 b(of)f(op)s(erators.)630 -2301 y Fj(expr1)39 b Fs(-a)30 b Fj(expr2)1110 2411 y +(argumen)m(ts;)g(see)630 2042 y(b)s(elo)m(w.)630 2202 +y Fs(!)f Fi(expr)210 b Ft(T)-8 b(rue)30 b(if)g Fq(expr)37 +b Ft(is)30 b(false.)630 2361 y Fs(\()g Fi(expr)40 b Fs(\))122 +b Ft(Returns)23 b(the)h(v)-5 b(alue)24 b(of)g Fq(expr)7 +b Ft(.)37 b(This)23 b(ma)m(y)i(b)s(e)e(used)g(to)h(o)m(v)m(erride)h +(the)f(normal)1110 2471 y(precedence)31 b(of)f(op)s(erators.)630 +2630 y Fi(expr1)39 b Fs(-a)30 b Fi(expr2)1110 2740 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expr1)37 b Ft(and)30 -b Fq(expr2)38 b Ft(are)30 b(true.)630 2570 y Fj(expr1)39 -b Fs(-o)30 b Fj(expr2)1110 2680 y Ft(T)-8 b(rue)30 b(if)g(either)h +b Fq(expr2)38 b Ft(are)30 b(true.)630 2899 y Fi(expr1)39 +b Fs(-o)30 b Fi(expr2)1110 3009 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expr1)38 b Ft(or)30 b Fq(expr2)37 b Ft(is)31 b(true.)630 -2839 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5 +3168 y(The)37 b Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5 b(aluate)39 b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules) -630 2949 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.) -630 3108 y(0)h(argumen)m(ts)1110 3218 y(The)f(expression)g(is)g(false.) -630 3377 y(1)h(argumen)m(t)1110 3487 y(The)f(expression)g(is)g(true)h +630 3278 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.) +630 3437 y(0)h(argumen)m(ts)1110 3547 y(The)f(expression)g(is)g(false.) +630 3706 y(1)h(argumen)m(t)1110 3816 y(The)f(expression)g(is)g(true)h (if)f(and)g(only)g(if)h(the)f(argumen)m(t)h(is)f(not)h(n)m(ull.)630 -3646 y(2)g(argumen)m(ts)1110 3756 y(If)f(the)h(\014rst)f(argumen)m(t)h +3975 y(2)g(argumen)m(ts)1110 4085 y(If)f(the)h(\014rst)f(argumen)m(t)h (is)g(`)p Fs(!)p Ft(',)g(the)g(expression)g(is)g(true)f(if)h(and)f -(only)h(if)g(the)1110 3866 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50 +(only)h(if)g(the)1110 4194 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50 b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary) -1110 3975 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f -([Bash)g(Conditional)g(Expres-)1110 4085 y(sions],)34 -b(page)f(77\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e -(test)j(is)f(true.)47 b(If)1110 4194 y(the)33 b(\014rst)g(argumen)m(t)h +1110 4304 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f +([Bash)g(Conditional)g(Expres-)1110 4413 y(sions],)34 +b(page)f(76\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e +(test)j(is)f(true.)47 b(If)1110 4523 y(the)33 b(\014rst)g(argumen)m(t)h (is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g -(expression)f(is)1110 4304 y(false.)630 4463 y(3)e(argumen)m(ts)1110 -4573 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f -(conditional)j(op)s(erators)1110 4682 y(\(see)23 b(Section)g(6.4)f -([Bash)h(Conditional)f(Expressions],)h(page)g(77\),)i(the)d(result)1110 -4792 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f -(binary)g(test)h(using)e(the)i(\014rst)1110 4902 y(and)31 +(expression)f(is)1110 4633 y(false.)630 4792 y(3)e(argumen)m(ts)1110 +4902 y(If)k(the)g(second)g(argumen)m(t)g(is)g(one)h(of)f(the)g(binary)f +(conditional)j(op)s(erators)1110 5011 y(\(see)23 b(Section)g(6.4)f +([Bash)h(Conditional)f(Expressions],)h(page)g(76\),)i(the)d(result)1110 +5121 y(of)44 b(the)h(expression)f(is)g(the)g(result)g(of)h(the)f +(binary)g(test)h(using)e(the)i(\014rst)1110 5230 y(and)31 b(third)g(argumen)m(ts)i(as)f(op)s(erands.)44 b(The)31 b(`)p Fs(-a)p Ft(')h(and)g(`)p Fs(-o)p Ft(')f(op)s(erators)i(are)1110 -5011 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i(are)f -(three)h(argumen)m(ts.)39 b(If)25 b(the)1110 5121 y(\014rst)j(argumen)m -(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(v)-5 b(alue)29 b(is)g(the)g -(negation)i(of)e(the)g(t)m(w)m(o-argumen)m(t)1110 5230 -y(test)38 b(using)f(the)g(second)g(and)g(third)f(argumen)m(ts.)61 -b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 5340 y(is)j(exactly)i(`)p -Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m(t)h(is)f(exactly)i(`)p -Fs(\))p Ft(',)h(the)e(result)f(is)p eop end +5340 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i(are)f +(three)h(argumen)m(ts.)39 b(If)25 b(the)p eop end %%Page: 40 46 TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31 -b(Reference)g(Man)m(ual)1110 299 y(the)46 b(one-argumen)m(t)g(test)h -(of)f(the)f(second)h(argumen)m(t.)86 b(Otherwise,)50 -b(the)1110 408 y(expression)30 b(is)h(false.)630 569 -y(4)g(argumen)m(ts)1110 678 y(If)h(the)i(\014rst)e(argumen)m(t)h(is)g -(`)p Fs(!)p Ft(',)h(the)f(result)g(is)g(the)g(negation)h(of)f(the)g -(three-)1110 788 y(argumen)m(t)h(expression)f(comp)s(osed)h(of)f(the)h -(remaining)g(argumen)m(ts.)50 b(Oth-)1110 897 y(erwise,)34 -b(the)f(expression)g(is)g(parsed)g(and)f(ev)-5 b(aluated)34 -b(according)h(to)e(prece-)1110 1007 y(dence)e(using)e(the)i(rules)f -(listed)h(ab)s(o)m(v)m(e.)630 1167 y(5)g(or)f(more)h(argumen)m(ts)1110 -1277 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5 -b(aluated)45 b(according)f(to)f(precedence)1110 1386 -y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)150 -1547 y Fs(times)870 1681 y(times)630 1816 y Ft(Prin)m(t)37 -b(out)h(the)g(user)e(and)h(system)g(times)h(used)f(b)m(y)g(the)h(shell) -f(and)g(its)h(c)m(hildren.)61 b(The)630 1926 y(return)29 -b(status)i(is)f(zero.)150 2086 y Fs(trap)870 2221 y(trap)47 -b([-lp])f([)p Fj(arg)11 b Fs(])46 b([)p Fj(sigspec)56 -b Fs(...)o(])630 2356 y Ft(The)43 b(commands)f(in)h Fq(arg)51 -b Ft(are)44 b(to)g(b)s(e)e(read)h(and)g(executed)h(when)e(the)h(shell)g -(receiv)m(es)630 2465 y(signal)36 b Fq(sigsp)s(ec)p Ft(.)57 -b(If)35 b Fq(arg)44 b Ft(is)36 b(absen)m(t)g(\(and)f(there)h(is)g(a)f -(single)i Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)g(to)h(`)p -Fs(-)p Ft(',)630 2575 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s +b(Reference)g(Man)m(ual)1110 299 y(\014rst)d(argumen)m(t)h(is)g(`)p +Fs(!)p Ft(',)h(the)f(v)-5 b(alue)29 b(is)g(the)g(negation)i(of)e(the)g +(t)m(w)m(o-argumen)m(t)1110 408 y(test)38 b(using)f(the)g(second)g(and) +g(third)f(argumen)m(ts.)61 b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 +518 y(is)j(exactly)i(`)p Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m +(t)h(is)f(exactly)i(`)p Fs(\))p Ft(',)h(the)e(result)f(is)1110 +628 y(the)46 b(one-argumen)m(t)g(test)h(of)f(the)f(second)h(argumen)m +(t.)86 b(Otherwise,)50 b(the)1110 737 y(expression)30 +b(is)h(false.)630 909 y(4)g(argumen)m(ts)1110 1019 y(If)h(the)i +(\014rst)e(argumen)m(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(result)g(is)g +(the)g(negation)h(of)f(the)g(three-)1110 1129 y(argumen)m(t)h +(expression)f(comp)s(osed)h(of)f(the)h(remaining)g(argumen)m(ts.)50 +b(Oth-)1110 1238 y(erwise,)34 b(the)f(expression)g(is)g(parsed)g(and)f +(ev)-5 b(aluated)34 b(according)h(to)e(prece-)1110 1348 +y(dence)e(using)e(the)i(rules)f(listed)h(ab)s(o)m(v)m(e.)630 +1520 y(5)g(or)f(more)h(argumen)m(ts)1110 1630 y(The)43 +b(expression)f(is)i(parsed)e(and)g(ev)-5 b(aluated)45 +b(according)f(to)f(precedence)1110 1739 y(using)30 b(the)g(rules)g +(listed)h(ab)s(o)m(v)m(e.)150 1911 y Fs(times)870 2052 +y(times)630 2193 y Ft(Prin)m(t)37 b(out)h(the)g(user)e(and)h(system)g +(times)h(used)f(b)m(y)g(the)h(shell)f(and)g(its)h(c)m(hildren.)61 +b(The)630 2303 y(return)29 b(status)i(is)f(zero.)150 +2475 y Fs(trap)870 2616 y(trap)47 b([-lp])f([)p Fi(arg)11 +b Fs(])46 b([)p Fi(sigspec)56 b Fs(...)o(])630 2757 y +Ft(The)43 b(commands)f(in)h Fq(arg)51 b Ft(are)44 b(to)g(b)s(e)e(read)h +(and)g(executed)h(when)e(the)h(shell)g(receiv)m(es)630 +2866 y(signal)36 b Fq(sigsp)s(ec)6 b Ft(.)55 b(If)35 +b Fq(arg)44 b Ft(is)35 b(absen)m(t)h(\(and)f(there)g(is)g(a)h(single)g +Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)f(to)i(`)p Fs(-)p +Ft(',)630 2976 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s (osition)f(is)h(reset)g(to)g(the)g(v)-5 b(alue)27 b(it)g(had)f(when)f -(the)i(shell)g(w)m(as)630 2685 y(started.)63 b(If)37 +(the)i(shell)g(w)m(as)630 3086 y(started.)63 b(If)37 b Fq(arg)46 b Ft(is)37 b(the)h(n)m(ull)g(string,)h(then)e(the)h(signal) h(sp)s(eci\014ed)d(b)m(y)i(eac)m(h)h Fq(sigsp)s(ec)k -Ft(is)630 2794 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f +Ft(is)630 3195 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f (it)i(in)m(v)m(ok)m(es.)59 b(If)35 b Fq(arg)45 b Ft(is)36 -b(not)g(presen)m(t)g(and)f(`)p Fs(-p)p Ft(')630 2904 +b(not)g(presen)m(t)g(and)f(`)p Fs(-p)p Ft(')630 3305 y(has)e(b)s(een)g(supplied,)f(the)i(shell)f(displa)m(ys)h(the)f(trap)g -(commands)g(asso)s(ciated)i(with)e(eac)m(h)630 3013 y -Fq(sigsp)s(ec)p Ft(.)40 b(If)29 b(no)g(argumen)m(ts)g(are)g(supplied,)f -(or)h(only)g(`)p Fs(-p)p Ft(')g(is)g(giv)m(en,)h Fs(trap)e -Ft(prin)m(ts)g(the)h(list)630 3123 y(of)f(commands)f(asso)s(ciated)i -(with)f(eac)m(h)h(signal)f(n)m(um)m(b)s(er)e(in)i(a)g(form)f(that)h(ma) -m(y)h(b)s(e)e(reused)630 3232 y(as)c(shell)g(input.)37 -b(The)23 b(`)p Fs(-l)p Ft(')f(option)i(causes)f(the)g(shell)g(to)g -(prin)m(t)g(a)g(list)g(of)g(signal)h(names)f(and)630 -3342 y(their)33 b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47 -b(Eac)m(h)34 b Fq(sigsp)s(ec)39 b Ft(is)33 b(either)g(a)h(signal)g -(name)f(or)g(a)g(signal)630 3452 y(n)m(um)m(b)s(er.)46 -b(Signal)33 b(names)g(are)g(case)h(insensitiv)m(e)f(and)g(the)f -Fs(SIG)g Ft(pre\014x)g(is)h(optional.)48 b(If)33 b(a)630 -3561 y Fq(sigsp)s(ec)h Ft(is)28 b Fs(0)f Ft(or)h Fs(EXIT)p -Ft(,)f Fq(arg)37 b Ft(is)27 b(executed)i(when)e(the)h(shell)g(exits.)41 -b(If)27 b(a)i Fq(sigsp)s(ec)k Ft(is)28 b Fs(DEBUG)p Ft(,)630 -3671 y(the)40 b(command)g Fq(arg)48 b Ft(is)40 b(executed)h(b)s(efore)f -(ev)m(ery)g(simple)g(command,)j Fs(for)c Ft(command,)630 -3780 y Fs(case)28 b Ft(command,)i Fs(select)d Ft(command,)j(ev)m(ery)g -(arithmetic)h Fs(for)d Ft(command,)i(and)e(b)s(efore)630 -3890 y(the)k(\014rst)e(command)h(executes)i(in)e(a)h(shell)f(function.) -44 b(Refer)31 b(to)h(the)g(description)f(of)h(the)630 -4000 y Fs(extglob)40 b Ft(option)i(to)g(the)g Fs(shopt)e +(commands)g(asso)s(ciated)i(with)e(eac)m(h)630 3414 y +Fq(sigsp)s(ec)6 b Ft(.)40 b(If)28 b(no)g(argumen)m(ts)h(are)g +(supplied,)f(or)g(only)h(`)p Fs(-p)p Ft(')f(is)g(giv)m(en,)i +Fs(trap)e Ft(prin)m(ts)g(the)g(list)630 3524 y(of)g(commands)f(asso)s +(ciated)i(with)f(eac)m(h)h(signal)f(n)m(um)m(b)s(er)e(in)i(a)g(form)f +(that)h(ma)m(y)h(b)s(e)e(reused)630 3634 y(as)34 b(shell)g(input.)51 +b(The)33 b(`)p Fs(-l)p Ft(')h(option)g(causes)h(the)f(shell)g(to)h +(prin)m(t)e(a)i(list)f(of)g(signal)h(names)630 3743 y(and)j(their)h +(corresp)s(onding)f(n)m(um)m(b)s(ers.)65 b(Eac)m(h)39 +b Fq(sigsp)s(ec)45 b Ft(is)39 b(either)g(a)g(signal)h(name)f(or)g(a)630 +3853 y(signal)27 b(n)m(um)m(b)s(er.)39 b(Signal)27 b(names)f(are)h +(case)h(insensitiv)m(e)g(and)e(the)g Fs(SIG)g Ft(pre\014x)g(is)h +(optional.)630 3994 y(If)35 b(a)g Fq(sigsp)s(ec)41 b +Ft(is)35 b Fs(0)g Ft(or)g Fs(EXIT)p Ft(,)g Fq(arg)43 +b Ft(is)35 b(executed)h(when)e(the)h(shell)h(exits.)55 +b(If)35 b(a)g Fq(sigsp)s(ec)41 b Ft(is)630 4103 y Fs(DEBUG)p +Ft(,)32 b(the)g(command)g Fq(arg)40 b Ft(is)33 b(executed)g(b)s(efore)f +(ev)m(ery)h(simple)f(command,)h Fs(for)e Ft(com-)630 +4213 y(mand,)d Fs(case)g Ft(command,)h Fs(select)e Ft(command,)i(ev)m +(ery)h(arithmetic)g Fs(for)d Ft(command,)j(and)630 4322 +y(b)s(efore)22 b(the)g(\014rst)f(command)h(executes)i(in)e(a)g(shell)h +(function.)37 b(Refer)22 b(to)h(the)g(description)f(of)630 +4432 y(the)i Fs(extdebug)d Ft(option)j(to)h(the)f Fs(shopt)e Ft(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630 -4109 y(page)g(54\))g(for)e(details)i(of)f(its)h(e\013ect)g(on)f(the)g -Fs(DEBUG)f Ft(trap.)69 b(If)39 b(a)i Fq(sigsp)s(ec)k -Ft(is)40 b Fs(ERR)p Ft(,)i(the)630 4219 y(command)h Fq(arg)52 -b Ft(is)44 b(executed)g(whenev)m(er)g(a)g(simple)f(command)h(has)f(a)h -(non-zero)g(exit)630 4328 y(status,)30 b(sub)5 b(ject)30 -b(to)g(the)g(follo)m(wing)h(conditions.)41 b(The)30 b -Fs(ERR)e Ft(trap)i(is)g(not)g(executed)g(if)g(the)630 -4438 y(failed)38 b(command)g(is)f(part)h(of)f(the)h(command)g(list)g -(immediately)h(follo)m(wing)g(an)e Fs(until)630 4548 -y Ft(or)k Fs(while)f Ft(k)m(eyw)m(ord,)k(part)d(of)g(the)h(test)g(in)e -(an)h Fs(if)g Ft(statemen)m(t,)46 b(part)40 b(of)i(a)f(command)630 -4657 y(executed)31 b(in)e(a)h Fs(&&)f Ft(or)h Fs(||)f -Ft(list,)i(or)f(if)g(the)g(command's)f(return)g(status)h(is)g(b)s(eing) -f(in)m(v)m(erted)630 4767 y(using)37 b Fs(!)p Ft(.)63 -b(These)38 b(are)g(the)g(same)g(conditions)h(ob)s(ey)m(ed)f(b)m(y)g -(the)g Fs(errexit)d Ft(option.)64 b(If)38 b(a)630 4876 -y Fq(sigsp)s(ec)h Ft(is)33 b Fs(RETURN)p Ft(,)g(the)h(command)f -Fq(arg)41 b Ft(is)34 b(executed)g(eac)m(h)h(time)f(a)f(shell)h -(function)f(or)630 4986 y(a)e(script)f(executed)h(with)f(the)h -Fs(.)f Ft(or)g Fs(source)f Ft(builtins)h(\014nishes)f(executing.)630 -5121 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i(to)g(the)f(shell)h -(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59 b(T)-8 -b(rapp)s(ed)630 5230 y(signals)37 b(that)f(are)h(not)f(b)s(eing)f -(ignored)h(are)h(reset)f(to)h(their)f(original)h(v)-5 -b(alues)37 b(in)e(a)i(c)m(hild)630 5340 y(pro)s(cess)30 -b(when)f(it)i(is)g(created.)p eop end +4542 y(page)33 b(55\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the) +g Fs(DEBUG)f Ft(trap.)46 b(If)31 b(a)i Fq(sigsp)s(ec)38 +b Ft(is)32 b Fs(RETURN)p Ft(,)f(the)630 4651 y(command)h +Fq(arg)41 b Ft(is)33 b(executed)g(eac)m(h)h(time)f(a)g(shell)g +(function)g(or)f(a)h(script)g(executed)g(with)630 4761 +y(the)e Fs(.)f Ft(or)g Fs(source)f Ft(builtins)g(\014nishes)h +(executing.)630 4902 y(If)g(a)i Fq(sigsp)s(ec)k Ft(is)31 +b Fs(ERR)p Ft(,)f(the)h(command)g Fq(arg)39 b Ft(is)31 +b(executed)g(whenev)m(er)g(a)g(simple)g(command)630 5011 +y(has)k(a)h(non-zero)h(exit)f(status,)i(sub)5 b(ject)35 +b(to)h(the)g(follo)m(wing)h(conditions.)57 b(The)35 b +Fs(ERR)g Ft(trap)630 5121 y(is)30 b(not)f(executed)i(if)e(the)h(failed) +g(command)g(is)f(part)h(of)f(the)h(command)f(list)i(immediately)630 +5230 y(follo)m(wing)47 b(an)d Fs(until)g Ft(or)h Fs(while)f +Ft(k)m(eyw)m(ord,)49 b(part)c(of)g(the)h(test)g(follo)m(wing)g(the)f +Fs(if)g Ft(or)630 5340 y Fs(elif)d Ft(reserv)m(ed)i(w)m(ords,)j(part)c +(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f Ft(or)h +Fs(||)f Ft(list,)k(or)d(if)p eop end %%Page: 41 47 TeXDict begin 41 46 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(41)630 299 y(The)30 -b(return)f(status)i(is)f(zero)h(unless)f(a)h Fq(sigsp)s(ec)36 -b Ft(do)s(es)30 b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31 -b(signal.)150 454 y Fs(umask)870 586 y(umask)46 b([-p])h([-S])g([)p -Fj(mode)11 b Fs(])630 718 y Ft(Set)30 b(the)f(shell)h(pro)s(cess's)f -(\014le)h(creation)g(mask)g(to)g Fq(mo)s(de)p Ft(.)40 -b(If)29 b Fq(mo)s(de)34 b Ft(b)s(egins)29 b(with)g(a)h(digit,)630 -828 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s(er;) -e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f(mo)s -(de)630 937 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f(the)g -Fs(chmod)e Ft(command.)40 b(If)28 b Fq(mo)s(de)34 b Ft(is)28 -b(omitted,)j(the)630 1047 y(curren)m(t)36 b(v)-5 b(alue)36 -b(of)g(the)h(mask)f(is)g(prin)m(ted.)57 b(If)35 b(the)h(`)p -Fs(-S)p Ft(')g(option)h(is)f(supplied)f(without)h(a)630 -1156 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m(ted)g -(in)g(a)h(sym)m(b)s(olic)f(format.)55 b(If)35 b(the)g(`)p -Fs(-p)p Ft(')g(option)630 1266 y(is)f(supplied,)f(and)g +b(Shell)30 b(Builtin)h(Commands)2069 b(41)630 299 y(the)40 +b(command's)g(return)f(status)h(is)g(b)s(eing)f(in)m(v)m(erted)i(using) +f Fs(!)p Ft(.)68 b(These)40 b(are)g(the)h(same)630 408 +y(conditions)31 b(ob)s(ey)m(ed)f(b)m(y)h(the)f Fs(errexit)f +Ft(option.)630 545 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i(to)g +(the)f(shell)h(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59 +b(T)-8 b(rapp)s(ed)630 654 y(signals)28 b(that)f(are)h(not)f(b)s(eing)g +(ignored)g(are)g(reset)h(to)g(their)f(original)h(v)-5 +b(alues)28 b(in)e(a)i(subshell)630 764 y(or)i(subshell)g(en)m(vironmen) +m(t)h(when)e(one)i(is)f(created.)630 900 y(The)g(return)f(status)i(is)f +(zero)h(unless)f(a)h Fq(sigsp)s(ec)36 b Ft(do)s(es)30 +b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31 b(signal.)150 +1063 y Fs(umask)870 1199 y(umask)46 b([-p])h([-S])g([)p +Fi(mode)11 b Fs(])630 1335 y Ft(Set)29 b(the)h(shell)f(pro)s(cess's)g +(\014le)g(creation)h(mask)f(to)h Fq(mo)s(de)5 b Ft(.)40 +b(If)28 b Fq(mo)s(de)34 b Ft(b)s(egins)29 b(with)f(a)i(digit,)630 +1445 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s +(er;)e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f +(mo)s(de)630 1554 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f +(the)g Fs(chmod)e Ft(command.)40 b(If)28 b Fq(mo)s(de)34 +b Ft(is)28 b(omitted,)j(the)630 1664 y(curren)m(t)36 +b(v)-5 b(alue)36 b(of)g(the)h(mask)f(is)g(prin)m(ted.)57 +b(If)35 b(the)h(`)p Fs(-S)p Ft(')g(option)h(is)f(supplied)f(without)h +(a)630 1773 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m +(ted)g(in)g(a)h(sym)m(b)s(olic)f(format.)55 b(If)35 b(the)g(`)p +Fs(-p)p Ft(')g(option)630 1883 y(is)f(supplied,)f(and)g Fq(mo)s(de)38 b Ft(is)33 b(omitted,)j(the)e(output)f(is)g(in)h(a)g -(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 1376 y(as)e(input.)41 +(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 1993 y(as)e(input.)41 b(The)31 b(return)f(status)h(is)g(zero)h(if)e(the)h(mo)s(de)g(is)g -(successfully)g(c)m(hanged)g(or)g(if)g(no)630 1485 y +(successfully)g(c)m(hanged)g(or)g(if)g(no)630 2102 y Fq(mo)s(de)k Ft(argumen)m(t)c(is)f(supplied,)g(and)f(non-zero)i -(otherwise.)630 1617 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in) +(otherwise.)630 2238 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in) m(terpreted)h(as)f(an)g(o)s(ctal)i(n)m(um)m(b)s(er,)e(eac)m(h)i(n)m(um) -m(b)s(er)d(of)630 1727 y(the)f(umask)g(is)h(subtracted)f(from)f +m(b)s(er)d(of)630 2348 y(the)f(umask)g(is)h(subtracted)f(from)f Fs(7)p Ft(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i Fs(022)e -Ft(results)h(in)g(p)s(ermissions)630 1837 y(of)d Fs(755)p -Ft(.)150 1991 y Fs(unset)870 2124 y(unset)46 b([-fv])h([)p -Fj(name)11 b Fs(])630 2256 y Ft(Eac)m(h)34 b(v)-5 b(ariable)33 +Ft(results)h(in)g(p)s(ermissions)630 2457 y(of)d Fs(755)p +Ft(.)150 2620 y Fs(unset)870 2756 y(unset)46 b([-fv])h([)p +Fi(name)11 b Fs(])630 2892 y Ft(Eac)m(h)34 b(v)-5 b(ariable)33 b(or)g(function)g Fq(name)38 b Ft(is)33 b(remo)m(v)m(ed.)50 b(If)32 b(no)h(options)h(are)f(supplied,)g(or)g(the)630 -2365 y(`)p Fs(-v)p Ft(')h(option)h(is)g(giv)m(en,)h(eac)m(h)g +3002 y(`)p Fs(-v)p Ft(')h(option)h(is)g(giv)m(en,)h(eac)m(h)g Fq(name)k Ft(refers)34 b(to)h(a)g(shell)f(v)-5 b(ariable.)54 -b(If)34 b(the)h(`)p Fs(-f)p Ft(')f(option)h(is)630 2475 +b(If)34 b(the)h(`)p Fs(-f)p Ft(')f(option)h(is)630 3112 y(giv)m(en,)27 b(the)d Fq(name)5 b Ft(s)25 b(refer)f(to)h(shell)g (functions,)g(and)f(the)g(function)g(de\014nition)g(is)h(remo)m(v)m -(ed.)630 2585 y(Readonly)32 b(v)-5 b(ariables)33 b(and)f(functions)f +(ed.)630 3221 y(Readonly)32 b(v)-5 b(ariables)33 b(and)f(functions)f (ma)m(y)i(not)f(b)s(e)g(unset.)45 b(The)32 b(return)f(status)h(is)g -(zero)630 2694 y(unless)e(a)g Fq(name)36 b Ft(is)30 b(readonly)-8 -b(.)150 2945 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)275 -3186 y Ft(This)30 b(section)j(describ)s(es)e(builtin)h(commands)f(whic) -m(h)g(are)i(unique)d(to)j(or)f(ha)m(v)m(e)h(b)s(een)e(extended)g(in)150 -3296 y(Bash.)41 b(Some)30 b(of)h(these)g(commands)f(are)g(sp)s -(eci\014ed)g(in)g(the)h Fl(posix)e Ft(standard.)150 3451 -y Fs(alias)870 3583 y(alias)46 b([-p])h([)p Fj(name)11 -b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 3715 y Ft(Without)h(argumen) -m(ts)f(or)g(with)g(the)h(`)p Fs(-p)p Ft(')f(option,)k -Fs(alias)41 b Ft(prin)m(ts)i(the)g(list)h(of)f(aliases)630 -3825 y(on)36 b(the)g(standard)f(output)h(in)f(a)i(form)e(that)i(allo)m -(ws)g(them)f(to)g(b)s(e)g(reused)f(as)h(input.)56 b(If)630 -3934 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h(alias)h(is)f(de\014ned) -e(for)i(eac)m(h)h Fq(name)k Ft(whose)28 b Fq(v)-5 b(alue)35 -b Ft(is)29 b(giv)m(en.)630 4044 y(If)39 b(no)h Fq(v)-5 -b(alue)45 b Ft(is)40 b(giv)m(en,)j(the)d(name)f(and)g(v)-5 -b(alue)40 b(of)g(the)g(alias)h(is)f(prin)m(ted.)68 b(Aliases)41 -b(are)630 4154 y(describ)s(ed)29 b(in)h(Section)i(6.6)f([Aliases],)h -(page)f(79.)150 4308 y Fs(bind)870 4441 y(bind)47 b([-m)g -Fj(keymap)11 b Fs(])45 b([-lpsvPSV])870 4550 y(bind)i([-m)g -Fj(keymap)11 b Fs(])45 b([-q)i Fj(function)11 b Fs(])45 -b([-u)h Fj(function)11 b Fs(])45 b([-r)i Fj(keyseq)11 -b Fs(])870 4660 y(bind)47 b([-m)g Fj(keymap)11 b Fs(])45 -b(-f)i Fj(filename)870 4769 y Fs(bind)g([-m)g Fj(keymap)11 -b Fs(])45 b(-x)i Fj(keyseq:shell-command)870 4879 y Fs(bind)g([-m)g -Fj(keymap)11 b Fs(])45 b Fj(keyseq:function-name)870 -4989 y Fs(bind)i Fj(readline-command)630 5121 y Ft(Displa)m(y)26 +(zero)630 3331 y(unless)e(a)g Fq(name)36 b Ft(is)30 b(readonly)-8 +b(.)150 3568 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)150 +3728 y Ft(This)c(section)h(describ)s(es)f(builtin)f(commands)h(whic)m +(h)g(are)h(unique)e(to)j(or)e(ha)m(v)m(e)h(b)s(een)f(extended)g(in)150 +3837 y(Bash.)g(Some)30 b(of)h(these)g(commands)f(are)g(sp)s(eci\014ed)g +(in)g(the)h Fl(posix)e Ft(standard.)150 4002 y Fs(alias)870 +4138 y(alias)46 b([-p])h([)p Fi(name)11 b Fs([=)p Fi(value)g +Fs(])43 b(...)o(])630 4274 y Ft(Without)h(argumen)m(ts)f(or)g(with)g +(the)h(`)p Fs(-p)p Ft(')f(option,)k Fs(alias)41 b Ft(prin)m(ts)i(the)g +(list)h(of)f(aliases)630 4384 y(on)36 b(the)g(standard)f(output)h(in)f +(a)i(form)e(that)i(allo)m(ws)g(them)f(to)g(b)s(e)g(reused)f(as)h +(input.)56 b(If)630 4493 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h +(alias)h(is)f(de\014ned)e(for)i(eac)m(h)h Fq(name)k Ft(whose)28 +b Fq(v)-5 b(alue)35 b Ft(is)29 b(giv)m(en.)630 4603 y(If)39 +b(no)h Fq(v)-5 b(alue)45 b Ft(is)40 b(giv)m(en,)j(the)d(name)f(and)g(v) +-5 b(alue)40 b(of)g(the)g(alias)h(is)f(prin)m(ted.)68 +b(Aliases)41 b(are)630 4712 y(describ)s(ed)29 b(in)h(Section)i(6.6)f +([Aliases],)h(page)f(79.)150 4875 y Fs(bind)870 5011 +y(bind)47 b([-m)g Fi(keymap)11 b Fs(])45 b([-lpsvPSV])870 +5121 y(bind)i([-m)g Fi(keymap)11 b Fs(])45 b([-q)i Fi(function)11 +b Fs(])45 b([-u)h Fi(function)11 b Fs(])45 b([-r)i Fi(keyseq)11 +b Fs(])870 5230 y(bind)47 b([-m)g Fi(keymap)11 b Fs(])45 +b(-f)i Fi(filename)870 5340 y Fs(bind)g([-m)g Fi(keymap)11 +b Fs(])45 b(-x)i Fi(keyseq:shell-command)p eop end +%%Page: 42 48 +TeXDict begin 42 47 bop 150 -116 a Ft(42)2572 b(Bash)31 +b(Reference)g(Man)m(ual)870 299 y Fs(bind)47 b([-m)g +Fi(keymap)11 b Fs(])45 b Fi(keyseq:function-name)870 +408 y Fs(bind)i Fi(readline-command)630 545 y Ft(Displa)m(y)26 b(curren)m(t)f(Readline)h(\(see)g(Chapter)f(8)g([Command)g(Line)g -(Editing],)i(page)f(93\))g(k)m(ey)630 5230 y(and)36 b(function)g +(Editing],)i(page)f(93\))g(k)m(ey)630 655 y(and)36 b(function)g (bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g(to)h(a)f(Readline)g -(function)f(or)h(macro,)630 5340 y(or)44 b(set)h(a)g(Readline)f(v)-5 +(function)f(or)h(macro,)630 765 y(or)44 b(set)h(a)g(Readline)f(v)-5 b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t)f(is)g(a)h -(command)f(as)g(it)p eop end -%%Page: 42 48 -TeXDict begin 42 47 bop 150 -116 a Ft(42)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(w)m(ould)42 b(app)s(ear)f(in)h(a)h -(Readline)g(initialization)i(\014le)d(\(see)h(Section)g(8.3)g -([Readline)g(Init)630 408 y(File],)g(page)c(96\),)k(but)38 -b(eac)m(h)i(binding)e(or)h(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a) -f(separate)630 518 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs -("\\C-x\\C-r":re-read-init-f)o(ile)p Ft('.)630 652 y(Options,)e(if)h -(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 -811 y Fs(-m)e Fj(keymap)1110 921 y Ft(Use)54 b Fq(k)m(eymap)j -Ft(as)d(the)g(k)m(eymap)g(to)h(b)s(e)e(a\013ected)i(b)m(y)f(the)g -(subsequen)m(t)1110 1031 y(bindings.)46 b(Acceptable)34 -b Fq(k)m(eymap)i Ft(names)c(are)h Fs(emacs)p Ft(,)f Fs(emacs-standard)p -Ft(,)1110 1140 y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p -Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p -Ft(,)f(and)1110 1250 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 -b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e Fs(vi-command)p -Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110 1359 -y(to)31 b Fs(emacs-standard)p Ft(.)630 1518 y Fs(-l)384 -b Ft(List)31 b(the)f(names)g(of)h(all)g(Readline)g(functions.)630 -1678 y Fs(-p)384 b Ft(Displa)m(y)34 b(Readline)f(function)g(names)g -(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m(a)m(y)f(that)1110 -1787 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g(in)g(a)h(Readline) -g(initialization)i(\014le.)630 1946 y Fs(-P)384 b Ft(List)31 -b(curren)m(t)f(Readline)h(function)f(names)g(and)g(bindings.)630 -2105 y Fs(-v)384 b Ft(Displa)m(y)25 b(Readline)f(v)-5 -b(ariable)25 b(names)f(and)f(v)-5 b(alues)24 b(in)g(suc)m(h)f(a)i(w)m -(a)m(y)f(that)h(they)1110 2215 y(can)31 b(b)s(e)e(used)h(as)h(input)e -(or)h(in)g(a)h(Readline)g(initialization)j(\014le.)630 -2374 y Fs(-V)384 b Ft(List)31 b(curren)m(t)f(Readline)h(v)-5 -b(ariable)31 b(names)f(and)g(v)-5 b(alues.)630 2533 y -Fs(-s)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s -(ound)f(to)i(macros)g(and)f(the)g(strings)1110 2643 y(they)d(output)f -(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g(can)g(b)s(e)f(used)g(as)h -(input)e(or)i(in)g(a)1110 2752 y(Readline)d(initialization)i(\014le.) -630 2911 y Fs(-S)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g +(command)f(as)g(it)630 874 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g +(initialization)i(\014le)d(\(see)h(Section)g(8.3)g([Readline)g(Init)630 +984 y(File],)g(page)c(96\),)k(but)38 b(eac)m(h)i(binding)e(or)h +(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a)f(separate)630 +1093 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs("\\C-x\\C-r":re-read-init-f)o +(ile)p Ft('.)630 1230 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g +(follo)m(wing)h(meanings:)630 1395 y Fs(-m)e Fi(keymap)1110 +1504 y Ft(Use)54 b Fq(k)m(eymap)j Ft(as)d(the)g(k)m(eymap)g(to)h(b)s(e) +e(a\013ected)i(b)m(y)f(the)g(subsequen)m(t)1110 1614 +y(bindings.)46 b(Acceptable)34 b Fq(k)m(eymap)i Ft(names)c(are)h +Fs(emacs)p Ft(,)f Fs(emacs-standard)p Ft(,)1110 1724 +y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p +Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 +1833 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 +b(alen)m(t)41 b(to)e Fs(vi-command)p Ft(;)i Fs(emacs)c +Ft(is)i(equiv)-5 b(alen)m(t)1110 1943 y(to)31 b Fs(emacs-standard)p +Ft(.)630 2107 y Fs(-l)384 b Ft(List)31 b(the)f(names)g(of)h(all)g +(Readline)g(functions.)630 2271 y Fs(-p)384 b Ft(Displa)m(y)34 +b(Readline)f(function)g(names)g(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m +(a)m(y)f(that)1110 2381 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g +(in)g(a)h(Readline)g(initialization)i(\014le.)630 2545 +y Fs(-P)384 b Ft(List)31 b(curren)m(t)f(Readline)h(function)f(names)g +(and)g(bindings.)630 2710 y Fs(-v)384 b Ft(Displa)m(y)25 +b(Readline)f(v)-5 b(ariable)25 b(names)f(and)f(v)-5 b(alues)24 +b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 2819 +y(can)31 b(b)s(e)e(used)h(as)h(input)e(or)h(in)g(a)h(Readline)g +(initialization)j(\014le.)630 2984 y Fs(-V)384 b Ft(List)31 +b(curren)m(t)f(Readline)h(v)-5 b(ariable)31 b(names)f(and)g(v)-5 +b(alues.)630 3148 y Fs(-s)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g (sequences)f(b)s(ound)f(to)i(macros)g(and)f(the)g(strings)1110 -3021 y(they)31 b(output.)630 3180 y Fs(-f)f Fj(filename)1110 -3290 y Ft(Read)h(k)m(ey)g(bindings)e(from)h Fq(\014lename)p -Ft(.)630 3449 y Fs(-q)g Fj(function)1110 3558 y Ft(Query)g(ab)s(out)g -(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h(the)f(named)f -Fq(function)p Ft(.)630 3717 y Fs(-u)g Fj(function)1110 -3827 y Ft(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i(the)f(named)g -Fq(function)p Ft(.)630 3986 y Fs(-r)g Fj(keyseq)1110 -4096 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f(binding)f(for)h -Fq(k)m(eyseq)p Ft(.)630 4255 y Fs(-x)g Fj(keyseq:shell-command)1110 -4364 y Ft(Cause)35 b Fq(shell-command)k Ft(to)d(b)s(e)f(executed)h -(whenev)m(er)f Fq(k)m(eyseq)j Ft(is)d(en)m(tered.)1110 -4474 y(When)46 b Fq(shell-command)k Ft(is)c(executed,)51 -b(the)46 b(shell)g(sets)g(the)g Fs(READLINE_)1110 4583 -y(LINE)37 b Ft(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e -(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 4693 -y Fs(READLINE_POINT)e Ft(v)-5 b(ariable)39 b(to)h(the)e(curren)m(t)h -(lo)s(cation)h(of)f(the)g(insertion)1110 4803 y(p)s(oin)m(t.)59 -b(If)37 b(the)f(executed)i(command)e(c)m(hanges)i(the)f(v)-5 -b(alue)37 b(of)f Fs(READLINE_)1110 4912 y(LINE)29 b Ft(or)h -Fs(READLINE_POINT)p Ft(,)c(those)31 b(new)e(v)-5 b(alues)31 -b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 5022 y(editing)h(state.) -630 5181 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v) --5 b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.) -150 5340 y Fs(builtin)p eop end +3258 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g +(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 3367 +y(Readline)d(initialization)i(\014le.)630 3532 y Fs(-S)384 +b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s(ound)f(to)i +(macros)g(and)f(the)g(strings)1110 3641 y(they)31 b(output.)630 +3806 y Fs(-f)f Fi(filename)1110 3915 y Ft(Read)h(k)m(ey)g(bindings)e +(from)h Fq(\014lename)5 b Ft(.)630 4080 y Fs(-q)30 b +Fi(function)1110 4189 y Ft(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m +(v)m(ok)m(e)h(the)f(named)f Fq(function)p Ft(.)630 4354 +y Fs(-u)g Fi(function)1110 4463 y Ft(Un)m(bind)f(all)i(k)m(eys)g(b)s +(ound)e(to)i(the)f(named)g Fq(function)p Ft(.)630 4628 +y Fs(-r)g Fi(keyseq)1110 4737 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f +(binding)f(for)h Fq(k)m(eyseq)r Ft(.)630 4902 y Fs(-x)g +Fi(keyseq:shell-command)1110 5011 y Ft(Cause)35 b Fq(shell-command)k +Ft(to)d(b)s(e)f(executed)h(whenev)m(er)f Fq(k)m(eyseq)j +Ft(is)d(en)m(tered.)1110 5121 y(When)46 b Fq(shell-command)k +Ft(is)c(executed,)51 b(the)46 b(shell)g(sets)g(the)g +Fs(READLINE_)1110 5230 y(LINE)37 b Ft(v)-5 b(ariable)38 +b(to)g(the)g(con)m(ten)m(ts)i(of)e(the)g(Readline)g(line)g(bu\013er)f +(and)g(the)1110 5340 y Fs(READLINE_POINT)e Ft(v)-5 b(ariable)39 +b(to)h(the)e(curren)m(t)h(lo)s(cation)h(of)f(the)g(insertion)p +eop end %%Page: 43 49 TeXDict begin 43 48 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(43)870 299 y Fs(builtin)46 -b([)p Fj(shell-builtin)54 b Fs([)p Fj(args)11 b Fs(]])630 -439 y Ft(Run)35 b(a)i(shell)f(builtin,)i(passing)e(it)h -Fq(args)p Ft(,)h(and)e(return)f(its)i(exit)g(status.)59 -b(This)35 b(is)i(useful)630 548 y(when)29 b(de\014ning)h(a)g(shell)h -(function)f(with)g(the)g(same)h(name)f(as)h(a)g(shell)f(builtin,)g -(retaining)630 658 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g -(within)g(the)h(function.)50 b(The)33 b(return)g(status)h(is)f(non-)630 -768 y(zero)e(if)g Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin) -g(command.)150 938 y Fs(caller)870 1078 y(caller)46 b([)p -Fj(expr)11 b Fs(])630 1218 y Ft(Returns)34 b(the)g(con)m(text)j(of)e -(an)m(y)g(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f(or)h -(a)g(script)630 1328 y(executed)c(with)f(the)h Fs(.)f -Ft(or)g Fs(source)f Ft(builtins\).)630 1468 y(Without)45 -b Fq(expr)p Ft(,)j Fs(caller)43 b Ft(displa)m(ys)i(the)f(line)h(n)m(um) -m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 1577 -y(curren)m(t)35 b(subroutine)g(call.)58 b(If)35 b(a)h(non-negativ)m(e)i -(in)m(teger)f(is)f(supplied)e(as)i Fq(expr)p Ft(,)h Fs(caller)630 -1687 y Ft(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d +b(Shell)30 b(Builtin)h(Commands)2069 b(43)1110 299 y(p)s(oin)m(t.)59 +b(If)37 b(the)f(executed)i(command)e(c)m(hanges)i(the)f(v)-5 +b(alue)37 b(of)f Fs(READLINE_)1110 408 y(LINE)29 b Ft(or)h +Fs(READLINE_POINT)p Ft(,)c(those)31 b(new)e(v)-5 b(alues)31 +b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 518 y(editing)h(state.)630 +677 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)-5 +b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.)150 +837 y Fs(builtin)870 971 y(builtin)46 b([)p Fi(shell-builtin)54 +b Fs([)p Fi(args)11 b Fs(]])630 1106 y Ft(Run)35 b(a)h(shell)h +(builtin,)g(passing)f(it)g Fq(args)t Ft(,)i(and)e(return)f(its)h(exit)h +(status.)58 b(This)36 b(is)g(useful)630 1215 y(when)29 +b(de\014ning)h(a)g(shell)h(function)f(with)g(the)g(same)h(name)f(as)h +(a)g(shell)f(builtin,)g(retaining)630 1325 y(the)k(functionalit)m(y)h +(of)f(the)f(builtin)g(within)g(the)h(function.)50 b(The)33 +b(return)g(status)h(is)f(non-)630 1435 y(zero)e(if)g +Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)g(command.)150 +1594 y Fs(caller)870 1729 y(caller)46 b([)p Fi(expr)11 +b Fs(])630 1863 y Ft(Returns)34 b(the)g(con)m(text)j(of)e(an)m(y)g +(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f(or)h(a)g +(script)630 1973 y(executed)c(with)f(the)h Fs(.)f Ft(or)g +Fs(source)f Ft(builtins\).)630 2107 y(Without)45 b Fq(expr)7 +b Ft(,)46 b Fs(caller)d Ft(displa)m(ys)h(the)g(line)g(n)m(um)m(b)s(er)f +(and)g(source)h(\014lename)h(of)f(the)630 2217 y(curren)m(t)35 +b(subroutine)f(call.)56 b(If)35 b(a)h(non-negativ)m(e)h(in)m(teger)g +(is)e(supplied)f(as)h Fq(expr)7 b Ft(,)36 b Fs(caller)630 +2326 y Ft(displa)m(ys)41 b(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d (name,)44 b(and)c(source)g(\014le)h(corresp)s(onding)e(to)630 -1797 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g +2436 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g (stac)m(k.)54 b(This)34 b(extra)h(information)g(ma)m(y)630 -1906 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m +2545 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m (k)h(trace.)42 b(The)29 b(curren)m(t)i(frame)f(is)g(frame)h(0.)630 -2046 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g +2680 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g (is)h(not)f(executing)h(a)g(subroutine)e(call)i(or)g -Fq(expr)630 2156 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5 +Fq(expr)630 2790 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5 b(alid)30 b(p)s(osition)h(in)f(the)g(call)i(stac)m(k.)150 -2326 y Fs(command)870 2466 y(command)46 b([-pVv])g Fj(command)56 -b Fs([)p Fj(arguments)g Fs(...)o(])630 2606 y Ft(Runs)32 -b Fq(command)k Ft(with)d Fq(argumen)m(ts)k Ft(ignoring)c(an)m(y)g -(shell)h(function)e(named)h Fq(command)p Ft(.)630 2716 +2949 y Fs(command)870 3083 y(command)46 b([-pVv])g Fi(command)56 +b Fs([)p Fi(arguments)g Fs(...)o(])630 3218 y Ft(Runs)31 +b Fq(command)36 b Ft(with)d Fq(argumen)m(ts)j Ft(ignoring)d(an)m(y)g +(shell)g(function)f(named)g Fq(command)t Ft(.)630 3328 y(Only)39 b(shell)i(builtin)e(commands)h(or)g(commands)f(found)g(b)m(y) -h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 2826 y(executed.)g(If)23 +h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 3437 y(executed.)g(If)23 b(there)h(is)f(a)h(shell)f(function)g(named)g Fs(ls)p Ft(,)i(running)c(`)p Fs(command)29 b(ls)p Ft(')23 b(within)g(the)630 -2935 y(function)33 b(will)g(execute)i(the)f(external)g(command)f +3547 y(function)33 b(will)g(execute)i(the)f(external)g(command)f Fs(ls)f Ft(instead)i(of)f(calling)i(the)e(function)630 -3045 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p +3656 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p Ft(')h(option)g(means)f(to)h(use)g(a)f(default)h(v)-5 -b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 3154 y(guaran)m(teed)35 +b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 3766 y(guaran)m(teed)35 b(to)f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52 -b(The)33 b(return)g(status)h(in)f(this)h(case)630 3264 +b(The)33 b(return)g(status)h(in)f(this)h(case)630 3875 y(is)29 b(127)g(if)g Fq(command)j Ft(cannot)d(b)s(e)e(found)h(or)g(an)g (error)h(o)s(ccurred,)f(and)g(the)h(exit)g(status)g(of)630 -3373 y Fq(command)34 b Ft(otherwise.)630 3513 y(If)25 +3985 y Fq(command)34 b Ft(otherwise.)630 4120 y(If)25 b(either)g(the)h(`)p Fs(-V)p Ft(')f(or)g(`)p Fs(-v)p Ft(')g(option)g(is)g(supplied,)h(a)f(description)g(of)h -Fq(command)i Ft(is)d(prin)m(ted.)630 3623 y(The)i(`)p +Fq(command)i Ft(is)d(prin)m(ted.)630 4229 y(The)i(`)p Fs(-v)p Ft(')h(option)h(causes)f(a)h(single)f(w)m(ord)g(indicating)h -(the)f(command)g(or)g(\014le)g(name)g(used)630 3733 y(to)36 +(the)f(command)g(or)g(\014le)g(name)g(used)630 4339 y(to)36 b(in)m(v)m(ok)m(e)g Fq(command)j Ft(to)c(b)s(e)g(displa)m(y)m(ed;)j (the)d(`)p Fs(-V)p Ft(')g(option)g(pro)s(duces)e(a)j(more)f(v)m(erb)s -(ose)630 3842 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e +(ose)630 4448 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e (status)h(is)g(zero)h(if)f Fq(command)k Ft(is)c(found,)h(and)630 -3952 y(non-zero)31 b(if)f(not.)150 4122 y Fs(declare)870 -4262 y(declare)46 b([-aAfFilrtux])e([-p])j([)p Fj(name)11 -b Fs([=)p Fj(value)g Fs(])43 b(...)o(])630 4402 y Ft(Declare)29 +4558 y(non-zero)31 b(if)f(not.)150 4717 y Fs(declare)870 +4852 y(declare)46 b([-aAfFilrtux])e([-p])j([)p Fi(name)11 +b Fs([=)p Fi(value)g Fs(])43 b(...)o(])630 4986 y Ft(Declare)29 b(v)-5 b(ariables)28 b(and)e(giv)m(e)j(them)e(attributes.)40 b(If)27 b(no)g Fq(name)5 b Ft(s)27 b(are)h(giv)m(en,)h(then)e(displa)m -(y)630 4512 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31 -b(instead.)630 4652 y(The)d(`)p Fs(-p)p Ft(')g(option)g(will)h(displa)m -(y)f(the)h(attributes)f(and)g(v)-5 b(alues)28 b(of)h(eac)m(h)g -Fq(name)p Ft(.)40 b(When)28 b(`)p Fs(-p)p Ft(')630 4762 -y(is)i(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31 -b(additional)g(options)f(are)h(ignored.)630 4902 y(When)36 -b(`)p Fs(-p)p Ft(')f(is)h(supplied)f(without)h Fq(name)41 -b Ft(argumen)m(ts,)d Fs(declare)c Ft(will)i(displa)m(y)g(the)g(at-)630 -5011 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5 -b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h -(the)g(addi-)630 5121 y(tional)h(options.)41 b(If)30 -b(no)g(other)h(options)g(are)g(supplied)e(with)h(`)p -Fs(-p)p Ft(',)g Fs(declare)f Ft(will)i(displa)m(y)630 -5230 y(the)f(attributes)g(and)e(v)-5 b(alues)30 b(of)g(all)g(shell)g(v) --5 b(ariables.)41 b(The)29 b(`)p Fs(-f)p Ft(')g(option)h(will)g -(restrict)g(the)630 5340 y(displa)m(y)h(to)g(shell)f(functions.)p -eop end +(y)630 5096 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31 +b(instead.)630 5230 y(The)c(`)p Fs(-p)p Ft(')h(option)g(will)g(displa)m +(y)g(the)g(attributes)g(and)g(v)-5 b(alues)28 b(of)g(eac)m(h)h +Fq(name)5 b Ft(.)40 b(When)27 b(`)p Fs(-p)p Ft(')630 +5340 y(is)j(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31 +b(additional)g(options)f(are)h(ignored.)p eop end %%Page: 44 50 TeXDict begin 44 49 bop 150 -116 a Ft(44)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(The)36 b(`)p Fs(-F)p -Ft(')h(option)g(inhibits)f(the)h(displa)m(y)g(of)g(function)g -(de\014nitions;)i(only)e(the)g(function)630 408 y(name)30 -b(and)f(attributes)i(are)f(prin)m(ted.)40 b(If)30 b(the)g -Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using)630 -518 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f -(Builtin],)k(page)e(54\),)i(the)d(source)h(\014le)f(name)h(and)630 -628 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h +b(Reference)g(Man)m(ual)630 299 y(When)36 b(`)p Fs(-p)p +Ft(')f(is)h(supplied)f(without)h Fq(name)41 b Ft(argumen)m(ts,)d +Fs(declare)c Ft(will)i(displa)m(y)g(the)g(at-)630 408 +y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5 +b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h +(the)g(addi-)630 518 y(tional)h(options.)41 b(If)30 b(no)g(other)h +(options)g(are)g(supplied)e(with)h(`)p Fs(-p)p Ft(',)g +Fs(declare)f Ft(will)i(displa)m(y)630 628 y(the)f(attributes)g(and)e(v) +-5 b(alues)30 b(of)g(all)g(shell)g(v)-5 b(ariables.)41 +b(The)29 b(`)p Fs(-f)p Ft(')g(option)h(will)g(restrict)g(the)630 +737 y(displa)m(y)h(to)g(shell)f(functions.)630 867 y(The)36 +b(`)p Fs(-F)p Ft(')h(option)g(inhibits)f(the)h(displa)m(y)g(of)g +(function)g(de\014nitions;)i(only)e(the)g(function)630 +976 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40 +b(If)30 b(the)g Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using) +630 1086 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f +(Builtin],)k(page)e(55\),)i(the)d(source)h(\014le)f(name)h(and)630 +1196 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h (de\014ned)e(are)i(displa)m(y)m(ed)h(as)e(w)m(ell.)64 -b(`)p Fs(-F)p Ft(')38 b(implies)630 737 y(`)p Fs(-f)p +b(`)p Fs(-F)p Ft(')38 b(implies)630 1305 y(`)p Fs(-f)p Ft('.)i(The)28 b(follo)m(wing)i(options)f(can)f(b)s(e)g(used)g(to)h (restrict)g(output)f(to)h(v)-5 b(ariables)30 b(with)e(the)630 -847 y(sp)s(eci\014ed)i(attributes)h(or)f(to)h(giv)m(e)h(v)-5 -b(ariables)31 b(attributes:)630 1000 y Fs(-a)384 b Ft(Eac)m(h)36 +1415 y(sp)s(eci\014ed)i(attributes)h(or)f(to)h(giv)m(e)h(v)-5 +b(ariables)31 b(attributes:)630 1564 y Fs(-a)384 b Ft(Eac)m(h)36 b Fq(name)k Ft(is)34 b(an)h(indexed)g(arra)m(y)g(v)-5 b(ariable)36 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)1110 -1110 y(page)31 b(80\).)630 1263 y Fs(-A)384 b Ft(Eac)m(h)24 +1674 y(page)31 b(80\).)630 1823 y Fs(-A)384 b Ft(Eac)m(h)24 b Fq(name)k Ft(is)23 b(an)g(asso)s(ciativ)m(e)j(arra)m(y)e(v)-5 b(ariable)24 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)1110 -1373 y(page)31 b(80\).)630 1526 y Fs(-f)384 b Ft(Use)31 -b(function)f(names)g(only)-8 b(.)630 1680 y Fs(-i)384 +1933 y(page)31 b(80\).)630 2082 y Fs(-f)384 b Ft(Use)31 +b(function)f(names)g(only)-8 b(.)630 2232 y Fs(-i)384 b Ft(The)36 b(v)-5 b(ariable)37 b(is)f(to)h(b)s(e)f(treated)h(as)g(an)f (in)m(teger;)41 b(arithmetic)c(ev)-5 b(aluation)1110 -1789 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(78\))h -(is)f(p)s(erformed)e(when)h(the)1110 1899 y(v)-5 b(ariable)31 -b(is)g(assigned)f(a)h(v)-5 b(alue.)630 2052 y Fs(-l)384 +2341 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(78\))h +(is)f(p)s(erformed)e(when)h(the)1110 2451 y(v)-5 b(ariable)31 +b(is)g(assigned)f(a)h(v)-5 b(alue.)630 2600 y Fs(-l)384 b Ft(When)26 b(the)g(v)-5 b(ariable)27 b(is)f(assigned)g(a)g(v)-5 b(alue,)28 b(all)f(upp)s(er-case)e(c)m(haracters)j(are)1110 -2162 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30 -b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 2315 +2710 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30 +b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 2859 y Fs(-r)384 b Ft(Mak)m(e)25 b Fq(name)5 b Ft(s)23 b(readonly)-8 b(.)39 b(These)24 b(names)f(cannot)h(then)f(b)s(e)g(assigned)h(v)-5 -b(alues)1110 2425 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h -(statemen)m(ts)h(or)f(unset.)630 2578 y Fs(-t)384 b Ft(Giv)m(e)33 +b(alues)1110 2969 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h +(statemen)m(ts)h(or)f(unset.)630 3118 y Fs(-t)384 b Ft(Giv)m(e)33 b(eac)m(h)h Fq(name)j Ft(the)32 b Fs(trace)f Ft(attribute.)46 -b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 2688 +b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 3228 y Fs(DEBUG)26 b Ft(and)h Fs(RETURN)f Ft(traps)h(from)g(the)h(calling)h -(shell.)40 b(The)27 b(trace)i(attribute)1110 2798 y(has)h(no)g(sp)s -(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 2951 y +(shell.)40 b(The)27 b(trace)i(attribute)1110 3337 y(has)h(no)g(sp)s +(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 3487 y Fs(-u)384 b Ft(When)28 b(the)h(v)-5 b(ariable)29 b(is)f(assigned)h(a)f (v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m(haracters)f(are)1110 -3061 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30 -b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630 3214 +3597 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30 +b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630 3746 y Fs(-x)384 b Ft(Mark)30 b(eac)m(h)h Fq(name)k Ft(for)29 b(exp)s(ort)h(to)g(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110 -3324 y(ronmen)m(t.)630 3477 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g +3856 y(ronmen)m(t.)630 4005 y(Using)e(`)p Fs(+)p Ft(')h(instead)f(of)g (`)p Fs(-)p Ft(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f -(the)g(exceptions)h(that)630 3587 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f +(the)g(exceptions)h(that)630 4115 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f (b)s(e)f(used)g(to)i(destro)m(y)g(an)f(arra)m(y)g(v)-5 b(ariable)31 b(and)f(`)p Fs(+r)p Ft(')g(will)g(not)g(remo)m(v)m(e)i -(the)630 3696 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h +(the)630 4224 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h (function,)g Fs(declare)e Ft(mak)m(es)j(eac)m(h)f Fq(name)35 -b Ft(lo)s(cal,)630 3806 y(as)24 b(with)g(the)g Fs(local)e -Ft(command.)39 b(If)23 b(a)i(v)-5 b(ariable)24 b(name)g(is)g(follo)m(w) -m(ed)i(b)m(y)e(=)p Fq(v)-5 b(alue)p Ft(,)25 b(the)f(v)-5 -b(alue)630 3915 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g -Fq(v)-5 b(alue)p Ft(.)630 4047 y(The)35 b(return)f(status)i(is)g(zero)g -(unless)f(an)g(in)m(v)-5 b(alid)36 b(option)g(is)g(encoun)m(tered,)h -(an)f(attempt)630 4156 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g -(using)f(`)p Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h -(assign)630 4266 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5 +b Ft(lo)s(cal,)630 4334 y(as)40 b(with)g(the)g Fs(local)e +Ft(command.)69 b(If)40 b(a)g(v)-5 b(ariable)41 b(name)f(is)g(follo)m(w) +m(ed)h(b)m(y)f(=)p Fq(v)-5 b(alue)5 b Ft(,)43 b(the)630 +4443 y(v)-5 b(alue)31 b(of)f(the)h(v)-5 b(ariable)31 +b(is)g(set)f(to)i Fq(v)-5 b(alue)5 b Ft(.)630 4573 y(The)35 +b(return)f(status)i(is)g(zero)g(unless)f(an)g(in)m(v)-5 +b(alid)36 b(option)g(is)g(encoun)m(tered,)h(an)f(attempt)630 +4682 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g(using)f(`)p +Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h(assign)630 +4792 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5 b(ariable,)47 b(an)42 b(attempt)h(is)f(made)g(to)h(assign)f(a)h(v)-5 -b(alue)42 b(to)h(an)630 4376 y(arra)m(y)30 b(v)-5 b(ariable)30 +b(alue)42 b(to)h(an)630 4902 y(arra)m(y)30 b(v)-5 b(ariable)30 b(without)g(using)e(the)i(comp)s(ound)e(assignmen)m(t)i(syn)m(tax)g -(\(see)h(Section)f(6.7)630 4485 y([Arra)m(ys],)47 b(page)c(80\),)48 +(\(see)h(Section)f(6.7)630 5011 y([Arra)m(ys],)47 b(page)c(80\),)48 b(one)43 b(of)g(the)g Fq(names)k Ft(is)c(not)g(a)g(v)-5 b(alid)43 b(shell)g(v)-5 b(ariable)44 b(name,)i(an)630 -4595 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g +5121 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g (for)g(a)h(readonly)f(v)-5 b(ariable,)29 b(an)e(attempt)630 -4704 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g +5230 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g (arra)m(y)h(v)-5 b(ariable,)30 b(or)e(an)g(attempt)i(is)e(made)g(to)630 -4814 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p -Fs(-f)p Ft('.)150 4967 y Fs(echo)870 5099 y(echo)47 b([-neE])f([)p -Fj(arg)57 b Fs(...)o(])630 5230 y Ft(Output)31 b(the)i -Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f -(a)h(newline.)47 b(The)32 b(return)630 5340 y(status)40 -b(is)g(alw)m(a)m(ys)h(0.)69 b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s -(eci\014ed,)j(the)e(trailing)h(newline)e(is)h(suppressed.)66 -b(If)p eop end +5340 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p +Fs(-f)p Ft('.)p eop end %%Page: 45 51 TeXDict begin 45 50 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(45)630 299 y(the)29 +b(Shell)30 b(Builtin)h(Commands)2069 b(45)150 299 y Fs(echo)870 +432 y(echo)47 b([-neE])f([)p Fi(arg)57 b Fs(...)o(])630 +565 y Ft(Output)31 b(the)i Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g +(spaces,)g(terminated)g(with)f(a)h(newline.)47 b(The)32 +b(return)630 674 y(status)40 b(is)g(alw)m(a)m(ys)h(0.)69 +b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s(eci\014ed,)j(the)e(trailing)h +(newline)e(is)h(suppressed.)66 b(If)630 784 y(the)29 b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g(in)m(terpretation)g(of)g (the)f(follo)m(wing)h(bac)m(kslash-escap)s(ed)g(c)m(har-)630 -408 y(acters)38 b(is)f(enabled.)60 b(The)36 b(`)p Fs(-E)p +893 y(acters)38 b(is)f(enabled.)60 b(The)36 b(`)p Fs(-E)p Ft(')h(option)g(disables)g(the)g(in)m(terpretation)h(of)f(these)g -(escap)s(e)630 518 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g(where)f +(escap)s(e)630 1003 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g(where)f (they)h(are)g(in)m(terpreted)h(b)m(y)e(default.)55 b(The)34 -b Fs(xpg_)630 628 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s(e)e(used)h +b Fs(xpg_)630 1112 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s(e)e(used)h (to)h(dynamically)g(determine)f(whether)f(or)i(not)f -Fs(echo)630 737 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g +Fs(echo)630 1222 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g (b)m(y)g(default.)70 b Fs(echo)39 b Ft(do)s(es)h(not)g(in)m(terpret)h -(`)p Fs(--)p Ft(')f(to)630 847 y(mean)30 b(the)h(end)f(of)g(options.) -630 976 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f -(sequences:)630 1126 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 -1275 y Fs(\\b)384 b Ft(bac)m(kspace)630 1425 y Fs(\\c)g -Ft(suppress)28 b(further)h(output)630 1574 y Fs(\\e)384 -b Ft(escap)s(e)630 1724 y Fs(\\f)g Ft(form)30 b(feed)630 -1873 y Fs(\\n)384 b Ft(new)30 b(line)630 2022 y Fs(\\r)384 -b Ft(carriage)32 b(return)630 2172 y Fs(\\t)384 b Ft(horizon)m(tal)32 -b(tab)630 2321 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 -2471 y Fs(\\\\)384 b Ft(bac)m(kslash)630 2620 y Fs(\\0)p -Fj(nnn)240 b Ft(the)32 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e(v)-5 +(`)p Fs(--)p Ft(')f(to)630 1332 y(mean)30 b(the)h(end)f(of)g(options.) +630 1465 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e) +f(sequences:)630 1621 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 +1777 y Fs(\\b)384 b Ft(bac)m(kspace)630 1933 y Fs(\\c)g +Ft(suppress)28 b(further)h(output)630 2089 y Fs(\\e)384 +b Ft(escap)s(e)630 2245 y Fs(\\f)g Ft(form)30 b(feed)630 +2401 y Fs(\\n)384 b Ft(new)30 b(line)630 2557 y Fs(\\r)384 +b Ft(carriage)32 b(return)630 2713 y Fs(\\t)384 b Ft(horizon)m(tal)32 +b(tab)630 2869 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 +3025 y Fs(\\\\)384 b Ft(bac)m(kslash)630 3181 y Fs(\\0)p +Fi(nnn)240 b Ft(the)32 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e(v)-5 b(alue)33 b(is)f(the)g(o)s(ctal)i(v)-5 b(alue)32 b Fq(nnn)f -Ft(\(zero)i(to)1110 2730 y(three)e(o)s(ctal)g(digits\))630 -2879 y Fs(\\x)p Fj(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g +Ft(\(zero)i(to)1110 3291 y(three)e(o)s(ctal)g(digits\))630 +3447 y Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g (whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 -b(alue)40 b Fq(HH)1110 2989 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e -(digits\))150 3138 y Fs(enable)870 3268 y(enable)46 b([-a])h([-dnps])f -([-f)g Fj(filename)11 b Fs(])45 b([)p Fj(name)57 b Fs(...)o(])630 -3397 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56 +b(alue)40 b Fq(HH)1110 3557 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e +(digits\))150 3713 y Fs(enable)870 3846 y(enable)46 b([-a])h([-dnps])f +([-f)g Fi(filename)11 b Fs(])45 b([)p Fi(name)57 b Fs(...)o(])630 +3978 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56 b(Disabling)37 b(a)g(builtin)e(allo)m(ws)i(a)f(disk)630 -3507 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h -(builtin)e(to)i(b)s(e)f(executed)h(without)630 3616 y(sp)s(ecifying)27 +4088 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h +(builtin)e(to)i(b)s(e)f(executed)h(without)630 4198 y(sp)s(ecifying)27 b(a)g(full)g(pathname,)g(ev)m(en)h(though)f(the)g(shell)g(normally)g -(searc)m(hes)h(for)f(builtins)630 3726 y(b)s(efore)32 +(searc)m(hes)h(for)f(builtins)630 4307 y(b)s(efore)32 b(disk)f(commands.)46 b(If)31 b(`)p Fs(-n)p Ft(')h(is)g(used,)g(the)g Fq(name)5 b Ft(s)32 b(b)s(ecome)h(disabled.)45 b(Otherwise)630 -3836 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8 +4417 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8 b(or)45 b(example,)k(to)c(use)f(the)g Fs(test)f Ft(binary)h(found)f -(via)h Fs($PATH)630 3945 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g +(via)h Fs($PATH)630 4526 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g (v)m(ersion,)h(t)m(yp)s(e)g(`)p Fs(enable)e(-n)h(test)p -Ft('.)630 4075 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f +Ft('.)630 4659 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f (supplied,)j(or)d(no)h Fq(name)k Ft(argumen)m(ts)c(app)s(ear,)i(a)e -(list)g(of)g(shell)630 4184 y(builtins)37 b(is)h(prin)m(ted.)63 +(list)g(of)g(shell)630 4769 y(builtins)37 b(is)h(prin)m(ted.)63 b(With)38 b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g -(all)h(enabled)630 4294 y(shell)33 b(builtins.)46 b(The)32 +(all)h(enabled)630 4878 y(shell)33 b(builtins.)46 b(The)32 b(`)p Fs(-a)p Ft(')h(option)g(means)f(to)i(list)f(eac)m(h)h(builtin)e -(with)g(an)g(indication)i(of)630 4403 y(whether)c(or)g(not)h(it)g(is)f -(enabled.)630 4533 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h +(with)g(an)g(indication)i(of)630 4988 y(whether)c(or)g(not)h(it)g(is)f +(enabled.)630 5121 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h (load)g(the)f(new)f(builtin)h(command)g Fq(name)45 b -Ft(from)40 b(shared)630 4643 y(ob)5 b(ject)27 b Fq(\014lename)p -Ft(,)g(on)f(systems)g(that)h(supp)s(ort)d(dynamic)i(loading.)40 -b(The)26 b(`)p Fs(-d)p Ft(')g(option)h(will)630 4752 +Ft(from)40 b(shared)630 5230 y(ob)5 b(ject)26 b Fq(\014lename)5 +b Ft(,)28 b(on)d(systems)h(that)g(supp)s(ort)e(dynamic)h(loading.)40 +b(The)25 b(`)p Fs(-d)p Ft(')h(option)g(will)630 5340 y(delete)32 b(a)e(builtin)g(loaded)h(with)f(`)p Fs(-f)p -Ft('.)630 4882 y(If)h(there)g(are)g(no)g(options,)h(a)f(list)h(of)f -(the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43 b(The)31 -b(`)p Fs(-s)p Ft(')f(option)630 4991 y(restricts)f Fs(enable)e -Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40 +Ft('.)p eop end +%%Page: 46 52 +TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y(If)g(there)g(are)g(no)g(options,)h(a) +f(list)h(of)f(the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43 +b(The)31 b(`)p Fs(-s)p Ft(')f(option)630 408 y(restricts)f +Fs(enable)e Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40 b(If)27 b(`)p Fs(-s)p Ft(')i(is)f(used)g(with)g(`)p Fs(-f)p -Ft(',)h(the)f(new)630 5101 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h +Ft(',)h(the)f(new)630 518 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h (builtin)f(\(see)i(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g -(59\).)630 5230 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i +(59\).)630 650 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i Fq(name)k Ft(is)26 b(not)g(a)h(shell)f(builtin)g(or)g(there)g(is)g(an)g -(error)630 5340 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g -(ob)5 b(ject.)p eop end -%%Page: 46 52 -TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(help)870 435 y(help)47 -b([-dms])f([)p Fj(pattern)11 b Fs(])630 571 y Ft(Displa)m(y)40 -b(helpful)e(information)h(ab)s(out)g(builtin)f(commands.)66 -b(If)38 b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 681 -y Fs(help)28 b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e -(matc)m(hing)i Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630 -791 y(the)h(builtins)e(is)i(prin)m(ted.)630 927 y(Options,)f(if)h +(error)630 760 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g +(ob)5 b(ject.)150 915 y Fs(help)870 1047 y(help)47 b([-dms])f([)p +Fi(pattern)11 b Fs(])630 1179 y Ft(Displa)m(y)40 b(helpful)e +(information)h(ab)s(out)g(builtin)f(commands.)66 b(If)38 +b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 1288 y Fs(help)28 +b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e(matc)m(hing)i +Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630 1398 +y(the)h(builtins)e(is)i(prin)m(ted.)630 1530 y(Options,)f(if)h (supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 -1090 y Fs(-d)384 b Ft(Displa)m(y)32 b(a)e(short)g(description)h(of)f -(eac)m(h)i Fq(pattern)630 1253 y Fs(-m)384 b Ft(Displa)m(y)32 +1685 y Fs(-d)384 b Ft(Displa)m(y)32 b(a)e(short)g(description)h(of)f +(eac)m(h)i Fq(pattern)630 1840 y Fs(-m)384 b Ft(Displa)m(y)32 b(the)e(description)g(of)h(eac)m(h)h Fq(pattern)e Ft(in)g(a)h -(manpage-lik)m(e)h(format)630 1416 y Fs(-s)384 b Ft(Displa)m(y)32 +(manpage-lik)m(e)h(format)630 1994 y Fs(-s)384 b Ft(Displa)m(y)32 b(only)e(a)h(short)f(usage)h(synopsis)e(for)i(eac)m(h)g -Fq(pattern)630 1578 y Ft(The)f(return)f(status)i(is)f(zero)h(unless)f -(no)g(command)h(matc)m(hes)g Fq(pattern)p Ft(.)150 1741 -y Fs(let)870 1878 y(let)47 b Fj(expression)55 b Fs([)p -Fj(expression)11 b Fs(])630 2014 y Ft(The)41 b Fs(let)g +Fq(pattern)630 2149 y Ft(The)f(return)f(status)i(is)f(zero)h(unless)f +(no)g(command)h(matc)m(hes)g Fq(pattern)p Ft(.)150 2304 +y Fs(let)870 2436 y(let)47 b Fi(expression)55 b Fs([)p +Fi(expression)11 b Fs(])630 2568 y Ft(The)41 b Fs(let)g Ft(builtin)g(allo)m(ws)i(arithmetic)f(to)h(b)s(e)d(p)s(erformed)g(on)i -(shell)g(v)-5 b(ariables.)74 b(Eac)m(h)630 2123 y Fq(expression)31 +(shell)g(v)-5 b(ariables.)74 b(Eac)m(h)630 2678 y Fq(expression)31 b Ft(is)g(ev)-5 b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en) -h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 2233 +h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 2787 y(Arithmetic],)51 b(page)46 b(78.)87 b(If)45 b(the)g(last)h Fq(expression)g Ft(ev)-5 b(aluates)47 b(to)f(0,)k Fs(let)44 -b Ft(returns)g(1;)630 2343 y(otherwise)31 b(0)g(is)f(returned.)150 -2505 y Fs(local)870 2642 y(local)46 b([)p Fj(option)11 -b Fs(])45 b Fj(name)11 b Fs([=)p Fj(value)g Fs(])44 b(...)630 -2778 y Ft(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f(lo)s(cal)h(v)-5 -b(ariable)27 b(named)e Fq(name)31 b Ft(is)26 b(created,)i(and)d -(assigned)h Fq(v)-5 b(alue)p Ft(.)630 2888 y(The)37 b -Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f(the)h(options)g(accepted)g +b Ft(returns)g(1;)630 2897 y(otherwise)31 b(0)g(is)f(returned.)150 +3051 y Fs(local)870 3184 y(local)46 b([)p Fi(option)11 +b Fs(])45 b Fi(name)11 b Fs([=)p Fi(value)g Fs(])44 b(...)630 +3316 y Ft(F)-8 b(or)26 b(eac)m(h)h(argumen)m(t,)g(a)e(lo)s(cal)i(v)-5 +b(ariable)26 b(named)f Fq(name)31 b Ft(is)25 b(created,)j(and)d +(assigned)g Fq(v)-5 b(alue)5 b Ft(.)630 3425 y(The)37 +b Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f(the)h(options)g(accepted)g (b)m(y)g Fs(declare)p Ft(.)59 b Fs(local)36 b Ft(can)i(only)630 -2997 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42 +3535 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42 b(mak)m(es)h(the)f(v)-5 b(ariable)43 b Fq(name)48 b Ft(ha)m(v)m(e)43 -b(a)f(visible)h(scop)s(e)630 3107 y(restricted)c(to)g(that)g(function)f +b(a)f(visible)h(scop)s(e)630 3645 y(restricted)c(to)g(that)g(function)f (and)f(its)i(c)m(hildren.)64 b(The)38 b(return)f(status)h(is)h(zero)g -(unless)630 3216 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h +(unless)630 3754 y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h (an)e(in)m(v)-5 b(alid)41 b Fq(name)46 b Ft(is)40 b(supplied,)i(or)e -Fq(name)45 b Ft(is)c(a)630 3326 y(readonly)30 b(v)-5 -b(ariable.)150 3489 y Fs(logout)870 3625 y(logout)46 -b([)p Fj(n)11 b Fs(])630 3761 y Ft(Exit)31 b(a)g(login)g(shell,)g +Fq(name)45 b Ft(is)c(a)630 3864 y(readonly)30 b(v)-5 +b(ariable.)150 4018 y Fs(logout)870 4151 y(logout)46 +b([)p Fi(n)11 b Fs(])630 4283 y Ft(Exit)31 b(a)g(login)g(shell,)g (returning)e(a)i(status)g(of)f Fq(n)g Ft(to)h(the)g(shell's)f(paren)m -(t.)150 3924 y Fs(mapfile)870 4060 y(mapfile)46 b([-n)h -Fj(count)11 b Fs(])45 b([-O)i Fj(origin)11 b Fs(])46 -b([-s)g Fj(count)11 b Fs(])46 b([-t])h([-u)g Fj(fd)11 -b Fs(])46 b([)870 4170 y(-C)h Fj(callback)11 b Fs(])45 -b([-c)i Fj(quantum)11 b Fs(])45 b([)p Fj(array)11 b Fs(])630 -4306 y Ft(Read)35 b(lines)h(from)f(the)g(standard)g(input)f(in)m(to)i -(arra)m(y)g(v)-5 b(ariable)36 b Fq(arra)m(y)p Ft(,)h(or)f(from)e -(\014le)i(de-)630 4416 y(scriptor)f Fq(fd)j Ft(if)d(the)h(`)p -Fs(-u)p Ft(')f(option)h(is)f(supplied.)54 b(The)35 b(v)-5 -b(ariable)36 b Fs(MAPFILE)d Ft(is)i(the)h(default)630 -4525 y Fq(arra)m(y)p Ft(.)41 b(Options,)30 b(if)h(supplied,)e(ha)m(v)m -(e)j(the)e(follo)m(wing)i(meanings:)630 4688 y Fs(-n)384 -b Ft(Cop)m(y)30 b(at)h(most)g Fq(coun)m(t)i Ft(lines.)41 -b(If)30 b Fq(coun)m(t)j Ft(is)d(0,)h(all)h(lines)e(are)h(copied.)630 -4851 y Fs(-O)384 b Ft(Begin)31 b(assigning)g(to)g Fq(arra)m(y)39 -b Ft(at)31 b(index)f Fq(origin)p Ft(.)41 b(The)30 b(default)h(index)f -(is)g(0.)630 5014 y Fs(-s)384 b Ft(Discard)31 b(the)f(\014rst)g -Fq(coun)m(t)j Ft(lines)e(read.)630 5177 y Fs(-t)384 b -Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(line)g(from)f(eac)m(h)i(line)e -(read.)630 5340 y Fs(-u)384 b Ft(Read)31 b(lines)f(from)g(\014le)h -(descriptor)f Fq(fd)j Ft(instead)e(of)f(the)h(standard)e(input.)p -eop end +(t.)150 4437 y Fs(mapfile)870 4570 y(mapfile)46 b([-n)h +Fi(count)11 b Fs(])45 b([-O)i Fi(origin)11 b Fs(])46 +b([-s)g Fi(count)11 b Fs(])46 b([-t])h([-u)g Fi(fd)11 +b Fs(])46 b([)870 4679 y(-C)h Fi(callback)11 b Fs(])45 +b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11 b Fs(])630 +4811 y Ft(Read)37 b(lines)g(from)f(the)h(standard)f(input)g(in)m(to)h +(the)g(indexed)f(arra)m(y)i(v)-5 b(ariable)37 b Fq(arra)m(y)8 +b Ft(,)39 b(or)630 4921 y(from)c(\014le)h(descriptor)g +Fq(fd)j Ft(if)d(the)g(`)p Fs(-u)p Ft(')g(option)g(is)g(supplied.)56 +b(The)35 b(v)-5 b(ariable)37 b Fs(MAPFILE)d Ft(is)630 +5031 y(the)d(default)f Fq(arra)m(y)8 b Ft(.)41 b(Options,)30 +b(if)h(supplied,)e(ha)m(v)m(e)j(the)e(follo)m(wing)i(meanings:)630 +5185 y Fs(-n)384 b Ft(Cop)m(y)30 b(at)h(most)g Fq(coun)m(t)i +Ft(lines.)41 b(If)30 b Fq(coun)m(t)j Ft(is)d(0,)h(all)h(lines)e(are)h +(copied.)630 5340 y Fs(-O)384 b Ft(Begin)31 b(assigning)g(to)g +Fq(arra)m(y)39 b Ft(at)31 b(index)f Fq(origin)p Ft(.)41 +b(The)30 b(default)h(index)f(is)g(0.)p eop end %%Page: 47 53 TeXDict begin 47 52 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y Fs(-C)384 -b Ft(Ev)-5 b(aluate)43 b Fq(callbac)m(k)49 b Ft(eac)m(h)42 -b(time)g Fq(quan)m(tum)p Ft(P)f(lines)h(are)f(read.)74 -b(The)41 b(`)p Fs(-c)p Ft(')1110 408 y(option)31 b(sp)s(eci\014es)f -Fq(quan)m(tum)p Ft(.)630 573 y Fs(-c)384 b Ft(Sp)s(ecify)30 -b(the)g(n)m(um)m(b)s(er)f(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m -(h)g(call)h(to)f Fq(callbac)m(k)p Ft(.)630 737 y(If)e(`)p -Fs(-C)p Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p Fs(-c)p -Ft(',)h(the)g(default)g(quan)m(tum)f(is)g(5000.)42 b(When)30 -b Fq(callbac)m(k)37 b Ft(is)630 847 y(ev)-5 b(aluated,)35 -b(it)e(is)f(supplied)g(the)g(index)g(of)h(the)g(next)g(arra)m(y)g -(elemen)m(t)h(to)f(b)s(e)f(assigned)h(as)630 956 y(an)f(additional)h -(argumen)m(t.)46 b Fq(callbac)m(k)40 b Ft(is)32 b(ev)-5 -b(aluated)33 b(after)g(the)f(line)h(is)f(read)g(but)f(b)s(efore)630 -1066 y(the)g(arra)m(y)f(elemen)m(t)i(is)f(assigned.)630 -1203 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g -Fs(mapfile)c Ft(will)j(clear)g Fq(arra)m(y)34 b Ft(b)s(efore)24 -b(assigning)630 1313 y(to)31 b(it.)630 1450 y Fs(mapfile)41 -b Ft(returns)g(successfully)i(unless)e(an)i(in)m(v)-5 -b(alid)43 b(option)g(or)g(option)g(argumen)m(t)g(is)630 -1559 y(supplied,)29 b(or)i Fq(arra)m(y)38 b Ft(is)31 -b(in)m(v)-5 b(alid)31 b(or)f(unassignable.)150 1724 y -Fs(printf)870 1861 y(printf)46 b([-v)h Fj(var)11 b Fs(])46 -b Fj(format)57 b Fs([)p Fj(arguments)11 b Fs(])630 1998 -y Ft(W)-8 b(rite)27 b(the)g(formatted)f Fq(argumen)m(ts)k +b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y Fs(-s)384 +b Ft(Discard)31 b(the)f(\014rst)g Fq(coun)m(t)j Ft(lines)e(read.)630 +458 y Fs(-t)384 b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(newline)g(from)f +(eac)m(h)h(line)g(read.)630 618 y Fs(-u)384 b Ft(Read)31 +b(lines)f(from)g(\014le)h(descriptor)f Fq(fd)j Ft(instead)e(of)f(the)h +(standard)e(input.)630 777 y Fs(-C)384 b Ft(Ev)-5 b(aluate)43 +b Fq(callbac)m(k)49 b Ft(eac)m(h)42 b(time)g Fq(quan)m(tum)p +Ft(P)f(lines)h(are)f(read.)74 b(The)41 b(`)p Fs(-c)p +Ft(')1110 887 y(option)31 b(sp)s(eci\014es)f Fq(quan)m(tum)p +Ft(.)630 1046 y Fs(-c)384 b Ft(Sp)s(ecify)30 b(the)g(n)m(um)m(b)s(er)f +(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m(h)g(call)h(to)f +Fq(callbac)m(k)6 b Ft(.)630 1205 y(If)29 b(`)p Fs(-C)p +Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p Fs(-c)p Ft(',)h(the)g +(default)g(quan)m(tum)f(is)g(5000.)42 b(When)30 b Fq(callbac)m(k)37 +b Ft(is)630 1315 y(ev)-5 b(aluated,)35 b(it)e(is)f(supplied)g(the)g +(index)g(of)h(the)g(next)g(arra)m(y)g(elemen)m(t)h(to)f(b)s(e)f +(assigned)h(as)630 1425 y(an)f(additional)h(argumen)m(t.)46 +b Fq(callbac)m(k)40 b Ft(is)32 b(ev)-5 b(aluated)33 b(after)g(the)f +(line)h(is)f(read)g(but)f(b)s(efore)630 1534 y(the)g(arra)m(y)f(elemen) +m(t)i(is)f(assigned.)630 1669 y(If)25 b(not)g(supplied)f(with)h(an)g +(explicit)i(origin,)g Fs(mapfile)c Ft(will)j(clear)g +Fq(arra)m(y)34 b Ft(b)s(efore)24 b(assigning)630 1778 +y(to)31 b(it.)630 1913 y Fs(mapfile)41 b Ft(returns)g(successfully)i +(unless)e(an)i(in)m(v)-5 b(alid)43 b(option)g(or)g(option)g(argumen)m +(t)g(is)630 2022 y(supplied,)29 b Fq(arra)m(y)39 b Ft(is)30 +b(in)m(v)-5 b(alid)31 b(or)g(unassignable,)f(or)h Fq(arra)m(y)38 +b Ft(is)31 b(not)f(an)h(indexed)e(arra)m(y)-8 b(.)150 +2182 y Fs(printf)870 2316 y(printf)46 b([-v)h Fi(var)11 +b Fs(])46 b Fi(format)57 b Fs([)p Fi(arguments)11 b Fs(])630 +2451 y Ft(W)-8 b(rite)27 b(the)g(formatted)f Fq(argumen)m(ts)k Ft(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the) -630 2107 y Fq(format)p Ft(.)41 b(The)28 b Fq(format)j -Ft(is)e(a)g(c)m(haracter)i(string)d(whic)m(h)h(con)m(tains)h(three)f(t) -m(yp)s(es)g(of)g(ob)5 b(jects:)630 2217 y(plain)28 b(c)m(haracters,)j +630 2560 y Fq(format)r Ft(.)40 b(The)29 b Fq(format)i +Ft(is)d(a)h(c)m(haracter)i(string)d(whic)m(h)h(con)m(tains)h(three)e(t) +m(yp)s(es)h(of)g(ob)5 b(jects:)630 2670 y(plain)28 b(c)m(haracters,)j (whic)m(h)d(are)h(simply)f(copied)h(to)h(standard)d(output,)i(c)m -(haracter)h(escap)s(e)630 2326 y(sequences,)g(whic)m(h)f(are)g(con)m(v) +(haracter)h(escap)s(e)630 2780 y(sequences,)g(whic)m(h)f(are)g(con)m(v) m(erted)i(and)d(copied)i(to)f(the)h(standard)e(output,)h(and)g(format) -630 2436 y(sp)s(eci\014cations,)39 b(eac)m(h)e(of)g(whic)m(h)f(causes)g -(prin)m(ting)g(of)h(the)f(next)h(successiv)m(e)g Fq(argumen)m(t)p -Ft(.)630 2545 y(In)31 b(addition)h(to)h(the)e(standard)g +630 2889 y(sp)s(eci\014cations,)38 b(eac)m(h)g(of)e(whic)m(h)g(causes)g +(prin)m(ting)g(of)g(the)h(next)f(successiv)m(e)h Fq(argumen)m(t)r +Ft(.)630 2999 y(In)31 b(addition)h(to)h(the)e(standard)g Fs(printf\(1\))f Ft(formats,)i(`)p Fs(\045b)p Ft(')g(causes)g -Fs(printf)e Ft(to)j(expand)630 2655 y(bac)m(kslash)39 -b(escap)s(e)g(sequences)f(in)h(the)f(corresp)s(onding)f -Fq(argumen)m(t)p Ft(,)k(\(except)f(that)f(`)p Fs(\\c)p -Ft(')630 2765 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p +Fs(printf)e Ft(to)j(expand)630 3108 y(bac)m(kslash)39 +b(escap)s(e)f(sequences)h(in)f(the)g(corresp)s(onding)f +Fq(argumen)m(t)r Ft(,)k(\(except)e(that)g(`)p Fs(\\c)p +Ft(')630 3218 y(terminates)44 b(output,)j(bac)m(kslashes)d(in)f(`)p Fs(\\')p Ft(',)k(`)p Fs(\\")p Ft(',)g(and)c(`)p Fs(\\?)p -Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 2874 y(o)s(ctal)25 +Ft(')g(are)h(not)g(remo)m(v)m(ed,)k(and)630 3328 y(o)s(ctal)25 b(escap)s(es)f(b)s(eginning)f(with)g(`)p Fs(\\0)p Ft(')h(ma)m(y)g(con)m (tain)h(up)e(to)h(four)f(digits\),)j(and)d(`)p Fs(\045q)p -Ft(')h(causes)630 2984 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp) +Ft(')h(causes)630 3437 y Fs(printf)31 b Ft(to)i(output)f(the)h(corresp) s(onding)f Fq(argumen)m(t)j Ft(in)d(a)h(format)g(that)g(can)g(b)s(e)f -(reused)630 3093 y(as)f(shell)f(input.)630 3230 y(The)24 +(reused)630 3547 y(as)f(shell)f(input.)630 3681 y(The)24 b(`)p Fs(-v)p Ft(')h(option)g(causes)g(the)g(output)g(to)g(b)s(e)f (assigned)h(to)h(the)f(v)-5 b(ariable)25 b Fq(v)-5 b(ar)32 -b Ft(rather)24 b(than)630 3340 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g -(standard)e(output.)630 3477 y(The)i Fq(format)i Ft(is)f(reused)e(as)i -(necessary)f(to)i(consume)e(all)h(of)f(the)h Fq(argumen)m(ts)p -Ft(.)44 b(If)30 b(the)i Fq(for-)630 3587 y(mat)c Ft(requires)e(more)g +b Ft(rather)24 b(than)630 3791 y(b)s(eing)30 b(prin)m(ted)g(to)h(the)g +(standard)e(output.)630 3925 y(The)i Fq(format)i Ft(is)e(reused)f(as)i +(necessary)f(to)h(consume)f(all)h(of)f(the)g Fq(argumen)m(ts)t +Ft(.)43 b(If)31 b(the)g Fq(for-)630 4035 y(mat)d Ft(requires)e(more)g Fq(argumen)m(ts)k Ft(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f -(sp)s(eci\014cations)630 3696 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g +(sp)s(eci\014cations)630 4144 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g (v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b) -s(een)g(supplied.)38 b(The)630 3806 y(return)29 b(v)-5 +s(een)g(supplied.)38 b(The)630 4254 y(return)29 b(v)-5 b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150 -3970 y Fs(read)870 4107 y(read)47 b([-ers])f([-a)h Fj(aname)11 -b Fs(])45 b([-d)i Fj(delim)11 b Fs(])46 b([-i)h Fj(text)11 -b Fs(])46 b([-n)g Fj(nchars)11 b Fs(])46 b([-p)h Fj(prompt)11 -b Fs(])45 b([-t)i Fj(time-)870 4217 y(out)11 b Fs(])46 -b([-u)h Fj(fd)11 b Fs(])46 b([)p Fj(name)57 b Fs(...])630 -4354 y Ft(One)26 b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h -(or)g(from)f(the)h(\014le)f(descriptor)h Fq(fd)i Ft(supplied)630 -4463 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)p Fs(-u)p -Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h(assigned)h(to)f -(the)h(\014rst)630 4573 y Fq(name)p Ft(,)29 b(the)f(second)h(w)m(ord)e -(to)i(the)g(second)f Fq(name)p Ft(,)h(and)e(so)i(on,)g(with)f(lefto)m -(v)m(er)i(w)m(ords)e(and)630 4682 y(their)g(in)m(terv)m(ening)h -(separators)g(assigned)f(to)h(the)f(last)h Fq(name)p -Ft(.)40 b(If)27 b(there)i(are)f(few)m(er)g(w)m(ords)630 -4792 y(read)44 b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c -(remaining)h(names)g(are)g(assigned)630 4902 y(empt)m(y)31 -b(v)-5 b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5 +4413 y Fs(read)870 4548 y(read)47 b([-ers])f([-a)h Fi(aname)11 +b Fs(])45 b([-d)i Fi(delim)11 b Fs(])46 b([-i)h Fi(text)11 +b Fs(])46 b([-n)g Fi(nchars)11 b Fs(])46 b([-N)h Fi(nchars)11 +b Fs(])45 b([-p)i Fi(prompt)11 b Fs(])45 b([-t)i Fi(time-)870 +4658 y(out)11 b Fs(])46 b([-u)h Fi(fd)11 b Fs(])46 b([)p +Fi(name)57 b Fs(...])630 4792 y Ft(One)26 b(line)h(is)g(read)f(from)h +(the)f(standard)g(input,)h(or)g(from)f(the)h(\014le)f(descriptor)h +Fq(fd)i Ft(supplied)630 4902 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`) +p Fs(-u)p Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h +(assigned)h(to)f(the)h(\014rst)630 5011 y Fq(name)5 b +Ft(,)28 b(the)g(second)g(w)m(ord)f(to)h(the)f(second)h +Fq(name)5 b Ft(,)28 b(and)f(so)h(on,)g(with)f(lefto)m(v)m(er)j(w)m +(ords)d(and)630 5121 y(their)h(in)m(terv)m(ening)g(separators)g +(assigned)g(to)h(the)e(last)i Fq(name)5 b Ft(.)40 b(If)27 +b(there)h(are)g(few)m(er)f(w)m(ords)630 5230 y(read)44 +b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c(remaining)h +(names)g(are)g(assigned)630 5340 y(empt)m(y)31 b(v)-5 +b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5 b(alue)31 b(of)g(the)f Fs(IFS)g Ft(v)-5 b(ariable)31 -b(are)g(used)f(to)h(split)630 5011 y(the)37 b(line)h(in)m(to)g(w)m -(ords.)61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p -Fs(\\)p Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630 -5121 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e -(and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630 -5230 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h -(to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28 -b(return)630 5340 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is) -g(encoun)m(tered,)h Fs(read)e Ft(times)h(out)g(\(in)g(whic)m(h)f(case)i -(the)p eop end +b(are)g(used)f(to)h(split)p eop end %%Page: 48 54 TeXDict begin 48 53 bop 150 -116 a Ft(48)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(return)e(co)s(de)i(is)g(greater)g -(than)g(128\),)h(or)f(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f -(is)h(supplied)e(as)i(the)630 408 y(argumen)m(t)g(to)g(`)p -Fs(-u)p Ft('.)630 544 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g -(follo)m(wing)h(meanings:)630 707 y Fs(-a)e Fj(aname)114 -b Ft(The)34 b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices) -e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110 816 y Fq(aname)p -Ft(,)29 b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m -(v)m(ed)i(from)d Fq(aname)34 b Ft(b)s(efore)1110 926 -y(the)d(assignmen)m(t.)41 b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 -b(are)h(ignored.)630 1088 y Fs(-d)f Fj(delim)114 b Ft(The)41 -b(\014rst)h(c)m(haracter)h(of)f Fq(delim)g Ft(is)g(used)g(to)g -(terminate)h(the)f(input)f(line,)1110 1198 y(rather)30 -b(than)g(newline.)630 1360 y Fs(-e)384 b Ft(Readline)28 -b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i(page)f(93\))h(is) -f(used)1110 1469 y(to)42 b(obtain)f(the)g(line.)73 b(Readline)41 -b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line)1110 -1579 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j(editing)f -(settings.)630 1741 y Fs(-i)e Fj(text)162 b Ft(If)36 -b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j -Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 1851 y(editing)31 -b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2013 -y Fs(-n)f Fj(nchars)1110 2122 y Fs(read)38 b Ft(returns)f(after)j +b(Reference)g(Man)m(ual)630 299 y(the)37 b(line)h(in)m(to)g(w)m(ords.) +61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p Fs(\\)p +Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630 +408 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e +(and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630 +518 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h +(to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28 +b(return)630 628 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is)g +(encoun)m(tered,)h Fs(read)e Ft(times)h(out)g(\(in)g(whic)m(h)f(case)i +(the)630 737 y(return)i(co)s(de)i(is)g(greater)g(than)g(128\),)h(or)f +(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f(is)h(supplied)e(as)i +(the)630 847 y(argumen)m(t)g(to)g(`)p Fs(-u)p Ft('.)630 +983 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h +(meanings:)630 1144 y Fs(-a)e Fi(aname)114 b Ft(The)34 +b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)e(of)g(the)g +(arra)m(y)h(v)-5 b(ariable)1110 1254 y Fq(aname)5 b Ft(,)29 +b(starting)g(at)f(0.)40 b(All)29 b(elemen)m(ts)g(are)f(remo)m(v)m(ed)h +(from)e Fq(aname)33 b Ft(b)s(efore)1110 1363 y(the)e(assignmen)m(t.)41 +b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 b(are)h(ignored.)630 +1525 y Fs(-d)f Fi(delim)114 b Ft(The)41 b(\014rst)h(c)m(haracter)h(of)f +Fq(delim)g Ft(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110 +1635 y(rather)30 b(than)g(newline.)630 1797 y Fs(-e)384 +b Ft(Readline)28 b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i +(page)f(93\))h(is)f(used)1110 1906 y(to)42 b(obtain)f(the)g(line.)73 +b(Readline)41 b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line) +1110 2016 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j +(editing)f(settings.)630 2178 y Fs(-i)e Fi(text)162 b +Ft(If)36 b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j +Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 2287 y(editing)31 +b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 2449 +y Fs(-n)f Fi(nchars)1110 2559 y Fs(read)38 b Ft(returns)f(after)j (reading)f Fq(nc)m(hars)j Ft(c)m(haracters)e(rather)f(than)g(w)m -(aiting)1110 2232 y(for)30 b(a)h(complete)h(line)e(of)h(input.)630 -2394 y Fs(-p)f Fj(prompt)1110 2504 y Ft(Displa)m(y)38 -b Fq(prompt)p Ft(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d -(attempting)i(to)1110 2613 y(read)f(an)m(y)h(input.)60 +(aiting)1110 2668 y(for)g(a)h(complete)h(line)f(of)f(input,)i(but)e +(honor)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 2778 +y Fq(nc)m(hars)34 b Ft(c)m(haracters)e(are)e(read)h(b)s(efore)f(the)g +(delimiter.)630 2939 y Fs(-N)g Fi(nchars)1110 3049 y +Fs(read)39 b Ft(returns)f(after)j(reading)e(exactly)j +Fq(nc)m(hars)h Ft(c)m(haracters)f(rather)d(than)1110 +3159 y(w)m(aiting)32 b(for)f(a)g(complete)i(line)e(of)g(input,)g +(unless)f(EOF)h(is)g(encoun)m(tered)g(or)1110 3268 y +Fs(read)f Ft(times)i(out.)43 b(Delimiter)33 b(c)m(haracters)f(encoun)m +(tered)g(in)f(the)g(input)g(are)1110 3378 y(not)g(treated)h(sp)s +(ecially)g(and)f(do)f(not)i(cause)f Fs(read)f Ft(to)i(return)e(un)m +(til)h Fq(nc)m(hars)1110 3487 y Ft(c)m(haracters)h(are)f(read.)630 +3649 y Fs(-p)f Fi(prompt)1110 3759 y Ft(Displa)m(y)38 +b Fq(prompt)r Ft(,)f(without)g(a)f(trailing)i(newline,)g(b)s(efore)e +(attempting)i(to)1110 3868 y(read)f(an)m(y)h(input.)60 b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g(input)g(is)g -(coming)1110 2723 y(from)30 b(a)h(terminal.)630 2885 +(coming)1110 3978 y(from)30 b(a)h(terminal.)630 4140 y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash) d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110 -2995 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h -(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 3104 +4249 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h +(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 4359 y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i(a)g -(line)f(con)m(tin)m(uation.)630 3267 y Fs(-s)384 b Ft(Silen)m(t)28 +(line)f(con)m(tin)m(uation.)630 4521 y Fs(-s)384 b Ft(Silen)m(t)28 b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)h(terminal,)h(c) -m(haracters)g(are)f(not)1110 3376 y(ec)m(ho)s(ed.)630 -3538 y Fs(-t)i Fj(timeout)1110 3648 y Ft(Cause)23 b Fs(read)f +m(haracters)g(are)f(not)1110 4630 y(ec)m(ho)s(ed.)630 +4792 y Fs(-t)i Fi(timeout)1110 4902 y Ft(Cause)23 b Fs(read)f Ft(to)i(time)f(out)h(and)e(return)g(failure)h(if)g(a)h(complete)g(line) -g(of)f(input)1110 3758 y(is)44 b(not)f(read)h(within)e +g(of)f(input)1110 5011 y(is)44 b(not)f(read)h(within)e Fq(timeout)47 b Ft(seconds.)80 b Fq(timeout)46 b Ft(ma)m(y)e(b)s(e)f(a) -h(decimal)1110 3867 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s +h(decimal)1110 5121 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s (ortion)d(follo)m(wing)j(the)f(decimal)g(p)s(oin)m(t.)40 -b(This)1110 3977 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c +b(This)1110 5230 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c Fs(read)g Ft(is)h(reading)g(input)f(from)g(a)h(terminal,)1110 -4086 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no) -h(e\013ect)h(when)e(reading)h(from)g(regular)1110 4196 -y(\014les.)55 b(If)34 b Fq(timeout)k Ft(is)d(0,)i Fs(read)d -Ft(returns)g(success)h(if)g(input)g(is)g(a)m(v)-5 b(ailable)37 -b(on)1110 4305 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure) -e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 4415 -y(greater)32 b(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)630 -4577 y Fs(-u)g Fj(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g -(descriptor)h Fq(fd)p Ft(.)150 4739 y Fs(readarray)870 -4849 y(readarray)45 b([-n)i Fj(count)11 b Fs(])46 b([-O)h -Fj(origin)11 b Fs(])45 b([-s)i Fj(count)11 b Fs(])46 -b([-t])g([-u)h Fj(fd)11 b Fs(])47 b([)870 4959 y(-C)g -Fj(callback)11 b Fs(])45 b([-c)i Fj(quantum)11 b Fs(])45 -b([)p Fj(array)11 b Fs(])630 5094 y Ft(Read)35 b(lines)h(from)f(the)g -(standard)g(input)f(in)m(to)i(arra)m(y)g(v)-5 b(ariable)36 -b Fq(arra)m(y)p Ft(,)h(or)f(from)e(\014le)i(de-)630 5204 -y(scriptor)30 b Fq(fd)k Ft(if)c(the)g(`)p Fs(-u)p Ft(')h(option)f(is)h -(supplied.)630 5340 y(A)f(synon)m(ym)g(for)g Fs(mapfile)p -Ft(.)p eop end +5340 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no) +h(e\013ect)h(when)e(reading)h(from)g(regular)p eop end %%Page: 49 55 TeXDict begin 49 54 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(49)150 299 y Fs(source)870 -435 y(source)46 b Fj(filename)630 571 y Ft(A)30 b(synon)m(ym)g(for)g -Fs(.)g Ft(\(see)i(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g -(35\).)150 734 y Fs(type)870 870 y(type)47 b([-afptP])e([)p -Fj(name)57 b Fs(...)o(])630 1006 y Ft(F)-8 b(or)42 b(eac)m(h)g -Fq(name)p Ft(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m -(terpreted)g(if)g(used)f(as)i(a)f(command)630 1116 y(name.)630 -1252 y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i +b(Shell)30 b(Builtin)h(Commands)2069 b(49)1110 299 y(\014les.)55 +b(If)34 b Fq(timeout)k Ft(is)d(0,)i Fs(read)d Ft(returns)g(success)h +(if)g(input)g(is)g(a)m(v)-5 b(ailable)37 b(on)1110 408 +y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)e(otherwise.)69 +b(The)39 b(exit)h(status)g(is)1110 518 y(greater)32 b(than)e(128)h(if)g +(the)f(timeout)i(is)e(exceeded.)630 682 y Fs(-u)g Fi(fd)258 +b Ft(Read)31 b(input)e(from)h(\014le)g(descriptor)h Fq(fd)t +Ft(.)150 847 y Fs(readarray)870 956 y(readarray)45 b([-n)i +Fi(count)11 b Fs(])46 b([-O)h Fi(origin)11 b Fs(])45 +b([-s)i Fi(count)11 b Fs(])46 b([-t])g([-u)h Fi(fd)11 +b Fs(])47 b([)870 1066 y(-C)g Fi(callback)11 b Fs(])45 +b([-c)i Fi(quantum)11 b Fs(])45 b([)p Fi(array)11 b Fs(])630 +1203 y Ft(Read)37 b(lines)g(from)f(the)h(standard)f(input)g(in)m(to)h +(the)g(indexed)f(arra)m(y)i(v)-5 b(ariable)37 b Fq(arra)m(y)8 +b Ft(,)39 b(or)630 1313 y(from)30 b(\014le)g(descriptor)h +Fq(fd)i Ft(if)d(the)h(`)p Fs(-u)p Ft(')f(option)h(is)f(supplied.)630 +1450 y(A)g(synon)m(ym)g(for)g Fs(mapfile)p Ft(.)150 1614 +y Fs(source)870 1751 y(source)46 b Fi(filename)630 1888 +y Ft(A)30 b(synon)m(ym)g(for)g Fs(.)g Ft(\(see)i(Section)f(4.1)g +([Bourne)g(Shell)f(Builtins],)h(page)g(35\).)150 2052 +y Fs(type)870 2189 y(type)47 b([-afptP])e([)p Fi(name)57 +b Fs(...)o(])630 2326 y Ft(F)-8 b(or)41 b(eac)m(h)h Fq(name)5 +b Ft(,)44 b(indicate)e(ho)m(w)f(it)g(w)m(ould)f(b)s(e)g(in)m(terpreted) +h(if)g(used)f(as)h(a)g(command)630 2436 y(name.)630 2573 +y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i Fs(type)d Ft(prin)m(ts)g(a)i(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g -(of)h(`)p Fs(alias)p Ft(',)630 1362 y(`)p Fs(function)p +(of)h(`)p Fs(alias)p Ft(',)630 2682 y(`)p Fs(function)p Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p Fs(keyword)p Ft(',)f(if)h Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e -(function,)630 1471 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h +(function,)630 2792 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h (reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55 -b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 1581 +b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 2902 y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g -Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 1717 +Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 3039 y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i Fs(type)d Ft(either)h(returns)f(the)i(name)f(of)g(the)g(disk)g(\014le)g -(that)630 1826 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g +(that)630 3148 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g (`)p Fs(-t)p Ft(')h(w)m(ould)f(not)g(return)g(`)p Fs(file)p -Ft('.)630 1963 y(The)23 b(`)p Fs(-P)p Ft(')h(option)g(forces)g(a)g -(path)g(searc)m(h)g(for)g(eac)m(h)g Fq(name)p Ft(,)i(ev)m(en)e(if)g(`)p -Fs(-t)p Ft(')g(w)m(ould)f(not)h(return)630 2072 y(`)p -Fs(file)p Ft('.)630 2208 y(If)34 b(a)i(command)e(is)h(hashed,)g(`)p -Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h(hashed)f(v)-5 -b(alue,)37 b(not)e(necessarily)630 2318 y(the)c(\014le)f(that)h(app)s -(ears)f(\014rst)f(in)h Fs($PATH)p Ft(.)630 2454 y(If)36 -b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g Fs(type)f -Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h(an)f(exe-) -630 2564 y(cutable)d(named)f Fq(\014le)p Ft(.)50 b(This)33 -b(includes)g(aliases)i(and)e(functions,)h(if)f(and)g(only)h(if)f(the)h -(`)p Fs(-p)p Ft(')630 2673 y(option)d(is)f(not)h(also)g(used.)630 -2809 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g(used,)g -Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i -(functions,)g(as)g(with)630 2919 y(the)k Fs(command)d -Ft(builtin.)630 3055 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h +Ft('.)630 3285 y(The)23 b(`)p Fs(-P)p Ft(')g(option)h(forces)g(a)g +(path)f(searc)m(h)h(for)f(eac)m(h)h Fq(name)5 b Ft(,)26 +b(ev)m(en)e(if)f(`)p Fs(-t)p Ft(')g(w)m(ould)g(not)h(return)630 +3395 y(`)p Fs(file)p Ft('.)630 3532 y(If)34 b(a)i(command)e(is)h +(hashed,)g(`)p Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h +(hashed)f(v)-5 b(alue,)37 b(not)e(necessarily)630 3641 +y(the)c(\014le)f(that)h(app)s(ears)f(\014rst)f(in)h Fs($PATH)p +Ft(.)630 3778 y(If)36 b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g +Fs(type)f Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h +(an)f(exe-)630 3888 y(cutable)d(named)f Fq(\014le)5 b +Ft(.)49 b(This)32 b(includes)h(aliases)i(and)d(functions,)i(if)f(and)f +(only)i(if)f(the)g(`)p Fs(-p)p Ft(')630 3998 y(option)e(is)f(not)h +(also)g(used.)630 4134 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g +(used,)g Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i +(functions,)g(as)g(with)630 4244 y(the)k Fs(command)d +Ft(builtin.)630 4381 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h (of)f(the)h Fq(names)i Ft(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h -(not)630 3165 y(found.)150 3328 y Fs(typeset)870 3464 -y(typeset)46 b([-afFrxi])f([-p])i([)p Fj(name)11 b Fs([=)p -Fj(value)g Fs(])43 b(...)o(])630 3600 y Ft(The)29 b Fs(typeset)f +(not)630 4491 y(found.)150 4655 y Fs(typeset)870 4792 +y(typeset)46 b([-afFrxi])f([-p])i([)p Fi(name)11 b Fs([=)p +Fi(value)g Fs(])43 b(...)o(])630 4929 y Ft(The)29 b Fs(typeset)f Ft(command)h(is)g(supplied)g(for)g(compatibilit)m(y)j(with)d(the)h -(Korn)e(shell;)j(ho)m(w-)630 3709 y(ev)m(er,)g(it)g(has)f(b)s(een)g +(Korn)e(shell;)j(ho)m(w-)630 5039 y(ev)m(er,)g(it)g(has)f(b)s(een)g (deprecated)h(in)f(fa)m(v)m(or)i(of)e(the)h Fs(declare)d -Ft(builtin)i(command.)150 3872 y Fs(ulimit)870 4008 y(ulimit)46 -b([-abcdefilmnpqrstuvxHST])41 b([)p Fj(limit)11 b Fs(])630 -4144 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f -(resources)f(a)m(v)-5 b(ailable)29 b(to)e(pro)s(cesses)f(started)h(b)m -(y)g(the)630 4254 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e -(con)m(trol.)41 b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m -(terpreted)630 4364 y(as)i(follo)m(ws:)630 4526 y Fs(-S)384 -b Ft(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h -(with)e(a)h(resource.)630 4689 y Fs(-H)384 b Ft(Change)30 -b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h -(resource.)630 4852 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h -(are)g(rep)s(orted.)630 5015 y Fs(-b)384 b Ft(The)30 -b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)630 -5177 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les) -f(created.)630 5340 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g -(a)g(pro)s(cess's)f(data)h(segmen)m(t.)p eop end +Ft(builtin)i(command.)150 5203 y Fs(ulimit)870 5340 y(ulimit)46 +b([-abcdefilmnpqrstuvxHST])41 b([)p Fi(limit)11 b Fs(])p +eop end %%Page: 50 56 TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y Fs(-e)384 b Ft(The)30 -b(maxim)m(um)g(sc)m(heduling)h(priorit)m(y)f(\()p Fs(")p -Ft(nice)p Fs(")p Ft(\).)630 483 y Fs(-f)384 b Ft(The)30 -b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)g(shell)h -(and)f(its)h(c)m(hildren.)630 667 y Fs(-i)384 b Ft(The)30 -b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e(signals.)630 -851 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s -(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 1035 -y Fs(-m)384 b Ft(The)30 b(maxim)m(um)g(residen)m(t)h(set)g(size.)630 -1219 y Fs(-n)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(op)s -(en)e(\014le)i(descriptors.)630 1403 y Fs(-p)384 b Ft(The)30 -b(pip)s(e)f(bu\013er)h(size.)630 1587 y Fs(-q)384 b Ft(The)30 +b(Reference)g(Man)m(ual)630 299 y Fs(ulimit)25 b Ft(pro)m(vides)h(con)m +(trol)i(o)m(v)m(er)g(the)f(resources)f(a)m(v)-5 b(ailable)29 +b(to)e(pro)s(cesses)f(started)h(b)m(y)g(the)630 408 y(shell,)i(on)f +(systems)g(that)h(allo)m(w)h(suc)m(h)e(con)m(trol.)41 +b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m(terpreted)630 +518 y(as)i(follo)m(ws:)630 671 y Fs(-S)384 b Ft(Change)30 +b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h(with)e(a)h +(resource.)630 825 y Fs(-H)384 b Ft(Change)30 b(and)g(rep)s(ort)g(the)g +(hard)g(limit)h(asso)s(ciated)h(with)e(a)h(resource.)630 +978 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h(are)g(rep)s(orted.) +630 1132 y Fs(-b)384 b Ft(The)30 b(maxim)m(um)g(so)s(c)m(k)m(et)i +(bu\013er)e(size.)630 1285 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size) +h(of)g(core)g(\014les)f(created.)630 1439 y Fs(-d)384 +b Ft(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s(cess's)f(data)h +(segmen)m(t.)630 1592 y Fs(-e)384 b Ft(The)30 b(maxim)m(um)g(sc)m +(heduling)h(priorit)m(y)f(\()p Fs(")p Ft(nice)p Fs(")p +Ft(\).)630 1745 y Fs(-f)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g +(\014les)f(written)h(b)m(y)f(the)g(shell)h(and)f(its)h(c)m(hildren.)630 +1899 y Fs(-i)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s +(ending)e(signals.)630 2052 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g +(size)h(that)g(ma)m(y)g(b)s(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 +b(.)630 2206 y Fs(-m)384 b Ft(The)36 b(maxim)m(um)g(residen)m(t)h(set)g +(size)g(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 +2315 y(limit\).)630 2469 y Fs(-n)384 b Ft(The)38 b(maxim)m(um)h(n)m(um) +m(b)s(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do) +1110 2578 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 +b(to)g(b)s(e)e(set\).)630 2732 y Fs(-p)384 b Ft(The)30 +b(pip)s(e)f(bu\013er)h(size.)630 2885 y Fs(-q)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(in)f(POSIX)f(message)j -(queues.)630 1771 y Fs(-r)384 b Ft(The)30 b(maxim)m(um)g(real-time)i -(sc)m(heduling)f(priorit)m(y)-8 b(.)630 1955 y Fs(-s)384 -b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)630 2139 +(queues.)630 3039 y Fs(-r)384 b Ft(The)30 b(maxim)m(um)g(real-time)i +(sc)m(heduling)f(priorit)m(y)-8 b(.)630 3192 y Fs(-s)384 +b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)630 3345 y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g(time)h -(in)f(seconds.)630 2323 y Fs(-u)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m +(in)f(seconds.)630 3499 y Fs(-u)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m (b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5 b(ailable)33 b(to)e(a)f(single)i -(user.)630 2507 y Fs(-v)384 b Ft(The)29 b(maxim)m(um)h(amoun)m(t)g(of)g +(user.)630 3652 y Fs(-v)384 b Ft(The)29 b(maxim)m(um)h(amoun)m(t)g(of)g (virtual)g(memory)g(a)m(v)-5 b(ailable)32 b(to)e(the)g(pro)s(cess.)630 -2691 y Fs(-x)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i -(\014le)f(lo)s(c)m(ks.)630 2875 y Fs(-T)384 b Ft(The)30 -b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 3059 +3806 y Fs(-x)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i +(\014le)f(lo)s(c)m(ks.)630 3959 y Fs(-T)384 b Ft(The)30 +b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 4113 y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g(the)g(new)f(v)-5 b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i(the)f(sp)s(ecial)g -Fq(limit)630 3168 y Ft(v)-5 b(alues)27 b Fs(hard)p Ft(,)g +Fq(limit)630 4222 y Ft(v)-5 b(alues)27 b Fs(hard)p Ft(,)g Fs(soft)p Ft(,)g(and)g Fs(unlimited)d Ft(stand)j(for)g(the)g(curren)m -(t)g(hard)f(limit,)j(the)e(curren)m(t)630 3278 y(soft)38 +(t)g(hard)f(limit,)j(the)e(curren)m(t)630 4332 y(soft)38 b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8 b(.)66 b(A)38 b(hard)f(limit)h(cannot)h(b)s(e)e(increased)i(b)m(y)f(a) -630 3387 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g +630 4441 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g (limit)h(ma)m(y)g(b)s(e)e(increased)h(up)f(to)i(the)f(v)-5 -b(alue)38 b(of)630 3497 y(the)c(hard)f(limit.)51 b(Otherwise,)35 +b(alue)38 b(of)630 4551 y(the)c(hard)f(limit.)51 b(Otherwise,)35 b(the)f(curren)m(t)f(v)-5 b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g -(the)g(sp)s(eci\014ed)630 3606 y(resource)27 b(is)h(prin)m(ted,)f +(the)g(sp)s(eci\014ed)630 4661 y(resource)27 b(is)h(prin)m(ted,)f (unless)g(the)g(`)p Fs(-H)p Ft(')g(option)h(is)f(supplied.)38 -b(When)27 b(setting)h(new)f(limits,)630 3716 y(if)40 +b(When)27 b(setting)h(new)f(limits,)630 4770 y(if)40 b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p Fs(-S)p Ft(')h(is)f(supplied,) i(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)g(are)g(set.)69 -b(If)630 3826 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p +b(If)630 4880 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36 b(are)f(in)g(1024-b)m -(yte)j(incremen)m(ts,)630 3935 y(except)d(for)f(`)p Fs(-t)p +(yte)j(incremen)m(ts,)630 4989 y(except)d(for)f(`)p Fs(-t)p Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p Ft(',)g(whic)m(h)e (is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)630 -4045 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p +5099 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p Ft(',)g(whic)m(h)g(are)h(unscaled)f(v)-5 b(alues.)630 -4192 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5 +5230 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5 b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h(or)630 -4301 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.) -150 4485 y Fs(unalias)870 4632 y(unalias)46 b([-a])g([)p -Fj(name)57 b Fs(...)47 b(])630 4779 y Ft(Remo)m(v)m(e)39 -b(eac)m(h)f Fq(name)k Ft(from)36 b(the)h(list)h(of)f(aliases.)61 -b(If)36 b(`)p Fs(-a)p Ft(')h(is)g(supplied,)h(all)f(aliases)i(are)630 -4888 y(remo)m(v)m(ed.)j(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section) -i(6.6)f([Aliases],)h(page)f(79.)150 5207 y Fr(4.3)68 -b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)p eop end +5340 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)p +eop end %%Page: 51 57 TeXDict begin 51 56 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(51)150 299 y Fk(4.3.1)63 -b(The)41 b(Set)g(Builtin)275 548 y Ft(This)27 b(builtin)h(is)h(so)f -(complicated)i(that)f(it)g(deserv)m(es)g(its)g(o)m(wn)f(section.)42 -b Fs(set)27 b Ft(allo)m(ws)j(y)m(ou)f(to)g(c)m(hange)150 -657 y(the)k(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f +b(Shell)30 b(Builtin)h(Commands)2069 b(51)150 299 y Fs(unalias)870 +435 y(unalias)46 b([-a])g([)p Fi(name)57 b Fs(...)47 +b(])630 572 y Ft(Remo)m(v)m(e)39 b(eac)m(h)f Fq(name)k +Ft(from)36 b(the)h(list)h(of)f(aliases.)61 b(If)36 b(`)p +Fs(-a)p Ft(')h(is)g(supplied,)h(all)f(aliases)i(are)630 +681 y(remo)m(v)m(ed.)j(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)i +(6.6)f([Aliases],)h(page)f(79.)150 919 y Fr(4.3)68 b(Mo)t(difying)45 +b(Shell)g(Beha)l(vior)150 1144 y Fj(4.3.1)63 b(The)41 +b(Set)g(Builtin)150 1290 y Ft(This)35 b(builtin)h(is)g(so)g +(complicated)i(that)f(it)f(deserv)m(es)h(its)f(o)m(wn)g(section.)59 +b Fs(set)35 b Ft(allo)m(ws)j(y)m(ou)e(to)h(c)m(hange)150 +1400 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f (p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h -(and)150 767 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150 -933 y Fs(set)870 1070 y(set)47 b([--abefhkmnptuvxBCEHPT])41 -b([-o)47 b Fj(option)11 b Fs(])46 b([)p Fj(argument)55 -b Fs(...])870 1179 y(set)47 b([+abefhkmnptuvxBCEHPT])42 -b([+o)47 b Fj(option)11 b Fs(])45 b([)p Fj(argument)56 -b Fs(...)o(])630 1316 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g +(and)150 1510 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150 +1675 y Fs(set)870 1811 y(set)47 b([--abefhkmnptuvxBCEHPT])41 +b([-o)47 b Fi(option)11 b Fs(])46 b([)p Fi(argument)55 +b Fs(...])870 1921 y(set)47 b([+abefhkmnptuvxBCEHPT])42 +b([+o)47 b Fi(option)11 b Fs(])45 b([)p Fi(argument)56 +b Fs(...)o(])630 2057 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g (are)g(supplied,)g Fs(set)f Ft(displa)m(ys)g(the)h(names)g(and)f(v)-5 -b(alues)23 b(of)g(all)630 1426 y(shell)j(v)-5 b(ariables)27 +b(alues)23 b(of)g(all)630 2167 y(shell)j(v)-5 b(ariables)27 b(and)e(functions,)h(sorted)g(according)h(to)g(the)f(curren)m(t)f(lo)s -(cale,)k(in)c(a)i(format)630 1535 y(that)i(ma)m(y)h(b)s(e)e(reused)g +(cale,)k(in)c(a)i(format)630 2276 y(that)i(ma)m(y)h(b)s(e)e(reused)g (as)h(input)f(for)h(setting)h(or)e(resetting)i(the)f(curren)m(tly-set)h -(v)-5 b(ariables.)630 1645 y(Read-only)37 b(v)-5 b(ariables)37 +(v)-5 b(ariables.)630 2386 y(Read-only)37 b(v)-5 b(ariables)37 b(cannot)h(b)s(e)e(reset.)59 b(In)36 b Fl(posix)g Ft(mo)s(de,)i(only)f -(shell)f(v)-5 b(ariables)38 b(are)630 1755 y(listed.)630 -1891 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f +(shell)f(v)-5 b(ariables)38 b(are)630 2495 y(listed.)630 +2632 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f (shell)h(attributes.)41 b(Options,)29 b(if)g(sp)s(ec-)630 -2001 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630 -2165 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h +2741 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630 +2905 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h (whic)m(h)g(are)g(mo)s(di\014ed)f(or)h(created)h(for)f(ex-)1110 -2275 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f -(commands.)630 2439 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f +3014 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f +(commands.)630 3177 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f (terminated)h(bac)m(kground)g(jobs)f(to)h(b)s(e)f(rep)s(orted)1110 -2548 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting) -g(the)g(next)g(primary)g(prompt.)630 2712 y Fs(-e)384 -b Ft(Exit)37 b(immediately)h(if)e(a)h(simple)f(command)g(\(see)i -(Section)f(3.2.1)h([Simple)1110 2822 y(Commands],)31 -b(page)i(8\))f(exits)g(with)g(a)g(non-zero)g(status,)g(unless)f(the)h -(com-)1110 2931 y(mand)f(that)h(fails)h(is)f(part)f(of)h(the)g(command) -g(list)g(immediately)h(follo)m(wing)1110 3041 y(a)41 -b Fs(while)d Ft(or)j Fs(until)e Ft(k)m(eyw)m(ord,)k(part)d(of)g(the)h -(test)g(in)f(an)g Fs(if)g Ft(statemen)m(t,)1110 3150 -y(part)33 b(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f -Ft(or)g Fs(||b)g Ft(list,)i(an)m(y)f(command)f(in)1110 -3260 y(a)g(pip)s(eline)e(but)h(the)g(last,)i(or)f(if)f(the)g(command's) -g(return)f(status)i(is)f(b)s(eing)1110 3370 y(in)m(v)m(erted)38 -b(using)e Fs(!)p Ft(.)60 b(F)-8 b(ailing)39 b(simple)e(commands)f(that) -i(are)f(part)g(of)g(shell)1110 3479 y(functions)e(or)g(command)g(lists) -h(enclosed)g(in)f(braces)g(or)h(paren)m(theses)f(sat-)1110 -3589 y(isfying)d(the)f(ab)s(o)m(v)m(e)i(conditions)f(do)g(not)f(cause)h -(the)g(shell)g(to)g(exit.)45 b(A)32 b(trap)1110 3698 -y(on)e Fs(ERR)p Ft(,)g(if)g(set,)i(is)e(executed)h(b)s(efore)f(the)h -(shell)f(exits.)630 3862 y Fs(-f)384 b Ft(Disable)31 -b(\014le)g(name)f(generation)i(\(globbing\).)630 4026 -y Fs(-h)384 b Ft(Lo)s(cate)33 b(and)e(remem)m(b)s(er)h(\(hash\))g -(commands)f(as)h(they)g(are)g(lo)s(ok)m(ed)h(up)e(for)1110 -4136 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g -(default.)630 4300 y Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h -(form)f(of)g(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110 -4410 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f -(those)i(that)f(precede)g(the)1110 4519 y(command)30 -b(name.)630 4683 y Fs(-m)384 b Ft(Job)30 b(con)m(trol)i(is)e(enabled)h -(\(see)g(Chapter)f(7)g([Job)h(Con)m(trol],)g(page)g(89\).)630 -4847 y Fs(-n)384 b Ft(Read)21 b(commands)f(but)g(do)h(not)g(execute)h -(them;)i(this)d(ma)m(y)g(b)s(e)f(used)g(to)h(c)m(hec)m(k)1110 -4957 y(a)42 b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41 -b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m(e)1110 -5066 y(shells.)630 5230 y Fs(-o)30 b Fj(option-name)1110 -5340 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i -Fq(option-name)5 b Ft(:)p eop end +3287 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting) +g(the)g(next)g(primary)g(prompt.)630 3450 y Fs(-e)384 +b Ft(Exit)65 b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g +(3.2.2)h([Pip)s(elines],)1110 3560 y(page)56 b(8\),)62 +b(whic)m(h)55 b(ma)m(y)h(consist)f(of)h(a)f(single)h(simple)f(command)g +(\(see)1110 3669 y(Section)43 b(3.2.1)i([Simple)d(Commands],)j(page)e +(8\),)k(a)c(subshell)e(command)1110 3779 y(enclosed)32 +b(in)f(paren)m(theses)h(\(see)h(Section)f(3.2.4.3)i([Command)d +(Grouping],)1110 3889 y(page)h(13\),)h(or)e(one)g(of)h(the)f(commands)g +(executed)h(as)f(part)g(of)h(a)f(command)1110 3998 y(list)37 +b(enclosed)g(b)m(y)f(braces)g(\(see)h(Section)g(3.2.4.3)h([Command)e +(Grouping],)1110 4108 y(page)48 b(13\))g(returns)d(a)j(non-zero)f +(status.)91 b(The)46 b(shell)h(do)s(es)g(not)g(exit)h(if)1110 +4217 y(the)39 b(command)f(that)h(fails)g(is)f(part)g(of)h(the)f +(command)h(list)g(immediately)1110 4327 y(follo)m(wing)47 +b(a)f Fs(while)e Ft(or)h Fs(until)f Ft(k)m(eyw)m(ord,)50 +b(part)45 b(of)h(the)g(test)g(in)f(an)h Fs(if)1110 4436 +y Ft(statemen)m(t,)31 b(part)d(of)h(an)m(y)g(command)f(executed)h(in)g +(a)g Fs(&&)e Ft(or)i Fs(||)f Ft(list)h(except)1110 4546 +y(the)48 b(command)h(follo)m(wing)g(the)g(\014nal)f Fs(&&)f +Ft(or)i Fs(||)p Ft(,)j(an)m(y)d(command)f(in)g(a)1110 +4656 y(pip)s(eline)39 b(but)f(the)i(last,)i(or)d(if)g(the)h(command's)f +(return)f(status)h(is)g(b)s(eing)1110 4765 y(in)m(v)m(erted)33 +b(with)e Fs(!)p Ft(.)45 b(A)32 b(trap)g(on)f Fs(ERR)p +Ft(,)h(if)g(set,)h(is)f(executed)g(b)s(efore)g(the)g(shell)1110 +4875 y(exits.)1110 5011 y(This)e(option)h(applies)f(to)h(the)g(shell)g +(en)m(vironmen)m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110 +5121 y(vironmen)m(t)j(separately)i(\(see)f(Section)g(3.7.3)h([Command)d +(Execution)i(En-)1110 5230 y(vironmen)m(t],)i(page)f(30\),)i(and)d(ma)m +(y)h(cause)f(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 +5340 y(cuting)d(all)g(the)g(commands)f(in)g(the)g(subshell.)p +eop end %%Page: 52 58 TeXDict begin 52 57 bop 150 -116 a Ft(52)2572 b(Bash)31 -b(Reference)g(Man)m(ual)1110 299 y Fs(allexport)1590 -408 y Ft(Same)f(as)h Fs(-a)p Ft(.)1110 560 y Fs(braceexpand)1590 -669 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 821 y Fs(emacs)240 +b(Reference)g(Man)m(ual)630 299 y Fs(-f)384 b Ft(Disable)31 +b(\014lename)g(expansion)f(\(globbing\).)630 455 y Fs(-h)384 +b Ft(Lo)s(cate)33 b(and)e(remem)m(b)s(er)h(\(hash\))g(commands)f(as)h +(they)g(are)g(lo)s(ok)m(ed)h(up)e(for)1110 565 y(execution.)42 +b(This)29 b(option)i(is)g(enabled)f(b)m(y)g(default.)630 +722 y Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h(form)f(of)g +(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110 +831 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f +(those)i(that)f(precede)g(the)1110 941 y(command)30 b(name.)630 +1097 y Fs(-m)384 b Ft(Job)30 b(con)m(trol)i(is)e(enabled)h(\(see)g +(Chapter)f(7)g([Job)h(Con)m(trol],)g(page)g(89\).)630 +1254 y Fs(-n)384 b Ft(Read)21 b(commands)f(but)g(do)h(not)g(execute)h +(them;)i(this)d(ma)m(y)g(b)s(e)f(used)g(to)h(c)m(hec)m(k)1110 +1363 y(a)42 b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41 +b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m(e)1110 +1473 y(shells.)630 1630 y Fs(-o)30 b Fi(option-name)1110 +1739 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i +Fq(option-name)5 b Ft(:)1110 1896 y Fs(allexport)1590 +2005 y Ft(Same)30 b(as)h Fs(-a)p Ft(.)1110 2162 y Fs(braceexpand)1590 +2271 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 2428 y Fs(emacs)240 b Ft(Use)25 b(an)f Fs(emacs)p Ft(-st)m(yle)h(line)f(editing)h(in)m -(terface)h(\(see)g(Chapter)e(8)1590 930 y([Command)38 +(terface)h(\(see)g(Chapter)e(8)1590 2538 y([Command)38 b(Line)g(Editing],)i(page)f(93\).)66 b(This)37 b(also)i(a\013ects)1590 -1040 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h -Fs(read)f(-e)p Ft(.)1110 1191 y Fs(errexit)144 b Ft(Same)30 -b(as)h Fs(-e)p Ft(.)1110 1343 y Fs(errtrace)96 b Ft(Same)30 -b(as)h Fs(-E)p Ft(.)1110 1494 y Fs(functrace)1590 1604 -y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 1755 y Fs(hashall)144 -b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 1906 y Fs(histexpand)1590 -2016 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 2167 y Fs(history)144 +2647 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h +Fs(read)f(-e)p Ft(.)1110 2804 y Fs(errexit)144 b Ft(Same)30 +b(as)h Fs(-e)p Ft(.)1110 2960 y Fs(errtrace)96 b Ft(Same)30 +b(as)h Fs(-E)p Ft(.)1110 3117 y Fs(functrace)1590 3226 +y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 3383 y Fs(hashall)144 +b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 3540 y Fs(histexpand)1590 +3649 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 3806 y Fs(history)144 b Ft(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h -(Section)h(9.1)1590 2277 y([Bash)d(History)g(F)-8 b(acilities],)41 -b(page)c(121.)60 b(This)36 b(option)h(is)f(on)1590 2386 +(Section)h(9.1)1590 3915 y([Bash)d(History)g(F)-8 b(acilities],)41 +b(page)c(121.)60 b(This)36 b(option)h(is)f(on)1590 4025 y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110 -2538 y Fs(ignoreeof)1590 2647 y Ft(An)d(in)m(teractiv)m(e)j(shell)e -(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 2799 +4181 y Fs(ignoreeof)1590 4291 y Ft(An)d(in)m(teractiv)m(e)j(shell)e +(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 4448 y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110 -2950 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110 -3101 y Fs(noclobber)1590 3211 y Ft(Same)f(as)h Fs(-C)p -Ft(.)1110 3362 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p -Ft(.)1110 3513 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p -Ft(.)1110 3665 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110 -3816 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110 -3968 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110 -4119 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110 -4270 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110 -4422 y Fs(pipefail)96 b Ft(If)44 b(set,)k(the)d(return)e(v)-5 -b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45 -b(of)1590 4531 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h -(exit)g(with)f(a)g(non-zero)1590 4641 y(status,)28 b(or)f(zero)g(if)f -(all)i(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590 -4750 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h -(default.)1110 4902 y Fs(posix)240 b Ft(Change)30 b(the)g(b)s(eha)m -(vior)h(of)f(Bash)g(where)g(the)g(default)h(op)s(era-)1590 -5011 y(tion)25 b(di\013ers)f(from)g(the)h Fl(posix)f -Ft(standard)f(to)i(matc)m(h)h(the)f(stan-)1590 5121 y(dard)32 -b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(85\).) -1590 5230 y(This)k(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g(b)s(eha)m -(v)m(e)g(as)g(a)f(strict)h(su-)1590 5340 y(p)s(erset)30 -b(of)h(that)f(standard.)p eop end +4604 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110 +4761 y Fs(noclobber)1590 4870 y Ft(Same)f(as)h Fs(-C)p +Ft(.)1110 5027 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p +Ft(.)1110 5183 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p +Ft(.)1110 5340 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)p +eop end %%Page: 53 59 TeXDict begin 53 58 bop 150 -116 a Ft(Chapter)30 b(4:)41 b(Shell)30 b(Builtin)h(Commands)2069 b(53)1110 299 y -Fs(privileged)1590 408 y Ft(Same)30 b(as)h Fs(-p)p Ft(.)1110 -560 y Fs(verbose)144 b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 -712 y Fs(vi)384 b Ft(Use)36 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g -(editing)g(in)m(terface.)58 b(This)35 b(also)h(a\013ects)1590 -822 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h -Fs(read)f(-e)p Ft(.)1110 973 y Fs(xtrace)192 b Ft(Same)30 -b(as)h Fs(-x)p Ft(.)630 1125 y Fs(-p)384 b Ft(T)-8 b(urn)33 -b(on)h(privileged)h(mo)s(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f -Fs($BASH_ENV)e Ft(and)h Fs($ENV)1110 1235 y Ft(\014les)k(are)h(not)g -(pro)s(cessed,)h(shell)f(functions)f(are)h(not)f(inherited)h(from)f -(the)1110 1344 y(en)m(vironmen)m(t,)47 b(and)42 b(the)h -Fs(SHELLOPTS)p Ft(,)g Fs(CDPATH)e Ft(and)i Fs(GLOBIGNORE)c -Ft(v)-5 b(ari-)1110 1454 y(ables,)36 b(if)e(they)g(app)s(ear)g(in)g -(the)g(en)m(vironmen)m(t,)i(are)f(ignored.)53 b(If)33 -b(the)i(shell)1110 1563 y(is)i(started)h(with)f(the)g(e\013ectiv)m(e)j -(user)d(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110 -1673 y(user)h(\(group\))h(id,)i(and)d(the)h Fs(-p)f Ft(option)i(is)e -(not)i(supplied,)f(these)h(actions)1110 1783 y(are)32 +Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110 455 +y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110 +612 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110 +769 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)1110 +925 y Fs(pipefail)96 b Ft(If)44 b(set,)k(the)d(return)e(v)-5 +b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45 +b(of)1590 1035 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h +(exit)g(with)f(a)g(non-zero)1590 1144 y(status,)28 b(or)f(zero)g(if)f +(all)i(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590 +1254 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h +(default.)1110 1410 y Fs(posix)240 b Ft(Change)30 b(the)g(b)s(eha)m +(vior)h(of)f(Bash)g(where)g(the)g(default)h(op)s(era-)1590 +1520 y(tion)25 b(di\013ers)f(from)g(the)h Fl(posix)f +Ft(standard)f(to)i(matc)m(h)h(the)f(stan-)1590 1630 y(dard)32 +b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j(page)e(84\).) +1590 1739 y(This)k(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g(b)s(eha)m +(v)m(e)g(as)g(a)f(strict)h(su-)1590 1849 y(p)s(erset)30 +b(of)h(that)f(standard.)1110 2005 y Fs(privileged)1590 +2115 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110 2271 y Fs(verbose)144 +b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110 2428 y Fs(vi)384 +b Ft(Use)36 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g(editing)g(in)m +(terface.)58 b(This)35 b(also)h(a\013ects)1590 2538 y(the)31 +b(editing)g(in)m(terface)h(used)d(for)h Fs(read)f(-e)p +Ft(.)1110 2694 y Fs(xtrace)192 b Ft(Same)30 b(as)h Fs(-x)p +Ft(.)630 2851 y Fs(-p)384 b Ft(T)-8 b(urn)33 b(on)h(privileged)h(mo)s +(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f Fs($BASH_ENV)e +Ft(and)h Fs($ENV)1110 2960 y Ft(\014les)23 b(are)h(not)f(pro)s(cessed,) +h(shell)g(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110 +3070 y(vironmen)m(t,)h(and)e(the)g Fs(SHELLOPTS)p Ft(,)f +Fs(BASHOPTS)p Ft(,)h Fs(CDPATH)e Ft(and)i Fs(GLOBIGNORE)1110 +3180 y Ft(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m +(vironmen)m(t,)i(are)e(ignored.)38 b(If)20 b(the)h(shell)1110 +3289 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d +(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110 +3399 y(user)h(\(group\))h(id,)i(and)d(the)h Fs(-p)f Ft(option)i(is)e +(not)i(supplied,)f(these)h(actions)1110 3508 y(are)32 b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)h(to)f -(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 1892 y +(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 3618 y Fs(-p)i Ft(option)h(is)g(supplied)f(at)h(startup,)h(the)f(e\013ectiv)m -(e)i(user)d(id)g(is)h(not)g(reset.)1110 2002 y(T)-8 b(urning)35 +(e)i(user)d(id)g(is)h(not)g(reset.)1110 3727 y(T)-8 b(urning)35 b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i(user)d(and)g -(group)g(ids)g(to)1110 2111 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f -(and)g(group)g(ids.)630 2263 y Fs(-t)384 b Ft(Exit)31 +(group)g(ids)g(to)1110 3837 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f +(and)g(group)g(ids.)630 3994 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h(one)g(command.)630 -2415 y Fs(-u)384 b Ft(T)-8 b(reat)38 b(unset)e(v)-5 b(ariables)37 -b(as)h(an)e(error)h(when)e(p)s(erforming)h(parameter)h(ex-)1110 -2524 y(pansion.)58 b(An)36 b(error)f(message)j(will)e(b)s(e)g(written)g -(to)h(the)g(standard)e(error,)1110 2634 y(and)30 b(a)h(non-in)m -(teractiv)m(e)i(shell)d(will)h(exit.)630 2786 y Fs(-v)384 -b Ft(Prin)m(t)30 b(shell)h(input)e(lines)i(as)g(they)f(are)h(read.)630 -2937 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f +4150 y Fs(-u)384 b Ft(T)-8 b(reat)25 b(unset)e(v)-5 b(ariables)25 +b(and)e(parameters)h(other)h(than)e(the)h(sp)s(ecial)h(param-)1110 +4260 y(eters)35 b(`)p Fs(@)p Ft(')f(or)g(`)p Fs(*)p Ft(')h(as)f(an)g +(error)g(when)f(p)s(erforming)g(parameter)i(expansion.)1110 +4369 y(An)28 b(error)h(message)g(will)g(b)s(e)f(written)h(to)h(the)e +(standard)g(error,)h(and)f(a)h(non-)1110 4479 y(in)m(teractiv)m(e)k +(shell)e(will)g(exit.)630 4635 y Fs(-v)384 b Ft(Prin)m(t)30 +b(shell)h(input)e(lines)i(as)g(they)f(are)h(read.)630 +4792 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f (commands,)i Fs(for)e Ft(commands,)i Fs(case)d Ft(commands,)1110 -3047 y Fs(select)29 b Ft(commands,)j(and)e(arithmetic)j -Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110 3157 +4902 y Fs(select)29 b Ft(commands,)j(and)e(arithmetic)j +Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110 5011 y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f(are) -h(expanded)f(and)f(b)s(efore)1110 3266 y(they)i(are)g(executed.)49 +h(expanded)f(and)f(b)s(efore)1110 5121 y(they)i(are)g(executed.)49 b(The)32 b(v)-5 b(alue)33 b(of)g(the)g Fs(PS4)f Ft(v)-5 -b(ariable)34 b(is)f(expanded)f(and)1110 3376 y(the)24 +b(ariable)34 b(is)f(expanded)f(and)1110 5230 y(the)24 b(resultan)m(t)h(v)-5 b(alue)24 b(is)g(prin)m(ted)g(b)s(efore)f(the)h -(command)g(and)f(its)i(expanded)1110 3485 y(argumen)m(ts.)630 -3637 y Fs(-B)384 b Ft(The)41 b(shell)g(will)g(p)s(erform)f(brace)h -(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 3747 -y(Expansion],)30 b(page)h(18\).)42 b(This)30 b(option)h(is)f(on)g(b)m -(y)h(default.)630 3898 y Fs(-C)384 b Ft(Prev)m(en)m(t)25 -b(output)e(redirection)h(using)f(`)p Fs(>)p Ft(',)i(`)p -Fs(>&)p Ft(',)g(and)e(`)p Fs(<>)p Ft(')g(from)h(o)m(v)m(erwriting)1110 -4008 y(existing)31 b(\014les.)630 4160 y Fs(-E)384 b -Ft(If)39 b(set,)j(an)m(y)e(trap)f(on)g Fs(ERR)g Ft(is)g(inherited)g(b)m -(y)g(shell)h(functions,)h(command)1110 4269 y(substitutions,)35 -b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.) -1110 4379 y(The)d Fs(ERR)f Ft(trap)i(is)f(normally)h(not)f(inherited)g -(in)g(suc)m(h)g(cases.)630 4531 y Fs(-H)384 b Ft(Enable)38 -b(`)p Fs(!)p Ft(')h(st)m(yle)h(history)e(substitution)g(\(see)h -(Section)h(9.3)f([History)g(In-)1110 4640 y(teraction],)g(page)d -(123\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m -(teractiv)m(e)1110 4750 y(shells.)630 4902 y Fs(-P)384 -b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s(olic)g(links)e -(when)g(p)s(erforming)g(commands)1110 5011 y(suc)m(h)29 -b(as)h Fs(cd)f Ft(whic)m(h)g(c)m(hange)h(the)g(curren)m(t)f(directory) --8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 5121 y(tory)j(is)g(used) -f(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i -(c)m(hain)f(of)1110 5230 y(directories)j(when)d(p)s(erforming)h -(commands)g(whic)m(h)g(c)m(hange)i(the)f(curren)m(t)1110 -5340 y(directory)-8 b(.)p eop end +(command)g(and)f(its)i(expanded)1110 5340 y(argumen)m(ts.)p +eop end %%Page: 54 60 TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31 -b(Reference)g(Man)m(ual)1110 299 y(F)-8 b(or)31 b(example,)g(if)f(`)p -Fs(/usr/sys)p Ft(')e(is)i(a)g(sym)m(b)s(olic)h(link)f(to)g(`)p -Fs(/usr/local/sys)p Ft(')1110 408 y(then:)1350 547 y -Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 656 y(/usr/sys)1350 -766 y($)g(cd)h(..;)f(pwd)1350 875 y(/usr)1110 1014 y -Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 1152 -y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1262 y(/usr/local/sys) -1350 1371 y($)g(cd)h(..;)f(pwd)1350 1481 y(/usr/local)630 -1648 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g(on)g -Fs(DEBUG)e Ft(and)i Fs(RETURN)e Ft(are)i(inherited)g(b)m(y)f(shell)i -(func-)1110 1757 y(tions,)k(command)d(substitutions,)h(and)f(commands)g -(executed)h(in)f(a)h(sub-)1110 1867 y(shell)33 b(en)m(vironmen)m(t.)49 -b(The)32 b Fs(DEBUG)g Ft(and)g Fs(RETURN)f Ft(traps)h(are)i(normally)f -(not)1110 1976 y(inherited)d(in)g(suc)m(h)g(cases.)630 -2143 y Fs(--)384 b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f -(option,)g(then)f(the)h(p)s(ositional)h(parameters)1110 -2253 y(are)h(unset.)49 b(Otherwise,)34 b(the)g(p)s(ositional)g -(parameters)g(are)g(set)g(to)g(the)g Fq(ar-)1110 2362 -y(gumen)m(ts)p Ft(,)d(ev)m(en)g(if)f(some)h(of)g(them)f(b)s(egin)g -(with)g(a)h(`)p Fs(-)p Ft('.)630 2529 y Fs(-)432 b Ft(Signal)45 -b(the)g(end)f(of)h(options,)k(cause)c(all)h(remaining)e -Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 2639 y(assigned)38 -b(to)h(the)f(p)s(ositional)h(parameters.)65 b(The)37 -b(`)p Fs(-x)p Ft(')h(and)g(`)p Fs(-v)p Ft(')g(options)1110 -2748 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f +b(Reference)g(Man)m(ual)630 299 y Fs(-B)384 b Ft(The)41 +b(shell)g(will)g(p)s(erform)f(brace)h(expansion)g(\(see)h(Section)g +(3.5.1)g([Brace)1110 408 y(Expansion],)30 b(page)h(18\).)42 +b(This)30 b(option)h(is)f(on)g(b)m(y)h(default.)630 556 +y Fs(-C)384 b Ft(Prev)m(en)m(t)25 b(output)e(redirection)h(using)f(`)p +Fs(>)p Ft(',)i(`)p Fs(>&)p Ft(',)g(and)e(`)p Fs(<>)p +Ft(')g(from)h(o)m(v)m(erwriting)1110 666 y(existing)31 +b(\014les.)630 814 y Fs(-E)384 b Ft(If)39 b(set,)j(an)m(y)e(trap)f(on)g +Fs(ERR)g Ft(is)g(inherited)g(b)m(y)g(shell)h(functions,)h(command)1110 +923 y(substitutions,)35 b(and)e(commands)g(executed)i(in)f(a)g +(subshell)f(en)m(vironmen)m(t.)1110 1033 y(The)d Fs(ERR)f +Ft(trap)i(is)f(normally)h(not)f(inherited)g(in)g(suc)m(h)g(cases.)630 +1181 y Fs(-H)384 b Ft(Enable)38 b(`)p Fs(!)p Ft(')h(st)m(yle)h(history) +e(substitution)g(\(see)h(Section)h(9.3)f([History)g(In-)1110 +1290 y(teraction],)g(page)d(123\).)57 b(This)34 b(option)i(is)f(on)g(b) +m(y)h(default)f(for)g(in)m(teractiv)m(e)1110 1400 y(shells.)630 +1548 y Fs(-P)384 b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s +(olic)g(links)e(when)g(p)s(erforming)g(commands)1110 +1657 y(suc)m(h)29 b(as)h Fs(cd)f Ft(whic)m(h)g(c)m(hange)h(the)g +(curren)m(t)f(directory)-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 +1767 y(tory)j(is)g(used)f(instead.)52 b(By)34 b(default,)h(Bash)f +(follo)m(ws)h(the)f(logical)i(c)m(hain)f(of)1110 1877 +y(directories)j(when)d(p)s(erforming)h(commands)g(whic)m(h)g(c)m(hange) +i(the)f(curren)m(t)1110 1986 y(directory)-8 b(.)1110 +2115 y(F)g(or)31 b(example,)g(if)f(`)p Fs(/usr/sys)p +Ft(')e(is)i(a)g(sym)m(b)s(olic)h(link)f(to)g(`)p Fs(/usr/local/sys)p +Ft(')1110 2224 y(then:)1350 2353 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i +($PWD)1350 2463 y(/usr/sys)1350 2572 y($)g(cd)h(..;)f(pwd)1350 +2682 y(/usr)1110 2811 y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:) +1350 2939 y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 +3049 y(/usr/local/sys)1350 3158 y($)g(cd)h(..;)f(pwd)1350 +3268 y(/usr/local)630 3416 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g +(on)g Fs(DEBUG)e Ft(and)i Fs(RETURN)e Ft(are)i(inherited)g(b)m(y)f +(shell)i(func-)1110 3525 y(tions,)k(command)d(substitutions,)h(and)f +(commands)g(executed)h(in)f(a)h(sub-)1110 3635 y(shell)33 +b(en)m(vironmen)m(t.)49 b(The)32 b Fs(DEBUG)g Ft(and)g +Fs(RETURN)f Ft(traps)h(are)i(normally)f(not)1110 3745 +y(inherited)d(in)g(suc)m(h)g(cases.)630 3892 y Fs(--)384 +b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f(option,)g(then)f +(the)h(p)s(ositional)h(parameters)1110 4002 y(are)h(unset.)49 +b(Otherwise,)34 b(the)g(p)s(ositional)g(parameters)g(are)g(set)g(to)g +(the)g Fq(ar-)1110 4112 y(gumen)m(ts)t Ft(,)d(ev)m(en)g(if)f(some)h(of) +f(them)h(b)s(egin)f(with)g(a)g(`)p Fs(-)p Ft('.)630 4260 +y Fs(-)432 b Ft(Signal)45 b(the)g(end)f(of)h(options,)k(cause)c(all)h +(remaining)e Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 +4369 y(assigned)38 b(to)h(the)f(p)s(ositional)h(parameters.)65 +b(The)37 b(`)p Fs(-x)p Ft(')h(and)g(`)p Fs(-v)p Ft(')g(options)1110 +4479 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f (argumen)m(ts,)i(the)f(p)s(ositional)h(parameters)1110 -2858 y(remain)k(unc)m(hanged.)630 3025 y(Using)d(`)p +4588 y(remain)k(unc)m(hanged.)630 4736 y(Using)d(`)p Fs(+)p Ft(')h(rather)f(than)g(`)p Fs(-)p Ft(')g(causes)h(these)f (options)h(to)g(b)s(e)e(turned)g(o\013.)40 b(The)27 b(options)h(can)630 -3134 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e +4846 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e (the)g(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g -(b)s(e)630 3244 y(found)29 b(in)h Fs($-)p Ft(.)630 3382 +(b)s(e)630 4955 y(found)29 b(in)h Fs($-)p Ft(.)630 5084 y(The)43 b(remaining)h(N)f Fq(argumen)m(ts)48 b Ft(are)c(p)s(ositional) -g(parameters)g(and)f(are)h(assigned,)j(in)630 3492 y(order,)30 +g(parameters)g(and)f(are)h(assigned,)j(in)630 5194 y(order,)30 b(to)h Fs($1)p Ft(,)f Fs($2)p Ft(,)36 b(.)22 b(.)g(.)42 b Fs($N)p Ft(.)e(The)30 b(sp)s(ecial)h(parameter)g Fs(#)f -Ft(is)g(set)h(to)g(N.)630 3630 y(The)f(return)f(status)i(is)f(alw)m(a)m +Ft(is)g(set)h(to)g(N.)630 5322 y(The)f(return)f(status)i(is)f(alw)m(a)m (ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f -(supplied.)150 3869 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)275 -4121 y Ft(This)29 b(builtin)h(allo)m(ws)i(y)m(ou)e(to)i(c)m(hange)f -(additional)g(shell)g(optional)g(b)s(eha)m(vior.)150 -4291 y Fs(shopt)870 4430 y(shopt)46 b([-pqsu])g([-o])h([)p -Fj(optname)56 b Fs(...)o(])630 4568 y Ft(T)-8 b(oggle)47 +(supplied.)p eop end +%%Page: 55 61 +TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(55)150 299 y Fj(4.3.2)63 +b(The)41 b(Shopt)h(Builtin)150 446 y Ft(This)30 b(builtin)g(allo)m(ws)h +(y)m(ou)g(to)g(c)m(hange)h(additional)f(shell)f(optional)i(b)s(eha)m +(vior.)150 618 y Fs(shopt)870 756 y(shopt)46 b([-pqsu])g([-o])h([)p +Fi(optname)56 b Fs(...)o(])630 895 y Ft(T)-8 b(oggle)47 b(the)d(v)-5 b(alues)45 b(of)g(v)-5 b(ariables)45 b(con)m(trolling)i (optional)f(shell)e(b)s(eha)m(vior.)84 b(With)45 b(no)630 -4677 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g +1004 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g (list)f(of)h(all)g(settable)g(options)g(is)f(displa)m(y)m(ed,)h(with) -630 4787 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e +630 1114 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e (set.)54 b(The)34 b(`)p Fs(-p)p Ft(')h(option)g(causes)g(output)f(to) -630 4897 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b) +630 1224 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b) s(e)e(reused)h(as)g(input.)58 b(Other)36 b(options)g(ha)m(v)m(e)i(the) -630 5006 y(follo)m(wing)32 b(meanings:)630 5173 y Fs(-s)384 -b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)p Ft(.)630 -5340 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h -Fq(optname)p Ft(.)p eop end -%%Page: 55 61 -TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Fs(-q)384 -b Ft(Suppresses)28 b(normal)h(output;)h(the)g(return)e(status)i -(indicates)h(whether)e(the)1110 408 y Fq(optname)37 b -Ft(is)31 b(set)h(or)f(unset.)43 b(If)31 b(m)m(ultiple)h -Fq(optname)37 b Ft(argumen)m(ts)31 b(are)h(giv)m(en)1110 -518 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d(return)f(status)h(is)g(zero)h -(if)f(all)g Fq(optnames)k Ft(are)d(enabled;)1110 628 -y(non-zero)31 b(otherwise.)630 775 y Fs(-o)384 b Ft(Restricts)28 -b(the)g(v)-5 b(alues)28 b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i -(de\014ned)f(for)g(the)g(`)p Fs(-o)p Ft(')h(op-)1110 -885 y(tion)23 b(to)h(the)f Fs(set)f Ft(builtin)h(\(see)g(Section)h -(4.3.1)h([The)d(Set)i(Builtin],)h(page)e(51\).)630 1033 -y(If)29 b(either)i(`)p Fs(-s)p Ft(')f(or)g(`)p Fs(-u)p -Ft(')f(is)h(used)g(with)f(no)h Fq(optname)35 b Ft(argumen)m(ts,)c(the)f -(displa)m(y)g(is)g(limited)630 1142 y(to)h(those)g(options)g(whic)m(h)f -(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m(ely)-8 b(.)630 -1271 y(Unless)30 b(otherwise)h(noted,)g(the)g Fs(shopt)d -Ft(options)j(are)g(disabled)f(\(o\013)7 b(\))32 b(b)m(y)e(default.)630 -1400 y(The)d(return)f(status)i(when)f(listing)h(options)g(is)f(zero)i -(if)e(all)i Fq(optnames)i Ft(are)d(enabled,)g(non-)630 -1509 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g -(options,)i(the)e(return)f(status)h(is)g(zero)630 1619 -y(unless)30 b(an)g Fq(optname)36 b Ft(is)30 b(not)h(a)g(v)-5 -b(alid)30 b(shell)h(option.)630 1747 y(The)f(list)h(of)f -Fs(shopt)f Ft(options)i(is:)630 1895 y Fs(autocd)192 -b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h -(a)f(directory)h(is)f(executed)1110 2005 y(as)j(if)f(it)h(w)m(ere)f -(the)h(argumen)m(t)g(to)g(the)f Fs(cd)g Ft(command.)40 -b(This)29 b(option)g(is)h(only)1110 2114 y(used)g(b)m(y)g(in)m -(teractiv)m(e)j(shells.)630 2262 y Fs(cdable_vars)1110 -2372 y Ft(If)h(this)h(is)g(set,)i(an)e(argumen)m(t)g(to)h(the)f -Fs(cd)f Ft(builtin)h(command)f(that)i(is)f(not)1110 2481 -y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h(name)f(of)h(a)g(v) --5 b(ariable)31 b(whose)g(v)-5 b(alue)31 b(is)1110 2591 -y(the)g(directory)f(to)i(c)m(hange)f(to.)630 2738 y Fs(cdspell)144 -b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g(sp)s(elling)h(of)f(a)g -(directory)h(comp)s(onen)m(t)f(in)g(a)h Fs(cd)1110 2848 -y Ft(command)i(will)h(b)s(e)f(corrected.)43 b(The)30 -b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110 -2958 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47 +630 1333 y(follo)m(wing)32 b(meanings:)630 1501 y Fs(-s)384 +b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)5 b Ft(.)630 +1668 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h +Fq(optname)5 b Ft(.)630 1836 y Fs(-q)384 b Ft(Suppresses)28 +b(normal)h(output;)h(the)g(return)e(status)i(indicates)h(whether)e(the) +1110 1946 y Fq(optname)37 b Ft(is)31 b(set)h(or)f(unset.)43 +b(If)31 b(m)m(ultiple)h Fq(optname)37 b Ft(argumen)m(ts)31 +b(are)h(giv)m(en)1110 2055 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d +(return)f(status)h(is)g(zero)h(if)f(all)g Fq(optnames)k +Ft(are)d(enabled;)1110 2165 y(non-zero)31 b(otherwise.)630 +2333 y Fs(-o)384 b Ft(Restricts)28 b(the)g(v)-5 b(alues)28 +b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i(de\014ned)f(for)g(the)g +(`)p Fs(-o)p Ft(')h(op-)1110 2442 y(tion)23 b(to)h(the)f +Fs(set)f Ft(builtin)h(\(see)g(Section)h(4.3.1)h([The)d(Set)i(Builtin],) +h(page)e(51\).)630 2610 y(If)29 b(either)i(`)p Fs(-s)p +Ft(')f(or)g(`)p Fs(-u)p Ft(')f(is)h(used)g(with)f(no)h +Fq(optname)35 b Ft(argumen)m(ts,)c(the)f(displa)m(y)g(is)g(limited)630 +2719 y(to)h(those)g(options)g(whic)m(h)f(are)h(set)f(or)h(unset,)f +(resp)s(ectiv)m(ely)-8 b(.)630 2858 y(Unless)30 b(otherwise)h(noted,)g +(the)g Fs(shopt)d Ft(options)j(are)g(disabled)f(\(o\013)7 +b(\))32 b(b)m(y)e(default.)630 2997 y(The)d(return)f(status)i(when)f +(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i +Ft(are)d(enabled,)g(non-)630 3106 y(zero)40 b(otherwise.)66 +b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f +(status)h(is)g(zero)630 3216 y(unless)30 b(an)g Fq(optname)36 +b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)630 +3354 y(The)f(list)h(of)f Fs(shopt)f Ft(options)i(is:)630 +3522 y Fs(autocd)192 b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h +(is)f(the)g(name)g(of)h(a)f(directory)h(is)f(executed)1110 +3632 y(as)j(if)f(it)h(w)m(ere)f(the)h(argumen)m(t)g(to)g(the)f +Fs(cd)g Ft(command.)40 b(This)29 b(option)g(is)h(only)1110 +3741 y(used)g(b)m(y)g(in)m(teractiv)m(e)j(shells.)630 +3909 y Fs(cdable_vars)1110 4018 y Ft(If)h(this)h(is)g(set,)i(an)e +(argumen)m(t)g(to)h(the)f Fs(cd)f Ft(builtin)h(command)f(that)i(is)f +(not)1110 4128 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h +(name)f(of)h(a)g(v)-5 b(ariable)31 b(whose)g(v)-5 b(alue)31 +b(is)1110 4238 y(the)g(directory)f(to)i(c)m(hange)f(to.)630 +4405 y Fs(cdspell)144 b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g +(sp)s(elling)h(of)f(a)g(directory)h(comp)s(onen)m(t)f(in)g(a)h +Fs(cd)1110 4515 y Ft(command)i(will)h(b)s(e)f(corrected.)43 +b(The)30 b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110 +4624 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47 b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8 b(.)74 -b(If)42 b(a)1110 3067 y(correction)25 b(is)e(found,)g(the)h(corrected)g -(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 3177 +b(If)42 b(a)1110 4734 y(correction)25 b(is)e(found,)g(the)h(corrected)g +(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 4844 y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h(in)m -(teractiv)m(e)k(shells.)630 3324 y Fs(checkhash)1110 -3434 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f -(command)f(found)g(in)g(the)h(hash)f(table)1110 3544 +(teractiv)m(e)k(shells.)630 5011 y Fs(checkhash)1110 +5121 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f +(command)f(found)g(in)g(the)h(hash)f(table)1110 5230 y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48 -b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 3653 -y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630 -3801 y Fs(checkjobs)1110 3911 y Ft(If)d(set,)i(Bash)e(lists)h(the)g -(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore) -1110 4020 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72 -b(If)41 b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110 -4130 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h -(exit)g(is)g(attempted)h(without)e(an)1110 4239 y(in)m(terv)m(ening)j -(command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(89\).)42 -b(The)1110 4349 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h -(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)630 4497 y Fs(checkwinsize)1110 -4606 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j -(after)f(eac)m(h)g(command)f(and,)j(if)1110 4716 y(necessary)-8 +b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 5340 +y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)p +eop end +%%Page: 56 62 +TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y Fs(checkjobs)1110 408 +y Ft(If)d(set,)i(Bash)e(lists)h(the)g(status)g(of)f(an)m(y)h(stopp)s +(ed)f(and)g(running)e(jobs)i(b)s(efore)1110 518 y(exiting)42 +b(an)f(in)m(teractiv)m(e)j(shell.)72 b(If)41 b(an)m(y)g(jobs)f(are)i +(running,)g(this)f(causes)1110 628 y(the)30 b(exit)g(to)g(b)s(e)f +(deferred)g(un)m(til)h(a)f(second)h(exit)g(is)g(attempted)h(without)e +(an)1110 737 y(in)m(terv)m(ening)j(command)e(\(see)h(Chapter)f(7)h +([Job)f(Con)m(trol],)i(page)f(89\).)42 b(The)1110 847 +y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h(if)g(an)m(y)f +(jobs)g(are)h(stopp)s(ed.)630 1009 y Fs(checkwinsize)1110 +1118 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e(size)j +(after)f(eac)m(h)g(command)f(and,)j(if)1110 1228 y(necessary)-8 b(,)31 b(up)s(dates)f(the)g(v)-5 b(alues)31 b(of)g Fs(LINES)e -Ft(and)g Fs(COLUMNS)p Ft(.)630 4863 y Fs(cmdhist)144 +Ft(and)g Fs(COLUMNS)p Ft(.)630 1390 y Fs(cmdhist)144 b Ft(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)g(all)g(lines)f -(of)g(a)h(m)m(ultiple-line)g(command)1110 4973 y(in)c(the)g(same)g +(of)g(a)h(m)m(ultiple-line)g(command)1110 1499 y(in)c(the)g(same)g (history)g(en)m(try)-8 b(.)42 b(This)30 b(allo)m(ws)i(easy)g -(re-editing)g(of)f(m)m(ulti-line)1110 5083 y(commands.)630 -5230 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s +(re-editing)g(of)f(m)m(ulti-line)1110 1609 y(commands.)630 +1771 y Fs(compat31)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s (eha)m(vior)f(to)i(that)f(of)f(v)m(ersion)h(3.1)h(with)e(resp)s(ect) -1110 5340 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h -(command's)e(=)p Fs(~)g Ft(op)s(erator.)p eop end -%%Page: 56 62 -TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y Fs(dirspell)96 b Ft(If)26 -b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g(directory)g -(names)f(during)1110 408 y(w)m(ord)36 b(completion)h(if)f(the)g -(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110 -518 y(exist.)630 677 y Fs(dotglob)144 b Ft(If)27 b(set,)i(Bash)f +1110 1880 y(to)k(quoted)g(argumen)m(ts)f(to)h(the)g(conditional)h +(command's)e(=)p Fs(~)g Ft(op)s(erator.)630 2042 y Fs(dirspell)96 +b Ft(If)26 b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g +(directory)g(names)f(during)1110 2151 y(w)m(ord)36 b(completion)h(if)f +(the)g(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110 +2261 y(exist.)630 2423 y Fs(dotglob)144 b Ft(If)27 b(set,)i(Bash)f (includes)g(\014lenames)g(b)s(eginning)f(with)g(a)h(`.')41 -b(in)27 b(the)h(results)g(of)1110 787 y(\014lename)j(expansion.)630 -946 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m +b(in)27 b(the)h(results)g(of)1110 2532 y(\014lename)j(expansion.)630 +2694 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m (teractiv)m(e)i(shell)e(will)f(not)h(exit)h(if)e(it)h(cannot)h(execute) -1110 1056 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to) +1110 2804 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to) h(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110 -1166 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e -Fs(exec)f Ft(fails.)630 1325 y Fs(expand_aliases)1110 -1435 y Ft(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b) -s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 1544 y(tion)38 +2913 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e +Fs(exec)f Ft(fails.)630 3075 y Fs(expand_aliases)1110 +3185 y Ft(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b) +s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 3294 y(tion)38 b(6.6)h([Aliases],)j(page)d(79.)64 b(This)37 b(option)h(is)g(enabled)g -(b)m(y)g(default)g(for)1110 1654 y(in)m(teractiv)m(e)33 -b(shells.)630 1813 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior) +(b)m(y)g(default)g(for)1110 3404 y(in)m(teractiv)m(e)33 +b(shells.)630 3566 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior) g(in)m(tended)f(for)g(use)g(b)m(y)g(debuggers)g(is)h(enabled:)1159 -1948 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g +3701 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g Fs(declare)d Ft(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290 -2057 y(Builtins],)29 b(page)g(41\))g(displa)m(ys)f(the)g(source)h -(\014le)f(name)g(and)f(line)h(n)m(um-)1290 2167 y(b)s(er)h(corresp)s +3811 y(Builtins],)29 b(page)g(41\))g(displa)m(ys)f(the)g(source)h +(\014le)f(name)g(and)f(line)h(n)m(um-)1290 3921 y(b)s(er)h(corresp)s (onding)g(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-) -1290 2276 y(men)m(t.)1159 2411 y(2.)61 b(If)20 b(the)h(command)g(run)e +1290 4030 y(men)m(t.)1159 4166 y(2.)61 b(If)20 b(the)h(command)g(run)e (b)m(y)i(the)f Fs(DEBUG)g Ft(trap)g(returns)g(a)h(non-zero)g(v)-5 -b(alue,)1290 2521 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g -(not)i(executed.)1159 2655 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m +b(alue,)1290 4275 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g +(not)i(executed.)1159 4411 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m (y)i(the)f Fs(DEBUG)f Ft(trap)h(returns)f(a)i(v)-5 b(alue)38 -b(of)f(2,)1290 2765 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h -(subroutine)e(\(a)i(shell)g(function)f(or)1290 2874 y(a)h(shell)h +b(of)f(2,)1290 4521 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h +(subroutine)e(\(a)i(shell)g(function)f(or)1290 4630 y(a)h(shell)h (script)f(executed)h(b)m(y)f(the)g Fs(.)g Ft(or)g Fs(source)e -Ft(builtins\),)j(a)g(call)g(to)1290 2984 y Fs(return)29 -b Ft(is)h(sim)m(ulated.)1159 3118 y(4.)61 b Fs(BASH_ARGC)34 +Ft(builtins\),)j(a)g(call)g(to)1290 4740 y Fs(return)29 +b Ft(is)h(sim)m(ulated.)1159 4876 y(4.)61 b Fs(BASH_ARGC)34 b Ft(and)i Fs(BASH_ARGV)e Ft(are)j(up)s(dated)e(as)h(describ)s(ed)g(in) -g(their)1290 3228 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g -(V)-8 b(ariables],)32 b(page)f(61\).)1159 3362 y(5.)61 +g(their)1290 4985 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g +(V)-8 b(ariables],)32 b(page)f(61\).)1159 5121 y(5.)61 b(F)-8 b(unction)57 b(tracing)g(is)g(enabled:)93 b(command)56 -b(substitution,)63 b(shell)1290 3472 y(functions,)30 +b(substitution,)63 b(shell)1290 5230 y(functions,)30 b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h -Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 3582 -y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159 3716 -y(6.)61 b(Error)74 b(tracing)i(is)f(enabled:)131 b(command)74 -b(substitution,)87 b(shell)1290 3826 y(functions,)30 -b(and)f(subshells)g(in)m(v)m(ok)m(ed)j(with)d Fs(\()h -Fj(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 3935 -y Fs(ERROR)f Ft(trap.)630 4095 y Fs(extglob)144 b Ft(If)26 -b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g(describ)s -(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 4204 y(Section)j(3.5.8.1)i([P)m -(attern)f(Matc)m(hing],)g(page)f(25\))h(are)f(enabled.)630 -4364 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p -Fj(string)11 b Fs(')46 b Ft(and)j Fs($")p Fj(string)11 -b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110 -4473 y Fs(${)p Fj(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h -(in)g(double)f(quotes.)51 b(This)32 b(option)1110 4583 -y(is)e(enabled)h(b)m(y)f(default.)630 4742 y Fs(failglob)96 -b Ft(If)30 b(set,)g(patterns)g(whic)m(h)g(fail)h(to)g(matc)m(h)g -(\014lenames)f(during)e(pathname)i(ex-)1110 4852 y(pansion)g(result)g -(in)g(an)g(expansion)h(error.)630 5011 y Fs(force_fignore)1110 -5121 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)i -(the)f Fs(FIGNORE)f Ft(shell)h(v)-5 b(ariable)44 b(cause)1110 -5230 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m -(ord)h(completion)i(ev)m(en)f(if)g(the)1110 5340 y(ignored)37 -b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62 -b(See)37 b(Section)h(5.2)p eop end +Fi(command)39 b Fs(\))30 b Ft(inherit)g(the)1290 5340 +y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)p eop end %%Page: 57 63 TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(57)1110 299 y([Bash)24 -b(V)-8 b(ariables],)27 b(page)e(61,)h(for)d(a)h(description)g(of)g -Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 408 y(is)30 -b(enabled)h(b)m(y)f(default.)630 568 y Fs(globstar)96 +b(Shell)30 b(Builtin)h(Commands)2069 b(57)1159 299 y(6.)61 +b(Error)74 b(tracing)i(is)f(enabled:)131 b(command)74 +b(substitution,)87 b(shell)1290 408 y(functions,)30 b(and)f(subshells)g +(in)m(v)m(ok)m(ed)j(with)d Fs(\()h Fi(command)39 b Fs(\))30 +b Ft(inherit)g(the)1290 518 y Fs(ERROR)f Ft(trap.)630 +667 y Fs(extglob)144 b Ft(If)26 b(set,)i(the)f(extended)f(pattern)h +(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 +777 y(Section)j(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(24\))h +(are)f(enabled.)630 927 y Fs(extquote)96 b Ft(If)49 b(set,)54 +b Fs($')p Fi(string)11 b Fs(')46 b Ft(and)j Fs($")p Fi(string)11 +b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110 +1036 y Fs(${)p Fi(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h +(in)g(double)f(quotes.)51 b(This)32 b(option)1110 1146 +y(is)e(enabled)h(b)m(y)f(default.)630 1295 y Fs(failglob)96 +b Ft(If)36 b(set,)j(patterns)d(whic)m(h)g(fail)h(to)h(matc)m(h)f +(\014lenames)f(during)g(\014lename)g(ex-)1110 1405 y(pansion)30 +b(result)g(in)g(an)g(expansion)h(error.)630 1554 y Fs(force_fignore) +1110 1664 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y) +i(the)f Fs(FIGNORE)f Ft(shell)h(v)-5 b(ariable)44 b(cause)1110 +1773 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m +(ord)h(completion)i(ev)m(en)f(if)g(the)1110 1883 y(ignored)37 +b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62 +b(See)37 b(Section)h(5.2)1110 1993 y([Bash)24 b(V)-8 +b(ariables],)27 b(page)e(61,)h(for)d(a)h(description)g(of)g +Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 2102 y(is)30 +b(enabled)h(b)m(y)f(default.)630 2252 y Fs(globstar)96 b Ft(If)38 b(set,)j(the)e(pattern)f(`)p Fs(**)p Ft(')h(used)e(in)i(a)f -(\014lename)h(expansion)f(con)m(text)j(will)1110 677 +(\014lename)h(expansion)f(con)m(text)j(will)1110 2361 y(matc)m(h)f(a)g(\014les)f(and)f(zero)i(or)g(more)f(directories)h(and)f -(sub)s(directories.)66 b(If)1110 787 y(the)30 b(pattern)g(is)g(follo)m +(sub)s(directories.)66 b(If)1110 2471 y(the)30 b(pattern)g(is)g(follo)m (w)m(ed)i(b)m(y)d(a)i(`)p Fs(/)p Ft(',)f(only)g(directories)h(and)f -(sub)s(directories)1110 897 y(matc)m(h.)630 1056 y Fs(gnu_errfmt)1110 -1166 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in) -h(the)g(standard)f Fl(gnu)g Ft(error)1110 1275 y(message)c(format.)630 -1435 y Fs(histappend)1110 1544 y Ft(If)c(set,)j(the)e(history)g(list)g +(sub)s(directories)1110 2580 y(matc)m(h.)630 2730 y Fs(gnu_errfmt)1110 +2839 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in) +h(the)g(standard)f Fl(gnu)g Ft(error)1110 2949 y(message)c(format.)630 +3098 y Fs(histappend)1110 3208 y Ft(If)c(set,)j(the)e(history)g(list)g (is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5 -b(alue)29 b(of)1110 1654 y(the)d Fs(HISTFILE)d Ft(v)-5 +b(alue)29 b(of)1110 3318 y(the)d Fs(HISTFILE)d Ft(v)-5 b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m -(erwriting)1110 1763 y(the)31 b(\014le.)630 1923 y Fs(histreedit)1110 -2032 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g +(erwriting)1110 3427 y(the)31 b(\014le.)630 3577 y Fs(histreedit)1110 +3686 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g (user)g(is)g(giv)m(en)h(the)g(opp)s(ortunit)m(y)1110 -2142 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630 -2301 y Fs(histverify)1110 2411 y Ft(If)35 b(set,)i(and)e(Readline)h(is) +3796 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630 +3945 y Fs(histverify)1110 4055 y Ft(If)35 b(set,)i(and)e(Readline)h(is) f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110 -2521 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g -(parser.)59 b(Instead,)38 b(the)1110 2630 y(resulting)i(line)f(is)h +4164 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g +(parser.)59 b(Instead,)38 b(the)1110 4274 y(resulting)i(line)f(is)h (loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing) -1110 2740 y(further)29 b(mo)s(di\014cation.)630 2899 -y Fs(hostcomplete)1110 3009 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f +1110 4384 y(further)29 b(mo)s(di\014cation.)630 4533 +y Fs(hostcomplete)1110 4643 y Ft(If)38 b(set,)j(and)c(Readline)i(is)f (b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110 -3118 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f -(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 3228 y(pleted)g(\(see)h +4752 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f +(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 4862 y(pleted)g(\(see)h (Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g -(110\).)1110 3337 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.) -630 3497 y Fs(huponexit)1110 3606 y Ft(If)i(set,)i(Bash)f(will)h(send)d +(110\).)1110 4971 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.) +630 5121 y Fs(huponexit)1110 5230 y Ft(If)i(set,)i(Bash)f(will)h(send)d Fs(SIGHUP)h Ft(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login) -1110 3716 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g -(page)f(33\).)630 3875 y Fs(interactive_comments)1110 -3985 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p +1110 5340 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g +(page)f(32\).)p eop end +%%Page: 58 64 +TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y Fs(interactive_comments)1110 +408 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p Fs(#)p Ft(')g(to)h(cause)f(that)h(w)m(ord)f(and)f(all)i(remain-)1110 -4095 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f -(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110 -4204 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630 -4364 y Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h -Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110 -4473 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s -(edded)g(newlines)h(rather)g(than)f(using)1110 4583 y(semicolon)32 -b(separators)f(where)e(p)s(ossible.)630 4742 y Fs(login_shell)1110 -4852 y Ft(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f +518 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f(ignored) +g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110 628 y(This)30 +b(option)g(is)h(enabled)f(b)m(y)g(default.)630 777 y +Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h Fs(cmdhist)e +Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110 +887 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s +(edded)g(newlines)h(rather)g(than)f(using)1110 996 y(semicolon)32 +b(separators)f(where)e(p)s(ossible.)630 1146 y Fs(login_shell)1110 +1255 y Ft(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f (started)h(as)g(a)g(login)g(shell)g(\(see)g(Sec-)1110 -4961 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(71\).)41 +1365 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(71\).)41 b(The)28 b(v)-5 b(alue)29 b(ma)m(y)g(not)f(b)s(e)g(c)m(hanged.)630 -5121 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g +1514 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g (Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s(een)g(accessed) -1110 5230 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m -(ed,)k(the)c(message)h Fs("The)k(mail)h(in)f Fj(mail-)1110 -5340 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)p -eop end -%%Page: 58 64 -TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y Fs(no_empty_cmd_completion)1110 -408 y Ft(If)f(set,)g(and)g(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g -(will)g(not)g(attempt)i(to)e(searc)m(h)1110 518 y(the)25 -b Fs(PATH)f Ft(for)h(p)s(ossible)f(completions)j(when)d(completion)i -(is)f(attempted)h(on)1110 628 y(an)k(empt)m(y)h(line.)630 -823 y Fs(nocaseglob)1110 933 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g -(\014lenames)g(in)f(a)h(case-insensitiv)m(e)j(fashion)c(when)1110 -1042 y(p)s(erforming)29 b(\014lename)i(expansion.)630 -1238 y Fs(nocasematch)1110 1347 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g -(patterns)g(in)f(a)h(case-insensitiv)m(e)i(fashion)d(when)1110 -1457 y(p)s(erforming)31 b(matc)m(hing)i(while)f(executing)i -Fs(case)d Ft(or)h Fs([[)g Ft(conditional)h(com-)1110 -1567 y(mands.)630 1762 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e -(allo)m(ws)g(\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g -(\014les)f(to)i(expand)1110 1872 y(to)31 b(a)g(n)m(ull)f(string,)h -(rather)f(than)g(themselv)m(es.)630 2067 y Fs(progcomp)96 -b Ft(If)25 b(set,)i(the)f(programmable)g(completion)g(facilities)i -(\(see)f(Section)f(8.6)h([Pro-)1110 2177 y(grammable)45 -b(Completion],)k(page)c(115\))h(are)f(enabled.)82 b(This)44 -b(option)h(is)1110 2286 y(enabled)30 b(b)m(y)h(default.)630 -2482 y Fs(promptvars)1110 2591 y Ft(If)24 b(set,)i(prompt)d(strings)h -(undergo)f(parameter)i(expansion,)g(command)f(sub-)1110 -2701 y(stitution,)34 b(arithmetic)f(expansion,)g(and)e(quote)i(remo)m -(v)-5 b(al)33 b(after)g(b)s(eing)e(ex-)1110 2811 y(panded)39 +1110 1624 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m +(ed,)k(the)c(message)h Fs("The)k(mail)h(in)f Fi(mail-)1110 +1733 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.) +630 1883 y Fs(no_empty_cmd_completion)1110 1993 y Ft(If)f(set,)g(and)g +(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g(will)g(not)g(attempt)i(to)e +(searc)m(h)1110 2102 y(the)25 b Fs(PATH)f Ft(for)h(p)s(ossible)f +(completions)j(when)d(completion)i(is)f(attempted)h(on)1110 +2212 y(an)k(empt)m(y)h(line.)630 2361 y Fs(nocaseglob)1110 +2471 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h +(case-insensitiv)m(e)j(fashion)c(when)1110 2580 y(p)s(erforming)29 +b(\014lename)i(expansion.)630 2730 y Fs(nocasematch)1110 +2839 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h +(case-insensitiv)m(e)i(fashion)d(when)1110 2949 y(p)s(erforming)31 +b(matc)m(hing)i(while)f(executing)i Fs(case)d Ft(or)h +Fs([[)g Ft(conditional)h(com-)1110 3059 y(mands.)630 +3208 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e(allo)m(ws)g +(\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g(\014les)f(to)i +(expand)1110 3318 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g +(themselv)m(es.)630 3467 y Fs(progcomp)96 b Ft(If)25 +b(set,)i(the)f(programmable)g(completion)g(facilities)i(\(see)f +(Section)f(8.6)h([Pro-)1110 3577 y(grammable)45 b(Completion],)k(page)c +(115\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110 +3686 y(enabled)30 b(b)m(y)h(default.)630 3836 y Fs(promptvars)1110 +3945 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i +(expansion,)g(command)f(sub-)1110 4055 y(stitution,)34 +b(arithmetic)f(expansion,)g(and)e(quote)i(remo)m(v)-5 +b(al)33 b(after)g(b)s(eing)e(ex-)1110 4164 y(panded)39 b(as)i(describ)s(ed)e(b)s(elo)m(w)i(\(see)g(Section)g(6.9)g([Prin)m -(ting)g(a)g(Prompt],)1110 2920 y(page)31 b(83\).)42 b(This)30 -b(option)g(is)h(enabled)f(b)m(y)g(default.)630 3116 y -Fs(restricted_shell)1110 3225 y Ft(The)40 b(shell)h(sets)g(this)g +(ting)g(a)g(Prompt],)1110 4274 y(page)31 b(82\).)42 b(This)30 +b(option)g(is)h(enabled)f(b)m(y)g(default.)630 4423 y +Fs(restricted_shell)1110 4533 y Ft(The)40 b(shell)h(sets)g(this)g (option)g(if)g(it)h(is)e(started)i(in)e(restricted)i(mo)s(de)e(\(see) -1110 3335 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e +1110 4643 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e (84\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)1110 -3444 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f -(the)h(startup)g(\014les)f(are)i(executed,)1110 3554 +4752 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f +(the)h(startup)g(\014les)f(are)i(executed,)1110 4862 y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g(disco)m(v)m(er)h -(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 3664 -y(stricted.)630 3859 y Fs(shift_verbose)1110 3969 y Ft(If)g(this)g(is)g +(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 4971 +y(stricted.)630 5121 y Fs(shift_verbose)1110 5230 y Ft(If)g(this)g(is)g (set,)j(the)d Fs(shift)f Ft(builtin)h(prin)m(ts)f(an)h(error)g(message) -i(when)d(the)1110 4078 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m -(b)s(er)e(of)h(p)s(ositional)i(parameters.)630 4274 y -Fs(sourcepath)1110 4383 y Ft(If)22 b(set,)j(the)e Fs(source)e -Ft(builtin)h(uses)g(the)h(v)-5 b(alue)23 b(of)g Fs(PATH)e -Ft(to)j(\014nd)d(the)h(directory)1110 4493 y(con)m(taining)29 -b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m(t.)40 -b(This)27 b(option)h(is)f(enabled)1110 4603 y(b)m(y)j(default.)630 -4798 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e +i(when)d(the)1110 5340 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m +(b)s(er)e(of)h(p)s(ositional)i(parameters.)p eop end +%%Page: 59 65 +TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(4:)41 +b(Shell)30 b(Builtin)h(Commands)2069 b(59)630 299 y Fs(sourcepath)1110 +408 y Ft(If)22 b(set,)j(the)e Fs(source)e Ft(builtin)h(uses)g(the)h(v) +-5 b(alue)23 b(of)g Fs(PATH)e Ft(to)j(\014nd)d(the)h(directory)1110 +518 y(con)m(taining)29 b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m +(t.)40 b(This)27 b(option)h(is)f(enabled)1110 628 y(b)m(y)j(default.) +630 787 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e Ft(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f -(de-)1110 4908 y(fault.)630 5103 y(The)c(return)f(status)i(when)f +(de-)1110 897 y(fault.)630 1056 y(The)c(return)f(status)i(when)f (listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i -Ft(are)d(enabled,)g(non-)630 5213 y(zero)40 b(otherwise.)66 +Ft(are)d(enabled,)g(non-)630 1166 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f -(status)h(is)g(zero)630 5322 y(unless)30 b(an)g Fq(optname)36 -b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)p +(status)h(is)g(zero)630 1275 y(unless)30 b(an)g Fq(optname)36 +b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)150 +1508 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)150 1667 +y Ft(F)-8 b(or)35 b(historical)h(reasons,)g(the)e Fl(posix)g +Ft(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e(commands)g +(as)h Fk(sp)-5 b(e-)150 1777 y(cial)p Ft(.)47 b(When)33 +b(Bash)f(is)h(executing)g(in)f Fl(posix)g Ft(mo)s(de,)h(the)g(sp)s +(ecial)g(builtins)e(di\013er)i(from)f(other)g(builtin)150 +1886 y(commands)e(in)g(three)h(resp)s(ects:)199 2021 +y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h(shell)h +(functions)f(during)f(command)h(lo)s(okup.)199 2155 y(2.)61 +b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)g(status,)h +(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 2290 +y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f(command) +g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m(t)330 +2399 y(after)i(the)f(command)h(completes.)275 2559 y(When)36 +b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f Ft(mo)s(de,)j(these)f +(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m(tly)h(than)150 +2668 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e(commands.)41 +b(The)30 b(Bash)g Fl(posix)g Ft(mo)s(de)g(is)g(describ)s(ed)f(in)h +(Section)h(6.11)150 2778 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(84.)275 +2912 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h(builtins:)390 +3047 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h(exit)g(export)f +(readonly)f(return)h(set)390 3156 y(shift)g(trap)h(unset)p eop end -%%Page: 59 65 -TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(4:)41 -b(Shell)30 b(Builtin)h(Commands)2069 b(59)150 299 y Fr(4.4)68 -b(Sp)t(ecial)45 b(Builtins)275 543 y Ft(F)-8 b(or)40 -b(historical)i(reasons,)g(the)f Fl(posix)e Ft(standard)g(has)h -(classi\014ed)g(sev)m(eral)i(builtin)d(commands)h(as)150 -653 y Fm(sp)-5 b(e)g(cial)p Ft(.)84 b(When)44 b(Bash)g(is)g(executing)i -(in)d Fl(posix)h Ft(mo)s(de,)j(the)e(sp)s(ecial)f(builtins)g(di\013er)g -(from)g(other)150 762 y(builtin)30 b(commands)g(in)g(three)h(resp)s -(ects:)199 897 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s -(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)199 -1031 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error) -g(status,)h(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 -1166 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f -(command)g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m -(t)330 1275 y(after)i(the)f(command)h(completes.)275 -1435 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f -Ft(mo)s(de,)j(these)f(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m -(tly)h(than)150 1544 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e -(commands.)41 b(The)30 b(Bash)g Fl(posix)g Ft(mo)s(de)g(is)g(describ)s -(ed)f(in)h(Section)h(6.11)150 1654 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g -(85.)275 1788 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h -(builtins:)390 1923 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h -(exit)g(export)f(readonly)f(return)h(set)390 2032 y(shift)g(trap)h -(unset)p eop end %%Page: 60 66 -TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +TeXDict begin 60 65 bop eop end %%Page: 61 67 TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(5:)41 b(Shell)30 b(V)-8 b(ariables)2459 b(61)150 299 y Fo(5)80 -b(Shell)53 b(V)-13 b(ariables)275 525 y Ft(This)36 b(c)m(hapter)i -(describ)s(es)e(the)h(shell)g(v)-5 b(ariables)38 b(that)g(Bash)f(uses.) -61 b(Bash)37 b(automatically)j(assigns)150 635 y(default)31 -b(v)-5 b(alues)30 b(to)h(a)g(n)m(um)m(b)s(er)e(of)i(v)-5 -b(ariables.)150 887 y Fr(5.1)68 b(Bourne)45 b(Shell)g(V)-11 -b(ariables)275 1130 y Ft(Bash)36 b(uses)g(certain)h(shell)f(v)-5 -b(ariables)37 b(in)f(the)h(same)g(w)m(a)m(y)g(as)f(the)h(Bourne)f -(shell.)59 b(In)35 b(some)i(cases,)150 1240 y(Bash)31 -b(assigns)f(a)h(default)f(v)-5 b(alue)31 b(to)g(the)g(v)-5 -b(ariable.)150 1396 y Fs(CDPATH)192 b Ft(A)39 b(colon-separated)i(list) -e(of)g(directories)h(used)f(as)g(a)g(searc)m(h)h(path)e(for)h(the)g -Fs(cd)f Ft(builtin)630 1505 y(command.)150 1662 y Fs(HOME)288 +b(Shell)53 b(V)-13 b(ariables)150 559 y Ft(This)21 b(c)m(hapter)i +(describ)s(es)e(the)i(shell)f(v)-5 b(ariables)23 b(that)f(Bash)h(uses.) +37 b(Bash)23 b(automatically)h(assigns)f(default)150 +668 y(v)-5 b(alues)31 b(to)g(a)g(n)m(um)m(b)s(er)e(of)h(v)-5 +b(ariables.)150 914 y Fr(5.1)68 b(Bourne)45 b(Shell)g(V)-11 +b(ariables)150 1073 y Ft(Bash)30 b(uses)g(certain)h(shell)g(v)-5 +b(ariables)31 b(in)f(the)g(same)h(w)m(a)m(y)g(as)g(the)f(Bourne)g +(shell.)41 b(In)30 b(some)g(cases,)i(Bash)150 1183 y(assigns)f(a)f +(default)h(v)-5 b(alue)31 b(to)g(the)f(v)-5 b(ariable.)150 +1355 y Fs(CDPATH)192 b Ft(A)39 b(colon-separated)i(list)e(of)g +(directories)h(used)f(as)g(a)g(searc)m(h)h(path)e(for)h(the)g +Fs(cd)f Ft(builtin)630 1464 y(command.)150 1632 y Fs(HOME)288 b Ft(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g (for)f(the)h Fs(cd)f Ft(builtin)g(command.)38 b(The)630 -1771 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37 +1742 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37 b(is)g(also)g(used)e(b)m(y)h(tilde)h(expansion)f(\(see)i(Section)f -(3.5.2)h([Tilde)630 1881 y(Expansion],)30 b(page)h(19\).)150 -2037 y Fs(IFS)336 b Ft(A)25 b(list)i(of)e(c)m(haracters)i(that)f +(3.5.2)h([Tilde)630 1852 y(Expansion],)30 b(page)h(19\).)150 +2020 y Fs(IFS)336 b Ft(A)25 b(list)i(of)e(c)m(haracters)i(that)f (separate)g(\014elds;)h(used)e(when)f(the)i(shell)f(splits)h(w)m(ords)e -(as)i(part)630 2147 y(of)31 b(expansion.)150 2303 y Fs(MAIL)288 +(as)i(part)630 2129 y(of)31 b(expansion.)150 2297 y Fs(MAIL)288 b Ft(If)26 b(this)f(parameter)i(is)f(set)g(to)h(a)g(\014lename)f(and)f (the)h Fs(MAILPATH)e Ft(v)-5 b(ariable)27 b(is)f(not)g(set,)i(Bash)630 -2413 y(informs)i(the)g(user)g(of)g(the)h(arriv)-5 b(al)31 +2407 y(informs)i(the)g(user)g(of)g(the)h(arriv)-5 b(al)31 b(of)f(mail)h(in)f(the)h(sp)s(eci\014ed)f(\014le.)150 -2569 y Fs(MAILPATH)96 b Ft(A)33 b(colon-separated)i(list)f(of)f +2575 y Fs(MAILPATH)96 b Ft(A)33 b(colon-separated)i(list)f(of)f (\014lenames)h(whic)m(h)f(the)g(shell)g(p)s(erio)s(dically)h(c)m(hec)m -(ks)g(for)f(new)630 2678 y(mail.)60 b(Eac)m(h)37 b(list)g(en)m(try)g +(ks)g(for)f(new)630 2684 y(mail.)60 b(Eac)m(h)37 b(list)g(en)m(try)g (can)g(sp)s(ecify)f(the)h(message)h(that)f(is)g(prin)m(ted)f(when)f -(new)h(mail)630 2788 y(arriv)m(es)29 b(in)g(the)g(mail)g(\014le)g(b)m +(new)h(mail)630 2794 y(arriv)m(es)29 b(in)g(the)g(mail)g(\014le)g(b)m (y)g(separating)g(the)g(\014le)g(name)g(from)f(the)h(message)h(with)e -(a)i(`)p Fs(?)p Ft('.)630 2898 y(When)i(used)f(in)h(the)g(text)i(of)e +(a)i(`)p Fs(?)p Ft('.)630 2903 y(When)i(used)f(in)h(the)g(text)i(of)e (the)g(message,)i Fs($_)e Ft(expands)f(to)i(the)f(name)g(of)h(the)f -(curren)m(t)630 3007 y(mail)f(\014le.)150 3163 y Fs(OPTARG)192 +(curren)m(t)630 3013 y(mail)f(\014le.)150 3181 y Fs(OPTARG)192 b Ft(The)30 b(v)-5 b(alue)31 b(of)f(the)h(last)g(option)g(argumen)m(t)g (pro)s(cessed)f(b)m(y)g(the)g Fs(getopts)f Ft(builtin.)150 -3320 y Fs(OPTIND)192 b Ft(The)30 b(index)g(of)g(the)h(last)g(option)g +3349 y Fs(OPTIND)192 b Ft(The)30 b(index)g(of)g(the)h(last)g(option)g (argumen)m(t)g(pro)s(cessed)f(b)m(y)g(the)g Fs(getopts)f -Ft(builtin.)150 3476 y Fs(PATH)288 b Ft(A)32 b(colon-separated)i(list)f +Ft(builtin.)150 3517 y Fs(PATH)288 b Ft(A)32 b(colon-separated)i(list)f (of)f(directories)h(in)e(whic)m(h)h(the)g(shell)g(lo)s(oks)h(for)f -(commands.)45 b(A)630 3586 y(zero-length)e(\(n)m(ull\))g(directory)f +(commands.)45 b(A)630 3626 y(zero-length)e(\(n)m(ull\))g(directory)f (name)g(in)g(the)g(v)-5 b(alue)42 b(of)g Fs(PATH)f Ft(indicates)i(the)f -(curren)m(t)630 3695 y(directory)-8 b(.)49 b(A)33 b(n)m(ull)f +(curren)m(t)630 3736 y(directory)-8 b(.)49 b(A)33 b(n)m(ull)f (directory)i(name)e(ma)m(y)i(app)s(ear)e(as)h(t)m(w)m(o)h(adjacen)m(t)g -(colons,)g(or)f(as)g(an)630 3805 y(initial)f(or)e(trailing)h(colon.)150 -3961 y Fs(PS1)336 b Ft(The)35 b(primary)f(prompt)h(string.)55 +(colons,)g(or)f(as)g(an)630 3846 y(initial)f(or)e(trailing)h(colon.)150 +4014 y Fs(PS1)336 b Ft(The)35 b(primary)f(prompt)h(string.)55 b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Fs(\\s-\\v\\$)28 -b Ft('.)56 b(See)36 b(Section)g(6.9)630 4071 y([Prin)m(ting)28 -b(a)g(Prompt],)g(page)h(83,)g(for)e(the)h(complete)h(list)g(of)e(escap) -s(e)h(sequences)g(that)h(are)630 4180 y(expanded)h(b)s(efore)g -Fs(PS1)f Ft(is)h(displa)m(y)m(ed.)150 4336 y Fs(PS2)336 +b Ft('.)56 b(See)36 b(Section)g(6.9)630 4123 y([Prin)m(ting)28 +b(a)g(Prompt],)g(page)h(82,)g(for)e(the)h(complete)h(list)g(of)e(escap) +s(e)h(sequences)g(that)h(are)630 4233 y(expanded)h(b)s(efore)g +Fs(PS1)f Ft(is)h(displa)m(y)m(ed.)150 4401 y Fs(PS2)336 b Ft(The)30 b(secondary)g(prompt)g(string.)41 b(The)29 b(default)i(v)-5 b(alue)31 b(is)f(`)p Fs(>)g Ft('.)150 -4589 y Fr(5.2)68 b(Bash)45 b(V)-11 b(ariables)275 4832 -y Ft(These)36 b(v)-5 b(ariables)38 b(are)g(set)f(or)h(used)e(b)m(y)h -(Bash,)i(but)d(other)i(shells)f(do)g(not)g(normally)h(treat)g(them)150 -4941 y(sp)s(ecially)-8 b(.)275 5074 y(A)24 b(few)g(v)-5 -b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f(in)h -(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25 -b(for)f(con)m(trolling)150 5184 y(the)31 b(job)f(con)m(trol)h +4646 y Fr(5.2)68 b(Bash)45 b(V)-11 b(ariables)150 4805 +y Ft(These)45 b(v)-5 b(ariables)46 b(are)g(set)g(or)f(used)f(b)m(y)h +(Bash,)50 b(but)44 b(other)i(shells)f(do)h(not)f(normally)h(treat)g +(them)150 4915 y(sp)s(ecially)-8 b(.)275 5058 y(A)24 +b(few)g(v)-5 b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f +(in)h(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25 +b(for)f(con)m(trolling)150 5168 y(the)31 b(job)f(con)m(trol)h (facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8 b(ariables],)32 b(page)g(92\).)150 5340 y Fs(BASH)288 b Ft(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t) g(instance)h(of)g(Bash.)p eop end %%Page: 62 68 TeXDict begin 62 67 bop 150 -116 a Ft(62)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(BASHPID)144 b Ft(Expands)36 -b(to)j(the)f(pro)s(cess)g(id)f(of)h(the)g(curren)m(t)g(Bash)g(pro)s -(cess.)63 b(This)37 b(di\013ers)g(from)h Fs($$)630 408 -y Ft(under)31 b(certain)j(circumstances,)h(suc)m(h)e(as)g(subshells)f -(that)i(do)f(not)g(require)g(Bash)g(to)h(b)s(e)630 518 -y(re-initialized.)150 682 y Fs(BASH_ALIASES)630 792 y -Ft(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d(v)-5 b(ariable)41 -b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h -(list)630 902 y(of)g(aliases)h(as)f(main)m(tained)g(b)m(y)g(the)f -Fs(alias)g Ft(builtin)g(\(see)h(Section)h(4.1)f([Bourne)g(Shell)630 -1011 y(Builtins],)36 b(page)e(35\).)53 b(Elemen)m(ts)35 +b(Reference)g(Man)m(ual)150 299 y Fs(BASHOPTS)96 b Ft(A)31 +b(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)41 +b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5 +b(alid)630 408 y(argumen)m(t)33 b(for)g(the)f(`)p Fs(-s)p +Ft(')h(option)g(to)g(the)g Fs(shopt)e Ft(builtin)i(command)f(\(see)i +(Section)f(4.3.2)630 518 y([The)j(Shopt)g(Builtin],)i(page)f(55\).)60 +b(The)36 b(options)h(app)s(earing)f(in)g Fs(BASHOPTS)e +Ft(are)i(those)630 628 y(rep)s(orted)e(as)h(`)p Fs(on)p +Ft(')f(b)m(y)h(`)p Fs(shopt)p Ft('.)53 b(If)34 b(this)g(v)-5 +b(ariable)36 b(is)f(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)630 +737 y(starts)25 b(up,)f(eac)m(h)i(shell)e(option)h(in)e(the)i(list)g +(will)f(b)s(e)g(enabled)g(b)s(efore)g(reading)g(an)m(y)g(startup)630 +847 y(\014les.)41 b(This)29 b(v)-5 b(ariable)31 b(is)g(readonly)-8 +b(.)150 998 y Fs(BASHPID)144 b Ft(Expands)36 b(to)j(the)f(pro)s(cess)g +(id)f(of)h(the)g(curren)m(t)g(Bash)g(pro)s(cess.)63 b(This)37 +b(di\013ers)g(from)h Fs($$)630 1107 y Ft(under)31 b(certain)j +(circumstances,)h(suc)m(h)e(as)g(subshells)f(that)i(do)f(not)g(require) +g(Bash)g(to)h(b)s(e)630 1217 y(re-initialized.)150 1367 +y Fs(BASH_ALIASES)630 1477 y Ft(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d +(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f +(in)m(ternal)h(list)630 1587 y(of)g(aliases)h(as)f(main)m(tained)g(b)m +(y)g(the)f Fs(alias)g Ft(builtin)g(\(see)h(Section)h(4.1)f([Bourne)g +(Shell)630 1696 y(Builtins],)36 b(page)e(35\).)53 b(Elemen)m(ts)35 b(added)e(to)i(this)e(arra)m(y)i(app)s(ear)e(in)h(the)g(alias)h(list;)i -(un-)630 1121 y(setting)31 b(arra)m(y)g(elemen)m(ts)h(cause)f(aliases)h +(un-)630 1806 y(setting)31 b(arra)m(y)g(elemen)m(ts)h(cause)f(aliases)h (to)f(b)s(e)f(remo)m(v)m(ed)h(from)f(the)h(alias)g(list.)150 -1285 y Fs(BASH_ARGC)630 1395 y Ft(An)f(arra)m(y)h(v)-5 +1956 y Fs(BASH_ARGC)630 2066 y Ft(An)f(arra)m(y)h(v)-5 b(ariable)31 b(whose)f(v)-5 b(alues)31 b(are)g(the)f(n)m(um)m(b)s(er)g -(of)g(parameters)h(in)f(eac)m(h)h(frame)g(of)630 1504 +(of)g(parameters)h(in)f(eac)m(h)h(frame)g(of)630 2176 y(the)26 b(curren)m(t)f(bash)g(execution)i(call)g(stac)m(k.)41 b(The)25 b(n)m(um)m(b)s(er)g(of)h(parameters)g(to)g(the)g(curren)m(t) -630 1614 y(subroutine)i(\(shell)i(function)g(or)f(script)g(executed)i +630 2285 y(subroutine)i(\(shell)i(function)g(or)f(script)g(executed)i (with)e Fs(.)g Ft(or)h Fs(source)p Ft(\))e(is)h(at)h(the)g(top)g(of)630 -1724 y(the)37 b(stac)m(k.)63 b(When)37 b(a)h(subroutine)e(is)h +2395 y(the)37 b(stac)m(k.)63 b(When)37 b(a)h(subroutine)e(is)h (executed,)j(the)e(n)m(um)m(b)s(er)d(of)j(parameters)f(passed)630 -1833 y(is)g(pushed)f(on)m(to)i Fs(BASH_ARGC)p Ft(.)59 +2504 y(is)g(pushed)f(on)m(to)i Fs(BASH_ARGC)p Ft(.)59 b(The)37 b(shell)g(sets)h Fs(BASH_ARGC)c Ft(only)k(when)e(in)h -(extended)630 1943 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i -([The)d(Shopt)g(Builtin],)j(page)e(54)h(for)e(a)h(description)630 -2052 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g -Fs(shopt)e Ft(builtin\).)150 2217 y Fs(BASH_ARGV)630 -2326 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f +(extended)630 2614 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i +([The)d(Shopt)g(Builtin],)j(page)e(55)h(for)e(a)h(description)630 +2724 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g +Fs(shopt)e Ft(builtin\).)150 2874 y Fs(BASH_ARGV)630 +2984 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f (of)f(the)h(parameters)f(in)g(the)g(curren)m(t)g(bash)g(execution)630 -2436 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g +3093 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g (the)g(last)h(subroutine)e(call)i(is)f(at)h(the)f(top)h(of)f(the)630 -2545 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i +3203 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i (call)f(is)f(at)h(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630 -2655 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f +3313 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f (on)m(to)i Fs(BASH_ARGV)p Ft(.)66 b(The)40 b(shell)630 -2765 y(sets)28 b Fs(BASH_ARGV)e Ft(only)i(when)f(in)h(extended)g +3422 y(sets)28 b Fs(BASH_ARGV)e Ft(only)i(when)f(in)h(extended)g (debugging)g(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630 -2874 y(Shopt)i(Builtin],)h(page)g(54)g(for)f(a)h(description)f(of)h +3532 y(Shopt)i(Builtin],)h(page)g(55)g(for)f(a)h(description)f(of)h (the)f Fs(extdebug)e Ft(option)j(to)g(the)f Fs(shopt)630 -2984 y Ft(builtin\).)150 3148 y Fs(BASH_CMDS)630 3258 +3641 y Ft(builtin\).)150 3792 y Fs(BASH_CMDS)630 3902 y Ft(An)i(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h -(hash)630 3367 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g +(hash)630 4011 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g (the)f Fs(hash)f Ft(builtin)h(\(see)h(Section)g(4.1)h([Bourne)630 -3477 y(Shell)23 b(Builtins],)j(page)e(35\).)40 b(Elemen)m(ts)24 +4121 y(Shell)23 b(Builtins],)j(page)e(35\).)40 b(Elemen)m(ts)24 b(added)e(to)j(this)e(arra)m(y)h(app)s(ear)e(in)i(the)f(hash)g(table;) -630 3587 y(unsetting)30 b(arra)m(y)h(elemen)m(ts)h(cause)f(commands)f +630 4230 y(unsetting)30 b(arra)m(y)h(elemen)m(ts)h(cause)f(commands)f (to)h(b)s(e)f(remo)m(v)m(ed)h(from)f(the)h(hash)e(table.)150 -3751 y Fs(BASH_COMMAND)630 3861 y Ft(The)39 b(command)h(curren)m(tly)g +4381 y Fs(BASH_COMMAND)630 4491 y Ft(The)39 b(command)h(curren)m(tly)g (b)s(eing)f(executed)i(or)e(ab)s(out)h(to)g(b)s(e)f(executed,)44 -b(unless)39 b(the)630 3970 y(shell)g(is)g(executing)g(a)g(command)g(as) +b(unless)39 b(the)630 4600 y(shell)g(is)g(executing)g(a)g(command)g(as) g(the)f(result)h(of)g(a)g(trap,)i(in)d(whic)m(h)g(case)i(it)f(is)g(the) -630 4080 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.) -150 4244 y Fs(BASH_ENV)96 b Ft(If)28 b(this)g(v)-5 b(ariable)30 +630 4710 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.) +150 4861 y Fs(BASH_ENV)96 b Ft(If)28 b(this)g(v)-5 b(ariable)30 b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e -(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 4354 +(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 4970 y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g -(to)h(read)f(b)s(efore)g(executing)i(the)630 4463 y(script.)41 +(to)h(read)f(b)s(efore)g(executing)i(the)630 5080 y(script.)41 b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(73.)150 -4628 y Fs(BASH_EXECUTION_STRING)630 4737 y Ft(The)f(command)g(argumen)m -(t)h(to)g(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option.)150 -4902 y Fs(BASH_LINENO)630 5011 y Ft(An)38 b(arra)m(y)h(v)-5 -b(ariable)39 b(whose)g(mem)m(b)s(ers)e(are)i(the)g(line)g(n)m(um)m(b)s -(ers)e(in)h(source)h(\014les)f(corre-)630 5121 y(sp)s(onding)h(to)i -(eac)m(h)g(mem)m(b)s(er)e(of)i Fq(FUNCNAME)p Ft(.)g Fs -(${BASH_LINENO[$i]})35 b Ft(is)40 b(the)h(line)630 5230 -y(n)m(um)m(b)s(er)47 b(in)h(the)g(source)h(\014le)f(where)g -Fs(${FUNCNAME[$i]})c Ft(w)m(as)49 b(called)g(\(or)g Fs(${BASH_)630 -5340 y(LINENO[$i-1]})22 b Ft(if)j(referenced)g(within)f(another)i -(shell)f(function\).)39 b(The)25 b(corresp)s(onding)p +5230 y Fs(BASH_EXECUTION_STRING)630 5340 y Ft(The)f(command)g(argumen)m +(t)h(to)g(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option.)p eop end %%Page: 63 69 TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(63)630 299 y(source)24 -b(\014le)h(name)f(is)g Fs(${BASH_SOURCE[$i]})p Ft(.)34 -b(Use)25 b Fs(LINENO)d Ft(to)j(obtain)g(the)g(curren)m(t)f(line)630 -408 y(n)m(um)m(b)s(er.)150 581 y Fs(BASH_REMATCH)630 -691 y Ft(An)43 b(arra)m(y)i(v)-5 b(ariable)44 b(whose)g(mem)m(b)s(ers)f -(are)h(assigned)g(b)m(y)f(the)h(`)p Fs(=~)p Ft(')g(binary)f(op)s -(erator)630 800 y(to)37 b(the)f Fs([[)g Ft(conditional)i(command)e -(\(see)h(Section)g(3.2.4.2)i([Conditional)e(Constructs],)630 -910 y(page)e(10\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f -(the)g(p)s(ortion)f(of)h(the)g(string)g(matc)m(hing)h(the)630 -1020 y(en)m(tire)29 b(regular)f(expression.)40 b(The)27 -b(elemen)m(t)j(with)d(index)h Fq(n)f Ft(is)h(the)g(p)s(ortion)g(of)g -(the)g(string)630 1129 y(matc)m(hing)j(the)g Fq(n)p Ft(th)f(paren)m -(thesized)h(sub)s(expression.)39 b(This)29 b(v)-5 b(ariable)31 -b(is)g(read-only)-8 b(.)150 1302 y Fs(BASH_SOURCE)630 -1412 y Ft(An)24 b(arra)m(y)h(v)-5 b(ariable)26 b(whose)e(mem)m(b)s(ers) -g(are)h(the)g(source)f(\014lenames)h(corresp)s(onding)e(to)j(the)630 -1521 y(elemen)m(ts)32 b(in)e(the)g Fs(FUNCNAME)e Ft(arra)m(y)j(v)-5 -b(ariable.)150 1694 y Fs(BASH_SUBSHELL)630 1804 y Ft(Incremen)m(ted)34 +b(Shell)30 b(V)-8 b(ariables)2459 b(63)150 299 y Fs(BASH_LINENO)630 +408 y Ft(An)38 b(arra)m(y)h(v)-5 b(ariable)39 b(whose)g(mem)m(b)s(ers)e +(are)i(the)g(line)g(n)m(um)m(b)s(ers)e(in)h(source)h(\014les)f(corre-) +630 518 y(sp)s(onding)g(to)i(eac)m(h)h(mem)m(b)s(er)e(of)h +Fq(FUNCNAME)5 b Ft(.)41 b Fs(${BASH_LINENO[$i]})34 b +Ft(is)40 b(the)g(line)630 628 y(n)m(um)m(b)s(er)47 b(in)h(the)g(source) +h(\014le)f(where)g Fs(${FUNCNAME[$i]})c Ft(w)m(as)49 +b(called)g(\(or)g Fs(${BASH_)630 737 y(LINENO[$i-1]})22 +b Ft(if)j(referenced)g(within)f(another)i(shell)f(function\).)39 +b(The)25 b(corresp)s(onding)630 847 y(source)f(\014le)h(name)f(is)g +Fs(${BASH_SOURCE[$i]})p Ft(.)34 b(Use)25 b Fs(LINENO)d +Ft(to)j(obtain)g(the)g(curren)m(t)f(line)630 956 y(n)m(um)m(b)s(er.)150 +1112 y Fs(BASH_REMATCH)630 1221 y Ft(An)43 b(arra)m(y)i(v)-5 +b(ariable)44 b(whose)g(mem)m(b)s(ers)f(are)h(assigned)g(b)m(y)f(the)h +(`)p Fs(=~)p Ft(')g(binary)f(op)s(erator)630 1331 y(to)37 +b(the)f Fs([[)g Ft(conditional)i(command)e(\(see)h(Section)g(3.2.4.2)i +([Conditional)e(Constructs],)630 1440 y(page)e(10\).)52 +b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f(the)g(p)s(ortion)f(of)h +(the)g(string)g(matc)m(hing)h(the)630 1550 y(en)m(tire)29 +b(regular)f(expression.)40 b(The)27 b(elemen)m(t)j(with)d(index)h +Fq(n)f Ft(is)h(the)g(p)s(ortion)g(of)g(the)g(string)630 +1660 y(matc)m(hing)j(the)g Fq(n)p Ft(th)f(paren)m(thesized)h(sub)s +(expression.)39 b(This)29 b(v)-5 b(ariable)31 b(is)g(read-only)-8 +b(.)150 1815 y Fs(BASH_SOURCE)630 1924 y Ft(An)24 b(arra)m(y)h(v)-5 +b(ariable)26 b(whose)e(mem)m(b)s(ers)g(are)h(the)g(source)f +(\014lenames)h(corresp)s(onding)e(to)j(the)630 2034 y(elemen)m(ts)32 +b(in)e(the)g Fs(FUNCNAME)e Ft(arra)m(y)j(v)-5 b(ariable.)150 +2189 y Fs(BASH_SUBSHELL)630 2299 y Ft(Incremen)m(ted)34 b(b)m(y)h(one)f(eac)m(h)i(time)f(a)f(subshell)g(or)g(subshell)f(en)m -(vironmen)m(t)i(is)f(spa)m(wned.)630 1913 y(The)c(initial)h(v)-5 -b(alue)31 b(is)g(0.)150 2086 y Fs(BASH_VERSINFO)630 2196 +(vironmen)m(t)i(is)f(spa)m(wned.)630 2408 y(The)c(initial)h(v)-5 +b(alue)31 b(is)g(0.)150 2564 y Fs(BASH_VERSINFO)630 2673 y Ft(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37 b(\(see)f(Section)h (6.7)g([Arra)m(ys],)h(page)e(80\))h(whose)f(mem)m(b)s(ers)630 -2305 y(hold)c(v)m(ersion)h(information)f(for)g(this)g(instance)h(of)g +2783 y(hold)c(v)m(ersion)h(information)f(for)g(this)g(instance)h(of)g (Bash.)46 b(The)32 b(v)-5 b(alues)32 b(assigned)h(to)g(the)630 -2415 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g(follo)m(ws:)630 -2588 y Fs(BASH_VERSINFO[0])1110 2697 y Ft(The)f(ma)5 +2892 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g(follo)m(ws:)630 +3048 y Fs(BASH_VERSINFO[0])1110 3157 y Ft(The)f(ma)5 b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fq(release)5 -b Ft(\).)630 2870 y Fs(BASH_VERSINFO[1])1110 2980 y Ft(The)30 +b Ft(\).)630 3313 y Fs(BASH_VERSINFO[1])1110 3422 y Ft(The)30 b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fq(v)m(ersion)p -Ft(\).)630 3153 y Fs(BASH_VERSINFO[2])1110 3262 y Ft(The)f(patc)m(h)h -(lev)m(el.)630 3435 y Fs(BASH_VERSINFO[3])1110 3545 y -Ft(The)f(build)f(v)m(ersion.)630 3718 y Fs(BASH_VERSINFO[4])1110 -3827 y Ft(The)h(release)i(status)e(\(e.g.,)j Fq(b)s(eta1)7 -b Ft(\).)630 4000 y Fs(BASH_VERSINFO[5])1110 4110 y Ft(The)30 -b(v)-5 b(alue)31 b(of)f Fs(MACHTYPE)p Ft(.)150 4282 y -Fs(BASH_VERSION)630 4392 y Ft(The)g(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h -(the)h(curren)m(t)f(instance)h(of)g(Bash.)150 4565 y -Fs(COLUMNS)144 b Ft(Used)36 b(b)m(y)h(the)f Fs(select)f +Ft(\).)630 3577 y Fs(BASH_VERSINFO[2])1110 3687 y Ft(The)f(patc)m(h)h +(lev)m(el.)630 3842 y Fs(BASH_VERSINFO[3])1110 3952 y +Ft(The)f(build)f(v)m(ersion.)630 4107 y Fs(BASH_VERSINFO[4])1110 +4217 y Ft(The)h(release)i(status)e(\(e.g.,)j Fq(b)s(eta1)7 +b Ft(\).)630 4372 y Fs(BASH_VERSINFO[5])1110 4482 y Ft(The)30 +b(v)-5 b(alue)31 b(of)f Fs(MACHTYPE)p Ft(.)150 4637 y +Fs(BASH_VERSION)630 4746 y Ft(The)g(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h +(the)h(curren)m(t)f(instance)h(of)g(Bash.)150 4902 y +Fs(BASH_XTRACEFD)630 5011 y Ft(If)f(set)h(to)h(an)e(in)m(teger)i +(corresp)s(onding)e(to)h(a)g(v)-5 b(alid)31 b(\014le)g(descriptor,)g +(Bash)g(will)g(write)g(the)630 5121 y(trace)37 b(output)f(generated)h +(when)f(`)p Fs(set)29 b(-x)p Ft(')36 b(is)g(enabled)h(to)g(that)f +(\014le)h(descriptor.)58 b(This)630 5230 y(allo)m(ws)29 +b(tracing)h(output)d(to)i(b)s(e)f(separated)g(from)g(diagnostic)h(and)f +(error)f(messages.)41 b(The)630 5340 y(\014le)31 b(descriptor)f(is)h +(closed)g(when)f Fs(BASH_XTRACEFD)d Ft(is)k(unset)f(or)g(assigned)h(a)g +(new)f(v)-5 b(alue.)p eop end +%%Page: 64 70 +TeXDict begin 64 69 bop 150 -116 a Ft(64)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y(Unsetting)45 b Fs(BASH_XTRACEFD)40 +b Ft(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f +(trace)630 408 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g +(standard)e(error.)50 b(Note)35 b(that)g(setting)f Fs(BASH_XTRACEFD)c +Ft(to)630 518 y(2)39 b(\(the)h(standard)e(error)g(\014le)h +(descriptor\))h(and)e(then)h(unsetting)g(it)g(will)g(result)g(in)g(the) +630 628 y(standard)30 b(error)g(b)s(eing)f(closed.)150 +819 y Fs(COLUMNS)144 b Ft(Used)36 b(b)m(y)h(the)f Fs(select)f Ft(builtin)h(command)h(to)g(determine)f(the)h(terminal)g(width)f(when) -630 4674 y(prin)m(ting)30 b(selection)i(lists.)42 b(Automatically)33 +630 929 y(prin)m(ting)30 b(selection)i(lists.)42 b(Automatically)33 b(set)e(up)s(on)d(receipt)k(of)e(a)h Fs(SIGWINCH)p Ft(.)150 -4847 y Fs(COMP_CWORD)630 4957 y Ft(An)38 b(index)g(in)m(to)h +1121 y Fs(COMP_CWORD)630 1230 y Ft(An)38 b(index)g(in)m(to)h Fs(${COMP_WORDS})c Ft(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e -(curren)m(t)g(cursor)g(p)s(o-)630 5066 y(sition.)72 b(This)40 +(curren)m(t)g(cursor)g(p)s(o-)630 1340 y(sition.)72 b(This)40 b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h (functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630 -5176 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g -([Programmable)g(Completion],)630 5286 y(page)31 b(115\).)p -eop end -%%Page: 64 70 -TeXDict begin 64 69 bop 150 -116 a Ft(64)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(COMP_LINE)630 408 -y Ft(The)38 b(curren)m(t)h(command)f(line.)66 b(This)37 -b(v)-5 b(ariable)40 b(is)f(a)m(v)-5 b(ailable)41 b(only)d(in)h(shell)f -(functions)630 518 y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h -(b)m(y)f(the)h(programmable)f(completion)i(facilities)g(\(see)630 -628 y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(115\).)150 -778 y Fs(COMP_POINT)630 888 y Ft(The)25 b(index)g(of)h(the)g(curren)m +1450 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g +([Programmable)g(Completion],)630 1559 y(page)31 b(115\).)150 +1751 y Fs(COMP_LINE)630 1861 y Ft(The)38 b(curren)m(t)h(command)f +(line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5 +b(ailable)41 b(only)d(in)h(shell)f(functions)630 1970 +y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h +(programmable)f(completion)i(facilities)g(\(see)630 2080 +y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(115\).)150 +2271 y Fs(COMP_POINT)630 2381 y Ft(The)25 b(index)g(of)h(the)g(curren)m (t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of) -g(the)h(curren)m(t)630 998 y(command.)40 b(If)27 b(the)h(curren)m(t)g +g(the)h(curren)m(t)630 2491 y(command.)40 b(If)27 b(the)h(curren)m(t)g (cursor)g(p)s(osition)g(is)g(at)g(the)g(end)g(of)g(the)g(curren)m(t)g -(command,)630 1107 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5 +(command,)630 2600 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5 b(ariable)31 b(is)f(equal)g(to)h Fs(${#COMP_LINE})p Ft(.)37 b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630 -1217 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g -(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 1326 +2710 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g +(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 2819 y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g -(Completion],)h(page)f(115\).)150 1477 y Fs(COMP_TYPE)630 -1587 y Ft(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28 +(Completion],)h(page)f(115\).)150 3011 y Fs(COMP_TYPE)630 +3121 y Ft(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28 b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h -(attempted)g(that)630 1696 y(caused)e(a)h(completion)h(function)e(to)h -(b)s(e)f(called:)40 b Fq(T)-8 b(AB)p Ft(,)27 b(for)f(normal)h -(completion,)i(`)p Fs(?)p Ft(',)e(for)630 1806 y(listing)35 +(attempted)g(that)630 3230 y(caused)e(a)g(completion)i(function)d(to)i +(b)s(e)e(called:)40 b Fq(T)-8 b(AB)5 b Ft(,)27 b(for)f(normal)g +(completion,)i(`)p Fs(?)p Ft(',)f(for)630 3340 y(listing)35 b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Fs(!)p Ft(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630 -1915 y(w)m(ord)22 b(completion,)k(`)p Fs(@)p Ft(',)f(to)e(list)g +3450 y(w)m(ord)22 b(completion,)k(`)p Fs(@)p Ft(',)f(to)e(list)g (completions)h(if)f(the)g(w)m(ord)f(is)h(not)g(unmo)s(di\014ed,)f(or)h -(`)p Fs(\045)p Ft(',)h(for)630 2025 y(men)m(u)i(completion.)41 +(`)p Fs(\045)p Ft(',)h(for)630 3559 y(men)m(u)i(completion.)41 b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28 b(only)f(in)f(shell)g(functions)g(and)g(external)630 -2134 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h +3669 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h (completion)g(facilities)i(\(see)e(Section)g(8.6)630 -2244 y([Programmable)e(Completion],)h(page)f(115\).)150 -2395 y Fs(COMP_KEY)96 b Ft(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i +3778 y([Programmable)e(Completion],)h(page)f(115\).)150 +3970 y Fs(COMP_KEY)96 b Ft(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i (of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e -(curren)m(t)g(completion)630 2504 y(function.)150 2655 -y Fs(COMP_WORDBREAKS)630 2765 y Ft(The)f(set)i(of)e(c)m(haracters)j +(curren)m(t)g(completion)630 4080 y(function.)150 4271 +y Fs(COMP_WORDBREAKS)630 4381 y Ft(The)f(set)i(of)e(c)m(haracters)j (that)e(the)g(Readline)g(library)g(treats)g(as)g(w)m(ord)g(separators)g -(when)630 2874 y(p)s(erforming)i(w)m(ord)h(completion.)51 +(when)630 4491 y(p)s(erforming)i(w)m(ord)h(completion.)51 b(If)33 b Fs(COMP_WORDBREAKS)c Ft(is)34 b(unset,)g(it)f(loses)i(its)e -(sp)s(ecial)630 2984 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g -(subsequen)m(tly)f(reset.)150 3134 y Fs(COMP_WORDS)630 -3244 y Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the) +(sp)s(ecial)630 4600 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g +(subsequen)m(tly)f(reset.)150 4792 y Fs(COMP_WORDS)630 +4902 y Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the) g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630 -3354 y(line.)76 b(The)41 b(w)m(ords)h(are)g(split)h(on)e(shell)i(metac) -m(haracters)h(as)e(the)h(shell)f(parser)f(w)m(ould)630 -3463 y(separate)31 b(them.)40 b(This)29 b(v)-5 b(ariable)30 -b(is)g(a)m(v)-5 b(ailable)32 b(only)d(in)g(shell)h(functions)f(in)m(v)m -(ok)m(ed)i(b)m(y)f(the)630 3573 y(programmable)42 b(completion)h -(facilities)h(\(see)e(Section)h(8.6)f([Programmable)h(Comple-)630 -3682 y(tion],)31 b(page)g(115\).)150 3833 y Fs(COMPREPLY)630 -3943 y Ft(An)37 b(arra)m(y)h(v)-5 b(ariable)38 b(from)f(whic)m(h)g -(Bash)g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630 -4052 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f -(the)g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630 -4162 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(115\).)150 -4313 y Fs(DIRSTACK)96 b Ft(An)26 b(arra)m(y)h(v)-5 b(ariable)28 +5011 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as) +h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Fs(COMP_)630 +5121 y(WORDBREAKS)34 b Ft(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60 +b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39 +b(only)e(in)f(shell)h(func-)630 5230 y(tions)32 b(in)m(v)m(ok)m(ed)i(b) +m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g +(8.6)g([Pro-)630 5340 y(grammable)e(Completion],)g(page)g(115\).)p +eop end +%%Page: 65 71 +TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(65)150 299 y Fs(COMPREPLY)630 +408 y Ft(An)37 b(arra)m(y)h(v)-5 b(ariable)38 b(from)f(whic)m(h)g(Bash) +g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630 +518 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the) +g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630 +628 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(115\).)150 +774 y Fs(DIRSTACK)96 b Ft(An)26 b(arra)m(y)h(v)-5 b(ariable)28 b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f -(directory)i(stac)m(k.)41 b(Direc-)630 4422 y(tories)33 +(directory)i(stac)m(k.)41 b(Direc-)630 883 y(tories)33 b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e(the)h(order)f(they)h(are)g (displa)m(y)m(ed)g(b)m(y)f(the)h Fs(dirs)e Ft(builtin.)630 -4532 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5 +993 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)s(dify)e(directories)630 -4641 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h +1103 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h Fs(pushd)e Ft(and)h Fs(popd)f Ft(builtins)h(m)m(ust)h(b)s(e)e(used)h -(to)i(add)630 4751 y(and)37 b(remo)m(v)m(e)h(directories.)63 +(to)i(add)630 1212 y(and)37 b(remo)m(v)m(e)h(directories.)63 b(Assignmen)m(t)37 b(to)h(this)f(v)-5 b(ariable)38 b(will)g(not)f(c)m -(hange)i(the)e(cur-)630 4861 y(ren)m(t)c(directory)-8 +(hange)i(the)e(cur-)630 1322 y(ren)m(t)c(directory)-8 b(.)47 b(If)32 b Fs(DIRSTACK)e Ft(is)i(unset,)g(it)h(loses)g(its)g(sp)s (ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)630 -4970 y(subsequen)m(tly)d(reset.)150 5121 y Fs(EMACS)240 +1431 y(subsequen)m(tly)d(reset.)150 1577 y Fs(EMACS)240 b Ft(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32 b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f -(v)-5 b(alue)630 5230 y(`)p Fs(t)p Ft(',)38 b(it)e(assumes)g(that)g +(v)-5 b(alue)630 1687 y(`)p Fs(t)p Ft(',)38 b(it)e(assumes)g(that)g (the)h(shell)f(is)g(running)e(in)i(an)g(emacs)g(shell)h(bu\013er)e(and) -g(disables)630 5340 y(line)c(editing.)p eop end -%%Page: 65 71 -TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(65)150 299 y Fs(EUID)288 +g(disables)630 1797 y(line)c(editing.)150 1943 y Fs(EUID)288 b Ft(The)30 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d(id)g(of)g(the)h (curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31 -b(is)f(readonly)-8 b(.)150 463 y Fs(FCEDIT)192 b Ft(The)30 +b(is)f(readonly)-8 b(.)150 2089 y Fs(FCEDIT)192 b Ft(The)30 b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f(`)p Fs(-e)p Ft(')g(option)h(to)g(the)g Fs(fc)f Ft(builtin)g(command.)150 -628 y Fs(FIGNORE)144 b Ft(A)35 b(colon-separated)i(list)f(of)g +2235 y Fs(FIGNORE)144 b Ft(A)35 b(colon-separated)i(list)f(of)g (su\016xes)e(to)i(ignore)g(when)e(p)s(erforming)g(\014lename)i(comple-) -630 737 y(tion.)j(A)25 b(\014le)g(name)g(whose)f(su\016x)g(matc)m(hes)i -(one)f(of)g(the)g(en)m(tries)g(in)g Fs(FIGNORE)d Ft(is)j(excluded)630 -847 y(from)30 b(the)g(list)h(of)g(matc)m(hed)g(\014le)g(names.)40 +630 2345 y(tion.)j(A)25 b(\014le)g(name)g(whose)f(su\016x)g(matc)m(hes) +i(one)f(of)g(the)g(en)m(tries)g(in)g Fs(FIGNORE)d Ft(is)j(excluded)630 +2454 y(from)30 b(the)g(list)h(of)g(matc)m(hed)g(\014le)g(names.)40 b(A)31 b(sample)f(v)-5 b(alue)31 b(is)g(`)p Fs(.o:~)p -Ft(')150 1011 y Fs(FUNCNAME)96 b Ft(An)35 b(arra)m(y)i(v)-5 +Ft(')150 2600 y Fs(FUNCNAME)96 b Ft(An)35 b(arra)m(y)i(v)-5 b(ariable)36 b(con)m(taining)h(the)f(names)g(of)g(all)g(shell)g -(functions)g(curren)m(tly)f(in)h(the)630 1121 y(execution)g(call)h +(functions)g(curren)m(tly)f(in)h(the)630 2710 y(execution)g(call)h (stac)m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g -(name)h(of)f(an)m(y)h(curren)m(tly-)630 1230 y(executing)i(shell)f +(name)h(of)f(an)m(y)h(curren)m(tly-)630 2819 y(executing)i(shell)f (function.)61 b(The)36 b(b)s(ottom-most)i(elemen)m(t)h(is)e -Fs("main")p Ft(.)59 b(This)36 b(v)-5 b(ariable)630 1340 +Fs("main")p Ft(.)59 b(This)36 b(v)-5 b(ariable)630 2929 y(exists)33 b(only)g(when)f(a)h(shell)g(function)f(is)h(executing.)49 b(Assignmen)m(ts)33 b(to)g Fs(FUNCNAME)e Ft(ha)m(v)m(e)630 -1450 y(no)36 b(e\013ect)h(and)e(return)f(an)i(error)f(status.)57 +3039 y(no)36 b(e\013ect)h(and)e(return)f(an)i(error)f(status.)57 b(If)36 b Fs(FUNCNAME)d Ft(is)j(unset,)h(it)f(loses)g(its)g(sp)s(ecial) -630 1559 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m -(tly)f(reset.)150 1724 y Fs(GLOBIGNORE)630 1833 y Ft(A)38 +630 3148 y(prop)s(erties,)30 b(ev)m(en)h(if)f(it)h(is)g(subsequen)m +(tly)f(reset.)150 3294 y Fs(GLOBIGNORE)630 3404 y Ft(A)38 b(colon-separated)i(list)f(of)f(patterns)g(de\014ning)f(the)h(set)g(of) -h(\014lenames)f(to)g(b)s(e)g(ignored)630 1943 y(b)m(y)31 +h(\014lenames)f(to)g(b)s(e)g(ignored)630 3513 y(b)m(y)31 b(\014lename)g(expansion.)43 b(If)31 b(a)h(\014lename)f(matc)m(hed)h(b) -m(y)f(a)g(\014lename)h(expansion)f(pattern)630 2052 y(also)i(matc)m +m(y)f(a)g(\014lename)h(expansion)f(pattern)630 3623 y(also)i(matc)m (hes)g(one)f(of)g(the)g(patterns)g(in)f Fs(GLOBIGNORE)p Ft(,)f(it)i(is)g(remo)m(v)m(ed)h(from)e(the)h(list)h(of)630 -2162 y(matc)m(hes.)150 2326 y Fs(GROUPS)192 b Ft(An)36 +3733 y(matc)m(hes.)150 3879 y Fs(GROUPS)192 b Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(con)m(taining)g(the)f(list)h(of)f (groups)g(of)g(whic)m(h)f(the)i(curren)m(t)e(user)h(is)g(a)630 -2436 y(mem)m(b)s(er.)47 b(Assignmen)m(ts)33 b(to)g Fs(GROUPS)e +3988 y(mem)m(b)s(er.)47 b(Assignmen)m(ts)33 b(to)g Fs(GROUPS)e Ft(ha)m(v)m(e)j(no)f(e\013ect)h(and)e(return)g(an)g(error)g(status.)48 -b(If)630 2545 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s +b(If)630 4098 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s (ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f -(reset.)150 2710 y Fs(histchars)630 2819 y Ft(Up)c(to)g(three)g(c)m +(reset.)150 4244 y Fs(histchars)630 4354 y Ft(Up)c(to)g(three)g(c)m (haracters)i(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g -(substitution,)g(and)630 2929 y(tok)m(enization)k(\(see)f(Section)f +(substitution,)g(and)630 4463 y(tok)m(enization)k(\(see)f(Section)f (9.3)h([History)f(In)m(teraction],)i(page)f(123\).)41 -b(The)29 b(\014rst)e(c)m(harac-)630 3039 y(ter)j(is)f(the)g +b(The)29 b(\014rst)e(c)m(harac-)630 4573 y(ter)j(is)f(the)g Fq(history)g(expansion)g Ft(c)m(haracter,)j(that)e(is,)f(the)h(c)m -(haracter)h(whic)m(h)d(signi\014es)i(the)630 3148 y(start)25 +(haracter)h(whic)m(h)d(signi\014es)i(the)630 4682 y(start)25 b(of)f(a)h(history)f(expansion,)i(normally)e(`)p Fs(!)p Ft('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630 -3258 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f +4792 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f (seen)h(as)g(the)g(\014rst)f(c)m(haracter)j(on)e(a)g(line,)630 -3367 y(normally)27 b(`)p Fs(^)p Ft('.)39 b(The)26 b(optional)i(third)d +4902 y(normally)27 b(`)p Fs(^)p Ft('.)39 b(The)26 b(optional)i(third)d (c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that) -630 3477 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h +630 5011 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h (when)e(found)f(as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630 -3587 y(w)m(ord,)i(usually)f(`)p Fs(#)p Ft('.)55 b(The)34 +5121 y(w)m(ord,)i(usually)f(`)p Fs(#)p Ft('.)55 b(The)34 b(history)h(commen)m(t)h(c)m(haracter)h(causes)e(history)g -(substitution)630 3696 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f +(substitution)630 5230 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f (remaining)h(w)m(ords)f(on)h(the)f(line.)40 b(It)27 b(do)s(es)f(not)h -(necessarily)g(cause)630 3806 y(the)k(shell)f(parser)g(to)h(treat)g -(the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)150 -3970 y Fs(HISTCMD)144 b Ft(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f -(index)g(in)h(the)g(history)f(list,)j(of)e(the)g(curren)m(t)f(command.) -56 b(If)630 4080 y Fs(HISTCMD)28 b Ft(is)h(unset,)h(it)g(loses)h(its)f -(sp)s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)g(subsequen)m -(tly)f(reset.)150 4244 y Fs(HISTCONTROL)630 4354 y Ft(A)40 -b(colon-separated)i(list)f(of)f(v)-5 b(alues)40 b(con)m(trolling)i(ho)m -(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 4463 -y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5 -b(alues)29 b(includes)f(`)p Fs(ignorespace)p Ft(',)f(lines)i(whic)m(h)g -(b)s(egin)f(with)630 4573 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g -(sa)m(v)m(ed)g(in)g(the)g(history)f(list.)66 b(A)39 b(v)-5 -b(alue)39 b(of)g(`)p Fs(ignoredups)p Ft(')630 4682 y(causes)34 -b(lines)h(whic)m(h)f(matc)m(h)h(the)f(previous)f(history)h(en)m(try)h -(to)g(not)f(b)s(e)f(sa)m(v)m(ed.)53 b(A)34 b(v)-5 b(alue)630 -4792 y(of)32 b(`)p Fs(ignoreboth)p Ft(')d(is)j(shorthand)e(for)i(`)p -Fs(ignorespace)p Ft(')d(and)i(`)p Fs(ignoredups)p Ft('.)42 -b(A)32 b(v)-5 b(alue)32 b(of)630 4902 y(`)p Fs(erasedups)p -Ft(')f(causes)i(all)h(previous)f(lines)g(matc)m(hing)h(the)f(curren)m -(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 5011 y(from)42 -b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g(sa)m(v)m(ed.)78 -b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s(o)m(v)m(e)630 -5121 y(list)35 b(is)g(ignored.)53 b(If)34 b Fs(HISTCONTROL)e -Ft(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h(v)-5 -b(alid)35 b(v)-5 b(alue,)36 b(all)630 5230 y(lines)30 +(necessarily)g(cause)630 5340 y(the)k(shell)f(parser)g(to)h(treat)g +(the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)p +eop end +%%Page: 66 72 +TeXDict begin 66 71 bop 150 -116 a Ft(66)2572 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y Fs(HISTCMD)144 b Ft(The)35 +b(history)h(n)m(um)m(b)s(er,)g(or)f(index)g(in)h(the)g(history)f(list,) +j(of)e(the)g(curren)m(t)f(command.)56 b(If)630 408 y +Fs(HISTCMD)28 b Ft(is)h(unset,)h(it)g(loses)h(its)f(sp)s(ecial)g(prop)s +(erties,)g(ev)m(en)g(if)g(it)g(is)g(subsequen)m(tly)f(reset.)150 +552 y Fs(HISTCONTROL)630 661 y Ft(A)40 b(colon-separated)i(list)f(of)f +(v)-5 b(alues)40 b(con)m(trolling)i(ho)m(w)e(commands)g(are)h(sa)m(v)m +(ed)g(on)f(the)630 771 y(history)29 b(list.)41 b(If)28 +b(the)h(list)h(of)f(v)-5 b(alues)29 b(includes)f(`)p +Fs(ignorespace)p Ft(',)f(lines)i(whic)m(h)g(b)s(egin)f(with)630 +881 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g(sa)m(v)m(ed)g(in)g(the) +g(history)f(list.)66 b(A)39 b(v)-5 b(alue)39 b(of)g(`)p +Fs(ignoredups)p Ft(')630 990 y(causes)34 b(lines)h(whic)m(h)f(matc)m(h) +h(the)f(previous)f(history)h(en)m(try)h(to)g(not)f(b)s(e)f(sa)m(v)m +(ed.)53 b(A)34 b(v)-5 b(alue)630 1100 y(of)32 b(`)p Fs(ignoreboth)p +Ft(')d(is)j(shorthand)e(for)i(`)p Fs(ignorespace)p Ft(')d(and)i(`)p +Fs(ignoredups)p Ft('.)42 b(A)32 b(v)-5 b(alue)32 b(of)630 +1209 y(`)p Fs(erasedups)p Ft(')f(causes)i(all)h(previous)f(lines)g +(matc)m(hing)h(the)f(curren)m(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 +1319 y(from)42 b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g +(sa)m(v)m(ed.)78 b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s +(o)m(v)m(e)630 1428 y(list)35 b(is)g(ignored.)53 b(If)34 +b Fs(HISTCONTROL)e Ft(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h +(v)-5 b(alid)35 b(v)-5 b(alue,)36 b(all)630 1538 y(lines)30 b(read)g(b)m(y)g(the)g(shell)g(parser)g(are)g(sa)m(v)m(ed)h(on)f(the)g (history)g(list,)h(sub)5 b(ject)30 b(to)g(the)g(v)-5 -b(alue)630 5340 y(of)42 b Fs(HISTIGNORE)p Ft(.)73 b(The)42 +b(alue)630 1648 y(of)42 b Fs(HISTIGNORE)p Ft(.)73 b(The)42 b(second)g(and)g(subsequen)m(t)f(lines)h(of)h(a)f(m)m(ulti-line)h(comp) -s(ound)p eop end -%%Page: 66 72 -TeXDict begin 66 71 bop 150 -116 a Ft(66)2572 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(command)i(are)h(not)g(tested,)i(and)d -(are)h(added)f(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5 -b(alue)630 408 y(of)31 b Fs(HISTCONTROL)p Ft(.)150 553 -y Fs(HISTFILE)96 b Ft(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m -(h)f(the)g(command)f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27 -b(default)h(v)-5 b(alue)630 662 y(is)30 b(`)p Fs(~/.bash_history)p -Ft('.)150 806 y Fs(HISTFILESIZE)630 916 y Ft(The)c(maxim)m(um)f(n)m(um) -m(b)s(er)g(of)h(lines)h(con)m(tained)g(in)f(the)g(history)g(\014le.)39 -b(When)26 b(this)g(v)-5 b(ariable)630 1026 y(is)33 b(assigned)h(a)g(v) +s(ound)630 1757 y(command)33 b(are)h(not)g(tested,)i(and)d(are)h(added) +f(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5 b(alue)630 +1867 y(of)31 b Fs(HISTCONTROL)p Ft(.)150 2010 y Fs(HISTFILE)96 +b Ft(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command) +f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27 b(default)h(v)-5 +b(alue)630 2120 y(is)30 b(`)p Fs(~/.bash_history)p Ft('.)150 +2263 y Fs(HISTFILESIZE)630 2373 y Ft(The)c(maxim)m(um)f(n)m(um)m(b)s +(er)g(of)h(lines)h(con)m(tained)g(in)f(the)g(history)g(\014le.)39 +b(When)26 b(this)g(v)-5 b(ariable)630 2482 y(is)33 b(assigned)h(a)g(v) -5 b(alue,)35 b(the)f(history)f(\014le)g(is)h(truncated,)g(if)g (necessary)-8 b(,)35 b(b)m(y)e(remo)m(ving)i(the)630 -1135 y(oldest)29 b(en)m(tries,)g(to)g(con)m(tain)g(no)f(more)g(than)f +2592 y(oldest)29 b(en)m(tries,)g(to)g(con)m(tain)g(no)f(more)g(than)f (that)i(n)m(um)m(b)s(er)e(of)h(lines.)40 b(The)27 b(history)h(\014le)g -(is)630 1245 y(also)33 b(truncated)e(to)h(this)g(size)g(after)g +(is)630 2701 y(also)33 b(truncated)e(to)h(this)g(size)g(after)g (writing)g(it)g(when)f(an)g(in)m(teractiv)m(e)k(shell)c(exits.)45 -b(The)630 1354 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150 -1499 y Fs(HISTIGNORE)630 1608 y Ft(A)i(colon-separated)h(list)f(of)g +b(The)630 2811 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150 +2954 y Fs(HISTIGNORE)630 3064 y Ft(A)i(colon-separated)h(list)f(of)g (patterns)f(used)g(to)h(decide)g(whic)m(h)f(command)g(lines)h(should) -630 1718 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47 +630 3173 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47 b(Eac)m(h)33 b(pattern)g(is)f(anc)m(hored)h(at)g(the)f(b)s(eginning)g -(of)h(the)630 1827 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g +(of)h(the)630 3283 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g (complete)h(line)e(\(no)h(implicit)g(`)p Fs(*)p Ft(')f(is)g(app)s -(ended\).)75 b(Eac)m(h)630 1937 y(pattern)42 b(is)g(tested)g(against)h +(ended\).)75 b(Eac)m(h)630 3393 y(pattern)42 b(is)g(tested)g(against)h (the)f(line)g(after)g(the)g(c)m(hec)m(ks)h(sp)s(eci\014ed)e(b)m(y)h -Fs(HISTCONTROL)630 2047 y Ft(are)37 b(applied.)59 b(In)36 +Fs(HISTCONTROL)630 3502 y Ft(are)37 b(applied.)59 b(In)36 b(addition)h(to)g(the)g(normal)g(shell)f(pattern)h(matc)m(hing)h(c)m -(haracters,)i(`)p Fs(&)p Ft(')630 2156 y(matc)m(hes)d(the)f(previous)g +(haracters,)i(`)p Fs(&)p Ft(')630 3612 y(matc)m(hes)d(the)f(previous)g (history)g(line.)57 b(`)p Fs(&)p Ft(')36 b(ma)m(y)h(b)s(e)e(escap)s(ed) -h(using)g(a)g(bac)m(kslash;)k(the)630 2266 y(bac)m(kslash)34 +h(using)g(a)g(bac)m(kslash;)k(the)630 3721 y(bac)m(kslash)34 b(is)g(remo)m(v)m(ed)h(b)s(efore)e(attempting)i(a)g(matc)m(h.)51 -b(The)34 b(second)f(and)h(subsequen)m(t)630 2375 y(lines)e(of)h(a)g(m)m +b(The)34 b(second)f(and)h(subsequen)m(t)630 3831 y(lines)e(of)h(a)g(m)m (ulti-line)g(comp)s(ound)e(command)h(are)h(not)f(tested,)i(and)e(are)g -(added)g(to)h(the)630 2485 y(history)d(regardless)h(of)g(the)f(v)-5 -b(alue)31 b(of)g Fs(HISTIGNORE)p Ft(.)630 2612 y Fs(HISTIGNORE)20 +(added)g(to)h(the)630 3941 y(history)d(regardless)h(of)g(the)f(v)-5 +b(alue)31 b(of)g Fs(HISTIGNORE)p Ft(.)630 4067 y Fs(HISTIGNORE)20 b Ft(subsumes)g(the)j(function)f(of)h Fs(HISTCONTROL)p Ft(.)35 b(A)23 b(pattern)f(of)h(`)p Fs(&)p Ft(')g(is)f(iden)m(tical)630 -2721 y(to)k Fs(ignoredups)p Ft(,)e(and)h(a)h(pattern)g(of)f(`)p +4177 y(to)k Fs(ignoredups)p Ft(,)e(and)h(a)h(pattern)g(of)f(`)p Fs([)31 b(]*)p Ft(')25 b(is)h(iden)m(tical)h(to)f Fs(ignorespace)p -Ft(.)36 b(Com)m(bining)630 2831 y(these)30 b(t)m(w)m(o)h(patterns,)f +Ft(.)36 b(Com)m(bining)630 4286 y(these)30 b(t)m(w)m(o)h(patterns,)f (separating)g(them)g(with)f(a)h(colon,)h(pro)m(vides)e(the)h -(functionalit)m(y)h(of)630 2941 y Fs(ignoreboth)p Ft(.)150 -3085 y Fs(HISTSIZE)96 b Ft(The)42 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i +(functionalit)m(y)h(of)630 4396 y Fs(ignoreboth)p Ft(.)150 +4539 y Fs(HISTSIZE)96 b Ft(The)42 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i (commands)e(to)j(remem)m(b)s(er)d(on)h(the)h(history)f(list.)77 -b(The)630 3194 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150 -3339 y Fs(HISTTIMEFORMAT)630 3448 y Ft(If)44 b(this)g(v)-5 +b(The)630 4649 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150 +4792 y Fs(HISTTIMEFORMAT)630 4902 y Ft(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m(ull,)k(its)d(v)-5 b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g(for)630 -3558 y Fq(strftime)c Ft(to)35 b(prin)m(t)f(the)h(time)g(stamp)f(asso)s +5011 y Fq(strftime)c Ft(to)35 b(prin)m(t)f(the)h(time)g(stamp)f(asso)s (ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m(ed)630 -3667 y(b)m(y)g(the)f Fs(history)f Ft(builtin.)50 b(If)33 +5121 y(b)m(y)g(the)f Fs(history)f Ft(builtin.)50 b(If)33 b(this)h(v)-5 b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g(written) -f(to)i(the)630 3777 y(history)26 b(\014le)g(so)g(they)g(ma)m(y)h(b)s(e) +f(to)i(the)630 5230 y(history)26 b(\014le)g(so)g(they)g(ma)m(y)h(b)s(e) e(preserv)m(ed)g(across)i(shell)f(sessions.)39 b(This)25 -b(uses)h(the)g(history)630 3886 y(commen)m(t)31 b(c)m(haracter)h(to)f -(distinguish)f(timestamps)h(from)f(other)g(history)h(lines.)150 -4031 y Fs(HOSTFILE)96 b Ft(Con)m(tains)39 b(the)f(name)g(of)h(a)g -(\014le)f(in)g(the)g(same)h(format)g(as)f(`)p Fs(/etc/hosts)p -Ft(')e(that)j(should)630 4140 y(b)s(e)i(read)h(when)f(the)i(shell)f -(needs)f(to)i(complete)h(a)e(hostname.)76 b(The)42 b(list)g(of)g(p)s -(ossible)630 4250 y(hostname)26 b(completions)g(ma)m(y)h(b)s(e)d(c)m -(hanged)j(while)e(the)h(shell)g(is)f(running;)h(the)g(next)f(time)630 -4359 y(hostname)37 b(completion)i(is)e(attempted)h(after)g(the)f(v)-5 +b(uses)h(the)g(history)630 5340 y(commen)m(t)31 b(c)m(haracter)h(to)f +(distinguish)f(timestamps)h(from)f(other)g(history)h(lines.)p +eop end +%%Page: 67 73 +TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(67)150 299 y Fs(HOSTFILE)96 +b Ft(Con)m(tains)39 b(the)f(name)g(of)h(a)g(\014le)f(in)g(the)g(same)h +(format)g(as)f(`)p Fs(/etc/hosts)p Ft(')e(that)j(should)630 +408 y(b)s(e)i(read)h(when)f(the)i(shell)f(needs)f(to)i(complete)h(a)e +(hostname.)76 b(The)42 b(list)g(of)g(p)s(ossible)630 +518 y(hostname)26 b(completions)g(ma)m(y)h(b)s(e)d(c)m(hanged)j(while)e +(the)h(shell)g(is)f(running;)h(the)g(next)f(time)630 +628 y(hostname)37 b(completion)i(is)e(attempted)h(after)g(the)f(v)-5 b(alue)37 b(is)h(c)m(hanged,)h(Bash)e(adds)g(the)630 -4469 y(con)m(ten)m(ts)27 b(of)f(the)g(new)f(\014le)h(to)h(the)f -(existing)g(list.)40 b(If)25 b Fs(HOSTFILE)f Ft(is)i(set,)h(but)e(has)h -(no)f(v)-5 b(alue,)630 4579 y(Bash)41 b(attempts)g(to)g(read)f(`)p -Fs(/etc/hosts)p Ft(')f(to)i(obtain)g(the)f(list)h(of)g(p)s(ossible)f -(hostname)630 4688 y(completions.)i(When)30 b Fs(HOSTFILE)e -Ft(is)j(unset,)f(the)g(hostname)h(list)g(is)f(cleared.)150 -4832 y Fs(HOSTNAME)96 b Ft(The)30 b(name)g(of)h(the)f(curren)m(t)h -(host.)150 4977 y Fs(HOSTTYPE)96 b Ft(A)30 b(string)h(describing)f(the) -g(mac)m(hine)h(Bash)g(is)f(running)f(on.)150 5121 y Fs(IGNOREEOF)630 -5230 y Ft(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt) +737 y(con)m(ten)m(ts)43 b(of)f(the)f(new)g(\014le)h(to)g(the)f +(existing)i(list.)74 b(If)41 b Fs(HOSTFILE)e Ft(is)i(set,)k(but)c(has)g +(no)630 847 y(v)-5 b(alue,)29 b(or)e(do)s(es)h(not)g(name)f(a)h +(readable)g(\014le,)h(Bash)f(attempts)g(to)g(read)g(`)p +Fs(/etc/hosts)p Ft(')d(to)630 956 y(obtain)j(the)g(list)h(of)f(p)s +(ossible)f(hostname)h(completions.)41 b(When)28 b Fs(HOSTFILE)e +Ft(is)i(unset,)g(the)630 1066 y(hostname)j(list)g(is)f(cleared.)150 +1226 y Fs(HOSTNAME)96 b Ft(The)30 b(name)g(of)h(the)f(curren)m(t)h +(host.)150 1386 y Fs(HOSTTYPE)96 b Ft(A)30 b(string)h(describing)f(the) +g(mac)m(hine)h(Bash)g(is)f(running)f(on.)150 1547 y Fs(IGNOREEOF)630 +1656 y Ft(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt) h(of)f(an)g Fs(EOF)f Ft(c)m(haracter)i(as)g(the)f(sole)h(input.)630 -5340 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s +1766 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s (er)f(of)h(consecutiv)m(e)i Fs(EOF)d Ft(c)m(haracters)i(that)f(can)h(b) -s(e)p eop end -%%Page: 67 73 -TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(67)630 299 y(read)40 -b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f(input)g(line)h(b)s -(efore)f(the)h(shell)g(will)g(exit.)70 b(If)39 b(the)630 -408 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g(not)h(ha)m(v)m(e)h -(a)g(n)m(umeric)e(v)-5 b(alue)37 b(\(or)h(has)e(no)h(v)-5 -b(alue\))37 b(then)g(the)630 518 y(default)31 b(is)g(10.)43 -b(If)30 b(the)h(v)-5 b(ariable)31 b(do)s(es)g(not)g(exist,)h(then)e -Fs(EOF)g Ft(signi\014es)h(the)g(end)f(of)h(input)630 -628 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i(for) -e(in)m(teractiv)m(e)j(shells.)150 774 y Fs(INPUTRC)144 +s(e)630 1875 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f +(input)g(line)h(b)s(efore)f(the)h(shell)g(will)g(exit.)70 +b(If)39 b(the)630 1985 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g +(not)h(ha)m(v)m(e)h(a)g(n)m(umeric)e(v)-5 b(alue)37 b(\(or)h(has)e(no)h +(v)-5 b(alue\))37 b(then)g(the)630 2094 y(default)31 +b(is)g(10.)43 b(If)30 b(the)h(v)-5 b(ariable)31 b(do)s(es)g(not)g +(exist,)h(then)e Fs(EOF)g Ft(signi\014es)h(the)g(end)f(of)h(input)630 +2204 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i +(for)e(in)m(teractiv)m(e)j(shells.)150 2364 y Fs(INPUTRC)144 b Ft(The)68 b(name)h(of)f(the)h(Readline)g(initialization)j(\014le,)78 -b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 883 y(`)p -Fs(~/.inputrc)p Ft('.)150 1029 y Fs(LANG)288 b Ft(Used)28 +b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 2474 y(`)p +Fs(~/.inputrc)p Ft('.)150 2634 y Fs(LANG)288 b Ft(Used)28 b(to)h(determine)f(the)g(lo)s(cale)h(category)h(for)e(an)m(y)h -(category)h(not)e(sp)s(eci\014cally)g(selected)630 1139 +(category)h(not)e(sp)s(eci\014cally)g(selected)630 2744 y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Fs(LC_)p -Ft(.)150 1285 y Fs(LC_ALL)192 b Ft(This)28 b(v)-5 b(ariable)29 +Ft(.)150 2904 y Fs(LC_ALL)192 b Ft(This)28 b(v)-5 b(ariable)29 b(o)m(v)m(errides)h(the)f(v)-5 b(alue)29 b(of)g Fs(LANG)f Ft(and)g(an)m(y)h(other)g Fs(LC_)f Ft(v)-5 b(ariable)29 -b(sp)s(ecifying)630 1395 y(a)i(lo)s(cale)h(category)-8 -b(.)150 1541 y Fs(LC_COLLATE)630 1650 y Ft(This)37 b(v)-5 +b(sp)s(ecifying)630 3013 y(a)i(lo)s(cale)h(category)-8 +b(.)150 3173 y Fs(LC_COLLATE)630 3283 y Ft(This)37 b(v)-5 b(ariable)38 b(determines)g(the)g(collation)i(order)d(used)g(when)f -(sorting)i(the)g(results)g(of)630 1760 y(\014lename)e(expansion,)i(and) +(sorting)i(the)g(results)g(of)630 3393 y(\014lename)e(expansion,)i(and) e(determines)g(the)h(b)s(eha)m(vior)f(of)g(range)h(expressions,)h -(equiv-)630 1870 y(alence)e(classes,)h(and)e(collating)i(sequences)e +(equiv-)630 3502 y(alence)e(classes,)h(and)e(collating)i(sequences)e (within)f(\014lename)h(expansion)g(and)f(pattern)630 -1979 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],) -e(page)h(24\).)150 2125 y Fs(LC_CTYPE)96 b Ft(This)36 +3612 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],) +e(page)h(24\).)150 3772 y Fs(LC_CTYPE)96 b Ft(This)36 b(v)-5 b(ariable)37 b(determines)f(the)h(in)m(terpretation)h(of)f(c)m -(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 2235 +(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 3882 y(c)m(haracter)46 b(classes)g(within)e(\014lename)h(expansion)g(and)f -(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 2345 y(tion)31 +(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 3991 y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(24\).)150 -2491 y Fs(LC_MESSAGES)630 2600 y Ft(This)25 b(v)-5 b(ariable)27 +4151 y Fs(LC_MESSAGES)630 4261 y Ft(This)25 b(v)-5 b(ariable)27 b(determines)f(the)g(lo)s(cale)i(used)d(to)i(translate)g(double-quoted) -f(strings)g(pre-)630 2710 y(ceded)31 b(b)m(y)f(a)h(`)p +f(strings)g(pre-)630 4371 y(ceded)31 b(b)m(y)f(a)h(`)p Fs($)p Ft(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8 -b(ranslation],)32 b(page)f(7\).)150 2856 y Fs(LC_NUMERIC)630 -2966 y Ft(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h +b(ranslation],)32 b(page)f(7\).)150 4531 y Fs(LC_NUMERIC)630 +4640 y Ft(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h (category)g(used)e(for)g(n)m(um)m(b)s(er)f(formatting.)150 -3112 y Fs(LINENO)192 b Ft(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g +4800 y Fs(LINENO)192 b Ft(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g (script)h(or)f(shell)g(function)h(curren)m(tly)f(executing.)150 -3258 y Fs(LINES)240 b Ft(Used)25 b(b)m(y)g(the)g Fs(select)e +4961 y Fs(LINES)240 b Ft(Used)25 b(b)m(y)g(the)g Fs(select)e Ft(builtin)i(command)g(to)h(determine)f(the)g(column)g(length)g(for)g -(prin)m(t-)630 3367 y(ing)31 b(selection)h(lists.)41 +(prin)m(t-)630 5070 y(ing)31 b(selection)h(lists.)41 b(Automatically)33 b(set)e(up)s(on)e(receipt)i(of)f(a)h -Fs(SIGWINCH)p Ft(.)150 3513 y Fs(MACHTYPE)96 b Ft(A)26 +Fs(SIGWINCH)p Ft(.)150 5230 y Fs(MACHTYPE)96 b Ft(A)26 b(string)g(that)h(fully)f(describ)s(es)f(the)h(system)g(t)m(yp)s(e)h (on)f(whic)m(h)f(Bash)i(is)f(executing,)i(in)e(the)630 -3623 y(standard)k Fl(gnu)g Fq(cpu-compan)m(y-system)h -Ft(format.)150 3769 y Fs(MAILCHECK)630 3879 y Ft(Ho)m(w)d(often)g(\(in) -g(seconds\))g(that)g(the)f(shell)h(should)f(c)m(hec)m(k)i(for)e(mail)h -(in)f(the)h(\014les)g(sp)s(eci\014ed)630 3988 y(in)i(the)h -Fs(MAILPATH)e Ft(or)i Fs(MAIL)e Ft(v)-5 b(ariables.)43 -b(The)30 b(default)h(is)f(60)i(seconds.)42 b(When)30 -b(it)h(is)g(time)630 4098 y(to)37 b(c)m(hec)m(k)h(for)e(mail,)j(the)e -(shell)f(do)s(es)g(so)h(b)s(efore)f(displa)m(ying)h(the)f(primary)g -(prompt.)57 b(If)630 4208 y(this)37 b(v)-5 b(ariable)38 +5340 y(standard)k Fl(gnu)g Fq(cpu-compan)m(y-system)h +Ft(format.)p eop end +%%Page: 68 74 +TeXDict begin 68 73 bop 150 -116 a Ft(68)2572 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y Fs(MAILCHECK)630 408 +y Ft(Ho)m(w)d(often)g(\(in)g(seconds\))g(that)g(the)f(shell)h(should)f +(c)m(hec)m(k)i(for)e(mail)h(in)f(the)h(\014les)g(sp)s(eci\014ed)630 +518 y(in)i(the)h Fs(MAILPATH)e Ft(or)i Fs(MAIL)e Ft(v)-5 +b(ariables.)43 b(The)30 b(default)h(is)f(60)i(seconds.)42 +b(When)30 b(it)h(is)g(time)630 628 y(to)37 b(c)m(hec)m(k)h(for)e(mail,) +j(the)e(shell)f(do)s(es)g(so)h(b)s(efore)f(displa)m(ying)h(the)f +(primary)g(prompt.)57 b(If)630 737 y(this)37 b(v)-5 b(ariable)38 b(is)f(unset,)h(or)f(set)h(to)g(a)f(v)-5 b(alue)38 b(that)f(is)g(not)h -(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 4317 y(equal)31 +(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 847 y(equal)31 b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150 -4463 y Fs(OLDPWD)192 b Ft(The)30 b(previous)g(w)m(orking)g(directory)h -(as)g(set)g(b)m(y)f(the)h Fs(cd)e Ft(builtin.)150 4609 +1003 y Fs(OLDPWD)192 b Ft(The)30 b(previous)g(w)m(orking)g(directory)h +(as)g(set)g(b)m(y)f(the)h Fs(cd)e Ft(builtin.)150 1160 y Fs(OPTERR)192 b Ft(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36 b(1,)i(Bash)e(displa)m(ys)g(error)f(messages)i(generated)g(b)m(y)f(the) -g Fs(getopts)630 4719 y Ft(builtin)30 b(command.)150 -4865 y Fs(OSTYPE)192 b Ft(A)30 b(string)h(describing)f(the)g(op)s -(erating)h(system)g(Bash)f(is)h(running)d(on.)150 5011 -y Fs(PIPESTATUS)630 5121 y Ft(An)23 b(arra)m(y)h(v)-5 +g Fs(getopts)630 1270 y Ft(builtin)30 b(command.)150 +1426 y Fs(OSTYPE)192 b Ft(A)30 b(string)h(describing)f(the)g(op)s +(erating)h(system)g(Bash)f(is)h(running)d(on.)150 1583 +y Fs(PIPESTATUS)630 1692 y Ft(An)23 b(arra)m(y)h(v)-5 b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(80\))h -(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 5230 +(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 1802 y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h (most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630 -5340 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h -(command\).)p eop end -%%Page: 68 74 -TeXDict begin 68 73 bop 150 -116 a Ft(68)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(POSIXLY_CORRECT)630 -408 y Ft(If)h(this)h(v)-5 b(ariable)34 b(is)f(in)f(the)h(en)m(vironmen) -m(t)h(when)d Fs(bash)h Ft(starts,)i(the)f(shell)g(en)m(ters)h -Fl(posix)630 518 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e -(POSIX)f(Mo)s(de],)k(page)e(85\))g(b)s(efore)f(reading)g(the)g(startup) -630 628 y(\014les,)32 b(as)f(if)h(the)f(`)p Fs(--posix)p +1911 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h +(command\).)150 2068 y Fs(POSIXLY_CORRECT)630 2178 y +Ft(If)h(this)h(v)-5 b(ariable)34 b(is)f(in)f(the)h(en)m(vironmen)m(t)h +(when)d Fs(bash)h Ft(starts,)i(the)f(shell)g(en)m(ters)h +Fl(posix)630 2287 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e +(POSIX)f(Mo)s(de],)k(page)e(84\))g(b)s(efore)f(reading)g(the)g(startup) +630 2397 y(\014les,)32 b(as)f(if)h(the)f(`)p Fs(--posix)p Ft(')f(in)m(v)m(o)s(cation)j(option)f(had)f(b)s(een)g(supplied.)42 -b(If)31 b(it)h(is)f(set)h(while)630 737 y(the)f(shell)f(is)h(running,)d -Fs(bash)i Ft(enables)g Fl(posix)g Ft(mo)s(de,)g(as)h(if)f(the)h -(command)870 874 y Fs(set)47 b(-o)g(posix)630 1011 y -Ft(had)30 b(b)s(een)f(executed.)150 1176 y Fs(PPID)288 +b(If)31 b(it)h(is)f(set)h(while)630 2506 y(the)f(shell)f(is)h(running,) +d Fs(bash)i Ft(enables)g Fl(posix)g Ft(mo)s(de,)g(as)h(if)f(the)h +(command)870 2639 y Fs(set)47 b(-o)g(posix)630 2772 y +Ft(had)30 b(b)s(een)f(executed.)150 2929 y Fs(PPID)288 b Ft(The)30 b(pro)s(cess)g Fl(id)g Ft(of)h(the)f(shell's)h(paren)m(t)g (pro)s(cess.)40 b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 -b(.)150 1340 y Fs(PROMPT_COMMAND)630 1450 y Ft(If)32 +b(.)150 3086 y Fs(PROMPT_COMMAND)630 3195 y Ft(If)32 b(set,)h(the)f(v)-5 b(alue)33 b(is)f(in)m(terpreted)g(as)g(a)h(command) f(to)h(execute)g(b)s(efore)f(the)g(prin)m(ting)g(of)630 -1559 y(eac)m(h)g(primary)d(prompt)g(\()p Fs($PS1)p Ft(\).)150 -1724 y Fs(PROMPT_DIRTRIM)630 1833 y Ft(If)e(set)g(to)h(a)g(n)m(um)m(b)s +3305 y(eac)m(h)g(primary)d(prompt)g(\()p Fs($PS1)p Ft(\).)150 +3461 y Fs(PROMPT_DIRTRIM)630 3571 y Ft(If)e(set)g(to)h(a)g(n)m(um)m(b)s (er)e(greater)i(than)f(zero,)i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g -(the)h(n)m(um)m(b)s(er)e(of)h(trailing)630 1943 y(directory)35 +(the)h(n)m(um)m(b)s(er)e(of)h(trailing)630 3680 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f(when)f(expanding)g(the)h -Fs(\\w)f Ft(and)g Fs(\\W)g Ft(prompt)g(string)630 2052 +Fs(\\w)f Ft(and)g Fs(\\W)g Ft(prompt)g(string)630 3790 y(escap)s(es)27 b(\(see)g(Section)g(6.9)h([Prin)m(ting)f(a)g(Prompt],)g -(page)g(83\).)40 b(Characters)27 b(remo)m(v)m(ed)h(are)630 -2162 y(replaced)j(with)f(an)g(ellipsis.)150 2326 y Fs(PS3)336 +(page)g(82\).)40 b(Characters)27 b(remo)m(v)m(ed)h(are)630 +3900 y(replaced)j(with)f(an)g(ellipsis.)150 4056 y Fs(PS3)336 b Ft(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5 b(ariable)35 b(is)g(used)e(as)i(the)f(prompt)g(for)g(the)g Fs(select)f -Ft(command.)52 b(If)630 2436 y(this)30 b(v)-5 b(ariable)31 +Ft(command.)52 b(If)630 4166 y(this)30 b(v)-5 b(ariable)31 b(is)g(not)f(set,)i(the)e Fs(select)f Ft(command)h(prompts)f(with)h(`)p -Fs(#?)g Ft(')150 2600 y Fs(PS4)336 b Ft(The)20 b(v)-5 +Fs(#?)g Ft(')150 4322 y Fs(PS4)336 b Ft(The)20 b(v)-5 b(alue)22 b(is)e(the)h(prompt)f(prin)m(ted)h(b)s(efore)f(the)h(command) g(line)g(is)g(ec)m(ho)s(ed)g(when)f(the)h(`)p Fs(-x)p -Ft(')630 2710 y(option)32 b(is)f(set)h(\(see)g(Section)h(4.3.1)g([The)e +Ft(')630 4432 y(option)32 b(is)f(set)h(\(see)g(Section)h(4.3.1)g([The)e (Set)g(Builtin],)i(page)f(51\).)45 b(The)31 b(\014rst)f(c)m(haracter) -630 2819 y(of)k Fs(PS4)g Ft(is)g(replicated)i(m)m(ultiple)f(times,)h +630 4542 y(of)k Fs(PS4)g Ft(is)g(replicated)i(m)m(ultiple)f(times,)h (as)e(necessary)-8 b(,)37 b(to)e(indicate)g(m)m(ultiple)g(lev)m(els)h -(of)630 2929 y(indirection.)41 b(The)30 b(default)h(is)f(`)p -Fs(+)g Ft('.)150 3093 y Fs(PWD)336 b Ft(The)30 b(curren)m(t)g(w)m +(of)630 4651 y(indirection.)41 b(The)30 b(default)h(is)f(`)p +Fs(+)g Ft('.)150 4808 y Fs(PWD)336 b Ft(The)30 b(curren)m(t)g(w)m (orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Fs(cd)f -Ft(builtin.)150 3258 y Fs(RANDOM)192 b Ft(Eac)m(h)30 +Ft(builtin.)150 4964 y Fs(RANDOM)192 b Ft(Eac)m(h)30 b(time)g(this)f(parameter)g(is)g(referenced,)h(a)f(random)g(in)m(teger) -h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 3367 y(is)i(generated.)43 +h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 5074 y(is)i(generated.)43 b(Assigning)31 b(a)g(v)-5 b(alue)31 b(to)g(this)g(v)-5 b(ariable)31 b(seeds)g(the)g(random)f(n)m(um)m(b)s(er)f(gen-)630 -3477 y(erator.)150 3641 y Fs(REPLY)240 b Ft(The)30 b(default)g(v)-5 -b(ariable)32 b(for)e(the)g Fs(read)g Ft(builtin.)150 -3806 y Fs(SECONDS)144 b Ft(This)40 b(v)-5 b(ariable)41 -b(expands)f(to)h(the)g(n)m(um)m(b)s(er)e(of)i(seconds)g(since)g(the)f -(shell)h(w)m(as)g(started.)630 3915 y(Assignmen)m(t)i(to)g(this)g(v)-5 -b(ariable)43 b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5 -b(alue)43 b(assigned,)j(and)c(the)630 4025 y(expanded)35 -b(v)-5 b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36 -b(assigned)g(plus)f(the)h(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 -4134 y(the)31 b(assignmen)m(t.)150 4299 y Fs(SHELL)240 +5183 y(erator.)150 5340 y Fs(REPLY)240 b Ft(The)30 b(default)g(v)-5 +b(ariable)32 b(for)e(the)g Fs(read)g Ft(builtin.)p eop +end +%%Page: 69 75 +TeXDict begin 69 74 bop 150 -116 a Ft(Chapter)30 b(5:)41 +b(Shell)30 b(V)-8 b(ariables)2459 b(69)150 299 y Fs(SECONDS)144 +b Ft(This)40 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s +(er)e(of)i(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630 +408 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43 b(resets)g(the)g +(coun)m(t)g(to)g(the)g(v)-5 b(alue)43 b(assigned,)j(and)c(the)630 +518 y(expanded)35 b(v)-5 b(alue)36 b(b)s(ecomes)h(the)f(v)-5 +b(alue)36 b(assigned)g(plus)f(the)h(n)m(um)m(b)s(er)f(of)h(seconds)g +(since)630 628 y(the)31 b(assignmen)m(t.)150 779 y Fs(SHELL)240 b Ft(The)29 b(full)h(pathname)g(to)h(the)f(shell)g(is)g(k)m(ept)g(in)g (this)g(en)m(vironmen)m(t)g(v)-5 b(ariable.)42 b(If)29 -b(it)i(is)f(not)630 4408 y(set)36 b(when)f(the)h(shell)g(starts,)i -(Bash)e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m -(t)630 4518 y(user's)30 b(login)h(shell.)150 4682 y Fs(SHELLOPTS)630 -4792 y Ft(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.) +b(it)i(is)f(not)630 889 y(set)36 b(when)f(the)h(shell)g(starts,)i(Bash) +e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m(t)630 +999 y(user's)30 b(login)h(shell.)150 1150 y Fs(SHELLOPTS)630 +1260 y Ft(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.) 41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5 -b(alid)630 4902 y(argumen)m(t)24 b(for)f(the)h(`)p Fs(-o)p +b(alid)630 1369 y(argumen)m(t)24 b(for)f(the)h(`)p Fs(-o)p Ft(')f(option)h(to)g(the)g Fs(set)f Ft(builtin)g(command)g(\(see)i -(Section)f(4.3.1)h([The)630 5011 y(Set)k(Builtin],)h(page)f(51\).)42 +(Section)f(4.3.1)h([The)630 1479 y(Set)k(Builtin],)h(page)f(51\).)42 b(The)28 b(options)h(app)s(earing)f(in)g Fs(SHELLOPTS)e -Ft(are)j(those)h(rep)s(orted)630 5121 y(as)g(`)p Fs(on)p +Ft(are)j(those)h(rep)s(orted)630 1589 y(as)g(`)p Fs(on)p Ft(')f(b)m(y)h(`)p Fs(set)g(-o)p Ft('.)40 b(If)29 b(this)h(v)-5 b(ariable)30 b(is)g(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)h -(starts)g(up,)630 5230 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list) +(starts)g(up,)630 1698 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list) g(will)f(b)s(e)g(enabled)h(b)s(efore)f(reading)g(an)m(y)h(startup)f -(\014les.)630 5340 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 -b(.)p eop end -%%Page: 69 75 -TeXDict begin 69 74 bop 150 -116 a Ft(Chapter)30 b(5:)41 -b(Shell)30 b(V)-8 b(ariables)2459 b(69)150 299 y Fs(SHLVL)240 -b Ft(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)m(h)h(time)f(a)h(new)e -(instance)h(of)g(Bash)g(is)g(started.)38 b(This)20 b(is)h(in)m(tended) -630 408 y(to)31 b(b)s(e)f(a)h(coun)m(t)g(of)f(ho)m(w)h(deeply)f(y)m -(our)g(Bash)h(shells)f(are)h(nested.)150 568 y Fs(TIMEFORMAT)630 -677 y Ft(The)f(v)-5 b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f(as) -h(a)g(format)h(string)f(sp)s(ecifying)f(ho)m(w)h(the)g(tim-)630 -787 y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h -(the)h Fs(time)e Ft(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)630 -897 y(displa)m(y)m(ed.)k(The)27 b(`)p Fs(\045)p Ft(')h(c)m(haracter)h -(in)m(tro)s(duces)e(an)h(escap)s(e)g(sequence)g(that)g(is)f(expanded)g -(to)630 1006 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f -(information.)59 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i -(meanings)630 1116 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote) -h(optional)h(p)s(ortions.)630 1275 y Fs(\045\045)384 -b Ft(A)30 b(literal)i(`)p Fs(\045)p Ft('.)630 1435 y -Fs(\045[)p Fj(p)11 b Fs(][l]R)85 b Ft(The)30 b(elapsed)h(time)g(in)f -(seconds.)630 1594 y Fs(\045[)p Fj(p)11 b Fs(][l]U)85 -b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g -(user)f(mo)s(de.)630 1753 y Fs(\045[)p Fj(p)11 b Fs(][l]S)85 -b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g -(system)g(mo)s(de.)630 1913 y Fs(\045P)384 b Ft(The)30 -b(CPU)g(p)s(ercen)m(tage,)i(computed)e(as)h(\(\045U)f -Fs(+)g Ft(\045S\))g(/)h(\045R.)630 2072 y(The)23 b(optional)j -Fq(p)g Ft(is)e(a)g(digit)h(sp)s(ecifying)e(the)h(precision,)i(the)e(n)m -(um)m(b)s(er)f(of)h(fractional)h(digits)630 2182 y(after)36 -b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 b(v)-5 b(alue)36 -b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h(fraction)g(to)g -(b)s(e)630 2291 y(output.)48 b(A)m(t)34 b(most)f(three)g(places)h -(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)h(b)s(e)e(sp)s -(eci\014ed;)i(v)-5 b(alues)630 2401 y(of)31 b Fq(p)h -Ft(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42 +(\014les.)630 1808 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 +b(.)150 1960 y Fs(SHLVL)240 b Ft(Incremen)m(ted)21 b(b)m(y)g(one)g(eac) +m(h)h(time)f(a)h(new)e(instance)h(of)g(Bash)g(is)g(started.)38 +b(This)20 b(is)h(in)m(tended)630 2069 y(to)31 b(b)s(e)f(a)h(coun)m(t)g +(of)f(ho)m(w)h(deeply)f(y)m(our)g(Bash)h(shells)f(are)h(nested.)150 +2221 y Fs(TIMEFORMAT)630 2330 y Ft(The)f(v)-5 b(alue)32 +b(of)f(this)g(parameter)g(is)g(used)f(as)h(a)g(format)h(string)f(sp)s +(ecifying)f(ho)m(w)h(the)g(tim-)630 2440 y(ing)37 b(information)f(for)h +(pip)s(elines)f(pre\014xed)f(with)h(the)h Fs(time)e Ft(reserv)m(ed)i(w) +m(ord)f(should)g(b)s(e)630 2550 y(displa)m(y)m(ed.)k(The)27 +b(`)p Fs(\045)p Ft(')h(c)m(haracter)h(in)m(tro)s(duces)e(an)h(escap)s +(e)g(sequence)g(that)g(is)f(expanded)g(to)630 2659 y(a)37 +b(time)g(v)-5 b(alue)36 b(or)h(other)f(information.)59 +b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i(meanings)630 +2769 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h +(p)s(ortions.)630 2921 y Fs(\045\045)384 b Ft(A)30 b(literal)i(`)p +Fs(\045)p Ft('.)630 3072 y Fs(\045[)p Fi(p)11 b Fs(][l]R)85 +b Ft(The)30 b(elapsed)h(time)g(in)f(seconds.)630 3224 +y Fs(\045[)p Fi(p)11 b Fs(][l]U)85 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h +(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630 +3376 y Fs(\045[)p Fi(p)11 b Fs(][l]S)85 b Ft(The)30 b(n)m(um)m(b)s(er)f +(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630 +3528 y Fs(\045P)384 b Ft(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e +(as)h(\(\045U)f Fs(+)g Ft(\045S\))g(/)h(\045R.)630 3679 +y(The)23 b(optional)j Fq(p)g Ft(is)e(a)g(digit)h(sp)s(ecifying)e(the)h +(precision,)i(the)e(n)m(um)m(b)s(er)f(of)h(fractional)h(digits)630 +3789 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 +b(v)-5 b(alue)36 b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h +(fraction)g(to)g(b)s(e)630 3898 y(output.)48 b(A)m(t)34 +b(most)f(three)g(places)h(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y) +h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 4008 y(of)31 +b Fq(p)h Ft(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42 b(If)29 b Fq(p)k Ft(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5 -b(alue)30 b(3)h(is)g(used.)630 2535 y(The)54 b(optional)h +b(alue)30 b(3)h(is)g(used.)630 4139 y(The)54 b(optional)h Fs(l)f Ft(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54 -b(min)m(utes,)61 b(of)54 b(the)g(form)630 2645 y Fq(MM)10 -b Ft(m)p Fq(SS)p Ft(.)p Fq(FF)d Ft(s.)103 b(The)50 b(v)-5 -b(alue)52 b(of)f Fq(p)j Ft(determines)d(whether)f(or)h(not)h(the)f -(fraction)h(is)630 2755 y(included.)630 2889 y(If)30 +b(min)m(utes,)61 b(of)54 b(the)g(form)630 4248 y Fq(MM)10 +b Ft(m)p Fq(SS)5 b Ft(.)p Fq(FF)i Ft(s.)102 b(The)50 +b(v)-5 b(alue)51 b(of)g Fq(p)i Ft(determines)e(whether)f(or)h(not)f +(the)h(fraction)h(is)630 4358 y(included.)630 4489 y(If)30 b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f -(it)h(had)f(the)h(v)-5 b(alue)870 3024 y Fs +(it)h(had)f(the)h(v)-5 b(alue)870 4619 y Fs ($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630 -3158 y Ft(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f +4750 y Ft(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f (information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e -(is)630 3268 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m -(y)m(ed.)150 3427 y Fs(TMOUT)240 b Ft(If)22 b(set)h(to)g(a)g(v)-5 +(is)630 4859 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m +(y)m(ed.)150 5011 y Fs(TMOUT)240 b Ft(If)22 b(set)h(to)g(a)g(v)-5 b(alue)23 b(greater)h(than)e(zero,)j Fs(TMOUT)d Ft(is)g(treated)i(as)e -(the)h(default)g(timeout)g(for)g(the)630 3537 y Fs(read)31 +(the)h(default)g(timeout)g(for)g(the)630 5121 y Fs(read)31 b Ft(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g -(41\).)47 b(The)32 b Fs(select)e Ft(command)630 3646 +(41\).)47 b(The)32 b Fs(select)e Ft(command)630 5230 y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i -(10\))f(terminates)g(if)g(input)e(do)s(es)630 3756 y(not)k(arriv)m(e)g +(10\))f(terminates)g(if)g(input)e(do)s(es)630 5340 y(not)k(arriv)m(e)g (after)g Fs(TMOUT)e Ft(seconds)h(when)f(input)h(is)g(coming)h(from)f(a) -h(terminal.)630 3890 y(In)25 b(an)h(in)m(teractiv)m(e)i(shell,)g(the)e -(v)-5 b(alue)26 b(is)g(in)m(terpreted)g(as)g(the)g(n)m(um)m(b)s(er)f -(of)h(seconds)f(to)i(w)m(ait)630 4000 y(for)32 b(input)f(after)i -(issuing)f(the)g(primary)g(prompt)f(when)g(the)i(shell)f(is)h(in)m -(teractiv)m(e.)49 b(Bash)630 4110 y(terminates)31 b(after)g(that)g(n)m -(um)m(b)s(er)e(of)i(seconds)f(if)g(input)g(do)s(es)g(not)g(arriv)m(e.) -150 4269 y Fs(TMPDIR)192 b Ft(If)39 b(set,)j(Bash)e(uses)f(its)h(v)-5 -b(alue)40 b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g -(Bash)h(creates)630 4379 y(temp)s(orary)30 b(\014les)g(for)g(the)h -(shell's)g(use.)150 4538 y Fs(UID)336 b Ft(The)30 b(n)m(umeric)g(real)h -(user)f(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30 -b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)p eop end +h(terminal.)p eop end %%Page: 70 76 TeXDict begin 70 75 bop 150 -116 a Ft(70)2572 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +b(Reference)g(Man)m(ual)630 299 y(In)25 b(an)h(in)m(teractiv)m(e)i +(shell,)g(the)e(v)-5 b(alue)26 b(is)g(in)m(terpreted)g(as)g(the)g(n)m +(um)m(b)s(er)f(of)h(seconds)f(to)i(w)m(ait)630 408 y(for)32 +b(input)f(after)i(issuing)f(the)g(primary)g(prompt)f(when)g(the)i +(shell)f(is)h(in)m(teractiv)m(e.)49 b(Bash)630 518 y(terminates)31 +b(after)g(that)g(n)m(um)m(b)s(er)e(of)i(seconds)f(if)g(input)g(do)s(es) +g(not)g(arriv)m(e.)150 677 y Fs(TMPDIR)192 b Ft(If)39 +b(set,)j(Bash)e(uses)f(its)h(v)-5 b(alue)40 b(as)f(the)h(name)f(of)h(a) +g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 787 +y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150 +946 y Fs(UID)336 b Ft(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g +(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31 +b(is)f(readonly)-8 b(.)p eop end %%Page: 71 77 TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(6:)41 b(Bash)30 b(F)-8 b(eatures)2484 b(71)150 299 y Fo(6)80 -b(Bash)54 b(F)-13 b(eatures)275 537 y Ft(This)29 b(section)j(describ)s -(es)d(features)i(unique)e(to)j(Bash.)150 798 y Fr(6.1)68 -b(In)l(v)l(oking)46 b(Bash)390 1017 y Fs(bash)h([long-opt])e([-ir])h -([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)11 b Fs(])45 -b([-O)i Fj(shopt_option)11 b Fs(])44 b([)p Fj(ar-)390 -1127 y(gument)57 b Fs(...)o(])390 1236 y(bash)47 b([long-opt])e -([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)11 b Fs(])46 -b([-O)g Fj(shopt_option)11 b Fs(])44 b(-c)j Fj(string)57 -b Fs([)p Fj(ar-)390 1346 y(gument)g Fs(...)o(])390 1455 +b(Bash)54 b(F)-13 b(eatures)150 554 y Ft(This)30 b(section)h(describ)s +(es)f(features)g(unique)g(to)h(Bash.)150 797 y Fr(6.1)68 +b(In)l(v)l(oking)46 b(Bash)390 957 y Fs(bash)h([long-opt])e([-ir])h +([-abefhkmnptuvxdBCDHP])c([-o)47 b Fi(option)11 b Fs(])45 +b([-O)i Fi(shopt_option)11 b Fs(])44 b([)p Fi(ar-)390 +1066 y(gument)57 b Fs(...)o(])390 1176 y(bash)47 b([long-opt])e +([-abefhkmnptuvxdBCDHP])c([-o)47 b Fi(option)11 b Fs(])46 +b([-O)g Fi(shopt_option)11 b Fs(])44 b(-c)j Fi(string)57 +b Fs([)p Fi(ar-)390 1286 y(gument)g Fs(...)o(])390 1395 y(bash)47 b([long-opt])e(-s)i([-abefhkmnptuvxdBCDHP])42 -b([-o)k Fj(option)11 b Fs(])46 b([-O)h Fj(shopt_option)11 -b Fs(])43 b([)p Fj(ar-)390 1565 y(gument)57 b Fs(...)o(])275 -1701 y Ft(In)22 b(addition)i(to)g(the)g(single-c)m(haracter)i(shell)e +b([-o)k Fi(option)11 b Fs(])46 b([-O)h Fi(shopt_option)11 +b Fs(])43 b([)p Fi(ar-)390 1505 y(gument)57 b Fs(...)o(])275 +1646 y Ft(In)22 b(addition)i(to)g(the)g(single-c)m(haracter)i(shell)e (command-line)g(options)f(\(see)i(Section)f(4.3.1)i([The)d(Set)150 -1810 y(Builtin],)k(page)e(51\),)i(there)e(are)g(sev)m(eral)h(m)m +1756 y(Builtin],)k(page)e(51\),)i(there)e(are)g(sev)m(eral)h(m)m (ulti-c)m(haracter)h(options)e(that)g(y)m(ou)g(can)g(use.)38 -b(These)25 b(options)150 1920 y(m)m(ust)30 b(app)s(ear)g(on)g(the)h +b(These)25 b(options)150 1865 y(m)m(ust)30 b(app)s(ear)g(on)g(the)h (command)f(line)h(b)s(efore)f(the)g(single-c)m(haracter)j(options)e(to) -g(b)s(e)f(recognized.)150 2081 y Fs(--debugger)630 2191 +g(b)s(e)f(recognized.)150 2035 y Fs(--debugger)630 2145 y Ft(Arrange)j(for)g(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e (executed)i(b)s(efore)f(the)g(shell)g(starts.)49 b(T)-8 -b(urns)630 2301 y(on)25 b(extended)g(debugging)g(mo)s(de)f(\(see)i -(Section)g(4.3.2)h([The)d(Shopt)h(Builtin],)i(page)e(54)h(for)630 -2410 y(a)35 b(description)f(of)h(the)g Fs(extdebug)d +b(urns)630 2255 y(on)25 b(extended)g(debugging)g(mo)s(de)f(\(see)i +(Section)g(4.3.2)h([The)d(Shopt)h(Builtin],)i(page)e(55)h(for)630 +2364 y(a)35 b(description)f(of)h(the)g Fs(extdebug)d Ft(option)j(to)g(the)f Fs(shopt)f Ft(builtin\))i(and)f(shell)g -(function)630 2520 y(tracing)d(\(see)g(Section)h(4.3.1)g([The)e(Set)g +(function)630 2474 y(tracing)d(\(see)g(Section)h(4.3.1)g([The)e(Set)g (Builtin],)h(page)g(51)h(for)e(a)g(description)h(of)f(the)h -Fs(-o)630 2629 y(functrace)d Ft(option\).)150 2790 y -Fs(--dump-po-strings)630 2900 y Ft(A)37 b(list)g(of)f(all)i +Fs(-o)630 2583 y(functrace)d Ft(option\).)150 2750 y +Fs(--dump-po-strings)630 2859 y Ft(A)37 b(list)g(of)f(all)i (double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p Fs($)p -Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630 3009 +Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630 2969 y(output)24 b(in)h(the)g Fl(gnu)f Fs(gettext)f Ft(PO)i(\(p)s(ortable)g (ob)5 b(ject\))26 b(\014le)f(format.)39 b(Equiv)-5 b(alen)m(t)26 -b(to)f(`)p Fs(-D)p Ft(')630 3119 y(except)31 b(for)f(the)h(output)f -(format.)150 3280 y Fs(--dump-strings)630 3389 y Ft(Equiv)-5 -b(alen)m(t)31 b(to)g(`)p Fs(-D)p Ft('.)150 3550 y Fs(--help)192 +b(to)f(`)p Fs(-D)p Ft(')630 3079 y(except)31 b(for)f(the)h(output)f +(format.)150 3245 y Fs(--dump-strings)630 3355 y Ft(Equiv)-5 +b(alen)m(t)31 b(to)g(`)p Fs(-D)p Ft('.)150 3521 y Fs(--help)192 b Ft(Displa)m(y)32 b(a)e(usage)h(message)h(on)e(standard)g(output)g -(and)f(exit)j(successfully)-8 b(.)150 3711 y Fs(--init-file)27 -b Fj(filename)150 3820 y Fs(--rcfile)h Fj(filename)630 -3930 y Ft(Execute)42 b(commands)f(from)f Fq(\014lename)47 +(and)f(exit)j(successfully)-8 b(.)150 3688 y Fs(--init-file)27 +b Fi(filename)150 3797 y Fs(--rcfile)h Fi(filename)630 +3907 y Ft(Execute)42 b(commands)f(from)f Fq(\014lename)47 b Ft(\(instead)42 b(of)f(`)p Fs(~/.bashrc)p Ft('\))e(in)i(an)g(in)m -(teractiv)m(e)630 4039 y(shell.)150 4200 y Fs(--login)144 +(teractiv)m(e)630 4016 y(shell.)150 4183 y Fs(--login)144 b Ft(Equiv)-5 b(alen)m(t)31 b(to)g(`)p Fs(-l)p Ft('.)150 -4361 y Fs(--noediting)630 4471 y Ft(Do)h(not)e(use)h(the)g +4349 y Fs(--noediting)630 4459 y Ft(Do)h(not)e(use)h(the)g Fl(gnu)f Ft(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)f(Line) -g(Editing],)630 4580 y(page)h(93\))h(to)f(read)f(command)g(lines)h -(when)e(the)i(shell)f(is)h(in)m(teractiv)m(e.)150 4741 -y Fs(--noprofile)630 4850 y Ft(Don't)h(load)f(the)g(system-wide)g +g(Editing],)630 4569 y(page)h(93\))h(to)f(read)f(command)g(lines)h +(when)e(the)i(shell)f(is)h(in)m(teractiv)m(e.)150 4735 +y Fs(--noprofile)630 4845 y Ft(Don't)h(load)f(the)g(system-wide)g (startup)f(\014le)g(`)p Fs(/etc/profile)p Ft(')e(or)j(an)m(y)g(of)g -(the)f(p)s(ersonal)630 4960 y(initialization)g(\014les)d(`)p +(the)f(p)s(ersonal)630 4954 y(initialization)g(\014les)d(`)p Fs(~/.bash_profile)p Ft(',)e(`)p Fs(~/.bash_login)p Ft(',)g(or)i(`)p -Fs(~/.profile)p Ft(')e(when)630 5070 y(Bash)31 b(is)f(in)m(v)m(ok)m(ed) +Fs(~/.profile)p Ft(')e(when)630 5064 y(Bash)31 b(is)f(in)m(v)m(ok)m(ed) i(as)e(a)h(login)g(shell.)150 5230 y Fs(--norc)192 b Ft(Don't)31 b(read)g(the)f(`)p Fs(~/.bashrc)p Ft(')f(initialization)k (\014le)d(in)g(an)h(in)m(teractiv)m(e)i(shell.)41 b(This)30 @@ -9903,7 +9834,7 @@ b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i(default)f(op)s y Ft(standard)35 b(to)h(matc)m(h)g(the)g(standard.)55 b(This)35 b(is)h(in)m(tended)f(to)h(mak)m(e)h(Bash)f(b)s(eha)m(v)m(e)g (as)g(a)630 518 y(strict)26 b(sup)s(erset)e(of)h(that)g(standard.)38 -b(See)26 b(Section)f(6.11)i([Bash)e(POSIX)f(Mo)s(de],)j(page)f(85,)630 +b(See)26 b(Section)f(6.11)i([Bash)e(POSIX)f(Mo)s(de],)j(page)f(84,)630 628 y(for)k(a)h(description)f(of)h(the)f(Bash)h Fl(posix)f Ft(mo)s(de.)150 787 y Fs(--restricted)630 897 y Ft(Mak)m(e)54 b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The) @@ -9917,7 +9848,7 @@ Ft(Sho)m(w)e(v)m(ersion)g(information)g(for)g(this)g(instance)h(of)f m(haracter)i(options)d(that)h(ma)m(y)g(b)s(e)e(supplied)g(at)i(in)m(v)m (o)s(cation)h(whic)m(h)e(are)150 1923 y(not)i(a)m(v)-5 b(ailable)32 b(with)e(the)h Fs(set)e Ft(builtin.)150 -2082 y Fs(-c)h Fj(string)630 2192 y Ft(Read)23 b(and)f(execute)i +2082 y Fs(-c)h Fi(string)630 2192 y Ft(Read)23 b(and)f(execute)i (commands)f(from)f Fq(string)31 b Ft(after)23 b(pro)s(cessing)f(the)h (options,)i(then)e(exit.)630 2301 y(An)m(y)37 b(remaining)f(argumen)m (ts)h(are)g(assigned)g(to)g(the)g(p)s(ositional)g(parameters,)i @@ -9955,11 +9886,11 @@ y(the)e(curren)m(t)g(lo)s(cale)h(is)f(not)g Fs(C)g Ft(or)f Fs(POSIX)g Ft(\(see)h(Section)h(3.1.2.5)h([Lo)s(cale)g(T)-8 b(ranslation],)630 4523 y(page)31 b(7\).)42 b(This)29 b(implies)i(the)f(`)p Fs(-n)p Ft(')h(option;)g(no)f(commands)g(will)h -(b)s(e)e(executed.)150 4682 y Fs([-+]O)g([)p Fj(shopt_option)11 +(b)s(e)e(executed.)150 4682 y Fs([-+]O)g([)p Fi(shopt_option)11 b Fs(])630 4792 y Fq(shopt)p 854 4792 28 4 v 40 w(option)44 b Ft(is)g(one)h(of)f(the)g(shell)h(options)f(accepted)h(b)m(y)f(the)h Fs(shopt)d Ft(builtin)i(\(see)630 4902 y(Section)28 b(4.3.2)g([The)f -(Shopt)f(Builtin],)i(page)f(54\).)41 b(If)26 b Fq(shopt)p +(Shopt)f(Builtin],)i(page)f(55\).)41 b(If)26 b Fq(shopt)p 2690 4902 V 40 w(option)h Ft(is)g(presen)m(t,)h(`)p Fs(-O)p Ft(')f(sets)630 5011 y(the)40 b(v)-5 b(alue)40 b(of)f(that)h(option;)45 b(`)p Fs(+O)p Ft(')40 b(unsets)e(it.)69 b(If)39 b Fq(shopt)p @@ -9976,1153 +9907,1171 @@ b(Bash)30 b(F)-8 b(eatures)2484 b(73)150 299 y Fs(--)384 b Ft(A)38 b Fs(--)g Ft(signals)g(the)h(end)e(of)i(options)f(and)g (disables)g(further)f(option)h(pro)s(cessing.)64 b(An)m(y)630 408 y(argumen)m(ts)31 b(after)g(the)f Fs(--)g Ft(are)h(treated)g(as)g -(\014lenames)f(and)g(argumen)m(ts.)275 575 y(A)d Fm(lo)-5 +(\014lenames)f(and)g(argumen)m(ts.)275 567 y(A)d Fk(lo)-5 b(gin)35 b Ft(shell)27 b(is)g(one)h(whose)f(\014rst)f(c)m(haracter)j (of)e(argumen)m(t)h(zero)f(is)h(`)p Fs(-)p Ft(',)g(or)f(one)g(in)m(v)m -(ok)m(ed)i(with)e(the)150 685 y(`)p Fs(--login)p Ft(')i(option.)275 -825 y(An)24 b Fm(inter)-5 b(active)33 b Ft(shell)25 b(is)g(one)g +(ok)m(ed)i(with)e(the)150 676 y(`)p Fs(--login)p Ft(')i(option.)275 +810 y(An)24 b Fk(inter)-5 b(active)33 b Ft(shell)25 b(is)g(one)g (started)g(without)g(non-option)h(argumen)m(ts,)g(unless)f(`)p -Fs(-s)p Ft(')f(is)h(sp)s(eci\014ed,)150 934 y(without)43 +Fs(-s)p Ft(')f(is)h(sp)s(eci\014ed,)150 920 y(without)43 b(sp)s(ecifying)f(the)i(`)p Fs(-c)p Ft(')e(option,)47 b(and)42 b(whose)h(input)f(and)g(output)g(are)h(b)s(oth)g(connected)g -(to)150 1044 y(terminals)22 b(\(as)h(determined)f(b)m(y)g +(to)150 1029 y(terminals)22 b(\(as)h(determined)f(b)m(y)g Fs(isatty\(3\))p Ft(\),)f(or)i(one)f(started)g(with)g(the)g(`)p Fs(-i)p Ft(')g(option.)39 b(See)22 b(Section)h(6.3)150 -1153 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(75,)g(for)f(more)h -(information.)275 1293 y(If)38 b(argumen)m(ts)h(remain)g(after)g +1139 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(75,)g(for)f(more)h +(information.)275 1273 y(If)38 b(argumen)m(ts)h(remain)g(after)g (option)h(pro)s(cessing,)h(and)d(neither)h(the)g(`)p Fs(-c)p Ft(')f(nor)h(the)g(`)p Fs(-s)p Ft(')f(option)150 -1403 y(has)33 b(b)s(een)g(supplied,)h(the)g(\014rst)e(argumen)m(t)j(is) +1382 y(has)33 b(b)s(een)g(supplied,)h(the)g(\014rst)e(argumen)m(t)j(is) e(assumed)g(to)h(b)s(e)f(the)h(name)g(of)g(a)g(\014le)g(con)m(taining)h -(shell)150 1512 y(commands)30 b(\(see)g(Section)h(3.8)g([Shell)f -(Scripts],)g(page)h(34\).)41 b(When)30 b(Bash)g(is)g(in)m(v)m(ok)m(ed)i -(in)d(this)h(fashion,)150 1622 y Fs($0)37 b Ft(is)g(set)h(to)h(the)e +(shell)150 1492 y(commands)30 b(\(see)g(Section)h(3.8)g([Shell)f +(Scripts],)g(page)h(33\).)41 b(When)30 b(Bash)g(is)g(in)m(v)m(ok)m(ed)i +(in)d(this)h(fashion,)150 1601 y Fs($0)37 b Ft(is)g(set)h(to)h(the)e (name)h(of)f(the)h(\014le,)i(and)c(the)i(p)s(ositional)g(parameters)g -(are)g(set)g(to)g(the)g(remaining)150 1731 y(argumen)m(ts.)h(Bash)26 +(are)g(set)g(to)g(the)g(remaining)150 1711 y(argumen)m(ts.)h(Bash)26 b(reads)f(and)g(executes)h(commands)f(from)g(this)g(\014le,)i(then)e -(exits.)40 b(Bash's)25 b(exit)i(status)150 1841 y(is)f(the)h(exit)h +(exits.)40 b(Bash's)25 b(exit)i(status)150 1821 y(is)f(the)h(exit)h (status)e(of)h(the)g(last)g(command)f(executed)h(in)g(the)f(script.)40 -b(If)26 b(no)g(commands)g(are)h(executed,)150 1951 y(the)k(exit)g -(status)g(is)f(0.)150 2221 y Fr(6.2)68 b(Bash)45 b(Startup)g(Files)275 -2470 y Ft(This)34 b(section)i(describ)s(es)e(ho)m(w)h(Bash)g(executes)i -(its)e(startup)g(\014les.)54 b(If)35 b(an)m(y)g(of)h(the)f(\014les)g -(exist)h(but)150 2579 y(cannot)26 b(b)s(e)e(read,)i(Bash)f(rep)s(orts)g -(an)g(error.)38 b(Tildes)25 b(are)h(expanded)e(in)g(\014le)i(names)f -(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)150 2689 y(under)29 -b(Tilde)h(Expansion)g(\(see)h(Section)g(3.5.2)i([Tilde)d(Expansion],)g -(page)i(19\).)275 2828 y(In)m(teractiv)m(e)g(shells)f(are)g(describ)s +b(If)26 b(no)g(commands)g(are)h(executed,)150 1930 y(the)k(exit)g +(status)g(is)f(0.)150 2161 y Fr(6.2)68 b(Bash)45 b(Startup)g(Files)150 +2321 y Ft(This)23 b(section)j(describ)s(es)d(ho)m(w)i(Bash)f(executes)h +(its)g(startup)f(\014les.)38 b(If)24 b(an)m(y)h(of)f(the)h(\014les)f +(exist)h(but)e(cannot)150 2430 y(b)s(e)k(read,)i(Bash)f(rep)s(orts)f +(an)h(error.)39 b(Tildes)28 b(are)g(expanded)f(in)h(\014le)g(names)g +(as)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(under)150 2540 +y(Tilde)h(Expansion)g(\(see)h(Section)h(3.5.2)g([Tilde)e(Expansion],)h +(page)g(19\).)275 2674 y(In)m(teractiv)m(e)h(shells)f(are)g(describ)s (ed)e(in)h(Section)h(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(75.) -150 3063 y Fk(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f -(login)j(shell,)g(or)g(with)e(`)p Fi(--login)p Fk(')275 -3312 y Ft(When)e(Bash)g(is)h(in)m(v)m(ok)m(ed)h(as)e(an)g(in)m -(teractiv)m(e)k(login)d(shell,)i(or)d(as)h(a)g(non-in)m(teractiv)m(e)i -(shell)d(with)150 3422 y(the)d(`)p Fs(--login)p Ft(')d(option,)37 -b(it)d(\014rst)g(reads)g(and)g(executes)i(commands)e(from)f(the)i -(\014le)g(`)p Fs(/etc/profile)p Ft(',)150 3531 y(if)28 -b(that)h(\014le)f(exists.)41 b(After)28 b(reading)h(that)f(\014le,)h -(it)g(lo)s(oks)g(for)f(`)p Fs(~/.bash_profile)p Ft(',)d(`)p -Fs(~/.bash_login)p Ft(',)150 3641 y(and)j(`)p Fs(~/.profile)p -Ft(',)f(in)i(that)g(order,)g(and)f(reads)g(and)h(executes)h(commands)e -(from)g(the)h(\014rst)f(one)h(that)150 3750 y(exists)i(and)e(is)h -(readable.)41 b(The)30 b(`)p Fs(--noprofile)p Ft(')d(option)k(ma)m(y)f -(b)s(e)g(used)f(when)g(the)h(shell)h(is)f(started)g(to)150 -3860 y(inhibit)g(this)g(b)s(eha)m(vior.)275 3999 y(When)72 -b(a)i(login)g(shell)f(exits,)85 b(Bash)73 b(reads)g(and)g(executes)h -(commands)f(from)g(the)g(\014le)150 4109 y(`)p Fs(~/.bash_logout)p -Ft(',)27 b(if)k(it)f(exists.)150 4343 y Fk(In)m(v)m(ok)m(ed)40 -b(as)h(an)f(in)m(teractiv)m(e)f(non-login)k(shell)275 -4592 y Ft(When)35 b(an)g(in)m(teractiv)m(e)j(shell)e(that)f(is)h(not)f -(a)h(login)g(shell)g(is)f(started,)i(Bash)f(reads)f(and)g(executes)150 -4702 y(commands)24 b(from)f(`)p Fs(~/.bashrc)p Ft(',)h(if)g(that)g -(\014le)g(exists.)40 b(This)23 b(ma)m(y)i(b)s(e)e(inhibited)g(b)m(y)h -(using)g(the)g(`)p Fs(--norc)p Ft(')150 4812 y(option.)52 -b(The)33 b(`)p Fs(--rcfile)28 b Fj(file)11 b Ft(')33 -b(option)h(will)g(force)h(Bash)f(to)h(read)e(and)h(execute)h(commands)e -(from)150 4921 y Fq(\014le)j Ft(instead)30 b(of)h(`)p -Fs(~/.bashrc)p Ft('.)275 5061 y(So,)f(t)m(ypically)-8 -b(,)33 b(y)m(our)d(`)p Fs(~/.bash_profile)p Ft(')d(con)m(tains)32 -b(the)e(line)390 5200 y Fs(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g -(~/.bashrc;)e(fi)150 5340 y Ft(after)31 b(\(or)g(b)s(efore\))f(an)m(y)h -(login-sp)s(eci\014c)g(initializations.)p eop end +150 2872 y Fj(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f +(login)j(shell,)g(or)g(with)e(`)p Fh(--login)p Fj(')150 +3019 y Ft(When)c(Bash)f(is)h(in)m(v)m(ok)m(ed)h(as)f(an)g(in)m +(teractiv)m(e)j(login)d(shell,)i(or)e(as)g(a)g(non-in)m(teractiv)m(e)i +(shell)e(with)g(the)150 3128 y(`)p Fs(--login)p Ft(')j(option,)k(it)e +(\014rst)e(reads)h(and)g(executes)h(commands)f(from)f(the)i(\014le)f(`) +p Fs(/etc/profile)p Ft(',)g(if)150 3238 y(that)35 b(\014le)g(exists.)55 +b(After)35 b(reading)g(that)g(\014le,)h(it)g(lo)s(oks)f(for)f(`)p +Fs(~/.bash_profile)p Ft(',)f(`)p Fs(~/.bash_login)p Ft(',)150 +3348 y(and)28 b(`)p Fs(~/.profile)p Ft(',)f(in)i(that)g(order,)g(and)f +(reads)g(and)h(executes)h(commands)e(from)g(the)h(\014rst)f(one)h(that) +150 3457 y(exists)i(and)e(is)h(readable.)41 b(The)30 +b(`)p Fs(--noprofile)p Ft(')d(option)k(ma)m(y)f(b)s(e)g(used)f(when)g +(the)h(shell)h(is)f(started)g(to)150 3567 y(inhibit)g(this)g(b)s(eha)m +(vior.)275 3701 y(When)72 b(a)i(login)g(shell)f(exits,)85 +b(Bash)73 b(reads)g(and)g(executes)h(commands)f(from)g(the)g(\014le)150 +3810 y(`)p Fs(~/.bash_logout)p Ft(',)27 b(if)k(it)f(exists.)150 +4008 y Fj(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f +(non-login)k(shell)150 4155 y Ft(When)g(an)h(in)m(teractiv)m(e)i(shell) +e(that)g(is)f(not)h(a)g(login)g(shell)g(is)f(started,)48 +b(Bash)c(reads)f(and)g(executes)150 4265 y(commands)24 +b(from)f(`)p Fs(~/.bashrc)p Ft(',)h(if)g(that)g(\014le)g(exists.)40 +b(This)23 b(ma)m(y)i(b)s(e)e(inhibited)g(b)m(y)h(using)g(the)g(`)p +Fs(--norc)p Ft(')150 4374 y(option.)52 b(The)33 b(`)p +Fs(--rcfile)28 b Fi(file)11 b Ft(')33 b(option)h(will)g(force)h(Bash)f +(to)h(read)e(and)h(execute)h(commands)e(from)150 4484 +y Fq(\014le)j Ft(instead)30 b(of)h(`)p Fs(~/.bashrc)p +Ft('.)275 4618 y(So,)f(t)m(ypically)-8 b(,)33 b(y)m(our)d(`)p +Fs(~/.bash_profile)p Ft(')d(con)m(tains)32 b(the)e(line)390 +4752 y Fs(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g(~/.bashrc;)e(fi) +150 4885 y Ft(after)31 b(\(or)g(b)s(efore\))f(an)m(y)h(login-sp)s +(eci\014c)g(initializations.)150 5083 y Fj(In)m(v)m(ok)m(ed)40 +b(non-in)m(teractiv)m(ely)150 5230 y Ft(When)33 b(Bash)g(is)g(started)h +(non-in)m(teractiv)m(ely)-8 b(,)37 b(to)d(run)e(a)h(shell)h(script,)g +(for)f(example,)i(it)e(lo)s(oks)h(for)f(the)150 5340 +y(v)-5 b(ariable)35 b Fs(BASH_ENV)d Ft(in)i(the)h(en)m(vironmen)m(t,)h +(expands)e(its)g(v)-5 b(alue)35 b(if)g(it)g(app)s(ears)e(there,)j(and)e +(uses)g(the)p eop end %%Page: 74 80 TeXDict begin 74 79 bop 150 -116 a Ft(74)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(In)m(v)m(ok)m(ed)40 -b(non-in)m(teractiv)m(ely)275 564 y Ft(When)24 b(Bash)h(is)g(started)g -(non-in)m(teractiv)m(ely)-8 b(,)29 b(to)d(run)d(a)i(shell)g(script,)h -(for)f(example,)i(it)e(lo)s(oks)g(for)g(the)150 673 y(v)-5 -b(ariable)35 b Fs(BASH_ENV)d Ft(in)i(the)h(en)m(vironmen)m(t,)h -(expands)e(its)g(v)-5 b(alue)35 b(if)g(it)g(app)s(ears)e(there,)j(and)e -(uses)g(the)150 783 y(expanded)c(v)-5 b(alue)30 b(as)h(the)g(name)f(of) -h(a)f(\014le)h(to)g(read)f(and)g(execute.)42 b(Bash)31 -b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m(wing)150 -892 y(command)g(w)m(ere)h(executed:)390 1047 y Fs(if)47 +b(Reference)g(Man)m(ual)150 299 y(expanded)f(v)-5 b(alue)30 +b(as)h(the)g(name)f(of)h(a)f(\014le)h(to)g(read)f(and)g(execute.)42 +b(Bash)31 b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m(wing)150 +408 y(command)g(w)m(ere)h(executed:)390 570 y Fs(if)47 b([)h(-n)f("$BASH_ENV")e(];)i(then)f(.)i("$BASH_ENV";)c(fi)150 -1202 y Ft(but)30 b(the)g(v)-5 b(alue)31 b(of)g(the)f -Fs(PATH)f Ft(v)-5 b(ariable)32 b(is)e(not)h(used)e(to)i(searc)m(h)g -(for)f(the)h(\014le)f(name.)275 1358 y(As)38 b(noted)h(ab)s(o)m(v)m(e,) -j(if)c(a)h(non-in)m(teractiv)m(e)i(shell)e(is)g(in)m(v)m(ok)m(ed)h -(with)e(the)g(`)p Fs(--login)p Ft(')g(option,)j(Bash)150 -1467 y(attempts)31 b(to)g(read)g(and)e(execute)j(commands)e(from)g(the) -h(login)g(shell)g(startup)e(\014les.)150 1733 y Fk(In)m(v)m(ok)m(ed)40 -b(with)g(name)h Fi(sh)275 1997 y Ft(If)29 b(Bash)g(is)h(in)m(v)m(ok)m -(ed)h(with)e(the)h(name)f Fs(sh)p Ft(,)g(it)i(tries)e(to)i(mimic)f(the) -f(startup)g(b)s(eha)m(vior)h(of)g(historical)150 2107 -y(v)m(ersions)h(of)f Fs(sh)g Ft(as)h(closely)h(as)e(p)s(ossible,)g +732 y Ft(but)30 b(the)g(v)-5 b(alue)31 b(of)g(the)f Fs(PATH)f +Ft(v)-5 b(ariable)32 b(is)e(not)h(used)e(to)i(searc)m(h)g(for)f(the)h +(\014le)f(name.)275 893 y(As)38 b(noted)h(ab)s(o)m(v)m(e,)j(if)c(a)h +(non-in)m(teractiv)m(e)i(shell)e(is)g(in)m(v)m(ok)m(ed)h(with)e(the)g +(`)p Fs(--login)p Ft(')g(option,)j(Bash)150 1003 y(attempts)31 +b(to)g(read)g(and)e(execute)j(commands)e(from)g(the)h(login)g(shell)g +(startup)e(\014les.)150 1229 y Fj(In)m(v)m(ok)m(ed)40 +b(with)g(name)h Fh(sh)150 1376 y Ft(If)c(Bash)g(is)g(in)m(v)m(ok)m(ed)i +(with)e(the)g(name)g Fs(sh)p Ft(,)i(it)f(tries)f(to)h(mimic)g(the)f +(startup)g(b)s(eha)m(vior)g(of)h(historical)150 1486 +y(v)m(ersions)31 b(of)f Fs(sh)g Ft(as)h(closely)h(as)e(p)s(ossible,)g (while)h(conforming)f(to)h(the)g Fl(posix)e Ft(standard)h(as)h(w)m -(ell.)275 2262 y(When)50 b(in)m(v)m(ok)m(ed)j(as)f(an)f(in)m(teractiv)m +(ell.)275 1647 y(When)50 b(in)m(v)m(ok)m(ed)j(as)f(an)f(in)m(teractiv)m (e)j(login)e(shell,)57 b(or)51 b(as)g(a)h(non-in)m(teractiv)m(e)h -(shell)f(with)f(the)150 2371 y(`)p Fs(--login)p Ft(')39 +(shell)f(with)f(the)150 1757 y(`)p Fs(--login)p Ft(')39 b(option,)k(it)e(\014rst)e(attempts)i(to)g(read)f(and)g(execute)h -(commands)f(from)g(`)p Fs(/etc/profile)p Ft(')150 2481 +(commands)f(from)g(`)p Fs(/etc/profile)p Ft(')150 1867 y(and)d(`)p Fs(~/.profile)p Ft(',)g(in)g(that)h(order.)62 b(The)37 b(`)p Fs(--noprofile)p Ft(')e(option)j(ma)m(y)g(b)s(e)f(used)g -(to)h(inhibit)f(this)150 2591 y(b)s(eha)m(vior.)82 b(When)44 +(to)h(inhibit)f(this)150 1976 y(b)s(eha)m(vior.)82 b(When)44 b(in)m(v)m(ok)m(ed)h(as)g(an)f(in)m(teractiv)m(e)j(shell)d(with)g(the)g (name)g Fs(sh)p Ft(,)j(Bash)d(lo)s(oks)h(for)f(the)150 -2700 y(v)-5 b(ariable)37 b Fs(ENV)p Ft(,)g(expands)e(its)i(v)-5 +2086 y(v)-5 b(ariable)37 b Fs(ENV)p Ft(,)g(expands)e(its)i(v)-5 b(alue)36 b(if)g(it)h(is)f(de\014ned,)h(and)e(uses)h(the)g(expanded)g -(v)-5 b(alue)36 b(as)h(the)f(name)150 2810 y(of)i(a)h(\014le)g(to)g +(v)-5 b(alue)36 b(as)h(the)f(name)150 2195 y(of)i(a)h(\014le)g(to)g (read)f(and)g(execute.)66 b(Since)38 b(a)h(shell)f(in)m(v)m(ok)m(ed)i (as)f Fs(sh)e Ft(do)s(es)h(not)h(attempt)g(to)g(read)g(and)150 -2919 y(execute)i(commands)e(from)g(an)m(y)h(other)g(startup)f(\014les,) +2305 y(execute)i(commands)e(from)g(an)m(y)h(other)g(startup)f(\014les,) j(the)e(`)p Fs(--rcfile)p Ft(')d(option)j(has)g(no)f(e\013ect.)70 -b(A)150 3029 y(non-in)m(teractiv)m(e)32 b(shell)d(in)m(v)m(ok)m(ed)h +b(A)150 2415 y(non-in)m(teractiv)m(e)32 b(shell)d(in)m(v)m(ok)m(ed)h (with)f(the)g(name)g Fs(sh)f Ft(do)s(es)g(not)i(attempt)g(to)f(read)g -(an)m(y)g(other)g(startup)150 3139 y(\014les.)275 3294 +(an)m(y)g(other)g(startup)150 2524 y(\014les.)275 2686 y(When)h(in)m(v)m(ok)m(ed)h(as)g Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g Fl(posix)e Ft(mo)s(de)h(after)h(the)g(startup)f(\014les)g(are)h(read.) -150 3559 y Fk(In)m(v)m(ok)m(ed)40 b(in)h Fh(posix)f Fk(mo)s(de)275 -3824 y Ft(When)d(Bash)g(is)g(started)h(in)f Fl(posix)f -Ft(mo)s(de,)j(as)e(with)g(the)h(`)p Fs(--posix)p Ft(')d(command)i(line) -h(option,)h(it)150 3933 y(follo)m(ws)28 b(the)g Fl(posix)e -Ft(standard)h(for)g(startup)g(\014les.)39 b(In)27 b(this)g(mo)s(de,)g -(in)m(teractiv)m(e)k(shells)c(expand)f(the)i Fs(ENV)150 -4043 y Ft(v)-5 b(ariable)36 b(and)f(commands)g(are)h(read)g(and)f -(executed)h(from)f(the)h(\014le)g(whose)f(name)g(is)h(the)g(expanded) -150 4152 y(v)-5 b(alue.)41 b(No)31 b(other)g(startup)f(\014les)g(are)h -(read.)150 4418 y Fk(In)m(v)m(ok)m(ed)40 b(b)m(y)g(remote)h(shell)h -(daemon)275 4682 y Ft(Bash)33 b(attempts)h(to)f(determine)g(when)f(it)i -(is)f(b)s(eing)g(run)e(with)i(its)g(standard)f(input)g(connected)i(to) -150 4792 y(a)c(a)h(net)m(w)m(ork)g(connection,)g(as)f(if)g(b)m(y)g(the) -g(remote)h(shell)f(daemon,)h(usually)e Fs(rshd)p Ft(,)g(or)h(the)h -(secure)f(shell)150 4902 y(daemon)41 b Fs(sshd)p Ft(.)70 +150 2912 y Fj(In)m(v)m(ok)m(ed)40 b(in)h Fg(posix)g Fj(mo)s(de)150 +3059 y Ft(When)25 b(Bash)g(is)h(started)f(in)g Fl(posix)g +Ft(mo)s(de,)h(as)f(with)g(the)h(`)p Fs(--posix)p Ft(')d(command)i(line) +h(option,)h(it)f(follo)m(ws)150 3169 y(the)e Fl(posix)f +Ft(standard)h(for)f(startup)h(\014les.)38 b(In)24 b(this)g(mo)s(de,)h +(in)m(teractiv)m(e)i(shells)d(expand)f(the)h Fs(ENV)f +Ft(v)-5 b(ariable)150 3278 y(and)30 b(commands)g(are)g(read)h(and)e +(executed)j(from)d(the)i(\014le)f(whose)g(name)h(is)f(the)h(expanded)e +(v)-5 b(alue.)41 b(No)150 3388 y(other)31 b(startup)f(\014les)g(are)h +(read.)150 3614 y Fj(In)m(v)m(ok)m(ed)40 b(b)m(y)g(remote)h(shell)h +(daemon)150 3761 y Ft(Bash)36 b(attempts)h(to)g(determine)f(when)f(it)i +(is)f(b)s(eing)g(run)e(with)i(its)g(standard)g(input)f(connected)i(to)g +(a)150 3871 y(a)e(net)m(w)m(ork)h(connection,)h(as)e(if)g(b)m(y)g(the)g +(remote)g(shell)g(daemon,)i(usually)d Fs(rshd)p Ft(,)h(or)g(the)g +(secure)g(shell)150 3980 y(daemon)41 b Fs(sshd)p Ft(.)70 b(If)40 b(Bash)h(determines)f(it)h(is)g(b)s(eing)f(run)f(in)i(this)f -(fashion,)j(it)e(reads)g(and)f(executes)150 5011 y(commands)26 +(fashion,)j(it)e(reads)g(and)f(executes)150 4090 y(commands)26 b(from)f(`)p Fs(~/.bashrc)p Ft(',)g(if)i(that)f(\014le)g(exists)h(and)f (is)g(readable.)40 b(It)26 b(will)g(not)g(do)g(this)g(if)g(in)m(v)m(ok) -m(ed)150 5121 y(as)g Fs(sh)p Ft(.)39 b(The)25 b(`)p Fs(--norc)p +m(ed)150 4200 y(as)g Fs(sh)p Ft(.)39 b(The)25 b(`)p Fs(--norc)p Ft(')g(option)h(ma)m(y)g(b)s(e)f(used)g(to)i(inhibit)e(this)h(b)s(eha)m (vior,)h(and)e(the)h(`)p Fs(--rcfile)p Ft(')e(option)150 -5230 y(ma)m(y)33 b(b)s(e)g(used)f(to)h(force)h(another)f(\014le)g(to)g +4309 y(ma)m(y)33 b(b)s(e)g(used)f(to)h(force)h(another)f(\014le)g(to)g (b)s(e)g(read,)g(but)f Fs(rshd)g Ft(do)s(es)h(not)g(generally)h(in)m(v) -m(ok)m(e)h(the)e(shell)150 5340 y(with)d(those)h(options)g(or)f(allo)m -(w)i(them)e(to)h(b)s(e)f(sp)s(eci\014ed.)p eop end -%%Page: 75 81 -TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(75)150 299 y Fk(In)m(v)m(ok)m(ed)40 -b(with)g(unequal)h(e\013ectiv)m(e)e(and)i(real)g Fh(uid/gid)p -Fk(s)275 538 y Ft(If)26 b(Bash)i(is)f(started)h(with)f(the)g -(e\013ectiv)m(e)j(user)d(\(group\))g(id)g(not)h(equal)g(to)g(the)f -(real)h(user)f(\(group\))g(id,)150 648 y(and)f(the)i +m(ok)m(e)h(the)e(shell)150 4419 y(with)d(those)h(options)g(or)f(allo)m +(w)i(them)e(to)h(b)s(e)f(sp)s(eci\014ed.)150 4645 y Fj(In)m(v)m(ok)m +(ed)40 b(with)g(unequal)h(e\013ectiv)m(e)e(and)i(real)g +Fg(uid/gid)p Fj(s)150 4792 y Ft(If)34 b(Bash)h(is)g(started)g(with)f +(the)h(e\013ectiv)m(e)i(user)d(\(group\))h(id)f(not)h(equal)g(to)g(the) +g(real)g(user)f(\(group\))h(id,)150 4902 y(and)26 b(the)i Fs(-p)e Ft(option)h(is)g(not)h(supplied,)e(no)h(startup)g(\014les)g (are)g(read,)h(shell)f(functions)g(are)g(not)g(inherited)150 -757 y(from)g(the)h(en)m(vironmen)m(t,)h(the)f Fs(SHELLOPTS)d -Ft(v)-5 b(ariable,)29 b(if)f(it)g(app)s(ears)f(in)g(the)h(en)m -(vironmen)m(t,)h(is)f(ignored,)150 867 y(and)f(the)h(e\013ectiv)m(e)j -(user)c(id)g(is)h(set)g(to)h(the)f(real)g(user)f(id.)40 -b(If)27 b(the)h Fs(-p)g Ft(option)g(is)g(supplied)e(at)j(in)m(v)m(o)s -(cation,)150 977 y(the)i(startup)f(b)s(eha)m(vior)g(is)g(the)h(same,)g -(but)f(the)g(e\013ectiv)m(e)j(user)d(id)g(is)g(not)h(reset.)150 -1220 y Fr(6.3)68 b(In)l(teractiv)l(e)47 b(Shells)150 -1540 y Fk(6.3.1)63 b(What)40 b(is)h(an)g(In)m(teractiv)m(e)e(Shell?)275 -1779 y Ft(An)25 b(in)m(teractiv)m(e)j(shell)d(is)h(one)f(started)h -(without)g(non-option)f(argumen)m(ts,)i(unless)e(`)p -Fs(-s)p Ft(')g(is)g(sp)s(eci\014ed,)150 1889 y(without)34 -b(sp)s(ecifying)h(the)f(`)p Fs(-c)p Ft(')g(option,)j(and)c(whose)h -(input)g(and)g(error)g(output)g(are)g(b)s(oth)g(connected)150 -1998 y(to)d(terminals)g(\(as)g(determined)f(b)m(y)g Fs(isatty\(3\))p -Ft(\),)f(or)h(one)h(started)f(with)g(the)h(`)p Fs(-i)p -Ft(')f(option.)275 2128 y(An)g(in)m(teractiv)m(e)j(shell)d(generally)i -(reads)e(from)g(and)g(writes)g(to)h(a)g(user's)f(terminal.)275 -2258 y(The)e(`)p Fs(-s)p Ft(')i(in)m(v)m(o)s(cation)h(option)f(ma)m(y)g -(b)s(e)f(used)f(to)i(set)g(the)g(p)s(ositional)g(parameters)f(when)g -(an)g(in)m(ter-)150 2367 y(activ)m(e)k(shell)d(is)h(started.)150 -2577 y Fk(6.3.2)63 b(Is)41 b(this)g(Shell)g(In)m(teractiv)m(e?)275 -2817 y Ft(T)-8 b(o)32 b(determine)g(within)g(a)g(startup)g(script)g -(whether)g(or)g(not)g(Bash)g(is)g(running)f(in)m(teractiv)m(ely)-8 -b(,)36 b(test)150 2926 y(the)42 b(v)-5 b(alue)42 b(of)f(the)h(`)p -Fs(-)p Ft(')g(sp)s(ecial)g(parameter.)75 b(It)41 b(con)m(tains)i -Fs(i)e Ft(when)g(the)h(shell)f(is)h(in)m(teractiv)m(e.)77 -b(F)-8 b(or)150 3036 y(example:)390 3166 y Fs(case)47 -b("$-")f(in)390 3275 y(*i*\))h(echo)f(This)h(shell)f(is)h(interactive)e -(;;)390 3385 y(*\))i(echo)g(This)f(shell)h(is)g(not)g(interactive)e(;;) -390 3495 y(esac)275 3624 y Ft(Alternativ)m(ely)-8 b(,)28 +5011 y(from)41 b(the)g(en)m(vironmen)m(t,)j(the)d Fs(SHELLOPTS)p +Ft(,)h Fs(BASHOPTS)p Ft(,)g Fs(CDPATH)p Ft(,)g(and)e +Fs(GLOBIGNORE)e Ft(v)-5 b(ariables,)45 b(if)150 5121 +y(they)28 b(app)s(ear)f(in)h(the)g(en)m(vironmen)m(t,)i(are)e(ignored,) +h(and)e(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)g(to)h(the)f(real)h +(user)150 5230 y(id.)62 b(If)38 b(the)f Fs(-p)h Ft(option)g(is)f +(supplied)g(at)h(in)m(v)m(o)s(cation,)k(the)c(startup)f(b)s(eha)m(vior) +h(is)g(the)g(same,)i(but)d(the)150 5340 y(e\013ectiv)m(e)c(user)d(id)g +(is)g(not)h(reset.)p eop end +%%Page: 75 81 +TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(75)150 299 y Fr(6.3)68 +b(In)l(teractiv)l(e)47 b(Shells)150 520 y Fj(6.3.1)63 +b(What)40 b(is)h(an)g(In)m(teractiv)m(e)e(Shell?)150 +667 y Ft(An)c(in)m(teractiv)m(e)k(shell)d(is)g(one)g(started)g(without) +f(non-option)h(argumen)m(ts,)i(unless)d(`)p Fs(-s)p Ft(')h(is)f(sp)s +(eci\014ed,)150 777 y(without)f(sp)s(ecifying)h(the)f(`)p +Fs(-c)p Ft(')g(option,)j(and)c(whose)h(input)g(and)g(error)g(output)g +(are)g(b)s(oth)g(connected)150 886 y(to)d(terminals)g(\(as)g +(determined)f(b)m(y)g Fs(isatty\(3\))p Ft(\),)f(or)h(one)h(started)f +(with)g(the)h(`)p Fs(-i)p Ft(')f(option.)275 1018 y(An)g(in)m(teractiv) +m(e)j(shell)d(generally)i(reads)e(from)g(and)g(writes)g(to)h(a)g +(user's)f(terminal.)275 1150 y(The)e(`)p Fs(-s)p Ft(')i(in)m(v)m(o)s +(cation)h(option)f(ma)m(y)g(b)s(e)f(used)f(to)i(set)g(the)g(p)s +(ositional)g(parameters)f(when)g(an)g(in)m(ter-)150 1259 +y(activ)m(e)k(shell)d(is)h(started.)150 1453 y Fj(6.3.2)63 +b(Is)41 b(this)g(Shell)g(In)m(teractiv)m(e?)150 1600 +y Ft(T)-8 b(o)30 b(determine)g(within)f(a)h(startup)g(script)f(whether) +g(or)h(not)g(Bash)g(is)g(running)e(in)m(teractiv)m(ely)-8 +b(,)33 b(test)e(the)150 1710 y(v)-5 b(alue)30 b(of)g(the)f(`)p +Fs(-)p Ft(')h(sp)s(ecial)g(parameter.)41 b(It)29 b(con)m(tains)i +Fs(i)e Ft(when)g(the)g(shell)h(is)f(in)m(teractiv)m(e.)44 +b(F)-8 b(or)30 b(example:)390 1841 y Fs(case)47 b("$-")f(in)390 +1951 y(*i*\))h(echo)f(This)h(shell)f(is)h(interactive)e(;;)390 +2061 y(*\))i(echo)g(This)f(shell)h(is)g(not)g(interactive)e(;;)390 +2170 y(esac)275 2302 y Ft(Alternativ)m(ely)-8 b(,)28 b(startup)23 b(scripts)h(ma)m(y)g(examine)g(the)g(v)-5 b(ariable)25 b Fs(PS1)p Ft(;)g(it)g(is)e(unset)h(in)f(non-in)m -(teractiv)m(e)150 3734 y(shells,)31 b(and)e(set)i(in)f(in)m(teractiv)m -(e)k(shells.)40 b(Th)m(us:)390 3864 y Fs(if)47 b([)h(-z)f("$PS1")f(];)h -(then)772 3973 y(echo)f(This)h(shell)f(is)i(not)f(interactive)390 -4083 y(else)772 4193 y(echo)f(This)h(shell)f(is)i(interactive)390 -4302 y(fi)150 4512 y Fk(6.3.3)63 b(In)m(teractiv)m(e)38 -b(Shell)k(Beha)m(vior)275 4752 y Ft(When)30 b(the)g(shell)h(is)f -(running)f(in)m(teractiv)m(ely)-8 b(,)34 b(it)d(c)m(hanges)g(its)g(b)s -(eha)m(vior)g(in)f(sev)m(eral)h(w)m(a)m(ys.)199 4881 +(teractiv)m(e)150 2411 y(shells,)31 b(and)e(set)i(in)f(in)m(teractiv)m +(e)k(shells.)40 b(Th)m(us:)390 2543 y Fs(if)47 b([)h(-z)f("$PS1")f(];)h +(then)772 2653 y(echo)f(This)h(shell)f(is)i(not)f(interactive)390 +2762 y(else)772 2872 y(echo)f(This)h(shell)f(is)i(interactive)390 +2981 y(fi)150 3175 y Fj(6.3.3)63 b(In)m(teractiv)m(e)38 +b(Shell)k(Beha)m(vior)150 3322 y Ft(When)30 b(the)h(shell)f(is)h +(running)d(in)m(teractiv)m(ely)-8 b(,)34 b(it)d(c)m(hanges)h(its)f(b)s +(eha)m(vior)f(in)g(sev)m(eral)i(w)m(a)m(ys.)199 3454 y(1.)61 b(Startup)37 b(\014les)g(are)h(read)f(and)g(executed)h(as)f (describ)s(ed)g(in)g(Section)h(6.2)g([Bash)g(Startup)e(Files],)330 -4991 y(page)31 b(73.)199 5121 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h +3563 y(page)31 b(73.)199 3695 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h (Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(89\))g(is)f(enabled)g(b)m -(y)g(default.)55 b(When)34 b(job)330 5230 y(con)m(trol)h(is)f(in)f +(y)g(default.)55 b(When)34 b(job)330 3805 y(con)m(trol)h(is)f(in)f (e\013ect,)k(Bash)d(ignores)g(the)g(k)m(eyb)s(oard-generated)h(job)e -(con)m(trol)i(signals)g Fs(SIGTTIN)p Ft(,)330 5340 y -Fs(SIGTTOU)p Ft(,)29 b(and)g Fs(SIGTSTP)p Ft(.)p eop -end -%%Page: 76 82 -TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31 -b(Reference)g(Man)m(ual)199 299 y(3.)61 b(Bash)39 b(expands)f(and)g -(displa)m(ys)h Fs(PS1)f Ft(b)s(efore)h(reading)g(the)g(\014rst)f(line)h -(of)g(a)g(command,)i(and)d(ex-)330 408 y(pands)30 b(and)g(displa)m(ys)h +(con)m(trol)i(signals)g Fs(SIGTTIN)p Ft(,)330 3914 y +Fs(SIGTTOU)p Ft(,)29 b(and)g Fs(SIGTSTP)p Ft(.)199 4046 +y(3.)61 b(Bash)39 b(expands)f(and)g(displa)m(ys)h Fs(PS1)f +Ft(b)s(efore)h(reading)g(the)g(\014rst)f(line)h(of)g(a)g(command,)i +(and)d(ex-)330 4156 y(pands)30 b(and)g(displa)m(ys)h Fs(PS2)e Ft(b)s(efore)i(reading)g(the)g(second)f(and)h(subsequen)m(t)f -(lines)h(of)g(a)g(m)m(ulti-line)330 518 y(command.)199 -669 y(4.)61 b(Bash)26 b(executes)i(the)e(v)-5 b(alue)27 +(lines)h(of)g(a)g(m)m(ulti-line)330 4265 y(command.)199 +4397 y(4.)61 b(Bash)26 b(executes)i(the)e(v)-5 b(alue)27 b(of)f(the)h Fs(PROMPT_COMMAND)22 b Ft(v)-5 b(ariable)27 -b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 779 +b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 4506 y(the)31 b(primary)e(prompt,)h Fs($PS1)f Ft(\(see)i(Section)g(5.2)h -([Bash)f(V)-8 b(ariables],)32 b(page)f(61\).)199 930 +([Bash)f(V)-8 b(ariables],)32 b(page)f(61\).)199 4638 y(5.)61 b(Readline)30 b(\(see)h(Chapter)e(8)h([Command)e(Line)i (Editing],)g(page)g(93\))h(is)f(used)f(to)h(read)f(commands)330 -1039 y(from)h(the)g(user's)g(terminal.)199 1190 y(6.)61 +4748 y(from)h(the)g(user's)g(terminal.)199 4879 y(6.)61 b(Bash)36 b(insp)s(ects)g(the)h(v)-5 b(alue)37 b(of)f(the)g Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f -(exiting)i(imme-)330 1300 y(diately)f(when)e(it)i(receiv)m(es)h(an)e +(exiting)i(imme-)330 4989 y(diately)f(when)e(it)i(receiv)m(es)h(an)e Fs(EOF)f Ft(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command) -g(\(see)330 1409 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g -(51\).)199 1560 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1) +g(\(see)330 5099 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g +(51\).)199 5230 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1) g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(121\))h(and)d -(history)330 1670 y(expansion)23 b(\(see)i(Section)f(9.3)h([History)f +(history)330 5340 y(expansion)23 b(\(see)i(Section)f(9.3)h([History)f (In)m(teraction],)j(page)d(123\))h(are)f(enabled)g(b)m(y)f(default.)39 -b(Bash)330 1779 y(will)23 b(sa)m(v)m(e)i(the)e(command)f(history)h(to)h -(the)f(\014le)g(named)f(b)m(y)h Fs($HISTFILE)d Ft(when)i(an)h(in)m -(teractiv)m(e)j(shell)330 1889 y(exits.)199 2040 y(8.)61 -b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i(page)e -(79\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 2191 -y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g +b(Bash)p eop end +%%Page: 76 82 +TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31 +b(Reference)g(Man)m(ual)330 299 y(will)23 b(sa)m(v)m(e)i(the)e(command) +f(history)h(to)h(the)f(\014le)g(named)f(b)m(y)h Fs($HISTFILE)d +Ft(when)i(an)h(in)m(teractiv)m(e)j(shell)330 408 y(exits.)199 +543 y(8.)61 b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g +([Aliases],)i(page)e(79\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 +678 y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g (ignores)f Fs(SIGTERM)f Ft(\(see)i(Section)g(3.7.6)h([Signals],)g(page) -f(33\).)154 2342 y(10.)61 b(In)26 b(the)h(absence)h(of)f(an)m(y)g +f(32\).)154 813 y(10.)61 b(In)26 b(the)h(absence)h(of)f(an)m(y)g (traps,)g Fs(SIGINT)e Ft(is)i(caugh)m(t)h(and)f(handled)e(\(\(see)k -(Section)e(3.7.6)i([Signals],)330 2451 y(page)i(33\).)42 +(Section)e(3.7.6)i([Signals],)330 923 y(page)i(32\).)42 b Fs(SIGINT)29 b Ft(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)154 -2602 y(11.)61 b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i +1058 y(11.)61 b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i Fs(SIGHUP)d Ft(to)j(all)g(jobs)f(on)g(exit)h(if)g(the)f -Fs(huponexit)e Ft(shell)330 2712 y(option)31 b(has)f(b)s(een)g(enabled) -g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(33\).)154 -2863 y(12.)61 b(The)26 b(`)p Fs(-n)p Ft(')f(in)m(v)m(o)s(cation)k +Fs(huponexit)e Ft(shell)330 1167 y(option)31 b(has)f(b)s(een)g(enabled) +g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(32\).)154 +1302 y(12.)61 b(The)26 b(`)p Fs(-n)p Ft(')f(in)m(v)m(o)s(cation)k (option)d(is)g(ignored,)h(and)f(`)p Fs(set)k(-n)p Ft(')25 b(has)h(no)g(e\013ect)i(\(see)e(Section)h(4.3.1)h([The)330 -2972 y(Set)j(Builtin],)g(page)g(51\).)154 3123 y(13.)61 +1412 y(Set)j(Builtin],)g(page)g(51\).)154 1547 y(13.)61 b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e(mail)g(p)s(erio)s(dically)-8 b(,)34 b(dep)s(ending)c(on)i(the)g(v)-5 b(alues)32 b(of)g(the)h -Fs(MAIL)p Ft(,)e Fs(MAILPATH)p Ft(,)330 3233 y(and)f +Fs(MAIL)p Ft(,)e Fs(MAILPATH)p Ft(,)330 1656 y(and)f Fs(MAILCHECK)e Ft(shell)i(v)-5 b(ariables)31 b(\(see)h(Section)f(5.2)g -([Bash)g(V)-8 b(ariables],)32 b(page)f(61\).)154 3384 +([Bash)g(V)-8 b(ariables],)32 b(page)f(61\).)154 1791 y(14.)61 b(Expansion)32 b(errors)h(due)f(to)i(references)f(to)h(un)m(b) s(ound)c(shell)j(v)-5 b(ariables)34 b(after)g(`)p Fs(set)29 -b(-u)p Ft(')k(has)g(b)s(een)330 3494 y(enabled)d(will)h(not)g(cause)g +b(-u)p Ft(')k(has)g(b)s(een)330 1901 y(enabled)d(will)h(not)g(cause)g (the)f(shell)h(to)g(exit)g(\(see)g(Section)h(4.3.1)g([The)e(Set)h -(Builtin],)g(page)g(51\).)154 3644 y(15.)61 b(The)48 +(Builtin],)g(page)g(51\).)154 2036 y(15.)61 b(The)48 b(shell)h(will)f(not)h(exit)g(on)g(expansion)f(errors)g(caused)g(b)m(y) h Fq(v)-5 b(ar)54 b Ft(b)s(eing)48 b(unset)g(or)h(n)m(ull)f(in)330 -3754 y Fs(${)p Fj(var)11 b Fs(:?)p Fj(word)g Fs(})26 +2146 y Fs(${)p Fi(var)11 b Fs(:?)p Fi(word)g Fs(})26 b Ft(expansions)k(\(see)h(Section)h(3.5.3)g([Shell)e(P)m(arameter)i -(Expansion],)e(page)h(20\).)154 3905 y(16.)61 b(Redirection)31 +(Expansion],)e(page)h(19\).)154 2280 y(16.)61 b(Redirection)31 b(errors)f(encoun)m(tered)h(b)m(y)f(shell)h(builtins)f(will)g(not)h -(cause)g(the)f(shell)h(to)g(exit.)154 4056 y(17.)61 b(When)26 +(cause)g(the)f(shell)h(to)g(exit.)154 2415 y(17.)61 b(When)26 b(running)f(in)i Fl(posix)e Ft(mo)s(de,)j(a)f(sp)s(ecial)g(builtin)f (returning)g(an)g(error)h(status)g(will)g(not)f(cause)330 -4166 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h([Bash)f -(POSIX)e(Mo)s(de],)i(page)g(85\).)154 4316 y(18.)61 b(A)34 +2525 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h([Bash)f +(POSIX)e(Mo)s(de],)i(page)g(84\).)154 2660 y(18.)61 b(A)34 b(failed)g Fs(exec)f Ft(will)h(not)g(cause)g(the)g(shell)g(to)g(exit)h (\(see)f(Section)h(4.1)g([Bourne)f(Shell)f(Builtins],)330 -4426 y(page)e(35\).)154 4577 y(19.)61 b(P)m(arser)31 +2770 y(page)e(35\).)154 2904 y(19.)61 b(P)m(arser)31 b(syn)m(tax)f(errors)g(will)h(not)g(cause)g(the)f(shell)h(to)g(exit.) -154 4728 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g +154 3039 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g (directory)g(argumen)m(ts)f(to)i(the)e Fs(cd)g Ft(builtin)g(is)h -(enabled)f(b)m(y)h(default)330 4838 y(\(see)35 b(the)g(description)f +(enabled)f(b)m(y)h(default)330 3149 y(\(see)35 b(the)g(description)f (of)h(the)f Fs(cdspell)f Ft(option)h(to)i(the)e Fs(shopt)f -Ft(builtin)h(in)g(Section)h(4.3.2)h([The)330 4947 y(Shopt)30 -b(Builtin],)h(page)g(54\).)154 5098 y(21.)61 b(The)42 +Ft(builtin)h(in)g(Section)h(4.3.2)h([The)330 3259 y(Shopt)30 +b(Builtin],)h(page)g(55\).)154 3394 y(21.)61 b(The)42 b(shell)h(will)g(c)m(hec)m(k)h(the)f(v)-5 b(alue)43 b(of)f(the)h Fs(TMOUT)e Ft(v)-5 b(ariable)44 b(and)e(exit)h(if)g(a)g(command)f(is)h -(not)330 5208 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s +(not)330 3503 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s (er)g(of)i(seconds)f(after)g(prin)m(ting)g Fs($PS1)f -Ft(\(see)i(Section)g(5.2)h([Bash)330 5317 y(V)-8 b(ariables],)32 -b(page)f(61\).)p eop end +Ft(\(see)i(Section)g(5.2)h([Bash)330 3613 y(V)-8 b(ariables],)32 +b(page)f(61\).)150 3847 y Fr(6.4)68 b(Bash)45 b(Conditional)h +(Expressions)150 4006 y Ft(Conditional)26 b(expressions)g(are)g(used)f +(b)m(y)g(the)h Fs([[)f Ft(comp)s(ound)g(command)g(and)g(the)h +Fs(test)f Ft(and)g Fs([)g Ft(builtin)150 4116 y(commands.)275 +4251 y(Expressions)32 b(ma)m(y)h(b)s(e)g(unary)f(or)h(binary)-8 +b(.)48 b(Unary)33 b(expressions)f(are)i(often)f(used)f(to)i(examine)g +(the)150 4361 y(status)26 b(of)g(a)h(\014le.)39 b(There)26 +b(are)g(string)g(op)s(erators)g(and)g(n)m(umeric)f(comparison)i(op)s +(erators)f(as)g(w)m(ell.)40 b(If)26 b(the)150 4470 y +Fq(\014le)38 b Ft(argumen)m(t)c(to)f(one)h(of)f(the)g(primaries)g(is)g +(of)g(the)g(form)g(`)p Fs(/dev/fd/)p Fi(N)11 b Ft(',)31 +b(then)i(\014le)g(descriptor)g Fq(N)43 b Ft(is)150 4580 +y(c)m(hec)m(k)m(ed.)e(If)26 b(the)g Fq(\014le)31 b Ft(argumen)m(t)26 +b(to)h(one)f(of)g(the)h(primaries)e(is)h(one)g(of)g(`)p +Fs(/dev/stdin)p Ft(',)f(`)p Fs(/dev/stdout)p Ft(',)150 +4689 y(or)30 b(`)p Fs(/dev/stderr)p Ft(',)e(\014le)j(descriptor)f(0,)h +(1,)g(or)g(2,)g(resp)s(ectiv)m(ely)-8 b(,)32 b(is)e(c)m(hec)m(k)m(ed.) +275 4825 y(When)h(used)g(with)g(`)p Fs([[)p Ft(',)h(The)f(`)p +Fs(<)p Ft(')h(and)f(`)p Fs(>)p Ft(')g(op)s(erators)h(sort)g +(lexicographically)i(using)d(the)h(curren)m(t)150 4934 +y(lo)s(cale.)275 5070 y(Unless)44 b(otherwise)h(sp)s(eci\014ed,)j +(primaries)c(that)h(op)s(erate)g(on)g(\014les)f(follo)m(w)i(sym)m(b)s +(olic)f(links)g(and)150 5179 y(op)s(erate)31 b(on)f(the)h(target)h(of)e +(the)h(link,)f(rather)h(than)f(the)g(link)h(itself.)150 +5340 y Fs(-a)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists.)p eop end %%Page: 77 83 TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(77)150 299 y Fr(6.4)68 -b(Bash)45 b(Conditional)h(Expressions)275 540 y Ft(Conditional)38 -b(expressions)g(are)h(used)f(b)m(y)g(the)g Fs([[)g Ft(comp)s(ound)f -(command)h(and)g(the)g Fs(test)g Ft(and)f Fs([)150 650 -y Ft(builtin)30 b(commands.)275 782 y(Expressions)i(ma)m(y)h(b)s(e)g -(unary)f(or)h(binary)-8 b(.)48 b(Unary)33 b(expressions)f(are)i(often)f -(used)f(to)i(examine)g(the)150 892 y(status)26 b(of)g(a)h(\014le.)39 -b(There)26 b(are)g(string)g(op)s(erators)g(and)g(n)m(umeric)f -(comparison)i(op)s(erators)f(as)g(w)m(ell.)40 b(If)26 -b(the)150 1001 y Fq(\014le)38 b Ft(argumen)m(t)c(to)f(one)h(of)f(the)g -(primaries)g(is)g(of)g(the)g(form)g(`)p Fs(/dev/fd/)p -Fj(N)11 b Ft(',)31 b(then)i(\014le)g(descriptor)g Fq(N)43 -b Ft(is)150 1111 y(c)m(hec)m(k)m(ed.)e(If)26 b(the)g -Fq(\014le)31 b Ft(argumen)m(t)26 b(to)h(one)f(of)g(the)h(primaries)e -(is)h(one)g(of)g(`)p Fs(/dev/stdin)p Ft(',)f(`)p Fs(/dev/stdout)p -Ft(',)150 1220 y(or)30 b(`)p Fs(/dev/stderr)p Ft(',)e(\014le)j -(descriptor)f(0,)h(1,)g(or)g(2,)g(resp)s(ectiv)m(ely)-8 -b(,)32 b(is)e(c)m(hec)m(k)m(ed.)275 1352 y(Unless)44 -b(otherwise)h(sp)s(eci\014ed,)j(primaries)c(that)h(op)s(erate)g(on)g -(\014les)f(follo)m(w)i(sym)m(b)s(olic)f(links)g(and)150 -1462 y(op)s(erate)31 b(on)f(the)h(target)h(of)e(the)h(link,)f(rather)h -(than)f(the)g(link)h(itself.)150 1616 y Fs(-a)f Fj(file)162 -b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists.)150 -1771 y Fs(-b)30 b Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g -Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(blo)s(c)m(k)g(sp)s(ecial)g -(\014le.)150 1925 y Fs(-c)f Fj(file)162 b Ft(T)-8 b(rue)30 -b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s -(ecial)f(\014le.)150 2079 y Fs(-d)f Fj(file)162 b Ft(T)-8 -b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(directory) --8 b(.)150 2233 y Fs(-e)30 b Fj(file)162 b Ft(T)-8 b(rue)30 -b(if)g Fq(\014le)36 b Ft(exists.)150 2388 y Fs(-f)30 -b Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 -b Ft(exists)31 b(and)f(is)g(a)h(regular)f(\014le.)150 -2542 y Fs(-g)g Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g -Fq(\014le)36 b Ft(exists)31 b(and)f(its)g(set-group-id)h(bit)g(is)f -(set.)150 2696 y Fs(-h)g Fj(file)162 b Ft(T)-8 b(rue)30 -b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g -(link.)150 2851 y Fs(-k)f Fj(file)162 b Ft(T)-8 b(rue)30 -b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(its)g Fs(")p -Ft(stic)m(ky)p Fs(")h Ft(bit)g(is)f(set.)150 3005 y Fs(-p)g -Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b -Ft(exists)31 b(and)f(is)g(a)h(named)f(pip)s(e)f(\(FIF)m(O\).)150 -3159 y Fs(-r)h Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g -Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(readable.)150 -3314 y Fs(-s)g Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g -Fq(\014le)36 b Ft(exists)31 b(and)f(has)g(a)g(size)i(greater)f(than)f -(zero.)150 3468 y Fs(-t)g Fj(fd)258 b Ft(T)-8 b(rue)30 -b(if)g(\014le)h(descriptor)f Fq(fd)j Ft(is)e(op)s(en)e(and)h(refers)g -(to)h(a)g(terminal.)150 3622 y Fs(-u)f Fj(file)162 b -Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(its)g -(set-user-id)h(bit)f(is)h(set.)150 3777 y Fs(-w)f Fj(file)162 -b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 -b(and)f(is)g(writable.)150 3931 y Fs(-x)g Fj(file)162 +b(Bash)30 b(F)-8 b(eatures)2484 b(77)150 299 y Fs(-b)30 +b Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 +b Ft(exists)31 b(and)f(is)g(a)h(blo)s(c)m(k)g(sp)s(ecial)g(\014le.)150 +461 y Fs(-c)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 +b Ft(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s(ecial)f(\014le.)150 +623 y Fs(-d)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 +b Ft(exists)31 b(and)f(is)g(a)h(directory)-8 b(.)150 +785 y Fs(-e)30 b Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists.)150 948 y Fs(-f)30 b Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 -b(and)f(is)g(executable.)150 4085 y Fs(-O)g Fj(file)162 +b(and)f(is)g(a)h(regular)f(\014le.)150 1110 y Fs(-g)g +Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b +Ft(exists)31 b(and)f(its)g(set-group-id)h(bit)g(is)f(set.)150 +1272 y Fs(-h)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150 +1434 y Fs(-k)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(its)g Fs(")p Ft(stic)m(ky)p +Fs(")h Ft(bit)g(is)f(set.)150 1596 y Fs(-p)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 -b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f(e\013ectiv)m(e)j(user)d(id.)150 -4240 y Fs(-G)g Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g +b(and)f(is)g(a)h(named)f(pip)s(e)f(\(FIF)m(O\).)150 1759 +y Fs(-r)h Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 +b Ft(exists)31 b(and)f(is)g(readable.)150 1921 y Fs(-s)g +Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b +Ft(exists)31 b(and)f(has)g(a)g(size)i(greater)f(than)f(zero.)150 +2083 y Fs(-t)g Fi(fd)258 b Ft(T)-8 b(rue)30 b(if)g(\014le)h(descriptor) +f Fq(fd)j Ft(is)e(op)s(en)e(and)h(refers)g(to)h(a)g(terminal.)150 +2245 y Fs(-u)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(its)g(set-user-id)h(bit)f(is)h +(set.)150 2407 y Fs(-w)f Fi(file)162 b Ft(T)-8 b(rue)30 +b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(writable.)150 +2570 y Fs(-x)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(executable.)150 +2732 y Fs(-O)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f -(e\013ectiv)m(e)j(group)d(id.)150 4394 y Fs(-L)g Fj(file)162 +(e\013ectiv)m(e)j(user)d(id.)150 2894 y Fs(-G)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 -b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150 4548 y Fs(-S)f -Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b -Ft(exists)31 b(and)f(is)g(a)h(so)s(c)m(k)m(et.)150 4703 -y Fs(-N)f Fj(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 -b Ft(exists)31 b(and)f(has)g(b)s(een)f(mo)s(di\014ed)h(since)g(it)h(w)m -(as)g(last)g(read.)150 4857 y Fj(file1)39 b Fs(-nt)30 -b Fj(file2)630 4966 y Ft(T)-8 b(rue)23 b(if)h Fq(\014le1)32 -b Ft(is)24 b(new)m(er)g(\(according)h(to)g(mo)s(di\014cation)f(date\))h -(than)f Fq(\014le2)p Ft(,)i(or)e(if)g Fq(\014le1)31 b -Ft(exists)630 5076 y(and)f Fq(\014le2)38 b Ft(do)s(es)30 -b(not.)150 5230 y Fj(file1)39 b Fs(-ot)30 b Fj(file2)630 -5340 y Ft(T)-8 b(rue)30 b(if)g Fq(\014le1)38 b Ft(is)31 -b(older)f(than)g Fq(\014le2)p Ft(,)i(or)e(if)g Fq(\014le2)38 -b Ft(exists)31 b(and)f Fq(\014le1)38 b Ft(do)s(es)30 -b(not.)p eop end +b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f(e\013ectiv)m(e)j(group)d(id.)150 +3056 y Fs(-L)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150 +3218 y Fs(-S)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(so)s(c)m(k)m(et.)150 +3381 y Fs(-N)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g +Fq(\014le)36 b Ft(exists)31 b(and)f(has)g(b)s(een)f(mo)s(di\014ed)h +(since)g(it)h(w)m(as)g(last)g(read.)150 3543 y Fi(file1)39 +b Fs(-nt)30 b Fi(file2)630 3652 y Ft(T)-8 b(rue)23 b(if)g +Fq(\014le1)31 b Ft(is)24 b(new)m(er)f(\(according)i(to)f(mo)s +(di\014cation)g(date\))g(than)g Fq(\014le2)7 b Ft(,)25 +b(or)f(if)f Fq(\014le1)31 b Ft(exists)630 3762 y(and)f +Fq(\014le2)38 b Ft(do)s(es)30 b(not.)150 3924 y Fi(file1)39 +b Fs(-ot)30 b Fi(file2)630 4034 y Ft(T)-8 b(rue)30 b(if)g +Fq(\014le1)38 b Ft(is)31 b(older)f(than)g Fq(\014le2)7 +b Ft(,)32 b(or)e(if)h Fq(\014le2)38 b Ft(exists)31 b(and)e +Fq(\014le1)39 b Ft(do)s(es)30 b(not.)150 4196 y Fi(file1)39 +b Fs(-ef)30 b Fi(file2)630 4305 y Ft(T)-8 b(rue)30 b(if)g +Fq(\014le1)38 b Ft(and)30 b Fq(\014le2)38 b Ft(refer)30 +b(to)i(the)e(same)h(device)g(and)f(ino)s(de)g(n)m(um)m(b)s(ers.)150 +4468 y Fs(-o)g Fi(optname)630 4577 y Ft(T)-8 b(rue)41 +b(if)g(shell)g(option)h Fq(optname)47 b Ft(is)41 b(enabled.)73 +b(The)41 b(list)h(of)f(options)g(app)s(ears)g(in)g(the)630 +4687 y(description)h(of)f(the)h(`)p Fs(-o)p Ft(')f(option)h(to)h(the)e +Fs(set)g Ft(builtin)g(\(see)i(Section)f(4.3.1)h([The)f(Set)630 +4796 y(Builtin],)31 b(page)g(51\).)150 4959 y Fs(-z)f +Fi(string)630 5068 y Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f +Fq(string)38 b Ft(is)31 b(zero.)150 5230 y Fs(-n)f Fi(string)150 +5340 y(string)192 b Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f +Fq(string)38 b Ft(is)31 b(non-zero.)p eop end %%Page: 78 84 TeXDict begin 78 83 bop 150 -116 a Ft(78)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fj(file1)39 b Fs(-ef)30 -b Fj(file2)630 408 y Ft(T)-8 b(rue)30 b(if)g Fq(\014le1)38 -b Ft(and)30 b Fq(\014le2)38 b Ft(refer)30 b(to)i(the)e(same)h(device)g -(and)f(ino)s(de)g(n)m(um)m(b)s(ers.)150 570 y Fs(-o)g -Fj(optname)630 679 y Ft(T)-8 b(rue)41 b(if)g(shell)g(option)h -Fq(optname)47 b Ft(is)41 b(enabled.)73 b(The)41 b(list)h(of)f(options)g -(app)s(ears)g(in)g(the)630 789 y(description)h(of)f(the)h(`)p -Fs(-o)p Ft(')f(option)h(to)h(the)e Fs(set)g Ft(builtin)g(\(see)i -(Section)f(4.3.1)h([The)f(Set)630 898 y(Builtin],)31 -b(page)g(51\).)150 1060 y Fs(-z)f Fj(string)630 1169 -y Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f Fq(string)38 -b Ft(is)31 b(zero.)150 1330 y Fs(-n)f Fj(string)150 1440 -y(string)192 b Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f -Fq(string)38 b Ft(is)31 b(non-zero.)150 1601 y Fj(string1)39 -b Fs(==)30 b Fj(string2)630 1711 y Ft(T)-8 b(rue)33 b(if)h(the)g -(strings)f(are)h(equal.)51 b(`)p Fs(=)p Ft(')34 b(ma)m(y)g(b)s(e)f -(used)g(in)g(place)i(of)e(`)p Fs(==)p Ft(')h(for)f(strict)i -Fl(posix)630 1820 y Ft(compliance.)150 1981 y Fj(string1)k -Fs(!=)30 b Fj(string2)630 2091 y Ft(T)-8 b(rue)30 b(if)g(the)h(strings) -f(are)h(not)f(equal.)150 2252 y Fj(string1)39 b Fs(<)30 -b Fj(string2)630 2362 y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38 -b Ft(sorts)31 b(b)s(efore)f Fq(string2)38 b Ft(lexicographically)33 -b(in)d(the)h(curren)m(t)f(lo)s(cale.)150 2523 y Fj(string1)39 -b Fs(>)30 b Fj(string2)630 2632 y Ft(T)-8 b(rue)30 b(if)g -Fq(string1)38 b Ft(sorts)31 b(after)g Fq(string2)38 b -Ft(lexicographically)33 b(in)d(the)g(curren)m(t)h(lo)s(cale.)150 -2794 y Fj(arg1)40 b Fs(OP)29 b Fj(arg2)630 2903 y Fs(OP)k +b(Reference)g(Man)m(ual)150 299 y Fi(string1)39 b Fs(==)30 +b Fi(string2)150 408 y(string1)39 b Fs(=)30 b Fi(string2)630 +518 y Ft(T)-8 b(rue)35 b(if)h(the)g(strings)g(are)g(equal.)58 +b(`)p Fs(=)p Ft(')36 b(should)f(b)s(e)g(used)g(with)h(the)g +Fs(test)f Ft(command)g(for)630 628 y Fl(posix)30 b Ft(conformance.)150 +790 y Fi(string1)39 b Fs(!=)30 b Fi(string2)630 899 y +Ft(T)-8 b(rue)30 b(if)g(the)h(strings)f(are)h(not)f(equal.)150 +1061 y Fi(string1)39 b Fs(<)30 b Fi(string2)630 1171 +y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38 b Ft(sorts)31 +b(b)s(efore)f Fq(string2)38 b Ft(lexicographically)-8 +b(.)150 1333 y Fi(string1)39 b Fs(>)30 b Fi(string2)630 +1442 y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38 b Ft(sorts)31 +b(after)g Fq(string2)38 b Ft(lexicographically)-8 b(.)150 +1604 y Fi(arg1)40 b Fs(OP)29 b Fi(arg2)630 1714 y Fs(OP)k Ft(is)h(one)g(of)h(`)p Fs(-eq)p Ft(',)f(`)p Fs(-ne)p Ft(',)h(`)p Fs(-lt)p Ft(',)g(`)p Fs(-le)p Ft(',)f(`)p Fs(-gt)p Ft(',)h(or)f(`)p Fs(-ge)p Ft('.)51 b(These)34 -b(arithmetic)h(binary)630 3013 y(op)s(erators)h(return)e(true)i(if)f +b(arithmetic)h(binary)630 1823 y(op)s(erators)h(return)e(true)i(if)f Fq(arg1)44 b Ft(is)36 b(equal)g(to,)i(not)e(equal)g(to,)i(less)e(than,) -h(less)f(than)f(or)630 3122 y(equal)29 b(to,)g(greater)h(than,)e(or)g -(greater)i(than)d(or)i(equal)f(to)h Fq(arg2)p Ft(,)h(resp)s(ectiv)m -(ely)-8 b(.)42 b Fq(Arg1)36 b Ft(and)630 3232 y Fq(arg2)j -Ft(ma)m(y)30 b(b)s(e)g(p)s(ositiv)m(e)i(or)e(negativ)m(e)j(in)m -(tegers.)150 3494 y Fr(6.5)68 b(Shell)45 b(Arithmetic)275 -3740 y Ft(The)34 b(shell)g(allo)m(ws)i(arithmetic)g(expressions)f(to)g -(b)s(e)f(ev)-5 b(aluated,)37 b(as)e(one)g(of)g(the)f(shell)h -(expansions)150 3849 y(or)30 b(b)m(y)h(the)f Fs(let)g -Ft(and)f(the)i(`)p Fs(-i)p Ft(')f(option)h(to)g(the)g -Fs(declare)d Ft(builtins.)275 3985 y(Ev)-5 b(aluation)27 +h(less)f(than)f(or)630 1933 y(equal)28 b(to,)h(greater)g(than,)f(or)f +(greater)i(than)e(or)h(equal)g(to)g Fq(arg2)7 b Ft(,)30 +b(resp)s(ectiv)m(ely)-8 b(.)41 b Fq(Arg1)36 b Ft(and)630 +2043 y Fq(arg2)j Ft(ma)m(y)30 b(b)s(e)g(p)s(ositiv)m(e)i(or)e(negativ)m +(e)j(in)m(tegers.)150 2279 y Fr(6.5)68 b(Shell)45 b(Arithmetic)150 +2438 y Ft(The)35 b(shell)g(allo)m(ws)i(arithmetic)f(expressions)f(to)h +(b)s(e)f(ev)-5 b(aluated,)38 b(as)d(one)h(of)f(the)h(shell)f +(expansions)g(or)150 2548 y(b)m(y)30 b(the)h Fs(let)e +Ft(and)h(the)h(`)p Fs(-i)p Ft(')f(option)h(to)g(the)f +Fs(declare)f Ft(builtins.)275 2685 y(Ev)-5 b(aluation)27 b(is)g(done)f(in)g(\014xed-width)g(in)m(tegers)i(with)e(no)h(c)m(hec)m (k)h(for)e(o)m(v)m(er\015o)m(w,)j(though)d(division)h(b)m(y)150 -4095 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39 +2795 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39 b(The)26 b(op)s(erators)h(and)g(their)g(precedence,)h(asso)s(ciativit)m -(y)-8 b(,)32 b(and)150 4205 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h +(y)-8 b(,)32 b(and)150 2904 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h (in)e(the)h(C)g(language.)56 b(The)35 b(follo)m(wing)h(list)g(of)f(op)s -(erators)g(is)g(group)s(ed)f(in)m(to)150 4314 y(lev)m(els)27 +(erators)g(is)g(group)s(ed)f(in)m(to)150 3014 y(lev)m(els)27 b(of)f(equal-precedence)i(op)s(erators.)39 b(The)25 b(lev)m(els)j(are)e (listed)h(in)e(order)h(of)g(decreasing)g(precedence.)150 -4476 y Fj(id)11 b Fs(++)29 b Fj(id)p Fs(--)630 4586 y -Ft(v)-5 b(ariable)31 b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen)m -(t)150 4747 y Fs(++)p Fj(id)40 b Fs(--)p Fj(id)630 4857 +3177 y Fi(id)11 b Fs(++)29 b Fi(id)11 b Fs(--)630 3287 +y Ft(v)-5 b(ariable)31 b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen) +m(t)150 3449 y Fs(++)p Fi(id)40 b Fs(--)p Fi(id)630 3558 y Ft(v)-5 b(ariable)31 b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150 -5018 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150 -5179 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150 -5340 y Fs(**)384 b Ft(exp)s(onen)m(tiation)p eop end +3720 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150 +3882 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150 +4044 y Fs(**)384 b Ft(exp)s(onen)m(tiation)150 4206 y +Fs(*)30 b(/)g(\045)276 b Ft(m)m(ultiplication,)33 b(division,)d +(remainder)150 4368 y Fs(+)g(-)354 b Ft(addition,)31 +b(subtraction)150 4530 y Fs(<<)f(>>)258 b Ft(left)31 +b(and)f(righ)m(t)h(bit)m(wise)g(shifts)150 4692 y Fs(<=)f(>=)g(<)g(>) +102 b Ft(comparison)150 4854 y Fs(==)30 b(!=)258 b Ft(equalit)m(y)32 +b(and)e(inequalit)m(y)150 5016 y Fs(&)432 b Ft(bit)m(wise)31 +b(AND)150 5178 y Fs(^)432 b Ft(bit)m(wise)31 b(exclusiv)m(e)h(OR)150 +5340 y Fs(|)432 b Ft(bit)m(wise)31 b(OR)p eop end %%Page: 79 85 TeXDict begin 79 84 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(79)150 299 y Fs(*)30 -b(/)g(\045)276 b Ft(m)m(ultiplication,)33 b(division,)d(remainder)150 -464 y Fs(+)g(-)354 b Ft(addition,)31 b(subtraction)150 -630 y Fs(<<)f(>>)258 b Ft(left)31 b(and)f(righ)m(t)h(bit)m(wise)g -(shifts)150 795 y Fs(<=)f(>=)g(<)g(>)102 b Ft(comparison)150 -961 y Fs(==)30 b(!=)258 b Ft(equalit)m(y)32 b(and)e(inequalit)m(y)150 -1126 y Fs(&)432 b Ft(bit)m(wise)31 b(AND)150 1292 y Fs(^)432 -b Ft(bit)m(wise)31 b(exclusiv)m(e)h(OR)150 1458 y Fs(|)432 -b Ft(bit)m(wise)31 b(OR)150 1623 y Fs(&&)384 b Ft(logical)33 -b(AND)150 1789 y Fs(||)384 b Ft(logical)33 b(OR)150 1954 -y Fs(expr)c(?)h(expr)f(:)h(expr)630 2064 y Ft(conditional)i(op)s -(erator)150 2229 y Fs(=)e(*=)g(/=)g(\045=)f(+=)h(-=)g(<<=)f(>>=)h(&=)g -(^=)f(|=)630 2339 y Ft(assignmen)m(t)150 2504 y Fs(expr1)g(,)h(expr2) -630 2614 y Ft(comma)275 2782 y(Shell)38 b(v)-5 b(ariables)39 -b(are)g(allo)m(w)m(ed)i(as)e(op)s(erands;)i(parameter)e(expansion)g(is) -f(p)s(erformed)g(b)s(efore)g(the)150 2892 y(expression)g(is)g(ev)-5 -b(aluated.)66 b(Within)38 b(an)h(expression,)h(shell)e(v)-5 -b(ariables)39 b(ma)m(y)g(also)g(b)s(e)f(referenced)g(b)m(y)150 -3002 y(name)31 b(without)f(using)g(the)h(parameter)g(expansion)f(syn)m -(tax.)42 b(A)31 b(shell)f(v)-5 b(ariable)32 b(that)f(is)f(n)m(ull)h(or) -f(unset)150 3111 y(ev)-5 b(aluates)41 b(to)f(0)g(when)e(referenced)h(b) -m(y)g(name)h(without)f(using)g(the)g(parameter)h(expansion)f(syn)m -(tax.)150 3221 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5 -b(ariable)36 b(is)g(ev)-5 b(aluated)38 b(as)e(an)g(arithmetic)h -(expression)f(when)f(it)h(is)g(referenced,)i(or)150 3330 -y(when)31 b(a)i(v)-5 b(ariable)33 b(whic)m(h)f(has)g(b)s(een)f(giv)m -(en)j(the)e Fq(in)m(teger)40 b Ft(attribute)33 b(using)f(`)p -Fs(declare)d(-i)p Ft(')i(is)i(assigned)150 3440 y(a)k(v)-5 -b(alue.)58 b(A)36 b(n)m(ull)g(v)-5 b(alue)37 b(ev)-5 -b(aluates)38 b(to)f(0.)58 b(A)36 b(shell)h(v)-5 b(ariable)36 -b(need)g(not)h(ha)m(v)m(e)g(its)g(in)m(teger)g(attribute)150 -3550 y(turned)29 b(on)h(to)i(b)s(e)d(used)h(in)g(an)g(expression.)275 -3690 y(Constan)m(ts)41 b(with)g(a)h(leading)f(0)h(are)g(in)m(terpreted) -f(as)g(o)s(ctal)i(n)m(um)m(b)s(ers.)72 b(A)41 b(leading)h(`)p -Fs(0x)p Ft(')f(or)g(`)p Fs(0X)p Ft(')150 3800 y(denotes)31 -b(hexadecimal.)43 b(Otherwise,)31 b(n)m(um)m(b)s(ers)e(tak)m(e)k(the)e -(form)f([)p Fq(base)5 b Fs(#)p Ft(])p Fq(n)p Ft(,)31 -b(where)f Fq(base)36 b Ft(is)31 b(a)g(decimal)150 3909 -y(n)m(um)m(b)s(er)26 b(b)s(et)m(w)m(een)i(2)f(and)g(64)h(represen)m -(ting)g(the)f(arithmetic)h(base,)h(and)d Fq(n)h Ft(is)g(a)h(n)m(um)m(b) -s(er)e(in)h(that)h(base.)150 4019 y(If)39 b Fq(base)5 -b Fs(#)40 b Ft(is)g(omitted,)j(then)d(base)g(10)g(is)g(used.)68 -b(The)39 b(digits)i(greater)g(than)e(9)h(are)g(represen)m(ted)g(b)m(y) -150 4129 y(the)34 b(lo)m(w)m(ercase)h(letters,)h(the)d(upp)s(ercase)g -(letters,)i(`)p Fs(@)p Ft(',)g(and)e(`)p Fs(_)p Ft(',)h(in)f(that)h -(order.)50 b(If)32 b Fq(base)39 b Ft(is)34 b(less)f(than)150 -4238 y(or)i(equal)g(to)g(36,)i(lo)m(w)m(ercase)g(and)e(upp)s(ercase)e +b(Bash)30 b(F)-8 b(eatures)2484 b(79)150 299 y Fs(&&)384 +b Ft(logical)33 b(AND)150 446 y Fs(||)384 b Ft(logical)33 +b(OR)150 592 y Fs(expr)c(?)h(expr)f(:)h(expr)630 702 +y Ft(conditional)i(op)s(erator)150 849 y Fs(=)e(*=)g(/=)g(\045=)f(+=)h +(-=)g(<<=)f(>>=)h(&=)g(^=)f(|=)630 958 y Ft(assignmen)m(t)150 +1105 y Fs(expr1)g(,)h(expr2)630 1214 y Ft(comma)275 1361 +y(Shell)38 b(v)-5 b(ariables)39 b(are)g(allo)m(w)m(ed)i(as)e(op)s +(erands;)i(parameter)e(expansion)g(is)f(p)s(erformed)g(b)s(efore)g(the) +150 1471 y(expression)g(is)g(ev)-5 b(aluated.)66 b(Within)38 +b(an)h(expression,)h(shell)e(v)-5 b(ariables)39 b(ma)m(y)g(also)g(b)s +(e)f(referenced)g(b)m(y)150 1580 y(name)31 b(without)f(using)g(the)h +(parameter)g(expansion)f(syn)m(tax.)42 b(A)31 b(shell)f(v)-5 +b(ariable)32 b(that)f(is)f(n)m(ull)h(or)f(unset)150 1690 +y(ev)-5 b(aluates)41 b(to)f(0)g(when)e(referenced)h(b)m(y)g(name)h +(without)f(using)g(the)g(parameter)h(expansion)f(syn)m(tax.)150 +1800 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5 b(ariable)36 +b(is)g(ev)-5 b(aluated)38 b(as)e(an)g(arithmetic)h(expression)f(when)f +(it)h(is)g(referenced,)i(or)150 1909 y(when)31 b(a)i(v)-5 +b(ariable)33 b(whic)m(h)f(has)g(b)s(een)f(giv)m(en)j(the)e +Fq(in)m(teger)40 b Ft(attribute)33 b(using)f(`)p Fs(declare)d(-i)p +Ft(')i(is)i(assigned)150 2019 y(a)k(v)-5 b(alue.)58 b(A)36 +b(n)m(ull)g(v)-5 b(alue)37 b(ev)-5 b(aluates)38 b(to)f(0.)58 +b(A)36 b(shell)h(v)-5 b(ariable)36 b(need)g(not)h(ha)m(v)m(e)g(its)g +(in)m(teger)g(attribute)150 2128 y(turned)29 b(on)h(to)i(b)s(e)d(used)h +(in)g(an)g(expression.)275 2256 y(Constan)m(ts)41 b(with)g(a)h(leading) +f(0)h(are)g(in)m(terpreted)f(as)g(o)s(ctal)i(n)m(um)m(b)s(ers.)72 +b(A)41 b(leading)h(`)p Fs(0x)p Ft(')f(or)g(`)p Fs(0X)p +Ft(')150 2366 y(denotes)31 b(hexadecimal.)43 b(Otherwise,)31 +b(n)m(um)m(b)s(ers)e(tak)m(e)k(the)e(form)f([)p Fq(base)5 +b Fs(#)p Ft(])p Fq(n)p Ft(,)31 b(where)f Fq(base)36 b +Ft(is)31 b(a)g(decimal)150 2476 y(n)m(um)m(b)s(er)26 +b(b)s(et)m(w)m(een)i(2)f(and)g(64)h(represen)m(ting)g(the)f(arithmetic) +h(base,)h(and)d Fq(n)h Ft(is)g(a)h(n)m(um)m(b)s(er)e(in)h(that)h(base.) +150 2585 y(If)39 b Fq(base)5 b Fs(#)40 b Ft(is)g(omitted,)j(then)d +(base)g(10)g(is)g(used.)68 b(The)39 b(digits)i(greater)g(than)e(9)h +(are)g(represen)m(ted)g(b)m(y)150 2695 y(the)34 b(lo)m(w)m(ercase)h +(letters,)h(the)d(upp)s(ercase)g(letters,)i(`)p Fs(@)p +Ft(',)g(and)e(`)p Fs(_)p Ft(',)h(in)f(that)h(order.)50 +b(If)32 b Fq(base)39 b Ft(is)34 b(less)f(than)150 2804 +y(or)i(equal)g(to)g(36,)i(lo)m(w)m(ercase)g(and)e(upp)s(ercase)e (letters)j(ma)m(y)g(b)s(e)e(used)g(in)m(terc)m(hangeably)i(to)g -(represen)m(t)150 4348 y(n)m(um)m(b)s(ers)29 b(b)s(et)m(w)m(een)i(10)g -(and)f(35.)275 4488 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46 +(represen)m(t)150 2914 y(n)m(um)m(b)s(ers)29 b(b)s(et)m(w)m(een)i(10)g +(and)f(35.)275 3042 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46 b(in)f(order)f(of)h(precedence.)85 b(Sub-expressions)44 -b(in)g(paren)m(theses)i(are)150 4598 y(ev)-5 b(aluated)32 +b(in)g(paren)m(theses)i(are)150 3152 y(ev)-5 b(aluated)32 b(\014rst)d(and)h(ma)m(y)h(o)m(v)m(erride)g(the)g(precedence)g(rules)f -(ab)s(o)m(v)m(e.)150 4871 y Fr(6.6)68 b(Aliases)275 5121 -y Fq(Aliases)34 b Ft(allo)m(w)d(a)g(string)e(to)i(b)s(e)e(substituted)g -(for)h(a)g(w)m(ord)f(when)g(it)h(is)g(used)f(as)h(the)g(\014rst)f(w)m -(ord)h(of)g(a)150 5230 y(simple)i(command.)45 b(The)31 +(ab)s(o)m(v)m(e.)150 3371 y Fr(6.6)68 b(Aliases)150 3531 +y Fq(Aliases)41 b Ft(allo)m(w)d(a)f(string)f(to)h(b)s(e)f(substituted)g +(for)g(a)g(w)m(ord)g(when)g(it)h(is)f(used)f(as)i(the)g(\014rst)e(w)m +(ord)h(of)h(a)150 3640 y(simple)32 b(command.)45 b(The)31 b(shell)i(main)m(tains)f(a)h(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s -(e)e(set)h(and)g(unset)f(with)h(the)150 5340 y Fs(alias)d -Ft(and)h Fs(unalias)e Ft(builtin)i(commands.)p eop end -%%Page: 80 86 -TeXDict begin 80 85 bop 150 -116 a Ft(80)2572 b(Bash)31 -b(Reference)g(Man)m(ual)275 299 y(The)e(\014rst)f(w)m(ord)i(of)f(eac)m -(h)i(simple)f(command,)g(if)f(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g -(see)f(if)g(it)g(has)f(an)g(alias.)150 408 y(If)24 b(so,)i(that)g(w)m -(ord)e(is)h(replaced)g(b)m(y)f(the)h(text)h(of)e(the)h(alias.)40 -b(The)24 b(c)m(haracters)i(`)p Fs(/)p Ft(',)h(`)p Fs($)p -Ft(',)f(`)p Fs(`)p Ft(',)g(`)p Fs(=)p Ft(')f(and)f(an)m(y)h(of)150 -518 y(the)e(shell)g(metac)m(haracters)i(or)e(quoting)g(c)m(haracters)h -(listed)g(ab)s(o)m(v)m(e)g(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h -(name.)150 628 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h -(an)m(y)e(v)-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m -(haracters.)40 b(The)150 737 y(\014rst)35 b(w)m(ord)g(of)h(the)g -(replacemen)m(t)i(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m -(ord)g(that)g(is)g(iden)m(tical)i(to)e(an)150 847 y(alias)c(b)s(eing)f -(expanded)f(is)h(not)g(expanded)f(a)h(second)g(time.)43 -b(This)30 b(means)h(that)g(one)g(ma)m(y)h(alias)g Fs(ls)e -Ft(to)150 956 y Fs("ls)f(-F")p Ft(,)36 b(for)f(instance,)i(and)d(Bash)h -(do)s(es)g(not)g(try)g(to)g(recursiv)m(ely)h(expand)e(the)h(replacemen) -m(t)i(text.)150 1066 y(If)31 b(the)h(last)h(c)m(haracter)g(of)f(the)g -(alias)h(v)-5 b(alue)32 b(is)g(a)g(space)g(or)g(tab)g(c)m(haracter,)i -(then)d(the)h(next)g(command)150 1176 y(w)m(ord)e(follo)m(wing)i(the)e -(alias)i(is)e(also)i(c)m(hec)m(k)m(ed)g(for)e(alias)i(expansion.)275 -1319 y(Aliases)d(are)f(created)i(and)d(listed)i(with)f(the)g +(e)e(set)h(and)g(unset)f(with)h(the)150 3750 y Fs(alias)d +Ft(and)h Fs(unalias)e Ft(builtin)i(commands.)275 3878 +y(The)f(\014rst)f(w)m(ord)i(of)f(eac)m(h)i(simple)f(command,)g(if)f +(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g(see)f(if)g(it)g(has)f(an)g +(alias.)150 3988 y(If)24 b(so,)i(that)g(w)m(ord)e(is)h(replaced)g(b)m +(y)f(the)h(text)h(of)e(the)h(alias.)40 b(The)24 b(c)m(haracters)i(`)p +Fs(/)p Ft(',)h(`)p Fs($)p Ft(',)f(`)p Fs(`)p Ft(',)g(`)p +Fs(=)p Ft(')f(and)f(an)m(y)h(of)150 4097 y(the)e(shell)g(metac)m +(haracters)i(or)e(quoting)g(c)m(haracters)h(listed)g(ab)s(o)m(v)m(e)g +(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h(name.)150 +4207 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h(an)m(y)e(v) +-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m(haracters.) +40 b(The)150 4317 y(\014rst)35 b(w)m(ord)g(of)h(the)g(replacemen)m(t)i +(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m(ord)g(that)g(is)g +(iden)m(tical)i(to)e(an)150 4426 y(alias)c(b)s(eing)f(expanded)f(is)h +(not)g(expanded)f(a)h(second)g(time.)43 b(This)30 b(means)h(that)g(one) +g(ma)m(y)h(alias)g Fs(ls)e Ft(to)150 4536 y Fs("ls)f(-F")p +Ft(,)36 b(for)f(instance,)i(and)d(Bash)h(do)s(es)g(not)g(try)g(to)g +(recursiv)m(ely)h(expand)e(the)h(replacemen)m(t)i(text.)150 +4645 y(If)31 b(the)h(last)h(c)m(haracter)g(of)f(the)g(alias)h(v)-5 +b(alue)32 b(is)g(a)g(space)g(or)g(tab)g(c)m(haracter,)i(then)d(the)h +(next)g(command)150 4755 y(w)m(ord)e(follo)m(wing)i(the)e(alias)i(is)e +(also)i(c)m(hec)m(k)m(ed)g(for)e(alias)i(expansion.)275 +4883 y(Aliases)d(are)f(created)i(and)d(listed)i(with)f(the)g Fs(alias)f Ft(command,)h(and)g(remo)m(v)m(ed)h(with)f(the)g -Fs(unalias)150 1429 y Ft(command.)275 1573 y(There)44 +Fs(unalias)150 4993 y Ft(command.)275 5121 y(There)44 b(is)h(no)g(mec)m(hanism)g(for)f(using)h(argumen)m(ts)g(in)f(the)h (replacemen)m(t)i(text,)i(as)d(in)e Fs(csh)p Ft(.)83 -b(If)150 1682 y(argumen)m(ts)37 b(are)h(needed,)g(a)g(shell)f(function) +b(If)150 5230 y(argumen)m(ts)37 b(are)h(needed,)g(a)g(shell)f(function) f(should)g(b)s(e)h(used)f(\(see)i(Section)g(3.3)g([Shell)f(F)-8 -b(unctions],)150 1792 y(page)31 b(14\).)275 1936 y(Aliases)i(are)h(not) -e(expanded)g(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j -(unless)c(the)h Fs(expand_aliases)150 2045 y Ft(shell)e(option)f(is)h -(set)g(using)f Fs(shopt)f Ft(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g -(Builtin],)h(page)g(54\).)275 2189 y(The)38 b(rules)h(concerning)h(the) -f(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h -(confusing.)67 b(Bash)150 2299 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g -(one)f(complete)i(line)e(of)g(input)f(b)s(efore)h(executing)h(an)m(y)f -(of)g(the)g(commands)150 2408 y(on)h(that)h(line.)77 -b(Aliases)44 b(are)e(expanded)g(when)f(a)i(command)f(is)g(read,)k(not)c -(when)g(it)g(is)h(executed.)150 2518 y(Therefore,)f(an)e(alias)h -(de\014nition)e(app)s(earing)h(on)f(the)h(same)h(line)f(as)g(another)g -(command)f(do)s(es)h(not)150 2628 y(tak)m(e)31 b(e\013ect)f(un)m(til)g -(the)f(next)g(line)h(of)f(input)f(is)h(read.)41 b(The)28 -b(commands)h(follo)m(wing)i(the)e(alias)h(de\014nition)150 -2737 y(on)d(that)h(line)f(are)h(not)f(a\013ected)i(b)m(y)e(the)g(new)g -(alias.)41 b(This)26 b(b)s(eha)m(vior)h(is)g(also)h(an)f(issue)g(when)f -(functions)150 2847 y(are)d(executed.)39 b(Aliases)24 -b(are)f(expanded)f(when)f(a)i(function)g(de\014nition)f(is)h(read,)h -(not)f(when)e(the)i(function)150 2956 y(is)i(executed,)j(b)s(ecause)d -(a)h(function)f(de\014nition)f(is)i(itself)g(a)f(comp)s(ound)f -(command.)39 b(As)25 b(a)h(consequence,)150 3066 y(aliases)36 -b(de\014ned)d(in)h(a)g(function)g(are)h(not)f(a)m(v)-5 -b(ailable)37 b(un)m(til)d(after)h(that)g(function)f(is)g(executed.)53 -b(T)-8 b(o)35 b(b)s(e)150 3176 y(safe,)41 b(alw)m(a)m(ys)f(put)d(alias) -j(de\014nitions)e(on)g(a)h(separate)g(line,)i(and)d(do)g(not)g(use)g -Fs(alias)f Ft(in)h(comp)s(ound)150 3285 y(commands.)275 -3429 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i +b(unctions],)150 5340 y(page)31 b(14\).)p eop end +%%Page: 80 86 +TeXDict begin 80 85 bop 150 -116 a Ft(80)2572 b(Bash)31 +b(Reference)g(Man)m(ual)275 299 y(Aliases)i(are)h(not)e(expanded)g +(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j(unless)c(the)h +Fs(expand_aliases)150 408 y Ft(shell)e(option)f(is)h(set)g(using)f +Fs(shopt)f Ft(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)h +(page)g(55\).)275 540 y(The)38 b(rules)h(concerning)h(the)f +(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h(confusing.) +67 b(Bash)150 650 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g(one)f +(complete)i(line)e(of)g(input)f(b)s(efore)h(executing)h(an)m(y)f(of)g +(the)g(commands)150 760 y(on)h(that)h(line.)77 b(Aliases)44 +b(are)e(expanded)g(when)f(a)i(command)f(is)g(read,)k(not)c(when)g(it)g +(is)h(executed.)150 869 y(Therefore,)f(an)e(alias)h(de\014nition)e(app) +s(earing)h(on)f(the)h(same)h(line)f(as)g(another)g(command)f(do)s(es)h +(not)150 979 y(tak)m(e)31 b(e\013ect)f(un)m(til)g(the)f(next)g(line)h +(of)f(input)f(is)h(read.)41 b(The)28 b(commands)h(follo)m(wing)i(the)e +(alias)h(de\014nition)150 1088 y(on)d(that)h(line)f(are)h(not)f +(a\013ected)i(b)m(y)e(the)g(new)g(alias.)41 b(This)26 +b(b)s(eha)m(vior)h(is)g(also)h(an)f(issue)g(when)f(functions)150 +1198 y(are)d(executed.)39 b(Aliases)24 b(are)f(expanded)f(when)f(a)i +(function)g(de\014nition)f(is)h(read,)h(not)f(when)e(the)i(function)150 +1308 y(is)i(executed,)j(b)s(ecause)d(a)h(function)f(de\014nition)f(is)i +(itself)g(a)f(comp)s(ound)f(command.)39 b(As)25 b(a)h(consequence,)150 +1417 y(aliases)36 b(de\014ned)d(in)h(a)g(function)g(are)h(not)f(a)m(v) +-5 b(ailable)37 b(un)m(til)d(after)h(that)g(function)f(is)g(executed.) +53 b(T)-8 b(o)35 b(b)s(e)150 1527 y(safe,)41 b(alw)m(a)m(ys)f(put)d +(alias)j(de\014nitions)e(on)g(a)h(separate)g(line,)i(and)d(do)g(not)g +(use)g Fs(alias)f Ft(in)h(comp)s(ound)150 1636 y(commands.)275 +1768 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i (functions)f(are)g(preferred)g(o)m(v)m(er)h(aliases.)150 -3710 y Fr(6.7)68 b(Arra)l(ys)275 3963 y Ft(Bash)39 b(pro)m(vides)h -(one-dimensional)g(indexed)f(and)g(asso)s(ciativ)m(e)j(arra)m(y)f(v)-5 -b(ariables.)68 b(An)m(y)40 b(v)-5 b(ariable)150 4073 -y(ma)m(y)44 b(b)s(e)g(used)f(as)h(an)g(indexed)f(arra)m(y;)51 -b(the)44 b Fs(declare)e Ft(builtin)i(will)g(explicitly)h(declare)g(an)f -(arra)m(y)-8 b(.)150 4182 y(There)31 b(is)h(no)g(maxim)m(um)g(limit)g -(on)g(the)g(size)h(of)f(an)f(arra)m(y)-8 b(,)34 b(nor)d(an)m(y)h -(requiremen)m(t)g(that)h(mem)m(b)s(ers)e(b)s(e)150 4292 -y(indexed)k(or)h(assigned)g(con)m(tiguously)-8 b(.)59 -b(Indexed)35 b(arra)m(ys)h(are)g(referenced)g(using)f(in)m(tegers)i -(\(including)150 4402 y(arithmetic)44 b(expressions)f(\(see)h(Section)g -(6.5)g([Shell)f(Arithmetic],)k(page)d(78\))g(and)e(are)i(zero-based;) -150 4511 y(asso)s(ciativ)m(e)33 b(arra)m(ys)e(use)f(arbitrary)g -(strings.)275 4655 y(An)c(indexed)h(arra)m(y)h(is)f(created)h +1996 y Fr(6.7)68 b(Arra)l(ys)150 2155 y Ft(Bash)33 b(pro)m(vides)g +(one-dimensional)g(indexed)f(and)h(asso)s(ciativ)m(e)i(arra)m(y)e(v)-5 +b(ariables.)49 b(An)m(y)33 b(v)-5 b(ariable)33 b(ma)m(y)150 +2265 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e +Fs(declare)e Ft(builtin)h(will)i(explicitly)g(declare)g(an)f(arra)m(y) +-8 b(.)46 b(There)32 b(is)150 2374 y(no)h(maxim)m(um)g(limit)h(on)f +(the)g(size)h(of)g(an)f(arra)m(y)-8 b(,)35 b(nor)d(an)m(y)i(requiremen) +m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 2484 +y(or)26 b(assigned)h(con)m(tiguously)-8 b(.)41 b(Indexed)25 +b(arra)m(ys)i(are)f(referenced)g(using)g(in)m(tegers)i(\(including)e +(arithmetic)150 2593 y(expressions)41 b(\(see)h(Section)g(6.5)h([Shell) +e(Arithmetic],)46 b(page)c(78\))g(and)f(are)g(zero-based;)48 +b(asso)s(ciativ)m(e)150 2703 y(arra)m(ys)31 b(use)f(arbitrary)g +(strings.)275 2835 y(An)c(indexed)h(arra)m(y)h(is)f(created)h (automatically)j(if)c(an)m(y)g(v)-5 b(ariable)28 b(is)g(assigned)f(to)h -(using)f(the)g(syn)m(tax)390 4799 y Fs(name[)p Fj(subscript)11 -b Fs(]=)p Fj(value)150 4943 y Ft(The)25 b Fq(subscript)g +(using)f(the)g(syn)m(tax)390 2967 y Fs(name[)p Fi(subscript)11 +b Fs(]=)p Fi(value)150 3099 y Ft(The)25 b Fq(subscript)g Ft(is)h(treated)g(as)f(an)g(arithmetic)h(expression)f(that)h(m)m(ust)f (ev)-5 b(aluate)27 b(to)e(a)h(n)m(um)m(b)s(er)e(greater)150 -5052 y(than)30 b(or)g(equal)h(to)g(zero.)42 b(T)-8 b(o)31 +3208 y(than)30 b(or)g(equal)h(to)g(zero.)42 b(T)-8 b(o)31 b(explicitly)h(declare)f(an)f(arra)m(y)-8 b(,)32 b(use)390 -5196 y Fs(declare)46 b(-a)h Fj(name)150 5340 y Ft(The)30 -b(syn)m(tax)p eop end +3340 y Fs(declare)46 b(-a)h Fi(name)150 3472 y Ft(The)30 +b(syn)m(tax)390 3604 y Fs(declare)46 b(-a)h Fi(name)11 +b Fs([)p Fi(subscript)g Fs(])150 3736 y Ft(is)30 b(also)i(accepted;)g +(the)e Fq(subscript)h Ft(is)g(ignored.)275 3868 y(Asso)s(ciativ)m(e)h +(arra)m(ys)f(are)g(created)g(using)390 4000 y Fs(declare)46 +b(-A)h Fi(name)11 b Fs(.)275 4132 y Ft(A)m(ttributes)46 +b(ma)m(y)h(b)s(e)e(sp)s(eci\014ed)g(for)h(an)g(arra)m(y)g(v)-5 +b(ariable)47 b(using)e(the)h Fs(declare)e Ft(and)h Fs(readonly)150 +4242 y Ft(builtins.)40 b(Eac)m(h)31 b(attribute)g(applies)g(to)g(all)g +(mem)m(b)s(ers)f(of)g(an)h(arra)m(y)-8 b(.)275 4374 y(Arra)m(ys)30 +b(are)h(assigned)f(to)h(using)f(comp)s(ound)f(assignmen)m(ts)i(of)g +(the)f(form)390 4506 y Fs(name=\(value)p Fi(1)55 b Fs(...)47 +b(value)p Fi(n)11 b Fs(\))150 4638 y Ft(where)37 b(eac)m(h)i +Fq(v)-5 b(alue)42 b Ft(is)c(of)g(the)f(form)g Fs([)p +Fi(subscript)11 b Fs(]=)p Fq(string)d Ft(.)58 b(Indexed)36 +b(arra)m(y)i(assignmen)m(ts)g(do)g(not)150 4747 y(require)c(the)g(brac) +m(k)m(et)h(and)e(subscript.)50 b(When)34 b(assigning)g(to)g(indexed)g +(arra)m(ys,)h(if)f(the)g(optional)h(sub-)150 4857 y(script)c(is)h +(supplied,)f(that)h(index)f(is)h(assigned)g(to;)h(otherwise)f(the)f +(index)h(of)f(the)h(elemen)m(t)h(assigned)f(is)150 4966 +y(the)f(last)g(index)f(assigned)g(to)h(b)m(y)g(the)f(statemen)m(t)i +(plus)e(one.)41 b(Indexing)30 b(starts)g(at)i(zero.)275 +5098 y(When)e(assigning)h(to)g(an)f(asso)s(ciativ)m(e)j(arra)m(y)-8 +b(,)32 b(the)e(subscript)f(is)i(required.)275 5230 y(This)f(syn)m(tax)j +(is)e(also)i(accepted)g(b)m(y)f(the)f Fs(declare)f Ft(builtin.)44 +b(Individual)31 b(arra)m(y)h(elemen)m(ts)h(ma)m(y)g(b)s(e)150 +5340 y(assigned)e(to)g(using)f(the)g Fs(name[)p Fq(subscript)r +Fs(]=)p Fq(v)-5 b(alue)33 b Ft(syn)m(tax)e(in)m(tro)s(duced)f(ab)s(o)m +(v)m(e.)p eop end %%Page: 81 87 TeXDict begin 81 86 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(81)390 299 y Fs(declare)46 -b(-a)h Fj(name)11 b Fs([)p Fj(subscript)g Fs(])150 431 -y Ft(is)30 b(also)i(accepted;)g(the)e Fq(subscript)h -Ft(is)g(ignored.)275 564 y(Asso)s(ciativ)m(e)h(arra)m(ys)f(are)g -(created)g(using)390 696 y Fs(declare)46 b(-A)h Fj(name)p -Fs(.)275 829 y Ft(A)m(ttributes)f(ma)m(y)h(b)s(e)e(sp)s(eci\014ed)g -(for)h(an)g(arra)m(y)g(v)-5 b(ariable)47 b(using)e(the)h -Fs(declare)e Ft(and)h Fs(readonly)150 938 y Ft(builtins.)40 -b(Eac)m(h)31 b(attribute)g(applies)g(to)g(all)g(mem)m(b)s(ers)f(of)g -(an)h(arra)m(y)-8 b(.)275 1071 y(Arra)m(ys)30 b(are)h(assigned)f(to)h -(using)f(comp)s(ound)f(assignmen)m(ts)i(of)g(the)f(form)390 -1203 y Fs(name=\(value)p Fj(1)55 b Fs(...)47 b(value)p -Fj(n)11 b Fs(\))150 1335 y Ft(where)37 b(eac)m(h)j Fq(v)-5 -b(alue)43 b Ft(is)38 b(of)g(the)g(form)g Fs([)p Fj(subscript)11 -b Fs(]=)p Fq(string)p Ft(.)60 b(Indexed)37 b(arra)m(y)h(assignmen)m(ts) -h(do)f(not)150 1445 y(require)c(the)g(brac)m(k)m(et)h(and)e(subscript.) -50 b(When)34 b(assigning)g(to)g(indexed)g(arra)m(ys,)h(if)f(the)g -(optional)h(sub-)150 1555 y(script)c(is)h(supplied,)f(that)h(index)f -(is)h(assigned)g(to;)h(otherwise)f(the)f(index)h(of)f(the)h(elemen)m(t) -h(assigned)f(is)150 1664 y(the)f(last)g(index)f(assigned)g(to)h(b)m(y)g -(the)f(statemen)m(t)i(plus)e(one.)41 b(Indexing)30 b(starts)g(at)i -(zero.)275 1797 y(When)e(assigning)h(to)g(an)f(asso)s(ciativ)m(e)j -(arra)m(y)-8 b(,)32 b(the)e(subscript)f(is)i(required.)275 -1929 y(This)f(syn)m(tax)j(is)e(also)i(accepted)g(b)m(y)f(the)f -Fs(declare)f Ft(builtin.)44 b(Individual)31 b(arra)m(y)h(elemen)m(ts)h -(ma)m(y)g(b)s(e)150 2039 y(assigned)e(to)g(using)f(the)g -Fs(name[)p Fq(subscript)r Fs(]=)p Fq(v)-5 b(alue)33 b -Ft(syn)m(tax)e(in)m(tro)s(duced)f(ab)s(o)m(v)m(e.)275 -2171 y(An)m(y)j(elemen)m(t)i(of)f(an)f(arra)m(y)h(ma)m(y)g(b)s(e)f -(referenced)g(using)g Fs(${name[)p Fq(subscript)r Fs(]})p -Ft(.)46 b(The)33 b(braces)h(are)150 2281 y(required)28 -b(to)j(a)m(v)m(oid)f(con\015icts)g(with)f(the)h(shell's)f(\014lename)h -(expansion)f(op)s(erators.)41 b(If)28 b(the)i Fq(subscript)g -Ft(is)150 2390 y(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)f(the)h(w)m -(ord)f(expands)f(to)i(all)g(mem)m(b)s(ers)e(of)i(the)f(arra)m(y)h -Fq(name)p Ft(.)40 b(These)29 b(subscripts)f(di\013er)h(only)150 -2500 y(when)36 b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g -(quotes.)60 b(If)36 b(the)h(w)m(ord)f(is)g(double-quoted,)j -Fs(${name[*]})150 2609 y Ft(expands)20 b(to)h(a)g(single)g(w)m(ord)f -(with)h(the)g(v)-5 b(alue)21 b(of)f(eac)m(h)i(arra)m(y)f(mem)m(b)s(er)f -(separated)h(b)m(y)g(the)f(\014rst)g(c)m(haracter)150 -2719 y(of)38 b(the)g Fs(IFS)f Ft(v)-5 b(ariable,)41 b(and)c -Fs(${name[@]})e Ft(expands)i(eac)m(h)i(elemen)m(t)g(of)f -Fq(name)43 b Ft(to)c(a)f(separate)h(w)m(ord.)150 2829 -y(When)32 b(there)h(are)f(no)g(arra)m(y)h(mem)m(b)s(ers,)f -Fs(${name[@]})e Ft(expands)h(to)i(nothing.)47 b(If)31 -b(the)i(double-quoted)150 2938 y(expansion)39 b(o)s(ccurs)h(within)f(a) -h(w)m(ord,)i(the)d(expansion)h(of)g(the)f(\014rst)g(parameter)h(is)g -(joined)f(with)h(the)150 3048 y(b)s(eginning)j(part)h(of)g(the)g -(original)h(w)m(ord,)j(and)43 b(the)h(expansion)g(of)g(the)g(last)h -(parameter)f(is)g(joined)150 3157 y(with)35 b(the)g(last)h(part)f(of)g -(the)g(original)h(w)m(ord.)55 b(This)34 b(is)h(analogous)h(to)g(the)f -(expansion)g(of)g(the)g(sp)s(ecial)150 3267 y(parameters)28 -b(`)p Fs(@)p Ft(')g(and)f(`)p Fs(*)p Ft('.)39 b Fs(${#name[)p -Fq(subscript)r Fs(]})24 b Ft(expands)j(to)h(the)g(length)g(of)f -Fs(${name[)p Fq(subscript)r Fs(]})p Ft(.)150 3377 y(If)j -Fq(subscript)i Ft(is)f(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p -Ft(',)g(the)g(expansion)g(is)g(the)g(n)m(um)m(b)s(er)e(of)i(elemen)m -(ts)h(in)f(the)g(arra)m(y)-8 b(.)42 b(Referencing)150 -3486 y(an)30 b(arra)m(y)h(v)-5 b(ariable)31 b(without)g(a)f(subscript)g -(is)g(equiv)-5 b(alen)m(t)32 b(to)f(referencing)g(with)f(a)g(subscript) -g(of)g(0.)275 3619 y(The)i Fs(unset)g Ft(builtin)h(is)g(used)g(to)h -(destro)m(y)g(arra)m(ys.)50 b Fs(unset)31 b Fq(name)5 -b Ft([)p Fq(subscript)r Ft(])33 b(destro)m(ys)h(the)f(arra)m(y)150 -3728 y(elemen)m(t)j(at)e(index)g Fq(subscript)p Ft(.)50 -b(Care)34 b(m)m(ust)g(b)s(e)g(tak)m(en)h(to)g(a)m(v)m(oid)g(un)m(w)m -(an)m(ted)g(side)f(e\013ects)h(caused)f(b)m(y)150 3838 -y(\014lename)39 b(generation.)68 b Fs(unset)37 b Fq(name)p -Ft(,)k(where)e Fq(name)44 b Ft(is)39 b(an)f(arra)m(y)-8 -b(,)43 b(remo)m(v)m(es)d(the)f(en)m(tire)h(arra)m(y)-8 -b(.)67 b(A)150 3947 y(subscript)29 b(of)i(`)p Fs(*)p +b(Bash)30 b(F)-8 b(eatures)2484 b(81)275 299 y(An)m(y)33 +b(elemen)m(t)i(of)f(an)f(arra)m(y)h(ma)m(y)g(b)s(e)f(referenced)g +(using)g Fs(${name[)p Fq(subscript)r Fs(]})p Ft(.)46 +b(The)33 b(braces)h(are)150 408 y(required)28 b(to)j(a)m(v)m(oid)f +(con\015icts)g(with)f(the)h(shell's)f(\014lename)h(expansion)f(op)s +(erators.)41 b(If)28 b(the)i Fq(subscript)g Ft(is)150 +518 y(`)p Fs(@)p Ft(')f(or)g(`)p Fs(*)p Ft(',)g(the)g(w)m(ord)g +(expands)f(to)i(all)f(mem)m(b)s(ers)f(of)h(the)g(arra)m(y)h +Fq(name)5 b Ft(.)40 b(These)29 b(subscripts)e(di\013er)i(only)150 +628 y(when)36 b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g(quotes.) +60 b(If)36 b(the)h(w)m(ord)f(is)g(double-quoted,)j Fs(${name[*]})150 +737 y Ft(expands)20 b(to)h(a)g(single)g(w)m(ord)f(with)h(the)g(v)-5 +b(alue)21 b(of)f(eac)m(h)i(arra)m(y)f(mem)m(b)s(er)f(separated)h(b)m(y) +g(the)f(\014rst)g(c)m(haracter)150 847 y(of)38 b(the)g +Fs(IFS)f Ft(v)-5 b(ariable,)41 b(and)c Fs(${name[@]})e +Ft(expands)i(eac)m(h)i(elemen)m(t)g(of)f Fq(name)43 b +Ft(to)c(a)f(separate)h(w)m(ord.)150 956 y(When)32 b(there)h(are)f(no)g +(arra)m(y)h(mem)m(b)s(ers,)f Fs(${name[@]})e Ft(expands)h(to)i +(nothing.)47 b(If)31 b(the)i(double-quoted)150 1066 y(expansion)39 +b(o)s(ccurs)h(within)f(a)h(w)m(ord,)i(the)d(expansion)h(of)g(the)f +(\014rst)g(parameter)h(is)g(joined)f(with)h(the)150 1176 +y(b)s(eginning)j(part)h(of)g(the)g(original)h(w)m(ord,)j(and)43 +b(the)h(expansion)g(of)g(the)g(last)h(parameter)f(is)g(joined)150 +1285 y(with)35 b(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)55 +b(This)34 b(is)h(analogous)h(to)g(the)f(expansion)g(of)g(the)g(sp)s +(ecial)150 1395 y(parameters)28 b(`)p Fs(@)p Ft(')g(and)f(`)p +Fs(*)p Ft('.)39 b Fs(${#name[)p Fq(subscript)r Fs(]})24 +b Ft(expands)j(to)h(the)g(length)g(of)f Fs(${name[)p +Fq(subscript)r Fs(]})p Ft(.)150 1504 y(If)j Fq(subscript)i +Ft(is)f(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)g(the)g(expansion)g(is) +g(the)g(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)h(in)f(the)g(arra)m(y)-8 +b(.)42 b(Referencing)150 1614 y(an)30 b(arra)m(y)h(v)-5 +b(ariable)31 b(without)g(a)f(subscript)g(is)g(equiv)-5 +b(alen)m(t)32 b(to)f(referencing)g(with)f(a)g(subscript)g(of)g(0.)275 +1757 y(An)35 b(arra)m(y)i(v)-5 b(ariable)37 b(is)g(considered)f(set)h +(if)f(a)h(subscript)e(has)h(b)s(een)g(assigned)g(a)h(v)-5 +b(alue.)59 b(The)36 b(n)m(ull)150 1866 y(string)30 b(is)h(a)g(v)-5 +b(alid)30 b(v)-5 b(alue.)275 2009 y(The)32 b Fs(unset)g +Ft(builtin)h(is)g(used)g(to)h(destro)m(y)g(arra)m(ys.)50 +b Fs(unset)31 b Fq(name)5 b Ft([)p Fq(subscript)r Ft(])33 +b(destro)m(ys)h(the)f(arra)m(y)150 2119 y(elemen)m(t)i(at)g(index)f +Fq(subscript)r Ft(.)50 b(Care)34 b(m)m(ust)f(b)s(e)h(tak)m(en)h(to)f(a) +m(v)m(oid)i(un)m(w)m(an)m(ted)e(side)g(e\013ects)h(caused)f(b)m(y)150 +2228 y(\014lename)40 b(expansion.)69 b Fs(unset)39 b +Fq(name)5 b Ft(,)42 b(where)e Fq(name)45 b Ft(is)39 b(an)h(arra)m(y)-8 +b(,)44 b(remo)m(v)m(es)d(the)f(en)m(tire)h(arra)m(y)-8 +b(.)70 b(A)150 2338 y(subscript)29 b(of)i(`)p Fs(*)p Ft(')f(or)h(`)p Fs(@)p Ft(')f(also)h(remo)m(v)m(es)h(the)f(en)m(tire)g -(arra)m(y)-8 b(.)275 4080 y(The)41 b Fs(declare)p Ft(,)i +(arra)m(y)-8 b(.)275 2481 y(The)41 b Fs(declare)p Ft(,)i Fs(local)p Ft(,)h(and)d Fs(readonly)f Ft(builtins)h(eac)m(h)j(accept)f (a)f(`)p Fs(-a)p Ft(')g(option)h(to)f(sp)s(ecify)g(an)150 -4189 y(indexed)34 b(arra)m(y)h(and)f(a)h(`)p Fs(-A)p +2591 y(indexed)34 b(arra)m(y)h(and)f(a)h(`)p Fs(-A)p Ft(')g(option)g(to)g(sp)s(ecify)g(an)f(asso)s(ciativ)m(e)j(arra)m(y)-8 b(.)55 b(The)34 b Fs(read)f Ft(builtin)i(accepts)150 -4299 y(a)h(`)p Fs(-a)p Ft(')f(option)h(to)g(assign)g(a)f(list)h(of)g(w) +2700 y(a)h(`)p Fs(-a)p Ft(')f(option)h(to)g(assign)g(a)f(list)h(of)g(w) m(ords)f(read)g(from)g(the)h(standard)e(input)h(to)h(an)f(arra)m(y)-8 -b(,)38 b(and)d(can)150 4408 y(read)c(v)-5 b(alues)31 +b(,)38 b(and)d(can)150 2810 y(read)c(v)-5 b(alues)31 b(from)f(the)h(standard)f(input)g(in)m(to)i(individual)e(arra)m(y)h (elemen)m(ts.)44 b(The)30 b Fs(set)g Ft(and)g Fs(declare)150 -4518 y Ft(builtins)g(displa)m(y)g(arra)m(y)h(v)-5 b(alues)31 +2919 y Ft(builtins)g(displa)m(y)g(arra)m(y)h(v)-5 b(alues)31 b(in)f(a)h(w)m(a)m(y)g(that)g(allo)m(ws)h(them)e(to)h(b)s(e)f(reused)g -(as)g(input.)150 4769 y Fr(6.8)68 b(The)45 b(Directory)g(Stac)l(k)275 -5011 y Ft(The)26 b(directory)g(stac)m(k)i(is)f(a)g(list)g(of)g(recen)m -(tly-visited)h(directories.)41 b(The)26 b Fs(pushd)f -Ft(builtin)h(adds)g(direc-)150 5121 y(tories)f(to)f(the)h(stac)m(k)g -(as)f(it)h(c)m(hanges)f(the)h(curren)m(t)e(directory)-8 -b(,)27 b(and)c(the)h Fs(popd)f Ft(builtin)g(remo)m(v)m(es)j(sp)s -(eci\014ed)150 5230 y(directories)j(from)f(the)h(stac)m(k)h(and)d(c)m -(hanges)j(the)e(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m -(v)m(ed.)41 b(The)150 5340 y Fs(dirs)29 b Ft(builtin)h(displa)m(ys)h -(the)f(con)m(ten)m(ts)i(of)f(the)f(directory)h(stac)m(k.)p -eop end +(as)g(input.)150 3164 y Fr(6.8)68 b(The)45 b(Directory)g(Stac)l(k)150 +3324 y Ft(The)21 b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m +(tly-visited)j(directories.)39 b(The)20 b Fs(pushd)g +Ft(builtin)h(adds)g(directories)150 3433 y(to)42 b(the)f(stac)m(k)i(as) +e(it)h(c)m(hanges)g(the)f(curren)m(t)g(directory)-8 b(,)45 +b(and)40 b(the)i Fs(popd)e Ft(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed) +150 3543 y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j +(the)e(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m(v)m(ed.) +41 b(The)150 3653 y Fs(dirs)29 b Ft(builtin)h(displa)m(ys)h(the)f(con)m +(ten)m(ts)i(of)f(the)f(directory)h(stac)m(k.)275 3795 +y(The)k(con)m(ten)m(ts)i(of)f(the)h(directory)f(stac)m(k)h(are)f(also)h +(visible)g(as)f(the)g(v)-5 b(alue)36 b(of)g(the)g Fs(DIRSTACK)e +Ft(shell)150 3905 y(v)-5 b(ariable.)150 4113 y Fj(6.8.1)63 +b(Directory)40 b(Stac)m(k)g(Builtins)150 4289 y Fs(dirs)870 +4427 y(dirs)47 b([+)p Fi(N)57 b Fs(|)48 b(-)p Fi(N)11 +b Fs(])46 b([-clpv])630 4566 y Ft(Displa)m(y)35 b(the)f(list)g(of)g +(curren)m(tly)g(remem)m(b)s(ered)f(directories.)51 b(Directories)36 +b(are)e(added)f(to)630 4676 y(the)28 b(list)h(with)f(the)g +Fs(pushd)f Ft(command;)i(the)f Fs(popd)f Ft(command)h(remo)m(v)m(es)h +(directories)g(from)630 4785 y(the)i(list.)630 4953 y +Fs(+)p Fi(N)384 b Ft(Displa)m(ys)23 b(the)f Fq(N)10 b +Ft(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h(left)g(of)g(the)g +(list)g(prin)m(ted)1110 5063 y(b)m(y)30 b Fs(dirs)f Ft(when)h(in)m(v)m +(ok)m(ed)i(without)e(options\),)h(starting)g(with)g(zero.)630 +5230 y Fs(-)p Fi(N)384 b Ft(Displa)m(ys)47 b(the)g Fq(N)10 +b Ft(th)46 b(directory)h(\(coun)m(ting)g(from)f(the)g(righ)m(t)h(of)g +(the)f(list)1110 5340 y(prin)m(ted)25 b(b)m(y)g Fs(dirs)g +Ft(when)f(in)m(v)m(ok)m(ed)j(without)f(options\),)h(starting)g(with)e +(zero.)p eop end %%Page: 82 88 TeXDict begin 82 87 bop 150 -116 a Ft(82)2572 b(Bash)31 -b(Reference)g(Man)m(ual)275 299 y(The)k(con)m(ten)m(ts)i(of)f(the)h -(directory)f(stac)m(k)h(are)f(also)h(visible)g(as)f(the)g(v)-5 -b(alue)36 b(of)g(the)g Fs(DIRSTACK)e Ft(shell)150 408 -y(v)-5 b(ariable.)150 641 y Fk(6.8.1)63 b(Directory)40 -b(Stac)m(k)g(Builtins)150 887 y Fs(dirs)870 1024 y(dirs)47 -b([+)p Fj(N)57 b Fs(|)48 b(-)p Fj(N)11 b Fs(])46 b([-clpv])630 -1160 y Ft(Displa)m(y)35 b(the)f(list)g(of)g(curren)m(tly)g(remem)m(b)s -(ered)f(directories.)51 b(Directories)36 b(are)e(added)f(to)630 -1270 y(the)28 b(list)h(with)f(the)g Fs(pushd)f Ft(command;)i(the)f -Fs(popd)f Ft(command)h(remo)m(v)m(es)h(directories)g(from)630 -1379 y(the)i(list.)630 1543 y Fs(+)p Fj(N)384 b Ft(Displa)m(ys)23 -b(the)f Fq(N)10 b Ft(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h -(left)g(of)g(the)g(list)g(prin)m(ted)1110 1653 y(b)m(y)30 -b Fs(dirs)f Ft(when)h(in)m(v)m(ok)m(ed)i(without)e(options\),)h -(starting)g(with)g(zero.)630 1816 y Fs(-)p Fj(N)384 b -Ft(Displa)m(ys)47 b(the)g Fq(N)10 b Ft(th)46 b(directory)h(\(coun)m -(ting)g(from)f(the)g(righ)m(t)h(of)g(the)f(list)1110 -1926 y(prin)m(ted)25 b(b)m(y)g Fs(dirs)g Ft(when)f(in)m(v)m(ok)m(ed)j -(without)f(options\),)h(starting)g(with)e(zero.)630 2089 -y Fs(-c)384 b Ft(Clears)31 b(the)f(directory)h(stac)m(k)h(b)m(y)e -(deleting)h(all)h(of)e(the)h(elemen)m(ts.)630 2253 y -Fs(-l)384 b Ft(Pro)s(duces)30 b(a)i(longer)g(listing;)h(the)f(default)f -(listing)i(format)e(uses)g(a)h(tilde)g(to)1110 2362 y(denote)f(the)f -(home)h(directory)-8 b(.)630 2526 y Fs(-p)384 b Ft(Causes)30 -b Fs(dirs)f Ft(to)i(prin)m(t)f(the)h(directory)g(stac)m(k)h(with)e(one) -g(en)m(try)h(p)s(er)e(line.)630 2689 y Fs(-v)384 b Ft(Causes)36 -b Fs(dirs)f Ft(to)i(prin)m(t)f(the)g(directory)h(stac)m(k)h(with)e(one) -h(en)m(try)f(p)s(er)f(line,)1110 2799 y(pre\014xing)30 -b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i(the)f(stac)m(k.)150 -2963 y Fs(popd)870 3099 y(popd)47 b([+)p Fj(N)57 b Fs(|)48 -b(-)p Fj(N)11 b Fs(])46 b([-n])630 3236 y Ft(Remo)m(v)m(e)26 -b(the)e(top)g(en)m(try)h(from)e(the)h(directory)h(stac)m(k,)i(and)c -Fs(cd)h Ft(to)h(the)f(new)f(top)i(directory)-8 b(.)630 -3345 y(When)32 b(no)g(argumen)m(ts)h(are)g(giv)m(en,)h -Fs(popd)d Ft(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the)g(stac) -m(k)630 3455 y(and)f(p)s(erforms)e(a)j Fs(cd)f Ft(to)h(the)f(new)g(top) -h(directory)-8 b(.)44 b(The)31 b(elemen)m(ts)i(are)e(n)m(um)m(b)s(ered) -f(from)630 3565 y(0)d(starting)g(at)g(the)g(\014rst)f(directory)h -(listed)g(with)f Fs(dirs)p Ft(;)h(i.e.,)i Fs(popd)c Ft(is)i(equiv)-5 -b(alen)m(t)28 b(to)f Fs(popd)630 3674 y(+0)p Ft(.)630 -3838 y Fs(+)p Fj(N)384 b Ft(Remo)m(v)m(es)22 b(the)f -Fq(N)10 b Ft(th)20 b(directory)g(\(coun)m(ting)i(from)e(the)g(left)h -(of)g(the)f(list)h(prin)m(ted)1110 3947 y(b)m(y)30 b -Fs(dirs)p Ft(\),)g(starting)h(with)f(zero.)630 4111 y -Fs(-)p Fj(N)384 b Ft(Remo)m(v)m(es)46 b(the)g Fq(N)10 -b Ft(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g(righ)m(t)g(of)g -(the)g(list)1110 4220 y(prin)m(ted)30 b(b)m(y)g Fs(dirs)p -Ft(\),)g(starting)h(with)f(zero.)630 4384 y Fs(-n)384 -b Ft(Suppresses)27 b(the)j(normal)g(c)m(hange)g(of)g(directory)g(when)e -(remo)m(ving)j(directo-)1110 4494 y(ries)f(from)g(the)h(stac)m(k,)h(so) -f(that)g(only)f(the)h(stac)m(k)g(is)g(manipulated.)150 -4684 y Fs(pushd)870 4821 y(pushd)46 b([-n])h([+)p Fj(N)57 -b Fs(|)48 b Fj(-N)58 b Fs(|)47 b Fj(dir)57 b Fs(])630 -4957 y Ft(Sa)m(v)m(e)30 b(the)e(curren)m(t)g(directory)h(on)f(the)h -(top)f(of)h(the)f(directory)h(stac)m(k)h(and)e(then)g -Fs(cd)f Ft(to)i Fq(dir)p Ft(.)630 5067 y(With)i(no)f(argumen)m(ts,)h -Fs(pushd)e Ft(exc)m(hanges)j(the)e(top)h(t)m(w)m(o)h(directories.)630 -5230 y Fs(-n)384 b Ft(Suppresses)26 b(the)i(normal)h(c)m(hange)g(of)f -(directory)h(when)e(adding)h(directories)1110 5340 y(to)j(the)g(stac)m -(k,)h(so)e(that)h(only)g(the)f(stac)m(k)i(is)f(manipulated.)p -eop end -%%Page: 83 89 -TeXDict begin 83 88 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(83)630 299 y Fs(+)p -Fj(N)384 b Ft(Brings)29 b(the)f Fq(N)10 b Ft(th)29 b(directory)g -(\(coun)m(ting)h(from)e(the)g(left)i(of)e(the)h(list)g(prin)m(ted)1110 -408 y(b)m(y)34 b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the)f -(top)g(of)h(the)f(list)h(b)m(y)f(rotating)i(the)1110 -518 y(stac)m(k.)630 678 y Fs(-)p Fj(N)384 b Ft(Brings)23 +b(Reference)g(Man)m(ual)630 299 y Fs(-c)384 b Ft(Clears)31 +b(the)f(directory)h(stac)m(k)h(b)m(y)e(deleting)h(all)h(of)e(the)h +(elemen)m(ts.)630 457 y Fs(-l)384 b Ft(Pro)s(duces)30 +b(a)i(longer)g(listing;)h(the)f(default)f(listing)i(format)e(uses)g(a)h +(tilde)g(to)1110 567 y(denote)f(the)f(home)h(directory)-8 +b(.)630 725 y Fs(-p)384 b Ft(Causes)30 b Fs(dirs)f Ft(to)i(prin)m(t)f +(the)h(directory)g(stac)m(k)h(with)e(one)g(en)m(try)h(p)s(er)e(line.) +630 883 y Fs(-v)384 b Ft(Causes)36 b Fs(dirs)f Ft(to)i(prin)m(t)f(the)g +(directory)h(stac)m(k)h(with)e(one)h(en)m(try)f(p)s(er)f(line,)1110 +993 y(pre\014xing)30 b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i +(the)f(stac)m(k.)150 1151 y Fs(popd)870 1285 y(popd)47 +b([+)p Fi(N)57 b Fs(|)48 b(-)p Fi(N)11 b Fs(])46 b([-n])630 +1419 y Ft(Remo)m(v)m(e)26 b(the)e(top)g(en)m(try)h(from)e(the)h +(directory)h(stac)m(k,)i(and)c Fs(cd)h Ft(to)h(the)f(new)f(top)i +(directory)-8 b(.)630 1528 y(When)32 b(no)g(argumen)m(ts)h(are)g(giv)m +(en,)h Fs(popd)d Ft(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the) +g(stac)m(k)630 1638 y(and)f(p)s(erforms)e(a)j Fs(cd)f +Ft(to)h(the)f(new)g(top)h(directory)-8 b(.)44 b(The)31 +b(elemen)m(ts)i(are)e(n)m(um)m(b)s(ered)f(from)630 1748 +y(0)d(starting)g(at)g(the)g(\014rst)f(directory)h(listed)g(with)f +Fs(dirs)p Ft(;)h(i.e.,)i Fs(popd)c Ft(is)i(equiv)-5 b(alen)m(t)28 +b(to)f Fs(popd)630 1857 y(+0)p Ft(.)630 2015 y Fs(+)p +Fi(N)384 b Ft(Remo)m(v)m(es)22 b(the)f Fq(N)10 b Ft(th)20 +b(directory)g(\(coun)m(ting)i(from)e(the)g(left)h(of)g(the)f(list)h +(prin)m(ted)1110 2125 y(b)m(y)30 b Fs(dirs)p Ft(\),)g(starting)h(with)f +(zero.)630 2283 y Fs(-)p Fi(N)384 b Ft(Remo)m(v)m(es)46 +b(the)g Fq(N)10 b Ft(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g +(righ)m(t)g(of)g(the)g(list)1110 2393 y(prin)m(ted)30 +b(b)m(y)g Fs(dirs)p Ft(\),)g(starting)h(with)f(zero.)630 +2551 y Fs(-n)384 b Ft(Suppresses)27 b(the)j(normal)g(c)m(hange)g(of)g +(directory)g(when)e(remo)m(ving)j(directo-)1110 2661 +y(ries)f(from)g(the)h(stac)m(k,)h(so)f(that)g(only)f(the)h(stac)m(k)g +(is)g(manipulated.)150 2819 y Fs(pushd)870 2953 y(pushd)46 +b([-n])h([+)p Fi(N)57 b Fs(|)48 b Fi(-N)58 b Fs(|)47 +b Fi(dir)57 b Fs(])630 3087 y Ft(Sa)m(v)m(e)29 b(the)f(curren)m(t)g +(directory)g(on)g(the)g(top)g(of)g(the)g(directory)h(stac)m(k)g(and)e +(then)h Fs(cd)f Ft(to)i Fq(dir)7 b Ft(.)630 3196 y(With)31 +b(no)f(argumen)m(ts,)h Fs(pushd)e Ft(exc)m(hanges)j(the)e(top)h(t)m(w)m +(o)h(directories.)630 3354 y Fs(-n)384 b Ft(Suppresses)26 +b(the)i(normal)h(c)m(hange)g(of)f(directory)h(when)e(adding)h +(directories)1110 3464 y(to)j(the)g(stac)m(k,)h(so)e(that)h(only)g(the) +f(stac)m(k)i(is)f(manipulated.)630 3622 y Fs(+)p Fi(N)384 +b Ft(Brings)29 b(the)f Fq(N)10 b Ft(th)29 b(directory)g(\(coun)m(ting)h +(from)e(the)g(left)i(of)e(the)h(list)g(prin)m(ted)1110 +3732 y(b)m(y)34 b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the) +f(top)g(of)h(the)f(list)h(b)m(y)f(rotating)i(the)1110 +3841 y(stac)m(k.)630 4000 y Fs(-)p Fi(N)384 b Ft(Brings)23 b(the)g Fq(N)10 b Ft(th)23 b(directory)h(\(coun)m(ting)g(from)e(the)i -(righ)m(t)f(of)g(the)h(list)f(prin)m(ted)1110 788 y(b)m(y)34 +(righ)m(t)f(of)g(the)h(list)f(prin)m(ted)1110 4109 y(b)m(y)34 b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the)f(top)g(of)h -(the)f(list)h(b)m(y)f(rotating)i(the)1110 897 y(stac)m(k.)630 -1057 y Fj(dir)336 b Ft(Mak)m(es)36 b(the)f(curren)m(t)g(w)m(orking)g +(the)f(list)h(b)m(y)f(rotating)i(the)1110 4219 y(stac)m(k.)630 +4377 y Fi(dir)336 b Ft(Mak)m(es)36 b(the)f(curren)m(t)g(w)m(orking)g (directory)g(b)s(e)f(the)h(top)g(of)g(the)g(stac)m(k,)j(and)1110 -1167 y(then)30 b(executes)i(the)e(equiv)-5 b(alen)m(t)32 +4487 y(then)30 b(executes)i(the)e(equiv)-5 b(alen)m(t)32 b(of)f(`)p Fs(cd)f Fq(dir)7 b Ft('.)39 b Fs(cd)p Ft(s)30 -b(to)h Fq(dir)p Ft(.)150 1425 y Fr(6.9)68 b(Con)l(trolling)47 -b(the)e(Prompt)275 1670 y Ft(The)c(v)-5 b(alue)43 b(of)f(the)h(v)-5 -b(ariable)43 b Fs(PROMPT_COMMAND)38 b Ft(is)k(examined)g(just)g(b)s -(efore)g(Bash)g(prin)m(ts)g(eac)m(h)150 1779 y(primary)f(prompt.)73 -b(If)41 b Fs(PROMPT_COMMAND)d Ft(is)j(set)h(and)f(has)h(a)g(non-n)m -(ull)f(v)-5 b(alue,)45 b(then)c(the)h(v)-5 b(alue)42 -b(is)150 1889 y(executed)31 b(just)f(as)h(if)f(it)h(had)f(b)s(een)f(t)m -(yp)s(ed)h(on)h(the)f(command)g(line.)275 2024 y(In)d(addition,)j(the)f -(follo)m(wing)h(table)f(describ)s(es)f(the)h(sp)s(ecial)g(c)m -(haracters)h(whic)m(h)f(can)f(app)s(ear)g(in)h(the)150 -2133 y(prompt)g(v)-5 b(ariables:)150 2293 y Fs(\\a)384 -b Ft(A)30 b(b)s(ell)h(c)m(haracter.)150 2453 y Fs(\\d)384 +b(to)h Fq(dir)7 b Ft(.)150 4718 y Fr(6.9)68 b(Con)l(trolling)47 +b(the)e(Prompt)150 4877 y Ft(The)24 b(v)-5 b(alue)24 +b(of)h(the)f(v)-5 b(ariable)25 b Fs(PROMPT_COMMAND)20 +b Ft(is)25 b(examined)f(just)g(b)s(efore)f(Bash)i(prin)m(ts)e(eac)m(h)j +(primary)150 4987 y(prompt.)39 b(If)28 b Fs(PROMPT_COMMAND)d +Ft(is)j(set)h(and)f(has)g(a)h(non-n)m(ull)f(v)-5 b(alue,)29 +b(then)f(the)h(v)-5 b(alue)29 b(is)f(executed)i(just)150 +5096 y(as)h(if)f(it)h(had)f(b)s(een)f(t)m(yp)s(ed)h(on)h(the)f(command) +g(line.)275 5230 y(In)d(addition,)j(the)f(follo)m(wing)h(table)f +(describ)s(es)f(the)h(sp)s(ecial)g(c)m(haracters)h(whic)m(h)f(can)f +(app)s(ear)g(in)h(the)150 5340 y(prompt)g(v)-5 b(ariables:)p +eop end +%%Page: 83 89 +TeXDict begin 83 88 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(83)150 299 y Fs(\\a)384 +b Ft(A)30 b(b)s(ell)h(c)m(haracter.)150 457 y Fs(\\d)384 b Ft(The)30 b(date,)h(in)f Fs(")p Ft(W)-8 b(eekda)m(y)32 b(Mon)m(th)f(Date)p Fs(")h Ft(format)f(\(e.g.,)h Fs(")p -Ft(T)-8 b(ue)30 b(Ma)m(y)h(26)p Fs(")p Ft(\).)150 2613 -y Fs(\\D{)p Fj(format)11 b Fs(})630 2723 y Ft(The)27 -b Fq(format)i Ft(is)f(passed)e(to)i Fs(strftime)p Ft(\(3\))f(and)f(the) -i(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)630 -2832 y(string;)42 b(an)d(empt)m(y)f Fq(format)j Ft(results)d(in)g(a)h +Ft(T)-8 b(ue)30 b(Ma)m(y)h(26)p Fs(")p Ft(\).)150 615 +y Fs(\\D{)p Fi(format)11 b Fs(})630 725 y Ft(The)27 b +Fq(format)i Ft(is)f(passed)e(to)i Fs(strftime)p Ft(\(3\))f(and)f(the)i +(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)630 +835 y(string;)42 b(an)d(empt)m(y)f Fq(format)j Ft(results)d(in)g(a)h (lo)s(cale-sp)s(eci\014c)h(time)f(represen)m(tation.)65 -b(The)630 2942 y(braces)31 b(are)f(required.)150 3102 +b(The)630 944 y(braces)31 b(are)f(required.)150 1103 y Fs(\\e)384 b Ft(An)30 b(escap)s(e)h(c)m(haracter.)150 -3262 y Fs(\\h)384 b Ft(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e -(`.'.)150 3422 y Fs(\\H)384 b Ft(The)30 b(hostname.)150 -3581 y Fs(\\j)384 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m -(tly)h(managed)g(b)m(y)f(the)g(shell.)150 3741 y Fs(\\l)384 +1261 y Fs(\\h)384 b Ft(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e +(`.'.)150 1419 y Fs(\\H)384 b Ft(The)30 b(hostname.)150 +1577 y Fs(\\j)384 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m +(tly)h(managed)g(b)m(y)f(the)g(shell.)150 1736 y Fs(\\l)384 b Ft(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g -(name.)150 3901 y Fs(\\n)384 b Ft(A)30 b(newline.)150 -4061 y Fs(\\r)384 b Ft(A)30 b(carriage)i(return.)150 -4221 y Fs(\\s)384 b Ft(The)22 b(name)g(of)h(the)f(shell,)i(the)f +(name.)150 1894 y Fs(\\n)384 b Ft(A)30 b(newline.)150 +2052 y Fs(\\r)384 b Ft(A)30 b(carriage)i(return.)150 +2211 y Fs(\\s)384 b Ft(The)22 b(name)g(of)h(the)f(shell,)i(the)f (basename)f(of)h Fs($0)f Ft(\(the)g(p)s(ortion)g(follo)m(wing)i(the)f -(\014nal)e(slash\).)150 4381 y Fs(\\t)384 b Ft(The)30 -b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 4541 +(\014nal)e(slash\).)150 2369 y Fs(\\t)384 b Ft(The)30 +b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 2527 y Fs(\\T)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.) -150 4701 y Fs(\\@)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(am/pm)f -(format.)150 4860 y Fs(\\A)384 b Ft(The)30 b(time,)h(in)f(24-hour)h -(HH:MM)g(format.)150 5020 y Fs(\\u)384 b Ft(The)30 b(username)g(of)g -(the)h(curren)m(t)f(user.)150 5180 y Fs(\\v)384 b Ft(The)30 -b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 5340 +150 2685 y Fs(\\@)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(am/pm)f +(format.)150 2844 y Fs(\\A)384 b Ft(The)30 b(time,)h(in)f(24-hour)h +(HH:MM)g(format.)150 3002 y Fs(\\u)384 b Ft(The)30 b(username)g(of)g +(the)h(curren)m(t)f(user.)150 3160 y Fs(\\v)384 b Ft(The)30 +b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 3319 y Fs(\\V)384 b Ft(The)30 b(release)i(of)e(Bash,)h(v)m(ersion)g -Fs(+)f Ft(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))p eop -end -%%Page: 84 90 -TeXDict begin 84 89 bop 150 -116 a Ft(84)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(\\w)384 b Ft(The)34 -b(curren)m(t)h(w)m(orking)g(directory)-8 b(,)37 b(with)e -Fs($HOME)e Ft(abbreviated)j(with)e(a)h(tilde)h(\(uses)f(the)630 -408 y Fs($PROMPT_DIRTRIM)26 b Ft(v)-5 b(ariable\).)150 -564 y Fs(\\W)384 b Ft(The)30 b(basename)h(of)f Fs($PWD)p +Fs(+)f Ft(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))150 3477 +y Fs(\\w)384 b Ft(The)34 b(curren)m(t)h(w)m(orking)g(directory)-8 +b(,)37 b(with)e Fs($HOME)e Ft(abbreviated)j(with)e(a)h(tilde)h(\(uses)f +(the)630 3587 y Fs($PROMPT_DIRTRIM)26 b Ft(v)-5 b(ariable\).)150 +3745 y Fs(\\W)384 b Ft(The)30 b(basename)h(of)f Fs($PWD)p Ft(,)g(with)g Fs($HOME)f Ft(abbreviated)h(with)g(a)h(tilde.)150 -719 y Fs(\\!)384 b Ft(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f -(command.)150 875 y Fs(\\#)384 b Ft(The)30 b(command)g(n)m(um)m(b)s(er) -f(of)i(this)f(command.)150 1031 y Fs(\\$)384 b Ft(If)30 +3903 y Fs(\\!)384 b Ft(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f +(command.)150 4061 y Fs(\\#)384 b Ft(The)30 b(command)g(n)m(um)m(b)s +(er)f(of)i(this)f(command.)150 4220 y Fs(\\$)384 b Ft(If)30 b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Fs(#)p Ft(,)g(otherwise)g -Fs($)p Ft(.)150 1186 y Fs(\\)p Fj(nnn)288 b Ft(The)30 +Fs($)p Ft(.)150 4378 y Fs(\\)p Fi(nnn)288 b Ft(The)30 b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)s(ctal)i(v) --5 b(alue)31 b Fq(nnn)p Ft(.)150 1342 y Fs(\\\\)384 b -Ft(A)30 b(bac)m(kslash.)150 1497 y Fs(\\[)384 b Ft(Begin)38 +-5 b(alue)31 b Fq(nnn)p Ft(.)150 4536 y Fs(\\\\)384 b +Ft(A)30 b(bac)m(kslash.)150 4695 y Fs(\\[)384 b Ft(Begin)38 b(a)f(sequence)g(of)g(non-prin)m(ting)g(c)m(haracters.)61 b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)g(a)630 -1607 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.) -150 1762 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m -(ting)g(c)m(haracters.)275 1918 y(The)25 b(command)h(n)m(um)m(b)s(er)f +4804 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.) +150 4963 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m +(ting)g(c)m(haracters.)275 5121 y(The)25 b(command)h(n)m(um)m(b)s(er)f (and)h(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m -(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150 2027 +(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150 5230 y(of)h(a)f(command)h(is)f(its)h(p)s(osition)f(in)g(the)h(history)f (list,)i(whic)m(h)f(ma)m(y)g(include)f(commands)g(restored)g(from)150 -2137 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e +5340 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e (History)h(F)-8 b(acilities],)45 b(page)40 b(121\),)j(while)d(the)f -(command)150 2246 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g -(the)g(sequence)h(of)f(commands)g(executed)h(during)e(the)i(curren)m(t) -f(shell)150 2356 y(session.)275 2489 y(After)35 b(the)g(string)g(is)g -(deco)s(ded,)h(it)f(is)g(expanded)f(via)i(parameter)f(expansion,)i -(command)d(substi-)150 2598 y(tution,)k(arithmetic)f(expansion,)g(and)e -(quote)h(remo)m(v)-5 b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5 -b(alue)36 b(of)g(the)g Fs(promptvars)150 2708 y Ft(shell)31 -b(option)f(\(see)i(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(41\).) -150 2959 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)275 -3201 y Ft(If)26 b(Bash)h(is)f(started)h(with)g(the)g(name)f -Fs(rbash)p Ft(,)h(or)f(the)h(`)p Fs(--restricted)p Ft(')d(or)j(`)p -Fs(-r)p Ft(')f(option)h(is)g(supplied)150 3311 y(at)32 -b(in)m(v)m(o)s(cation,)i(the)d(shell)g(b)s(ecomes)h(restricted.)44 -b(A)31 b(restricted)h(shell)f(is)g(used)g(to)h(set)f(up)f(an)i(en)m -(viron-)150 3421 y(men)m(t)26 b(more)f(con)m(trolled)i(than)e(the)h -(standard)e(shell.)40 b(A)25 b(restricted)h(shell)g(b)s(eha)m(v)m(es)g -(iden)m(tically)h(to)f Fs(bash)150 3530 y Ft(with)k(the)h(exception)g -(that)g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)f(not)f(p)s -(erformed:)225 3663 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with) -g(the)f Fs(cd)g Ft(builtin.)225 3795 y Fp(\017)60 b Ft(Setting)31 +(command)p eop end +%%Page: 84 90 +TeXDict begin 84 89 bop 150 -116 a Ft(84)2572 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y(n)m(um)m(b)s(er)42 +b(is)h(the)h(p)s(osition)f(in)g(the)g(sequence)h(of)f(commands)g +(executed)h(during)e(the)i(curren)m(t)f(shell)150 408 +y(session.)275 550 y(After)35 b(the)g(string)g(is)g(deco)s(ded,)h(it)f +(is)g(expanded)f(via)i(parameter)f(expansion,)i(command)d(substi-)150 +659 y(tution,)k(arithmetic)f(expansion,)g(and)e(quote)h(remo)m(v)-5 +b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5 b(alue)36 +b(of)g(the)g Fs(promptvars)150 769 y Ft(shell)31 b(option)f(\(see)i +(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(41\).)150 +1012 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)150 1171 +y Ft(If)27 b(Bash)h(is)g(started)g(with)g(the)g(name)g +Fs(rbash)p Ft(,)f(or)g(the)h(`)p Fs(--restricted)p Ft(')d(or)j(`)p +Fs(-r)p Ft(')g(option)g(is)g(supplied)e(at)150 1281 y(in)m(v)m(o)s +(cation,)k(the)d(shell)g(b)s(ecomes)h(restricted.)40 +b(A)27 b(restricted)h(shell)f(is)g(used)f(to)i(set)f(up)f(an)h(en)m +(vironmen)m(t)150 1391 y(more)g(con)m(trolled)i(than)e(the)g(standard)g +(shell.)40 b(A)27 b(restricted)h(shell)f(b)s(eha)m(v)m(es)h(iden)m +(tically)h(to)f Fs(bash)e Ft(with)150 1500 y(the)31 b(exception)g(that) +g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)e(not)h(p)s +(erformed:)225 1642 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with) +g(the)f Fs(cd)g Ft(builtin.)225 1780 y Fp(\017)60 b Ft(Setting)31 b(or)f(unsetting)h(the)g(v)-5 b(alues)30 b(of)h(the)f Fs(SHELL)p Ft(,)g Fs(PATH)p Ft(,)f Fs(ENV)p Ft(,)h(or)g -Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 3928 y Fp(\017)60 +Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 1917 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(command)g(names)g(con)m(taining)i(slashes.)225 -4060 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m +2055 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m (taining)i(a)f(slash)f(as)h(an)f(argumen)m(t)h(to)g(the)f -Fs(.)h Ft(builtin)e(command.)225 4193 y Fp(\017)60 b +Fs(.)h Ft(builtin)e(command.)225 2193 y Fp(\017)60 b Ft(Sp)s(ecifying)28 b(a)i(\014lename)f(con)m(taining)h(a)g(slash)e(as)h (an)g(argumen)m(t)h(to)f(the)g(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f -Fs(hash)330 4303 y Ft(builtin)h(command.)225 4435 y Fp(\017)60 +Fs(hash)330 2303 y Ft(builtin)h(command.)225 2441 y Fp(\017)60 b Ft(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g -(en)m(vironmen)m(t)g(at)g(startup.)225 4568 y Fp(\017)60 +(en)m(vironmen)m(t)g(at)g(startup.)225 2579 y Fp(\017)60 b Ft(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Fs(SHELLOPTS)d Ft(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225 -4700 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p +2717 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p Fs(>)p Ft(',)g(`)p Fs(>|)p Ft(',)f(`)p Fs(<>)p Ft(',)h(`)p Fs(>&)p Ft(',)f(`)p Fs(&>)p Ft(',)h(and)e(`)p Fs(>>)p -Ft(')i(redirection)g(op)s(erators.)225 4833 y Fp(\017)60 +Ft(')i(redirection)g(op)s(erators.)225 2855 y Fp(\017)60 b Ft(Using)31 b(the)f Fs(exec)f Ft(builtin)h(to)h(replace)h(the)e -(shell)h(with)f(another)h(command.)225 4965 y Fp(\017)60 +(shell)h(with)f(another)h(command.)225 2993 y Fp(\017)60 b Ft(Adding)40 b(or)h(deleting)h(builtin)e(commands)h(with)f(the)h(`)p Fs(-f)p Ft(')g(and)f(`)p Fs(-d)p Ft(')h(options)g(to)h(the)f -Fs(enable)330 5075 y Ft(builtin.)225 5207 y Fp(\017)60 +Fs(enable)330 3102 y Ft(builtin.)225 3240 y Fp(\017)60 b Ft(Using)31 b(the)f Fs(enable)f Ft(builtin)h(command)g(to)h(enable)g -(disabled)f(shell)g(builtins.)225 5340 y Fp(\017)60 b +(disabled)f(shell)g(builtins.)225 3378 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(the)g(`)p Fs(-p)p Ft(')h(option)g(to)g(the)f -Fs(command)f Ft(builtin.)p eop end +Fs(command)f Ft(builtin.)225 3516 y Fp(\017)60 b Ft(T)-8 +b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p +Fs(set)g(+r)p Ft(')g(or)g(`)p Fs(set)g(+o)g(restricted)p +Ft('.)275 3686 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m +(y)g(startup)f(\014les)g(are)h(read.)275 3828 y(When)j(a)i(command)e +(that)i(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h +(\(see)g(Section)g(3.8)g([Shell)150 3937 y(Scripts],)25 +b(page)e(33\),)j Fs(rbash)c Ft(turns)g(o\013)i(an)m(y)f(restrictions)h +(in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)g(script.)150 +4180 y Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 4339 +y Ft(Starting)34 b(Bash)f(with)g(the)g(`)p Fs(--posix)p +Ft(')f(command-line)i(option)g(or)f(executing)h(`)p Fs(set)c(-o)g +(posix)p Ft(')i(while)150 4449 y(Bash)26 b(is)g(running)e(will)j(cause) +f(Bash)g(to)h(conform)f(more)g(closely)h(to)g(the)f Fl(posix)f +Ft(standard)g(b)m(y)h(c)m(hanging)150 4559 y(the)31 b(b)s(eha)m(vior)f +(to)h(matc)m(h)g(that)g(sp)s(eci\014ed)f(b)m(y)g Fl(posix)g +Ft(in)g(areas)h(where)f(the)h(Bash)f(default)h(di\013ers.)275 +4700 y(When)f(in)m(v)m(ok)m(ed)h(as)g Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g +Fl(posix)e Ft(mo)s(de)h(after)h(reading)g(the)f(startup)g(\014les.)275 +4841 y(The)f(follo)m(wing)j(list)f(is)g(what's)f(c)m(hanged)h(when)e(`) +p Fl(posix)h Ft(mo)s(de')h(is)f(in)g(e\013ect:)199 4983 +y(1.)61 b(When)28 b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e +(longer)h(exists,)h(Bash)f(will)g(re-searc)m(h)h Fs($PATH)d +Ft(to)i(\014nd)330 5092 y(the)i(new)e(lo)s(cation.)43 +b(This)29 b(is)i(also)g(a)m(v)-5 b(ailable)33 b(with)d(`)p +Fs(shopt)f(-s)h(checkhash)p Ft('.)199 5230 y(2.)61 b(The)42 +b(message)h(prin)m(ted)e(b)m(y)h(the)g(job)g(con)m(trol)i(co)s(de)e +(and)f(builtins)h(when)f(a)h(job)g(exits)h(with)f(a)330 +5340 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)p +eop end %%Page: 85 91 TeXDict begin 85 90 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(85)225 299 y Fp(\017)60 -b Ft(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p -Fs(set)g(+r)p Ft(')g(or)g(`)p Fs(set)g(+o)g(restricted)p -Ft('.)275 453 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m(y) -g(startup)f(\014les)g(are)h(read.)275 585 y(When)j(a)i(command)e(that)i -(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h(\(see)g -(Section)g(3.8)g([Shell)150 695 y(Scripts],)25 b(page)e(34\),)j -Fs(rbash)c Ft(turns)g(o\013)i(an)m(y)f(restrictions)h(in)f(the)g(shell) -h(spa)m(wned)e(to)i(execute)g(the)g(script.)150 945 y -Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)275 1187 y Ft(Starting)21 -b(Bash)g(with)f(the)h(`)p Fs(--posix)p Ft(')e(command-line)j(option)f -(or)g(executing)h(`)p Fs(set)30 b(-o)f(posix)p Ft(')20 -b(while)150 1296 y(Bash)26 b(is)g(running)e(will)j(cause)f(Bash)g(to)h -(conform)f(more)g(closely)h(to)g(the)f Fl(posix)f Ft(standard)g(b)m(y)h -(c)m(hanging)150 1406 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that) -g(sp)s(eci\014ed)f(b)m(y)g Fl(posix)g Ft(in)g(areas)h(where)f(the)h -(Bash)f(default)h(di\013ers.)275 1538 y(When)f(in)m(v)m(ok)m(ed)h(as)g -Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g Fl(posix)e Ft(mo)s(de)h(after)h -(reading)g(the)f(startup)g(\014les.)275 1670 y(The)f(follo)m(wing)j -(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p Fl(posix)h -Ft(mo)s(de')h(is)f(in)g(e\013ect:)199 1802 y(1.)61 b(When)28 -b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash) -f(will)g(re-searc)m(h)h Fs($PATH)d Ft(to)i(\014nd)330 -1912 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5 -b(ailable)33 b(with)d(`)p Fs(shopt)f(-s)h(checkhash)p -Ft('.)199 2044 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g -(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h -(with)f(a)330 2153 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199 -2286 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con) -m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e -(is)330 2395 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31 -b(where)f Fq(signame)36 b Ft(is,)31 b(for)f(example,)h -Fs(SIGTSTP)p Ft(.)199 2527 y(4.)61 b(The)27 b Fs(bg)g -Ft(builtin)g(uses)g(the)h(required)f(format)h(to)g(describ)s(e)f(eac)m -(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 2637 -y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f(whether)f -(the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)199 -2769 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con) -m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not) -330 2878 y(undergo)30 b(alias)h(expansion.)199 3011 y(6.)61 -b(The)38 b Fl(posix)h Fs(PS1)f Ft(and)g Fs(PS2)g Ft(expansions)g(of)i -(`)p Fs(!)p Ft(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p -Fs(!!)p Ft(')h(to)g(`)p Fs(!)p Ft(')h(are)330 3120 y(enabled,)26 +b(Bash)30 b(F)-8 b(eatures)2484 b(85)199 299 y(3.)61 +b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)m(trol)h(co)s +(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e(is)330 +408 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31 b(where)f +Fq(signame)36 b Ft(is,)31 b(for)f(example,)h Fs(SIGTSTP)p +Ft(.)199 545 y(4.)61 b(The)27 b Fs(bg)g Ft(builtin)g(uses)g(the)h +(required)f(format)h(to)g(describ)s(e)f(eac)m(h)i(job)e(placed)h(in)f +(the)h(bac)m(kground,)330 655 y(whic)m(h)h(do)s(es)g(not)g(include)g +(an)g(indication)h(of)f(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e +(or)h(previous)g(job.)199 792 y(5.)61 b(Reserv)m(ed)40 +b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)m(text)i(where)d(reserv)m(ed)h +(w)m(ords)f(are)i(recognized)g(do)f(not)330 902 y(undergo)30 +b(alias)h(expansion.)199 1039 y(6.)61 b(The)38 b Fl(posix)h +Fs(PS1)f Ft(and)g Fs(PS2)g Ft(expansions)g(of)i(`)p Fs(!)p +Ft(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p +Fs(!!)p Ft(')h(to)g(`)p Fs(!)p Ft(')h(are)330 1148 y(enabled,)26 b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5 b(alues)25 b(of)g Fs(PS1)f Ft(and)h Fs(PS2)f Ft(regardless)330 -3230 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c -Ft(option.)199 3362 y(7.)61 b(The)30 b Fl(posix)g Ft(startup)f(\014les) +1258 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c +Ft(option.)199 1395 y(7.)61 b(The)30 b Fl(posix)g Ft(startup)f(\014les) i(are)g(executed)g(\()p Fs($ENV)p Ft(\))f(rather)g(than)g(the)h(normal) -f(Bash)g(\014les.)199 3494 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h +f(Bash)g(\014les.)199 1532 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h (p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g -(rather)330 3603 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h -(on)e(the)h(line.)199 3735 y(9.)61 b(The)30 b(default)g(history)h +(rather)330 1641 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h +(on)e(the)h(line.)199 1778 y(9.)61 b(The)30 b(default)g(history)h (\014le)f(is)h(`)p Fs(~/.sh_history)p Ft(')c(\(this)k(is)f(the)g (default)h(v)-5 b(alue)31 b(of)f Fs($HISTFILE)p Ft(\).)154 -3868 y(10.)61 b(The)23 b(output)f(of)i(`)p Fs(kill)29 +1915 y(10.)61 b(The)23 b(output)f(of)i(`)p Fs(kill)29 b(-l)p Ft(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h -(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 3977 +(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 2025 y(without)30 b(the)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154 -4109 y(11.)61 b(The)30 b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept) +2162 y(11.)61 b(The)30 b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept) h(signal)f(names)f(with)g(a)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154 -4241 y(12.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g +2299 y(12.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g Fq(\014lename)k Ft(in)30 b Fs(.)g Fq(\014lename)36 b -Ft(is)31 b(not)f(found.)154 4373 y(13.)61 b(Non-in)m(teractiv)m(e)41 +Ft(is)31 b(not)f(found.)154 2436 y(13.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h -(expansion)f(results)f(in)h(an)330 4483 y(in)m(v)-5 b(alid)31 -b(expression.)154 4615 y(14.)61 b(Redirection)25 b(op)s(erators)f(do)g +(expansion)f(results)f(in)h(an)330 2545 y(in)m(v)-5 b(alid)31 +b(expression.)154 2682 y(14.)61 b(Redirection)25 b(op)s(erators)f(do)g (not)g(p)s(erform)f(\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h -(the)g(redirection)330 4725 y(unless)30 b(the)g(shell)h(is)f(in)m -(teractiv)m(e.)154 4857 y(15.)61 b(Redirection)31 b(op)s(erators)g(do)f +(the)g(redirection)330 2792 y(unless)30 b(the)g(shell)h(is)f(in)m +(teractiv)m(e.)154 2929 y(15.)61 b(Redirection)31 b(op)s(erators)g(do)f (not)h(p)s(erform)e(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g -(the)g(redirection.)154 4989 y(16.)61 b(F)-8 b(unction)35 +(the)g(redirection.)154 3066 y(16.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5 b(alid)35 b(shell)f Fs(name)p Ft(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)g(not)g(con)m(tain)g -(c)m(haracters)330 5098 y(other)e(than)g(letters,)h(digits,)h(and)d +(c)m(haracters)330 3176 y(other)e(than)g(letters,)h(digits,)h(and)d (underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h(digit.)49 -b(Declaring)330 5208 y(a)31 b(function)f(with)g(an)g(in)m(v)-5 +b(Declaring)330 3285 y(a)31 b(function)f(with)g(an)g(in)m(v)-5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g -(non-in)m(teractiv)m(e)j(shells.)154 5340 y(17.)61 b +(non-in)m(teractiv)m(e)j(shells.)154 3422 y(17.)61 b Fl(posix)30 b Ft(sp)s(ecial)h(builtins)e(are)i(found)e(b)s(efore)h -(shell)h(functions)f(during)f(command)h(lo)s(okup.)p -eop end -%%Page: 86 92 -TeXDict begin 86 91 bop 150 -116 a Ft(86)2572 b(Bash)31 -b(Reference)g(Man)m(ual)154 299 y(18.)61 b(If)24 b(a)g -Fl(posix)g Ft(sp)s(ecial)h(builtin)f(returns)f(an)h(error)g(status,)i -(a)e(non-in)m(teractiv)m(e)j(shell)e(exits.)39 b(The)24 -b(fatal)330 408 y(errors)i(are)h(those)f(listed)h(in)f(the)h(POSIX)e -(standard,)i(and)f(include)g(things)g(lik)m(e)i(passing)e(incorrect)330 -518 y(options,)43 b(redirection)d(errors,)i(v)-5 b(ariable)41 -b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i(preceding)f(the)330 -628 y(command)30 b(name,)h(and)f(so)g(on.)154 763 y(19.)61 -b(If)34 b Fs(CDPATH)f Ft(is)h(set,)i(the)f Fs(cd)f Ft(builtin)g(will)g -(not)h(implicitly)h(app)s(end)c(the)j(curren)m(t)f(directory)h(to)g -(it.)330 873 y(This)29 b(means)g(that)h Fs(cd)f Ft(will)h(fail)g(if)g -(no)f(v)-5 b(alid)30 b(directory)g(name)f(can)h(b)s(e)f(constructed)h -(from)f(an)m(y)h(of)330 982 y(the)i(en)m(tries)g(in)f -Fs($CDPATH)p Ft(,)e(ev)m(en)j(if)g(the)f(a)h(directory)g(with)f(the)g -(same)h(name)f(as)h(the)g(name)f(giv)m(en)330 1092 y(as)g(an)f(argumen) -m(t)h(to)g Fs(cd)f Ft(exists)h(in)f(the)g(curren)m(t)g(directory)-8 -b(.)154 1227 y(20.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h +(shell)h(functions)f(during)f(command)h(lo)s(okup.)154 +3559 y(18.)61 b(If)24 b(a)g Fl(posix)g Ft(sp)s(ecial)h(builtin)f +(returns)f(an)h(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e +(exits.)39 b(The)24 b(fatal)330 3669 y(errors)i(are)h(those)f(listed)h +(in)f(the)h(POSIX)e(standard,)i(and)f(include)g(things)g(lik)m(e)i +(passing)e(incorrect)330 3778 y(options,)43 b(redirection)d(errors,)i +(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i +(preceding)f(the)330 3888 y(command)30 b(name,)h(and)f(so)g(on.)154 +4025 y(19.)61 b(If)34 b Fs(CDPATH)f Ft(is)h(set,)i(the)f +Fs(cd)f Ft(builtin)g(will)g(not)h(implicitly)h(app)s(end)c(the)j +(curren)m(t)f(directory)h(to)g(it.)330 4134 y(This)29 +b(means)g(that)h Fs(cd)f Ft(will)h(fail)g(if)g(no)f(v)-5 +b(alid)30 b(directory)g(name)f(can)h(b)s(e)f(constructed)h(from)f(an)m +(y)h(of)330 4244 y(the)i(en)m(tries)g(in)f Fs($CDPATH)p +Ft(,)e(ev)m(en)j(if)g(the)f(a)h(directory)g(with)f(the)g(same)h(name)f +(as)h(the)g(name)f(giv)m(en)330 4354 y(as)g(an)f(argumen)m(t)h(to)g +Fs(cd)f Ft(exists)h(in)f(the)g(curren)m(t)g(directory)-8 +b(.)154 4491 y(20.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h (with)e(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 -b(assignmen)m(t)g(error)e(o)s(ccurs)330 1337 y(when)38 +b(assignmen)m(t)g(error)e(o)s(ccurs)330 4600 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m(t)h(statemen)m (ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330 -1446 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g +4710 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g (assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f(v)-5 -b(ariable.)154 1582 y(21.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e +b(ariable.)154 4847 y(21.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e (exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5 -b(ariable)44 b(in)f(a)g Fs(for)330 1691 y Ft(statemen)m(t)32 +b(ariable)44 b(in)f(a)g Fs(for)330 4956 y Ft(statemen)m(t)32 b(or)f(the)f(selection)i(v)-5 b(ariable)32 b(in)e(a)g Fs(select)f Ft(statemen)m(t)j(is)f(a)f(readonly)h(v)-5 -b(ariable.)154 1827 y(22.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not) -f(a)m(v)-5 b(ailable.)154 1962 y(23.)61 b(Assignmen)m(t)23 +b(ariable.)154 5093 y(22.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not) +f(a)m(v)-5 b(ailable.)154 5230 y(23.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e Fl(posix)f Ft(sp)s(ecial)i(builtins)f(p)s -(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 2072 -y(after)31 b(the)f(builtin)g(completes.)154 2207 y(24.)61 -b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f(function)g -(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)330 -2317 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h -Fl(posix)e Ft(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g -(executed.)154 2452 y(25.)61 b(The)38 b Fs(export)f Ft(and)g -Fs(readonly)f Ft(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in) -g(the)h(format)g(re-)330 2562 y(quired)30 b(b)m(y)g Fl(posix)p -Ft(.)154 2697 y(26.)61 b(The)30 b Fs(trap)f Ft(builtin)h(displa)m(ys)g -(signal)i(names)e(without)g(the)h(leading)g Fs(SIG)p -Ft(.)154 2832 y(27.)61 b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g -(c)m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e -(signal)i(sp)s(eci\014cation)330 2942 y(and)30 b(rev)m(ert)i(the)e -(signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g -(is,)g(unless)f(that)h(argumen)m(t)330 3051 y(consists)e(solely)g(of)g -(digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38 -b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330 -3161 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s +(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 5340 +y(after)31 b(the)f(builtin)g(completes.)p eop end +%%Page: 86 92 +TeXDict begin 86 91 bop 150 -116 a Ft(86)2572 b(Bash)31 +b(Reference)g(Man)m(ual)154 299 y(24.)61 b(Assignmen)m(t)35 +b(statemen)m(ts)h(preceding)f(shell)f(function)g(calls)i(p)s(ersist)e +(in)g(the)h(shell)f(en)m(vironmen)m(t)330 408 y(after)d(the)f(function) +h(returns,)e(as)i(if)f(a)h Fl(posix)e Ft(sp)s(ecial)i(builtin)f +(command)g(had)g(b)s(een)g(executed.)154 535 y(25.)61 +b(The)38 b Fs(export)f Ft(and)g Fs(readonly)f Ft(builtin)i(commands)g +(displa)m(y)h(their)f(output)g(in)g(the)h(format)g(re-)330 +645 y(quired)30 b(b)m(y)g Fl(posix)p Ft(.)154 772 y(26.)61 +b(The)30 b Fs(trap)f Ft(builtin)h(displa)m(ys)g(signal)i(names)e +(without)g(the)h(leading)g Fs(SIG)p Ft(.)154 899 y(27.)61 +b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g(c)m(hec)m(k)h(the)g +(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e(signal)i(sp)s +(eci\014cation)330 1008 y(and)30 b(rev)m(ert)i(the)e(signal)i(handling) +e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g(is,)g(unless)f(that) +h(argumen)m(t)330 1118 y(consists)e(solely)g(of)g(digits)g(and)f(is)g +(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38 b(If)28 +b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330 +1228 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s (osition,)f(they)g(should)f(use)h(`)p Fs(-)p Ft(')g(as)g(the)g(\014rst) -f(argumen)m(t.)154 3296 y(28.)61 b(The)21 b Fs(.)h Ft(and)f +f(argumen)m(t.)154 1354 y(28.)61 b(The)21 b Fs(.)h Ft(and)f Fs(source)f Ft(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f (directory)h(for)g(the)g(\014lename)f(argumen)m(t)330 -3406 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g -Fs(PATH)p Ft(.)154 3541 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h +1464 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g +Fs(PATH)p Ft(.)154 1591 y(29.)61 b(Subshells)20 b(spa)m(wned)h(to)h (execute)g(command)g(substitutions)f(inherit)g(the)g(v)-5 b(alue)22 b(of)g(the)f(`)p Fs(-e)p Ft(')g(option)330 -3651 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34 +1700 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34 b(not)i(in)e Fl(posix)g Ft(mo)s(de,)i(Bash)f(clears)h(the)f(`)p -Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 3761 y(subshells.)154 -3896 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e -(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 4031 +Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 1810 y(subshells.)154 +1937 y(30.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e +(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 2064 y(31.)61 b(When)43 b(the)g Fs(alias)f Ft(builtin)g(displa)m(ys)i(alias) g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a) -330 4141 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p -Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 4276 y(32.)61 +330 2173 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p +Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 2300 y(32.)61 b(When)40 b(the)g Fs(set)f Ft(builtin)h(is)g(in)m(v)m(ok)m(ed)h (without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g -(function)330 4386 y(names)30 b(and)g(de\014nitions.)154 -4521 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok) +(function)330 2410 y(names)30 b(and)g(de\014nitions.)154 +2537 y(33.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok) m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37 -b(v)-5 b(alues)37 b(without)330 4631 y(quotes,)26 b(unless)d(they)i +b(v)-5 b(alues)37 b(without)330 2646 y(quotes,)26 b(unless)d(they)i (con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result) -g(con)m(tains)i(nonprin)m(ting)330 4740 y(c)m(haracters.)154 -4876 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m +g(con)m(tains)i(nonprin)m(ting)330 2756 y(c)m(haracters.)154 +2883 y(34.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m (ed)i(in)d Fq(logical)41 b Ft(mo)s(de,)36 b(and)f(the)g(pathname)g -(constructed)g(from)330 4985 y Fs($PWD)i Ft(and)h(the)h(directory)f +(constructed)g(from)330 2992 y Fs($PWD)i Ft(and)h(the)h(directory)f (name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g -(an)f(existing)330 5095 y(directory)-8 b(,)32 b Fs(cd)d +(an)f(existing)330 3102 y(directory)-8 b(,)32 b Fs(cd)d Ft(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f -Fq(ph)m(ysical)j Ft(mo)s(de.)154 5230 y(35.)61 b(When)20 +Fq(ph)m(ysical)j Ft(mo)s(de.)154 3229 y(35.)61 b(When)20 b(the)h Fs(pwd)e Ft(builtin)h(is)g(supplied)g(the)g(`)p Fs(-P)p Ft(')g(option,)j(it)e(resets)g Fs($PWD)e Ft(to)i(a)g(pathname)f -(con)m(taining)330 5340 y(no)30 b(symlinks.)p eop end -%%Page: 87 93 -TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(6:)41 -b(Bash)30 b(F)-8 b(eatures)2484 b(87)154 299 y(36.)61 -b(The)36 b Fs(pwd)f Ft(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5 -b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)m(t)f -(directory)-8 b(,)330 408 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m(ed) -h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h(`)p -Fs(-P)p Ft(')f(option.)154 543 y(37.)61 b(When)35 b(listing)g(the)g +(con)m(taining)330 3339 y(no)30 b(symlinks.)154 3465 +y(36.)61 b(The)36 b Fs(pwd)f Ft(builtin)h(v)m(eri\014es)h(that)g(the)f +(v)-5 b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren) +m(t)f(directory)-8 b(,)330 3575 y(ev)m(en)31 b(if)f(it)h(is)g(not)f +(ask)m(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h(`)p +Fs(-P)p Ft(')f(option.)154 3702 y(37.)61 b(When)35 b(listing)g(the)g (history)-8 b(,)36 b(the)f Fs(fc)g Ft(builtin)f(do)s(es)g(not)h -(include)g(an)f(indication)i(of)f(whether)f(or)330 653 +(include)g(an)f(indication)i(of)f(whether)f(or)330 3811 y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154 -787 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g -Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 922 y(39.)61 b(The)37 +3938 y(38.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g +Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 4065 y(39.)61 b(The)37 b Fs(type)g Ft(and)g Fs(command)f Ft(builtins)i(will)g(not)g(rep)s(ort) f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330 -1031 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g +4175 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g (execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named) -g(\014le)330 1141 y(found)i(in)h Fs($PATH)p Ft(.)154 -1275 y(40.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m +g(\014le)330 4284 y(found)i(in)h Fs($PATH)p Ft(.)154 +4411 y(40.)61 b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m (ok)m(e)i(the)e Fs(vi)g Ft(editor)h(directly)f(when)f(the)i(`)p -Fs(v)p Ft(')f(command)g(is)g(run,)330 1385 y(instead)e(of)f(c)m(hec)m -(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 1519 +Fs(v)p Ft(')f(command)g(is)g(run,)330 4521 y(instead)e(of)f(c)m(hec)m +(king)i Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 4648 y(41.)61 b(When)41 b(the)g Fs(xpg_echo)e Ft(option)i(is)g(enabled,)j (Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330 -1629 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54 +4757 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54 b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e) -g(c)m(haracters)h(are)330 1738 y(con)m(v)m(erted.)154 -1873 y(42.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m +g(c)m(haracters)h(are)330 4867 y(con)m(v)m(erted.)154 +4994 y(42.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m (k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h(`)p Fs(-c)p -Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)275 2032 y(There)k(is)g(other) -h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)g(do)s(es)f(not)h -(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)150 -2142 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199 -2276 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i +Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)154 5121 y(43.)61 +b(The)39 b(arriv)-5 b(al)41 b(of)f Fs(SIGCHLD)e Ft(when)h(a)h(trap)g +(is)g(set)h(on)f Fs(SIGCHLD)e Ft(do)s(es)h(not)h(in)m(terrupt)g(the)g +Fs(wait)330 5230 y Ft(builtin)c(and)h(cause)g(it)h(to)f(return)f +(immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j +(for)f(eac)m(h)330 5340 y(c)m(hild)31 b(that)g(exits.)p +eop end +%%Page: 87 93 +TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(6:)41 +b(Bash)30 b(F)-8 b(eatures)2484 b(87)275 299 y(There)34 +b(is)g(other)h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)g(do)s(es)f +(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)150 +408 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199 +543 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i Fs($EDITOR)c Ft(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h -(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 2386 y(rather)g(than)g(defaulting) -h(directly)g(to)g Fs(ed)p Ft(.)40 b Fs(fc)30 b Ft(uses)g -Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 2521 y(2.)61 +(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 653 y(rather)g(than)g(defaulting)h +(directly)g(to)g Fs(ed)p Ft(.)40 b Fs(fc)30 b Ft(uses)g +Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 787 y(2.)61 b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g Fs(xpg_echo)e Ft(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g -Fs(echo)f Ft(builtin)330 2630 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 -2790 y(Bash)66 b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e +Fs(echo)f Ft(builtin)330 897 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 +1056 y(Bash)66 b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e Fl(posix)p Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66 -b(sp)s(ecifying)h(the)150 2899 y(`)p Fs(--enable-strict-posix-def)o +b(sp)s(ecifying)h(the)150 1166 y(`)p Fs(--enable-strict-posix-def)o (ault)o Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i -(Section)f(10.8)150 3009 y([Optional)31 b(F)-8 b(eatures],)32 +(Section)f(10.8)150 1275 y([Optional)31 b(F)-8 b(eatures],)32 b(page)f(129\).)p eop end %%Page: 88 94 -TeXDict begin 88 93 bop 150 -116 a Ft(88)2572 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +TeXDict begin 88 93 bop eop end %%Page: 89 95 TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(7:)41 b(Job)30 b(Con)m(trol)2571 b(89)150 299 y Fo(7)80 b(Job)54 -b(Con)l(trol)275 550 y Ft(This)34 b(c)m(hapter)i(discusses)f(what)g -(job)g(con)m(trol)i(is,)g(ho)m(w)e(it)h(w)m(orks,)h(and)e(ho)m(w)g -(Bash)h(allo)m(ws)g(y)m(ou)g(to)150 660 y(access)c(its)e(facilities.) -150 931 y Fr(7.1)68 b(Job)45 b(Con)l(trol)h(Basics)275 -1181 y Ft(Job)30 b(con)m(trol)j(refers)e(to)h(the)g(abilit)m(y)g(to)g -(selectiv)m(ely)j(stop)c(\(susp)s(end\))f(the)h(execution)i(of)e(pro)s -(cesses)150 1290 y(and)24 b(con)m(tin)m(ue)i(\(resume\))f(their)g -(execution)h(at)f(a)h(later)f(p)s(oin)m(t.)39 b(A)25 -b(user)f(t)m(ypically)j(emplo)m(ys)e(this)g(facilit)m(y)150 -1400 y(via)31 b(an)f(in)m(teractiv)m(e)j(in)m(terface)f(supplied)e -(join)m(tly)h(b)m(y)f(the)h(system's)f(terminal)h(driv)m(er)f(and)g -(Bash.)275 1540 y(The)23 b(shell)i(asso)s(ciates)h(a)f -Fq(job)h Ft(with)e(eac)m(h)i(pip)s(eline.)38 b(It)25 -b(k)m(eeps)f(a)h(table)h(of)e(curren)m(tly)h(executing)g(jobs,)150 -1650 y(whic)m(h)33 b(ma)m(y)i(b)s(e)e(listed)h(with)f(the)h -Fs(jobs)f Ft(command.)50 b(When)33 b(Bash)h(starts)g(a)g(job)g(async)m -(hronously)-8 b(,)34 b(it)150 1759 y(prin)m(ts)c(a)h(line)f(that)h(lo)s -(oks)g(lik)m(e:)390 1899 y Fs([1])47 b(25647)150 2040 -y Ft(indicating)34 b(that)g(this)f(job)g(is)g(job)g(n)m(um)m(b)s(er)f -(1)i(and)f(that)g(the)h(pro)s(cess)f Fl(id)g Ft(of)g(the)h(last)g(pro)s -(cess)f(in)g(the)150 2149 y(pip)s(eline)42 b(asso)s(ciated)i(with)e -(this)g(job)g(is)h(25647.)78 b(All)43 b(of)g(the)g(pro)s(cesses)f(in)g -(a)h(single)g(pip)s(eline)f(are)150 2259 y(mem)m(b)s(ers)30 -b(of)g(the)h(same)f(job.)41 b(Bash)30 b(uses)g(the)h -Fq(job)h Ft(abstraction)f(as)g(the)g(basis)f(for)g(job)g(con)m(trol.) -275 2399 y(T)-8 b(o)23 b(facilitate)j(the)d(implemen)m(tation)i(of)f -(the)f(user)f(in)m(terface)j(to)f(job)f(con)m(trol,)j(the)d(op)s -(erating)h(system)150 2509 y(main)m(tains)j(the)f(notion)h(of)f(a)g -(curren)m(t)g(terminal)g(pro)s(cess)g(group)g Fl(id)p -Ft(.)39 b(Mem)m(b)s(ers)26 b(of)g(this)g(pro)s(cess)f(group)150 -2618 y(\(pro)s(cesses)h(whose)g(pro)s(cess)g(group)g +b(Con)l(trol)150 521 y Ft(This)25 b(c)m(hapter)i(discusses)f(what)g +(job)f(con)m(trol)j(is,)f(ho)m(w)f(it)h(w)m(orks,)g(and)f(ho)m(w)g +(Bash)g(allo)m(ws)h(y)m(ou)g(to)g(access)150 631 y(its)k(facilities.) +150 858 y Fr(7.1)68 b(Job)45 b(Con)l(trol)h(Basics)150 +1018 y Ft(Job)27 b(con)m(trol)i(refers)e(to)h(the)g(abilit)m(y)h(to)f +(selectiv)m(ely)j(stop)c(\(susp)s(end\))f(the)i(execution)h(of)e(pro)s +(cesses)h(and)150 1127 y(con)m(tin)m(ue)38 b(\(resume\))g(their)f +(execution)h(at)g(a)g(later)g(p)s(oin)m(t.)61 b(A)37 +b(user)g(t)m(ypically)i(emplo)m(ys)f(this)f(facilit)m(y)150 +1237 y(via)27 b(an)e(in)m(teractiv)m(e)k(in)m(terface)f(supplied)d +(join)m(tly)h(b)m(y)g(the)h(op)s(erating)f(system)g(k)m(ernel's)h +(terminal)f(driv)m(er)150 1347 y(and)k(Bash.)275 1479 +y(The)23 b(shell)i(asso)s(ciates)h(a)f Fq(job)h Ft(with)e(eac)m(h)i +(pip)s(eline.)38 b(It)25 b(k)m(eeps)f(a)h(table)h(of)e(curren)m(tly)h +(executing)g(jobs,)150 1588 y(whic)m(h)33 b(ma)m(y)i(b)s(e)e(listed)h +(with)f(the)h Fs(jobs)f Ft(command.)50 b(When)33 b(Bash)h(starts)g(a)g +(job)g(async)m(hronously)-8 b(,)34 b(it)150 1698 y(prin)m(ts)c(a)h +(line)f(that)h(lo)s(oks)g(lik)m(e:)390 1830 y Fs([1])47 +b(25647)150 1962 y Ft(indicating)34 b(that)g(this)f(job)g(is)g(job)g(n) +m(um)m(b)s(er)f(1)i(and)f(that)g(the)h(pro)s(cess)f Fl(id)g +Ft(of)g(the)h(last)g(pro)s(cess)f(in)g(the)150 2072 y(pip)s(eline)42 +b(asso)s(ciated)i(with)e(this)g(job)g(is)h(25647.)78 +b(All)43 b(of)g(the)g(pro)s(cesses)f(in)g(a)h(single)g(pip)s(eline)f +(are)150 2181 y(mem)m(b)s(ers)30 b(of)g(the)h(same)f(job.)41 +b(Bash)30 b(uses)g(the)h Fq(job)h Ft(abstraction)f(as)g(the)g(basis)f +(for)g(job)g(con)m(trol.)275 2313 y(T)-8 b(o)23 b(facilitate)j(the)d +(implemen)m(tation)i(of)f(the)f(user)f(in)m(terface)j(to)f(job)f(con)m +(trol,)j(the)d(op)s(erating)h(system)150 2423 y(main)m(tains)j(the)f +(notion)h(of)f(a)g(curren)m(t)g(terminal)g(pro)s(cess)g(group)g +Fl(id)p Ft(.)39 b(Mem)m(b)s(ers)26 b(of)g(this)g(pro)s(cess)f(group)150 +2533 y(\(pro)s(cesses)h(whose)g(pro)s(cess)g(group)g Fl(id)g Ft(is)h(equal)g(to)g(the)f(curren)m(t)g(terminal)h(pro)s(cess)f -(group)f Fl(id)p Ft(\))i(receiv)m(e)150 2728 y(k)m(eyb)s +(group)f Fl(id)p Ft(\))i(receiv)m(e)150 2642 y(k)m(eyb)s (oard-generated)22 b(signals)g(suc)m(h)e(as)h Fs(SIGINT)p Ft(.)36 b(These)21 b(pro)s(cesses)g(are)g(said)g(to)g(b)s(e)g(in)f(the) -h(foreground.)150 2837 y(Bac)m(kground)38 b(pro)s(cesses)f(are)h(those) +h(foreground.)150 2752 y(Bac)m(kground)38 b(pro)s(cesses)f(are)h(those) g(whose)f(pro)s(cess)g(group)g Fl(id)h Ft(di\013ers)f(from)g(the)g -(terminal's;)42 b(suc)m(h)150 2947 y(pro)s(cesses)24 +(terminal's;)42 b(suc)m(h)150 2861 y(pro)s(cesses)24 b(are)g(imm)m(une)g(to)g(k)m(eyb)s(oard-generated)h(signals.)40 b(Only)23 b(foreground)g(pro)s(cesses)h(are)g(allo)m(w)m(ed)150 -3057 y(to)35 b(read)f(from)f(or)h(write)g(to)h(the)f(terminal.)52 -b(Bac)m(kground)34 b(pro)s(cesses)g(whic)m(h)g(attempt)h(to)g(read)e -(from)150 3166 y(\(write)e(to\))g(the)g(terminal)g(are)g(sen)m(t)g(a)f -Fs(SIGTTIN)f Ft(\()p Fs(SIGTTOU)p Ft(\))g(signal)i(b)m(y)f(the)h -(terminal)g(driv)m(er,)f(whic)m(h,)150 3276 y(unless)g(caugh)m(t,)h -(susp)s(ends)d(the)j(pro)s(cess.)275 3416 y(If)j(the)i(op)s(erating)g -(system)f(on)h(whic)m(h)f(Bash)g(is)h(running)d(supp)s(orts)h(job)h -(con)m(trol,)j(Bash)e(con)m(tains)150 3525 y(facilities)30 -b(to)f(use)f(it.)40 b(T)m(yping)28 b(the)g Fq(susp)s(end)h -Ft(c)m(haracter)h(\(t)m(ypically)g(`)p Fs(^Z)p Ft(',)f(Con)m(trol-Z\))g -(while)f(a)g(pro)s(cess)150 3635 y(is)42 b(running)f(causes)i(that)g -(pro)s(cess)f(to)h(b)s(e)f(stopp)s(ed)f(and)h(returns)f(con)m(trol)j -(to)f(Bash.)77 b(T)m(yping)42 b(the)150 3745 y Fq(dela)m(y)m(ed)k(susp) -s(end)f Ft(c)m(haracter)h(\(t)m(ypically)g(`)p Fs(^Y)p -Ft(',)i(Con)m(trol-Y\))e(causes)e(the)h(pro)s(cess)e(to)i(b)s(e)f -(stopp)s(ed)150 3854 y(when)26 b(it)i(attempts)h(to)f(read)f(input)g -(from)f(the)i(terminal,)h(and)e(con)m(trol)h(to)g(b)s(e)f(returned)f -(to)j(Bash.)39 b(The)150 3964 y(user)e(then)g(manipulates)h(the)g -(state)h(of)f(this)f(job,)j(using)d(the)h Fs(bg)f Ft(command)g(to)h -(con)m(tin)m(ue)h(it)f(in)g(the)150 4073 y(bac)m(kground,)g(the)f -Fs(fg)g Ft(command)f(to)i(con)m(tin)m(ue)g(it)f(in)f(the)h(foreground,) -h(or)f(the)g Fs(kill)f Ft(command)g(to)150 4183 y(kill)27 -b(it.)40 b(A)27 b(`)p Fs(^Z)p Ft(')g(tak)m(es)h(e\013ect)g(immediately) --8 b(,)29 b(and)d(has)h(the)f(additional)i(side)e(e\013ect)j(of)d -(causing)h(p)s(ending)150 4293 y(output)j(and)g(t)m(yp)s(eahead)h(to)g -(b)s(e)e(discarded.)275 4433 y(There)j(are)g(a)h(n)m(um)m(b)s(er)e(of)i -(w)m(a)m(ys)g(to)h(refer)e(to)h(a)g(job)f(in)g(the)h(shell.)47 +2971 y(to)g(read)e(from)h(or,)h(if)f(the)g(user)f(so)i(sp)s(eci\014es)e +(with)h Fs(stty)29 b(tostop)p Ft(,)23 b(write)g(to)g(the)h(terminal.)38 +b(Bac)m(kground)150 3081 y(pro)s(cesses)27 b(whic)m(h)g(attempt)h(to)f +(read)g(from)g(\(write)g(to)h(when)e Fs(stty)j(tostop)d +Ft(is)h(in)f(e\013ect\))j(the)e(terminal)150 3190 y(are)32 +b(sen)m(t)g(a)g Fs(SIGTTIN)e Ft(\()p Fs(SIGTTOU)p Ft(\))g(signal)i(b)m +(y)g(the)g(k)m(ernel's)g(terminal)g(driv)m(er,)g(whic)m(h,)g(unless)f +(caugh)m(t,)150 3300 y(susp)s(ends)d(the)i(pro)s(cess.)275 +3432 y(If)k(the)i(op)s(erating)g(system)f(on)h(whic)m(h)f(Bash)g(is)h +(running)d(supp)s(orts)h(job)h(con)m(trol,)j(Bash)e(con)m(tains)150 +3541 y(facilities)30 b(to)f(use)f(it.)40 b(T)m(yping)28 +b(the)g Fq(susp)s(end)h Ft(c)m(haracter)h(\(t)m(ypically)g(`)p +Fs(^Z)p Ft(',)f(Con)m(trol-Z\))g(while)f(a)g(pro)s(cess)150 +3651 y(is)42 b(running)f(causes)i(that)g(pro)s(cess)f(to)h(b)s(e)f +(stopp)s(ed)f(and)h(returns)f(con)m(trol)j(to)f(Bash.)77 +b(T)m(yping)42 b(the)150 3761 y Fq(dela)m(y)m(ed)k(susp)s(end)f +Ft(c)m(haracter)h(\(t)m(ypically)g(`)p Fs(^Y)p Ft(',)i(Con)m(trol-Y\))e +(causes)e(the)h(pro)s(cess)e(to)i(b)s(e)f(stopp)s(ed)150 +3870 y(when)26 b(it)i(attempts)h(to)f(read)f(input)g(from)f(the)i +(terminal,)h(and)e(con)m(trol)h(to)g(b)s(e)f(returned)f(to)j(Bash.)39 +b(The)150 3980 y(user)e(then)g(manipulates)h(the)g(state)h(of)f(this)f +(job,)j(using)d(the)h Fs(bg)f Ft(command)g(to)h(con)m(tin)m(ue)h(it)f +(in)g(the)150 4089 y(bac)m(kground,)g(the)f Fs(fg)g Ft(command)f(to)i +(con)m(tin)m(ue)g(it)f(in)f(the)h(foreground,)h(or)f(the)g +Fs(kill)f Ft(command)g(to)150 4199 y(kill)27 b(it.)40 +b(A)27 b(`)p Fs(^Z)p Ft(')g(tak)m(es)h(e\013ect)g(immediately)-8 +b(,)29 b(and)d(has)h(the)f(additional)i(side)e(e\013ect)j(of)d(causing) +h(p)s(ending)150 4309 y(output)j(and)g(t)m(yp)s(eahead)h(to)g(b)s(e)e +(discarded.)275 4441 y(There)j(are)g(a)h(n)m(um)m(b)s(er)e(of)i(w)m(a)m +(ys)g(to)h(refer)e(to)h(a)g(job)f(in)g(the)h(shell.)47 b(The)32 b(c)m(haracter)i(`)p Fs(\045)p Ft(')f(in)m(tro)s(duces)150 -4542 y(a)e(job)f(sp)s(eci\014cation)h(\()p Fq(jobsp)s(ec)6 +4550 y(a)e(job)f(sp)s(eci\014cation)h(\()p Fq(jobsp)s(ec)6 b Ft(\).)275 4682 y(Job)31 b(n)m(um)m(b)s(er)f Fs(n)h Ft(ma)m(y)h(b)s(e)f(referred)g(to)h(as)g(`)p Fs(\045n)p Ft('.)44 b(The)31 b(sym)m(b)s(ols)g(`)p Fs(\045\045)p @@ -11154,144 +11103,144 @@ Ft(',)g(on)f(the)h(other)g(hand,)g(refers)f(to)h(an)m(y)g(job)g(con)m (taining)h(the)f(string)f(`)p Fs(ce)p Ft(')h(in)f(its)h(command)150 628 y(line.)41 b(If)30 b(the)h(pre\014x)e(or)h(substring)f(matc)m(hes)j (more)e(than)h(one)f(job,)h(Bash)f(rep)s(orts)g(an)g(error.)275 -767 y(Simply)g(naming)h(a)g(job)g(can)g(b)s(e)f(used)h(to)g(bring)f(it) +762 y(Simply)g(naming)h(a)g(job)g(can)g(b)s(e)f(used)h(to)g(bring)f(it) i(in)m(to)g(the)f(foreground:)41 b(`)p Fs(\0451)p Ft(')31 -b(is)g(a)h(synon)m(ym)e(for)150 876 y(`)p Fs(fg)g(\0451)p +b(is)g(a)h(synon)m(ym)e(for)150 871 y(`)p Fs(fg)g(\0451)p Ft(',)i(bringing)f(job)g(1)g(from)g(the)h(bac)m(kground)f(in)m(to)i (the)e(foreground.)44 b(Similarly)-8 b(,)32 b(`)p Fs(\0451)e(&)p -Ft(')i(resumes)150 986 y(job)e(1)h(in)f(the)g(bac)m(kground,)h(equiv)-5 -b(alen)m(t)32 b(to)f(`)p Fs(bg)f(\0451)p Ft(')275 1125 +Ft(')i(resumes)150 981 y(job)e(1)h(in)f(the)g(bac)m(kground,)h(equiv)-5 +b(alen)m(t)32 b(to)f(`)p Fs(bg)f(\0451)p Ft(')275 1115 y(The)g(shell)i(learns)f(immediately)i(whenev)m(er)e(a)h(job)f(c)m (hanges)h(state.)45 b(Normally)-8 b(,)33 b(Bash)e(w)m(aits)i(un)m(til) -150 1235 y(it)25 b(is)g(ab)s(out)f(to)i(prin)m(t)e(a)h(prompt)f(b)s +150 1224 y(it)25 b(is)g(ab)s(out)f(to)i(prin)m(t)e(a)h(prompt)f(b)s (efore)g(rep)s(orting)h(c)m(hanges)g(in)g(a)g(job's)f(status)h(so)g(as) -g(to)g(not)g(in)m(terrupt)150 1344 y(an)m(y)g(other)g(output.)39 +g(to)g(not)g(in)m(terrupt)150 1334 y(an)m(y)g(other)g(output.)39 b(If)24 b(the)i(`)p Fs(-b)p Ft(')e(option)i(to)f(the)g Fs(set)f Ft(builtin)h(is)g(enabled,)h(Bash)f(rep)s(orts)f(suc)m(h)h(c)m -(hanges)150 1454 y(immediately)g(\(see)g(Section)g(4.3.1)g([The)f(Set)g +(hanges)150 1443 y(immediately)g(\(see)g(Section)g(4.3.1)g([The)f(Set)g (Builtin],)i(page)f(51\).)40 b(An)m(y)24 b(trap)f(on)h -Fs(SIGCHLD)e Ft(is)i(executed)150 1564 y(for)30 b(eac)m(h)i(c)m(hild)e -(pro)s(cess)g(that)h(exits.)275 1703 y(If)25 b(an)h(attempt)h(to)g +Fs(SIGCHLD)e Ft(is)i(executed)150 1553 y(for)30 b(eac)m(h)i(c)m(hild)e +(pro)s(cess)g(that)h(exits.)275 1687 y(If)25 b(an)h(attempt)h(to)g (exit)g(Bash)f(is)h(made)f(while)g(jobs)f(are)i(stopp)s(ed,)f(\(or)h -(running,)e(if)h(the)g Fs(checkjobs)150 1812 y Ft(option)e(is)f +(running,)e(if)h(the)g Fs(checkjobs)150 1796 y Ft(option)e(is)f (enabled)h({)g(see)g(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)j(page) -e(54\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150 -1922 y(message,)k(and)c(if)i(the)f Fs(checkjobs)e Ft(option)j(is)f +e(55\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150 +1906 y(message,)k(and)c(if)i(the)f Fs(checkjobs)e Ft(option)j(is)f (enabled,)i(lists)e(the)h(jobs)f(and)f(their)i(statuses.)39 -b(The)25 b Fs(jobs)150 2032 y Ft(command)36 b(ma)m(y)h(then)f(b)s(e)f +b(The)25 b Fs(jobs)150 2016 y Ft(command)36 b(ma)m(y)h(then)f(b)s(e)f (used)g(to)i(insp)s(ect)f(their)g(status.)59 b(If)36 -b(a)g(second)g(attempt)i(to)f(exit)g(is)f(made)150 2141 +b(a)g(second)g(attempt)i(to)f(exit)g(is)f(made)150 2125 y(without)e(an)f(in)m(terv)m(ening)i(command,)f(Bash)g(do)s(es)f(not)h (prin)m(t)g(another)f(w)m(arning,)i(and)e(an)m(y)h(stopp)s(ed)150 -2251 y(jobs)c(are)h(terminated.)150 2520 y Fr(7.2)68 -b(Job)45 b(Con)l(trol)h(Builtins)150 2766 y Fs(bg)870 -2903 y(bg)h([)p Fj(jobspec)56 b Fs(...)o(])630 3040 y +2235 y(jobs)c(are)h(terminated.)150 2466 y Fr(7.2)68 +b(Job)45 b(Con)l(trol)h(Builtins)150 2650 y Fs(bg)870 +2784 y(bg)h([)p Fi(jobspec)56 b Fs(...)o(])630 2918 y Ft(Resume)24 b(eac)m(h)h(susp)s(ended)d(job)i Fq(jobsp)s(ec)29 b Ft(in)24 b(the)g(bac)m(kground,)h(as)g(if)f(it)h(had)e(b)s(een)g -(started)630 3150 y(with)32 b(`)p Fs(&)p Ft('.)45 b(If)31 +(started)630 3027 y(with)32 b(`)p Fs(&)p Ft('.)45 b(If)31 b Fq(jobsp)s(ec)37 b Ft(is)32 b(not)g(supplied,)f(the)h(curren)m(t)g -(job)f(is)h(used.)45 b(The)31 b(return)g(status)630 3259 +(job)f(is)h(used.)45 b(The)31 b(return)g(status)630 3137 y(is)i(zero)g(unless)f(it)h(is)g(run)e(when)h(job)g(con)m(trol)i(is)f -(not)g(enabled,)h(or,)f(when)f(run)f(with)h(job)630 3369 +(not)g(enabled,)h(or,)f(when)f(run)f(with)h(job)630 3246 y(con)m(trol)h(enabled,)g(an)m(y)f Fq(jobsp)s(ec)37 b Ft(w)m(as)32 b(not)g(found)f(or)g(sp)s(eci\014es)h(a)g(job)g(that)g(w)m -(as)g(started)630 3478 y(without)e(job)g(con)m(trol.)150 -3643 y Fs(fg)870 3779 y(fg)47 b([)p Fj(jobspec)11 b Fs(])630 -3916 y Ft(Resume)43 b(the)g(job)g Fq(jobsp)s(ec)48 b +(as)g(started)630 3356 y(without)e(job)g(con)m(trol.)150 +3514 y Fs(fg)870 3648 y(fg)47 b([)p Fi(jobspec)11 b Fs(])630 +3782 y Ft(Resume)43 b(the)g(job)g Fq(jobsp)s(ec)48 b Ft(in)43 b(the)g(foreground)g(and)f(mak)m(e)j(it)e(the)h(curren)m(t)f -(job.)78 b(If)630 4026 y Fq(jobsp)s(ec)41 b Ft(is)c(not)f(supplied,)h +(job.)78 b(If)630 3891 y Fq(jobsp)s(ec)41 b Ft(is)c(not)f(supplied,)h (the)f(curren)m(t)h(job)f(is)g(used.)58 b(The)36 b(return)f(status)h -(is)h(that)g(of)630 4136 y(the)d(command)g(placed)h(in)m(to)g(the)f +(is)h(that)g(of)630 4001 y(the)d(command)g(placed)h(in)m(to)g(the)f (foreground,)g(or)g(non-zero)h(if)f(run)f(when)g(job)g(con)m(trol)630 -4245 y(is)i(disabled)g(or,)i(when)d(run)g(with)h(job)g(con)m(trol)h +4111 y(is)i(disabled)g(or,)i(when)d(run)g(with)h(job)g(con)m(trol)h (enabled,)h Fq(jobsp)s(ec)j Ft(do)s(es)35 b(not)h(sp)s(ecify)f(a)630 -4355 y(v)-5 b(alid)31 b(job)f(or)g Fq(jobsp)s(ec)35 b +4220 y(v)-5 b(alid)31 b(job)f(or)g Fq(jobsp)s(ec)35 b Ft(sp)s(eci\014es)30 b(a)h(job)f(that)h(w)m(as)g(started)g(without)f -(job)g(con)m(trol.)150 4519 y Fs(jobs)870 4656 y(jobs)47 -b([-lnprs])e([)p Fj(jobspec)11 b Fs(])870 4765 y(jobs)47 -b(-x)g Fj(command)56 b Fs([)p Fj(arguments)11 b Fs(])630 -4902 y Ft(The)30 b(\014rst)f(form)h(lists)h(the)g(activ)m(e)h(jobs.)41 +(job)g(con)m(trol.)150 4378 y Fs(jobs)870 4512 y(jobs)47 +b([-lnprs])e([)p Fi(jobspec)11 b Fs(])870 4622 y(jobs)47 +b(-x)g Fi(command)56 b Fs([)p Fi(arguments)11 b Fs(])630 +4756 y Ft(The)30 b(\014rst)f(form)h(lists)h(the)g(activ)m(e)h(jobs.)41 b(The)30 b(options)g(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630 -5066 y Fs(-l)384 b Ft(List)31 b(pro)s(cess)f Fl(id)p +4914 y Fs(-l)384 b Ft(List)31 b(pro)s(cess)f Fl(id)p Ft(s)g(in)g(addition)h(to)g(the)f(normal)h(information.)630 -5230 y Fs(-n)384 b Ft(Displa)m(y)26 b(information)f(only)h(ab)s(out)e +5072 y Fs(-n)384 b Ft(Displa)m(y)26 b(information)f(only)h(ab)s(out)e (jobs)h(that)g(ha)m(v)m(e)i(c)m(hanged)e(status)h(since)1110 -5340 y(the)31 b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f -(status.)p eop end +5182 y(the)31 b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f +(status.)630 5340 y Fs(-p)384 b Ft(List)31 b(only)f(the)h(pro)s(cess)f +Fl(id)g Ft(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)p +eop end %%Page: 91 97 TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(7:)41 -b(Job)30 b(Con)m(trol)2571 b(91)630 299 y Fs(-p)384 b -Ft(List)31 b(only)f(the)h(pro)s(cess)f Fl(id)g Ft(of)h(the)f(job's)g -(pro)s(cess)g(group)g(leader.)630 447 y Fs(-r)384 b Ft(Restrict)31 -b(output)f(to)i(running)c(jobs.)630 594 y Fs(-s)384 b -Ft(Restrict)31 b(output)f(to)i(stopp)s(ed)d(jobs.)630 -742 y(If)23 b Fq(jobsp)s(ec)28 b Ft(is)c(giv)m(en,)i(output)d(is)h +b(Job)30 b(Con)m(trol)2571 b(91)630 299 y Fs(-r)384 b +Ft(Restrict)31 b(output)f(to)i(running)c(jobs.)630 461 +y Fs(-s)384 b Ft(Restrict)31 b(output)f(to)i(stopp)s(ed)d(jobs.)630 +622 y(If)23 b Fq(jobsp)s(ec)28 b Ft(is)c(giv)m(en,)i(output)d(is)h (restricted)g(to)g(information)g(ab)s(out)f(that)h(job.)39 -b(If)23 b Fq(jobsp)s(ec)630 852 y Ft(is)30 b(not)h(supplied,)e(the)i -(status)g(of)f(all)h(jobs)f(is)h(listed.)630 980 y(If)g(the)g(`)p +b(If)23 b Fq(jobsp)s(ec)630 732 y Ft(is)30 b(not)h(supplied,)e(the)i +(status)g(of)f(all)h(jobs)f(is)h(listed.)630 868 y(If)g(the)g(`)p Fs(-x)p Ft(')g(option)h(is)f(supplied,)g Fs(jobs)f Ft(replaces)i(an)m (y)f Fq(jobsp)s(ec)37 b Ft(found)29 b(in)i Fq(command)k -Ft(or)630 1090 y Fq(argumen)m(ts)41 b Ft(with)c(the)h(corresp)s(onding) -e(pro)s(cess)h(group)f Fl(id)p Ft(,)k(and)c(executes)j -Fq(command)p Ft(,)630 1199 y(passing)30 b(it)h Fq(argumen)m(t)r -Ft(s,)g(returning)f(its)g(exit)i(status.)150 1347 y Fs(kill)870 -1476 y(kill)47 b([-s)g Fj(sigspec)11 b Fs(])45 b([-n)i -Fj(signum)11 b Fs(])45 b([-)p Fj(sigspec)11 b Fs(])44 -b Fj(jobspec)57 b Fs(or)47 b Fj(pid)870 1585 y Fs(kill)g(-l)g([)p -Fj(exit_status)11 b Fs(])630 1714 y Ft(Send)22 b(a)i(signal)g(sp)s +Ft(or)630 977 y Fq(argumen)m(ts)41 b Ft(with)36 b(the)i(corresp)s +(onding)d(pro)s(cess)i(group)f Fl(id)p Ft(,)j(and)d(executes)i +Fq(command)t Ft(,)630 1087 y(passing)30 b(it)h Fq(argumen)m(t)r +Ft(s,)g(returning)f(its)g(exit)i(status.)150 1249 y Fs(kill)870 +1384 y(kill)47 b([-s)g Fi(sigspec)11 b Fs(])45 b([-n)i +Fi(signum)11 b Fs(])45 b([-)p Fi(sigspec)11 b Fs(])44 +b Fi(jobspec)57 b Fs(or)47 b Fi(pid)870 1494 y Fs(kill)g(-l)g([)p +Fi(exit_status)11 b Fs(])630 1630 y Ft(Send)22 b(a)i(signal)g(sp)s (eci\014ed)f(b)m(y)g Fq(sigsp)s(ec)29 b Ft(or)24 b Fq(sign)m(um)f Ft(to)h(the)g(pro)s(cess)f(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 -1824 y(cation)k Fq(jobsp)s(ec)j Ft(or)25 b(pro)s(cess)g -Fl(id)h Fq(pid)p Ft(.)38 b Fq(sigsp)s(ec)31 b Ft(is)25 -b(either)h(a)g(case-insensitiv)m(e)i(signal)e(name)630 -1933 y(suc)m(h)k(as)h Fs(SIGINT)d Ft(\(with)j(or)f(without)h(the)f +1739 y(cation)j Fq(jobsp)s(ec)k Ft(or)25 b(pro)s(cess)g +Fl(id)g Fq(pid)t Ft(.)38 b Fq(sigsp)s(ec)31 b Ft(is)25 +b(either)g(a)h(case-insensitiv)m(e)h(signal)f(name)630 +1849 y(suc)m(h)k(as)h Fs(SIGINT)d Ft(\(with)j(or)f(without)h(the)f Fs(SIG)g Ft(pre\014x\))f(or)i(a)f(signal)h(n)m(um)m(b)s(er;)f -Fq(sign)m(um)g Ft(is)630 2043 y(a)i(signal)g(n)m(um)m(b)s(er.)43 +Fq(sign)m(um)g Ft(is)630 1958 y(a)i(signal)g(n)m(um)m(b)s(er.)43 b(If)31 b Fq(sigsp)s(ec)37 b Ft(and)31 b Fq(sign)m(um)g Ft(are)h(not)f(presen)m(t,)h Fs(SIGTERM)e Ft(is)h(used.)43 -b(The)630 2152 y(`)p Fs(-l)p Ft(')34 b(option)g(lists)h(the)f(signal)h +b(The)630 2068 y(`)p Fs(-l)p Ft(')34 b(option)g(lists)h(the)f(signal)h (names.)51 b(If)33 b(an)m(y)i(argumen)m(ts)f(are)g(supplied)f(when)g(`) -p Fs(-l)p Ft(')h(is)630 2262 y(giv)m(en,)e(the)g(names)e(of)i(the)f +p Fs(-l)p Ft(')h(is)630 2178 y(giv)m(en,)e(the)g(names)e(of)i(the)f (signals)g(corresp)s(onding)f(to)i(the)f(argumen)m(ts)g(are)h(listed,)g -(and)630 2372 y(the)c(return)f(status)h(is)g(zero.)41 -b Fq(exit)p 1796 2372 28 4 v 41 w(status)32 b Ft(is)c(a)g(n)m(um)m(b)s +(and)630 2287 y(the)c(return)f(status)h(is)g(zero.)41 +b Fq(exit)p 1796 2287 28 4 v 41 w(status)32 b Ft(is)c(a)g(n)m(um)m(b)s (er)f(sp)s(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 -2481 y(the)35 b(exit)h(status)f(of)g(a)g(pro)s(cess)g(terminated)g(b)m +2397 y(the)35 b(exit)h(status)f(of)g(a)g(pro)s(cess)g(terminated)g(b)m (y)g(a)g(signal.)55 b(The)34 b(return)g(status)h(is)g(zero)630 -2591 y(if)c(at)h(least)g(one)g(signal)f(w)m(as)h(successfully)f(sen)m +2506 y(if)c(at)h(least)g(one)g(signal)f(w)m(as)h(successfully)f(sen)m (t,)h(or)f(non-zero)h(if)f(an)g(error)f(o)s(ccurs)h(or)g(an)630 -2700 y(in)m(v)-5 b(alid)31 b(option)g(is)f(encoun)m(tered.)150 -2848 y Fs(wait)870 2977 y(wait)47 b([)p Fj(jobspec)56 -b Fs(or)47 b Fj(pid)57 b Fs(...])630 3105 y Ft(W)-8 b(ait)28 +2616 y(in)m(v)-5 b(alid)31 b(option)g(is)f(encoun)m(tered.)150 +2778 y Fs(wait)870 2913 y(wait)47 b([)p Fi(jobspec)56 +b Fs(or)47 b Fi(pid)57 b Fs(...])630 3049 y Ft(W)-8 b(ait)28 b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s(eci\014ed)g(b)m(y)g (eac)m(h)h(pro)s(cess)f Fl(id)h Fq(pid)i Ft(or)d(job)g(sp)s -(eci\014cation)630 3215 y Fq(jobsp)s(ec)40 b Ft(exits)35 +(eci\014cation)630 3159 y Fq(jobsp)s(ec)40 b Ft(exits)35 b(and)f(return)g(the)g(exit)i(status)f(of)g(the)g(last)g(command)f(w)m -(aited)i(for.)53 b(If)35 b(a)630 3324 y(job)g(sp)s(ec)f(is)h(giv)m(en,) +(aited)i(for.)53 b(If)35 b(a)630 3268 y(job)g(sp)s(ec)f(is)h(giv)m(en,) i(all)f(pro)s(cesses)f(in)f(the)h(job)g(are)g(w)m(aited)h(for.)54 -b(If)35 b(no)f(argumen)m(ts)i(are)630 3434 y(giv)m(en,)d(all)f(curren)m +b(If)35 b(no)f(argumen)m(ts)i(are)630 3378 y(giv)m(en,)d(all)f(curren)m (tly)f(activ)m(e)i(c)m(hild)f(pro)s(cesses)f(are)g(w)m(aited)h(for,)g -(and)e(the)i(return)e(status)630 3544 y(is)h(zero.)44 +(and)e(the)i(return)e(status)630 3487 y(is)h(zero.)44 b(If)30 b(neither)h Fq(jobsp)s(ec)36 b Ft(nor)31 b Fq(pid)i Ft(sp)s(eci\014es)e(an)g(activ)m(e)i(c)m(hild)f(pro)s(cess)e(of)h(the)g -(shell,)630 3653 y(the)g(return)e(status)i(is)f(127.)150 -3801 y Fs(disown)870 3930 y(disown)46 b([-ar])g([-h])h([)p -Fj(jobspec)56 b Fs(...)o(])630 4058 y Ft(Without)32 b(options,)g(eac)m +(shell,)630 3597 y(the)g(return)e(status)i(is)f(127.)150 +3759 y Fs(disown)870 3894 y(disown)46 b([-ar])g([-h])h([)p +Fi(jobspec)56 b Fs(...)o(])630 4030 y Ft(Without)32 b(options,)g(eac)m (h)h Fq(jobsp)s(ec)j Ft(is)c(remo)m(v)m(ed)g(from)f(the)h(table)g(of)g -(activ)m(e)h(jobs.)44 b(If)31 b(the)630 4168 y(`)p Fs(-h)p +(activ)m(e)h(jobs.)44 b(If)31 b(the)630 4140 y(`)p Fs(-h)p Ft(')36 b(option)h(is)g(giv)m(en,)i(the)e(job)f(is)h(not)f(remo)m(v)m (ed)i(from)e(the)h(table,)i(but)d(is)g(mark)m(ed)h(so)630 -4277 y(that)d Fs(SIGHUP)d Ft(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g +4249 y(that)d Fs(SIGHUP)d Ft(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g (the)h(shell)f(receiv)m(es)i(a)f Fs(SIGHUP)p Ft(.)47 -b(If)33 b Fq(jobsp)s(ec)38 b Ft(is)630 4387 y(not)32 +b(If)33 b Fq(jobsp)s(ec)38 b Ft(is)630 4359 y(not)32 b(presen)m(t,)f(and)g(neither)h(the)f(`)p Fs(-a)p Ft(')g(nor)g(`)p Fs(-r)p Ft(')g(option)h(is)g(supplied,)e(the)i(curren)m(t)f(job)g(is) -630 4497 y(used.)58 b(If)36 b(no)g Fq(jobsp)s(ec)41 b +630 4468 y(used.)58 b(If)36 b(no)g Fq(jobsp)s(ec)41 b Ft(is)36 b(supplied,)h(the)g(`)p Fs(-a)p Ft(')f(option)h(means)f(to)h -(remo)m(v)m(e)h(or)e(mark)g(all)630 4606 y(jobs;)28 b(the)f(`)p +(remo)m(v)m(e)h(or)e(mark)g(all)630 4578 y(jobs;)28 b(the)f(`)p Fs(-r)p Ft(')g(option)g(without)g(a)g Fq(jobsp)s(ec)32 b Ft(argumen)m(t)27 b(restricts)h(op)s(eration)f(to)h(running)630 -4716 y(jobs.)150 4863 y Fs(suspend)870 4992 y(suspend)46 +4688 y(jobs.)150 4849 y Fs(suspend)870 4985 y(suspend)46 b([-f])630 5121 y Ft(Susp)s(end)31 b(the)i(execution)h(of)g(this)f (shell)g(un)m(til)h(it)g(receiv)m(es)h(a)e Fs(SIGCONT)f Ft(signal.)50 b(A)33 b(login)630 5230 y(shell)24 b(cannot)h(b)s(e)e @@ -11304,138 +11253,105 @@ b(Reference)g(Man)m(ual)275 299 y(When)f(job)f(con)m(trol)j(is)e(not)h (activ)m(e,)i(the)d Fs(kill)f Ft(and)h Fs(wait)f Ft(builtins)g(do)h (not)h(accept)h Fq(jobsp)s(ec)j Ft(argu-)150 408 y(men)m(ts.)41 b(They)30 b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)h -Fl(id)p Ft(s.)150 666 y Fr(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11 -b(ariables)150 910 y Fs(auto_resume)630 1020 y Ft(This)31 +Fl(id)p Ft(s.)150 641 y Fr(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11 +b(ariables)150 825 y Fs(auto_resume)630 935 y Ft(This)31 b(v)-5 b(ariable)32 b(con)m(trols)g(ho)m(w)g(the)f(shell)h(in)m (teracts)h(with)e(the)h(user)e(and)h(job)g(con)m(trol.)45 -b(If)630 1129 y(this)28 b(v)-5 b(ariable)30 b(exists)f(then)f(single)h +b(If)630 1044 y(this)28 b(v)-5 b(ariable)30 b(exists)f(then)f(single)h (w)m(ord)f(simple)h(commands)f(without)g(redirections)i(are)630 -1239 y(treated)h(as)g(candidates)f(for)g(resumption)g(of)g(an)g +1154 y(treated)h(as)g(candidates)f(for)g(resumption)g(of)g(an)g (existing)h(job.)41 b(There)29 b(is)h(no)h(am)m(biguit)m(y)630 -1348 y(allo)m(w)m(ed;)f(if)d(there)g(is)g(more)g(than)f(one)h(job)g(b)s +1264 y(allo)m(w)m(ed;)f(if)d(there)g(is)g(more)g(than)f(one)h(job)g(b)s (eginning)f(with)g(the)h(string)g(t)m(yp)s(ed,)g(then)g(the)630 -1458 y(most)j(recen)m(tly)h(accessed)f(job)f(will)h(b)s(e)f(selected.) +1373 y(most)j(recen)m(tly)h(accessed)f(job)f(will)h(b)s(e)f(selected.) 42 b(The)29 b(name)g(of)h(a)g(stopp)s(ed)e(job,)i(in)f(this)630 -1567 y(con)m(text,)h(is)e(the)g(command)g(line)g(used)f(to)h(start)g +1483 y(con)m(text,)h(is)e(the)g(command)g(line)g(used)f(to)h(start)g (it.)41 b(If)27 b(this)h(v)-5 b(ariable)28 b(is)g(set)g(to)h(the)e(v)-5 -b(alue)630 1677 y(`)p Fs(exact)p Ft(',)33 b(the)g(string)g(supplied)f +b(alue)630 1592 y(`)p Fs(exact)p Ft(',)33 b(the)g(string)g(supplied)f (m)m(ust)h(matc)m(h)g(the)h(name)f(of)g(a)g(stopp)s(ed)f(job)h -(exactly;)j(if)630 1787 y(set)29 b(to)h(`)p Fs(substring)p +(exactly;)j(if)630 1702 y(set)29 b(to)h(`)p Fs(substring)p Ft(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f -(substring)f(of)h(the)g(name)630 1896 y(of)38 b(a)f(stopp)s(ed)g(job.) +(substring)f(of)h(the)g(name)630 1812 y(of)38 b(a)f(stopp)s(ed)g(job.) 62 b(The)37 b(`)p Fs(substring)p Ft(')e(v)-5 b(alue)38 b(pro)m(vides)f(functionalit)m(y)i(analogous)g(to)630 -2006 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f +1921 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f (7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(89\).)64 -b(If)37 b(set)h(to)h(an)m(y)630 2115 y(other)32 b(v)-5 +b(If)37 b(set)h(to)h(an)m(y)630 2031 y(other)32 b(v)-5 b(alue,)32 b(the)g(supplied)e(string)i(m)m(ust)f(b)s(e)g(a)h(pre\014x)f -(of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 2225 +(of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 2140 y(pro)m(vides)e(functionalit)m(y)i(analogous)g(to)f(the)g(`)p Fs(\045)p Ft(')f(job)g Fl(id)p Ft(.)p eop end %%Page: 93 99 TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(8:)41 b(Command)29 b(Line)i(Editing)2107 b(93)150 299 y Fo(8)80 -b(Command)54 b(Line)f(Editing)275 546 y Ft(This)39 b(c)m(hapter)h -(describ)s(es)g(the)g(basic)g(features)g(of)h(the)f Fl(gnu)f -Ft(command)h(line)g(editing)h(in)m(terface.)150 655 y(Command)25 -b(line)h(editing)g(is)g(pro)m(vided)f(b)m(y)h(the)g(Readline)g(library) --8 b(,)27 b(whic)m(h)f(is)g(used)f(b)m(y)g(sev)m(eral)i(di\013eren)m(t) -150 765 y(programs,)46 b(including)c(Bash.)78 b(Command)42 -b(line)h(editing)h(is)f(enabled)f(b)m(y)h(default)g(when)f(using)g(an) -150 874 y(in)m(teractiv)m(e)47 b(shell,)i(unless)44 b(the)h(`)p -Fs(--noediting)p Ft(')d(option)j(is)g(supplied)e(at)j(shell)e(in)m(v)m -(o)s(cation.)86 b(Line)150 984 y(editing)26 b(is)e(also)i(used)e(when)g -(using)h(the)g(`)p Fs(-e)p Ft(')f(option)i(to)f(the)h -Fs(read)d Ft(builtin)i(command)f(\(see)i(Section)g(4.2)150 -1094 y([Bash)38 b(Builtins],)j(page)d(41\).)65 b(By)38 -b(default,)i(the)e(line)g(editing)h(commands)e(are)i(similar)f(to)g -(those)h(of)150 1203 y(emacs.)i(A)28 b(vi-st)m(yle)j(line)d(editing)h -(in)m(terface)h(is)f(also)g(a)m(v)-5 b(ailable.)42 b(Line)29 -b(editing)g(can)f(b)s(e)g(enabled)g(at)i(an)m(y)150 1313 -y(time)g(using)f(the)g(`)p Fs(-o)h(emacs)p Ft(')f(or)g(`)p -Fs(-o)h(vi)p Ft(')f(options)h(to)g(the)f Fs(set)g Ft(builtin)g(command) -g(\(see)h(Section)g(4.3.1)150 1422 y([The)g(Set)h(Builtin],)g(page)g -(51\),)h(or)e(disabled)g(using)g(the)h(`)p Fs(+o)f(emacs)p -Ft(')f(or)h(`)p Fs(+o)g(vi)p Ft(')g(options)h(to)g Fs(set)p -Ft(.)150 1690 y Fr(8.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h -(Editing)275 1939 y Ft(The)29 b(follo)m(wing)j(paragraphs)e(describ)s -(e)g(the)g(notation)i(used)d(to)j(represen)m(t)e(k)m(eystrok)m(es.)275 -2077 y(The)i(text)j Fj(C-k)d Ft(is)i(read)f(as)h(`Con)m(trol-K')g(and)f -(describ)s(es)g(the)g(c)m(haracter)i(pro)s(duced)d(when)g(the)3663 -2074 y Fg(h)p 3687 2021 38 4 v 3687 2077 a Ff(k)p 3687 -2093 V 3720 2074 a Fg(i)150 2187 y Ft(k)m(ey)f(is)g(pressed)e(while)h -(the)h(Con)m(trol)g(k)m(ey)g(is)g(depressed.)275 2326 -y(The)g(text)i Fj(M-k)e Ft(is)h(read)f(as)i(`Meta-K')g(and)f(describ)s -(es)f(the)h(c)m(haracter)h(pro)s(duced)e(when)f(the)i(Meta)150 -2435 y(k)m(ey)d(\(if)g(y)m(ou)g(ha)m(v)m(e)g(one\))g(is)g(depressed,)f -(and)f(the)1859 2432 y Fg(h)p 1883 2379 V 1883 2435 a -Ff(k)p 1883 2450 V 1916 2432 a Fg(i)1974 2435 y Ft(k)m(ey)j(is)e -(pressed.)39 b(The)28 b(Meta)i(k)m(ey)f(is)g(lab)s(eled)3558 -2432 y Fg(h)p 3582 2379 143 4 v 3582 2435 a Ff(AL)-6 -b(T)p 3582 2450 V 3720 2432 a Fg(i)150 2545 y Ft(on)26 -b(man)m(y)g(k)m(eyb)s(oards.)39 b(On)26 b(k)m(eyb)s(oards)g(with)g(t)m -(w)m(o)h(k)m(eys)g(lab)s(eled)2425 2542 y Fg(h)p 2450 -2489 V 2450 2545 a Ff(AL)-6 b(T)p 2450 2560 V 2587 2542 -a Fg(i)2643 2545 y Ft(\(usually)27 b(to)g(either)f(side)g(of)h(the)150 -2654 y(space)32 b(bar\),)g(the)775 2651 y Fg(h)p 799 -2598 V 799 2654 a Ff(AL)-6 b(T)p 799 2670 V 937 2651 -a Fg(i)998 2654 y Ft(on)32 b(the)f(left)h(side)g(is)f(generally)i(set)e -(to)i(w)m(ork)e(as)h(a)f(Meta)i(k)m(ey)-8 b(.)45 b(The)3393 -2651 y Fg(h)p 3417 2598 V 3417 2654 a Ff(AL)-6 b(T)p -3417 2670 V 3555 2651 a Fg(i)3616 2654 y Ft(k)m(ey)150 -2764 y(on)33 b(the)h(righ)m(t)g(ma)m(y)g(also)g(b)s(e)f(con\014gured)f -(to)i(w)m(ork)g(as)g(a)f(Meta)i(k)m(ey)f(or)g(ma)m(y)g(b)s(e)e -(con\014gured)h(as)h(some)150 2873 y(other)d(mo)s(di\014er,)e(suc)m(h)h -(as)h(a)g(Comp)s(ose)f(k)m(ey)h(for)f(t)m(yping)h(accen)m(ted)h(c)m -(haracters.)275 3012 y(If)21 b(y)m(ou)h(do)g(not)g(ha)m(v)m(e)h(a)f -(Meta)h(or)1388 3009 y Fg(h)p 1412 2956 V 1412 3012 a -Ff(AL)-6 b(T)p 1412 3028 V 1550 3009 a Fg(i)1601 3012 -y Ft(k)m(ey)e(,)25 b(or)d(another)g(k)m(ey)h(w)m(orking)f(as)g(a)g -(Meta)h(k)m(ey)-8 b(,)25 b(the)d(iden)m(tical)150 3122 -y(k)m(eystrok)m(e)i(can)f(b)s(e)f(generated)i(b)m(y)e(t)m(yping)1619 -3119 y Fg(h)p 1643 3066 139 4 v 1643 3122 a Ff(ESC)p -1643 3137 V 1777 3119 a Fg(i)1829 3122 y Fm(\014rst)p -Ft(,)j(and)d(then)g(t)m(yping)2678 3119 y Fg(h)p 2703 -3066 38 4 v 2703 3122 a Ff(k)p 2703 3137 V 2736 3119 -a Fg(i)2765 3122 y Ft(.)38 b(Either)23 b(pro)s(cess)f(is)g(kno)m(wn)150 -3231 y(as)31 b Fq(metafying)39 b Ft(the)850 3228 y Fg(h)p -874 3175 V 874 3231 a Ff(k)p 874 3247 V 907 3228 a Fg(i)968 -3231 y Ft(k)m(ey)-8 b(.)275 3370 y(The)39 b(text)j Fj(M-C-k)d -Ft(is)h(read)g(as)h(`Meta-Con)m(trol-k')j(and)39 b(describ)s(es)h(the)g -(c)m(haracter)i(pro)s(duced)d(b)m(y)150 3480 y Fq(metafying)g -Fj(C-k)p Ft(.)275 3618 y(In)d(addition,)j(sev)m(eral)f(k)m(eys)f(ha)m -(v)m(e)h(their)f(o)m(wn)g(names.)60 b(Sp)s(eci\014cally)-8 -b(,)2768 3615 y Fg(h)p 2792 3562 146 4 v 2792 3618 a -Ff(DEL)p 2792 3634 V 2934 3615 a Fg(i)2964 3618 y Ft(,)3028 -3615 y Fg(h)p 3052 3562 139 4 v 3052 3618 a Ff(ESC)p -3052 3634 V 3186 3615 a Fg(i)3216 3618 y Ft(,)3279 3615 -y Fg(h)p 3303 3562 144 4 v 3303 3618 a Ff(LFD)p 3303 -3634 V 3443 3615 a Fg(i)3473 3618 y Ft(,)3537 3615 y -Fg(h)p 3561 3562 139 4 v 3561 3618 a Ff(SPC)p 3561 3634 -V 3695 3615 a Fg(i)3725 3618 y Ft(,)150 3725 y Fg(h)p -174 3672 151 4 v 174 3728 a Ff(RET)p 174 3743 V 321 3725 -a Fg(i)351 3728 y Ft(,)47 b(and)612 3725 y Fg(h)p 637 -3672 148 4 v 637 3728 a Ff(T)-6 b(AB)p 637 3743 V 780 -3725 a Fg(i)853 3728 y Ft(all)45 b(stand)e(for)g(themselv)m(es)i(when)d -(seen)i(in)f(this)g(text,)48 b(or)43 b(in)g(an)h(init)f(\014le)h(\(see) -150 3837 y(Section)37 b(8.3)g([Readline)g(Init)f(File],)j(page)e(96\).) -59 b(If)36 b(y)m(our)g(k)m(eyb)s(oard)g(lac)m(ks)h(a)2897 -3834 y Fg(h)p 2921 3781 144 4 v 2921 3837 a Ff(LFD)p -2921 3853 V 3061 3834 a Fg(i)3127 3837 y Ft(k)m(ey)-8 -b(,)39 b(t)m(yping)3604 3834 y Fg(h)p 3628 3781 97 4 -v 3628 3837 a Ff(C-j)p 3628 3853 V 3720 3834 a Fg(i)150 -3947 y Ft(will)30 b(pro)s(duce)e(the)i(desired)f(c)m(haracter.)42 -b(The)1748 3944 y Fg(h)p 1772 3891 151 4 v 1772 3947 -a Ff(RET)p 1772 3962 V 1919 3944 a Fg(i)1978 3947 y Ft(k)m(ey)30 -b(ma)m(y)g(b)s(e)f(lab)s(eled)2770 3944 y Fg(h)p 2794 -3891 217 4 v 2794 3947 a Ff(Return)p 2794 3962 V 3007 -3944 a Fg(i)3066 3947 y Ft(or)3176 3944 y Fg(h)p 3201 -3891 172 4 v 3201 3947 a Ff(En)n(ter)p 3201 3962 V 3368 -3944 a Fg(i)3427 3947 y Ft(on)h(some)150 4057 y(k)m(eyb)s(oards.)150 -4325 y Fr(8.2)68 b(Readline)47 b(In)l(teraction)275 4573 -y Ft(Often)24 b(during)g(an)h(in)m(teractiv)m(e)j(session)e(y)m(ou)f(t) -m(yp)s(e)h(in)f(a)g(long)h(line)f(of)h(text,)h(only)f(to)f(notice)i -(that)f(the)150 4682 y(\014rst)32 b(w)m(ord)g(on)g(the)g(line)h(is)g +b(Command)54 b(Line)f(Editing)150 640 y Ft(This)28 b(c)m(hapter)i +(describ)s(es)e(the)h(basic)g(features)h(of)f(the)g Fl(gnu)f +Ft(command)h(line)g(editing)h(in)m(terface.)42 b(Com-)150 +749 y(mand)c(line)i(editing)f(is)g(pro)m(vided)g(b)m(y)g(the)g +(Readline)h(library)-8 b(,)41 b(whic)m(h)e(is)g(used)f(b)m(y)h(sev)m +(eral)h(di\013eren)m(t)150 859 y(programs,)34 b(including)e(Bash.)49 +b(Command)32 b(line)i(editing)f(is)g(enabled)g(b)m(y)g(default)g(when)f +(using)h(an)g(in-)150 969 y(teractiv)m(e)c(shell,)f(unless)e(the)h(`)p +Fs(--noediting)p Ft(')d(option)k(is)e(supplied)g(at)h(shell)g(in)m(v)m +(o)s(cation.)42 b(Line)26 b(editing)150 1078 y(is)i(also)h(used)e(when) +h(using)f(the)h(`)p Fs(-e)p Ft(')g(option)h(to)g(the)f +Fs(read)f Ft(builtin)h(command)f(\(see)i(Section)g(4.2)h([Bash)150 +1188 y(Builtins],)37 b(page)f(41\).)57 b(By)36 b(default,)h(the)e(line) +h(editing)g(commands)f(are)h(similar)f(to)i(those)e(of)h(emacs.)150 +1297 y(A)f(vi-st)m(yle)h(line)f(editing)g(in)m(terface)h(is)e(also)i(a) +m(v)-5 b(ailable.)55 b(Line)34 b(editing)h(can)g(b)s(e)f(enabled)g(at)h +(an)m(y)g(time)150 1407 y(using)28 b(the)i(`)p Fs(-o)g(emacs)p +Ft(')d(or)i(`)p Fs(-o)h(vi)p Ft(')f(options)g(to)h(the)f +Fs(set)f Ft(builtin)h(command)g(\(see)h(Section)f(4.3.1)i([The)150 +1517 y(Set)g(Builtin],)g(page)g(51\),)h(or)e(disabled)g(using)g(the)h +(`)p Fs(+o)f(emacs)p Ft(')f(or)h(`)p Fs(+o)g(vi)p Ft(')g(options)h(to)g +Fs(set)p Ft(.)150 1802 y Fr(8.1)68 b(In)l(tro)t(duction)45 +b(to)g(Line)h(Editing)150 1962 y Ft(The)30 b(follo)m(wing)i(paragraphs) +d(describ)s(e)h(the)h(notation)g(used)f(to)h(represen)m(t)f(k)m +(eystrok)m(es.)275 2132 y(The)35 b(text)i Fi(C-k)f Ft(is)g(read)g(as)h +(`Con)m(trol-K')g(and)f(describ)s(es)f(the)h(c)m(haracter)i(pro)s +(duced)d(when)g(the)h Fs(k)150 2242 y Ft(k)m(ey)31 b(is)g(pressed)e +(while)h(the)h(Con)m(trol)g(k)m(ey)g(is)g(depressed.)275 +2412 y(The)g(text)i Fi(M-k)e Ft(is)h(read)f(as)i(`Meta-K')g(and)f +(describ)s(es)f(the)h(c)m(haracter)h(pro)s(duced)e(when)f(the)i(Meta) +150 2521 y(k)m(ey)i(\(if)f(y)m(ou)h(ha)m(v)m(e)g(one\))g(is)f +(depressed,)g(and)f(the)h Fs(k)g Ft(k)m(ey)h(is)f(pressed.)48 +b(The)32 b(Meta)j(k)m(ey)e(is)h(lab)s(eled)f Fs(ALT)150 +2631 y Ft(on)c(man)m(y)h(k)m(eyb)s(oards.)40 b(On)29 +b(k)m(eyb)s(oards)g(with)h(t)m(w)m(o)h(k)m(eys)f(lab)s(eled)g +Fs(ALT)e Ft(\(usually)i(to)g(either)g(side)g(of)g(the)150 +2740 y(space)h(bar\),)f(the)g Fs(ALT)f Ft(on)h(the)g(left)h(side)f(is)g +(generally)h(set)f(to)h(w)m(ork)f(as)g(a)h(Meta)g(k)m(ey)-8 +b(.)42 b(The)29 b Fs(ALT)g Ft(k)m(ey)i(on)150 2850 y(the)c(righ)m(t)h +(ma)m(y)g(also)g(b)s(e)f(con\014gured)f(to)i(w)m(ork)f(as)h(a)f(Meta)i +(k)m(ey)f(or)f(ma)m(y)h(b)s(e)e(con\014gured)h(as)g(some)h(other)150 +2960 y(mo)s(di\014er,)i(suc)m(h)g(as)g(a)h(Comp)s(ose)f(k)m(ey)h(for)f +(t)m(yping)h(accen)m(ted)h(c)m(haracters.)275 3130 y(If)23 +b(y)m(ou)i(do)f(not)h(ha)m(v)m(e)h(a)f(Meta)g(or)g Fs(ALT)e +Ft(k)m(ey)-8 b(,)27 b(or)e(another)f(k)m(ey)i(w)m(orking)e(as)h(a)g +(Meta)h(k)m(ey)-8 b(,)27 b(the)d(iden)m(tical)150 3239 +y(k)m(eystrok)m(e)30 b(can)f(b)s(e)f(generated)h(b)m(y)g(t)m(yping)g +Fs(ESC)e Fk(\014rst)p Ft(,)j(and)e(then)g(t)m(yping)h +Fs(k)p Ft(.)40 b(Either)28 b(pro)s(cess)g(is)g(kno)m(wn)150 +3349 y(as)j Fq(metafying)39 b Ft(the)30 b Fs(k)g Ft(k)m(ey)-8 +b(.)275 3519 y(The)39 b(text)j Fi(M-C-k)d Ft(is)h(read)g(as)h +(`Meta-Con)m(trol-k')j(and)39 b(describ)s(es)h(the)g(c)m(haracter)i +(pro)s(duced)d(b)m(y)150 3629 y Fq(metafying)g Fi(C-k)p +Ft(.)275 3799 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g +(their)f(o)m(wn)g(names.)58 b(Sp)s(eci\014cally)-8 b(,)38 +b Fs(DEL)p Ft(,)f Fs(ESC)p Ft(,)g Fs(LFD)p Ft(,)g Fs(SPC)p +Ft(,)g Fs(RET)p Ft(,)150 3908 y(and)d Fs(TAB)f Ft(all)j(stand)e(for)g +(themselv)m(es)i(when)d(seen)i(in)f(this)g(text,)j(or)d(in)h(an)f(init) +h(\014le)f(\(see)i(Section)f(8.3)150 4018 y([Readline)27 +b(Init)g(File],)i(page)e(96\).)41 b(If)26 b(y)m(our)h(k)m(eyb)s(oard)f +(lac)m(ks)i(a)f Fs(LFD)f Ft(k)m(ey)-8 b(,)29 b(t)m(yping)e +Fs(C-j)e Ft(will)i(pro)s(duce)f(the)150 4128 y(desired)k(c)m(haracter.) +42 b(The)30 b Fs(RET)g Ft(k)m(ey)h(ma)m(y)g(b)s(e)e(lab)s(eled)i +Fs(Return)e Ft(or)h Fs(Enter)f Ft(on)h(some)h(k)m(eyb)s(oards.)150 +4413 y Fr(8.2)68 b(Readline)47 b(In)l(teraction)150 4573 +y Ft(Often)32 b(during)g(an)g(in)m(teractiv)m(e)j(session)e(y)m(ou)g(t) +m(yp)s(e)g(in)f(a)h(long)g(line)g(of)f(text,)j(only)d(to)i(notice)g +(that)f(the)150 4682 y(\014rst)f(w)m(ord)g(on)g(the)g(line)h(is)g (missp)s(elled.)46 b(The)32 b(Readline)h(library)f(giv)m(es)h(y)m(ou)g (a)g(set)g(of)f(commands)g(for)150 4792 y(manipulating)e(the)g(text)h (as)f(y)m(ou)g(t)m(yp)s(e)g(it)g(in,)g(allo)m(wing)h(y)m(ou)f(to)h @@ -11444,669 +11360,671 @@ m(yp)s(e)h(in)f(a)g(long)h(line)f(of)h(text,)h(only)f(to)f(notice)i b(of)f(the)h(line.)40 b(Using)28 b(these)h(editing)g(commands,)f(y)m (ou)h(mo)m(v)m(e)g(the)g(cursor)150 5011 y(to)35 b(the)f(place)i(that)e (needs)g(correction,)j(and)d(delete)h(or)f(insert)h(the)f(text)h(of)g -(the)f(corrections.)54 b(Then,)150 5121 y(when)30 b(y)m(ou)i(are)f -(satis\014ed)g(with)g(the)g(line,)h(y)m(ou)g(simply)e(press)2320 -5118 y Fg(h)p 2344 5065 151 4 v 2344 5121 a Ff(RET)p -2344 5136 V 2491 5118 a Fg(i)2520 5121 y Ft(.)43 b(Y)-8 -b(ou)32 b(do)f(not)g(ha)m(v)m(e)i(to)e(b)s(e)g(at)h(the)150 -5230 y(end)j(of)h(the)g(line)g(to)h(press)1126 5227 y -Fg(h)p 1150 5174 V 1150 5230 a Ff(RET)p 1150 5246 V 1297 -5227 a Fg(i)1327 5230 y Ft(;)h(the)e(en)m(tire)h(line)f(is)g(accepted)h -(regardless)f(of)g(the)g(lo)s(cation)i(of)e(the)150 5340 -y(cursor)30 b(within)g(the)g(line.)p eop end +(the)f(corrections.)54 b(Then,)150 5121 y(when)24 b(y)m(ou)h(are)g +(satis\014ed)g(with)g(the)g(line,)i(y)m(ou)e(simply)f(press)g +Fs(RET)p Ft(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e +(at)h(the)h(end)150 5230 y(of)33 b(the)h(line)g(to)g(press)e +Fs(RET)p Ft(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g +(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 5340 +y(within)c(the)g(line.)p eop end %%Page: 94 100 TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(8.2.1)63 b(Readline)40 -b(Bare)h(Essen)m(tials)275 540 y Ft(In)22 b(order)g(to)i(en)m(ter)g(c)m -(haracters)g(in)m(to)g(the)g(line,)h(simply)d(t)m(yp)s(e)i(them.)38 -b(The)22 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150 -650 y(where)32 b(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e -(mo)m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47 -b(If)32 b(y)m(ou)h(mist)m(yp)s(e)g(a)150 759 y(c)m(haracter,)f(y)m(ou)f -(can)g(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f -(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 891 +b(Reference)g(Man)m(ual)150 299 y Fj(8.2.1)63 b(Readline)40 +b(Bare)h(Essen)m(tials)150 446 y Ft(In)31 b(order)h(to)h(en)m(ter)g(c)m +(haracters)g(in)m(to)g(the)g(line,)g(simply)e(t)m(yp)s(e)i(them.)46 +b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150 +555 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e(mo)m +(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47 b(If)32 +b(y)m(ou)h(mist)m(yp)s(e)g(a)150 665 y(c)m(haracter,)f(y)m(ou)f(can)g +(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f +(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 806 y(Sometimes)i(y)m(ou)g(ma)m(y)h(mist)m(yp)s(e)e(a)i(c)m(haracter,)g (and)e(not)i(notice)g(the)f(error)f(un)m(til)h(y)m(ou)g(ha)m(v)m(e)h(t) -m(yp)s(ed)150 1000 y(sev)m(eral)e(other)f(c)m(haracters.)42 +m(yp)s(ed)150 916 y(sev)m(eral)e(other)f(c)m(haracters.)42 b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h -Fj(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150 -1110 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31 +Fi(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150 +1026 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31 b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)g -(with)f Fj(C-f)p Ft(.)275 1242 y(When)i(y)m(ou)h(add)f(text)h(in)f(the) +(with)f Fi(C-f)p Ft(.)275 1167 y(When)i(y)m(ou)h(add)f(text)h(in)f(the) h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m -(haracters)h(to)g(the)e(righ)m(t)150 1351 y(of)d(the)g(cursor)f(are)h +(haracters)h(to)g(the)e(righ)m(t)150 1277 y(of)d(the)g(cursor)f(are)h (`pushed)e(o)m(v)m(er')j(to)g(mak)m(e)f(ro)s(om)g(for)f(the)h(text)h (that)f(y)m(ou)g(ha)m(v)m(e)h(inserted.)40 b(Lik)m(ewise,)150 -1461 y(when)d(y)m(ou)g(delete)i(text)g(b)s(ehind)c(the)j(cursor,)h(c)m +1386 y(when)d(y)m(ou)g(delete)i(text)g(b)s(ehind)c(the)j(cursor,)h(c)m (haracters)g(to)f(the)g(righ)m(t)g(of)g(the)g(cursor)e(are)i(`pulled) -150 1570 y(bac)m(k')24 b(to)f(\014ll)g(in)f(the)h(blank)f(space)i +150 1496 y(bac)m(k')24 b(to)f(\014ll)g(in)f(the)h(blank)f(space)i (created)f(b)m(y)g(the)g(remo)m(v)-5 b(al)24 b(of)f(the)g(text.)39 -b(A)23 b(list)g(of)g(the)g(bare)f(essen)m(tials)150 1680 +b(A)23 b(list)g(of)g(the)g(bare)f(essen)m(tials)150 1605 y(for)30 b(editing)h(the)g(text)g(of)g(an)f(input)f(line)i(follo)m(ws.) -150 1834 y Fj(C-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m -(haracter.)150 1987 y Fj(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one) -h(c)m(haracter.)150 2138 y Fg(h)p 174 2085 146 4 v 174 -2141 a Ff(DEL)p 174 2156 V 316 2138 a Fg(i)376 2141 y -Ft(or)487 2138 y Fg(h)p 512 2085 317 4 v 512 2141 a Ff(Bac)n(kspace)p -512 2156 V 824 2138 a Fg(i)630 2251 y Ft(Delete)i(the)d(c)m(haracter)i -(to)f(the)g(left)g(of)f(the)h(cursor.)150 2404 y Fj(C-d)336 -b Ft(Delete)33 b(the)d(c)m(haracter)i(underneath)d(the)i(cursor.)150 -2558 y(Prin)m(ting)g(c)m(haracters)630 2668 y(Insert)f(the)g(c)m -(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g(cursor.)150 -2821 y Fj(C-_)e Ft(or)i Fj(C-x)e(C-u)630 2931 y Ft(Undo)k(the)h(last)g -(editing)g(command.)50 b(Y)-8 b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a) -m(y)i(bac)m(k)f(to)g(an)g(empt)m(y)630 3040 y(line.)150 -3194 y(\(Dep)s(ending)g(on)g(y)m(our)g(con\014guration,)h(the)1726 -3191 y Fg(h)p 1750 3138 V 1750 3194 a Ff(Bac)n(kspace)p -1750 3209 V 2063 3191 a Fg(i)2127 3194 y Ft(k)m(ey)g(b)s(e)e(set)h(to)h -(delete)g(the)f(c)m(haracter)i(to)f(the)150 3304 y(left)f(of)f(the)g -(cursor)f(and)h(the)1192 3301 y Fg(h)p 1216 3248 146 -4 v 1216 3304 a Ff(DEL)p 1216 3319 V 1358 3301 a Fg(i)1421 -3304 y Ft(k)m(ey)g(set)h(to)g(delete)g(the)f(c)m(haracter)i(underneath) -c(the)i(cursor,)h(lik)m(e)150 3413 y Fj(C-d)p Ft(,)c(rather)g(than)g -(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g(the)f(cursor.\))150 -3629 y Fk(8.2.2)63 b(Readline)40 b(Mo)m(v)m(emen)m(t)h(Commands)275 -3870 y Ft(The)25 b(ab)s(o)m(v)m(e)i(table)g(describ)s(es)f(the)g(most)h -(basic)f(k)m(eystrok)m(es)i(that)f(y)m(ou)f(need)g(in)g(order)f(to)i -(do)f(editing)150 3980 y(of)g(the)f(input)g(line.)39 -b(F)-8 b(or)27 b(y)m(our)e(con)m(v)m(enience,)k(man)m(y)c(other)h -(commands)f(ha)m(v)m(e)i(b)s(een)e(added)g(in)g(addition)150 -4089 y(to)33 b Fj(C-b)p Ft(,)e Fj(C-f)p Ft(,)h Fj(C-d)p -Ft(,)g(and)1043 4086 y Fg(h)p 1067 4033 V 1067 4089 a -Ff(DEL)p 1067 4105 V 1209 4086 a Fg(i)1239 4089 y Ft(.)45 -b(Here)33 b(are)f(some)g(commands)g(for)g(mo)m(ving)h(more)f(rapidly)f -(ab)s(out)h(the)150 4199 y(line.)150 4352 y Fj(C-a)336 -b Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(line.)150 -4506 y Fj(C-e)336 b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h -(line.)150 4660 y Fj(M-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m -(ord,)f(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d -(digits.)150 4813 y Fj(M-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a) -g(w)m(ord.)150 4967 y Fj(C-l)336 b Ft(Clear)31 b(the)f(screen,)h -(reprin)m(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275 -5121 y(Notice)c(ho)m(w)f Fj(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m -(haracter,)j(while)d Fj(M-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m +150 1775 y Fi(C-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m +(haracter.)150 1941 y Fi(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one) +h(c)m(haracter.)150 2108 y Fs(DEL)e Ft(or)i Fs(Backspace)630 +2217 y Ft(Delete)i(the)d(c)m(haracter)i(to)f(the)g(left)g(of)f(the)h +(cursor.)150 2384 y Fi(C-d)336 b Ft(Delete)33 b(the)d(c)m(haracter)i +(underneath)d(the)i(cursor.)150 2550 y(Prin)m(ting)g(c)m(haracters)630 +2660 y(Insert)f(the)g(c)m(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g +(cursor.)150 2826 y Fi(C-_)e Ft(or)i Fi(C-x)e(C-u)630 +2936 y Ft(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8 +b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a)m(y)i(bac)m(k)f(to)g(an)g +(empt)m(y)630 3045 y(line.)150 3215 y(\(Dep)s(ending)29 +b(on)h(y)m(our)f(con\014guration,)i(the)e Fs(Backspace)e +Ft(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the) +150 3324 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g +Fs(DEL)g Ft(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i +(underneath)d(the)h(cursor,)i(lik)m(e)150 3434 y Fi(C-d)p +Ft(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g +(the)f(cursor.\))150 3640 y Fj(8.2.2)63 b(Readline)40 +b(Mo)m(v)m(emen)m(t)h(Commands)150 3787 y Ft(The)27 b(ab)s(o)m(v)m(e)i +(table)g(describ)s(es)e(the)g(most)i(basic)f(k)m(eystrok)m(es)h(that)f +(y)m(ou)g(need)g(in)f(order)g(to)i(do)e(editing)i(of)150 +3897 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m +(enience,)j(man)m(y)d(other)g(commands)f(ha)m(v)m(e)j(b)s(een)d(added)g +(in)h(addition)150 4006 y(to)j Fi(C-b)p Ft(,)f Fi(C-f)p +Ft(,)g Fi(C-d)p Ft(,)h(and)e Fs(DEL)p Ft(.)54 b(Here)35 +b(are)g(some)h(commands)e(for)h(mo)m(ving)h(more)f(rapidly)f(ab)s(out)h +(the)150 4116 y(line.)150 4286 y Fi(C-a)336 b Ft(Mo)m(v)m(e)32 +b(to)g(the)e(start)h(of)g(the)f(line.)150 4452 y Fi(C-e)336 +b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150 +4618 y Fi(M-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f +(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d(digits.) +150 4785 y Fi(M-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m +(ord.)150 4951 y Fi(C-l)336 b Ft(Clear)31 b(the)f(screen,)h(reprin)m +(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275 +5121 y(Notice)c(ho)m(w)f Fi(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m +(haracter,)j(while)d Fi(M-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m (ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 5230 y(con)m(v)m(en)m(tion)32 b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m (haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150 5340 y(w)m(ords.)p eop end %%Page: 95 101 TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2107 b(95)150 299 y Fk(8.2.3)63 -b(Readline)40 b(Killing)i(Commands)275 566 y Fq(Killing)j -Ft(text)39 b(means)e(to)h(delete)g(the)g(text)g(from)f(the)g(line,)j -(but)d(to)h(sa)m(v)m(e)h(it)e(a)m(w)m(a)m(y)j(for)d(later)h(use,)150 -675 y(usually)c(b)m(y)g Fq(y)m(anking)42 b Ft(\(re-inserting\))35 -b(it)g(bac)m(k)g(in)m(to)g(the)f(line.)52 b(\(`Cut')35 -b(and)e(`paste')i(are)g(more)f(recen)m(t)150 785 y(jargon)d(for)f -(`kill')h(and)f(`y)m(ank'.\))275 942 y(If)f(the)i(description)f(for)g -(a)h(command)f(sa)m(ys)g(that)h(it)g(`kills')g(text,)h(then)e(y)m(ou)g -(can)h(b)s(e)e(sure)h(that)h(y)m(ou)150 1052 y(can)g(get)g(the)g(text)g -(bac)m(k)g(in)f(a)h(di\013eren)m(t)g(\(or)g(the)f(same\))h(place)h -(later.)275 1209 y(When)23 b(y)m(ou)g(use)g(a)h(kill)g(command,)g(the)g -(text)g(is)f(sa)m(v)m(ed)i(in)e(a)g Fq(kill-ring)p Ft(.)39 -b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv)m(e)150 -1318 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g(killed)h(text)g +b(Command)29 b(Line)i(Editing)2107 b(95)150 299 y Fj(8.2.3)63 +b(Readline)40 b(Killing)i(Commands)150 446 y Fq(Killing)35 +b Ft(text)28 b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i +(but)e(to)h(sa)m(v)m(e)h(it)g(a)m(w)m(a)m(y)g(for)e(later)i(use,)f +(usually)150 555 y(b)m(y)g Fq(y)m(anking)35 b Ft(\(re-inserting\))28 +b(it)g(bac)m(k)f(in)m(to)h(the)f(line.)40 b(\(`Cut')27 +b(and)g(`paste')h(are)f(more)g(recen)m(t)h(jargon)f(for)150 +665 y(`kill')32 b(and)d(`y)m(ank'.\))275 801 y(If)g(the)i(description)f +(for)g(a)h(command)f(sa)m(ys)g(that)h(it)g(`kills')g(text,)h(then)e(y)m +(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m(ou)150 911 y(can)g(get)g(the)g +(text)g(bac)m(k)g(in)f(a)h(di\013eren)m(t)g(\(or)g(the)f(same\))h +(place)h(later.)275 1047 y(When)23 b(y)m(ou)g(use)g(a)h(kill)g +(command,)g(the)g(text)g(is)f(sa)m(v)m(ed)i(in)e(a)g +Fq(kill-ring)p Ft(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv) +m(e)150 1157 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g(killed)h(text)g (together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)f(bac)m(k,)h(y)m -(ou)g(get)g(it)f(all.)43 b(The)150 1428 y(kill)33 b(ring)f(is)g(not)h +(ou)g(get)g(it)f(all.)43 b(The)150 1267 y(kill)33 b(ring)f(is)g(not)h (line)g(sp)s(eci\014c;)g(the)g(text)g(that)g(y)m(ou)g(killed)f(on)h(a)f (previously)g(t)m(yp)s(ed)h(line)f(is)h(a)m(v)-5 b(ailable)150 -1537 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)h(when)d(y)m(ou) -i(are)g(t)m(yping)f(another)h(line.)275 1695 y(Here)f(is)h(the)f(list)h -(of)g(commands)f(for)g(killing)h(text.)150 1888 y Fj(C-k)336 +1376 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)h(when)d(y)m(ou) +i(are)g(t)m(yping)f(another)h(line.)275 1513 y(Here)f(is)h(the)f(list)h +(of)g(commands)f(for)g(killing)h(text.)150 1675 y Fi(C-k)336 b Ft(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g(cursor)g(p)s -(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150 2070 -y Fj(M-d)336 b Ft(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h +(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150 1836 +y Fi(M-d)336 b Ft(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h (the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,) -g(to)g(the)630 2180 y(end)j(of)g(the)h(next)f(w)m(ord.)41 +g(to)g(the)630 1946 y(end)j(of)g(the)h(next)f(w)m(ord.)41 b(W)-8 b(ord)30 b(b)s(oundaries)f(are)i(the)g(same)f(as)h(those)g(used) -f(b)m(y)g Fj(M-f)p Ft(.)150 2362 y Fj(M-)246 2359 y Fg(h)p -270 2306 146 4 v 270 2362 a Ff(DEL)p 270 2377 V 411 2359 -a Fg(i)630 2362 y Ft(Kill)h(from)f(the)h(cursor)f(the)g(start)h(of)g -(the)g(curren)m(t)f(w)m(ord,)h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,) -f(to)i(the)630 2471 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 -b(W)-8 b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used) -g(b)m(y)630 2581 y Fj(M-b)p Ft(.)150 2763 y Fj(C-w)336 -b Ft(Kill)32 b(from)e(the)i(cursor)e(to)i(the)g(previous)e(whitespace.) -44 b(This)31 b(is)g(di\013eren)m(t)h(than)f Fj(M-)3555 -2760 y Fg(h)p 3578 2707 V 3578 2763 a Ff(DEL)p 3578 2778 -V 3720 2760 a Fg(i)630 2872 y Ft(b)s(ecause)f(the)h(w)m(ord)f(b)s -(oundaries)f(di\013er.)275 3066 y(Here)42 b(is)f(ho)m(w)h(to)g -Fq(y)m(ank)47 b Ft(the)42 b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74 -b(Y)-8 b(anking)43 b(means)e(to)h(cop)m(y)h(the)e(most-)150 -3175 y(recen)m(tly-killed)33 b(text)e(from)f(the)g(kill)i(bu\013er.)150 -3369 y Fj(C-y)336 b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h -(killed)f(text)g(bac)m(k)g(in)m(to)h(the)e(bu\013er)g(at)h(the)f -(cursor.)150 3551 y Fj(M-y)336 b Ft(Rotate)36 b(the)f(kill-ring,)i(and) -d(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)f(do)h -(this)f(if)h(the)g(prior)630 3660 y(command)30 b(is)h -Fj(C-y)e Ft(or)h Fj(M-y)p Ft(.)150 3930 y Fk(8.2.4)63 -b(Readline)40 b(Argumen)m(ts)275 4197 y Ft(Y)-8 b(ou)29 -b(can)h(pass)f(n)m(umeric)g(argumen)m(ts)g(to)h(Readline)g(commands.)40 -b(Sometimes)30 b(the)f(argumen)m(t)h(acts)150 4306 y(as)40 -b(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g -Fm(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m -(t.)71 b(If)40 b(y)m(ou)150 4416 y(pass)33 b(a)h(negativ)m(e)i(argumen) +f(b)m(y)g Fi(M-f)p Ft(.)150 2107 y Fi(M-DEL)240 b Ft(Kill)31 +b(from)f(the)h(cursor)f(the)g(start)h(of)g(the)g(curren)m(t)f(w)m(ord,) +h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)i(the)630 +2217 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8 +b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used)g(b)m +(y)630 2326 y Fi(M-b)p Ft(.)150 2487 y Fi(C-w)336 b Ft(Kill)35 +b(from)g(the)g(cursor)f(to)i(the)f(previous)g(whitespace.)55 +b(This)34 b(is)h(di\013eren)m(t)h(than)e Fi(M-DEL)630 +2597 y Ft(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275 +2759 y(Here)42 b(is)f(ho)m(w)h(to)g Fq(y)m(ank)47 b Ft(the)42 +b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74 b(Y)-8 b(anking)43 +b(means)e(to)h(cop)m(y)h(the)e(most-)150 2869 y(recen)m(tly-killed)33 +b(text)e(from)f(the)g(kill)i(bu\013er.)150 3031 y Fi(C-y)336 +b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h(killed)f(text)g(bac)m +(k)g(in)m(to)h(the)e(bu\013er)g(at)h(the)f(cursor.)150 +3192 y Fi(M-y)336 b Ft(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h +(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h +(the)g(prior)630 3302 y(command)30 b(is)h Fi(C-y)e Ft(or)h +Fi(M-y)p Ft(.)150 3503 y Fj(8.2.4)63 b(Readline)40 b(Argumen)m(ts)150 +3650 y Ft(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f +(Readline)h(commands.)67 b(Sometimes)39 b(the)g(argumen)m(t)h(acts)150 +3760 y(as)g(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g +Fk(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m +(t.)71 b(If)40 b(y)m(ou)150 3869 y(pass)33 b(a)h(negativ)m(e)i(argumen) m(t)e(to)g(a)g(command)f(whic)m(h)g(normally)h(acts)g(in)f(a)h(forw)m -(ard)f(direction,)i(that)150 4525 y(command)g(will)h(act)g(in)f(a)h +(ard)f(direction,)i(that)150 3979 y(command)g(will)h(act)g(in)f(a)h (bac)m(kw)m(ard)f(direction.)57 b(F)-8 b(or)36 b(example,)h(to)f(kill)g -(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 4635 y(the)31 +(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 4088 y(the)31 b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Fs(M--)f(C-k)p -Ft('.)275 4792 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g +Ft('.)275 4225 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g (argumen)m(ts)h(to)g(a)f(command)g(is)g(to)h(t)m(yp)s(e)f(meta)i -(digits)e(b)s(efore)150 4902 y(the)j(command.)42 b(If)30 +(digits)e(b)s(efore)150 4334 y(the)j(command.)42 b(If)30 b(the)h(\014rst)f(`digit')i(t)m(yp)s(ed)f(is)g(a)g(min)m(us)f(sign)h (\(`)p Fs(-)p Ft('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150 -5011 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m +4444 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m (e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)g(to)f(get)i(the)e(argumen)m(t)h -(started,)i(y)m(ou)150 5121 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f +(started,)i(y)m(ou)150 4554 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f (of)h(the)g(digits,)h(and)f(then)f(the)h(command.)40 -b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fj(C-d)150 -5230 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f +b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fi(C-d)150 +4663 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f (t)m(yp)s(e)h(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)e(will)h -(delete)h(the)e(next)h(ten)150 5340 y(c)m(haracters)32 -b(on)e(the)h(input)e(line.)p eop end +(delete)h(the)e(next)h(ten)150 4773 y(c)m(haracters)32 +b(on)e(the)h(input)e(line.)150 4974 y Fj(8.2.5)63 b(Searc)m(hing)40 +b(for)i(Commands)g(in)f(the)g(History)150 5121 y Ft(Readline)35 +b(pro)m(vides)f(commands)g(for)g(searc)m(hing)h(through)e(the)i +(command)f(history)g(\(see)h(Section)g(9.1)150 5230 y([Bash)i(History)h +(F)-8 b(acilities],)42 b(page)37 b(121\))i(for)d(lines)h(con)m(taining) +i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36 b(are)i(t)m(w)m(o)150 +5340 y(searc)m(h)31 b(mo)s(des:)40 b Fq(incremen)m(tal)35 +b Ft(and)30 b Fq(non-incremen)m(tal)p Ft(.)p eop end %%Page: 96 102 TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(8.2.5)63 b(Searc)m(hing)40 -b(for)i(Commands)g(in)f(the)g(History)275 540 y Ft(Readline)23 -b(pro)m(vides)g(commands)f(for)h(searc)m(hing)h(through)e(the)h -(command)g(history)f(\(see)i(Section)g(9.1)150 649 y([Bash)37 -b(History)h(F)-8 b(acilities],)42 b(page)37 b(121\))i(for)d(lines)h -(con)m(taining)i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36 -b(are)i(t)m(w)m(o)150 759 y(searc)m(h)31 b(mo)s(des:)40 -b Fq(incremen)m(tal)35 b Ft(and)30 b Fq(non-incremen)m(tal)p -Ft(.)275 890 y(Incremen)m(tal)c(searc)m(hes)h(b)s(egin)e(b)s(efore)g -(the)h(user)f(has)h(\014nished)e(t)m(yping)i(the)g(searc)m(h)g(string.) -39 b(As)26 b(eac)m(h)150 1000 y(c)m(haracter)37 b(of)e(the)h(searc)m(h) -g(string)f(is)h(t)m(yp)s(ed,)g(Readline)g(displa)m(ys)g(the)f(next)h -(en)m(try)g(from)e(the)i(history)150 1109 y(matc)m(hing)25 -b(the)f(string)g(t)m(yp)s(ed)g(so)g(far.)39 b(An)23 b(incremen)m(tal)j -(searc)m(h)e(requires)g(only)g(as)g(man)m(y)g(c)m(haracters)i(as)150 -1219 y(needed)i(to)i(\014nd)d(the)i(desired)f(history)h(en)m(try)-8 -b(.)41 b(T)-8 b(o)29 b(searc)m(h)h(bac)m(kw)m(ard)f(in)f(the)h(history) -g(for)f(a)i(particular)150 1329 y(string,)g(t)m(yp)s(e)f -Fj(C-r)p Ft(.)40 b(T)m(yping)29 b Fj(C-s)g Ft(searc)m(hes)h(forw)m(ard) -f(through)g(the)g(history)-8 b(.)41 b(The)29 b(c)m(haracters)i(presen)m -(t)150 1438 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g -Fs(isearch-terminators)33 b Ft(v)-5 b(ariable)39 b(are)f(used)f(to)i -(terminate)g(an)f(incremen)m(tal)150 1548 y(searc)m(h.)63 -b(If)38 b(that)g(v)-5 b(ariable)38 b(has)g(not)g(b)s(een)f(assigned)h -(a)g(v)-5 b(alue,)40 b(the)2578 1545 y Fg(h)p 2602 1492 -139 4 v 2602 1548 a Ff(ESC)p 2602 1563 V 2736 1545 a -Fg(i)2804 1548 y Ft(and)d Fj(C-J)f Ft(c)m(haracters)k(will)150 -1657 y(terminate)j(an)g(incremen)m(tal)g(searc)m(h.)78 -b Fj(C-g)41 b Ft(will)i(ab)s(ort)f(an)g(incremen)m(tal)i(searc)m(h)f -(and)f(restore)h(the)150 1767 y(original)30 b(line.)41 +b(Reference)g(Man)m(ual)275 299 y(Incremen)m(tal)26 b(searc)m(hes)h(b)s +(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e(t)m(yping)i(the)g +(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150 408 y(c)m(haracter)37 +b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s(ed,)g(Readline)g +(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i(history)150 +518 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g(far.)39 +b(An)23 b(incremen)m(tal)j(searc)m(h)e(requires)g(only)g(as)g(man)m(y)g +(c)m(haracters)i(as)150 628 y(needed)i(to)i(\014nd)d(the)i(desired)f +(history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29 b(searc)m(h)h(bac)m(kw)m +(ard)f(in)f(the)h(history)g(for)f(a)i(particular)150 +737 y(string,)g(t)m(yp)s(e)f Fi(C-r)p Ft(.)40 b(T)m(yping)29 +b Fi(C-s)g Ft(searc)m(hes)h(forw)m(ard)f(through)g(the)g(history)-8 +b(.)41 b(The)29 b(c)m(haracters)i(presen)m(t)150 847 +y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g Fs(isearch-terminators)33 +b Ft(v)-5 b(ariable)39 b(are)f(used)f(to)i(terminate)g(an)f(incremen)m +(tal)150 956 y(searc)m(h.)71 b(If)40 b(that)h(v)-5 b(ariable)41 +b(has)f(not)h(b)s(een)e(assigned)i(a)f(v)-5 b(alue,)44 +b(the)c Fs(ESC)g Ft(and)f Fi(C-J)h Ft(c)m(haracters)i(will)150 +1066 y(terminate)h(an)g(incremen)m(tal)g(searc)m(h.)78 +b Fi(C-g)41 b Ft(will)i(ab)s(ort)f(an)g(incremen)m(tal)i(searc)m(h)f +(and)f(restore)h(the)150 1176 y(original)30 b(line.)41 b(When)28 b(the)h(searc)m(h)h(is)f(terminated,)h(the)f(history)g(en)m -(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150 1877 -y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 2008 y(T)-8 +(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150 1285 +y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 1428 y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h -(history)g(list,)h(t)m(yp)s(e)g Fj(C-r)e Ft(or)h Fj(C-s)f -Ft(as)h(appropriate.)43 b(This)150 2117 y(will)26 b(searc)m(h)h(bac)m +(history)g(list,)h(t)m(yp)s(e)g Fi(C-r)e Ft(or)h Fi(C-s)f +Ft(as)h(appropriate.)43 b(This)150 1537 y(will)26 b(searc)m(h)h(bac)m (kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f(for)g(the)g(next)g (en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)150 -2227 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i +1647 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i (sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h -(the)150 2337 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38 -b(F)-8 b(or)22 b(instance,)h(a)2127 2334 y Fg(h)p 2151 -2281 151 4 v 2151 2337 a Ff(RET)p 2151 2352 V 2298 2334 -a Fg(i)2349 2337 y Ft(will)e(terminate)h(the)f(searc)m(h)h(and)e -(accept)150 2446 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e -(command)g(from)g(the)h(history)f(list.)41 b(A)29 b(mo)m(v)m(emen)m(t)j -(command)d(will)150 2556 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h -(the)e(last)h(line)g(found)e(the)i(curren)m(t)f(line,)h(and)f(b)s(egin) -g(editing.)275 2687 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h -(incremen)m(tal)g(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j -Fj(C-r)p Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 2797 -y(an)m(y)i(in)m(terv)m(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f -(searc)m(h)h(string,)h(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g -(is)150 2906 y(used.)275 3037 y(Non-incremen)m(tal)48 -b(searc)m(hes)g(read)e(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s -(efore)f(starting)h(to)h(searc)m(h)f(for)150 3147 y(matc)m(hing)d -(history)e(lines.)78 b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f -(t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 -3257 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150 -3504 y Fr(8.3)68 b(Readline)47 b(Init)e(File)275 3745 -y Ft(Although)g(the)g(Readline)h(library)e(comes)i(with)f(a)h(set)f(of) -g(Emacs-lik)m(e)i(k)m(eybindings)e(installed)150 3855 -y(b)m(y)d(default,)i(it)f(is)e(p)s(ossible)g(to)i(use)e(a)h(di\013eren) -m(t)g(set)g(of)g(k)m(eybindings.)74 b(An)m(y)42 b(user)f(can)h -(customize)150 3964 y(programs)32 b(that)h(use)f(Readline)h(b)m(y)g -(putting)f(commands)g(in)g(an)g Fq(inputrc)37 b Ft(\014le,)d(con)m(v)m -(en)m(tionally)h(in)d(his)150 4074 y(home)d(directory)-8 -b(.)41 b(The)28 b(name)g(of)h(this)g(\014le)f(is)h(tak)m(en)h(from)e -(the)h(v)-5 b(alue)29 b(of)g(the)f(shell)h(v)-5 b(ariable)30 -b Fs(INPUTRC)p Ft(.)150 4184 y(If)k(that)g(v)-5 b(ariable)35 -b(is)g(unset,)g(the)f(default)g(is)g(`)p Fs(~/.inputrc)p -Ft('.)50 b(If)34 b(that)h(\014le)f(do)s(es)g(not)g(exist)h(or)f(cannot) -150 4293 y(b)s(e)c(read,)g(the)h(ultimate)g(default)g(is)f(`)p -Fs(/etc/inputrc)p Ft('.)275 4425 y(When)f(a)h(program)f(whic)m(h)h -(uses)f(the)h(Readline)g(library)f(starts)h(up,)f(the)h(init)g(\014le)f -(is)h(read,)g(and)f(the)150 4534 y(k)m(ey)i(bindings)e(are)i(set.)275 -4665 y(In)26 b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g +(the)150 1757 y(searc)m(h)26 b(and)f(execute)i(that)f(command.)39 +b(F)-8 b(or)26 b(instance,)h(a)f Fs(RET)f Ft(will)g(terminate)i(the)f +(searc)m(h)g(and)e(accept)150 1866 y(the)30 b(line,)g(thereb)m(y)f +(executing)i(the)e(command)g(from)g(the)h(history)f(list.)41 +b(A)29 b(mo)m(v)m(emen)m(t)j(command)d(will)150 1976 +y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h(the)e(last)h(line)g(found)e +(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)g(editing.)275 +2119 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h(incremen)m(tal)g +(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j Fi(C-r)p +Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 2228 y(an)m(y)i(in)m(terv)m +(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f(searc)m(h)h(string,)h +(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g(is)150 +2338 y(used.)275 2480 y(Non-incremen)m(tal)48 b(searc)m(hes)g(read)e +(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s(efore)f(starting)h(to)h +(searc)m(h)f(for)150 2590 y(matc)m(hing)d(history)e(lines.)78 +b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f(t)m(yp)s(ed)g(b)m(y)g +(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 2700 y(con)m(ten)m(ts)32 +b(of)f(the)f(curren)m(t)g(line.)150 2944 y Fr(8.3)68 +b(Readline)47 b(Init)e(File)150 3104 y Ft(Although)f(the)g(Readline)g +(library)f(comes)i(with)e(a)h(set)h(of)f(Emacs-lik)m(e)h(k)m +(eybindings)f(installed)g(b)m(y)150 3213 y(default,)26 +b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)m(t)f(set)g(of)g(k) +m(eybindings.)38 b(An)m(y)25 b(user)f(can)h(customize)h(programs)150 +3323 y(that)45 b(use)f(Readline)h(b)m(y)f(putting)g(commands)g(in)g(an) +g Fq(inputrc)49 b Ft(\014le,)g(con)m(v)m(en)m(tionally)e(in)d(his)g +(home)150 3433 y(directory)-8 b(.)59 b(The)35 b(name)i(of)f(this)g +(\014le)g(is)g(tak)m(en)h(from)f(the)g(v)-5 b(alue)37 +b(of)f(the)g(shell)h(v)-5 b(ariable)36 b Fs(INPUTRC)p +Ft(.)56 b(If)150 3542 y(that)33 b(v)-5 b(ariable)33 b(is)g(unset,)f +(the)h(default)f(is)h(`)p Fs(~/.inputrc)p Ft('.)44 b(If)32 +b(that)h(\014le)f(do)s(es)g(not)h(exist)g(or)g(cannot)g(b)s(e)150 +3652 y(read,)e(the)f(ultimate)i(default)e(is)h(`)p Fs(/etc/inputrc)p +Ft('.)275 3794 y(When)e(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline) +g(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h(read,)g(and)f +(the)150 3904 y(k)m(ey)i(bindings)e(are)i(set.)275 4047 +y(In)26 b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g (this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m -(hanges)150 4775 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g -(it.)150 4990 y Fk(8.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275 -5230 y Ft(There)33 b(are)h(only)g(a)g(few)f(basic)h(constructs)g(allo)m -(w)m(ed)h(in)f(the)g(Readline)g(init)g(\014le.)51 b(Blank)34 -b(lines)g(are)150 5340 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h +(hanges)150 4156 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g +(it.)150 4364 y Fj(8.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150 +4511 y Ft(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w) +m(ed)h(in)d(the)h(Readline)h(init)f(\014le.)73 b(Blank)41 +b(lines)h(are)150 4620 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h (a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41 -b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)p +b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)150 +4730 y(conditional)e(constructs)f(\(see)g(Section)h(8.3.2)g +([Conditional)g(Init)e(Constructs],)j(page)e(102\).)64 +b(Other)150 4839 y(lines)31 b(denote)g(v)-5 b(ariable)31 +b(settings)g(and)f(k)m(ey)h(bindings.)150 5011 y(V)-8 +b(ariable)32 b(Settings)630 5121 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e +(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g(b)m(y)f(altering)h +(the)g(v)-5 b(alues)41 b(of)630 5230 y(v)-5 b(ariables)34 +b(in)f(Readline)i(using)e(the)g Fs(set)g Ft(command)g(within)g(the)h +(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 5340 y(is)d(simple:)p eop end %%Page: 97 103 TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2107 b(97)150 299 y(conditional)39 -b(constructs)f(\(see)g(Section)h(8.3.2)g([Conditional)g(Init)e -(Constructs],)j(page)e(102\).)64 b(Other)150 408 y(lines)31 -b(denote)g(v)-5 b(ariable)31 b(settings)g(and)f(k)m(ey)h(bindings.)150 -571 y(V)-8 b(ariable)32 b(Settings)630 681 y(Y)-8 b(ou)41 -b(can)g(mo)s(dify)e(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g -(b)m(y)f(altering)h(the)g(v)-5 b(alues)41 b(of)630 790 -y(v)-5 b(ariables)34 b(in)f(Readline)i(using)e(the)g -Fs(set)g Ft(command)g(within)g(the)h(init)g(\014le.)50 -b(The)33 b(syn)m(tax)630 900 y(is)d(simple:)870 1036 -y Fs(set)47 b Fj(variable)56 b(value)630 1171 y Ft(Here,)29 -b(for)e(example,)h(is)g(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default) -h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630 1281 y(use)k -Fs(vi)g Ft(line)h(editing)g(commands:)870 1417 y Fs(set)47 -b(editing-mode)d(vi)630 1552 y Ft(V)-8 b(ariable)36 b(names)f(and)g(v) --5 b(alues,)36 b(where)f(appropriate,)h(are)g(recognized)g(without)f -(regard)630 1662 y(to)c(case.)42 b(Unrecognized)31 b(v)-5 -b(ariable)31 b(names)g(are)f(ignored.)630 1797 y(Bo)s(olean)c(v)-5 +b(Command)29 b(Line)i(Editing)2107 b(97)870 299 y Fs(set)47 +b Fi(variable)56 b(value)630 445 y Ft(Here,)29 b(for)e(example,)h(is)g +(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default)h(Emacs-lik)m(e)h(k)m +(ey)f(binding)e(to)630 555 y(use)k Fs(vi)g Ft(line)h(editing)g +(commands:)870 701 y Fs(set)47 b(editing-mode)d(vi)630 +847 y Ft(V)-8 b(ariable)36 b(names)f(and)g(v)-5 b(alues,)36 +b(where)f(appropriate,)h(are)g(recognized)g(without)f(regard)630 +956 y(to)c(case.)42 b(Unrecognized)31 b(v)-5 b(ariable)31 +b(names)g(are)f(ignored.)630 1103 y(Bo)s(olean)c(v)-5 b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g (o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5 -b(alue)26 b(is)630 1907 y(n)m(ull)e(or)g(empt)m(y)-8 +b(alue)26 b(is)630 1212 y(n)m(ull)e(or)g(empt)m(y)-8 b(,)27 b Fq(on)d Ft(\(case-insensitiv)m(e\),)29 b(or)24 b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v) --5 b(ariable)630 2017 y(b)s(eing)30 b(set)h(to)g(o\013.)630 -2152 y(The)37 b Fs(bind)30 b(-V)37 b Ft(command)g(lists)i(the)f(curren) +-5 b(ariable)630 1322 y(b)s(eing)30 b(set)h(to)g(o\013.)630 +1468 y(The)37 b Fs(bind)30 b(-V)37 b Ft(command)g(lists)i(the)f(curren) m(t)f(Readline)i(v)-5 b(ariable)38 b(names)g(and)f(v)-5 -b(alues.)630 2262 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page) -g(41.)630 2397 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g +b(alues.)630 1577 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page) +g(41.)630 1724 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g (is)g(c)m(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 -b(ariables.)630 2559 y Fs(bell-style)1110 2669 y Ft(Con)m(trols)44 +b(ariables.)630 1906 y Fs(bell-style)1110 2016 y Ft(Con)m(trols)44 b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h -(termi-)1110 2778 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p +(termi-)1110 2125 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p Fs(none)p Ft(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61 -b(If)36 b(set)i(to)1110 2888 y(`)p Fs(visible)p Ft(',)32 +b(If)36 b(set)i(to)1110 2235 y(`)p Fs(visible)p Ft(',)32 b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g(one)g(is)g(a)m(v)-5 -b(ailable.)51 b(If)33 b(set)g(to)1110 2997 y(`)p Fs(audible)p +b(ailable.)51 b(If)33 b(set)g(to)1110 2345 y(`)p Fs(audible)p Ft(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g -(terminal's)1110 3107 y(b)s(ell.)630 3269 y Fs(bind-tty-special-chars) -1110 3378 y Ft(If)45 b(set)h(to)f(`)p Fs(on)p Ft(',)50 +(terminal's)1110 2454 y(b)s(ell.)630 2637 y Fs(bind-tty-special-chars) +1110 2746 y Ft(If)45 b(set)h(to)f(`)p Fs(on)p Ft(',)50 b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m(trol)g(c)m -(haracters)1110 3488 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m +(haracters)1110 2856 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m (ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110 -3597 y(equiv)-5 b(alen)m(ts.)630 3759 y Fs(comment-begin)1110 -3869 y Ft(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of) -g(the)h(line)f(when)f(the)i Fs(insert-)1110 3978 y(comment)e +2966 y(equiv)-5 b(alen)m(ts.)630 3148 y Fs(comment-begin)1110 +3258 y Ft(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of) +g(the)h(line)f(when)f(the)i Fs(insert-)1110 3367 y(comment)e Ft(command)j(is)f(executed.)42 b(The)29 b(default)i(v)-5 -b(alue)31 b(is)f Fs("#")p Ft(.)630 4140 y Fs(completion-ignore-case) -1110 4250 y Ft(If)d(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(p)s +b(alue)31 b(is)f Fs("#")p Ft(.)630 3550 y Fs(completion-ignore-case) +1110 3660 y Ft(If)d(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(p)s (erforms)e(\014lename)h(matc)m(hing)i(and)e(completion)1110 -4359 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30 +3769 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Fs(off)p Ft('.)630 -4521 y Fs(completion-prefix-displa)o(y-le)o(ngth)1110 -4630 y Ft(The)g(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h -(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 4740 +3952 y Fs(completion-prefix-displa)o(y-le)o(ngth)1110 +4061 y Ft(The)g(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h +(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 4171 y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s -(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 4850 +(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 4281 y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e -(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 4959 +(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 4390 y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible) -f(completions.)630 5121 y Fs(completion-query-items)1110 -5230 y Ft(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h -(that)g(determines)f(when)f(the)i(user)1110 5340 y(is)i(ask)m(ed)h +f(completions.)630 4573 y Fs(completion-query-items)1110 +4682 y Ft(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h +(that)g(determines)f(when)f(the)i(user)1110 4792 y(is)i(ask)m(ed)h (whether)f(the)h(list)g(of)f(p)s(ossibilities)h(should)e(b)s(e)h -(displa)m(y)m(ed.)41 b(If)29 b(the)p eop end -%%Page: 98 104 -TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31 -b(Reference)g(Man)m(ual)1110 299 y(n)m(um)m(b)s(er)26 -b(of)h(p)s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5 -b(alue,)28 b(Readline)1110 408 y(will)f(ask)g(the)f(user)g(whether)g +(displa)m(y)m(ed.)41 b(If)29 b(the)1110 4902 y(n)m(um)m(b)s(er)d(of)h +(p)s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5 +b(alue,)28 b(Readline)1110 5011 y(will)f(ask)g(the)f(user)g(whether)g (or)g(not)h(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 -518 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5 +5121 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5 b(ariable)25 b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5 -b(alue)1110 628 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40 +b(alue)1110 5230 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40 b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110 -737 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g -Fs(100)p Ft(.)630 883 y Fs(convert-meta)1110 993 y Ft(If)22 -b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m(v)m(ert)i(c)m -(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110 -1103 y(to)g(an)f Fl(asci)r(i)g Ft(k)m(ey)h(sequence)g(b)m(y)f -(stripping)f(the)i(eigh)m(th)g(bit)f(and)g(pre\014xing)f(an)1110 -1209 y Fg(h)p 1134 1156 139 4 v 1134 1212 a Ff(ESC)p -1134 1227 V 1268 1209 a Fg(i)1332 1212 y Ft(c)m(haracter,)36 -b(con)m(v)m(erting)g(them)e(to)g(a)h(meta-pre\014xed)f(k)m(ey)g -(sequence.)1110 1322 y(The)c(default)g(v)-5 b(alue)31 -b(is)g(`)p Fs(on)p Ft('.)630 1468 y Fs(disable-completion)1110 -1577 y Ft(If)36 b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g -(inhibit)f(w)m(ord)h(completion.)60 b(Completion)1110 -1687 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g -(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110 -1797 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p -Fs(off)p Ft('.)630 1943 y Fs(editing-mode)1110 2052 y +5340 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g +Fs(100)p Ft(.)p eop end +%%Page: 98 104 +TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y Fs(convert-meta)1110 +408 y Ft(If)22 b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m +(v)m(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110 +518 y(to)33 b(an)e Fl(asci)r(i)h Ft(k)m(ey)h(sequence)f(b)m(y)g +(stripping)f(the)h(eigh)m(th)h(bit)f(and)f(pre\014xing)1110 +628 y(an)24 b Fs(ESC)g Ft(c)m(haracter,)j(con)m(v)m(erting)f(them)f(to) +g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 737 y(The)30 +b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(on)p Ft('.)630 +896 y Fs(disable-completion)1110 1005 y Ft(If)36 b(set)h(to)h(`)p +Fs(On)p Ft(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h(completion.)60 +b(Completion)1110 1115 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h +(in)m(to)h(the)g(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110 +1224 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p +Fs(off)p Ft('.)630 1383 y Fs(editing-mode)1110 1492 y Ft(The)d Fs(editing-mode)e Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m -(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 2162 y(ings)25 +(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1602 y(ings)25 b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h -(Emacs)g(editing)h(mo)s(de,)1110 2271 y(where)j(the)g(k)m(eystrok)m(es) +(Emacs)g(editing)h(mo)s(de,)1110 1711 y(where)j(the)g(k)m(eystrok)m(es) i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5 -b(ariable)30 b(can)1110 2381 y(b)s(e)g(set)h(to)g(either)g(`)p -Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 2527 y Fs(enable-keypad) -1110 2637 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f -(will)g(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110 -2746 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f -(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 2856 y(The)j(default)g -(is)h(`)p Fs(off)p Ft('.)630 3002 y Fs(expand-tilde)1110 -3112 y Ft(If)c(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f -(p)s(erformed)f(when)h(Readline)h(attempts)1110 3221 -y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p -Fs(off)p Ft('.)630 3367 y Fs(history-preserve-point)1110 -3477 y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s -(de)g(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110 -3587 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s -(cation)i(on)e(eac)m(h)h(history)g(line)1110 3696 y(retriev)m(ed)h -(with)f Fs(previous-history)c Ft(or)37 b Fs(next-history)p -Ft(.)55 b(The)36 b(default)1110 3806 y(is)30 b(`)p Fs(off)p -Ft('.)630 3952 y Fs(history-size)1110 4061 y Ft(Set)39 -b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g(en)m(tries)h(sa)m -(v)m(ed)g(in)f(the)g(history)1110 4171 y(list.)53 b(If)34 -b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g(en)m(tries)h(in)f -(the)h(history)f(list)h(is)g(not)1110 4281 y(limited.)630 -4427 y Fs(horizontal-scroll-mode)1110 4536 y Ft(This)g(v)-5 -b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p -Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36 -b(it)g(to)h(`)p Fs(on)p Ft(')1110 4646 y(means)26 b(that)h(the)f(text)h +b(ariable)30 b(can)1110 1821 y(b)s(e)g(set)h(to)g(either)g(`)p +Fs(emacs)p Ft(')e(or)h(`)p Fs(vi)p Ft('.)630 1979 y Fs +(echo-control-characters)1110 2089 y Ft(When)g(set)h(to)g(`)p +Fs(on)p Ft(',)f(on)g(op)s(erating)h(systems)f(that)h(indicate)g(they)g +(supp)s(ort)1110 2198 y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m +(haracter)h(corresp)s(onding)d(to)j(a)f(signal)g(generated)1110 +2308 y(from)e(the)g(k)m(eyb)s(oard.)41 b(The)30 b(default)g(is)h(`)p +Fs(on)p Ft('.)630 2466 y Fs(enable-keypad)1110 2576 y +Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g(try)f(to) +h(enable)g(the)f(application)i(k)m(eypad)1110 2685 y(when)h(it)h(is)f +(called.)41 b(Some)27 b(systems)f(need)h(this)f(to)h(enable)g(the)g +(arro)m(w)g(k)m(eys.)1110 2795 y(The)j(default)g(is)h(`)p +Fs(off)p Ft('.)630 2953 y Fs(enable-meta-key)1110 3063 +y Ft(When)40 b(set)g(to)g(`)p Fs(on)p Ft(',)j(Readline)d(will)g(try)g +(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110 3173 +y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h(is)g +(called.)76 b(On)41 b(man)m(y)1110 3282 y(terminals,)c(the)e(meta)h(k)m +(ey)g(is)f(used)g(to)h(send)e(eigh)m(t-bit)j(c)m(haracters.)56 +b(The)1110 3392 y(default)31 b(is)f(`)p Fs(on)p Ft('.)630 +3550 y Fs(expand-tilde)1110 3660 y Ft(If)d(set)h(to)h(`)p +Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h +(Readline)h(attempts)1110 3769 y(w)m(ord)i(completion.)42 +b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 3927 +y Fs(history-preserve-point)1110 4037 y Ft(If)41 b(set)h(to)h(`)p +Fs(on)p Ft(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f +(p)s(oin)m(t)f(\(the)1110 4147 y(curren)m(t)35 b(cursor)g(p)s +(osition\))g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g +(line)1110 4256 y(retriev)m(ed)h(with)f Fs(previous-history)c +Ft(or)37 b Fs(next-history)p Ft(.)55 b(The)36 b(default)1110 +4366 y(is)30 b(`)p Fs(off)p Ft('.)630 4524 y Fs(history-size)1110 +4634 y Ft(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g +(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 4743 +y(list.)53 b(If)34 b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g +(en)m(tries)h(in)f(the)h(history)f(list)h(is)g(not)1110 +4853 y(limited.)630 5011 y Fs(horizontal-scroll-mode)1110 +5121 y Ft(This)g(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f +(`)p Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36 +b(it)g(to)h(`)p Fs(on)p Ft(')1110 5230 y(means)26 b(that)h(the)f(text)h (of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m -(tally)1110 4755 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i -(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 4865 -y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g -(line.)39 b(By)27 b(default,)g(this)1110 4975 y(v)-5 -b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630 -5121 y Fs(input-meta)1110 5230 y Ft(If)f(set)g(to)h(`)p -Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it) -i(will)f(not)h(clear)1110 5340 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h -(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)p -eop end +(tally)1110 5340 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i +(are)g(longer)h(than)e(the)h(width)f(of)h(the)p eop end %%Page: 99 105 TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2107 b(99)1110 299 y(terminal)40 -b(claims)h(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5 -b(alue)40 b(is)g(`)p Fs(off)p Ft('.)69 b(The)1110 408 +b(Command)29 b(Line)i(Editing)2107 b(99)1110 299 y(screen,)27 +b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g(line.)39 +b(By)27 b(default,)g(this)1110 408 y(v)-5 b(ariable)31 +b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630 567 y Fs(input-meta)1110 +676 y Ft(If)f(set)g(to)h(`)p Fs(on)p Ft(',)g(Readline)g(will)f(enable)h +(eigh)m(t-bit)h(input)d(\(it)i(will)f(not)h(clear)1110 +786 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h(c)m(haracters)h(it)f +(reads\),)j(regardless)c(of)h(what)g(the)1110 896 y(terminal)g(claims)h +(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5 +b(alue)40 b(is)g(`)p Fs(off)p Ft('.)69 b(The)1110 1005 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5 -b(ariable.)630 579 y Fs(isearch-terminators)1110 689 +b(ariable.)630 1163 y Fs(isearch-terminators)1110 1273 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j -(an)f(incremen)m(tal)1110 798 y(searc)m(h)25 b(without)g(subsequen)m +(an)f(incremen)m(tal)1110 1383 y(searc)m(h)25 b(without)g(subsequen)m (tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110 -908 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i(page)c(96\).)73 -b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110 1017 -y(b)s(een)31 b(giv)m(en)h(a)g(v)-5 b(alue,)32 b(the)g(c)m(haracters) -2494 1014 y Fg(h)p 2518 961 139 4 v 2518 1017 a Ff(ESC)p -2518 1033 V 2652 1014 a Fg(i)2713 1017 y Ft(and)f Fj(C-J)g -Ft(will)h(terminate)g(an)1110 1127 y(incremen)m(tal)g(searc)m(h.)630 -1297 y Fs(keymap)192 b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g -(curren)m(t)f(k)m(eymap)h(for)g(k)m(ey)g(binding)f(com-)1110 -1407 y(mands.)81 b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h -Fs(emacs)p Ft(,)i Fs(emacs-standard)p Ft(,)1110 1517 -y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p -Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 -1626 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 -b(alen)m(t)41 b(to)e Fs(vi-command)p Ft(;)i Fs(emacs)c -Ft(is)i(equiv)-5 b(alen)m(t)1110 1736 y(to)33 b Fs(emacs-standard)p -Ft(.)41 b(The)31 b(default)h(v)-5 b(alue)32 b(is)g Fs(emacs)p -Ft(.)44 b(The)31 b(v)-5 b(alue)33 b(of)f(the)1110 1845 -y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31 b(also)h(a\013ects)f(the)g -(default)f(k)m(eymap.)630 2016 y Fs(mark-directories)1110 -2125 y Ft(If)38 b(set)g(to)h(`)p Fs(on)p Ft(',)i(completed)e(directory) -f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110 -2235 y(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630 -2405 y Fs(mark-modified-lines)1110 2515 y Ft(This)k(v)-5 -b(ariable,)38 b(when)d(set)h(to)h(`)p Fs(on)p Ft(',)g(causes)g -(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 2625 y(terisk)f(\(`)p -Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f -(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 2734 y(This)d(v)-5 -b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g(default.)630 -2905 y Fs(mark-symlinked-directori)o(es)1110 3014 y Ft(If)44 -b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f(whic)m(h)f(are)h -(sym)m(b)s(olic)g(links)g(to)g(di-)1110 3124 y(rectories)j(ha)m(v)m(e)f -(a)g(slash)f(app)s(ended)e(\(sub)5 b(ject)47 b(to)g(the)f(v)-5 -b(alue)47 b(of)f Fs(mark-)1110 3233 y(directories)p Ft(\).)38 -b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 3404 -y Fs(match-hidden-files)1110 3513 y Ft(This)21 b(v)-5 -b(ariable,)25 b(when)d(set)g(to)h(`)p Fs(on)p Ft(',)h(causes)f -(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 3623 -y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p Ft(')g(\(hidden)f -(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 3733 -y(completion,)j(unless)41 b(the)g(leading)h(`)p Fs(.)p -Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110 -3842 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30 +1492 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i(page)c(95\).)73 +b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110 1602 +y(b)s(een)35 b(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h +Fs(ESC)d Ft(and)h Fi(C-J)g Ft(will)h(terminate)g(an)1110 +1711 y(incremen)m(tal)c(searc)m(h.)630 1870 y Fs(keymap)192 +b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h +(for)g(k)m(ey)g(binding)f(com-)1110 1979 y(mands.)81 +b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h Fs(emacs)p +Ft(,)i Fs(emacs-standard)p Ft(,)1110 2089 y Fs(emacs-meta)p +Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p +Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 2198 y Fs(vi-insert)p +Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e +Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110 +2308 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5 +b(alue)32 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)33 +b(of)f(the)1110 2418 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31 +b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 2576 +y Fs(mark-directories)1110 2685 y Ft(If)38 b(set)g(to)h(`)p +Fs(on)p Ft(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash) +g(app)s(ended.)1110 2795 y(The)30 b(default)g(is)h(`)p +Fs(on)p Ft('.)630 2953 y Fs(mark-modified-lines)1110 +3063 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p +Fs(on)p Ft(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 +3173 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g +(lines)g(whic)m(h)f(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 +3282 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g +(default.)630 3440 y Fs(mark-symlinked-directori)o(es)1110 +3550 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f +(whic)m(h)f(are)h(sym)m(b)s(olic)g(links)g(to)g(di-)1110 +3660 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5 +b(ject)47 b(to)g(the)f(v)-5 b(alue)47 b(of)f Fs(mark-)1110 +3769 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p +Fs(off)p Ft('.)630 3927 y Fs(match-hidden-files)1110 +4037 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p +Fs(on)p Ft(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose) +1110 4147 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p +Ft(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 +4256 y(completion,)j(unless)41 b(the)g(leading)h(`)p +Fs(.)p Ft(')g(is)g(supplied)e(b)m(y)h(the)h(user)f(in)g(the)1110 +4366 y(\014lename)31 b(to)g(b)s(e)e(completed.)42 b(This)30 b(v)-5 b(ariable)31 b(is)f(`)p Fs(on)p Ft(')h(b)m(y)f(default.)630 -4013 y Fs(output-meta)1110 4122 y Ft(If)35 b(set)h(to)g(`)p +4524 y Fs(output-meta)1110 4634 y Ft(If)35 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m(haracters)i(with)e -(the)h(eigh)m(th)g(bit)1110 4232 y(set)h(directly)g(rather)f(than)g(as) +(the)h(eigh)m(th)g(bit)1110 4743 y(set)h(directly)g(rather)f(than)g(as) h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59 b(The)1110 -4341 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 4512 -y Fs(page-completions)1110 4622 y Ft(If)j(set)i(to)f(`)p +4853 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 5011 +y Fs(page-completions)1110 5121 y Ft(If)j(set)i(to)f(`)p Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)m(ternal)h Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110 -4731 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.) +5230 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.) 47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110 -4841 y(b)m(y)e(default.)630 5011 y Fs(print-completions-horizo)o(ntal)o -(ly)1110 5121 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g -(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110 -5230 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c -(than)g(do)m(wn)g(the)h(screen.)1110 5340 y(The)30 b(default)g(is)h(`)p -Fs(off)p Ft('.)p eop end +5340 y(b)m(y)e(default.)p eop end %%Page: 100 106 TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y Fs(revert-all-at-newline)1110 -408 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f +b(Reference)g(Man)m(ual)630 299 y Fs(print-completions-horizo)o(ntal)o +(ly)1110 408 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g +(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110 +518 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c +(than)g(do)m(wn)g(the)h(screen.)1110 628 y(The)30 b(default)g(is)h(`)p +Fs(off)p Ft('.)630 788 y Fs(revert-all-at-newline)1110 +897 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f (all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110 -518 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41 -b(By)29 b(default,)g(history)g(lines)1110 628 y(ma)m(y)42 +1007 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41 +b(By)29 b(default,)g(history)g(lines)1110 1117 y(ma)m(y)42 b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h -(across)g(calls)h(to)1110 737 y Fs(readline)p Ft(.)38 -b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 905 -y Fs(show-all-if-ambiguous)1110 1015 y Ft(This)f(alters)i(the)f +(across)g(calls)h(to)1110 1226 y Fs(readline)p Ft(.)38 +b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 1386 +y Fs(show-all-if-ambiguous)1110 1496 y Ft(This)f(alters)i(the)f (default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40 -b(If)29 b(set)1110 1124 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h) +b(If)29 b(set)1110 1606 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h) g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause) -1110 1234 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i -(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 1344 y(The)30 +1110 1715 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i +(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 1825 y(The)30 b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630 -1512 y Fs(show-all-if-unmodified)1110 1621 y Ft(This)38 +1985 y Fs(show-all-if-unmodified)1110 2094 y Ft(This)38 b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h -(functions)e(in)h(a)1110 1731 y(fashion)25 b(similar)h(to)g -Fq(sho)m(w-all-if-am)m(biguous)p Ft(.)41 b(If)25 b(set)h(to)h(`)p -Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)1110 1840 y(ha)m(v)m(e)32 +(functions)e(in)h(a)1110 2204 y(fashion)25 b(similar)g(to)h +Fq(sho)m(w-all-if-am)m(biguous)t Ft(.)41 b(If)24 b(set)i(to)f(`)p +Fs(on)p Ft(',)i(w)m(ords)d(whic)m(h)1110 2314 y(ha)m(v)m(e)32 b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s -(ossible)f(par-)1110 1950 y(tial)43 b(completion)h(\(the)f(p)s(ossible) -f(completions)h(don't)f(share)g(a)h(common)1110 2060 +(ossible)f(par-)1110 2423 y(tial)43 b(completion)h(\(the)f(p)s(ossible) +f(completions)h(don't)f(share)g(a)h(common)1110 2533 y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g -(immediately)i(instead)e(of)h(ring-)1110 2169 y(ing)g(the)f(b)s(ell.)41 +(immediately)i(instead)e(of)h(ring-)1110 2642 y(ing)g(the)f(b)s(ell.)41 b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p -Ft('.)630 2337 y Fs(visible-stats)1110 2447 y Ft(If)h(set)i(to)f(`)p +Ft('.)630 2803 y Fs(skip-completed-text)1110 2912 y Ft(If)i(set)i(to)f +(`)p Fs(on)p Ft(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s +(eha)m(vior)f(when)f(in-)1110 3022 y(serting)d(a)h(single)g(matc)m(h)f +(in)m(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s +(erform-)1110 3131 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f +(w)m(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110 +3241 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h +(that)f(matc)m(h)g(c)m(haracters)1110 3351 y(after)c(p)s(oin)m(t)g(in)g +(the)g(w)m(ord)f(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g +(w)m(ord)1110 3460 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g +(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110 +3570 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g +(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 3679 y(`)p Fs(Makefile)p +Ft(')c(will)i(result)f(in)g(`)p Fs(Makefile)p Ft(')f(rather)h(than)h(`) +p Fs(Makefilefile)p Ft(',)1110 3789 y(assuming)d(there)g(is)h(a)f +(single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5 +b(alue)1110 3898 y(is)30 b(`)p Fs(off)p Ft('.)630 4059 +y Fs(visible-stats)1110 4168 y Ft(If)h(set)i(to)f(`)p Fs(on)p Ft(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s -(e)g(is)g(app)s(ended)e(to)j(the)1110 2556 y(\014lename)e(when)e +(e)g(is)g(app)s(ended)e(to)j(the)1110 4278 y(\014lename)e(when)e (listing)i(p)s(ossible)f(completions.)42 b(The)30 b(default)g(is)h(`)p -Fs(off)p Ft('.)150 2724 y(Key)f(Bindings)630 2834 y(The)41 +Fs(off)p Ft('.)150 4438 y(Key)f(Bindings)630 4548 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g (init)g(\014le)g(is)g(simple.)75 b(First)43 b(y)m(ou)630 -2944 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i +4657 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i (y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630 -3053 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j +4767 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j (the)e(default)g(k)m(eybinding,)h(if)f(an)m(y)-8 b(,)630 -3163 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h -(do)s(es.)630 3302 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g +4876 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h +(do)s(es.)630 5011 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g (the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g(the)g(init)630 -3411 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h +5121 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h (bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)630 -3521 y(the)f(name)h(of)f(the)g(command.)46 b(There)32 +5230 y(the)f(name)h(of)f(the)g(command.)46 b(There)32 b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g -(and)630 3630 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m +(and)630 5340 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m (terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72 -b(The)40 b(name)h(of)630 3740 y(the)35 b(k)m(ey)g(can)g(b)s(e)f -(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h -(what)h(y)m(ou)g(\014nd)e(most)630 3850 y(comfortable.)630 -3988 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h -(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630 -4098 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g -(\(a)h Fq(macro)5 b Ft(\).)630 4237 y(The)42 b Fs(bind)30 -b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g(names)g(and) -f(bindings)g(in)h(a)630 4346 y(format)37 b(that)h(can)f(put)f(directly) -i(in)m(to)g(an)f(initialization)j(\014le.)60 b(See)38 -b(Section)f(4.2)i([Bash)630 4456 y(Builtins],)31 b(page)g(41.)630 -4624 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35 -b Ft(or)c Fq(macro)1110 4734 y(k)m(eyname)k Ft(is)29 -b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g(English.)39 -b(F)-8 b(or)30 b(example:)1350 4872 y Fs(Control-u:)45 -b(universal-argument)1350 4982 y(Meta-Rubout:)f(backward-kill-word)1350 -5092 y(Control-o:)h(">)i(output")1110 5230 y Ft(In)38 -b(the)h(ab)s(o)m(v)m(e)h(example,)h Fj(C-u)d Ft(is)h(b)s(ound)d(to)k -(the)e(function)h Fs(universal-)1110 5340 y(argument)p -Ft(,)f Fj(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g(function)g -Fs(backward-kill-word)p Ft(,)p eop end +b(The)40 b(name)h(of)p eop end %%Page: 101 107 TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(101)1110 299 y(and)38 -b Fj(C-o)g Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f -(the)i(righ)m(t)f(hand)1110 408 y(side)30 b(\(that)i(is,)e(to)h(insert) -g(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110 -543 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i -(names)e(are)g(recognized)h(while)f(pro-)1110 653 y(cessing)24 -b(this)g(k)m(ey)g(binding)f(syn)m(tax:)37 b Fq(DEL)p -Ft(,)24 b Fq(ESC)p Ft(,)f Fq(ESCAPE)p Ft(,)g Fq(LFD)p -Ft(,)h Fq(NEW-)1110 763 y(LINE)p Ft(,)30 b Fq(RET)p Ft(,)g -Fq(RETURN)p Ft(,)h Fq(R)m(UBOUT)p Ft(,)g Fq(SP)-8 b(A)m(CE)p -Ft(,)30 b Fq(SPC)p Ft(,)g(and)f Fq(T)-8 b(AB)p Ft(.)630 -923 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41 b Fq(function-name)36 -b Ft(or)30 b Fq(macro)1110 1032 y(k)m(eyseq)k Ft(di\013ers)d(from)f +b(Command)29 b(Line)i(Editing)2062 b(101)630 299 y(the)35 +b(k)m(ey)g(can)g(b)s(e)f(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,) +h(dep)s(ending)d(on)h(what)h(y)m(ou)g(\014nd)e(most)630 +408 y(comfortable.)630 538 y(In)i(addition)h(to)h(command)f(names,)i +(readline)e(allo)m(ws)h(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f +(string)630 648 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f +(pressed)g(\(a)h Fq(macro)5 b Ft(\).)630 778 y(The)42 +b Fs(bind)30 b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g +(names)g(and)f(bindings)g(in)h(a)630 887 y(format)37 +b(that)h(can)f(put)f(directly)i(in)m(to)g(an)f(initialization)j +(\014le.)60 b(See)38 b(Section)f(4.2)i([Bash)630 997 +y(Builtins],)31 b(page)g(41.)630 1147 y Fq(k)m(eyname)5 +b Ft(:)42 b Fq(function-name)35 b Ft(or)c Fq(macro)1110 +1257 y(k)m(eyname)k Ft(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s +(elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350 +1387 y Fs(Control-u:)45 b(universal-argument)1350 1496 +y(Meta-Rubout:)f(backward-kill-word)1350 1606 y(Control-o:)h(">)i +(output")1110 1736 y Ft(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)h +Fi(C-u)d Ft(is)h(b)s(ound)d(to)k(the)e(function)h Fs(universal-)1110 +1845 y(argument)p Ft(,)f Fi(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g +(function)g Fs(backward-kill-word)p Ft(,)1110 1955 y(and)g +Fi(C-o)g Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f +(the)i(righ)m(t)f(hand)1110 2064 y(side)30 b(\(that)i(is,)e(to)h +(insert)g(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g +(line\).)1110 2194 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m +(haracter)i(names)e(are)g(recognized)h(while)f(pro-)1110 +2304 y(cessing)22 b(this)g(k)m(ey)g(binding)e(syn)m(tax:)37 +b Fq(DEL)p Ft(,)22 b Fq(ESC)8 b Ft(,)20 b Fq(ESCAPE)5 +b Ft(,)21 b Fq(LFD)5 b Ft(,)22 b Fq(NEW-)1110 2414 y(LINE)5 +b Ft(,)31 b Fq(RET)7 b Ft(,)29 b Fq(RETURN)10 b Ft(,)30 +b Fq(R)m(UBOUT)7 b Ft(,)31 b Fq(SP)-8 b(A)m(CE)5 b Ft(,)31 +b Fq(SPC)8 b Ft(,)29 b(and)h Fq(T)-8 b(AB)5 b Ft(.)630 +2564 y Fs(")p Fq(k)m(eyseq)r Fs(")p Ft(:)41 b Fq(function-name)36 +b Ft(or)30 b Fq(macro)1110 2673 y(k)m(eyseq)k Ft(di\013ers)d(from)f Fq(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f -(denoting)g(an)g(en-)1110 1142 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s +(denoting)g(an)g(en-)1110 2783 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s (e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in) -1110 1251 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h +1110 2892 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h Ft(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as) -1110 1361 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s -(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 1471 y(recognized.)1350 -1606 y Fs("\\C-u":)46 b(universal-argument)1350 1715 -y("\\C-x\\C-r":)f(re-read-init-file)1350 1825 y("\\e[11~":)g("Function) -h(Key)g(1")1110 1960 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74 -b Fj(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110 -2069 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g -(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 2179 -y(C-r)p Ft(')41 b(is)g(b)s(ound)e(to)j(the)f(function)g -Fs(re-read-init-file)p Ft(,)e(and)i(`)3462 2176 y Fg(h)p -3486 2123 139 4 v 3486 2179 a Ff(ESC)p 3486 2194 V 3620 -2176 a Fg(i)31 b(h)p 3705 2123 20 4 v 3705 2179 a Ff([)p -3705 2195 V 3720 2176 a Fg(i)1110 2285 y(h)p 1134 2232 -36 4 v 1134 2288 a Ff(1)p 1134 2304 V 1165 2285 a Fg(i)f(h)p -1250 2232 V 1250 2288 a Ff(1)p 1250 2304 V 1281 2285 -a Fg(i)g(h)p 1365 2232 48 4 v 1365 2288 a Fs(~)p 1365 -2304 V 1409 2285 a Fg(i)1438 2288 y Ft(')h(is)f(b)s(ound)f(to)i(insert) -f(the)h(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)630 -2449 y(The)f(follo)m(wing)i Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f -(sequences)g(are)g(a)m(v)-5 b(ailable)32 b(when)d(sp)s(ecifying)630 -2558 y(k)m(ey)i(sequences:)630 2718 y Fj(\\C-)336 b Ft(con)m(trol)32 -b(pre\014x)630 2878 y Fj(\\M-)336 b Ft(meta)31 b(pre\014x)630 -3039 y Fj(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630 -3199 y Fj(\\\\)384 b Ft(bac)m(kslash)630 3359 y Fj(\\)p -Fs(")1110 3356 y Fg(h)p 1134 3303 V 1134 3359 a Fs(")p -1134 3374 V 1178 3356 a Fg(i)1208 3359 y Ft(,)30 b(a)h(double)f -(quotation)h(mark)630 3519 y Fj(\\')1110 3516 y Fg(h)p -1134 3463 20 4 v 1134 3519 a Ff(')p 1134 3534 V 1150 -3516 a Fg(i)1179 3519 y Ft(,)g(a)g(single)g(quote)g(or)f(ap)s(ostrophe) -630 3679 y(In)d(addition)h(to)g(the)g Fl(gnu)f Ft(Emacs)h(st)m(yle)h -(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630 -3789 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 3949 -y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 4109 y Fs(\\b)384 -b Ft(bac)m(kspace)630 4269 y Fs(\\d)g Ft(delete)630 4430 -y Fs(\\f)g Ft(form)30 b(feed)630 4590 y Fs(\\n)384 b -Ft(newline)630 4750 y Fs(\\r)g Ft(carriage)32 b(return)630 -4910 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 5070 -y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 5230 y Fs(\\)p -Fj(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5 -b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fq(nnn)e -Ft(\(one)i(to)1110 5340 y(three)c(digits\))p eop end +1110 3002 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s +(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 3112 y(recognized.)1350 +3242 y Fs("\\C-u":)46 b(universal-argument)1350 3351 +y("\\C-x\\C-r":)f(re-read-init-file)1350 3461 y("\\e[11~":)g("Function) +h(Key)g(1")1110 3591 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74 +b Fi(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110 +3700 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g +(the)f(\014rst)g(example\),)49 b(`)p Fi(C-x)1110 3810 +y(C-r)p Ft(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f +Fs(re-read-init-file)p Ft(,)c(and)j(`)p Fs(ESC)h([)g(1)g(1)1110 +3919 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p +Fs(Function)e(Key)g(1)p Ft('.)630 4070 y(The)g(follo)m(wing)i +Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5 +b(ailable)32 b(when)d(sp)s(ecifying)630 4179 y(k)m(ey)i(sequences:)630 +4329 y Fi(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630 +4479 y Fi(\\M-)336 b Ft(meta)31 b(pre\014x)630 4630 y +Fi(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630 +4780 y Fi(\\\\)384 b Ft(bac)m(kslash)630 4930 y Fi(\\)p +Fs(")g(")p Ft(,)30 b(a)h(double)f(quotation)i(mark)630 +5080 y Fi(\\')384 b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s +(ostrophe)630 5230 y(In)d(addition)h(to)g(the)g Fl(gnu)f +Ft(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g +(bac)m(kslash)630 5340 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)p +eop end %%Page: 102 108 TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y Fs(\\x)p Fj(HH)288 -b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5 -b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40 b -Fq(HH)1110 408 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630 -554 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e -(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630 -664 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21 -b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38 -b(In)630 773 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23 -b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j -(are)e(expanded.)37 b(Bac)m(kslash)630 883 y(will)j(quote)h(an)m(y)f -(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39 +b(Reference)g(Man)m(ual)630 299 y Fs(\\a)384 b Ft(alert)31 +b(\(b)s(ell\))630 460 y Fs(\\b)384 b Ft(bac)m(kspace)630 +621 y Fs(\\d)g Ft(delete)630 782 y Fs(\\f)g Ft(form)30 +b(feed)630 943 y Fs(\\n)384 b Ft(newline)630 1104 y Fs(\\r)g +Ft(carriage)32 b(return)630 1266 y Fs(\\t)384 b Ft(horizon)m(tal)32 +b(tab)630 1427 y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 +1588 y Fs(\\)p Fi(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g +(whose)e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 +b(alue)35 b Fq(nnn)e Ft(\(one)i(to)1110 1697 y(three)c(digits\))630 +1858 y Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g +(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 +b(alue)40 b Fq(HH)1110 1968 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e +(digits\))630 2129 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g +(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to) +630 2239 y(indicate)23 b(a)e(macro)h(de\014nition.)38 +b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f +(name.)38 b(In)630 2348 y(the)22 b(macro)f(b)s(o)s(dy)-8 +b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m +(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2458 y(will)j(quote)h(an)m +(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39 b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8 -b(or)630 993 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i(mak) -m(e)h(`)p Fj(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p -Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 1120 y Fs("\\C-x\\\\":)45 -b("\\\\")150 1324 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs) -275 1561 y Ft(Readline)36 b(implemen)m(ts)f(a)h(facilit)m(y)i(similar)d -(in)g(spirit)g(to)h(the)g(conditional)h(compilation)g(features)150 -1671 y(of)e(the)f(C)g(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)f -(bindings)e(and)h(v)-5 b(ariable)35 b(settings)h(to)f(b)s(e)f(p)s -(erformed)f(as)150 1781 y(the)e(result)f(of)g(tests.)42 -b(There)30 b(are)h(four)e(parser)h(directiv)m(es)i(used.)150 -1926 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h +b(or)630 2568 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i +(mak)m(e)h(`)p Fi(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p +Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 2703 y Fs("\\C-x\\\\":)45 +b("\\\\")150 2904 y Fj(8.3.2)63 b(Conditional)41 b(Init)g(Constructs) +150 3051 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f +(in)g(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150 +3160 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g +(bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s +(erformed)f(as)i(the)150 3270 y(result)f(of)h(tests.)41 +b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150 +3432 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h (bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g -(the)630 2036 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g +(the)630 3542 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g (application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test) -630 2146 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m +630 3651 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m (haracters)i(are)f(required)e(to)i(isolate)i(it.)630 -2291 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g +3812 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g Fs($if)f Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline) -1110 2401 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40 +1110 3922 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40 b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110 -2511 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f -(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 2620 y(standard)23 +4031 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f +(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 4141 y(standard)23 b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f -(starting)h(out)1110 2730 y(in)k Fs(emacs)f Ft(mo)s(de.)630 -2876 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e +(starting)h(out)1110 4251 y(in)k Fs(emacs)f Ft(mo)s(de.)630 +4412 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e (used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 -2985 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f -(output)g(b)m(y)g(the)g(terminal's)1110 3095 y(function)24 +4521 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f +(output)g(b)m(y)g(the)g(terminal's)1110 4631 y(function)24 b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g -(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 3204 +(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 4741 y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s -(ortion)e(of)h(the)g(terminal)1110 3314 y(name)k(b)s(efore)f(the)g +(ortion)e(of)h(the)g(terminal)1110 4850 y(name)k(b)s(efore)f(the)g (\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110 -3424 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 3569 y -Fs(application)1110 3679 y Ft(The)21 b Fq(application)j +4960 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 5121 y +Fs(application)1110 5230 y Ft(The)21 b Fq(application)j Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h -(set-)1110 3789 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h -(Readline)g(library)g(sets)g(the)g Fq(application)1110 -3898 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h -(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110 -4008 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h -(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 4117 -y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f -(sequence)h(that)f(quotes)1110 4227 y(the)e(curren)m(t)f(or)g(previous) -g(w)m(ord)g(in)g(Bash:)1350 4355 y Fs($if)47 b(Bash)1350 -4464 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350 -4574 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 4683 y($endif)150 -4829 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g -(previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150 -4975 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i -(the)f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g -(fails.)150 5121 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m -(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g -(commands)630 5230 y(and)38 b(bindings)f(from)h(that)i(\014le.)65 -b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e -(from)630 5340 y(`)p Fs(/etc/inputrc)p Ft(':)p eop end +(set-)1110 5340 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h +(Readline)g(library)g(sets)g(the)g Fq(application)p eop +end %%Page: 103 109 TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(103)870 299 y Fs($include)46 -b(/etc/inputrc)150 523 y Fk(8.3.3)63 b(Sample)41 b(Init)g(File)275 -767 y Ft(Here)31 b(is)f(an)g(example)i(of)e(an)g Fq(inputrc)35 -b Ft(\014le.)42 b(This)29 b(illustrates)j(k)m(ey)f(binding,)f(v)-5 -b(ariable)31 b(assignmen)m(t,)150 877 y(and)f(conditional)h(syn)m(tax.) -p eop end +b(Command)29 b(Line)i(Editing)2062 b(103)1110 299 y Fq(name)5 +b Ft(,)25 b(and)d(y)m(ou)h(can)g(test)h(for)e(a)h(particular)h(v)-5 +b(alue.)38 b(This)22 b(could)h(b)s(e)f(used)g(to)1110 +408 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h(a) +g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 518 y(instance,)35 +b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f(sequence)h(that)f +(quotes)1110 628 y(the)e(curren)m(t)f(or)g(previous)g(w)m(ord)g(in)g +(Bash:)1350 762 y Fs($if)47 b(Bash)1350 872 y(#)g(Quote)g(the)g +(current)f(or)h(previous)e(word)1350 981 y("\\C-xq":)h +("\\eb\\"\\ef\\"")1350 1091 y($endif)150 1250 y($endif)192 +b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g(previous)g(example,)h +(terminates)g(an)g Fs($if)e Ft(command.)150 1410 y Fs($else)240 +b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i(the)f +Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g(fails.) +150 1569 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m(es)g(a)e +(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g(commands) +630 1679 y(and)38 b(bindings)f(from)h(that)i(\014le.)65 +b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e +(from)630 1788 y(`)p Fs(/etc/inputrc)p Ft(':)870 1923 +y Fs($include)46 b(/etc/inputrc)150 2122 y Fj(8.3.3)63 +b(Sample)41 b(Init)g(File)150 2269 y Ft(Here)27 b(is)f(an)h(example)g +(of)f(an)h Fq(inputrc)k Ft(\014le.)39 b(This)26 b(illustrates)h(k)m(ey) +h(binding,)e(v)-5 b(ariable)27 b(assignmen)m(t,)i(and)150 +2379 y(conditional)j(syn)m(tax.)p eop end %%Page: 104 110 TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31 b(Reference)g(Man)m(ual)390 408 y Fs(#)47 b(This)g(file)g(controls)e @@ -12177,168 +12095,170 @@ TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31 b(Reference)g(Man)m(ual)390 299 y Fs(#)47 b(For)g(FTP)390 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390 628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390 -847 y($endif)150 1109 y Fr(8.4)68 b(Bindable)45 b(Readline)i(Commands) -275 1356 y Ft(This)34 b(section)j(describ)s(es)e(Readline)h(commands)g -(that)g(ma)m(y)g(b)s(e)f(b)s(ound)f(to)i(k)m(ey)h(sequences.)56 -b(Y)-8 b(ou)150 1465 y(can)29 b(list)g(y)m(our)g(k)m(ey)g(bindings)f(b) -m(y)h(executing)g Fs(bind)h(-P)e Ft(or,)h(for)g(a)g(more)f(terse)i -(format,)f(suitable)h(for)e(an)150 1575 y Fq(inputrc)34 +847 y($endif)150 1075 y Fr(8.4)68 b(Bindable)45 b(Readline)i(Commands) +150 1235 y Ft(This)32 b(section)h(describ)s(es)f(Readline)h(commands)f +(that)h(ma)m(y)h(b)s(e)d(b)s(ound)g(to)i(k)m(ey)g(sequences.)48 +b(Y)-8 b(ou)33 b(can)150 1344 y(list)40 b(y)m(our)f(k)m(ey)i(bindings)d +(b)m(y)h(executing)i Fs(bind)29 b(-P)39 b Ft(or,)j(for)d(a)h(more)g +(terse)g(format,)i(suitable)e(for)f(an)150 1454 y Fq(inputrc)34 b Ft(\014le,)29 b Fs(bind)g(-p)p Ft(.)40 b(\(See)30 b(Section)f(4.2)h ([Bash)g(Builtins],)g(page)g(41.\))41 b(Command)28 b(names)h(without) -150 1684 y(an)h(accompan)m(ying)i(k)m(ey)f(sequence)g(are)g(un)m(b)s -(ound)d(b)m(y)i(default.)275 1821 y(In)25 b(the)h(follo)m(wing)i +150 1563 y(an)h(accompan)m(ying)i(k)m(ey)f(sequence)g(are)g(un)m(b)s +(ound)d(b)m(y)i(default.)275 1696 y(In)25 b(the)h(follo)m(wing)i (descriptions,)f Fq(p)s(oin)m(t)h Ft(refers)e(to)h(the)f(curren)m(t)g (cursor)g(p)s(osition,)h(and)f Fq(mark)31 b Ft(refers)150 -1931 y(to)40 b(a)f(cursor)f(p)s(osition)h(sa)m(v)m(ed)h(b)m(y)f(the)g +1805 y(to)40 b(a)f(cursor)f(p)s(osition)h(sa)m(v)m(ed)h(b)m(y)f(the)g Fs(set-mark)d Ft(command.)66 b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f -(p)s(oin)m(t)g(and)150 2040 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f -Fq(region)p Ft(.)150 2269 y Fk(8.4.1)63 b(Commands)42 -b(F)-10 b(or)41 b(Mo)m(ving)150 2514 y Fs(beginning-of-line)26 -b(\(C-a\))630 2623 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f -(curren)m(t)g(line.)150 2785 y Fs(end-of-line)d(\(C-e\))630 -2894 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150 -3056 y Fs(forward-char)c(\(C-f\))630 3165 y Ft(Mo)m(v)m(e)32 -b(forw)m(ard)e(a)h(c)m(haracter.)150 3327 y Fs(backward-char)c(\(C-b\)) -630 3437 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150 -3598 y Fs(forward-word)d(\(M-f\))630 3708 y Ft(Mo)m(v)m(e)32 +(p)s(oin)m(t)g(and)150 1915 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f +Fq(region)p Ft(.)150 2110 y Fj(8.4.1)63 b(Commands)42 +b(F)-10 b(or)41 b(Mo)m(ving)150 2280 y Fs(beginning-of-line)26 +b(\(C-a\))630 2390 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f +(curren)m(t)g(line.)150 2545 y Fs(end-of-line)d(\(C-e\))630 +2655 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150 +2810 y Fs(forward-char)c(\(C-f\))630 2920 y Ft(Mo)m(v)m(e)32 +b(forw)m(ard)e(a)h(c)m(haracter.)150 3075 y Fs(backward-char)c(\(C-b\)) +630 3185 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150 +3340 y Fs(forward-word)d(\(M-f\))630 3450 y Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41 b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)i(and)630 -3817 y(digits.)150 3979 y Fs(backward-word)27 b(\(M-b\))630 -4088 y Ft(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g +3559 y(digits.)150 3715 y Fs(backward-word)27 b(\(M-b\))630 +3824 y Ft(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g (curren)m(t)f(or)g(previous)g(w)m(ord.)50 b(W)-8 b(ords)34 -b(are)g(comp)s(osed)630 4198 y(of)d(letters)g(and)f(digits.)150 -4359 y Fs(shell-forward-word)25 b(\(\))630 4469 y Ft(Mo)m(v)m(e)30 +b(are)g(comp)s(osed)630 3934 y(of)d(letters)g(and)f(digits.)150 +4089 y Fs(shell-forward-word)25 b(\(\))630 4199 y Ft(Mo)m(v)m(e)30 b(forw)m(ard)e(to)h(the)f(end)f(of)h(the)h(next)f(w)m(ord.)40 b(W)-8 b(ords)28 b(are)g(delimited)h(b)m(y)f(non-quoted)630 -4579 y(shell)j(metac)m(haracters.)150 4740 y Fs(shell-backward-word)25 -b(\(\))630 4850 y Ft(Mo)m(v)m(e)37 b(bac)m(k)e(to)h(the)f(start)g(of)g +4308 y(shell)j(metac)m(haracters.)150 4464 y Fs(shell-backward-word)25 +b(\(\))630 4573 y Ft(Mo)m(v)m(e)37 b(bac)m(k)e(to)h(the)f(start)g(of)g (the)g(curren)m(t)g(or)f(previous)h(w)m(ord.)53 b(W)-8 -b(ords)35 b(are)g(delimited)630 4959 y(b)m(y)30 b(non-quoted)h(shell)f -(metac)m(haracters.)150 5121 y Fs(clear-screen)d(\(C-l\))630 -5230 y Ft(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h(curren)m(t)f +b(ords)35 b(are)g(delimited)630 4683 y(b)m(y)30 b(non-quoted)h(shell)f +(metac)m(haracters.)150 4838 y Fs(clear-screen)d(\(C-l\))630 +4948 y Ft(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h(curren)m(t)f (line,)i(lea)m(ving)g(the)f(curren)m(t)g(line)g(at)g(the)g(top)630 -5340 y(of)k(the)f(screen.)p eop end +5057 y(of)k(the)f(screen.)150 5213 y Fs(redraw-current-line)25 +b(\(\))630 5322 y Ft(Refresh)30 b(the)g(curren)m(t)h(line.)41 +b(By)30 b(default,)h(this)f(is)h(un)m(b)s(ound.)p eop +end %%Page: 107 113 TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fs -(redraw-current-line)25 b(\(\))630 408 y Ft(Refresh)30 -b(the)g(curren)m(t)h(line.)41 b(By)30 b(default,)h(this)f(is)h(un)m(b)s -(ound.)150 617 y Fk(8.4.2)63 b(Commands)42 b(F)-10 b(or)41 -b(Manipulating)h(The)f(History)150 855 y Fs(accept-line)27 -b(\(Newline)h(or)i(Return\))630 965 y Ft(Accept)25 b(the)e(line)h -(regardless)g(of)f(where)g(the)h(cursor)e(is.)39 b(If)23 -b(this)g(line)h(is)f(non-empt)m(y)-8 b(,)26 b(add)c(it)630 -1074 y(to)27 b(the)f(history)g(list)h(according)g(to)g(the)f(setting)i -(of)e(the)g Fs(HISTCONTROL)d Ft(and)j Fs(HISTIGNORE)630 -1184 y Ft(v)-5 b(ariables.)42 b(If)30 b(this)h(line)g(is)g(a)g(mo)s -(di\014ed)e(history)i(line,)g(then)f(restore)i(the)f(history)f(line)h -(to)630 1294 y(its)g(original)g(state.)150 1442 y Fs(previous-history) -26 b(\(C-p\))630 1552 y Ft(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g -(history)h(list,)g(fetc)m(hing)g(the)g(previous)f(command.)150 -1701 y Fs(next-history)d(\(C-n\))630 1810 y Ft(Mo)m(v)m(e)32 -b(`forw)m(ard')f(through)e(the)i(history)f(list,)i(fetc)m(hing)f(the)g -(next)f(command.)150 1959 y Fs(beginning-of-history)25 -b(\(M-<\))630 2068 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in) -h(the)f(history)-8 b(.)150 2217 y Fs(end-of-history)26 -b(\(M->\))630 2327 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h -(input)e(history)-8 b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s -(eing)f(en)m(tered.)150 2475 y Fs(reverse-search-history)24 -b(\(C-r\))630 2585 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g -(the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g -(his-)630 2695 y(tory)g(as)f(necessary)-8 b(.)42 b(This)29 -b(is)i(an)f(incremen)m(tal)i(searc)m(h.)150 2843 y Fs -(forward-search-history)24 b(\(C-s\))630 2953 y Ft(Searc)m(h)30 -b(forw)m(ard)f(starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m -(ving)h(`do)m(wn')f(through)g(the)h(the)630 3062 y(history)g(as)h -(necessary)-8 b(.)41 b(This)30 b(is)g(an)h(incremen)m(tal)g(searc)m(h.) -150 3211 y Fs(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24 -b(\(M-p\))630 3321 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g +b(Command)29 b(Line)i(Editing)2062 b(107)150 299 y Fj(8.4.2)63 +b(Commands)42 b(F)-10 b(or)41 b(Manipulating)h(The)f(History)150 +473 y Fs(accept-line)27 b(\(Newline)h(or)i(Return\))630 +582 y Ft(Accept)25 b(the)e(line)h(regardless)g(of)f(where)g(the)h +(cursor)e(is.)39 b(If)23 b(this)g(line)h(is)f(non-empt)m(y)-8 +b(,)26 b(add)c(it)630 692 y(to)27 b(the)f(history)g(list)h(according)g +(to)g(the)f(setting)i(of)e(the)g Fs(HISTCONTROL)d Ft(and)j +Fs(HISTIGNORE)630 802 y Ft(v)-5 b(ariables.)42 b(If)30 +b(this)h(line)g(is)g(a)g(mo)s(di\014ed)e(history)i(line,)g(then)f +(restore)i(the)f(history)f(line)h(to)630 911 y(its)g(original)g(state.) +150 1075 y Fs(previous-history)26 b(\(C-p\))630 1184 +y Ft(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g +(fetc)m(hing)g(the)g(previous)f(command.)150 1348 y Fs(next-history)d +(\(C-n\))630 1457 y Ft(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i +(history)f(list,)i(fetc)m(hing)f(the)g(next)f(command.)150 +1621 y Fs(beginning-of-history)25 b(\(M-<\))630 1730 +y Ft(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8 +b(.)150 1894 y Fs(end-of-history)26 b(\(M->\))630 2004 +y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8 +b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s(eing)f(en)m(tered.)150 +2167 y Fs(reverse-search-history)24 b(\(C-r\))630 2277 +y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g +(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g(his-)630 +2386 y(tory)g(as)f(necessary)-8 b(.)42 b(This)29 b(is)i(an)f(incremen)m +(tal)i(searc)m(h.)150 2550 y Fs(forward-search-history)24 +b(\(C-s\))630 2659 y Ft(Searc)m(h)30 b(forw)m(ard)f(starting)h(at)g +(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')f(through)g(the) +h(the)630 2769 y(history)g(as)h(necessary)-8 b(.)41 b(This)30 +b(is)g(an)h(incremen)m(tal)g(searc)m(h.)150 2932 y Fs +(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24 +b(\(M-p\))630 3042 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g (the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g -(his-)630 3430 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m +(his-)630 3152 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m (tal)g(searc)m(h)f(for)g(a)g(string)g(supplied)f(b)m(y)h(the)630 -3540 y(user.)150 3688 y Fs(non-incremental-forward-)o(sear)o(ch-h)o -(ist)o(ory)24 b(\(M-n\))630 3798 y Ft(Searc)m(h)30 b(forw)m(ard)f +3261 y(user.)150 3425 y Fs(non-incremental-forward-)o(sear)o(ch-h)o +(ist)o(ory)24 b(\(M-n\))630 3534 y Ft(Searc)m(h)30 b(forw)m(ard)f (starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn') -f(through)g(the)h(the)630 3908 y(history)d(as)f(necessary)i(using)e(a)h +f(through)g(the)h(the)630 3644 y(history)d(as)f(necessary)i(using)e(a)h (non-incremen)m(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m(y)i -(the)630 4017 y(user.)150 4166 y Fs(history-search-forward)d(\(\))630 -4276 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g +(the)630 3754 y(user.)150 3917 y Fs(history-search-forward)d(\(\))630 +4027 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g (the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630 -4385 y(start)36 b(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m +4136 y(start)36 b(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m (t.)55 b(This)34 b(is)i(a)f(non-incremen)m(tal)h(searc)m(h.)56 -b(By)630 4495 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150 -4643 y Fs(history-search-backward)24 b(\(\))630 4753 +b(By)630 4246 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150 +4409 y Fs(history-search-backward)24 b(\(\))630 4519 y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g (the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630 -4863 y(start)g(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m(t.) +4629 y(start)g(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m(t.) 55 b(This)34 b(is)i(a)f(non-incremen)m(tal)h(searc)m(h.)56 -b(By)630 4972 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150 -5121 y Fs(yank-nth-arg)c(\(M-C-y\))630 5230 y Ft(Insert)37 +b(By)630 4738 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150 +4902 y Fs(yank-nth-arg)c(\(M-C-y\))630 5011 y Ft(Insert)37 b(the)g(\014rst)f(argumen)m(t)i(to)f(the)h(previous)e(command)h -(\(usually)g(the)g(second)g(w)m(ord)630 5340 y(on)32 +(\(usually)g(the)g(second)g(w)m(ord)630 5121 y(on)32 b(the)g(previous)f(line\))i(at)f(p)s(oin)m(t.)46 b(With)32 b(an)g(argumen)m(t)g Fq(n)p Ft(,)g(insert)g(the)g Fq(n)p -Ft(th)f(w)m(ord)g(from)p eop end +Ft(th)f(w)m(ord)g(from)630 5230 y(the)k(previous)f(command)h(\(the)g(w) +m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630 +5340 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f +Fq(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)p +eop end %%Page: 108 114 TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(the)k(previous)f(command)h(\(the)g(w) -m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630 -408 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f -Fq(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630 -518 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fq(n)e -Ft(is)h(computed,)h(the)f(argumen)m(t)g(is)g(extracted)i(as)e(if)630 -628 y(the)e(`)p Fs(!)p Fj(n)11 b Ft(')29 b(history)i(expansion)f(had)g -(b)s(een)f(sp)s(eci\014ed.)150 773 y Fs(yank-last-arg)e(\(M-.)i(or)h -(M-_\))630 883 y Ft(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)f -(command)h(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630 -993 y(history)c(en)m(try\).)41 b(With)31 b(an)g(argumen)m(t,)g(b)s(eha) -m(v)m(e)g(exactly)i(lik)m(e)f Fs(yank-nth-arg)p Ft(.)38 -b(Succes-)630 1102 y(siv)m(e)d(calls)h(to)f Fs(yank-last-arg)c -Ft(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)g(list,)h -(inserting)f(the)630 1212 y(last)d(argumen)m(t)f(of)g(eac)m(h)h(line)f -(in)f(turn.)41 b(The)30 b(history)h(expansion)f(facilities)j(are)e -(used)f(to)630 1321 y(extract)i(the)e(last)i(argumen)m(t,)f(as)f(if)h -(the)f(`)p Fs(!$)p Ft(')g(history)h(expansion)f(had)g(b)s(een)f(sp)s -(eci\014ed.)150 1525 y Fk(8.4.3)63 b(Commands)42 b(F)-10 -b(or)41 b(Changing)g(T)-10 b(ext)150 1762 y Fs(delete-char)27 -b(\(C-d\))630 1872 y Ft(Delete)41 b(the)e(c)m(haracter)i(at)e(p)s(oin)m +b(Reference)g(Man)m(ual)630 299 y(command.)48 b(Once)33 +b(the)g(argumen)m(t)h Fq(n)e Ft(is)h(computed,)h(the)f(argumen)m(t)g +(is)g(extracted)i(as)e(if)630 408 y(the)e(`)p Fs(!)p +Fi(n)11 b Ft(')29 b(history)i(expansion)f(had)g(b)s(een)f(sp)s +(eci\014ed.)150 584 y Fs(yank-last-arg)e(\(M-.)i(or)h(M-_\))630 +693 y Ft(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)f(command)h +(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630 803 +y(history)c(en)m(try\).)41 b(With)31 b(an)g(argumen)m(t,)g(b)s(eha)m(v) +m(e)g(exactly)i(lik)m(e)f Fs(yank-nth-arg)p Ft(.)38 b(Succes-)630 +913 y(siv)m(e)d(calls)h(to)f Fs(yank-last-arg)c Ft(mo)m(v)m(e)36 +b(bac)m(k)g(through)d(the)i(history)g(list,)h(inserting)f(the)630 +1022 y(last)d(argumen)m(t)f(of)g(eac)m(h)h(line)f(in)f(turn.)41 +b(The)30 b(history)h(expansion)f(facilities)j(are)e(used)f(to)630 +1132 y(extract)i(the)e(last)i(argumen)m(t,)f(as)f(if)h(the)f(`)p +Fs(!$)p Ft(')g(history)h(expansion)f(had)g(b)s(een)f(sp)s(eci\014ed.) +150 1347 y Fj(8.4.3)63 b(Commands)42 b(F)-10 b(or)41 +b(Changing)g(T)-10 b(ext)150 1527 y Fs(delete-char)27 +b(\(C-d\))630 1636 y Ft(Delete)41 b(the)e(c)m(haracter)i(at)e(p)s(oin)m (t.)66 b(If)39 b(p)s(oin)m(t)f(is)h(at)h(the)f(b)s(eginning)f(of)h(the) -g(line,)j(there)630 1982 y(are)37 b(no)g(c)m(haracters)i(in)d(the)i +g(line,)j(there)630 1746 y(are)37 b(no)g(c)m(haracters)i(in)d(the)i (line,)h(and)d(the)h(last)h(c)m(haracter)h(t)m(yp)s(ed)e(w)m(as)g(not)g -(b)s(ound)e(to)630 2091 y Fs(delete-char)p Ft(,)28 b(then)i(return)f -Fl(eof)p Ft(.)150 2237 y Fs(backward-delete-char)c(\(Rubout\))630 -2347 y Ft(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40 +(b)s(ound)e(to)630 1855 y Fs(delete-char)p Ft(,)28 b(then)i(return)f +Fl(eof)p Ft(.)150 2031 y Fs(backward-delete-char)c(\(Rubout\))630 +2140 y Ft(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40 b(A)30 b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630 -2456 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150 -2602 y Fs(forward-backward-delete-)o(char)24 b(\(\))630 -2712 y Ft(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h +2250 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150 +2425 y Fs(forward-backward-delete-)o(char)24 b(\(\))630 +2535 y Ft(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h (unless)d(the)i(cursor)e(is)h(at)h(the)g(end)e(of)i(the)630 -2821 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s +2644 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s (ehind)d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630 -2931 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 -3077 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3186 +2754 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 +2929 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3039 y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h (v)m(erbatim.)53 b(This)33 b(is)i(ho)m(w)f(to)h(insert)f(k)m(ey)630 -3296 y(sequences)d(lik)m(e)g Fj(C-q)p Ft(,)f(for)g(example.)150 -3442 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630 -3551 y Ft(Insert)g(y)m(ourself.)150 3697 y Fs(transpose-chars)c -(\(C-t\))630 3807 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g +3148 y(sequences)d(lik)m(e)g Fi(C-q)p Ft(,)f(for)g(example.)150 +3324 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630 +3433 y Ft(Insert)g(y)m(ourself.)150 3609 y Fs(transpose-chars)c +(\(C-t\))630 3718 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g (cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g -(cursor,)630 3916 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m +(cursor,)630 3828 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m (ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end) -g(of)h(the)630 4026 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h +g(of)h(the)630 3937 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h (last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38 -b(Negativ)m(e)25 b(argumen)m(ts)630 4135 y(ha)m(v)m(e)32 -b(no)e(e\013ect.)150 4281 y Fs(transpose-words)c(\(M-t\))630 -4391 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g +b(Negativ)m(e)25 b(argumen)m(ts)630 4047 y(ha)m(v)m(e)32 +b(no)e(e\013ect.)150 4222 y Fs(transpose-words)c(\(M-t\))630 +4332 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g (the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past) -g(that)630 4500 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 +g(that)630 4441 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f -(line,)i(this)e(transp)s(oses)g(the)630 4610 y(last)j(t)m(w)m(o)h(w)m -(ords)e(on)g(the)h(line.)150 4756 y Fs(upcase-word)c(\(M-u\))630 -4865 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i +(line,)i(this)e(transp)s(oses)g(the)630 4551 y(last)j(t)m(w)m(o)h(w)m +(ords)e(on)g(the)h(line.)150 4726 y Fs(upcase-word)c(\(M-u\))630 +4836 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i (w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630 -4975 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h +4946 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h (the)e(cursor.)150 5121 y Fs(downcase-word)d(\(M-l\))630 5230 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i (w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m @@ -12350,182 +12270,182 @@ b(Command)29 b(Line)i(Editing)2062 b(109)150 299 y Fs(capitalize-word) 26 b(\(M-c\))630 408 y Ft(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo) m(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h (capitalize)630 518 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f -(mo)m(v)m(e)i(the)f(cursor.)150 683 y Fs(overwrite-mode)26 -b(\(\))630 793 y Ft(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48 +(mo)m(v)m(e)i(the)f(cursor.)150 671 y Fs(overwrite-mode)26 +b(\(\))630 780 y Ft(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48 b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,) -h(switc)m(hes)630 903 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37 +h(switc)m(hes)630 890 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37 b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m -(t,)i(switc)m(hes)e(to)630 1012 y(insert)30 b(mo)s(de.)41 +(t,)i(switc)m(hes)e(to)630 999 y(insert)30 b(mo)s(de.)41 b(This)30 b(command)h(a\013ects)h(only)e Fs(emacs)f Ft(mo)s(de;)i -Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 1122 +Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 1109 y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f Fs(readline\(\))c Ft(starts)k(in)f(insert)g(mo)s(de.)630 -1259 y(In)e(o)m(v)m(erwrite)j(mo)s(de,)e(c)m(haracters)i(b)s(ound)c(to) +1240 y(In)e(o)m(v)m(erwrite)j(mo)s(de,)e(c)m(haracters)i(b)s(ound)c(to) j Fs(self-insert)c Ft(replace)k(the)g(text)g(at)g(p)s(oin)m(t)630 -1369 y(rather)41 b(than)h(pushing)e(the)i(text)g(to)g(the)g(righ)m(t.) +1350 y(rather)41 b(than)h(pushing)e(the)i(text)g(to)g(the)g(righ)m(t.) 75 b(Characters)42 b(b)s(ound)d(to)j Fs(backward-)630 -1478 y(delete-char)27 b Ft(replace)32 b(the)e(c)m(haracter)i(b)s(efore) -e(p)s(oin)m(t)h(with)f(a)g(space.)630 1616 y(By)h(default,)f(this)h -(command)f(is)g(un)m(b)s(ound.)150 1852 y Fk(8.4.4)63 -b(Killing)42 b(And)e(Y)-10 b(anking)150 2099 y Fs(kill-line)28 -b(\(C-k\))630 2208 y Ft(Kill)j(the)f(text)i(from)e(p)s(oin)m(t)g(to)h -(the)g(end)e(of)i(the)f(line.)150 2374 y Fs(backward-kill-line)25 -b(\(C-x)30 b(Rubout\))630 2483 y Ft(Kill)h(bac)m(kw)m(ard)g(to)g(the)f -(b)s(eginning)g(of)g(the)h(line.)150 2649 y Fs(unix-line-discard)26 -b(\(C-u\))630 2758 y Ft(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor) +1459 y(delete-char)27 b Ft(replace)32 b(the)e(c)m(haracter)i(b)s(efore) +e(p)s(oin)m(t)h(with)f(a)g(space.)630 1590 y(By)h(default,)f(this)h +(command)f(is)g(un)m(b)s(ound.)150 1783 y Fj(8.4.4)63 +b(Killing)42 b(And)e(Y)-10 b(anking)150 1951 y Fs(kill-line)28 +b(\(C-k\))630 2061 y Ft(Kill)j(the)f(text)i(from)e(p)s(oin)m(t)g(to)h +(the)g(end)e(of)i(the)f(line.)150 2213 y Fs(backward-kill-line)25 +b(\(C-x)30 b(Rubout\))630 2323 y Ft(Kill)h(bac)m(kw)m(ard)g(to)g(the)f +(b)s(eginning)g(of)g(the)h(line.)150 2476 y Fs(unix-line-discard)26 +b(\(C-u\))630 2585 y Ft(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor) f(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150 -2923 y Fs(kill-whole-line)c(\(\))630 3033 y Ft(Kill)37 +2738 y Fs(kill-whole-line)c(\(\))630 2847 y Ft(Kill)37 b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g (where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630 -3143 y(this)30 b(is)h(un)m(b)s(ound.)150 3308 y Fs(kill-word)d(\(M-d\)) -630 3418 y Ft(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f +2957 y(this)30 b(is)h(un)m(b)s(ound.)150 3109 y Fs(kill-word)d(\(M-d\)) +630 3219 y Ft(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f (curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h -(the)g(end)630 3527 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8 +(the)g(end)630 3329 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs(forward-word)p -Ft(.)150 3692 y Fs(backward-kill-word)25 b(\(M-)1183 -3689 y Fg(h)p 1207 3636 146 4 v 1207 3692 a Ff(DEL)p -1207 3708 V 1348 3689 a Fg(i)1378 3692 y Fs(\))630 3802 -y Ft(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40 +Ft(.)150 3481 y Fs(backward-kill-word)25 b(\(M-DEL\))630 +3591 y Ft(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40 b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h(the)g(same)g(as)g -Fs(backward-word)p Ft(.)150 3967 y Fs(shell-kill-word)d(\(\))630 -4077 y Ft(Kill)k(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f +Fs(backward-word)p Ft(.)150 3743 y Fs(shell-kill-word)d(\(\))630 +3853 y Ft(Kill)k(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f (curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h -(the)g(end)630 4187 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8 +(the)g(end)630 3963 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs -(shell-forward-word)p Ft(.)150 4352 y Fs(backward-kill-word)25 -b(\(\))630 4461 y Ft(Kill)d(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38 +(shell-forward-word)p Ft(.)150 4115 y Fs(backward-kill-word)25 +b(\(\))630 4225 y Ft(Kill)d(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38 b(W)-8 b(ord)22 b(b)s(oundaries)f(are)h(the)g(same)h(as)f -Fs(shell-backward-)630 4571 y(word)p Ft(.)150 4736 y -Fs(unix-word-rubout)k(\(C-w\))630 4846 y Ft(Kill)32 b(the)g(w)m(ord)f +Fs(shell-backward-)630 4334 y(word)p Ft(.)150 4487 y +Fs(unix-word-rubout)k(\(C-w\))630 4596 y Ft(Kill)32 b(the)g(w)m(ord)f (b)s(ehind)f(p)s(oin)m(t,)i(using)f(white)h(space)g(as)g(a)g(w)m(ord)f -(b)s(oundary)-8 b(.)43 b(The)31 b(killed)630 4955 y(text)g(is)g(sa)m(v) -m(ed)g(on)g(the)f(kill-ring.)150 5121 y Fs(unix-filename-rubout)25 -b(\(\))630 5230 y Ft(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m +(b)s(oundary)-8 b(.)43 b(The)31 b(killed)630 4706 y(text)g(is)g(sa)m(v) +m(ed)g(on)g(the)f(kill-ring.)150 4859 y Fs(unix-filename-rubout)25 +b(\(\))630 4968 y Ft(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m (t,)j(using)e(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f -(the)630 5340 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 -b(killed)h(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)p -eop end +(the)630 5078 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 +b(killed)h(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 +5230 y Fs(delete-horizontal-space)24 b(\(\))630 5340 +y Ft(Delete)33 b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41 +b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)p eop +end %%Page: 110 116 TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(delete-horizontal-space)24 -b(\(\))630 408 y Ft(Delete)33 b(all)e(spaces)g(and)e(tabs)i(around)e(p) -s(oin)m(t.)41 b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 -561 y Fs(kill-region)d(\(\))630 670 y Ft(Kill)k(the)f(text)i(in)e(the)g -(curren)m(t)h(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un) -m(b)s(ound.)150 822 y Fs(copy-region-as-kill)25 b(\(\))630 -932 y Ft(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f(kill) -h(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f(a)m(w)m -(a)m(y)-8 b(.)630 1042 y(By)31 b(default,)f(this)h(command)f(is)g(un)m -(b)s(ound.)150 1194 y Fs(copy-backward-word)25 b(\(\))630 -1303 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(to)i -(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)f(are)i -(the)630 1413 y(same)31 b(as)f Fs(backward-word)p Ft(.)38 -b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150 -1565 y Fs(copy-forward-word)26 b(\(\))630 1675 y Ft(Cop)m(y)31 +b(Reference)g(Man)m(ual)150 299 y Fs(kill-region)c(\(\))630 +408 y Ft(Kill)k(the)f(text)i(in)e(the)g(curren)m(t)h(region.)41 +b(By)31 b(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150 +579 y Fs(copy-region-as-kill)25 b(\(\))630 689 y Ft(Cop)m(y)34 +b(the)g(text)h(in)f(the)g(region)g(to)h(the)f(kill)h(bu\013er,)f(so)g +(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f(a)m(w)m(a)m(y)-8 +b(.)630 799 y(By)31 b(default,)f(this)h(command)f(is)g(un)m(b)s(ound.) +150 969 y Fs(copy-backward-word)25 b(\(\))630 1079 y +Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(to)i(the)e +(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)f(are)i(the)630 +1189 y(same)31 b(as)f Fs(backward-word)p Ft(.)38 b(By)30 +b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150 +1359 y Fs(copy-forward-word)26 b(\(\))630 1469 y Ft(Cop)m(y)31 b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h (bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)e(are)j(the)630 -1784 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30 +1579 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30 b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)150 -1936 y Fs(yank)f(\(C-y\))630 2046 y Ft(Y)-8 b(ank)31 +1749 y Fs(yank)f(\(C-y\))630 1859 y Ft(Y)-8 b(ank)31 b(the)f(top)h(of)g(the)f(kill)h(ring)f(in)m(to)i(the)e(bu\013er)g(at)h -(p)s(oin)m(t.)150 2198 y Fs(yank-pop)d(\(M-y\))630 2308 +(p)s(oin)m(t.)150 2030 y Fs(yank-pop)d(\(M-y\))630 2139 y Ft(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h(the)g(prior)630 -2417 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p -Ft(.)150 2631 y Fk(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m -(ts)150 2871 y Fs(digit-argument)26 b(\()p Fj(M-0)p Fs(,)j -Fj(M-1)p Fs(,)h(...)f Fj(M--)p Fs(\))630 2981 y Ft(Add)d(this)h(digit)g +2249 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p +Ft(.)150 2460 y Fj(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m +(ts)150 2637 y Fs(digit-argument)26 b(\()p Fi(M-0)p Fs(,)j +Fi(M-1)p Fs(,)h(...)f Fi(M--)p Fs(\))630 2747 y Ft(Add)d(this)h(digit)g (to)h(the)f(argumen)m(t)g(already)h(accum)m(ulating,)h(or)e(start)h(a)f -(new)f(argumen)m(t.)630 3090 y Fj(M--)j Ft(starts)i(a)g(negativ)m(e)i -(argumen)m(t.)150 3242 y Fs(universal-argument)25 b(\(\))630 -3352 y Ft(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g +(new)f(argumen)m(t.)630 2857 y Fi(M--)j Ft(starts)i(a)g(negativ)m(e)i +(argumen)m(t.)150 3027 y Fs(universal-argument)25 b(\(\))630 +3137 y Ft(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g (argumen)m(t.)40 b(If)25 b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m -(y)f(one)630 3462 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h +(y)f(one)630 3247 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h (leading)h(min)m(us)e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630 -3571 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b) +3356 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b) m(y)f(digits,)i(executing)f Fs(universal-argument)630 -3681 y Ft(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h +3466 y Ft(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h (otherwise)g(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630 -3790 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y) +3575 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y) d(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630 -3900 y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e +3685 y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e (the)i(next)f(command)f(is)h(m)m(ultiplied)h(b)m(y)e(four.)630 -4010 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f +3795 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f (executing)g(this)f(function)g(the)h(\014rst)e(time)630 -4119 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e +3904 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e (time)i(mak)m(es)f(the)g(argumen)m(t)g(coun)m(t)h(six-)630 -4229 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h -(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 4442 y Fk(8.4.6)63 +4014 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h +(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 4224 y Fj(8.4.6)63 b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42 -b(Y)-10 b(ou)150 4682 y Fs(complete)28 b(\()610 4679 -y Fg(h)p 634 4626 148 4 v 634 4682 a Ff(T)-6 b(AB)p 634 -4698 V 778 4679 a Fg(i)808 4682 y Fs(\))630 4792 y Ft(A)m(ttempt)24 -b(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g(b)s(efore)f(p)s(oin) -m(t.)39 b(The)22 b(actual)i(completion)630 4902 y(p)s(erformed)33 -b(is)h(application-sp)s(eci\014c.)53 b(Bash)35 b(attempts)g(completion) -g(treating)h(the)e(text)630 5011 y(as)39 b(a)h(v)-5 b(ariable)39 -b(\(if)h(the)f(text)h(b)s(egins)e(with)h(`)p Fs($)p Ft('\),)j(username) -c(\(if)i(the)f(text)h(b)s(egins)e(with)630 5121 y(`)p -Fs(~)p Ft('\),)31 b(hostname)f(\(if)g(the)g(text)h(b)s(egins)e(with)h -(`)p Fs(@)p Ft('\),)h(or)f(command)f(\(including)h(aliases)i(and)630 -5230 y(functions\))j(in)f(turn.)53 b(If)34 b(none)g(of)h(these)h(pro)s -(duces)d(a)i(matc)m(h,)i(\014lename)e(completion)h(is)630 -5340 y(attempted.)p eop end +b(Y)-10 b(ou)150 4402 y Fs(complete)28 b(\(TAB\))630 +4512 y Ft(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g +(b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i(completion)630 +4621 y(p)s(erformed)33 b(is)h(application-sp)s(eci\014c.)53 +b(Bash)35 b(attempts)g(completion)g(treating)h(the)e(text)630 +4731 y(as)39 b(a)h(v)-5 b(ariable)39 b(\(if)h(the)f(text)h(b)s(egins)e +(with)h(`)p Fs($)p Ft('\),)j(username)c(\(if)i(the)f(text)h(b)s(egins)e +(with)630 4840 y(`)p Fs(~)p Ft('\),)31 b(hostname)f(\(if)g(the)g(text)h +(b)s(egins)e(with)h(`)p Fs(@)p Ft('\),)h(or)f(command)f(\(including)h +(aliases)i(and)630 4950 y(functions\))j(in)f(turn.)53 +b(If)34 b(none)g(of)h(these)h(pro)s(duces)d(a)i(matc)m(h,)i(\014lename) +e(completion)h(is)630 5060 y(attempted.)150 5230 y Fs +(possible-completions)25 b(\(M-?\))630 5340 y Ft(List)31 +b(the)f(p)s(ossible)g(completions)i(of)e(the)h(text)g(b)s(efore)f(p)s +(oin)m(t.)p eop end %%Page: 111 117 TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41 b(Command)29 b(Line)i(Editing)2062 b(111)150 299 y Fs -(possible-completions)25 b(\(M-?\))630 408 y Ft(List)31 -b(the)f(p)s(ossible)g(completions)i(of)e(the)h(text)g(b)s(efore)f(p)s -(oin)m(t.)150 582 y Fs(insert-completions)25 b(\(M-*\))630 -692 y Ft(Insert)30 b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f -(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(generated)630 -801 y(b)m(y)g Fs(possible-completions)p Ft(.)150 975 -y Fs(menu-complete)d(\(\))630 1084 y Ft(Similar)d(to)g -Fs(complete)p Ft(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f -(completed)i(with)e(a)i(single)f(matc)m(h)630 1194 y(from)37 -b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 b(Rep)s(eated)39 -b(execution)g(of)f Fs(menu-complete)630 1303 y Ft(steps)i(through)g -(the)g(list)h(of)f(p)s(ossible)g(completions,)k(inserting)c(eac)m(h)i -(matc)m(h)f(in)f(turn.)630 1413 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g -(of)g(completions,)i(the)e(b)s(ell)g(is)g(rung)f(\(sub)5 -b(ject)36 b(to)i(the)f(setting)630 1523 y(of)f Fs(bell-style)p -Ft(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57 -b(An)36 b(argumen)m(t)h(of)f Fq(n)f Ft(mo)m(v)m(es)i -Fq(n)630 1632 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e +(insert-completions)25 b(\(M-*\))630 408 y Ft(Insert)30 +b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f(p)s(oin)m(t)h(that) +g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(generated)630 518 +y(b)m(y)g Fs(possible-completions)p Ft(.)150 682 y Fs(menu-complete)d +(\(\))630 792 y Ft(Similar)d(to)g Fs(complete)p Ft(,)f(but)h(replaces)g +(the)g(w)m(ord)g(to)g(b)s(e)f(completed)i(with)e(a)i(single)f(matc)m(h) +630 902 y(from)37 b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 +b(Rep)s(eated)39 b(execution)g(of)f Fs(menu-complete)630 +1011 y Ft(steps)i(through)g(the)g(list)h(of)f(p)s(ossible)g +(completions,)k(inserting)c(eac)m(h)i(matc)m(h)f(in)f(turn.)630 +1121 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g(of)g(completions,)i(the)e +(b)s(ell)g(is)g(rung)f(\(sub)5 b(ject)36 b(to)i(the)f(setting)630 +1230 y(of)f Fs(bell-style)p Ft(\))e(and)h(the)h(original)i(text)f(is)f +(restored.)57 b(An)36 b(argumen)m(t)h(of)f Fq(n)f Ft(mo)m(v)m(es)i +Fq(n)630 1340 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e (matc)m(hes;)39 b(a)c(negativ)m(e)i(argumen)m(t)e(ma)m(y)g(b)s(e)f -(used)g(to)630 1742 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g +(used)g(to)630 1450 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g (list.)65 b(This)38 b(command)g(is)g(in)m(tended)g(to)h(b)s(e)f(b)s -(ound)e(to)630 1848 y Fg(h)p 654 1795 148 4 v 654 1851 -a Ff(T)-6 b(AB)p 654 1867 V 798 1848 a Fg(i)828 1851 -y Ft(,)30 b(but)g(is)g(un)m(b)s(ound)e(b)m(y)i(default.)150 -2025 y Fs(delete-char-or-list)25 b(\(\))630 2134 y Ft(Deletes)k(the)e +(ound)e(to)630 1559 y Fs(TAB)p Ft(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m +(y)i(default.)150 1724 y Fs(menu-complete-backward)24 +b(\(\))630 1833 y Ft(Iden)m(tical)36 b(to)g Fs(menu-complete)p +Ft(,)d(but)h(mo)m(v)m(es)j(bac)m(kw)m(ard)e(through)f(the)i(list)f(of)g +(p)s(ossible)630 1943 y(completions,)d(as)e(if)h Fs(menu-complete)26 +b Ft(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150 +2107 y Fs(delete-char-or-list)25 b(\(\))630 2217 y Ft(Deletes)k(the)e (c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)g(b)s -(eginning)g(or)f(end)h(of)g(the)g(line)630 2244 y(\(lik)m(e)k +(eginning)g(or)f(end)h(of)g(the)g(line)630 2326 y(\(lik)m(e)k Fs(delete-char)p Ft(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,) h(b)s(eha)m(v)m(es)g(iden)m(tically)h(to)e Fs(possible-)630 -2354 y(completions)p Ft(.)38 b(This)29 b(command)h(is)h(un)m(b)s(ound)d -(b)m(y)i(default.)150 2527 y Fs(complete-filename)c(\(M-/\))630 -2637 y Ft(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g -(b)s(efore)f(p)s(oin)m(t.)150 2810 y Fs(possible-filename-comple)o -(tion)o(s)24 b(\(C-x)30 b(/\))630 2920 y Ft(List)f(the)g(p)s(ossible)f +2436 y(completions)p Ft(.)38 b(This)29 b(command)h(is)h(un)m(b)s(ound)d +(b)m(y)i(default.)150 2600 y Fs(complete-filename)c(\(M-/\))630 +2710 y Ft(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g +(b)s(efore)f(p)s(oin)m(t.)150 2874 y Fs(possible-filename-comple)o +(tion)o(s)24 b(\(C-x)30 b(/\))630 2984 y Ft(List)f(the)g(p)s(ossible)f (completions)h(of)g(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)g(treating)h -(it)f(as)g(a)f(\014lename.)150 3093 y Fs(complete-username)e(\(M-~\)) -630 3203 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore) +(it)f(as)g(a)f(\014lename.)150 3148 y Fs(complete-username)e(\(M-~\)) +630 3258 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore) e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(username.)150 -3377 y Fs(possible-username-comple)o(tion)o(s)24 b(\(C-x)30 -b(~\))630 3486 y Ft(List)25 b(the)g(p)s(ossible)g(completions)h(of)f +3422 y Fs(possible-username-comple)o(tion)o(s)24 b(\(C-x)30 +b(~\))630 3532 y Ft(List)25 b(the)g(p)s(ossible)g(completions)h(of)f (the)g(text)h(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)f(a)g -(username.)150 3660 y Fs(complete-variable)h(\(M-$\))630 -3769 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)e(p) +(username.)150 3696 y Fs(complete-variable)h(\(M-$\))630 +3806 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)e(p) s(oin)m(t,)g(treating)i(it)f(as)f(a)h(shell)g(v)-5 b(ariable.)150 -3943 y Fs(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30 -b($\))630 4052 y Ft(List)42 b(the)g(p)s(ossible)g(completions)h(of)f +3970 y Fs(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30 +b($\))630 4080 y Ft(List)42 b(the)g(p)s(ossible)g(completions)h(of)f (the)g(text)h(b)s(efore)e(p)s(oin)m(t,)46 b(treating)d(it)f(as)g(a)h -(shell)630 4162 y(v)-5 b(ariable.)150 4335 y Fs(complete-hostname)26 -b(\(M-@\))630 4445 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i +(shell)630 4189 y(v)-5 b(ariable.)150 4354 y Fs(complete-hostname)26 +b(\(M-@\))630 4463 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i (b)s(efore)e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(hostname.)150 -4619 y Fs(possible-hostname-comple)o(tion)o(s)24 b(\(C-x)30 -b(@\))630 4728 y Ft(List)25 b(the)g(p)s(ossible)f(completions)h(of)g +4628 y Fs(possible-hostname-comple)o(tion)o(s)24 b(\(C-x)30 +b(@\))630 4737 y Ft(List)25 b(the)g(p)s(ossible)f(completions)h(of)g (the)g(text)g(b)s(efore)g(p)s(oin)m(t,)h(treating)g(it)f(as)f(a)h (hostname.)150 4902 y Fs(complete-command)h(\(M-!\))630 5011 y Ft(A)m(ttempt)32 b(completion)g(on)f(the)g(text)h(b)s(efore)e(p) @@ -12540,121 +12460,129 @@ TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31 b(Reference)g(Man)m(ual)150 299 y Fs(possible-command-complet)o(ions)24 b(\(C-x)29 b(!\))630 408 y Ft(List)d(the)h(p)s(ossible)f(completions)h (of)f(the)h(text)g(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)g(a)f -(command)630 518 y(name.)150 688 y Fs(dynamic-complete-history)e(\(M-) -1470 685 y Fg(h)p 1493 632 148 4 v 1493 688 a Ff(T)-6 -b(AB)p 1493 703 V 1637 685 a Fg(i)1667 688 y Fs(\))630 -798 y Ft(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h(b)s(efore)f(p)s -(oin)m(t,)g(comparing)h(the)f(text)h(against)h(lines)630 -907 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion)i -(matc)m(hes.)150 1077 y Fs(dabbrev-expand)26 b(\(\))630 -1187 y Ft(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s +(command)630 518 y(name.)150 675 y Fs(dynamic-complete-history)e +(\(M-TAB\))630 784 y Ft(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h +(b)s(efore)f(p)s(oin)m(t,)g(comparing)h(the)f(text)h(against)h(lines) +630 894 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion) +i(matc)m(hes.)150 1051 y Fs(dabbrev-expand)26 b(\(\))630 +1160 y Ft(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s (efore)f(p)s(oin)m(t,)i(comparing)f(the)g(text)h(against)630 -1297 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e -(completion)j(matc)m(hes.)150 1467 y Fs(complete-into-braces)25 -b(\(M-{\))630 1576 y Ft(P)m(erform)f(\014lename)f(completion)i(and)f +1270 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e +(completion)j(matc)m(hes.)150 1427 y Fs(complete-into-braces)25 +b(\(M-{\))630 1536 y Ft(P)m(erform)f(\014lename)f(completion)i(and)f (insert)f(the)h(list)g(of)g(p)s(ossible)f(completions)i(enclosed)630 -1686 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5 +1646 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5 b(ailable)37 b(to)e(the)g(shell)g(\(see)g(Section)h(3.5.1)g([Brace)g -(Ex-)630 1795 y(pansion],)30 b(page)h(18\).)150 2041 -y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 2290 y Fs(start-kbd-macro) -26 b(\(C-x)j(\(\))630 2400 y Ft(Begin)i(sa)m(ving)h(the)e(c)m +(Ex-)630 1755 y(pansion],)30 b(page)h(18\).)150 1952 +y Fj(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 2122 y Fs(start-kbd-macro) +26 b(\(C-x)j(\(\))630 2232 y Ft(Begin)i(sa)m(ving)h(the)e(c)m (haracters)i(t)m(yp)s(ed)e(in)m(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard) -g(macro.)150 2570 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630 -2680 y Ft(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m +g(macro.)150 2389 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630 +2498 y Ft(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m (to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i -(the)630 2789 y(de\014nition.)150 2959 y Fs(call-last-kbd-macro)c -(\(C-x)k(e\))630 3069 y Ft(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard) +(the)630 2608 y(de\014nition.)150 2765 y Fs(call-last-kbd-macro)c +(\(C-x)k(e\))630 2874 y Ft(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard) f(macro)h(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the) -630 3178 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m -(eyb)s(oard.)150 3424 y Fk(8.4.8)63 b(Some)41 b(Miscellaneous)i -(Commands)150 3673 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630 -3783 y Ft(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g +630 2984 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m +(eyb)s(oard.)150 3180 y Fj(8.4.8)63 b(Some)41 b(Miscellaneous)i +(Commands)150 3351 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630 +3460 y Ft(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g Fq(inputrc)27 b Ft(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d -(or)i(v)-5 b(ariable)630 3893 y(assignmen)m(ts)31 b(found)e(there.)150 -4063 y Fs(abort)g(\(C-g\))630 4172 y Ft(Ab)s(ort)d(the)h(curren)m(t)f +(or)i(v)-5 b(ariable)630 3570 y(assignmen)m(ts)31 b(found)e(there.)150 +3727 y Fs(abort)g(\(C-g\))630 3836 y Ft(Ab)s(ort)d(the)h(curren)m(t)f (editing)h(command)f(and)g(ring)h(the)f(terminal's)h(b)s(ell)g(\(sub)5 -b(ject)26 b(to)i(the)630 4282 y(setting)j(of)g Fs(bell-style)p -Ft(\).)150 4452 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p -Fj(x)p Fs(,)g(...)o(\))630 4561 y Ft(If)e(the)h(meta\014ed)g(c)m +b(ject)26 b(to)i(the)630 3946 y(setting)j(of)g Fs(bell-style)p +Ft(\).)150 4103 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p +Fi(x)11 b Fs(,)29 b(...)o(\))630 4212 y Ft(If)e(the)h(meta\014ed)g(c)m (haracter)h Fq(x)34 b Ft(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g -(command)h(that)g(is)g(b)s(ound)d(to)k(the)630 4671 y(corresp)s(onding) -g(upp)s(ercase)h(c)m(haracter.)150 4841 y Fs(prefix-meta)d(\()753 -4838 y Fg(h)p 777 4785 139 4 v 777 4841 a Ff(ESC)p 777 -4856 V 911 4838 a Fg(i)941 4841 y Fs(\))630 4951 y Ft(Metafy)39 -b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 b(This)37 -b(is)g(for)h(k)m(eyb)s(oards)f(without)g(a)h(meta)g(k)m(ey)-8 -b(.)630 5060 y(T)m(yping)30 b(`)968 5057 y Fg(h)p 993 -5004 V 993 5060 a Ff(ESC)p 993 5076 V 1127 5057 a Fg(i)1187 -5060 y Fs(f)p Ft(')g(is)g(equiv)-5 b(alen)m(t)32 b(to)f(t)m(yping)g -Fj(M-f)p Ft(.)150 5230 y Fs(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 -5340 y Ft(Incremen)m(tal)h(undo,)f(separately)h(remem)m(b)s(ered)f(for) -g(eac)m(h)i(line.)p eop end +(command)h(that)g(is)g(b)s(ound)d(to)k(the)630 4322 y(corresp)s(onding) +g(upp)s(ercase)h(c)m(haracter.)150 4479 y Fs(prefix-meta)d(\(ESC\))630 +4588 y Ft(Metafy)39 b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 +b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f(without)g(a)h(meta)g(k)m(ey)-8 +b(.)630 4698 y(T)m(yping)30 b(`)p Fs(ESC)g(f)p Ft(')g(is)h(equiv)-5 +b(alen)m(t)31 b(to)g(t)m(yping)g Fi(M-f)p Ft(.)150 4854 +y Fs(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 4964 y Ft(Incremen)m(tal)h +(undo,)f(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150 +5121 y Fs(revert-line)27 b(\(M-r\))630 5230 y Ft(Undo)33 +b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49 b(This)32 +b(is)h(lik)m(e)i(executing)f(the)f Fs(undo)f Ft(command)630 +5340 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)p +eop end %%Page: 113 119 TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(113)150 299 y Fs(revert-line)27 -b(\(M-r\))630 408 y Ft(Undo)33 b(all)h(c)m(hanges)g(made)f(to)h(this)f -(line.)49 b(This)32 b(is)h(lik)m(e)i(executing)f(the)f -Fs(undo)f Ft(command)630 518 y(enough)e(times)h(to)g(get)h(bac)m(k)f -(to)g(the)f(b)s(eginning.)150 708 y Fs(tilde-expand)d(\(M-&\))630 -818 y Ft(P)m(erform)j(tilde)h(expansion)g(on)f(the)g(curren)m(t)h(w)m -(ord.)150 1008 y Fs(set-mark)d(\(C-@\))630 1118 y Ft(Set)33 -b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g -(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g(is)f(set)630 -1228 y(to)f(that)g(p)s(osition.)150 1418 y Fs(exchange-point-and-mark) -24 b(\(C-x)29 b(C-x\))630 1527 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with) -g(the)g(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f -(set)h(to)f(the)h(sa)m(v)m(ed)630 1637 y(p)s(osition,)f(and)e(the)i -(old)g(cursor)e(p)s(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150 -1827 y Fs(character-search)26 b(\(C-]\))630 1937 y Ft(A)f(c)m(haracter) -h(is)f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g -(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 2047 y(A)30 +b(Command)29 b(Line)i(Editing)2062 b(113)150 299 y Fs(tilde-expand)27 +b(\(M-&\))630 408 y Ft(P)m(erform)j(tilde)h(expansion)g(on)f(the)g +(curren)m(t)h(w)m(ord.)150 555 y Fs(set-mark)d(\(C-@\))630 +664 y Ft(Set)33 b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 +b(If)32 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g +(is)f(set)630 774 y(to)f(that)g(p)s(osition.)150 920 +y Fs(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630 +1029 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43 +b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f(set)h(to)f(the)h +(sa)m(v)m(ed)630 1139 y(p)s(osition,)f(and)e(the)i(old)g(cursor)e(p)s +(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150 1285 +y Fs(character-search)26 b(\(C-]\))630 1395 y Ft(A)f(c)m(haracter)h(is) +f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g(o)s +(ccurrence)g(of)g(that)g(c)m(haracter.)630 1504 y(A)30 b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s -(ccurrences.)150 2237 y Fs(character-search-backwar)o(d)24 -b(\(M-C-]\))630 2346 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s +(ccurrences.)150 1650 y Fs(character-search-backwar)o(d)24 +b(\(M-C-]\))630 1760 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s (oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of) -g(that)630 2456 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f +g(that)630 1870 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f (searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150 -2646 y Fs(insert-comment)d(\(M-#\))630 2756 y Ft(Without)36 +2016 y Fs(skip-csi-sequence)d(\(\))630 2125 y Ft(Read)i(enough)f(c)m +(haracters)h(to)g(consume)f(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f +(as)g(those)h(de\014ned)630 2235 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g +(and)f(End.)60 b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m +(trol)g(Sequence)630 2345 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59 +b(If)36 b(this)g(sequence)h(is)g(b)s(ound)d(to)k Fs("\\)p +Ft(e[)p Fs(")p Ft(,)g(k)m(eys)f(pro-)630 2454 y(ducing)31 +b(suc)m(h)h(sequences)g(will)h(ha)m(v)m(e)g(no)f(e\013ect)h(unless)e +(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 2564 y(command,)f +(instead)g(of)g(inserting)g(stra)m(y)h(c)m(haracters)g(in)m(to)g(the)f +(editing)h(bu\013er.)44 b(This)31 b(is)630 2673 y(un)m(b)s(ound)d(b)m +(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)150 +2819 y Fs(insert-comment)26 b(\(M-#\))630 2929 y Ft(Without)36 b(a)g(n)m(umeric)g(argumen)m(t,)h(the)f(v)-5 b(alue)36 b(of)g(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)36 -b(is)g(in-)630 2866 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f +b(is)g(in-)630 3039 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f (curren)m(t)h(line.)45 b(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)g -(supplied,)630 2975 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55 +(supplied,)630 3148 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55 b(if)37 b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g -(line)630 3085 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5 +(line)630 3258 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5 b(alue)31 b(of)f Fs(comment-begin)p Ft(,)e(the)i(v)-5 -b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 3194 +b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 3367 y(c)m(haracters)42 b(in)d Fs(comment-begin)e Ft(are)j(deleted)h(from)f -(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 3304 +(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 3477 y(either)37 b(case,)j(the)e(line)f(is)g(accepted)i(as)e(if)g(a)g (newline)g(had)g(b)s(een)f(t)m(yp)s(ed.)60 b(The)37 b(default)630 -3414 y(v)-5 b(alue)32 b(of)g Fs(comment-begin)c Ft(causes)k(this)f +3587 y(v)-5 b(alue)32 b(of)g Fs(comment-begin)c Ft(causes)k(this)f (command)h(to)g(mak)m(e)h(the)e(curren)m(t)h(line)g(a)g(shell)630 -3523 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f(argumen)m(t)h(causes)g +3696 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f(argumen)m(t)h(causes)g (the)f(commen)m(t)i(c)m(haracter)g(to)f(b)s(e)f(remo)m(v)m(ed,)630 -3633 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)m(y)f(the)h(shell.) -150 3823 y Fs(dump-functions)26 b(\(\))630 3933 y Ft(Prin)m(t)g(all)i +3806 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)m(y)f(the)h(shell.) +150 3952 y Fs(dump-functions)26 b(\(\))630 4061 y Ft(Prin)m(t)g(all)i (of)e(the)h(functions)f(and)g(their)g(k)m(ey)h(bindings)e(to)j(the)e -(Readline)h(output)f(stream.)630 4042 y(If)31 b(a)h(n)m(umeric)g +(Readline)h(output)f(stream.)630 4171 y(If)31 b(a)h(n)m(umeric)g (argumen)m(t)g(is)g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f -(suc)m(h)h(a)g(w)m(a)m(y)g(that)630 4152 y(it)f(can)g(b)s(e)e(made)i +(suc)m(h)h(a)g(w)m(a)m(y)g(that)630 4281 y(it)f(can)g(b)s(e)e(made)i (part)f(of)g(an)h Fq(inputrc)k Ft(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k(default.)150 -4342 y Fs(dump-variables)26 b(\(\))630 4452 y Ft(Prin)m(t)21 +4427 y Fs(dump-variables)26 b(\(\))630 4536 y Ft(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5 b(ariables)22 b(and)f(their)g(v)-5 b(alues)22 b(to)g(the)f(Readline)h(output)f(stream.)630 -4561 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h +4646 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h (output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630 -4671 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fq(inputrc)k +4756 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fq(inputrc)k Ft(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k -(default.)150 4861 y Fs(dump-macros)c(\(\))630 4971 y +(default.)150 4902 y Fs(dump-macros)c(\(\))630 5011 y Ft(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)f(b)s (ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630 -5080 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e +5121 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e (supplied,)h(the)g(output)g(is)f(formatted)i(in)e(suc)m(h)h(a)630 -5190 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e +5230 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e Fq(inputrc)35 b Ft(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound) -d(b)m(y)630 5300 y(default.)p eop end +d(b)m(y)630 5340 y(default.)p eop end %%Page: 114 120 TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31 b(Reference)g(Man)m(ual)150 299 y Fs(glob-complete-word)25 @@ -12663,56 +12591,56 @@ b(\(M-g\))630 408 y Ft(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g 630 518 y(asterisk)d(implicitly)h(app)s(ended.)37 b(This)23 b(pattern)i(is)f(used)g(to)h(generate)h(a)e(list)h(of)g(matc)m(hing)630 628 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150 -782 y Fs(glob-expand-word)c(\(C-x)j(*\))630 892 y Ft(The)40 +791 y Fs(glob-expand-word)c(\(C-x)j(*\))630 900 y Ft(The)40 b(w)m(ord)g(b)s(efore)g(p)s(oin)m(t)h(is)g(treated)g(as)g(a)g(pattern)g -(for)f(pathname)g(expansion,)k(and)630 1001 y(the)c(list)g(of)f(matc)m +(for)f(pathname)g(expansion,)k(and)630 1010 y(the)c(list)g(of)f(matc)m (hing)i(\014le)e(names)g(is)h(inserted,)h(replacing)g(the)e(w)m(ord.)67 -b(If)39 b(a)h(n)m(umeric)630 1111 y(argumen)m(t)31 b(is)f(supplied,)g +b(If)39 b(a)h(n)m(umeric)630 1120 y(argumen)m(t)31 b(is)f(supplied,)g (a)g(`)p Fs(*)p Ft(')h(is)f(app)s(ended)f(b)s(efore)h(pathname)g -(expansion.)150 1266 y Fs(glob-list-expansions)25 b(\(C-x)k(g\))630 -1375 y Ft(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h +(expansion.)150 1283 y Fs(glob-list-expansions)25 b(\(C-x)k(g\))630 +1392 y Ft(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h (b)s(een)f(generated)h(b)m(y)f Fs(glob-expand-word)630 -1485 y Ft(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.) +1502 y Ft(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.) 50 b(If)33 b(a)h(n)m(umeric)g(argumen)m(t)g(is)f(supplied,)h(a)g(`)p -Fs(*)p Ft(')630 1594 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g -(expansion.)150 1749 y Fs(display-shell-version)25 b(\(C-x)k(C-v\))630 -1858 y Ft(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h -(curren)m(t)f(instance)h(of)f(Bash.)150 2013 y Fs(shell-expand-line)c -(\(M-C-e\))630 2123 y Ft(Expand)34 b(the)h(line)h(as)g(the)f(shell)h +Fs(*)p Ft(')630 1611 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g +(expansion.)150 1775 y Fs(display-shell-version)25 b(\(C-x)k(C-v\))630 +1884 y Ft(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h +(curren)m(t)f(instance)h(of)f(Bash.)150 2047 y Fs(shell-expand-line)c +(\(M-C-e\))630 2157 y Ft(Expand)34 b(the)h(line)h(as)g(the)f(shell)h (do)s(es.)55 b(This)34 b(p)s(erforms)g(alias)i(and)f(history)g -(expansion)630 2232 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m +(expansion)630 2266 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m (ord)f(expansions)g(\(see)i(Section)f(3.5)h([Shell)e(Expansions],)630 -2342 y(page)e(17\).)150 2496 y Fs(history-expand-line)25 -b(\(M-^\))630 2606 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the) -h(curren)m(t)f(line.)150 2760 y Fs(magic-space)d(\(\))630 -2870 y Ft(P)m(erform)c(history)g(expansion)g(on)g(the)g(curren)m(t)g +2376 y(page)e(17\).)150 2539 y Fs(history-expand-line)25 +b(\(M-^\))630 2649 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the) +h(curren)m(t)f(line.)150 2812 y Fs(magic-space)d(\(\))630 +2921 y Ft(P)m(erform)c(history)g(expansion)g(on)g(the)g(curren)m(t)g (line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)630 -2980 y([History)31 b(In)m(teraction],)i(page)e(123\).)150 -3134 y Fs(alias-expand-line)26 b(\(\))630 3244 y Ft(P)m(erform)i(alias) +3031 y([History)31 b(In)m(teraction],)i(page)e(123\).)150 +3194 y Fs(alias-expand-line)26 b(\(\))630 3304 y Ft(P)m(erform)i(alias) i(expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h -([Aliases],)g(page)f(79\).)150 3398 y Fs(history-and-alias-expand)o -(-lin)o(e)24 b(\(\))630 3508 y Ft(P)m(erform)30 b(history)h(and)e +([Aliases],)g(page)f(79\).)150 3467 y Fs(history-and-alias-expand)o +(-lin)o(e)24 b(\(\))630 3576 y Ft(P)m(erform)30 b(history)h(and)e (alias)j(expansion)e(on)g(the)h(curren)m(t)f(line.)150 -3662 y Fs(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630 -3772 y Ft(A)g(synon)m(ym)g(for)g Fs(yank-last-arg)p Ft(.)150 -3927 y Fs(operate-and-get-next)25 b(\(C-o\))630 4036 +3740 y Fs(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630 +3849 y Ft(A)g(synon)m(ym)g(for)g Fs(yank-last-arg)p Ft(.)150 +4012 y Fs(operate-and-get-next)25 b(\(C-o\))630 4122 y Ft(Accept)42 b(the)e(curren)m(t)h(line)f(for)h(execution)g(and)f (fetc)m(h)i(the)e(next)h(line)g(relativ)m(e)i(to)e(the)630 -4146 y(curren)m(t)30 b(line)h(from)f(the)g(history)h(for)f(editing.)41 -b(An)m(y)31 b(argumen)m(t)f(is)h(ignored.)150 4300 y -Fs(edit-and-execute-command)24 b(\(C-xC-e\))630 4410 +4231 y(curren)m(t)30 b(line)h(from)f(the)g(history)h(for)f(editing.)41 +b(An)m(y)31 b(argumen)m(t)f(is)h(ignored.)150 4395 y +Fs(edit-and-execute-command)24 b(\(C-xC-e\))630 4504 y Ft(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)g(the)g(curren)m(t)f (command)h(line,)h(and)e(execute)i(the)f(result)g(as)g(shell)630 -4519 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h +4614 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h Fs($VISUAL)p Ft(,)f Fs($EDITOR)p Ft(,)h(and)d Fs(emacs)g -Ft(as)h(the)630 4629 y(editor,)31 b(in)f(that)h(order.)150 -4879 y Fr(8.5)68 b(Readline)47 b(vi)e(Mo)t(de)275 5121 -y Ft(While)24 b(the)g(Readline)g(library)f(do)s(es)h(not)g(ha)m(v)m(e)g -(a)h(full)e(set)h(of)g Fs(vi)f Ft(editing)h(functions,)h(it)f(do)s(es)g -(con)m(tain)150 5230 y(enough)34 b(to)h(allo)m(w)g(simple)f(editing)h -(of)f(the)g(line.)52 b(The)34 b(Readline)g Fs(vi)g Ft(mo)s(de)f(b)s -(eha)m(v)m(es)i(as)f(sp)s(eci\014ed)f(in)150 5340 y(the)e -Fl(posix)e Ft(1003.2)k(standard.)p eop end +Ft(as)h(the)630 4723 y(editor,)31 b(in)f(that)h(order.)150 +4961 y Fr(8.5)68 b(Readline)47 b(vi)e(Mo)t(de)150 5121 +y Ft(While)32 b(the)g(Readline)g(library)f(do)s(es)g(not)h(ha)m(v)m(e)h +(a)f(full)f(set)h(of)g Fs(vi)f Ft(editing)h(functions,)f(it)h(do)s(es)g +(con)m(tain)150 5230 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f +(the)g(line.)52 b(The)34 b(Readline)g Fs(vi)g Ft(mo)s(de)f(b)s(eha)m(v) +m(es)i(as)f(sp)s(eci\014ed)f(in)150 5340 y(the)e Fl(posix)e +Ft(1003.2)k(standard.)p eop end %%Page: 115 121 TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(8:)41 b(Command)29 b(Line)i(Editing)2062 b(115)275 299 y(In)35 @@ -12724,828 +12652,877 @@ Fs(set)30 b(-o)f(vi)p Ft(')44 b(commands)g(\(see)i(Section)f(4.3.1)h y(Readline)31 b(default)g(is)f Fs(emacs)f Ft(mo)s(de.)275 651 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fs(vi)f Ft(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g(`insertion')g(mo)s -(de,)g(as)h(if)f(y)m(ou)150 760 y(had)c(t)m(yp)s(ed)g(an)g(`)p -Fs(i)p Ft('.)39 b(Pressing)1215 757 y Fg(h)p 1239 704 -139 4 v 1239 760 a Ff(ESC)p 1239 776 V 1373 757 a Fg(i)1429 -760 y Ft(switc)m(hes)27 b(y)m(ou)g(in)m(to)g(`command')f(mo)s(de,)h -(where)f(y)m(ou)h(can)f(edit)h(the)150 870 y(text)35 -b(of)f(the)g(line)g(with)f(the)h(standard)f Fs(vi)g Ft(mo)m(v)m(emen)m -(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g(history)f(lines)h(with)150 -980 y(`)p Fs(k)p Ft(')d(and)e(subsequen)m(t)h(lines)h(with)f(`)p -Fs(j)p Ft(',)g(and)g(so)h(forth.)150 1232 y Fr(8.6)68 -b(Programmable)47 b(Completion)275 1474 y Ft(When)25 -b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f(argumen)m(t)h(to)h -(a)f(command)f(for)h(whic)m(h)f(a)h(comple-)150 1584 -y(tion)f(sp)s(eci\014cation)g(\(a)h Fq(compsp)s(ec)6 -b Ft(\))24 b(has)g(b)s(een)g(de\014ned)g(using)g(the)g -Fs(complete)f Ft(builtin)h(\(see)h(Section)h(8.7)150 -1694 y([Programmable)e(Completion)g(Builtins],)h(page)f(116\),)j(the)c -(programmable)h(completion)g(facilities)i(are)150 1803 -y(in)m(v)m(ok)m(ed.)275 1936 y(First,)d(the)e(command)g(name)g(is)h +(de,)g(as)h(if)f(y)m(ou)150 760 y(had)f(t)m(yp)s(ed)g(an)g(`)p +Fs(i)p Ft('.)41 b(Pressing)29 b Fs(ESC)f Ft(switc)m(hes)i(y)m(ou)g(in)m +(to)h(`command')e(mo)s(de,)h(where)e(y)m(ou)i(can)g(edit)g(the)150 +870 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f +Fs(vi)g Ft(mo)m(v)m(emen)m(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g +(history)f(lines)h(with)150 979 y(`)p Fs(k)p Ft(')d(and)e(subsequen)m +(t)h(lines)h(with)f(`)p Fs(j)p Ft(',)g(and)g(so)h(forth.)150 +1208 y Fr(8.6)68 b(Programmable)47 b(Completion)150 1367 +y Ft(When)25 b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f +(argumen)m(t)h(to)g(a)g(command)f(for)h(whic)m(h)f(a)h(completion)150 +1477 y(sp)s(eci\014cation)40 b(\(a)h Fq(compsp)s(ec)6 +b Ft(\))39 b(has)h(b)s(een)f(de\014ned)f(using)h(the)h +Fs(complete)d Ft(builtin)j(\(see)g(Section)h(8.7)150 +1586 y([Programmable)h(Completion)f(Builtins],)k(page)d(117\),)j(the)c +(programmable)g(completion)i(facilities)150 1696 y(are)31 +b(in)m(v)m(ok)m(ed.)275 1828 y(First,)23 b(the)e(command)g(name)g(is)h (iden)m(ti\014ed.)37 b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f -(de\014ned)g(for)h(that)h(command,)150 2046 y(the)44 +(de\014ned)g(for)h(that)h(command,)150 1938 y(the)44 b(compsp)s(ec)g(is)g(used)f(to)h(generate)i(the)e(list)g(of)g(p)s (ossible)g(completions)h(for)e(the)h(w)m(ord.)81 b(If)44 -b(the)150 2155 y(command)33 b(w)m(ord)f(is)h(a)g(full)g(pathname,)h(a)f -(compsp)s(ec)f(for)h(the)g(full)g(pathname)f(is)h(searc)m(hed)h(for)e -(\014rst.)150 2265 y(If)f(no)h(compsp)s(ec)f(is)h(found)e(for)h(the)h -(full)g(pathname,)g(an)f(attempt)i(is)f(made)f(to)i(\014nd)d(a)i -(compsp)s(ec)f(for)150 2374 y(the)g(p)s(ortion)f(follo)m(wing)h(the)g -(\014nal)f(slash.)275 2507 y(Once)k(a)g(compsp)s(ec)g(has)g(b)s(een)f -(found,)h(it)h(is)f(used)f(to)i(generate)h(the)e(list)h(of)f(matc)m -(hing)h(w)m(ords.)51 b(If)150 2617 y(a)37 b(compsp)s(ec)f(is)g(not)h -(found,)f(the)h(default)f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m -(v)m(e)j(\(see)f(Section)g(8.4.6)150 2726 y([Commands)30 -b(F)-8 b(or)31 b(Completion],)g(page)g(110\))h(is)f(p)s(erformed.)275 -2859 y(First,)g(the)g(actions)g(sp)s(eci\014ed)f(b)m(y)h(the)f(compsp)s -(ec)h(are)g(used.)40 b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h -(pre\014xed)150 2969 y(b)m(y)25 b(the)h(w)m(ord)f(b)s(eing)f(completed) -j(are)e(returned.)38 b(When)25 b(the)h(`)p Fs(-f)p Ft(')f(or)g(`)p +b(the)150 2048 y(command)36 b(w)m(ord)g(is)g(the)g(empt)m(y)h(string)f +(\(completion)i(attempted)f(at)g(the)g(b)s(eginning)e(of)h(an)h(empt)m +(y)150 2157 y(line\),)28 b(an)m(y)e(compsp)s(ec)f(de\014ned)g(with)g +(the)h(`)p Fs(-E)p Ft(')f(option)i(to)f Fs(complete)e +Ft(is)h(used.)39 b(If)25 b(the)h(command)f(w)m(ord)150 +2267 y(is)i(a)h(full)e(pathname,)i(a)g(compsp)s(ec)e(for)h(the)g(full)g +(pathname)g(is)g(searc)m(hed)h(for)f(\014rst.)39 b(If)26 +b(no)h(compsp)s(ec)g(is)150 2376 y(found)22 b(for)g(the)h(full)g +(pathname,)h(an)f(attempt)h(is)f(made)g(to)g(\014nd)f(a)h(compsp)s(ec)f +(for)h(the)g(p)s(ortion)f(follo)m(wing)150 2486 y(the)34 +b(\014nal)g(slash.)53 b(If)34 b(those)g(searc)m(hes)i(do)e(not)g +(result)h(in)f(a)g(compsp)s(ec,)h(an)m(y)g(compsp)s(ec)f(de\014ned)f +(with)150 2595 y(the)e(`)p Fs(-D)p Ft(')f(option)h(to)g +Fs(complete)d Ft(is)i(used)g(as)g(the)h(default.)275 +2728 y(Once)j(a)g(compsp)s(ec)g(has)g(b)s(een)f(found,)h(it)h(is)f +(used)f(to)i(generate)h(the)e(list)h(of)f(matc)m(hing)h(w)m(ords.)51 +b(If)150 2838 y(a)37 b(compsp)s(ec)f(is)g(not)h(found,)f(the)h(default) +f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g +(8.4.6)150 2947 y([Commands)30 b(F)-8 b(or)31 b(Completion],)g(page)g +(110\))h(is)f(p)s(erformed.)275 3080 y(First,)g(the)g(actions)g(sp)s +(eci\014ed)f(b)m(y)h(the)f(compsp)s(ec)h(are)g(used.)40 +b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h(pre\014xed)150 +3189 y(b)m(y)25 b(the)h(w)m(ord)f(b)s(eing)f(completed)j(are)e +(returned.)38 b(When)25 b(the)h(`)p Fs(-f)p Ft(')f(or)g(`)p Fs(-d)p Ft(')g(option)h(is)f(used)g(for)g(\014lename)150 -3078 y(or)30 b(directory)h(name)f(completion,)i(the)e(shell)h(v)-5 +3299 y(or)30 b(directory)h(name)f(completion,)i(the)e(shell)h(v)-5 b(ariable)31 b Fs(FIGNORE)d Ft(is)i(used)f(to)i(\014lter)g(the)f(matc)m -(hes.)42 b(See)150 3188 y(Section)31 b(5.2)h([Bash)e(V)-8 +(hes.)42 b(See)150 3408 y(Section)31 b(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(61,)g(for)f(a)h(description)g(of)f -Fs(FIGNORE)p Ft(.)275 3321 y(An)m(y)f(completions)h(sp)s(eci\014ed)f(b) +Fs(FIGNORE)p Ft(.)275 3541 y(An)m(y)f(completions)h(sp)s(eci\014ed)f(b) m(y)g(a)h(\014lename)f(expansion)h(pattern)f(to)h(the)g(`)p -Fs(-G)p Ft(')f(option)h(are)f(gener-)150 3430 y(ated)h(next.)40 +Fs(-G)p Ft(')f(option)h(are)f(gener-)150 3650 y(ated)h(next.)40 b(The)29 b(w)m(ords)g(generated)h(b)m(y)f(the)h(pattern)f(need)g(not)g (matc)m(h)i(the)e(w)m(ord)g(b)s(eing)g(completed.)150 -3540 y(The)42 b Fs(GLOBIGNORE)d Ft(shell)k(v)-5 b(ariable)43 +3760 y(The)42 b Fs(GLOBIGNORE)d Ft(shell)k(v)-5 b(ariable)43 b(is)f(not)h(used)e(to)i(\014lter)f(the)h(matc)m(hes,)j(but)c(the)g -Fs(FIGNORE)f Ft(shell)150 3650 y(v)-5 b(ariable)31 b(is)g(used.)275 -3782 y(Next,)k(the)g(string)e(sp)s(eci\014ed)h(as)g(the)g(argumen)m(t)g +Fs(FIGNORE)f Ft(shell)150 3870 y(v)-5 b(ariable)31 b(is)g(used.)275 +4002 y(Next,)k(the)g(string)e(sp)s(eci\014ed)h(as)g(the)g(argumen)m(t)g (to)h(the)f(`)p Fs(-W)p Ft(')g(option)g(is)g(considered.)52 -b(The)33 b(string)150 3892 y(is)g(\014rst)e(split)i(using)f(the)h(c)m +b(The)33 b(string)150 4112 y(is)g(\014rst)e(split)i(using)f(the)h(c)m (haracters)h(in)e(the)h Fs(IFS)e Ft(sp)s(ecial)j(v)-5 b(ariable)33 b(as)g(delimiters.)48 b(Shell)32 b(quoting)h(is)150 -4002 y(honored.)56 b(Eac)m(h)37 b(w)m(ord)e(is)h(then)f(expanded)g +4221 y(honored.)56 b(Eac)m(h)37 b(w)m(ord)e(is)h(then)f(expanded)g (using)h(brace)g(expansion,)h(tilde)f(expansion,)h(parameter)150 -4111 y(and)44 b(v)-5 b(ariable)46 b(expansion,)j(command)44 +4331 y(and)44 b(v)-5 b(ariable)46 b(expansion,)j(command)44 b(substitution,)49 b(and)44 b(arithmetic)i(expansion,)j(as)c(describ)s -(ed)150 4221 y(ab)s(o)m(v)m(e)38 b(\(see)f(Section)h(3.5)g([Shell)e +(ed)150 4440 y(ab)s(o)m(v)m(e)38 b(\(see)f(Section)h(3.5)g([Shell)e (Expansions],)i(page)f(17\).)61 b(The)36 b(results)h(are)g(split)f -(using)h(the)f(rules)150 4330 y(describ)s(ed)29 b(ab)s(o)m(v)m(e)i -(\(see)f(Section)h(3.5.7)h([W)-8 b(ord)30 b(Splitting],)h(page)f(24\).) -42 b(The)30 b(results)f(of)h(the)g(expansion)150 4440 +(using)h(the)f(rules)150 4550 y(describ)s(ed)29 b(ab)s(o)m(v)m(e)i +(\(see)f(Section)h(3.5.7)h([W)-8 b(ord)30 b(Splitting],)h(page)f(23\).) +42 b(The)30 b(results)f(of)h(the)g(expansion)150 4660 y(are)f(pre\014x-matc)m(hed)h(against)g(the)f(w)m(ord)g(b)s(eing)f (completed,)j(and)d(the)i(matc)m(hing)g(w)m(ords)e(b)s(ecome)i(the)150 -4550 y(p)s(ossible)g(completions.)275 4682 y(After)f(these)g(matc)m +4769 y(p)s(ossible)g(completions.)275 4902 y(After)f(these)g(matc)m (hes)i(ha)m(v)m(e)f(b)s(een)f(generated,)h(an)m(y)g(shell)f(function)g -(or)g(command)g(sp)s(eci\014ed)f(with)150 4792 y(the)i(`)p +(or)g(command)g(sp)s(eci\014ed)f(with)150 5011 y(the)i(`)p Fs(-F)p Ft(')g(and)f(`)p Fs(-C)p Ft(')h(options)g(is)g(in)m(v)m(ok)m (ed.)41 b(When)30 b(the)g(command)g(or)f(function)h(is)g(in)m(v)m(ok)m -(ed,)h(the)f Fs(COMP_)150 4902 y(LINE)p Ft(,)42 b Fs(COMP_POINT)p +(ed,)h(the)f Fs(COMP_)150 5121 y(LINE)p Ft(,)42 b Fs(COMP_POINT)p Ft(,)d Fs(COMP_KEY)p Ft(,)i(and)e Fs(COMP_TYPE)f Ft(v)-5 b(ariables)41 b(are)f(assigned)g(v)-5 b(alues)41 b(as)f(describ)s(ed) -150 5011 y(ab)s(o)m(v)m(e)k(\(see)g(Section)f(5.2)h([Bash)f(V)-8 +150 5230 y(ab)s(o)m(v)m(e)k(\(see)g(Section)f(5.2)h([Bash)f(V)-8 b(ariables],)48 b(page)c(61\).)79 b(If)42 b(a)i(shell)f(function)f(is)h -(b)s(eing)f(in)m(v)m(ok)m(ed,)150 5121 y(the)37 b Fs(COMP_WORDS)d +(b)s(eing)f(in)m(v)m(ok)m(ed,)150 5340 y(the)37 b Fs(COMP_WORDS)d Ft(and)i Fs(COMP_CWORD)e Ft(v)-5 b(ariables)38 b(are)f(also)h(set.)60 -b(When)37 b(the)g(function)f(or)h(command)150 5230 y(is)42 -b(in)m(v)m(ok)m(ed,)k(the)41 b(\014rst)g(argumen)m(t)h(is)g(the)g(name) -f(of)h(the)g(command)f(whose)h(argumen)m(ts)f(are)h(b)s(eing)150 -5340 y(completed,)d(the)d(second)g(argumen)m(t)h(is)f(the)g(w)m(ord)g -(b)s(eing)g(completed,)i(and)e(the)g(third)f(argumen)m(t)i(is)p -eop end +b(When)37 b(the)g(function)f(or)h(command)p eop end %%Page: 116 122 TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y(the)d(w)m(ord)g(preceding)h(the)f(w)m -(ord)g(b)s(eing)g(completed)h(on)f(the)h(curren)m(t)f(command)g(line.) -40 b(No)29 b(\014ltering)g(of)150 408 y(the)i(generated)h(completions)h -(against)f(the)f(w)m(ord)g(b)s(eing)g(completed)h(is)f(p)s(erformed;)f -(the)h(function)g(or)150 518 y(command)f(has)g(complete)i(freedom)e(in) -g(generating)i(the)f(matc)m(hes.)275 660 y(An)m(y)g(function)h(sp)s -(eci\014ed)f(with)g(`)p Fs(-F)p Ft(')h(is)g(in)m(v)m(ok)m(ed)h -(\014rst.)44 b(The)31 b(function)h(ma)m(y)g(use)g(an)m(y)g(of)g(the)g -(shell)150 770 y(facilities,)50 b(including)44 b(the)h -Fs(compgen)d Ft(and)i Fs(compopt)e Ft(builtins)i(describ)s(ed)f(b)s -(elo)m(w)h(\(see)i(Section)f(8.7)150 879 y([Programmable)31 -b(Completion)h(Builtins],)f(page)h(116\),)g(to)g(generate)g(the)f(matc) -m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150 989 y(p)s(ossible)g -(completions)h(in)f(the)h Fs(COMPREPLY)d Ft(arra)m(y)j(v)-5 -b(ariable.)275 1131 y(Next,)23 b(an)m(y)e(command)f(sp)s(eci\014ed)g -(with)g(the)h(`)p Fs(-C)p Ft(')f(option)h(is)g(in)m(v)m(ok)m(ed)h(in)e -(an)g(en)m(vironmen)m(t)h(equiv)-5 b(alen)m(t)150 1240 -y(to)26 b(command)e(substitution.)39 b(It)25 b(should)f(prin)m(t)h(a)g -(list)h(of)f(completions,)i(one)e(p)s(er)f(line,)j(to)f(the)f(standard) -150 1350 y(output.)40 b(Bac)m(kslash)32 b(ma)m(y)f(b)s(e)f(used)g(to)h -(escap)s(e)g(a)f(newline,)h(if)f(necessary)-8 b(.)275 -1492 y(After)42 b(all)g(of)g(the)g(p)s(ossible)g(completions)h(are)f -(generated,)k(an)m(y)c(\014lter)g(sp)s(eci\014ed)f(with)h(the)g(`)p -Fs(-X)p Ft(')150 1602 y(option)34 b(is)f(applied)g(to)h(the)f(list.)49 -b(The)33 b(\014lter)g(is)g(a)h(pattern)f(as)g(used)g(for)g(pathname)g -(expansion;)h(a)g(`)p Fs(&)p Ft(')150 1711 y(in)39 b(the)g(pattern)g -(is)g(replaced)g(with)g(the)g(text)h(of)f(the)g(w)m(ord)g(b)s(eing)f -(completed.)68 b(A)39 b(literal)h(`)p Fs(&)p Ft(')f(ma)m(y)150 -1821 y(b)s(e)e(escap)s(ed)h(with)g(a)h(bac)m(kslash;)k(the)38 -b(bac)m(kslash)h(is)f(remo)m(v)m(ed)h(b)s(efore)e(attempting)j(a)e -(matc)m(h.)65 b(An)m(y)150 1930 y(completion)35 b(that)g(matc)m(hes)g -(the)f(pattern)g(will)g(b)s(e)g(remo)m(v)m(ed)h(from)e(the)h(list.)53 -b(A)34 b(leading)g(`)p Fs(!)p Ft(')h(negates)150 2040 -y(the)c(pattern;)f(in)g(this)h(case)g(an)m(y)g(completion)g(not)g(matc) -m(hing)h(the)e(pattern)h(will)f(b)s(e)g(remo)m(v)m(ed.)275 -2182 y(Finally)-8 b(,)33 b(an)m(y)f(pre\014x)f(and)g(su\016x)g(sp)s -(eci\014ed)g(with)h(the)g(`)p Fs(-P)p Ft(')f(and)g(`)p -Fs(-S)p Ft(')h(options)g(are)g(added)f(to)i(eac)m(h)150 -2292 y(mem)m(b)s(er)e(of)g(the)h(completion)h(list,)f(and)f(the)h +b(Reference)g(Man)m(ual)150 299 y(is)42 b(in)m(v)m(ok)m(ed,)k(the)41 +b(\014rst)g(argumen)m(t)h(is)g(the)g(name)f(of)h(the)g(command)f(whose) +h(argumen)m(ts)f(are)h(b)s(eing)150 408 y(completed,)d(the)d(second)g +(argumen)m(t)h(is)f(the)g(w)m(ord)g(b)s(eing)g(completed,)i(and)e(the)g +(third)f(argumen)m(t)i(is)150 518 y(the)28 b(w)m(ord)g(preceding)h(the) +f(w)m(ord)g(b)s(eing)g(completed)h(on)f(the)h(curren)m(t)f(command)g +(line.)40 b(No)29 b(\014ltering)g(of)150 628 y(the)i(generated)h +(completions)h(against)f(the)f(w)m(ord)g(b)s(eing)g(completed)h(is)f(p) +s(erformed;)f(the)h(function)g(or)150 737 y(command)f(has)g(complete)i +(freedom)e(in)g(generating)i(the)f(matc)m(hes.)275 871 +y(An)m(y)g(function)h(sp)s(eci\014ed)f(with)g(`)p Fs(-F)p +Ft(')h(is)g(in)m(v)m(ok)m(ed)h(\014rst.)44 b(The)31 b(function)h(ma)m +(y)g(use)g(an)m(y)g(of)g(the)g(shell)150 981 y(facilities,)50 +b(including)44 b(the)h Fs(compgen)d Ft(and)i Fs(compopt)e +Ft(builtins)i(describ)s(ed)f(b)s(elo)m(w)h(\(see)i(Section)f(8.7)150 +1090 y([Programmable)31 b(Completion)h(Builtins],)f(page)h(117\),)g(to) +g(generate)g(the)f(matc)m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150 +1200 y(p)s(ossible)g(completions)h(in)f(the)h Fs(COMPREPLY)d +Ft(arra)m(y)j(v)-5 b(ariable.)275 1334 y(Next,)23 b(an)m(y)e(command)f +(sp)s(eci\014ed)g(with)g(the)h(`)p Fs(-C)p Ft(')f(option)h(is)g(in)m(v) +m(ok)m(ed)h(in)e(an)g(en)m(vironmen)m(t)h(equiv)-5 b(alen)m(t)150 +1443 y(to)26 b(command)e(substitution.)39 b(It)25 b(should)f(prin)m(t)h +(a)g(list)h(of)f(completions,)i(one)e(p)s(er)f(line,)j(to)f(the)f +(standard)150 1553 y(output.)40 b(Bac)m(kslash)32 b(ma)m(y)f(b)s(e)f +(used)g(to)h(escap)s(e)g(a)f(newline,)h(if)f(necessary)-8 +b(.)275 1687 y(After)42 b(all)g(of)g(the)g(p)s(ossible)g(completions)h +(are)f(generated,)k(an)m(y)c(\014lter)g(sp)s(eci\014ed)f(with)h(the)g +(`)p Fs(-X)p Ft(')150 1797 y(option)34 b(is)f(applied)g(to)h(the)f +(list.)49 b(The)33 b(\014lter)g(is)g(a)h(pattern)f(as)g(used)g(for)g +(pathname)g(expansion;)h(a)g(`)p Fs(&)p Ft(')150 1906 +y(in)39 b(the)g(pattern)g(is)g(replaced)g(with)g(the)g(text)h(of)f(the) +g(w)m(ord)g(b)s(eing)f(completed.)68 b(A)39 b(literal)h(`)p +Fs(&)p Ft(')f(ma)m(y)150 2016 y(b)s(e)e(escap)s(ed)h(with)g(a)h(bac)m +(kslash;)k(the)38 b(bac)m(kslash)h(is)f(remo)m(v)m(ed)h(b)s(efore)e +(attempting)j(a)e(matc)m(h.)65 b(An)m(y)150 2125 y(completion)35 +b(that)g(matc)m(hes)g(the)f(pattern)g(will)g(b)s(e)g(remo)m(v)m(ed)h +(from)e(the)h(list.)53 b(A)34 b(leading)g(`)p Fs(!)p +Ft(')h(negates)150 2235 y(the)c(pattern;)f(in)g(this)h(case)g(an)m(y)g +(completion)g(not)g(matc)m(hing)h(the)e(pattern)h(will)f(b)s(e)g(remo)m +(v)m(ed.)275 2369 y(Finally)-8 b(,)33 b(an)m(y)f(pre\014x)f(and)g +(su\016x)g(sp)s(eci\014ed)g(with)h(the)g(`)p Fs(-P)p +Ft(')f(and)g(`)p Fs(-S)p Ft(')h(options)g(are)g(added)f(to)i(eac)m(h) +150 2478 y(mem)m(b)s(er)e(of)g(the)h(completion)h(list,)f(and)f(the)h (result)f(is)h(returned)e(to)i(the)g(Readline)g(completion)h(co)s(de) -150 2401 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)275 -2543 y(If)22 b(the)i(previously-applied)f(actions)i(do)e(not)h +150 2588 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)275 +2722 y(If)22 b(the)i(previously-applied)f(actions)i(do)e(not)h (generate)h(an)m(y)f(matc)m(hes,)i(and)d(the)g(`)p Fs(-o)30 -b(dirnames)p Ft(')22 b(op-)150 2653 y(tion)29 b(w)m(as)f(supplied)f(to) +b(dirnames)p Ft(')22 b(op-)150 2832 y(tion)29 b(w)m(as)f(supplied)f(to) i Fs(complete)d Ft(when)h(the)h(compsp)s(ec)g(w)m(as)g(de\014ned,)g -(directory)g(name)h(completion)150 2762 y(is)h(attempted.)275 -2904 y(If)g(the)i(`)p Fs(-o)e(plusdirs)p Ft(')f(option)j(w)m(as)f +(directory)g(name)h(completion)150 2941 y(is)h(attempted.)275 +3075 y(If)g(the)i(`)p Fs(-o)e(plusdirs)p Ft(')f(option)j(w)m(as)f (supplied)f(to)i Fs(complete)e Ft(when)g(the)h(compsp)s(ec)g(w)m(as)h -(de\014ned,)150 3014 y(directory)k(name)f(completion)i(is)e(attempted)h +(de\014ned,)150 3185 y(directory)k(name)f(completion)i(is)e(attempted)h (and)f(an)m(y)h(matc)m(hes)g(are)g(added)f(to)h(the)f(results)g(of)h -(the)150 3123 y(other)31 b(actions.)275 3265 y(By)g(default,)i(if)e(a)h +(the)150 3294 y(other)31 b(actions.)275 3428 y(By)g(default,)i(if)e(a)h (compsp)s(ec)f(is)h(found,)f(whatev)m(er)h(it)g(generates)h(is)e -(returned)g(to)h(the)g(completion)150 3375 y(co)s(de)21 +(returned)g(to)h(the)g(completion)150 3538 y(co)s(de)21 b(as)g(the)g(full)g(set)g(of)g(p)s(ossible)f(completions.)39 b(The)20 b(default)h(Bash)g(completions)h(are)g(not)f(attempted,)150 -3485 y(and)k(the)h(Readline)g(default)g(of)g(\014lename)g(completion)h +3647 y(and)k(the)h(Readline)g(default)g(of)g(\014lename)g(completion)h (is)f(disabled.)38 b(If)26 b(the)g(`)p Fs(-o)k(bashdefault)p -Ft(')22 b(option)150 3594 y(w)m(as)i(supplied)e(to)j +Ft(')22 b(option)150 3757 y(w)m(as)i(supplied)e(to)j Fs(complete)c Ft(when)i(the)g(compsp)s(ec)h(w)m(as)g(de\014ned,)g(the)f -(default)h(Bash)g(completions)h(are)150 3704 y(attempted)f(if)f(the)g +(default)h(Bash)g(completions)h(are)150 3867 y(attempted)f(if)f(the)g (compsp)s(ec)g(generates)i(no)e(matc)m(hes.)39 b(If)23 b(the)g(`)p Fs(-o)30 b(default)p Ft(')21 b(option)j(w)m(as)f(supplied)f -(to)150 3813 y Fs(complete)j Ft(when)h(the)h(compsp)s(ec)f(w)m(as)i +(to)150 3976 y Fs(complete)j Ft(when)h(the)h(compsp)s(ec)f(w)m(as)i (de\014ned,)e(Readline's)i(default)f(completion)h(will)f(b)s(e)f(p)s -(erformed)150 3923 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,) +(erformed)150 4086 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,) g(the)g(default)f(Bash)h(completions\))h(generate)g(no)e(matc)m(hes.) -275 4065 y(When)20 b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g +275 4220 y(When)20 b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g (name)f(completion)h(is)f(desired,)i(the)e(programmable)150 -4175 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d +4329 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d (a)i(slash)g(to)g(completed)h(names)e(whic)m(h)h(are)g(sym-)150 -4284 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5 +4439 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5 b(ject)40 b(to)h(the)f(v)-5 b(alue)41 b(of)f(the)g Fq(mark-directories) -45 b Ft(Readline)c(v)-5 b(ariable,)150 4394 y(regardless)31 +45 b Ft(Readline)c(v)-5 b(ariable,)150 4548 y(regardless)31 b(of)f(the)h(setting)g(of)g(the)f Fq(mark-symlink)m(ed-directories)36 -b Ft(Readline)31 b(v)-5 b(ariable.)150 4670 y Fr(8.7)68 -b(Programmable)47 b(Completion)f(Builtins)275 4921 y -Ft(Tw)m(o)30 b(builtin)g(commands)g(are)h(a)m(v)-5 b(ailable)32 -b(to)f(manipulate)g(the)g(programmable)f(completion)i(facil-)150 -5031 y(ities.)150 5202 y Fs(compgen)870 5340 y(compgen)46 -b([)p Fj(option)11 b Fs(])45 b([)p Fj(word)11 b Fs(])p -eop end +b Ft(Readline)31 b(v)-5 b(ariable.)275 4682 y(There)25 +b(is)i(some)g(supp)s(ort)e(for)h(dynamically)h(mo)s(difying)f +(completions.)40 b(This)26 b(is)g(most)h(useful)f(when)150 +4792 y(used)37 b(in)h(com)m(bination)h(with)e(a)i(default)f(completion) +h(sp)s(eci\014ed)e(with)h(`)p Fs(-D)p Ft('.)63 b(It's)38 +b(p)s(ossible)f(for)h(shell)150 4902 y(functions)28 b(executed)h(as)f +(completion)i(handlers)d(to)i(indicate)g(that)g(completion)g(should)e +(b)s(e)h(retried)g(b)m(y)150 5011 y(returning)j(an)i(exit)g(status)f +(of)h(124.)48 b(If)31 b(a)i(shell)f(function)g(returns)f(124,)k(and)c +(c)m(hanges)j(the)e(compsp)s(ec)150 5121 y(asso)s(ciated)43 +b(with)e(the)g(command)g(on)g(whic)m(h)g(completion)i(is)e(b)s(eing)g +(attempted)h(\(supplied)e(as)i(the)150 5230 y(\014rst)29 +b(argumen)m(t)h(when)e(the)i(function)f(is)g(executed\),)j +(programmable)d(completion)i(restarts)f(from)f(the)150 +5340 y(b)s(eginning,)40 b(with)e(an)h(attempt)g(to)h(\014nd)d(a)i +(compsp)s(ec)f(for)g(that)h(command.)65 b(This)38 b(allo)m(ws)i(a)f +(set)g(of)p eop end %%Page: 117 123 TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(117)630 299 y(Generate)27 -b(p)s(ossible)e(completion)i(matc)m(hes)g(for)e Fq(w)m(ord)k -Ft(according)e(to)f(the)g Fq(option)p Ft(s,)h(whic)m(h)630 -408 y(ma)m(y)h(b)s(e)f(an)m(y)h(option)g(accepted)h(b)m(y)e(the)h -Fs(complete)d Ft(builtin)j(with)f(the)h(exception)g(of)g(`)p -Fs(-p)p Ft(')630 518 y(and)k(`)p Fs(-r)p Ft(',)i(and)e(write)h(the)g -(matc)m(hes)h(to)g(the)f(standard)f(output.)48 b(When)33 -b(using)f(the)h(`)p Fs(-F)p Ft(')630 628 y(or)28 b(`)p -Fs(-C)p Ft(')g(options,)h(the)f(v)-5 b(arious)29 b(shell)f(v)-5 -b(ariables)29 b(set)f(b)m(y)g(the)g(programmable)h(completion)630 -737 y(facilities,)k(while)d(a)m(v)-5 b(ailable,)33 b(will)e(not)g(ha)m -(v)m(e)g(useful)f(v)-5 b(alues.)630 881 y(The)34 b(matc)m(hes)h(will)g -(b)s(e)f(generated)h(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h -(programmable)f(com-)630 991 y(pletion)d(co)s(de)g(had)f(generated)i -(them)e(directly)i(from)e(a)h(completion)h(sp)s(eci\014cation)f(with) -630 1100 y(the)e(same)h(\015ags.)40 b(If)29 b Fq(w)m(ord)j -Ft(is)d(sp)s(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g -Fq(w)m(ord)j Ft(will)630 1210 y(b)s(e)d(displa)m(y)m(ed.)630 -1354 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in) +b(Command)29 b(Line)i(Editing)2062 b(117)150 299 y(completions)33 +b(to)f(b)s(e)g(built)f(dynamically)i(as)f(completion)h(is)f(attempted,) +h(rather)f(than)f(b)s(eing)g(loaded)150 408 y(all)g(at)g(once.)275 +564 y(F)-8 b(or)38 b(instance,)h(assuming)e(that)h(there)f(is)h(a)f +(library)g(of)g(compsp)s(ecs,)i(eac)m(h)g(k)m(ept)e(in)g(a)h(\014le)f +(corre-)150 673 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i +(the)e(follo)m(wing)h(default)f(completion)h(function)e(w)m(ould)150 +783 y(load)31 b(completions)g(dynamically:)390 938 y +Fs(_completion_loader\(\))390 1048 y({)390 1157 y(.)47 +b("/etc/bash_completion.d/$1)o(.sh")41 b(>/dev/null)k(2>&1)i(&&)g +(return)f(124)390 1267 y(})390 1376 y(complete)g(-D)h(-F)g +(_completion_loader)150 1640 y Fr(8.7)68 b(Programmable)47 +b(Completion)f(Builtins)150 1799 y Ft(Tw)m(o)27 b(builtin)g(commands)g +(are)g(a)m(v)-5 b(ailable)29 b(to)f(manipulate)g(the)f(programmable)g +(completion)h(facilities.)150 1990 y Fs(compgen)870 2134 +y(compgen)46 b([)p Fi(option)11 b Fs(])45 b([)p Fi(word)11 +b Fs(])630 2279 y Ft(Generate)27 b(p)s(ossible)e(completion)i(matc)m +(hes)g(for)e Fq(w)m(ord)k Ft(according)e(to)f(the)g Fq(option)p +Ft(s,)h(whic)m(h)630 2389 y(ma)m(y)h(b)s(e)f(an)m(y)h(option)g +(accepted)h(b)m(y)e(the)h Fs(complete)d Ft(builtin)j(with)f(the)h +(exception)g(of)g(`)p Fs(-p)p Ft(')630 2498 y(and)k(`)p +Fs(-r)p Ft(',)i(and)e(write)h(the)g(matc)m(hes)h(to)g(the)f(standard)f +(output.)48 b(When)33 b(using)f(the)h(`)p Fs(-F)p Ft(')630 +2608 y(or)28 b(`)p Fs(-C)p Ft(')g(options,)h(the)f(v)-5 +b(arious)29 b(shell)f(v)-5 b(ariables)29 b(set)f(b)m(y)g(the)g +(programmable)h(completion)630 2718 y(facilities,)k(while)d(a)m(v)-5 +b(ailable,)33 b(will)e(not)g(ha)m(v)m(e)g(useful)f(v)-5 +b(alues.)630 2862 y(The)34 b(matc)m(hes)h(will)g(b)s(e)f(generated)h +(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h(programmable)f(com-)630 +2972 y(pletion)d(co)s(de)g(had)f(generated)i(them)e(directly)i(from)e +(a)h(completion)h(sp)s(eci\014cation)f(with)630 3082 +y(the)e(same)h(\015ags.)40 b(If)29 b Fq(w)m(ord)j Ft(is)d(sp)s +(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g +Fq(w)m(ord)j Ft(will)630 3191 y(b)s(e)d(displa)m(y)m(ed.)630 +3336 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in) m(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g(w)m -(ere)630 1463 y(generated.)150 1641 y Fs(complete)870 -1785 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)11 -b Fs(])44 b([-E])j([-A)g Fj(action)11 b Fs(])45 b([-)870 -1895 y(G)i Fj(globpat)11 b Fs(])46 b([-W)g Fj(wordlist)11 -b Fs(])870 2004 y([-F)47 b Fj(function)11 b Fs(])45 b([-C)i -Fj(command)11 b Fs(])45 b([-X)i Fj(filterpat)11 b Fs(])870 -2114 y([-P)47 b Fj(prefix)11 b Fs(])45 b([-S)i Fj(suffix)11 -b Fs(])45 b Fj(name)58 b Fs([)p Fj(name)f Fs(...)o(])870 -2224 y(complete)46 b(-pr)g([-E])h([)p Fj(name)57 b Fs(...)o(])630 -2367 y Ft(Sp)s(ecify)33 b(ho)m(w)h(argumen)m(ts)h(to)f(eac)m(h)i +(ere)630 3446 y(generated.)150 3626 y Fs(complete)870 +3770 y(complete)46 b([-abcdefgjksuv])d([-o)k Fi(comp-option)11 +b Fs(])44 b([-DE])i([-A)h Fi(action)11 b Fs(])46 b([-)870 +3880 y(G)h Fi(globpat)11 b Fs(])46 b([-W)g Fi(wordlist)11 +b Fs(])870 3990 y([-F)47 b Fi(function)11 b Fs(])45 b([-C)i +Fi(command)11 b Fs(])45 b([-X)i Fi(filterpat)11 b Fs(])870 +4099 y([-P)47 b Fi(prefix)11 b Fs(])45 b([-S)i Fi(suffix)11 +b Fs(])45 b Fi(name)58 b Fs([)p Fi(name)f Fs(...)o(])870 +4209 y(complete)46 b(-pr)g([-DE])h([)p Fi(name)57 b Fs(...)o(])630 +4354 y Ft(Sp)s(ecify)33 b(ho)m(w)h(argumen)m(ts)h(to)f(eac)m(h)i Fq(name)j Ft(should)33 b(b)s(e)g(completed.)53 b(If)33 -b(the)i(`)p Fs(-p)p Ft(')e(option)630 2477 y(is)d(supplied,)e(or)i(if)g +b(the)i(`)p Fs(-p)p Ft(')e(option)630 4463 y(is)d(supplied,)e(or)i(if)g (no)f(options)h(are)g(supplied,)f(existing)h(completion)h(sp)s -(eci\014cations)g(are)630 2587 y(prin)m(ted)21 b(in)g(a)g(w)m(a)m(y)h -(that)g(allo)m(ws)g(them)f(to)h(b)s(e)f(reused)f(as)i(input.)36 -b(The)21 b(`)p Fs(-r)p Ft(')g(option)h(remo)m(v)m(es)630 -2696 y(a)46 b(completion)g(sp)s(eci\014cation)g(for)f(eac)m(h)h -Fq(name)p Ft(,)j(or,)g(if)c(no)h Fq(name)5 b Ft(s)45 -b(are)g(supplied,)j(all)630 2806 y(completion)29 b(sp)s -(eci\014cations.)40 b(The)27 b(`)p Fs(-E)p Ft(')g(option)h(indicates)g -(that)g(the)f(remaining)h(options)630 2915 y(and)e(actions)i(should)d -(apply)i(to)g(\\empt)m(y")h(command)e(completion;)k(that)d(is,)h -(completion)630 3025 y(attempted)j(on)g(a)f(blank)g(line.)630 -3169 y(The)f(pro)s(cess)g(of)h(applying)g(these)g(completion)g(sp)s -(eci\014cations)h(when)d(w)m(ord)i(completion)630 3278 -y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)f -(Section)g(8.6)g([Programmable)g(Completion],)630 3388 -y(page)31 b(115\).)630 3532 y(Other)41 b(options,)46 -b(if)41 b(sp)s(eci\014ed,)j(ha)m(v)m(e)f(the)f(follo)m(wing)i -(meanings.)75 b(The)41 b(argumen)m(ts)h(to)630 3641 y(the)e(`)p -Fs(-G)p Ft(',)j(`)p Fs(-W)p Ft(',)g(and)d(`)p Fs(-X)p -Ft(')g(options)g(\(and,)j(if)d(necessary)-8 b(,)44 b(the)c(`)p -Fs(-P)p Ft(')h(and)e(`)p Fs(-S)p Ft(')h(options\))630 -3751 y(should)30 b(b)s(e)h(quoted)g(to)h(protect)g(them)f(from)g +(eci\014cations)g(are)630 4573 y(prin)m(ted)43 b(in)h(a)g(w)m(a)m(y)h +(that)f(allo)m(ws)h(them)f(to)g(b)s(e)g(reused)f(as)h(input.)80 +b(The)43 b(`)p Fs(-r)p Ft(')g(option)630 4682 y(remo)m(v)m(es)29 +b(a)e(completion)i(sp)s(eci\014cation)e(for)g(eac)m(h)i +Fq(name)5 b Ft(,)28 b(or,)g(if)f(no)g Fq(name)5 b Ft(s)27 +b(are)h(supplied,)630 4792 y(all)46 b(completion)h(sp)s +(eci\014cations.)87 b(The)45 b(`)p Fs(-D)p Ft(')h(option)g(indicates)g +(that)g(the)g(remaining)630 4902 y(options)35 b(and)f(actions)h(should) +f(apply)g(to)h(the)g(\\default")g(command)f(completion;)k(that)630 +5011 y(is,)25 b(completion)g(attempted)g(on)e(a)h(command)f(for)g(whic) +m(h)h(no)f(completion)i(has)e(previously)630 5121 y(b)s(een)28 +b(de\014ned.)39 b(The)27 b(`)p Fs(-E)p Ft(')i(option)g(indicates)g +(that)g(the)g(remaining)f(options)h(and)f(actions)630 +5230 y(should)i(apply)i(to)g(\\empt)m(y")g(command)g(completion;)h +(that)f(is,)g(completion)h(attempted)630 5340 y(on)d(a)h(blank)f(line.) +p eop end +%%Page: 118 124 +TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31 +b(Reference)g(Man)m(ual)630 299 y(The)e(pro)s(cess)g(of)h(applying)g +(these)g(completion)g(sp)s(eci\014cations)h(when)d(w)m(ord)i +(completion)630 408 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m +(v)m(e)j(\(see)f(Section)g(8.6)g([Programmable)g(Completion],)630 +518 y(page)31 b(115\).)42 b(The)30 b(`)p Fs(-D)p Ft(')h(option)f(tak)m +(es)i(precedence)f(o)m(v)m(er)h(`)p Fs(-E)p Ft('.)630 +656 y(Other)41 b(options,)46 b(if)41 b(sp)s(eci\014ed,)j(ha)m(v)m(e)f +(the)f(follo)m(wing)i(meanings.)75 b(The)41 b(argumen)m(ts)h(to)630 +766 y(the)e(`)p Fs(-G)p Ft(',)j(`)p Fs(-W)p Ft(',)g(and)d(`)p +Fs(-X)p Ft(')g(options)g(\(and,)j(if)d(necessary)-8 b(,)44 +b(the)c(`)p Fs(-P)p Ft(')h(and)e(`)p Fs(-S)p Ft(')h(options\))630 +875 y(should)30 b(b)s(e)h(quoted)g(to)h(protect)g(them)f(from)g (expansion)g(b)s(efore)g(the)g Fs(complete)e Ft(builtin)630 -3861 y(is)h(in)m(v)m(ok)m(ed.)630 4039 y Fs(-o)g Fj(comp-option)1110 -4148 y Ft(The)c Fq(comp-option)i Ft(con)m(trols)g(sev)m(eral)h(asp)s +985 y(is)h(in)m(v)m(ok)m(ed.)630 1151 y Fs(-o)g Fi(comp-option)1110 +1261 y Ft(The)c Fq(comp-option)i Ft(con)m(trols)g(sev)m(eral)h(asp)s (ects)e(of)g(the)g(compsp)s(ec's)g(b)s(eha)m(v-)1110 -4258 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h(generation)h(of)e +1370 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h(generation)h(of)e (completions.)41 b Fq(comp-option)27 b Ft(ma)m(y)1110 -4367 y(b)s(e)j(one)g(of:)1110 4545 y Fs(bashdefault)1590 -4655 y Ft(P)m(erform)d(the)h(rest)f(of)h(the)g(default)f(Bash)h -(completions)g(if)g(the)1590 4765 y(compsp)s(ec)i(generates)i(no)e -(matc)m(hes.)1110 4943 y Fs(default)144 b Ft(Use)22 b(Readline's)g +1480 y(b)s(e)j(one)g(of:)1110 1646 y Fs(bashdefault)1590 +1756 y Ft(P)m(erform)d(the)h(rest)f(of)h(the)g(default)f(Bash)h +(completions)g(if)g(the)1590 1866 y(compsp)s(ec)i(generates)i(no)e +(matc)m(hes.)1110 2032 y Fs(default)144 b Ft(Use)22 b(Readline's)g (default)g(\014lename)g(completion)g(if)g(the)g(comp-)1590 -5052 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110 -5230 y Fs(dirnames)96 b Ft(P)m(erform)46 b(directory)g(name)h -(completion)g(if)f(the)g(compsp)s(ec)1590 5340 y(generates)32 -b(no)e(matc)m(hes.)p eop end -%%Page: 118 124 -TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31 -b(Reference)g(Man)m(ual)1110 299 y Fs(filenames)1590 -408 y Ft(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f -(generates)j(\014lenames,)1590 518 y(so)29 b(it)h(can)f(p)s(erform)f -(an)m(y)h(\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)1590 -628 y(adding)d(a)h(slash)f(to)h(directory)g(names)f(quoting)h(sp)s -(ecial)g(c)m(har-)1590 737 y(acters,)39 b(or)d(suppressing)f(trailing)i -(spaces\).)59 b(This)35 b(option)i(is)1590 847 y(in)m(tended)30 +2142 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110 +2308 y Fs(dirnames)96 b Ft(P)m(erform)46 b(directory)g(name)h +(completion)g(if)f(the)g(compsp)s(ec)1590 2418 y(generates)32 +b(no)e(matc)m(hes.)1110 2584 y Fs(filenames)1590 2694 +y Ft(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j +(\014lenames,)1590 2803 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h +(\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)1590 +2913 y(adding)d(a)h(slash)f(to)h(directory)g(names)f(quoting)h(sp)s +(ecial)g(c)m(har-)1590 3022 y(acters,)39 b(or)d(suppressing)f(trailing) +i(spaces\).)59 b(This)35 b(option)i(is)1590 3132 y(in)m(tended)30 b(to)g(b)s(e)g(used)f(with)g(shell)i(functions)e(sp)s(eci\014ed)g(with) -1590 956 y(`)p Fs(-F)p Ft('.)1110 1115 y Fs(nospace)144 +1590 3242 y(`)p Fs(-F)p Ft('.)1110 3408 y Fs(nospace)144 b Ft(T)-8 b(ell)40 b(Readline)g(not)g(to)g(app)s(end)d(a)j(space)g -(\(the)f(default\))h(to)1590 1224 y(w)m(ords)30 b(completed)h(at)g(the) -g(end)f(of)g(the)h(line.)1110 1383 y Fs(plusdirs)96 b +(\(the)f(default\))h(to)1590 3518 y(w)m(ords)30 b(completed)h(at)g(the) +g(end)f(of)g(the)h(line.)1110 3684 y Fs(plusdirs)96 b Ft(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d(b)m(y)i(the)g(compsp)s -(ec)g(are)g(gener-)1590 1492 y(ated,)g(directory)f(name)g(completion)i -(is)d(attempted)i(and)f(an)m(y)1590 1602 y(matc)m(hes)j(are)e(added)g +(ec)g(are)g(gener-)1590 3794 y(ated,)g(directory)f(name)g(completion)i +(is)d(attempted)i(and)f(an)m(y)1590 3903 y(matc)m(hes)j(are)e(added)g (to)h(the)g(results)f(of)g(the)h(other)g(actions.)630 -1760 y Fs(-A)f Fj(action)1110 1870 y Ft(The)25 b Fq(action)h +4070 y Fs(-A)f Fi(action)1110 4179 y Ft(The)25 b Fq(action)h Ft(ma)m(y)g(b)s(e)e(one)h(of)h(the)f(follo)m(wing)i(to)e(generate)i(a)e -(list)h(of)f(p)s(ossible)1110 1979 y(completions:)1110 -2138 y Fs(alias)240 b Ft(Alias)31 b(names.)41 b(Ma)m(y)31 +(list)h(of)f(p)s(ossible)1110 4289 y(completions:)1110 +4455 y Fs(alias)240 b Ft(Alias)31 b(names.)41 b(Ma)m(y)31 b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i(`)p Fs(-a)p Ft('.)1110 -2296 y Fs(arrayvar)96 b Ft(Arra)m(y)31 b(v)-5 b(ariable)31 -b(names.)1110 2454 y Fs(binding)144 b Ft(Readline)30 +4622 y Fs(arrayvar)96 b Ft(Arra)m(y)31 b(v)-5 b(ariable)31 +b(names.)1110 4788 y Fs(binding)144 b Ft(Readline)30 b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h([Bindable)1590 -2564 y(Readline)h(Commands],)f(page)h(106\).)1110 2722 +4898 y(Readline)h(Commands],)f(page)h(106\).)1110 5064 y Fs(builtin)144 b Ft(Names)21 b(of)g(shell)f(builtin)h(commands.)37 -b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 2832 -y(as)31 b(`)p Fs(-b)p Ft('.)1110 2990 y Fs(command)144 +b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 5174 +y(as)31 b(`)p Fs(-b)p Ft('.)1110 5340 y Fs(command)144 b Ft(Command)29 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s -(eci\014ed)f(as)i(`)p Fs(-c)p Ft('.)1110 3148 y Fs(directory)1590 -3258 y Ft(Directory)h(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s -(eci\014ed)g(as)g(`)p Fs(-d)p Ft('.)1110 3416 y Fs(disabled)96 +(eci\014ed)f(as)i(`)p Fs(-c)p Ft('.)p eop end +%%Page: 119 125 +TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(8:)41 +b(Command)29 b(Line)i(Editing)2062 b(119)1110 299 y Fs(directory)1590 +408 y Ft(Directory)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s +(eci\014ed)g(as)g(`)p Fs(-d)p Ft('.)1110 573 y Fs(disabled)96 b Ft(Names)31 b(of)g(disabled)f(shell)g(builtins.)1110 -3574 y Fs(enabled)144 b Ft(Names)31 b(of)g(enabled)f(shell)g(builtins.) -1110 3733 y Fs(export)192 b Ft(Names)34 b(of)f(exp)s(orted)f(shell)h(v) +737 y Fs(enabled)144 b Ft(Names)31 b(of)g(enabled)f(shell)g(builtins.) +1110 902 y Fs(export)192 b Ft(Names)34 b(of)f(exp)s(orted)f(shell)h(v) -5 b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590 -3842 y(\014ed)d(as)g(`)p Fs(-e)p Ft('.)1110 4001 y Fs(file)288 +1011 y(\014ed)d(as)g(`)p Fs(-e)p Ft('.)1110 1176 y Fs(file)288 b Ft(File)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f -(as)i(`)p Fs(-f)p Ft('.)1110 4159 y Fs(function)96 b -Ft(Names)31 b(of)g(shell)f(functions.)1110 4317 y Fs(group)240 +(as)i(`)p Fs(-f)p Ft('.)1110 1340 y Fs(function)96 b +Ft(Names)31 b(of)g(shell)f(functions.)1110 1504 y Fs(group)240 b Ft(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g -(as)g(`)p Fs(-g)p Ft('.)1110 4475 y Fs(helptopic)1590 -4585 y Ft(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h -Fs(help)f Ft(builtin)g(\(see)h(Sec-)1590 4695 y(tion)31 -b(4.2)g([Bash)g(Builtins],)g(page)g(41\).)1110 4853 y +(as)g(`)p Fs(-g)p Ft('.)1110 1669 y Fs(helptopic)1590 +1778 y Ft(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h +Fs(help)f Ft(builtin)g(\(see)h(Sec-)1590 1888 y(tion)31 +b(4.2)g([Bash)g(Builtins],)g(page)g(41\).)1110 2052 y Fs(hostname)96 b Ft(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g -(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 4963 y(the)55 b +(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 2162 y(the)55 b Fs(HOSTFILE)e Ft(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h -([Bash)1590 5072 y(V)-8 b(ariables],)32 b(page)f(61\).)1110 -5230 y Fs(job)336 b Ft(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f +([Bash)1590 2271 y(V)-8 b(ariables],)32 b(page)f(61\).)1110 +2436 y Fs(job)336 b Ft(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f (activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590 -5340 y(\014ed)f(as)g(`)p Fs(-j)p Ft('.)p eop end -%%Page: 119 125 -TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(8:)41 -b(Command)29 b(Line)i(Editing)2062 b(119)1110 299 y Fs(keyword)144 +2545 y(\014ed)f(as)g(`)p Fs(-j)p Ft('.)1110 2710 y Fs(keyword)144 b Ft(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i(`)p Fs(-k)p Ft('.)1110 -467 y Fs(running)144 b Ft(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f -(con)m(trol)h(is)g(activ)m(e.)1110 635 y Fs(service)144 +2874 y Fs(running)144 b Ft(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f +(con)m(trol)h(is)g(activ)m(e.)1110 3039 y Fs(service)144 b Ft(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s -(eci\014ed)g(as)g(`)p Fs(-s)p Ft('.)1110 803 y Fs(setopt)192 +(eci\014ed)g(as)g(`)p Fs(-s)p Ft('.)1110 3203 y Fs(setopt)192 b Ft(V)-8 b(alid)34 b(argumen)m(ts)f(for)f(the)h(`)p Fs(-o)p Ft(')g(option)g(to)h(the)f Fs(set)e Ft(builtin)1590 -913 y(\(see)g(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(51\).) -1110 1081 y Fs(shopt)240 b Ft(Shell)40 b(option)g(names)g(as)g +3313 y(\(see)g(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(51\).) +1110 3477 y Fs(shopt)240 b Ft(Shell)40 b(option)g(names)g(as)g (accepted)i(b)m(y)e(the)g Fs(shopt)e Ft(builtin)1590 -1190 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(41\).) -1110 1358 y Fs(signal)192 b Ft(Signal)31 b(names.)1110 -1526 y Fs(stopped)144 b Ft(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g -(job)g(con)m(trol)i(is)f(activ)m(e.)1110 1694 y Fs(user)288 +3587 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(41\).) +1110 3751 y Fs(signal)192 b Ft(Signal)31 b(names.)1110 +3915 y Fs(stopped)144 b Ft(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g +(job)g(con)m(trol)i(is)f(activ)m(e.)1110 4080 y Fs(user)288 b Ft(User)30 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f -(as)i(`)p Fs(-u)p Ft('.)1110 1862 y Fs(variable)96 b +(as)i(`)p Fs(-u)p Ft('.)1110 4244 y Fs(variable)96 b Ft(Names)36 b(of)g(all)g(shell)g(v)-5 b(ariables.)56 b(Ma)m(y)37 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590 -1972 y(`)p Fs(-v)p Ft('.)630 2140 y Fs(-G)30 b Fj(globpat)1110 -2250 y Ft(The)39 b(\014lename)h(expansion)g(pattern)g -Fq(globpat)j Ft(is)d(expanded)f(to)h(generate)1110 2359 -y(the)31 b(p)s(ossible)e(completions.)630 2527 y Fs(-W)h -Fj(wordlist)1110 2637 y Ft(The)24 b Fq(w)m(ordlist)k +4354 y(`)p Fs(-v)p Ft('.)630 4518 y Fs(-G)30 b Fi(globpat)1110 +4628 y Ft(The)39 b(\014lename)h(expansion)g(pattern)g +Fq(globpat)j Ft(is)d(expanded)f(to)h(generate)1110 4737 +y(the)31 b(p)s(ossible)e(completions.)630 4902 y Fs(-W)h +Fi(wordlist)1110 5011 y Ft(The)24 b Fq(w)m(ordlist)k Ft(is)d(split)g(using)f(the)h(c)m(haracters)i(in)d(the)i -Fs(IFS)e Ft(sp)s(ecial)h(v)-5 b(ariable)1110 2746 y(as)36 +Fs(IFS)e Ft(sp)s(ecial)h(v)-5 b(ariable)1110 5121 y(as)36 b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h -(expanded.)57 b(The)35 b(p)s(ossible)1110 2856 y(completions)c(are)e +(expanded.)57 b(The)35 b(p)s(ossible)1110 5230 y(completions)c(are)e (the)h(mem)m(b)s(ers)f(of)g(the)h(resultan)m(t)g(list)g(whic)m(h)f -(matc)m(h)i(the)1110 2966 y(w)m(ord)f(b)s(eing)g(completed.)630 -3134 y Fs(-C)g Fj(command)1110 3243 y Fq(command)35 b -Ft(is)e(executed)g(in)e(a)i(subshell)e(en)m(vironmen)m(t,)i(and)f(its)g -(output)g(is)1110 3353 y(used)e(as)g(the)h(p)s(ossible)f(completions.) -630 3521 y Fs(-F)g Fj(function)1110 3630 y Ft(The)25 -b(shell)i(function)e Fq(function)h Ft(is)g(executed)h(in)e(the)i -(curren)m(t)e(shell)i(en)m(viron-)1110 3740 y(men)m(t.)40 -b(When)25 b(it)h(\014nishes,)f(the)h(p)s(ossible)f(completions)h(are)g -(retriev)m(ed)g(from)1110 3850 y(the)31 b(v)-5 b(alue)30 -b(of)h(the)g Fs(COMPREPLY)c Ft(arra)m(y)k(v)-5 b(ariable.)630 -4018 y Fs(-X)30 b Fj(filterpat)1110 4127 y Fq(\014lterpat)d -Ft(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g(expansion.)38 -b(It)25 b(is)g(applied)f(to)1110 4237 y(the)30 b(list)f(of)h(p)s -(ossible)f(completions)h(generated)h(b)m(y)e(the)g(preceding)h(options) -1110 4346 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m -(hing)g Fq(\014lterpat)h Ft(is)e(remo)m(v)m(ed)1110 4456 -y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p Fs(!)p -Ft(')e(in)g Fq(\014lterpat)j Ft(negates)f(the)f(pattern;)g(in)f(this) -1110 4566 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g -Fq(\014lterpat)i Ft(is)d(remo)m(v)m(ed.)630 4734 y Fs(-P)g -Fj(prefix)1110 4843 y Fq(pre\014x)39 b Ft(is)34 b(added)f(at)i(the)f(b) -s(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110 -4953 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630 -5121 y Fs(-S)g Fj(suffix)1110 5230 y Fq(su\016x)c Ft(is)20 -b(app)s(ended)f(to)i(eac)m(h)h(p)s(ossible)e(completion)i(after)f(all)g -(other)g(options)1110 5340 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)p +(matc)m(h)i(the)1110 5340 y(w)m(ord)f(b)s(eing)g(completed.)p eop end %%Page: 120 126 TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31 -b(Reference)g(Man)m(ual)630 299 y(The)k(return)g(v)-5 -b(alue)37 b(is)f(true)f(unless)h(an)f(in)m(v)-5 b(alid)37 -b(option)f(is)g(supplied,)g(an)g(option)h(other)630 408 -y(than)31 b(`)p Fs(-p)p Ft(')g(or)g(`)p Fs(-r)p Ft(')g(is)g(supplied)f -(without)h(a)g Fq(name)37 b Ft(argumen)m(t,)32 b(an)f(attempt)h(is)f -(made)g(to)630 518 y(remo)m(v)m(e)h(a)e(completion)i(sp)s -(eci\014cation)f(for)f(a)h Fq(name)k Ft(for)30 b(whic)m(h)g(no)g(sp)s -(eci\014cation)h(exists,)630 628 y(or)f(an)h(error)f(o)s(ccurs)g -(adding)g(a)g(completion)i(sp)s(eci\014cation.)150 787 -y Fs(compopt)870 922 y(compopt)46 b([-o)h Fj(option)11 -b Fs(])45 b([+o)i Fj(option)11 b Fs(])45 b([)p Fj(name)11 -b Fs(])630 1056 y Ft(Mo)s(dify)33 b(completion)h(options)g(for)f(eac)m -(h)h Fq(name)39 b Ft(according)34 b(to)g(the)f Fq(option)p -Ft(s,)i(or)e(for)g(the)630 1166 y(curren)m(tly-execution)46 -b(completion)f(if)f(no)f Fq(name)5 b Ft(s)44 b(are)h(supplied.)80 -b(If)43 b(no)h Fq(option)p Ft(s)h(are)630 1275 y(giv)m(en,)30 -b(displa)m(y)e(the)g(completion)h(options)g(for)e(eac)m(h)i -Fq(name)34 b Ft(or)27 b(the)i(curren)m(t)e(completion.)630 -1385 y(The)f(p)s(ossible)g(v)-5 b(alues)27 b(of)f Fq(option)h -Ft(are)g(those)g(v)-5 b(alid)26 b(for)g(the)h Fs(complete)d -Ft(builtin)i(describ)s(ed)630 1494 y(ab)s(o)m(v)m(e.)630 -1629 y(The)d(return)g(v)-5 b(alue)25 b(is)f(true)g(unless)f(an)h(in)m -(v)-5 b(alid)24 b(option)h(is)f(supplied,)g(an)g(attempt)h(is)f(made) -630 1738 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h -Fq(name)k Ft(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f -(exists,)630 1848 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p -eop end +b(Reference)g(Man)m(ual)630 299 y Fs(-C)f Fi(command)1110 +408 y Fq(command)35 b Ft(is)e(executed)g(in)e(a)i(subshell)e(en)m +(vironmen)m(t,)i(and)f(its)g(output)g(is)1110 518 y(used)e(as)g(the)h +(p)s(ossible)f(completions.)630 677 y Fs(-F)g Fi(function)1110 +787 y Ft(The)25 b(shell)i(function)e Fq(function)h Ft(is)g(executed)h +(in)e(the)i(curren)m(t)e(shell)i(en)m(viron-)1110 897 +y(men)m(t.)40 b(When)25 b(it)h(\014nishes,)f(the)h(p)s(ossible)f +(completions)h(are)g(retriev)m(ed)g(from)1110 1006 y(the)31 +b(v)-5 b(alue)30 b(of)h(the)g Fs(COMPREPLY)c Ft(arra)m(y)k(v)-5 +b(ariable.)630 1166 y Fs(-X)30 b Fi(filterpat)1110 1275 +y Fq(\014lterpat)d Ft(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g +(expansion.)38 b(It)25 b(is)g(applied)f(to)1110 1385 +y(the)30 b(list)f(of)h(p)s(ossible)f(completions)h(generated)h(b)m(y)e +(the)g(preceding)h(options)1110 1494 y(and)d(argumen)m(ts,)i(and)e(eac) +m(h)i(completion)g(matc)m(hing)g Fq(\014lterpat)h Ft(is)e(remo)m(v)m +(ed)1110 1604 y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p +Fs(!)p Ft(')e(in)g Fq(\014lterpat)j Ft(negates)f(the)f(pattern;)g(in)f +(this)1110 1714 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g +Fq(\014lterpat)i Ft(is)d(remo)m(v)m(ed.)630 1873 y Fs(-P)g +Fi(prefix)1110 1983 y Fq(pre\014x)39 b Ft(is)34 b(added)f(at)i(the)f(b) +s(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110 +2092 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630 +2252 y Fs(-S)g Fi(suffix)1110 2361 y Fq(su\016x)c Ft(is)20 +b(app)s(ended)f(to)i(eac)m(h)h(p)s(ossible)e(completion)i(after)f(all)g +(other)g(options)1110 2471 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630 +2630 y(The)35 b(return)g(v)-5 b(alue)37 b(is)f(true)f(unless)h(an)f(in) +m(v)-5 b(alid)37 b(option)f(is)g(supplied,)g(an)g(option)h(other)630 +2740 y(than)31 b(`)p Fs(-p)p Ft(')g(or)g(`)p Fs(-r)p +Ft(')g(is)g(supplied)f(without)h(a)g Fq(name)37 b Ft(argumen)m(t,)32 +b(an)f(attempt)h(is)f(made)g(to)630 2849 y(remo)m(v)m(e)h(a)e +(completion)i(sp)s(eci\014cation)f(for)f(a)h Fq(name)k +Ft(for)30 b(whic)m(h)g(no)g(sp)s(eci\014cation)h(exists,)630 +2959 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s +(eci\014cation.)150 3118 y Fs(compopt)870 3253 y(compopt)46 +b([-o)h Fi(option)11 b Fs(])45 b([-DE])h([+o)h Fi(option)11 +b Fs(])46 b([)p Fi(name)11 b Fs(])630 3387 y Ft(Mo)s(dify)33 +b(completion)h(options)g(for)f(eac)m(h)h Fq(name)39 b +Ft(according)34 b(to)g(the)f Fq(option)p Ft(s,)i(or)e(for)g(the)630 +3497 y(curren)m(tly-execution)46 b(completion)f(if)f(no)f +Fq(name)5 b Ft(s)44 b(are)h(supplied.)80 b(If)43 b(no)h +Fq(option)p Ft(s)h(are)630 3606 y(giv)m(en,)30 b(displa)m(y)e(the)g +(completion)h(options)g(for)e(eac)m(h)i Fq(name)34 b +Ft(or)27 b(the)i(curren)m(t)e(completion.)630 3716 y(The)f(p)s(ossible) +g(v)-5 b(alues)27 b(of)f Fq(option)h Ft(are)g(those)g(v)-5 +b(alid)26 b(for)g(the)h Fs(complete)d Ft(builtin)i(describ)s(ed)630 +3826 y(ab)s(o)m(v)m(e.)40 b(The)23 b(`)p Fs(-D)p Ft(')i(option)f +(indicates)h(that)g(the)f(remaining)g(options)h(should)e(apply)h(to)h +(the)630 3935 y(\\default")33 b(command)f(completion;)i(that)f(is,)g +(completion)g(attempted)g(on)f(a)g(command)630 4045 y(for)c(whic)m(h)f +(no)h(completion)h(has)f(previously)g(b)s(een)f(de\014ned.)38 +b(The)28 b(`)p Fs(-E)p Ft(')g(option)g(indicates)630 +4154 y(that)c(the)g(remaining)g(options)g(should)e(apply)h(to)i(\\empt) +m(y")g(command)e(completion;)k(that)630 4264 y(is,)k(completion)g +(attempted)h(on)e(a)h(blank)f(line.)630 4399 y(The)g(`)p +Fs(-D)p Ft(')g(option)h(tak)m(es)h(precedence)f(o)m(v)m(er)g(`)p +Fs(-E)p Ft('.)630 4533 y(The)23 b(return)g(v)-5 b(alue)25 +b(is)f(true)g(unless)f(an)h(in)m(v)-5 b(alid)24 b(option)h(is)f +(supplied,)g(an)g(attempt)h(is)f(made)630 4643 y(to)32 +b(mo)s(dify)f(the)g(options)h(for)f(a)h Fq(name)k Ft(for)31 +b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f(exists,)630 +4752 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p eop end %%Page: 121 127 -TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)47 b(9:)i(Using)f -(History)g(In)m(teractiv)m(ely)1865 b(121)150 299 y Fo(9)80 -b(Using)53 b(History)g(In)l(teractiv)l(ely)275 552 y -Ft(This)32 b(c)m(hapter)i(describ)s(es)e(ho)m(w)h(to)h(use)f(the)g -Fl(gnu)g Ft(History)h(Library)e(in)m(teractiv)m(ely)-8 -b(,)37 b(from)c(a)h(user's)150 661 y(standp)s(oin)m(t.)76 +TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)30 b(9:)41 +b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(121)150 +299 y Fo(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150 +572 y Ft(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the) +f Fl(gnu)h Ft(History)g(Library)e(in)m(teractiv)m(ely)-8 +b(,)50 b(from)42 b(a)h(user's)150 681 y(standp)s(oin)m(t.)76 b(It)42 b(should)f(b)s(e)h(considered)g(a)g(user's)g(guide.)76 b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fl(gnu)150 -771 y Ft(History)31 b(Library)f(in)g(other)g(programs,)g(see)h(the)g -Fl(gnu)f Ft(Readline)h(Library)f(Man)m(ual.)150 1044 -y Fr(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)275 -1294 y Ft(When)31 b(the)g(`)p Fs(-o)f(history)p Ft(')g(option)i(to)g -(the)g Fs(set)f Ft(builtin)g(is)g(enabled)h(\(see)g(Section)g(4.3.1)i -([The)d(Set)150 1404 y(Builtin],)h(page)g(51\),)h(the)e(shell)h(pro)m -(vides)f(access)h(to)g(the)f Fq(command)g(history)p Ft(,)h(the)f(list)h -(of)f(commands)150 1514 y(previously)h(t)m(yp)s(ed.)47 -b(The)33 b(v)-5 b(alue)33 b(of)f(the)h Fs(HISTSIZE)e -Ft(shell)h(v)-5 b(ariable)34 b(is)f(used)e(as)i(the)g(n)m(um)m(b)s(er)e -(of)i(com-)150 1623 y(mands)i(to)i(sa)m(v)m(e)h(in)e(a)g(history)h -(list.)58 b(The)36 b(text)h(of)g(the)f(last)h Fs($HISTSIZE)d -Ft(commands)i(\(default)g(500\))150 1733 y(is)h(sa)m(v)m(ed.)61 -b(The)36 b(shell)h(stores)h(eac)m(h)g(command)e(in)h(the)g(history)g -(list)g(prior)f(to)i(parameter)f(and)f(v)-5 b(ari-)150 -1842 y(able)33 b(expansion)g(but)f(after)h(history)f(expansion)h(is)g -(p)s(erformed,)e(sub)5 b(ject)33 b(to)g(the)g(v)-5 b(alues)33 -b(of)g(the)g(shell)150 1952 y(v)-5 b(ariables)31 b Fs(HISTIGNORE)d -Ft(and)h Fs(HISTCONTROL)p Ft(.)275 2093 y(When)g(the)g(shell)h(starts)g +791 y Ft(History)31 b(Library)f(in)g(other)g(programs,)g(see)h(the)g +Fl(gnu)f Ft(Readline)h(Library)f(Man)m(ual.)150 1042 +y Fr(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)150 +1202 y Ft(When)40 b(the)h(`)p Fs(-o)30 b(history)p Ft(')38 +b(option)j(to)g(the)g Fs(set)e Ft(builtin)h(is)h(enabled)f(\(see)h +(Section)g(4.3.1)i([The)d(Set)150 1311 y(Builtin],)32 +b(page)g(51\),)h(the)e(shell)h(pro)m(vides)f(access)h(to)g(the)f +Fq(command)g(history)p Ft(,)h(the)f(list)h(of)f(commands)150 +1421 y(previously)h(t)m(yp)s(ed.)47 b(The)33 b(v)-5 b(alue)33 +b(of)f(the)h Fs(HISTSIZE)e Ft(shell)h(v)-5 b(ariable)34 +b(is)f(used)e(as)i(the)g(n)m(um)m(b)s(er)e(of)i(com-)150 +1531 y(mands)i(to)i(sa)m(v)m(e)h(in)e(a)g(history)h(list.)58 +b(The)36 b(text)h(of)g(the)f(last)h Fs($HISTSIZE)d Ft(commands)i +(\(default)g(500\))150 1640 y(is)h(sa)m(v)m(ed.)61 b(The)36 +b(shell)h(stores)h(eac)m(h)g(command)e(in)h(the)g(history)g(list)g +(prior)f(to)i(parameter)f(and)f(v)-5 b(ari-)150 1750 +y(able)33 b(expansion)g(but)f(after)h(history)f(expansion)h(is)g(p)s +(erformed,)e(sub)5 b(ject)33 b(to)g(the)g(v)-5 b(alues)33 +b(of)g(the)g(shell)150 1859 y(v)-5 b(ariables)31 b Fs(HISTIGNORE)d +Ft(and)h Fs(HISTCONTROL)p Ft(.)275 2007 y(When)g(the)g(shell)h(starts)g (up,)f(the)h(history)f(is)h(initialized)h(from)e(the)h(\014le)f(named)g -(b)m(y)h(the)f Fs(HISTFILE)150 2202 y Ft(v)-5 b(ariable)21 +(b)m(y)h(the)f Fs(HISTFILE)150 2116 y Ft(v)-5 b(ariable)21 b(\(default)h(`)p Fs(~/.bash_history)p Ft('\).)34 b(The)20 b(\014le)h(named)f(b)m(y)h(the)g(v)-5 b(alue)21 b(of)g -Fs(HISTFILE)d Ft(is)j(truncated,)150 2312 y(if)42 b(necessary)-8 +Fs(HISTFILE)d Ft(is)j(truncated,)150 2226 y(if)42 b(necessary)-8 b(,)45 b(to)e(con)m(tain)g(no)f(more)g(than)f(the)h(n)m(um)m(b)s(er)f (of)h(lines)g(sp)s(eci\014ed)f(b)m(y)h(the)g(v)-5 b(alue)42 -b(of)g(the)150 2422 y Fs(HISTFILESIZE)21 b Ft(v)-5 b(ariable.)40 +b(of)g(the)150 2336 y Fs(HISTFILESIZE)21 b Ft(v)-5 b(ariable.)40 b(When)24 b(an)g(in)m(teractiv)m(e)j(shell)e(exits,)h(the)f(last)g -Fs($HISTSIZE)d Ft(lines)j(are)f(copied)150 2531 y(from)29 +Fs($HISTSIZE)d Ft(lines)j(are)f(copied)150 2445 y(from)29 b(the)i(history)e(list)i(to)g(the)f(\014le)g(named)f(b)m(y)h Fs($HISTFILE)p Ft(.)38 b(If)30 b(the)g Fs(histappend)d -Ft(shell)j(option)g(is)g(set)150 2641 y(\(see)22 b(Section)g(4.2)g +Ft(shell)j(option)g(is)g(set)150 2555 y(\(see)22 b(Section)g(4.2)g ([Bash)g(Builtins],)h(page)f(41\),)j(the)c(lines)g(are)h(app)s(ended)d -(to)j(the)f(history)g(\014le,)j(otherwise)150 2750 y(the)32 +(to)j(the)f(history)g(\014le,)j(otherwise)150 2664 y(the)32 b(history)f(\014le)g(is)h(o)m(v)m(erwritten.)45 b(If)31 b Fs(HISTFILE)e Ft(is)j(unset,)f(or)h(if)f(the)h(history)f(\014le)g(is) -h(un)m(writable,)g(the)150 2860 y(history)37 b(is)h(not)f(sa)m(v)m(ed.) +h(un)m(writable,)g(the)150 2774 y(history)37 b(is)h(not)f(sa)m(v)m(ed.) 63 b(After)38 b(sa)m(ving)g(the)f(history)-8 b(,)40 b(the)e(history)f -(\014le)g(is)h(truncated)f(to)h(con)m(tain)h(no)150 2970 +(\014le)g(is)h(truncated)f(to)h(con)m(tain)h(no)150 2883 y(more)31 b(than)f Fs($HISTFILESIZE)c Ft(lines.)41 b(If)30 b Fs(HISTFILESIZE)d Ft(is)k(not)f(set,)h(no)g(truncation)f(is)h(p)s -(erformed.)275 3110 y(If)g(the)h Fs(HISTTIMEFORMAT)d +(erformed.)275 3031 y(If)g(the)h Fs(HISTTIMEFORMAT)d Ft(is)j(set,)h(the)f(time)h(stamp)f(information)g(asso)s(ciated)i(with) -e(eac)m(h)h(history)150 3220 y(en)m(try)d(is)h(written)f(to)h(the)f +e(eac)m(h)h(history)150 3140 y(en)m(try)d(is)h(written)f(to)h(the)f (history)h(\014le,)f(mark)m(ed)h(with)f(the)g(history)g(commen)m(t)h(c) -m(haracter.)43 b(When)30 b(the)150 3329 y(history)22 +m(haracter.)43 b(When)30 b(the)150 3250 y(history)22 b(\014le)h(is)g(read,)h(lines)f(b)s(eginning)e(with)i(the)f(history)h (commen)m(t)g(c)m(haracter)h(follo)m(w)m(ed)h(immediately)150 -3439 y(b)m(y)30 b(a)h(digit)g(are)g(in)m(terpreted)g(as)f(timestamps)h -(for)f(the)h(previous)f(history)g(line.)275 3580 y(The)19 +3360 y(b)m(y)30 b(a)h(digit)g(are)g(in)m(terpreted)g(as)f(timestamps)h +(for)f(the)h(previous)f(history)g(line.)275 3507 y(The)19 b(builtin)h(command)g Fs(fc)g Ft(ma)m(y)h(b)s(e)f(used)f(to)i(list)g (or)g(edit)g(and)e(re-execute)j(a)f(p)s(ortion)f(of)g(the)h(history)150 -3689 y(list.)41 b(The)27 b Fs(history)f Ft(builtin)i(ma)m(y)h(b)s(e)e +3617 y(list.)41 b(The)27 b Fs(history)f Ft(builtin)i(ma)m(y)h(b)s(e)e (used)g(to)i(displa)m(y)g(or)f(mo)s(dify)f(the)h(history)g(list)h(and)f -(manipulate)150 3799 y(the)j(history)g(\014le.)42 b(When)31 +(manipulate)150 3726 y(the)j(history)g(\014le.)42 b(When)31 b(using)f(command-line)h(editing,)h(searc)m(h)f(commands)g(are)g(a)m(v) --5 b(ailable)33 b(in)e(eac)m(h)150 3909 y(editing)45 +-5 b(ailable)33 b(in)e(eac)m(h)150 3836 y(editing)45 b(mo)s(de)g(that)g(pro)m(vide)g(access)h(to)f(the)g(history)f(list)i (\(see)f(Section)h(8.4.2)g([Commands)e(F)-8 b(or)150 -4018 y(History],)31 b(page)h(107\).)275 4159 y(The)47 +3945 y(History],)31 b(page)h(107\).)275 4093 y(The)47 b(shell)i(allo)m(ws)h(con)m(trol)f(o)m(v)m(er)h(whic)m(h)e(commands)g (are)h(sa)m(v)m(ed)g(on)f(the)h(history)f(list.)95 b(The)150 -4269 y Fs(HISTCONTROL)25 b Ft(and)j Fs(HISTIGNORE)e Ft(v)-5 +4202 y Fs(HISTCONTROL)25 b Ft(and)j Fs(HISTIGNORE)e Ft(v)-5 b(ariables)29 b(ma)m(y)h(b)s(e)d(set)j(to)f(cause)g(the)g(shell)f(to)i -(sa)m(v)m(e)g(only)f(a)g(subset)150 4378 y(of)e(the)g(commands)f(en)m +(sa)m(v)m(e)g(only)f(a)g(subset)150 4312 y(of)e(the)g(commands)f(en)m (tered.)40 b(The)26 b Fs(cmdhist)f Ft(shell)i(option,)h(if)f(enabled,)g -(causes)h(the)e(shell)h(to)h(attempt)150 4488 y(to)23 +(causes)h(the)e(shell)h(to)h(attempt)150 4421 y(to)23 b(sa)m(v)m(e)h(eac)m(h)f(line)g(of)f(a)h(m)m(ulti-line)g(command)f(in)g (the)h(same)f(history)g(en)m(try)-8 b(,)25 b(adding)d(semicolons)h -(where)150 4597 y(necessary)37 b(to)f(preserv)m(e)h(syn)m(tactic)h +(where)150 4531 y(necessary)37 b(to)f(preserv)m(e)h(syn)m(tactic)h (correctness.)58 b(The)36 b Fs(lithist)e Ft(shell)i(option)h(causes)g -(the)f(shell)g(to)150 4707 y(sa)m(v)m(e)25 b(the)e(command)h(with)f(em) +(the)f(shell)g(to)150 4641 y(sa)m(v)m(e)25 b(the)e(command)h(with)f(em) m(b)s(edded)f(newlines)h(instead)h(of)f(semicolons.)40 -b(The)23 b Fs(shopt)e Ft(builtin)i(is)h(used)150 4817 +b(The)23 b Fs(shopt)e Ft(builtin)i(is)h(used)150 4750 y(to)31 b(set)g(these)g(options.)41 b(See)31 b(Section)g(4.2)g([Bash)g (Builtins],)g(page)g(41,)h(for)e(a)h(description)f(of)h -Fs(shopt)p Ft(.)150 5090 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)275 -5340 y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)i(builtin)e(commands)g -(whic)m(h)g(manipulate)h(the)f(history)h(list)g(and)f(history)g -(\014le.)p eop end +Fs(shopt)p Ft(.)150 5002 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)150 +5161 y Ft(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g +(whic)m(h)g(manipulate)g(the)h(history)f(list)h(and)f(history)g +(\014le.)150 5340 y Fs(fc)p eop end %%Page: 122 128 TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(fc)870 445 y(fc)47 -b([-e)g Fj(ename)11 b Fs(])46 b([-lnr])g([)p Fj(first)11 -b Fs(])45 b([)p Fj(last)11 b Fs(])870 555 y(fc)47 b(-s)g([)p -Fj(pat)11 b Fs(=)p Fj(rep)g Fs(])45 b([)p Fj(command)11 -b Fs(])630 701 y Ft(Fix)41 b(Command.)68 b(In)39 b(the)i(\014rst)e -(form,)j(a)e(range)h(of)f(commands)g(from)f Fq(\014rst)i -Ft(to)g Fq(last)i Ft(is)630 810 y(selected)35 b(from)e(the)g(history)g -(list.)50 b(Both)34 b Fq(\014rst)h Ft(and)e Fq(last)j -Ft(ma)m(y)e(b)s(e)e(sp)s(eci\014ed)h(as)g(a)h(string)630 -920 y(\(to)26 b(lo)s(cate)h(the)e(most)h(recen)m(t)g(command)e(b)s -(eginning)h(with)g(that)g(string\))h(or)f(as)g(a)g(n)m(um)m(b)s(er)630 -1029 y(\(an)f(index)f(in)m(to)h(the)g(history)g(list,)h(where)e(a)h -(negativ)m(e)i(n)m(um)m(b)s(er)c(is)i(used)f(as)g(an)h(o\013set)g(from) -630 1139 y(the)j(curren)m(t)f(command)h(n)m(um)m(b)s(er\).)39 -b(If)26 b Fq(last)j Ft(is)e(not)g(sp)s(eci\014ed)f(it)h(is)g(set)g(to)h -Fq(\014rst)p Ft(.)39 b(If)26 b Fq(\014rst)i Ft(is)630 -1249 y(not)j(sp)s(eci\014ed)f(it)h(is)g(set)h(to)f(the)g(previous)f -(command)h(for)f(editing)i(and)e Fp(\000)p Ft(16)h(for)g(listing.)630 -1358 y(If)f(the)g(`)p Fs(-l)p Ft(')g(\015ag)h(is)f(giv)m(en,)h(the)g -(commands)e(are)i(listed)g(on)f(standard)f(output.)40 -b(The)30 b(`)p Fs(-n)p Ft(')630 1468 y(\015ag)i(suppresses)f(the)h -(command)g(n)m(um)m(b)s(ers)e(when)i(listing.)46 b(The)32 -b(`)p Fs(-r)p Ft(')g(\015ag)g(rev)m(erses)h(the)630 1577 -y(order)g(of)g(the)h(listing.)50 b(Otherwise,)34 b(the)f(editor)h(giv)m -(en)g(b)m(y)f Fq(ename)39 b Ft(is)33 b(in)m(v)m(ok)m(ed)i(on)e(a)h -(\014le)630 1687 y(con)m(taining)i(those)f(commands.)52 -b(If)33 b Fq(ename)40 b Ft(is)34 b(not)h(giv)m(en,)h(the)f(v)-5 -b(alue)35 b(of)f(the)g(follo)m(wing)630 1797 y(v)-5 b(ariable)33 -b(expansion)e(is)h(used:)42 b Fs(${FCEDIT:-${EDITOR:-vi}})p -Ft(.)d(This)31 b(sa)m(ys)h(to)g(use)g(the)630 1906 y(v)-5 -b(alue)34 b(of)f(the)h Fs(FCEDIT)e Ft(v)-5 b(ariable)34 +b(Reference)g(Man)m(ual)870 299 y Fs(fc)47 b([-e)g Fi(ename)11 +b Fs(])46 b([-lnr])g([)p Fi(first)11 b Fs(])45 b([)p +Fi(last)11 b Fs(])870 408 y(fc)47 b(-s)g([)p Fi(pat)11 +b Fs(=)p Fi(rep)g Fs(])45 b([)p Fi(command)11 b Fs(])630 +539 y Ft(Fix)41 b(Command.)68 b(In)39 b(the)i(\014rst)e(form,)j(a)e +(range)h(of)f(commands)g(from)f Fq(\014rst)i Ft(to)g +Fq(last)i Ft(is)630 648 y(selected)35 b(from)e(the)g(history)g(list.)50 +b(Both)34 b Fq(\014rst)h Ft(and)e Fq(last)j Ft(ma)m(y)e(b)s(e)e(sp)s +(eci\014ed)h(as)g(a)h(string)630 758 y(\(to)26 b(lo)s(cate)h(the)e +(most)h(recen)m(t)g(command)e(b)s(eginning)h(with)g(that)g(string\))h +(or)f(as)g(a)g(n)m(um)m(b)s(er)630 867 y(\(an)f(index)f(in)m(to)h(the)g +(history)g(list,)h(where)e(a)h(negativ)m(e)i(n)m(um)m(b)s(er)c(is)i +(used)f(as)g(an)h(o\013set)g(from)630 977 y(the)j(curren)m(t)f(command) +h(n)m(um)m(b)s(er\).)38 b(If)26 b Fq(last)k Ft(is)c(not)h(sp)s +(eci\014ed)f(it)h(is)g(set)g(to)g Fq(\014rst)r Ft(.)39 +b(If)26 b Fq(\014rst)i Ft(is)630 1087 y(not)j(sp)s(eci\014ed)f(it)h(is) +g(set)h(to)f(the)g(previous)f(command)h(for)f(editing)i(and)e +Fp(\000)p Ft(16)h(for)g(listing.)630 1196 y(If)f(the)g(`)p +Fs(-l)p Ft(')g(\015ag)h(is)f(giv)m(en,)h(the)g(commands)e(are)i(listed) +g(on)f(standard)f(output.)40 b(The)30 b(`)p Fs(-n)p Ft(')630 +1306 y(\015ag)i(suppresses)f(the)h(command)g(n)m(um)m(b)s(ers)e(when)i +(listing.)46 b(The)32 b(`)p Fs(-r)p Ft(')g(\015ag)g(rev)m(erses)h(the) +630 1415 y(order)g(of)g(the)h(listing.)50 b(Otherwise,)34 +b(the)f(editor)h(giv)m(en)g(b)m(y)f Fq(ename)39 b Ft(is)33 +b(in)m(v)m(ok)m(ed)i(on)e(a)h(\014le)630 1525 y(con)m(taining)i(those)f +(commands.)52 b(If)33 b Fq(ename)40 b Ft(is)34 b(not)h(giv)m(en,)h(the) +f(v)-5 b(alue)35 b(of)f(the)g(follo)m(wing)630 1634 y(v)-5 +b(ariable)33 b(expansion)e(is)h(used:)42 b Fs(${FCEDIT:-${EDITOR:-vi}}) +p Ft(.)d(This)31 b(sa)m(ys)h(to)g(use)g(the)630 1744 +y(v)-5 b(alue)34 b(of)f(the)h Fs(FCEDIT)e Ft(v)-5 b(ariable)34 b(if)f(set,)i(or)f(the)f(v)-5 b(alue)34 b(of)g(the)f -Fs(EDITOR)f Ft(v)-5 b(ariable)34 b(if)f(that)630 2016 +Fs(EDITOR)f Ft(v)-5 b(ariable)34 b(if)f(that)630 1854 y(is)g(set,)i(or)e Fs(vi)g Ft(if)g(neither)g(is)g(set.)50 b(When)33 b(editing)h(is)f(complete,)i(the)f(edited)f(commands)630 -2125 y(are)e(ec)m(ho)s(ed)g(and)f(executed.)630 2271 +1963 y(are)e(ec)m(ho)s(ed)g(and)f(executed.)630 2093 y(In)k(the)g(second)g(form,)h Fq(command)j Ft(is)c(re-executed)i(after) f(eac)m(h)g(instance)g(of)f Fq(pat)j Ft(in)d(the)630 -2381 y(selected)e(command)e(is)g(replaced)h(b)m(y)g Fq(rep)p -Ft(.)630 2527 y(A)g(useful)f(alias)i(to)g(use)e(with)h(the)g +2203 y(selected)e(command)e(is)g(replaced)h(b)m(y)g Fq(rep)s +Ft(.)630 2333 y(A)g(useful)f(alias)i(to)g(use)e(with)h(the)g Fs(fc)f Ft(command)h(is)g Fs(r='fc)e(-s')p Ft(,)h(so)h(that)h(t)m -(yping)f(`)p Fs(r)f(cc)p Ft(')630 2637 y(runs)35 b(the)h(last)h +(yping)f(`)p Fs(r)f(cc)p Ft(')630 2443 y(runs)35 b(the)h(last)h (command)f(b)s(eginning)g(with)g Fs(cc)f Ft(and)h(t)m(yping)g(`)p -Fs(r)p Ft(')h(re-executes)h(the)e(last)630 2746 y(command)30 +Fs(r)p Ft(')h(re-executes)h(the)e(last)630 2552 y(command)30 b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(79\).)150 -2929 y Fs(history)870 3075 y(history)46 b([)p Fj(n)11 -b Fs(])870 3185 y(history)46 b(-c)870 3294 y(history)g(-d)h -Fj(offset)870 3404 y Fs(history)f([-anrw])g([)p Fj(filename)11 -b Fs(])870 3513 y(history)46 b(-ps)h Fj(arg)630 3660 +2703 y Fs(history)870 2833 y(history)46 b([)p Fi(n)11 +b Fs(])870 2943 y(history)46 b(-c)870 3052 y(history)g(-d)h +Fi(offset)870 3162 y Fs(history)f([-anrw])g([)p Fi(filename)11 +b Fs(])870 3271 y(history)46 b(-ps)h Fi(arg)630 3402 y Ft(With)26 b(no)g(options,)h(displa)m(y)f(the)g(history)g(list)g (with)f(line)h(n)m(um)m(b)s(ers.)38 b(Lines)26 b(pre\014xed)e(with)630 -3769 y(a)35 b(`)p Fs(*)p Ft(')g(ha)m(v)m(e)h(b)s(een)e(mo)s(di\014ed.) +3511 y(a)35 b(`)p Fs(*)p Ft(')g(ha)m(v)m(e)h(b)s(een)e(mo)s(di\014ed.) 53 b(An)34 b(argumen)m(t)h(of)g Fq(n)f Ft(lists)i(only)f(the)g(last)g -Fq(n)f Ft(lines.)54 b(If)35 b(the)630 3879 y(shell)30 +Fq(n)f Ft(lines.)54 b(If)35 b(the)630 3621 y(shell)30 b(v)-5 b(ariable)31 b Fs(HISTTIMEFORMAT)26 b Ft(is)k(set)h(and)e(not)i (n)m(ull,)f(it)h(is)f(used)f(as)h(a)h(format)f(string)630 -3988 y(for)36 b Fq(strftime)41 b Ft(to)36 b(displa)m(y)g(the)g(time)h +3730 y(for)36 b Fq(strftime)41 b Ft(to)36 b(displa)m(y)g(the)g(time)h (stamp)f(asso)s(ciated)h(with)f(eac)m(h)h(displa)m(y)m(ed)f(history)630 -4098 y(en)m(try)-8 b(.)47 b(No)33 b(in)m(terv)m(ening)g(blank)f(is)g +3840 y(en)m(try)-8 b(.)47 b(No)33 b(in)m(terv)m(ening)g(blank)f(is)g (prin)m(ted)g(b)s(et)m(w)m(een)h(the)g(formatted)f(time)h(stamp)g(and) -630 4208 y(the)e(history)f(line.)630 4354 y(Options,)g(if)h(supplied,)e -(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 4536 +630 3950 y(the)e(history)f(line.)630 4080 y(Options,)g(if)h(supplied,)e +(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 4230 y Fs(-c)384 b Ft(Clear)23 b(the)g(history)g(list.)39 b(This)22 b(ma)m(y)i(b)s(e)e(com)m(bined)h(with)f(the)h(other)h -(options)1110 4646 y(to)31 b(replace)g(the)g(history)f(list)h -(completely)-8 b(.)630 4829 y Fs(-d)30 b Fj(offset)1110 -4938 y Ft(Delete)25 b(the)f(history)f(en)m(try)h(at)g(p)s(osition)f -Fq(o\013set)p Ft(.)39 b Fq(o\013set)27 b Ft(should)22 -b(b)s(e)h(sp)s(eci\014ed)1110 5048 y(as)31 b(it)g(app)s(ears)e(when)h -(the)g(history)g(is)h(displa)m(y)m(ed.)630 5230 y Fs(-a)384 -b Ft(App)s(end)35 b(the)i(new)g(history)g(lines)g(\(history)g(lines)g -(en)m(tered)h(since)f(the)g(b)s(e-)1110 5340 y(ginning)30 -b(of)h(the)f(curren)m(t)g(Bash)h(session\))g(to)g(the)g(history)f -(\014le.)p eop end +(options)1110 4340 y(to)31 b(replace)g(the)g(history)f(list)h +(completely)-8 b(.)630 4491 y Fs(-d)30 b Fi(offset)1110 +4600 y Ft(Delete)25 b(the)f(history)f(en)m(try)g(at)h(p)s(osition)f +Fq(o\013set)r Ft(.)39 b Fq(o\013set)26 b Ft(should)c(b)s(e)h(sp)s +(eci\014ed)1110 4710 y(as)31 b(it)g(app)s(ears)e(when)h(the)g(history)g +(is)h(displa)m(y)m(ed.)630 4861 y Fs(-a)384 b Ft(App)s(end)35 +b(the)i(new)g(history)g(lines)g(\(history)g(lines)g(en)m(tered)h(since) +f(the)g(b)s(e-)1110 4970 y(ginning)30 b(of)h(the)f(curren)m(t)g(Bash)h +(session\))g(to)g(the)g(history)f(\014le.)630 5121 y +Fs(-n)384 b Ft(App)s(end)32 b(the)i(history)f(lines)h(not)g(already)g +(read)g(from)f(the)h(history)f(\014le)h(to)1110 5230 +y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25 +b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110 +5340 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h +(session.)p eop end %%Page: 123 129 TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(9:)41 b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(123)630 -299 y Fs(-n)384 b Ft(App)s(end)32 b(the)i(history)f(lines)h(not)g -(already)g(read)g(from)f(the)h(history)f(\014le)h(to)1110 -408 y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25 -b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110 -518 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h -(session.)630 668 y Fs(-r)384 b Ft(Read)26 b(the)h(curren)m(t)f -(history)g(\014le)g(and)g(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)f -(history)1110 778 y(list.)630 928 y Fs(-w)384 b Ft(W)-8 -b(rite)32 b(out)e(the)h(curren)m(t)f(history)g(to)i(the)e(history)g -(\014le.)630 1078 y Fs(-p)384 b Ft(P)m(erform)31 b(history)f -(substitution)h(on)f(the)h Fq(arg)8 b Ft(s)31 b(and)f(displa)m(y)h(the) -f(result)h(on)1110 1188 y(the)d(standard)f(output,)i(without)f(storing) -g(the)g(results)g(in)g(the)g(history)g(list.)630 1338 -y Fs(-s)384 b Ft(The)30 b Fq(arg)8 b Ft(s)30 b(are)h(added)f(to)h(the)f -(end)g(of)h(the)f(history)h(list)g(as)f(a)h(single)g(en)m(try)-8 -b(.)630 1488 y(When)24 b(an)m(y)h(of)f(the)h(`)p Fs(-w)p -Ft(',)h(`)p Fs(-r)p Ft(',)f(`)p Fs(-a)p Ft(',)h(or)f(`)p -Fs(-n)p Ft(')f(options)g(is)h(used,)g(if)f Fq(\014lename)30 -b Ft(is)24 b(giv)m(en,)j(then)630 1598 y(it)32 b(is)g(used)f(as)h(the)f +299 y Fs(-r)384 b Ft(Read)26 b(the)h(curren)m(t)f(history)g(\014le)g +(and)g(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)f(history)1110 +408 y(list.)630 573 y Fs(-w)384 b Ft(W)-8 b(rite)32 b(out)e(the)h +(curren)m(t)f(history)g(to)i(the)e(history)g(\014le.)630 +739 y Fs(-p)384 b Ft(P)m(erform)31 b(history)f(substitution)h(on)f(the) +h Fq(arg)8 b Ft(s)31 b(and)f(displa)m(y)h(the)f(result)h(on)1110 +848 y(the)d(standard)f(output,)i(without)f(storing)g(the)g(results)g +(in)g(the)g(history)g(list.)630 1013 y Fs(-s)384 b Ft(The)30 +b Fq(arg)8 b Ft(s)30 b(are)h(added)f(to)h(the)f(end)g(of)h(the)f +(history)h(list)g(as)f(a)h(single)g(en)m(try)-8 b(.)630 +1178 y(When)24 b(an)m(y)h(of)f(the)h(`)p Fs(-w)p Ft(',)h(`)p +Fs(-r)p Ft(',)f(`)p Fs(-a)p Ft(',)h(or)f(`)p Fs(-n)p +Ft(')f(options)g(is)h(used,)g(if)f Fq(\014lename)30 b +Ft(is)24 b(giv)m(en,)j(then)630 1288 y(it)32 b(is)g(used)f(as)h(the)f (history)h(\014le.)45 b(If)31 b(not,)h(then)g(the)f(v)-5 b(alue)32 b(of)g(the)g Fs(HISTFILE)d Ft(v)-5 b(ariable)33 -b(is)630 1707 y(used.)150 1951 y Fr(9.3)68 b(History)46 -b(Expansion)275 2190 y Ft(The)35 b(History)h(library)f(pro)m(vides)h(a) -g(history)f(expansion)h(feature)g(that)g(is)g(similar)g(to)g(the)g -(history)150 2300 y(expansion)22 b(pro)m(vided)f(b)m(y)h -Fs(csh)p Ft(.)37 b(This)22 b(section)h(describ)s(es)e(the)h(syn)m(tax)h -(used)e(to)h(manipulate)h(the)f(history)150 2409 y(information.)275 -2539 y(History)31 b(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g -(the)h(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150 -2649 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen) +b(is)630 1397 y(used.)150 1638 y Fr(9.3)68 b(History)46 +b(Expansion)150 1798 y Ft(The)f(History)h(library)e(pro)m(vides)i(a)f +(history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g(the)f +(history)150 1907 y(expansion)g(pro)m(vided)f(b)m(y)h +Fs(csh)p Ft(.)83 b(This)44 b(section)i(describ)s(es)e(the)h(syn)m(tax)h +(used)e(to)i(manipulate)f(the)150 2017 y(history)30 b(information.)275 +2157 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h +(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150 +2266 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen) m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150 -2759 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g -(quic)m(kly)-8 b(.)275 2888 y(History)27 b(expansion)f(tak)m(es)i +2376 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g +(quic)m(kly)-8 b(.)275 2516 y(History)27 b(expansion)f(tak)m(es)i (place)f(in)f(t)m(w)m(o)i(parts.)39 b(The)26 b(\014rst)g(is)g(to)h -(determine)g(whic)m(h)f(line)h(from)f(the)150 2998 y(history)i(list)g +(determine)g(whic)m(h)f(line)h(from)f(the)150 2626 y(history)i(list)g (should)f(b)s(e)g(used)g(during)g(substitution.)39 b(The)27 b(second)h(is)g(to)h(select)g(p)s(ortions)e(of)h(that)h(line)150 -3108 y(for)d(inclusion)f(in)m(to)i(the)f(curren)m(t)f(one.)40 +2735 y(for)d(inclusion)f(in)m(to)i(the)f(curren)m(t)f(one.)40 b(The)25 b(line)h(selected)h(from)f(the)g(history)f(is)h(called)h(the)f -Fq(ev)m(en)m(t)p Ft(,)j(and)150 3217 y(the)21 b(p)s(ortions)g(of)g +Fq(ev)m(en)m(t)p Ft(,)j(and)150 2845 y(the)21 b(p)s(ortions)g(of)g (that)h(line)f(that)h(are)g(acted)g(up)s(on)e(are)h(called)h Fq(w)m(ords)p Ft(.)38 b(V)-8 b(arious)21 b Fq(mo)s(di\014ers)j -Ft(are)e(a)m(v)-5 b(ailable)150 3327 y(to)35 b(manipulate)f(the)g +Ft(are)e(a)m(v)-5 b(ailable)150 2955 y(to)35 b(manipulate)f(the)g (selected)i(w)m(ords.)51 b(The)33 b(line)h(is)g(brok)m(en)g(in)m(to)h -(w)m(ords)e(in)h(the)g(same)h(fashion)e(that)150 3436 +(w)m(ords)e(in)h(the)g(same)h(fashion)e(that)150 3064 y(Bash)i(do)s(es,)h(so)f(that)h(sev)m(eral)g(w)m(ords)e(surrounded)f(b) m(y)i(quotes)g(are)g(considered)g(one)g(w)m(ord.)54 b(History)150 -3546 y(expansions)34 b(are)g(in)m(tro)s(duced)f(b)m(y)h(the)g(app)s +3174 y(expansions)34 b(are)g(in)m(tro)s(duced)f(b)m(y)h(the)g(app)s (earance)g(of)g(the)g(history)g(expansion)g(c)m(haracter,)i(whic)m(h)e -(is)150 3656 y(`)p Fs(!)p Ft(')d(b)m(y)f(default.)41 +(is)150 3283 y(`)p Fs(!)p Ft(')d(b)m(y)f(default.)41 b(Only)29 b(`)p Fs(\\)p Ft(')i(and)f(`)p Fs(')p Ft(')g(ma)m(y)h(b)s(e)f (used)g(to)h(escap)s(e)g(the)f(history)g(expansion)h(c)m(haracter.)275 -3785 y(Sev)m(eral)40 b(shell)g(options)g(settable)h(with)e(the)h +3423 y(Sev)m(eral)40 b(shell)g(options)g(settable)h(with)e(the)h Fs(shopt)e Ft(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)150 -3895 y(page)32 b(41\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s +3533 y(page)32 b(41\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s (eha)m(vior)h(of)g(history)g(expansion.)44 b(If)31 b(the)h -Fs(histverify)d Ft(shell)150 4005 y(option)39 b(is)f(enabled,)i(and)e +Fs(histverify)d Ft(shell)150 3643 y(option)39 b(is)f(enabled,)i(and)e (Readline)g(is)h(b)s(eing)e(used,)j(history)e(substitutions)g(are)g -(not)h(immediately)150 4114 y(passed)30 b(to)h(the)g(shell)g(parser.)40 +(not)h(immediately)150 3752 y(passed)30 b(to)h(the)g(shell)g(parser.)40 b(Instead,)30 b(the)h(expanded)f(line)h(is)f(reloaded)h(in)m(to)h(the)e -(Readline)h(editing)150 4224 y(bu\013er)e(for)i(further)e(mo)s +(Readline)h(editing)150 3862 y(bu\013er)e(for)i(further)e(mo)s (di\014cation.)41 b(If)30 b(Readline)h(is)f(b)s(eing)g(used,)g(and)g -(the)g Fs(histreedit)e Ft(shell)i(option)150 4333 y(is)k(enabled,)h(a)g +(the)g Fs(histreedit)e Ft(shell)i(option)150 3971 y(is)k(enabled,)h(a)g (failed)g(history)f(expansion)g(will)g(b)s(e)g(reloaded)g(in)m(to)h -(the)g(Readline)f(editing)h(bu\013er)e(for)150 4443 y(correction.)74 +(the)g(Readline)f(editing)h(bu\013er)e(for)150 4081 y(correction.)74 b(The)41 b(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f Fs(history)f Ft(builtin)g(command)h(ma)m(y)h(b)s(e)e(used)h(to)g(see)h(what)150 -4553 y(a)c(history)g(expansion)f(will)h(do)f(b)s(efore)h(using)f(it.)63 +4191 y(a)c(history)g(expansion)f(will)h(do)f(b)s(efore)h(using)f(it.)63 b(The)37 b(`)p Fs(-s)p Ft(')g(option)h(to)h(the)f Fs(history)d -Ft(builtin)i(ma)m(y)150 4662 y(b)s(e)c(used)h(to)g(add)g(commands)f(to) +Ft(builtin)i(ma)m(y)150 4300 y(b)s(e)c(used)h(to)g(add)g(commands)f(to) i(the)f(end)g(of)g(the)g(history)g(list)h(without)f(actually)i -(executing)f(them,)150 4772 y(so)j(that)h(they)f(are)g(a)m(v)-5 +(executing)f(them,)150 4410 y(so)j(that)h(they)f(are)g(a)m(v)-5 b(ailable)40 b(for)e(subsequen)m(t)f(recall.)65 b(This)37 -b(is)h(most)g(useful)g(in)f(conjunction)h(with)150 4881 -y(Readline.)275 5011 y(The)33 b(shell)h(allo)m(ws)h(con)m(trol)h(of)e +b(is)h(most)g(useful)g(in)f(conjunction)h(with)150 4519 +y(Readline.)275 4659 y(The)33 b(shell)h(allo)m(ws)h(con)m(trol)h(of)e (the)g(v)-5 b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history) -g(expansion)g(mec)m(h-)150 5121 y(anism)h(with)g(the)g +g(expansion)g(mec)m(h-)150 4769 y(anism)h(with)g(the)g Fs(histchars)d Ft(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e) i(\(see)f(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150 -5230 y(page)32 b(61\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g +4879 y(page)32 b(61\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g (commen)m(t)i(c)m(haracter)f(to)g(mark)f(history)g(timestamps)h(when) -150 5340 y(writing)e(the)h(history)f(\014le.)p eop end +150 4988 y(writing)e(the)h(history)f(\014le.)150 5193 +y Fj(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 5340 +y Ft(An)30 b(ev)m(en)m(t)i(designator)f(is)f(a)h(reference)g(to)g(a)g +(command)f(line)h(en)m(try)f(in)g(the)h(history)f(list.)p +eop end %%Page: 124 130 TeXDict begin 124 129 bop 150 -116 a Ft(124)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fk(9.3.1)63 b(Ev)m(en)m(t)39 -b(Designators)275 545 y Ft(An)30 b(ev)m(en)m(t)h(designator)h(is)e(a)h -(reference)g(to)g(a)f(command)h(line)f(en)m(try)h(in)f(the)h(history)f -(list.)150 709 y Fs(!)432 b Ft(Start)34 b(a)f(history)h(substitution,)g -(except)g(when)f(follo)m(w)m(ed)i(b)m(y)e(a)h(space,)h(tab,)f(the)g -(end)f(of)630 818 y(the)i(line,)g(`)p Fs(=)p Ft(')g(or)f(`)p -Fs(\()p Ft(')h(\(when)e(the)i Fs(extglob)d Ft(shell)j(option)f(is)h -(enabled)f(using)g(the)g Fs(shopt)630 928 y Ft(builtin\).)150 -1090 y Fs(!)p Fj(n)384 b Ft(Refer)30 b(to)i(command)e(line)g -Fq(n)p Ft(.)150 1252 y Fs(!-)p Fj(n)336 b Ft(Refer)30 -b(to)i(the)e(command)g Fq(n)g Ft(lines)h(bac)m(k.)150 -1413 y Fs(!!)384 b Ft(Refer)30 b(to)i(the)e(previous)g(command.)40 -b(This)30 b(is)g(a)h(synon)m(ym)f(for)g(`)p Fs(!-1)p -Ft('.)150 1575 y Fs(!)p Fj(string)144 b Ft(Refer)30 b(to)i(the)e(most)h -(recen)m(t)g(command)f(starting)i(with)e Fq(string)p -Ft(.)150 1737 y Fs(!?)p Fj(string)11 b Fs([?])630 1847 -y Ft(Refer)34 b(to)g(the)f(most)h(recen)m(t)h(command)e(con)m(taining)i -Fq(string)p Ft(.)50 b(The)33 b(trailing)i(`)p Fs(?)p -Ft(')e(ma)m(y)i(b)s(e)630 1956 y(omitted)c(if)g(the)f +b(Reference)g(Man)m(ual)150 299 y Fs(!)432 b Ft(Start)34 +b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y) +e(a)h(space,)h(tab,)f(the)g(end)f(of)630 408 y(the)i(line,)g(`)p +Fs(=)p Ft(')g(or)f(`)p Fs(\()p Ft(')h(\(when)e(the)i +Fs(extglob)d Ft(shell)j(option)f(is)h(enabled)f(using)g(the)g +Fs(shopt)630 518 y Ft(builtin\).)150 680 y Fs(!)p Fi(n)384 +b Ft(Refer)30 b(to)i(command)e(line)g Fq(n)p Ft(.)150 +841 y Fs(!-)p Fi(n)336 b Ft(Refer)30 b(to)i(the)e(command)g +Fq(n)g Ft(lines)h(bac)m(k.)150 1003 y Fs(!!)384 b Ft(Refer)30 +b(to)i(the)e(previous)g(command.)40 b(This)30 b(is)g(a)h(synon)m(ym)f +(for)g(`)p Fs(!-1)p Ft('.)150 1164 y Fs(!)p Fi(string)144 +b Ft(Refer)30 b(to)i(the)e(most)h(recen)m(t)g(command)f(starting)i +(with)e Fq(string)8 b Ft(.)150 1326 y Fs(!?)p Fi(string)j +Fs([?])630 1436 y Ft(Refer)33 b(to)h(the)f(most)g(recen)m(t)h(command)f +(con)m(taining)h Fq(string)8 b Ft(.)48 b(The)33 b(trailing)h(`)p +Fs(?)p Ft(')f(ma)m(y)h(b)s(e)630 1545 y(omitted)d(if)g(the)f Fq(string)38 b Ft(is)31 b(follo)m(w)m(ed)h(immediately)g(b)m(y)e(a)h -(newline.)150 2118 y Fs(^)p Fj(string1)11 b Fs(^)p Fj(string2)g -Fs(^)630 2228 y Ft(Quic)m(k)32 b(Substitution.)44 b(Rep)s(eat)32 -b(the)g(last)h(command,)f(replacing)g Fq(string1)40 b -Ft(with)31 b Fq(string2)p Ft(.)630 2337 y(Equiv)-5 b(alen)m(t)31 -b(to)g Fs(!!:s/)p Fj(string1)11 b Fs(/)p Fj(string2)g -Fs(/)p Ft(.)150 2499 y Fs(!#)384 b Ft(The)30 b(en)m(tire)h(command)f -(line)h(t)m(yp)s(ed)f(so)h(far.)150 2729 y Fk(9.3.2)63 -b(W)-10 b(ord)41 b(Designators)275 2975 y Ft(W)-8 b(ord)35 -b(designators)g(are)g(used)f(to)h(select)h(desired)e(w)m(ords)h(from)f -(the)h(ev)m(en)m(t.)55 b(A)34 b(`)p Fs(:)p Ft(')h(separates)h(the)150 -3085 y(ev)m(en)m(t)41 b(sp)s(eci\014cation)f(from)g(the)f(w)m(ord)g -(designator.)69 b(It)40 b(ma)m(y)g(b)s(e)f(omitted)i(if)e(the)h(w)m -(ord)f(designator)150 3194 y(b)s(egins)33 b(with)h(a)h(`)p -Fs(^)p Ft(',)g(`)p Fs($)p Ft(',)g(`)p Fs(*)p Ft(',)h(`)p -Fs(-)p Ft(',)f(or)f(`)p Fs(\045)p Ft('.)52 b(W)-8 b(ords)35 -b(are)f(n)m(um)m(b)s(ered)f(from)g(the)i(b)s(eginning)e(of)h(the)g -(line,)150 3304 y(with)39 b(the)h(\014rst)f(w)m(ord)g(b)s(eing)g -(denoted)h(b)m(y)g(0)g(\(zero\).)70 b(W)-8 b(ords)39 -b(are)h(inserted)g(in)m(to)g(the)g(curren)m(t)g(line)150 -3413 y(separated)31 b(b)m(y)f(single)h(spaces.)275 3550 -y(F)-8 b(or)31 b(example,)150 3714 y Fs(!!)384 b Ft(designates)37 -b(the)f(preceding)g(command.)57 b(When)35 b(y)m(ou)i(t)m(yp)s(e)f -(this,)h(the)f(preceding)g(com-)630 3823 y(mand)30 b(is)g(rep)s(eated)g -(in)g(toto.)150 3985 y Fs(!!:$)288 b Ft(designates)23 -b(the)g(last)g(argumen)m(t)g(of)f(the)h(preceding)f(command.)38 -b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 4095 y(to)31 -b Fs(!$)p Ft(.)150 4257 y Fs(!fi:2)240 b Ft(designates)30 -b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f(recen)m(t)i(command)e -(starting)h(with)f(the)630 4366 y(letters)j Fs(fi)p Ft(.)275 -4529 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150 -4692 y Fs(0)g(\(zero\))114 b Ft(The)30 b Fs(0)p Ft(th)g(w)m(ord.)40 -b(F)-8 b(or)31 b(man)m(y)g(applications,)h(this)e(is)g(the)h(command)f -(w)m(ord.)150 4854 y Fj(n)432 b Ft(The)30 b Fq(n)p Ft(th)g(w)m(ord.)150 -5016 y Fs(^)432 b Ft(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m -(ord)g(1.)150 5178 y Fs($)432 b Ft(The)30 b(last)h(argumen)m(t.)150 -5340 y Fs(\045)432 b Ft(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h -(most)g(recen)m(t)g(`)p Fs(?)p Fj(string)11 b Fs(?)p -Ft(')28 b(searc)m(h.)p eop end +(newline.)150 1707 y Fs(^)p Fi(string1)11 b Fs(^)p Fi(string2)g +Fs(^)630 1816 y Ft(Quic)m(k)31 b(Substitution.)43 b(Rep)s(eat)31 +b(the)g(last)h(command,)g(replacing)f Fq(string1)39 b +Ft(with)31 b Fq(string2)7 b Ft(.)630 1926 y(Equiv)-5 +b(alen)m(t)31 b(to)g Fs(!!:s/)p Fi(string1)11 b Fs(/)p +Fi(string2)g Fs(/)p Ft(.)150 2088 y Fs(!#)384 b Ft(The)30 +b(en)m(tire)h(command)f(line)h(t)m(yp)s(ed)f(so)h(far.)150 +2289 y Fj(9.3.2)63 b(W)-10 b(ord)41 b(Designators)150 +2436 y Ft(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h +(desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41 b(A)27 +b(`)p Fs(:)p Ft(')g(separates)h(the)f(ev)m(en)m(t)150 +2546 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61 +b(It)37 b(ma)m(y)h(b)s(e)e(omitted)i(if)e(the)h(w)m(ord)g(designator)g +(b)s(egins)150 2655 y(with)30 b(a)g(`)p Fs(^)p Ft(',)g(`)p +Fs($)p Ft(',)g(`)p Fs(*)p Ft(',)h(`)p Fs(-)p Ft(',)f(or)g(`)p +Fs(\045)p Ft('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i +(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)150 +2765 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).) +41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f +(line)g(separated)h(b)m(y)150 2874 y(single)h(spaces.)275 +3011 y(F)-8 b(or)31 b(example,)150 3174 y Fs(!!)384 b +Ft(designates)37 b(the)f(preceding)g(command.)57 b(When)35 +b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630 +3283 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 3445 +y Fs(!!:$)288 b Ft(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the) +h(preceding)f(command.)38 b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 +3555 y(to)31 b Fs(!$)p Ft(.)150 3716 y Fs(!fi:2)240 b +Ft(designates)30 b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f +(recen)m(t)i(command)e(starting)h(with)f(the)630 3826 +y(letters)j Fs(fi)p Ft(.)275 3988 y(Here)e(are)h(the)g(w)m(ord)f +(designators:)150 4151 y Fs(0)g(\(zero\))114 b Ft(The)30 +b Fs(0)p Ft(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h +(this)e(is)g(the)h(command)f(w)m(ord.)150 4313 y Fi(n)432 +b Ft(The)30 b Fq(n)p Ft(th)g(w)m(ord.)150 4474 y Fs(^)432 +b Ft(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150 +4636 y Fs($)432 b Ft(The)30 b(last)h(argumen)m(t.)150 +4798 y Fs(\045)432 b Ft(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h +(most)g(recen)m(t)g(`)p Fs(?)p Fi(string)11 b Fs(?)p +Ft(')28 b(searc)m(h.)150 4959 y Fi(x)11 b Fs(-)p Fi(y)325 +b Ft(A)30 b(range)h(of)g(w)m(ords;)f(`)p Fs(-)p Fi(y)11 +b Ft(')30 b(abbreviates)h(`)p Fs(0-)p Fi(y)11 b Ft('.)150 +5121 y Fs(*)432 b Ft(All)28 b(of)g(the)g(w)m(ords,)g(except)h(the)e +Fs(0)p Ft(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p +Fs(1-$)p Ft('.)39 b(It)28 b(is)g(not)g(an)f(error)630 +5230 y(to)j(use)g(`)p Fs(*)p Ft(')f(if)h(there)g(is)g(just)f(one)h(w)m +(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h +(returned)e(in)630 5340 y(that)j(case.)p eop end %%Page: 125 131 TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(9:)41 b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(125)150 -299 y Fj(x)p Fs(-)p Fj(y)336 b Ft(A)30 b(range)h(of)g(w)m(ords;)f(`)p -Fs(-)p Fj(y)11 b Ft(')30 b(abbreviates)h(`)p Fs(0-)p -Fj(y)11 b Ft('.)150 458 y Fs(*)432 b Ft(All)28 b(of)g(the)g(w)m(ords,)g -(except)h(the)e Fs(0)p Ft(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for) -h(`)p Fs(1-$)p Ft('.)39 b(It)28 b(is)g(not)g(an)f(error)630 -568 y(to)j(use)g(`)p Fs(*)p Ft(')f(if)h(there)g(is)g(just)f(one)h(w)m -(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h -(returned)e(in)630 677 y(that)j(case.)150 837 y Fj(x)11 -b Fs(*)373 b Ft(Abbreviates)31 b(`)p Fj(x)p Fs(-$)p Ft(')150 -996 y Fj(x)p Fs(-)384 b Ft(Abbreviates)31 b(`)p Fj(x)p -Fs(-$)p Ft(')f(lik)m(e)h(`)p Fj(x)11 b Fs(*)p Ft(',)31 -b(but)e(omits)i(the)g(last)g(w)m(ord.)275 1156 y(If)i(a)h(w)m(ord)g -(designator)g(is)g(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s -(eci\014cation,)h(the)e(previous)f(command)150 1265 y(is)d(used)g(as)h -(the)f(ev)m(en)m(t.)150 1489 y Fk(9.3.3)63 b(Mo)s(di\014ers)275 -1733 y Ft(After)20 b(the)h(optional)h(w)m(ord)f(designator,)i(y)m(ou)e -(can)g(add)f(a)h(sequence)g(of)g(one)g(or)g(more)g(of)g(the)f(follo)m -(wing)150 1843 y(mo)s(di\014ers,)29 b(eac)m(h)j(preceded)e(b)m(y)g(a)h -(`)p Fs(:)p Ft('.)150 2002 y Fs(h)432 b Ft(Remo)m(v)m(e)32 -b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the) -h(head.)150 2162 y Fs(t)432 b Ft(Remo)m(v)m(e)32 b(all)f(leading)h -(pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150 -2321 y Fs(r)432 b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g -(the)h(form)f(`)p Fs(.)p Fj(suffix)11 b Ft(',)28 b(lea)m(ving)33 -b(the)d(basename.)150 2481 y Fs(e)432 b Ft(Remo)m(v)m(e)32 -b(all)f(but)f(the)h(trailing)g(su\016x.)150 2640 y Fs(p)432 -b Ft(Prin)m(t)30 b(the)h(new)f(command)g(but)g(do)g(not)g(execute)i -(it.)150 2800 y Fs(q)432 b Ft(Quote)31 b(the)f(substituted)g(w)m(ords,) -g(escaping)h(further)e(substitutions.)150 2959 y Fs(x)432 -b Ft(Quote)32 b(the)f(substituted)g(w)m(ords)f(as)i(with)f(`)p -Fs(q)p Ft(',)h(but)e(break)h(in)m(to)i(w)m(ords)d(at)i(spaces,)h(tabs,) -630 3068 y(and)d(newlines.)150 3228 y Fs(s/)p Fj(old)11 -b Fs(/)p Fj(new)g Fs(/)630 3337 y Ft(Substitute)32 b -Fq(new)40 b Ft(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f -Fq(old)37 b Ft(in)32 b(the)h(ev)m(en)m(t)h(line.)48 b(An)m(y)32 -b(delimiter)630 3447 y(ma)m(y)25 b(b)s(e)g(used)f(in)g(place)i(of)f(`)p -Fs(/)p Ft('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s(e)e(quoted)h(in)f -Fq(old)29 b Ft(and)24 b Fq(new)32 b Ft(with)25 b(a)630 -3557 y(single)k(bac)m(kslash.)40 b(If)28 b(`)p Fs(&)p -Ft(')g(app)s(ears)g(in)f Fq(new)p Ft(,)i(it)f(is)h(replaced)f(b)m(y)g -Fq(old)p Ft(.)40 b(A)28 b(single)h(bac)m(kslash)630 3666 -y(will)35 b(quote)g(the)g(`)p Fs(&)p Ft('.)54 b(The)34 -b(\014nal)g(delimiter)i(is)e(optional)i(if)f(it)g(is)f(the)h(last)h(c)m -(haracter)g(on)630 3776 y(the)31 b(input)e(line.)150 -3935 y Fs(&)432 b Ft(Rep)s(eat)31 b(the)f(previous)g(substitution.)150 -4095 y Fs(g)150 4204 y(a)432 b Ft(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f -(applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66 -b(Used)39 b(in)f(conjunction)630 4314 y(with)30 b(`)p -Fs(s)p Ft(',)h(as)f(in)h Fs(gs/)p Fj(old)11 b Fs(/)p -Fj(new)g Fs(/)p Ft(,)26 b(or)k(with)h(`)p Fs(&)p Ft('.)150 -4473 y Fs(G)432 b Ft(Apply)30 b(the)g(follo)m(wing)i(`)p -Fs(s)p Ft(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g(the) -g(ev)m(en)m(t.)p eop end +299 y Fi(x)11 b Fs(*)373 b Ft(Abbreviates)31 b(`)p Fi(x)11 +b Fs(-$)p Ft(')150 458 y Fi(x)g Fs(-)373 b Ft(Abbreviates)31 +b(`)p Fi(x)11 b Fs(-$)p Ft(')29 b(lik)m(e)j(`)p Fi(x)11 +b Fs(*)p Ft(',)30 b(but)g(omits)h(the)f(last)h(w)m(ord.)275 +618 y(If)i(a)h(w)m(ord)g(designator)g(is)g(supplied)f(without)h(an)g +(ev)m(en)m(t)h(sp)s(eci\014cation,)h(the)e(previous)f(command)150 +727 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150 927 y Fj(9.3.3)63 +b(Mo)s(di\014ers)150 1073 y Ft(After)29 b(the)g(optional)g(w)m(ord)g +(designator,)g(y)m(ou)g(can)g(add)f(a)h(sequence)g(of)g(one)g(or)f +(more)h(of)g(the)f(follo)m(wing)150 1183 y(mo)s(di\014ers,)h(eac)m(h)j +(preceded)e(b)m(y)g(a)h(`)p Fs(:)p Ft('.)150 1342 y Fs(h)432 +b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g +(lea)m(ving)h(only)e(the)h(head.)150 1502 y Fs(t)432 +b Ft(Remo)m(v)m(e)32 b(all)f(leading)h(pathname)e(comp)s(onen)m(ts,)h +(lea)m(ving)h(the)e(tail.)150 1661 y Fs(r)432 b Ft(Remo)m(v)m(e)32 +b(a)f(trailing)g(su\016x)f(of)g(the)h(form)f(`)p Fs(.)p +Fi(suffix)11 b Ft(',)28 b(lea)m(ving)33 b(the)d(basename.)150 +1821 y Fs(e)432 b Ft(Remo)m(v)m(e)32 b(all)f(but)f(the)h(trailing)g +(su\016x.)150 1980 y Fs(p)432 b Ft(Prin)m(t)30 b(the)h(new)f(command)g +(but)g(do)g(not)g(execute)i(it.)150 2139 y Fs(q)432 b +Ft(Quote)31 b(the)f(substituted)g(w)m(ords,)g(escaping)h(further)e +(substitutions.)150 2299 y Fs(x)432 b Ft(Quote)32 b(the)f(substituted)g +(w)m(ords)f(as)i(with)f(`)p Fs(q)p Ft(',)h(but)e(break)h(in)m(to)i(w)m +(ords)d(at)i(spaces,)h(tabs,)630 2408 y(and)d(newlines.)150 +2568 y Fs(s/)p Fi(old)11 b Fs(/)p Fi(new)g Fs(/)630 2677 +y Ft(Substitute)32 b Fq(new)40 b Ft(for)32 b(the)h(\014rst)f(o)s +(ccurrence)h(of)f Fq(old)37 b Ft(in)32 b(the)h(ev)m(en)m(t)h(line.)48 +b(An)m(y)32 b(delimiter)630 2787 y(ma)m(y)25 b(b)s(e)g(used)f(in)g +(place)i(of)f(`)p Fs(/)p Ft('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s +(e)e(quoted)h(in)f Fq(old)29 b Ft(and)24 b Fq(new)32 +b Ft(with)25 b(a)630 2897 y(single)j(bac)m(kslash.)40 +b(If)27 b(`)p Fs(&)p Ft(')g(app)s(ears)g(in)g Fq(new)8 +b Ft(,)27 b(it)h(is)f(replaced)h(b)m(y)f Fq(old)t Ft(.)39 +b(A)27 b(single)h(bac)m(kslash)630 3006 y(will)35 b(quote)g(the)g(`)p +Fs(&)p Ft('.)54 b(The)34 b(\014nal)g(delimiter)i(is)e(optional)i(if)f +(it)g(is)f(the)h(last)h(c)m(haracter)g(on)630 3116 y(the)31 +b(input)e(line.)150 3275 y Fs(&)432 b Ft(Rep)s(eat)31 +b(the)f(previous)g(substitution.)150 3435 y Fs(g)150 +3544 y(a)432 b Ft(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f(applied)h(o)m(v) +m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66 b(Used)39 +b(in)f(conjunction)630 3654 y(with)30 b(`)p Fs(s)p Ft(',)h(as)f(in)h +Fs(gs/)p Fi(old)11 b Fs(/)p Fi(new)g Fs(/)p Ft(,)26 b(or)k(with)h(`)p +Fs(&)p Ft('.)150 3813 y Fs(G)432 b Ft(Apply)30 b(the)g(follo)m(wing)i +(`)p Fs(s)p Ft(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g +(the)g(ev)m(en)m(t.)p eop end %%Page: 126 132 -TeXDict begin 126 131 bop 150 -116 a Ft(126)2527 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +TeXDict begin 126 131 bop eop end %%Page: 127 133 TeXDict begin 127 132 bop 150 -116 a Ft(Chapter)30 b(10:)41 b(Installing)31 b(Bash)2356 b(127)150 299 y Fo(10)80 -b(Installing)52 b(Bash)275 535 y Ft(This)39 b(c)m(hapter)i(pro)m(vides) -f(basic)g(instructions)g(for)g(installing)h(Bash)f(on)g(the)h(v)-5 -b(arious)40 b(supp)s(orted)150 645 y(platforms.)58 b(The)36 -b(distribution)g(supp)s(orts)e(the)j Fl(gnu)f Ft(op)s(erating)g -(systems,)j(nearly)d(ev)m(ery)h(v)m(ersion)g(of)150 754 -y(Unix,)g(and)e(sev)m(eral)i(non-Unix)f(systems)g(suc)m(h)f(as)h(BeOS)g -(and)f(In)m(terix.)57 b(Other)35 b(indep)s(enden)m(t)g(p)s(orts)150 -864 y(exist)c(for)f Fl(ms-dos)p Ft(,)g Fl(os/2)p Ft(,)g(and)g(Windo)m -(ws)h(platforms.)150 1123 y Fr(10.1)68 b(Basic)45 b(Installation)275 -1367 y Ft(These)30 b(are)g(installation)j(instructions)d(for)g(Bash.) -275 1503 y(The)f(simplest)i(w)m(a)m(y)g(to)g(compile)h(Bash)e(is:)199 -1638 y(1.)61 b Fs(cd)38 b Ft(to)h(the)f(directory)h(con)m(taining)h -(the)f(source)f(co)s(de)h(and)f(t)m(yp)s(e)g(`)p Fs(./configure)p -Ft(')e(to)j(con\014gure)330 1747 y(Bash)c(for)f(y)m(our)h(system.)54 -b(If)34 b(y)m(ou're)h(using)f Fs(csh)g Ft(on)g(an)h(old)g(v)m(ersion)g -(of)g(System)f(V,)h(y)m(ou)g(migh)m(t)330 1857 y(need)21 -b(to)g(t)m(yp)s(e)g(`)p Fs(sh)30 b(./configure)p Ft(')18 -b(instead)j(to)g(prev)m(en)m(t)h Fs(csh)e Ft(from)g(trying)h(to)g -(execute)h Fs(configure)330 1966 y Ft(itself.)330 2101 -y(Running)30 b Fs(configure)f Ft(tak)m(es)k(some)e(time.)45 -b(While)32 b(running,)e(it)i(prin)m(ts)f(messages)h(telling)h(whic)m(h) -330 2211 y(features)e(it)g(is)f(c)m(hec)m(king)i(for.)199 -2346 y(2.)61 b(T)m(yp)s(e)30 b(`)p Fs(make)p Ft(')g(to)h(compile)g -(Bash)g(and)e(build)h(the)g Fs(bashbug)f Ft(bug)g(rep)s(orting)h -(script.)199 2481 y(3.)61 b(Optionally)-8 b(,)32 b(t)m(yp)s(e)e(`)p -Fs(make)g(tests)p Ft(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199 -2615 y(4.)61 b(T)m(yp)s(e)36 b(`)p Fs(make)29 b(install)p +b(Installing)52 b(Bash)150 556 y Ft(This)31 b(c)m(hapter)h(pro)m(vides) +g(basic)g(instructions)f(for)g(installing)i(Bash)f(on)f(the)h(v)-5 +b(arious)31 b(supp)s(orted)f(plat-)150 665 y(forms.)40 +b(The)28 b(distribution)h(supp)s(orts)e(the)j Fl(gnu)f +Ft(op)s(erating)h(systems,)f(nearly)h(ev)m(ery)g(v)m(ersion)f(of)h +(Unix,)150 775 y(and)d(sev)m(eral)j(non-Unix)d(systems)h(suc)m(h)g(as)g +(BeOS)g(and)f(In)m(terix.)40 b(Other)28 b(indep)s(enden)m(t)e(p)s(orts) +h(exist)i(for)150 884 y Fl(ms-dos)p Ft(,)h Fl(os/2)p +Ft(,)g(and)g(Windo)m(ws)g(platforms.)150 1128 y Fr(10.1)68 +b(Basic)45 b(Installation)150 1288 y Ft(These)30 b(are)h(installation)h +(instructions)e(for)h(Bash.)275 1430 y(The)e(simplest)i(w)m(a)m(y)g(to) +g(compile)h(Bash)e(is:)199 1572 y(1.)61 b Fs(cd)38 b +Ft(to)h(the)f(directory)h(con)m(taining)h(the)f(source)f(co)s(de)h(and) +f(t)m(yp)s(e)g(`)p Fs(./configure)p Ft(')e(to)j(con\014gure)330 +1681 y(Bash)c(for)f(y)m(our)h(system.)54 b(If)34 b(y)m(ou're)h(using)f +Fs(csh)g Ft(on)g(an)h(old)g(v)m(ersion)g(of)g(System)f(V,)h(y)m(ou)g +(migh)m(t)330 1791 y(need)21 b(to)g(t)m(yp)s(e)g(`)p +Fs(sh)30 b(./configure)p Ft(')18 b(instead)j(to)g(prev)m(en)m(t)h +Fs(csh)e Ft(from)g(trying)h(to)g(execute)h Fs(configure)330 +1901 y Ft(itself.)330 2039 y(Running)30 b Fs(configure)f +Ft(tak)m(es)k(some)e(time.)45 b(While)32 b(running,)e(it)i(prin)m(ts)f +(messages)h(telling)h(whic)m(h)330 2149 y(features)e(it)g(is)f(c)m(hec) +m(king)i(for.)199 2287 y(2.)61 b(T)m(yp)s(e)30 b(`)p +Fs(make)p Ft(')g(to)h(compile)g(Bash)g(and)e(build)h(the)g +Fs(bashbug)f Ft(bug)g(rep)s(orting)h(script.)199 2425 +y(3.)61 b(Optionally)-8 b(,)32 b(t)m(yp)s(e)e(`)p Fs(make)g(tests)p +Ft(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199 2563 +y(4.)61 b(T)m(yp)s(e)36 b(`)p Fs(make)29 b(install)p Ft(')35 b(to)i(install)h Fs(bash)d Ft(and)h Fs(bashbug)p Ft(.)57 b(This)35 b(will)i(also)h(install)f(the)g(man)m(ual)330 -2725 y(pages)31 b(and)f(Info)g(\014le.)275 2885 y(The)20 +2673 y(pages)31 b(and)f(Info)g(\014le.)275 2844 y(The)20 b Fs(configure)f Ft(shell)i(script)g(attempts)h(to)g(guess)f(correct)i (v)-5 b(alues)21 b(for)g(v)-5 b(arious)21 b(system-dep)s(enden)m(t)150 -2995 y(v)-5 b(ariables)44 b(used)f(during)g(compilation.)82 +2953 y(v)-5 b(ariables)44 b(used)f(during)g(compilation.)82 b(It)43 b(uses)h(those)g(v)-5 b(alues)44 b(to)g(create)h(a)g(`)p -Fs(Makefile)p Ft(')c(in)j(eac)m(h)150 3104 y(directory)25 +Fs(Makefile)p Ft(')c(in)j(eac)m(h)150 3063 y(directory)25 b(of)g(the)g(pac)m(k)-5 b(age)27 b(\(the)e(top)g(directory)-8 b(,)27 b(the)e(`)p Fs(builtins)p Ft(',)f(`)p Fs(doc)p Ft(',)i(and)e(`)p Fs(support)p Ft(')g(directories,)150 -3214 y(eac)m(h)32 b(directory)f(under)d(`)p Fs(lib)p +3172 y(eac)m(h)32 b(directory)f(under)d(`)p Fs(lib)p Ft(',)j(and)f(sev)m(eral)h(others\).)42 b(It)30 b(also)i(creates)f(a)g (`)p Fs(config.h)p Ft(')e(\014le)h(con)m(taining)150 -3324 y(system-dep)s(enden)m(t)h(de\014nitions.)44 b(Finally)-8 +3282 y(system-dep)s(enden)m(t)h(de\014nitions.)44 b(Finally)-8 b(,)34 b(it)e(creates)h(a)f(shell)g(script)f(named)g -Fs(config.status)d Ft(that)150 3433 y(y)m(ou)k(can)g(run)e(in)h(the)g +Fs(config.status)d Ft(that)150 3392 y(y)m(ou)k(can)g(run)e(in)h(the)g (future)g(to)h(recreate)h(the)f(curren)m(t)f(con\014guration,)h(a)g -(\014le)g(`)p Fs(config.cache)p Ft(')c(that)150 3543 +(\014le)g(`)p Fs(config.cache)p Ft(')c(that)150 3501 y(sa)m(v)m(es)35 b(the)f(results)f(of)h(its)g(tests)h(to)f(sp)s(eed)f (up)g(recon\014guring,)h(and)f(a)h(\014le)g(`)p Fs(config.log)p -Ft(')d(con)m(taining)150 3652 y(compiler)25 b(output)g(\(useful)f +Ft(')d(con)m(taining)150 3611 y(compiler)25 b(output)g(\(useful)f (mainly)h(for)g(debugging)f Fs(configure)p Ft(\).)37 b(If)24 b(at)i(some)f(p)s(oin)m(t)g(`)p Fs(config.cache)p -Ft(')150 3762 y(con)m(tains)32 b(results)e(y)m(ou)g(don't)h(w)m(an)m(t) +Ft(')150 3720 y(con)m(tains)32 b(results)e(y)m(ou)g(don't)h(w)m(an)m(t) g(to)g(k)m(eep,)g(y)m(ou)g(ma)m(y)g(remo)m(v)m(e)h(or)e(edit)h(it.)275 -3897 y(T)-8 b(o)37 b(\014nd)f(out)i(more)f(ab)s(out)h(the)f(options)h +3862 y(T)-8 b(o)37 b(\014nd)f(out)i(more)f(ab)s(out)h(the)f(options)h (and)f(argumen)m(ts)g(that)h(the)g Fs(configure)d Ft(script)i(under-) -150 4007 y(stands,)30 b(t)m(yp)s(e)390 4142 y Fs(bash-2.04$)45 -b(./configure)g(--help)150 4277 y Ft(at)31 b(the)g(Bash)f(prompt)g(in)g -(y)m(our)g(Bash)h(source)f(directory)-8 b(.)275 4412 +150 3972 y(stands,)30 b(t)m(yp)s(e)390 4114 y Fs(bash-2.04$)45 +b(./configure)g(--help)150 4256 y Ft(at)31 b(the)g(Bash)f(prompt)g(in)g +(y)m(our)g(Bash)h(source)f(directory)-8 b(.)275 4398 y(If)53 b(y)m(ou)h(need)f(to)i(do)e(un)m(usual)g(things)g(to)i(compile) g(Bash,)k(please)c(try)e(to)i(\014gure)e(out)h(ho)m(w)150 -4522 y Fs(configure)47 b Ft(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h +4508 y Fs(configure)47 b Ft(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h (to)h(do)e(them,)55 b(and)49 b(mail)h(di\013s)f(or)h(instructions)f(to) -150 4631 y Fs(bash-maintainers@gnu.org)24 b Ft(so)30 +150 4617 y Fs(bash-maintainers@gnu.org)24 b Ft(so)30 b(they)h(can)g(b)s(e)e(considered)i(for)f(the)g(next)h(release.)275 -4766 y(The)24 b(\014le)i(`)p Fs(configure.in)p Ft(')c(is)k(used)e(to)j +4760 y(The)24 b(\014le)i(`)p Fs(configure.in)p Ft(')c(is)k(used)e(to)j (create)g Fs(configure)22 b Ft(b)m(y)k(a)g(program)f(called)h(Auto)s -(conf.)39 b(Y)-8 b(ou)150 4876 y(only)31 b(need)f(`)p +(conf.)39 b(Y)-8 b(ou)150 4869 y(only)31 b(need)f(`)p Fs(configure.in)p Ft(')d(if)k(y)m(ou)f(w)m(an)m(t)i(to)f(c)m(hange)g (it)g(or)f(regenerate)i Fs(configure)c Ft(using)i(a)h(new)m(er)150 -4986 y(v)m(ersion)25 b(of)f(Auto)s(conf.)39 b(If)24 b(y)m(ou)h(do)f +4979 y(v)m(ersion)25 b(of)f(Auto)s(conf.)39 b(If)24 b(y)m(ou)h(do)f (this,)i(mak)m(e)f(sure)f(y)m(ou)h(are)f(using)g(Auto)s(conf)h(v)m (ersion)f(2.50)i(or)f(new)m(er.)275 5121 y(Y)-8 b(ou)29 b(can)f(remo)m(v)m(e)i(the)f(program)g(binaries)f(and)g(ob)5 @@ -13558,410 +13535,413 @@ Fs(configure)e Ft(created)j(\(so)g(y)m(ou)g(can)f(compile)150 %%Page: 128 134 TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31 b(Reference)g(Man)m(ual)150 299 y Fr(10.2)68 b(Compilers)46 -b(and)f(Options)275 560 y Ft(Some)40 b(systems)g(require)f(un)m(usual)g -(options)h(for)g(compilation)i(or)e(linking)g(that)g(the)g -Fs(configure)150 669 y Ft(script)30 b(do)s(es)h(not)g(kno)m(w)f(ab)s -(out.)41 b(Y)-8 b(ou)31 b(can)g(giv)m(e)h Fs(configure)c -Ft(initial)k(v)-5 b(alues)31 b(for)f(v)-5 b(ariables)31 -b(b)m(y)g(setting)150 779 y(them)21 b(in)f(the)h(en)m(vironmen)m(t.)38 -b(Using)21 b(a)g(Bourne-compatible)h(shell,)h(y)m(ou)e(can)g(do)f(that) -i(on)e(the)h(command)150 888 y(line)31 b(lik)m(e)g(this:)390 -1039 y Fs(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g(./configure)275 -1191 y Ft(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f +b(and)f(Options)150 458 y Ft(Some)28 b(systems)h(require)f(un)m(usual)f +(options)i(for)f(compilation)i(or)f(linking)f(that)h(the)g +Fs(configure)d Ft(script)150 568 y(do)s(es)32 b(not)g(kno)m(w)g(ab)s +(out.)44 b(Y)-8 b(ou)33 b(can)f(giv)m(e)h Fs(configure)d +Ft(initial)j(v)-5 b(alues)32 b(for)g(v)-5 b(ariables)32 +b(b)m(y)g(setting)h(them)150 677 y(in)k(the)g(en)m(vironmen)m(t.)62 +b(Using)38 b(a)f(Bourne-compatible)i(shell,)g(y)m(ou)f(can)g(do)f(that) +h(on)f(the)g(command)150 787 y(line)31 b(lik)m(e)g(this:)390 +920 y Fs(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g(./configure)275 +1053 y Ft(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f Fs(env)e Ft(program,)h(y)m(ou)h(can)g(do)f(it)h(lik)m(e)h(this:)390 -1342 y Fs(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42 -b(LDFLAGS=-s)j(./configure)275 1493 y Ft(The)29 b(con\014guration)i +1186 y Fs(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42 +b(LDFLAGS=-s)j(./configure)275 1318 y Ft(The)29 b(con\014guration)i (pro)s(cess)f(uses)g(GCC)g(to)h(build)e(Bash)i(if)f(it)h(is)g(a)m(v)-5 -b(ailable.)150 1792 y Fr(10.3)68 b(Compiling)46 b(F)-11 -b(or)45 b(Multiple)g(Arc)l(hitectures)275 2052 y Ft(Y)-8 -b(ou)28 b(can)h(compile)g(Bash)g(for)f(more)g(than)g(one)h(kind)e(of)i -(computer)f(at)h(the)g(same)f(time,)i(b)m(y)e(placing)150 -2162 y(the)39 b(ob)5 b(ject)39 b(\014les)g(for)f(eac)m(h)i(arc)m -(hitecture)g(in)e(their)h(o)m(wn)f(directory)-8 b(.)67 -b(T)-8 b(o)39 b(do)f(this,)j(y)m(ou)e(m)m(ust)f(use)h(a)150 -2271 y(v)m(ersion)33 b(of)g Fs(make)f Ft(that)i(supp)s(orts)d(the)i -Fs(VPATH)e Ft(v)-5 b(ariable,)35 b(suc)m(h)d(as)i(GNU)f -Fs(make)p Ft(.)47 b Fs(cd)33 b Ft(to)g(the)g(directory)150 -2381 y(where)23 b(y)m(ou)g(w)m(an)m(t)h(the)f(ob)5 b(ject)24 -b(\014les)f(and)f(executables)j(to)f(go)f(and)g(run)f(the)h -Fs(configure)d Ft(script)j(from)g(the)150 2491 y(source)j(directory)-8 -b(.)40 b(Y)-8 b(ou)26 b(ma)m(y)g(need)g(to)g(supply)f(the)g(`)p -Fs(--srcdir=PATH)p Ft(')e(argumen)m(t)j(to)h(tell)f Fs(configure)150 -2600 y Ft(where)43 b(the)h(source)g(\014les)g(are.)82 -b Fs(configure)41 b Ft(automatically)47 b(c)m(hec)m(ks)e(for)f(the)g -(source)g(co)s(de)g(in)g(the)150 2710 y(directory)31 -b(that)g Fs(configure)d Ft(is)i(in)g(and)g(in)g(`..'.)275 -2861 y(If)20 b(y)m(ou)h(ha)m(v)m(e)i(to)e(use)g(a)g Fs(make)f +b(ailable.)150 1548 y Fr(10.3)68 b(Compiling)46 b(F)-11 +b(or)45 b(Multiple)g(Arc)l(hitectures)150 1707 y Ft(Y)-8 +b(ou)27 b(can)g(compile)g(Bash)g(for)f(more)h(than)f(one)h(kind)f(of)g +(computer)h(at)g(the)g(same)g(time,)h(b)m(y)e(placing)i(the)150 +1817 y(ob)5 b(ject)31 b(\014les)f(for)g(eac)m(h)i(arc)m(hitecture)f(in) +f(their)g(o)m(wn)h(directory)-8 b(.)41 b(T)-8 b(o)31 +b(do)f(this,)g(y)m(ou)h(m)m(ust)f(use)g(a)g(v)m(ersion)150 +1926 y(of)25 b Fs(make)f Ft(that)h(supp)s(orts)f(the)h +Fs(VPATH)e Ft(v)-5 b(ariable,)27 b(suc)m(h)e(as)g(GNU)h +Fs(make)p Ft(.)37 b Fs(cd)25 b Ft(to)h(the)f(directory)g(where)g(y)m +(ou)150 2036 y(w)m(an)m(t)34 b(the)f(ob)5 b(ject)34 b(\014les)f(and)f +(executables)i(to)g(go)g(and)e(run)g(the)h Fs(configure)d +Ft(script)j(from)g(the)g(source)150 2145 y(directory)-8 +b(.)41 b(Y)-8 b(ou)27 b(ma)m(y)h(need)f(to)g(supply)f(the)h(`)p +Fs(--srcdir=PATH)p Ft(')d(argumen)m(t)k(to)g(tell)g Fs(configure)c +Ft(where)150 2255 y(the)36 b(source)g(\014les)f(are.)57 +b Fs(configure)33 b Ft(automatically)39 b(c)m(hec)m(ks)e(for)e(the)h +(source)g(co)s(de)f(in)h(the)f(directory)150 2364 y(that)c +Fs(configure)d Ft(is)i(in)g(and)g(in)g(`..'.)275 2497 +y(If)20 b(y)m(ou)h(ha)m(v)m(e)i(to)e(use)g(a)g Fs(make)f Ft(that)i(do)s(es)e(not)i(supp)s(orts)d(the)i Fs(VPATH)e Ft(v)-5 b(ariable,)24 b(y)m(ou)e(can)f(compile)h(Bash)150 -2971 y(for)33 b(one)h(arc)m(hitecture)h(at)f(a)g(time)g(in)f(the)h +2607 y(for)33 b(one)h(arc)m(hitecture)h(at)f(a)g(time)g(in)f(the)h (source)g(co)s(de)f(directory)-8 b(.)51 b(After)34 b(y)m(ou)g(ha)m(v)m -(e)h(installed)f(Bash)150 3080 y(for)c(one)h(arc)m(hitecture,)h(use)e +(e)h(installed)f(Bash)150 2716 y(for)c(one)h(arc)m(hitecture,)h(use)e (`)p Fs(make)g(distclean)p Ft(')e(b)s(efore)i(recon\014guring)g(for)g -(another)g(arc)m(hitecture.)275 3231 y(Alternativ)m(ely)-8 +(another)g(arc)m(hitecture.)275 2849 y(Alternativ)m(ely)-8 b(,)26 b(if)21 b(y)m(our)h(system)g(supp)s(orts)d(sym)m(b)s(olic)j (links,)i(y)m(ou)e(can)g(use)f(the)h(`)p Fs(support/mkclone)p -Ft(')150 3341 y(script)h(to)h(create)g(a)f(build)f(tree)i(whic)m(h)f +Ft(')150 2959 y(script)h(to)h(create)g(a)f(build)f(tree)i(whic)m(h)f (has)f(sym)m(b)s(olic)i(links)e(bac)m(k)i(to)g(eac)m(h)g(\014le)f(in)g -(the)g(source)g(directory)-8 b(.)150 3450 y(Here's)41 +(the)g(source)g(directory)-8 b(.)150 3068 y(Here's)41 b(an)f(example)i(that)f(creates)h(a)e(build)g(directory)h(in)f(the)h -(curren)m(t)f(directory)h(from)f(a)h(source)150 3560 +(curren)m(t)f(directory)h(from)f(a)h(source)150 3178 y(directory)31 b(`)p Fs(/usr/gnu/src/bash-2.0)p Ft(':)390 -3711 y Fs(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o(mkcl)o(one) -41 b(-s)47 b(/usr/gnu/src/bash-2.0)42 b(.)150 3862 y +3311 y Fs(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o(mkcl)o(one) +41 b(-s)47 b(/usr/gnu/src/bash-2.0)42 b(.)150 3444 y Ft(The)c Fs(mkclone)e Ft(script)i(requires)g(Bash,)i(so)f(y)m(ou)f(m)m (ust)h(ha)m(v)m(e)g(already)g(built)f(Bash)g(for)g(at)h(least)h(one)150 -3972 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f(create)i(build)e -(directories)h(for)f(other)h(arc)m(hitectures.)150 4271 -y Fr(10.4)68 b(Installation)47 b(Names)275 4531 y Ft(By)36 -b(default,)h(`)p Fs(make)29 b(install)p Ft(')34 b(will)j(install)f(in)m -(to)h(`)p Fs(/usr/local/bin)p Ft(',)d(`)p Fs(/usr/local/man)p -Ft(',)g(etc.)150 4641 y(Y)-8 b(ou)39 b(can)g(sp)s(ecify)f(an)h +3553 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f(create)i(build)e +(directories)h(for)f(other)h(arc)m(hitectures.)150 3782 +y Fr(10.4)68 b(Installation)47 b(Names)150 3942 y Ft(By)27 +b(default,)h(`)p Fs(make)i(install)p Ft(')25 b(will)j(install)g(in)m +(to)g(`)p Fs(/usr/local/bin)p Ft(',)c(`)p Fs(/usr/local/man)p +Ft(',)h(etc.)40 b(Y)-8 b(ou)150 4051 y(can)31 b(sp)s(ecify)f(an)h (installation)h(pre\014x)d(other)i(than)g(`)p Fs(/usr/local)p -Ft(')d(b)m(y)i(giving)i Fs(configure)c Ft(the)150 4751 -y(option)41 b(`)p Fs(--prefix=)p Fj(PATH)11 b Ft(',)41 -b(or)g(b)m(y)f(sp)s(ecifying)h(a)h(v)-5 b(alue)41 b(for)g(the)g -Fs(DESTDIR)e Ft(`)p Fs(make)p Ft(')h(v)-5 b(ariable)42 -b(when)150 4860 y(running)29 b(`)p Fs(make)g(install)p -Ft('.)275 5011 y(Y)-8 b(ou)71 b(can)h(sp)s(ecify)f(separate)h -(installation)h(pre\014xes)d(for)h(arc)m(hitecture-sp)s(eci\014c)i -(\014les)f(and)150 5121 y(arc)m(hitecture-indep)s(enden)m(t)38 -b(\014les.)62 b(If)37 b(y)m(ou)h(giv)m(e)g Fs(configure)d -Ft(the)j(option)g(`)p Fs(--exec-prefix=)p Fj(PATH)11 -b Ft(',)150 5230 y(`)p Fs(make)29 b(install)p Ft(')63 -b(will)h(use)f Fq(P)-8 b(A)g(TH)75 b Ft(as)64 b(the)g(pre\014x)e(for)i -(installing)h(programs)e(and)h(libraries.)150 5340 y(Do)s(cumen)m -(tation)32 b(and)e(other)h(data)g(\014les)f(will)h(still)g(use)f(the)h -(regular)f(pre\014x.)p eop end -%%Page: 129 135 -TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(129)150 299 y Fr(10.5)68 -b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)275 539 -y Ft(There)35 b(ma)m(y)h(b)s(e)f(some)h(features)g Fs(configure)d -Ft(can)j(not)g(\014gure)f(out)g(automatically)-8 b(,)41 -b(but)35 b(need)g(to)150 649 y(determine)h(b)m(y)g(the)h(t)m(yp)s(e)f -(of)g(host)h(Bash)f(will)h(run)d(on.)58 b(Usually)37 +Ft(')d(b)m(y)i(giving)i Fs(configure)c Ft(the)i(option)150 +4161 y(`)p Fs(--prefix=)p Fi(PATH)11 b Ft(',)35 b(or)h(b)m(y)g(sp)s +(ecifying)g(a)h(v)-5 b(alue)37 b(for)f(the)h Fs(DESTDIR)d +Ft(`)p Fs(make)p Ft(')i(v)-5 b(ariable)37 b(when)f(running)150 +4271 y(`)p Fs(make)29 b(install)p Ft('.)275 4403 y(Y)-8 +b(ou)71 b(can)h(sp)s(ecify)f(separate)h(installation)h(pre\014xes)d +(for)h(arc)m(hitecture-sp)s(eci\014c)i(\014les)f(and)150 +4513 y(arc)m(hitecture-indep)s(enden)m(t)38 b(\014les.)62 +b(If)37 b(y)m(ou)h(giv)m(e)g Fs(configure)d Ft(the)j(option)g(`)p +Fs(--exec-prefix=)p Fi(PATH)11 b Ft(',)150 4623 y(`)p +Fs(make)29 b(install)p Ft(')63 b(will)h(use)f Fq(P)-8 +b(A)g(TH)75 b Ft(as)64 b(the)g(pre\014x)e(for)i(installing)h(programs)e +(and)h(libraries.)150 4732 y(Do)s(cumen)m(tation)32 b(and)e(other)h +(data)g(\014les)f(will)h(still)g(use)f(the)h(regular)f(pre\014x.)150 +4961 y Fr(10.5)68 b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)150 +5121 y Ft(There)f(ma)m(y)g(b)s(e)f(some)i(features)f +Fs(configure)e Ft(can)i(not)g(\014gure)g(out)g(automatically)-8 +b(,)52 b(but)44 b(need)h(to)150 5230 y(determine)36 b(b)m(y)g(the)h(t)m +(yp)s(e)f(of)g(host)h(Bash)f(will)h(run)d(on.)58 b(Usually)37 b Fs(configure)d Ft(can)i(\014gure)g(that)g(out,)150 -758 y(but)c(if)h(it)g(prin)m(ts)g(a)g(message)h(sa)m(ying)g(it)f(can)h +5340 y(but)c(if)h(it)g(prin)m(ts)g(a)g(message)h(sa)m(ying)g(it)f(can)h (not)f(guess)g(the)g(host)g(t)m(yp)s(e,)h(giv)m(e)g(it)f(the)h(`)p -Fs(--host=TYPE)p Ft(')150 868 y(option.)39 b(`)p Fs(TYPE)p -Ft(')25 b(can)g(either)g(b)s(e)g(a)g(short)g(name)g(for)g(the)g(system) -g(t)m(yp)s(e,)h(suc)m(h)f(as)g(`)p Fs(sun4)p Ft(',)h(or)f(a)g -(canonical)150 977 y(name)30 b(with)g(three)h(\014elds:)40 -b(`)p Fs(CPU-COMPANY-SYSTEM)p Ft(')26 b(\(e.g.,)32 b(`)p -Fs(i386-unknown-freebsd4.2)p Ft('\).)275 1108 y(See)e(the)h(\014le)f(`) -p Fs(support/config.sub)p Ft(')c(for)k(the)h(p)s(ossible)f(v)-5 -b(alues)30 b(of)h(eac)m(h)g(\014eld.)150 1354 y Fr(10.6)68 -b(Sharing)45 b(Defaults)275 1594 y Ft(If)34 b(y)m(ou)i(w)m(an)m(t)g(to) -g(set)g(default)f(v)-5 b(alues)36 b(for)f Fs(configure)e -Ft(scripts)i(to)h(share,)g(y)m(ou)g(can)g(create)g(a)g(site)150 -1704 y(shell)48 b(script)f(called)i Fs(config.site)44 -b Ft(that)k(giv)m(es)h(default)f(v)-5 b(alues)48 b(for)f(v)-5 -b(ariables)48 b(lik)m(e)h Fs(CC)p Ft(,)j Fs(cache_)150 -1813 y(file)p Ft(,)43 b(and)e Fs(prefix)p Ft(.)73 b Fs(configure)39 -b Ft(lo)s(oks)j(for)f(`)p Fs(PREFIX/share/config.site)p -Ft(')35 b(if)42 b(it)g(exists,)j(then)150 1923 y(`)p -Fs(PREFIX/etc/config.site)p Ft(')20 b(if)26 b(it)g(exists.)40 -b(Or,)26 b(y)m(ou)g(can)g(set)g(the)g Fs(CONFIG_SITE)c -Ft(en)m(vironmen)m(t)k(v)-5 b(ari-)150 2033 y(able)40 -b(to)g(the)g(lo)s(cation)h(of)e(the)h(site)g(script.)67 +Fs(--host=TYPE)p Ft(')p eop end +%%Page: 129 135 +TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(129)150 299 y(option.)39 +b(`)p Fs(TYPE)p Ft(')25 b(can)g(either)g(b)s(e)g(a)g(short)g(name)g +(for)g(the)g(system)g(t)m(yp)s(e,)h(suc)m(h)f(as)g(`)p +Fs(sun4)p Ft(',)h(or)f(a)g(canonical)150 408 y(name)30 +b(with)g(three)h(\014elds:)40 b(`)p Fs(CPU-COMPANY-SYSTEM)p +Ft(')26 b(\(e.g.,)32 b(`)p Fs(i386-unknown-freebsd4.2)p +Ft('\).)275 539 y(See)e(the)h(\014le)f(`)p Fs(support/config.sub)p +Ft(')c(for)k(the)h(p)s(ossible)f(v)-5 b(alues)30 b(of)h(eac)m(h)g +(\014eld.)150 764 y Fr(10.6)68 b(Sharing)45 b(Defaults)150 +924 y Ft(If)d(y)m(ou)i(w)m(an)m(t)g(to)f(set)h(default)f(v)-5 +b(alues)43 b(for)g Fs(configure)d Ft(scripts)j(to)h(share,)i(y)m(ou)d +(can)g(create)i(a)e(site)150 1033 y(shell)48 b(script)f(called)i +Fs(config.site)44 b Ft(that)k(giv)m(es)h(default)f(v)-5 +b(alues)48 b(for)f(v)-5 b(ariables)48 b(lik)m(e)h Fs(CC)p +Ft(,)j Fs(cache_)150 1143 y(file)p Ft(,)43 b(and)e Fs(prefix)p +Ft(.)73 b Fs(configure)39 b Ft(lo)s(oks)j(for)f(`)p Fs +(PREFIX/share/config.site)p Ft(')35 b(if)42 b(it)g(exists,)j(then)150 +1252 y(`)p Fs(PREFIX/etc/config.site)p Ft(')20 b(if)26 +b(it)g(exists.)40 b(Or,)26 b(y)m(ou)g(can)g(set)g(the)g +Fs(CONFIG_SITE)c Ft(en)m(vironmen)m(t)k(v)-5 b(ari-)150 +1362 y(able)40 b(to)g(the)g(lo)s(cation)h(of)e(the)h(site)g(script.)67 b(A)40 b(w)m(arning:)58 b(the)40 b(Bash)g Fs(configure)c -Ft(lo)s(oks)k(for)f(a)h(site)150 2142 y(script,)31 b(but)e(not)i(all)g -Fs(configure)d Ft(scripts)i(do.)150 2388 y Fr(10.7)68 -b(Op)t(eration)46 b(Con)l(trols)275 2628 y Fs(configure)27 -b Ft(recognizes)32 b(the)f(follo)m(wing)h(options)f(to)g(con)m(trol)g -(ho)m(w)g(it)g(op)s(erates.)150 2780 y Fs(--cache-file=)p -Fj(file)630 2890 y Ft(Use)k(and)g(sa)m(v)m(e)h(the)f(results)g(of)g +Ft(lo)s(oks)k(for)f(a)h(site)150 1472 y(script,)31 b(but)e(not)i(all)g +Fs(configure)d Ft(scripts)i(do.)150 1697 y Fr(10.7)68 +b(Op)t(eration)46 b(Con)l(trols)150 1856 y Fs(configure)28 +b Ft(recognizes)k(the)e(follo)m(wing)i(options)f(to)g(con)m(trol)h(ho)m +(w)e(it)h(op)s(erates.)150 2008 y Fs(--cache-file=)p +Fi(file)630 2117 y Ft(Use)k(and)g(sa)m(v)m(e)h(the)f(results)g(of)g (the)h(tests)f(in)g Fq(\014le)40 b Ft(instead)35 b(of)h(`)p -Fs(./config.cache)p Ft('.)51 b(Set)630 2999 y Fq(\014le)36 +Fs(./config.cache)p Ft('.)51 b(Set)630 2227 y Fq(\014le)36 b Ft(to)31 b(`)p Fs(/dev/null)p Ft(')d(to)j(disable)g(cac)m(hing,)h -(for)e(debugging)g Fs(configure)p Ft(.)150 3151 y Fs(--help)192 +(for)e(debugging)g Fs(configure)p Ft(.)150 2379 y Fs(--help)192 b Ft(Prin)m(t)30 b(a)h(summary)e(of)i(the)f(options)h(to)g -Fs(configure)p Ft(,)d(and)i(exit.)150 3303 y Fs(--quiet)150 -3412 y(--silent)150 3522 y(-q)384 b Ft(Do)31 b(not)g(prin)m(t)f +Fs(configure)p Ft(,)d(and)i(exit.)150 2531 y Fs(--quiet)150 +2641 y(--silent)150 2750 y(-q)384 b Ft(Do)31 b(not)g(prin)m(t)f (messages)h(sa)m(ying)g(whic)m(h)g(c)m(hec)m(ks)g(are)g(b)s(eing)f -(made.)150 3674 y Fs(--srcdir=)p Fj(dir)630 3783 y Ft(Lo)s(ok)i(for)g -(the)g(Bash)g(source)h(co)s(de)f(in)g(directory)g Fq(dir)p -Ft(.)45 b(Usually)33 b Fs(configure)c Ft(can)j(deter-)630 -3893 y(mine)e(that)h(directory)g(automatically)-8 b(.)150 -4045 y Fs(--version)630 4154 y Ft(Prin)m(t)29 b(the)h(v)m(ersion)g(of)g +(made.)150 2902 y Fs(--srcdir=)p Fi(dir)630 3012 y Ft(Lo)s(ok)i(for)f +(the)h(Bash)g(source)f(co)s(de)h(in)f(directory)h Fq(dir)7 +b Ft(.)44 b(Usually)32 b Fs(configure)d Ft(can)i(deter-)630 +3121 y(mine)f(that)h(directory)g(automatically)-8 b(.)150 +3273 y Fs(--version)630 3383 y Ft(Prin)m(t)29 b(the)h(v)m(ersion)g(of)g (Auto)s(conf)f(used)g(to)h(generate)h(the)f Fs(configure)d -Ft(script,)j(and)f(exit.)275 4306 y Fs(configure)34 b +Ft(script,)j(and)f(exit.)275 3535 y Fs(configure)34 b Ft(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s -(oilerplate)g(options.)61 b(`)p Fs(configure)150 4415 +(oilerplate)g(options.)61 b(`)p Fs(configure)150 3644 y(--help)p Ft(')29 b(prin)m(ts)h(the)g(complete)i(list.)150 -4661 y Fr(10.8)68 b(Optional)46 b(F)-11 b(eatures)275 -4902 y Ft(The)34 b(Bash)h Fs(configure)d Ft(has)j(a)g(n)m(um)m(b)s(er)f -(of)h(`)p Fs(--enable-)p Fj(feature)11 b Ft(')30 b(options,)37 -b(where)e Fq(feature)40 b Ft(in-)150 5011 y(dicates)33 -b(an)f(optional)h(part)f(of)g(Bash.)45 b(There)32 b(are)g(also)h(sev)m -(eral)g(`)p Fs(--with-)p Fj(package)11 b Ft(')29 b(options,)j(where)150 -5121 y Fq(pac)m(k)-5 b(age)35 b Ft(is)28 b(something)h(lik)m(e)h(`)p -Fs(bash-malloc)p Ft(')25 b(or)j(`)p Fs(purify)p Ft('.)39 -b(T)-8 b(o)29 b(turn)e(o\013)h(the)h(default)f(use)g(of)g(a)h(pac)m(k-) -150 5230 y(age,)43 b(use)d(`)p Fs(--without-)p Fj(package)11 -b Ft('.)63 b(T)-8 b(o)40 b(con\014gure)g(Bash)f(without)h(a)g(feature)g -(that)g(is)g(enabled)f(b)m(y)150 5340 y(default,)31 b(use)f(`)p -Fs(--disable-)p Fj(feature)11 b Ft('.)p eop end +3869 y Fr(10.8)68 b(Optional)46 b(F)-11 b(eatures)150 +4029 y Ft(The)24 b(Bash)g Fs(configure)e Ft(has)h(a)i(n)m(um)m(b)s(er)e +(of)h(`)p Fs(--enable-)p Fi(feature)11 b Ft(')20 b(options,)26 +b(where)d Fq(feature)30 b Ft(indicates)150 4138 y(an)f(optional)i(part) +e(of)g(Bash.)41 b(There)28 b(are)i(also)g(sev)m(eral)h(`)p +Fs(--with-)p Fi(package)11 b Ft(')25 b(options,)30 b(where)f +Fq(pac)m(k)-5 b(age)150 4248 y Ft(is)32 b(something)h(lik)m(e)h(`)p +Fs(bash-malloc)p Ft(')c(or)i(`)p Fs(purify)p Ft('.)45 +b(T)-8 b(o)33 b(turn)e(o\013)i(the)f(default)h(use)f(of)g(a)h(pac)m(k) +-5 b(age,)35 b(use)150 4357 y(`)p Fs(--without-)p Fi(package)11 +b Ft('.)36 b(T)-8 b(o)29 b(con\014gure)g(Bash)h(without)f(a)g(feature)h +(that)g(is)f(enabled)g(b)m(y)g(default,)h(use)150 4467 +y(`)p Fs(--disable-)p Fi(feature)11 b Ft('.)275 4598 +y(Here)21 b(is)g(a)g(complete)h(list)g(of)f(the)g(`)p +Fs(--enable-)p Ft(')e(and)h(`)p Fs(--with-)p Ft(')g(options)h(that)g +(the)g(Bash)g Fs(configure)150 4707 y Ft(recognizes.)150 +4859 y Fs(--with-afs)630 4969 y Ft(De\014ne)31 b(if)f(y)m(ou)h(are)f +(using)g(the)h(Andrew)e(File)j(System)e(from)g(T)-8 b(ransarc.)150 +5121 y Fs(--with-bash-malloc)630 5230 y Ft(Use)31 b(the)g(Bash)f(v)m +(ersion)i(of)e Fs(malloc)f Ft(in)h(the)h(directory)g(`)p +Fs(lib/malloc)p Ft('.)39 b(This)30 b(is)h(not)g(the)630 +5340 y(same)h Fs(malloc)e Ft(that)j(app)s(ears)e(in)g +Fl(gnu)h Ft(lib)s(c,)g(but)f(an)h(older)f(v)m(ersion)i(originally)g +(deriv)m(ed)p eop end %%Page: 130 136 TeXDict begin 130 135 bop 150 -116 a Ft(130)2527 b(Bash)31 -b(Reference)g(Man)m(ual)275 299 y(Here)21 b(is)g(a)g(complete)h(list)g -(of)f(the)g(`)p Fs(--enable-)p Ft(')e(and)h(`)p Fs(--with-)p -Ft(')g(options)h(that)g(the)g(Bash)g Fs(configure)150 -408 y Ft(recognizes.)150 589 y Fs(--with-afs)630 698 -y Ft(De\014ne)31 b(if)f(y)m(ou)h(are)f(using)g(the)h(Andrew)e(File)j -(System)e(from)g(T)-8 b(ransarc.)150 872 y Fs(--with-bash-malloc)630 -981 y Ft(Use)31 b(the)g(Bash)f(v)m(ersion)i(of)e Fs(malloc)f -Ft(in)h(the)h(directory)g(`)p Fs(lib/malloc)p Ft('.)39 -b(This)30 b(is)h(not)g(the)630 1091 y(same)h Fs(malloc)e -Ft(that)j(app)s(ears)e(in)g Fl(gnu)h Ft(lib)s(c,)g(but)f(an)h(older)f -(v)m(ersion)i(originally)g(deriv)m(ed)630 1200 y(from)f(the)h(4.2)g +b(Reference)g(Man)m(ual)630 299 y(from)h(the)h(4.2)g Fl(bsd)f Fs(malloc)p Ft(.)45 b(This)31 b Fs(malloc)g Ft(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630 -1310 y(eac)m(h)g(allo)s(cation.)48 b(This)31 b(option)i(is)f(enabled)g +408 y(eac)m(h)g(allo)s(cation.)48 b(This)31 b(option)i(is)f(enabled)g (b)m(y)g(default.)46 b(The)31 b(`)p Fs(NOTES)p Ft(')g(\014le)h(con)m -(tains)i(a)630 1419 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g +(tains)i(a)630 518 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g (should)e(b)s(e)i(turned)e(o\013,)j(and)f Fs(configure)d -Ft(disables)j(this)630 1529 y(option)j(automatically)i(for)d(a)h(n)m -(um)m(b)s(er)e(of)i(systems.)150 1702 y Fs(--with-curses)630 -1812 y Ft(Use)h(the)h(curses)e(library)h(instead)g(of)h(the)f(termcap)g +Ft(disables)j(this)630 628 y(option)j(automatically)i(for)d(a)h(n)m(um) +m(b)s(er)e(of)i(systems.)150 798 y Fs(--with-curses)630 +907 y Ft(Use)h(the)h(curses)e(library)h(instead)g(of)h(the)f(termcap)g (library)-8 b(.)46 b(This)32 b(should)f(b)s(e)g(supplied)630 -1921 y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete) -i(termcap)e(database.)150 2095 y Fs(--with-gnu-malloc)630 -2204 y Ft(A)g(synon)m(ym)g(for)g Fs(--with-bash-malloc)p -Ft(.)150 2378 y Fs(--with-installed-readlin)o(e[=)p Fj(P)o(REFI)o(X)11 -b Fs(])630 2487 y Ft(De\014ne)26 b(this)f(to)h(mak)m(e)h(Bash)f(link)f +1017 y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete) +i(termcap)e(database.)150 1187 y Fs(--with-gnu-malloc)630 +1297 y Ft(A)g(synon)m(ym)g(for)g Fs(--with-bash-malloc)p +Ft(.)150 1467 y Fs(--with-installed-readlin)o(e[=)p Fi(P)o(REFI)o(X)11 +b Fs(])630 1576 y Ft(De\014ne)26 b(this)f(to)h(mak)m(e)h(Bash)f(link)f (with)g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g(Readline)g(rather) -630 2597 y(than)38 b(the)h(v)m(ersion)g(in)g(`)p Fs(lib/readline)p +630 1686 y(than)38 b(the)h(v)m(ersion)g(in)g(`)p Fs(lib/readline)p Ft('.)62 b(This)38 b(w)m(orks)h(only)f(with)h(Readline)g(5.0)h(and)630 -2706 y(later)29 b(v)m(ersions.)40 b(If)28 b Fq(PREFIX)37 +1796 y(later)29 b(v)m(ersions.)40 b(If)28 b Fq(PREFIX)37 b Ft(is)28 b Fs(yes)f Ft(or)h(not)g(supplied,)f Fs(configure)f -Ft(uses)h(the)h(v)-5 b(alues)29 b(of)630 2816 y(the)c(mak)m(e)g(v)-5 +Ft(uses)h(the)h(v)-5 b(alues)29 b(of)630 1905 y(the)c(mak)m(e)g(v)-5 b(ariables)25 b Fs(includedir)d Ft(and)h Fs(libdir)p Ft(,)h(whic)m(h)h(are)f(sub)s(directories)g(of)h Fs(prefix)630 -2926 y Ft(b)m(y)32 b(default,)g(to)h(\014nd)d(the)i(installed)h(v)m +2015 y Ft(b)m(y)32 b(default,)g(to)h(\014nd)d(the)i(installed)h(v)m (ersion)f(of)g(Readline)h(if)f(it)g(is)g(not)g(in)g(the)g(standard)630 -3035 y(system)j(include)f(and)g(library)g(directories.)54 +2124 y(system)j(include)f(and)g(library)g(directories.)54 b(If)34 b Fq(PREFIX)43 b Ft(is)35 b Fs(no)p Ft(,)g(Bash)f(links)h(with) -f(the)630 3145 y(v)m(ersion)k(in)f(`)p Fs(lib/readline)p +f(the)630 2234 y(v)m(ersion)k(in)f(`)p Fs(lib/readline)p Ft('.)58 b(If)37 b Fq(PREFIX)46 b Ft(is)38 b(set)g(to)g(an)m(y)f(other) -h(v)-5 b(alue,)39 b Fs(configure)630 3254 y Ft(treats)27 +h(v)-5 b(alue,)39 b Fs(configure)630 2344 y Ft(treats)27 b(it)g(as)f(a)h(directory)g(pathname)f(and)f(lo)s(oks)i(for)f(the)g -(installed)h(v)m(ersion)g(of)f(Readline)630 3364 y(in)34 +(installed)h(v)m(ersion)g(of)f(Readline)630 2453 y(in)34 b(sub)s(directories)f(of)h(that)h(directory)g(\(include)f(\014les)g(in) g Fq(PREFIX)9 b Ft(/)p Fs(include)32 b Ft(and)i(the)630 -3473 y(library)c(in)g Fq(PREFIX)9 b Ft(/)p Fs(lib)p Ft(\).)150 -3647 y Fs(--with-purify)630 3756 y Ft(De\014ne)23 b(this)g(to)h(use)f +2563 y(library)c(in)g Fq(PREFIX)9 b Ft(/)p Fs(lib)p Ft(\).)150 +2733 y Fs(--with-purify)630 2843 y Ft(De\014ne)23 b(this)g(to)h(use)f (the)g(Purify)f(memory)h(allo)s(cation)i(c)m(hec)m(k)m(er)g(from)e -(Rational)i(Soft)m(w)m(are.)150 3930 y Fs(--enable-minimal-config)630 -4039 y Ft(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h +(Rational)i(Soft)m(w)m(are.)150 3013 y Fs(--enable-minimal-config)630 +3122 y Ft(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h (close)g(to)f(the)g(historical)h(Bourne)e(shell.)275 -4219 y(There)g(are)i(sev)m(eral)g(`)p Fs(--enable-)p +3298 y(There)g(are)i(sev)m(eral)g(`)p Fs(--enable-)p Ft(')d(options)j(that)f(alter)h(ho)m(w)g(Bash)f(is)g(compiled)h(and)e -(link)m(ed,)j(rather)150 4329 y(than)k(c)m(hanging)h(run-time)f -(features.)150 4509 y Fs(--enable-largefile)630 4619 +(link)m(ed,)j(rather)150 3407 y(than)k(c)m(hanging)h(run-time)f +(features.)150 3583 y Fs(--enable-largefile)630 3693 y Ft(Enable)76 b(supp)s(ort)f(for)h(large)h(\014les)f(\()p -Fs(http://www.sas.com/standar)o(ds/l)o(arge)o(_)630 4728 +Fs(http://www.sas.com/standar)o(ds/l)o(arge)o(_)630 3802 y(file/x_open.20Mar96.html)o Ft(\))23 b(if)28 b(the)g(op)s(erating)h -(system)f(requires)g(sp)s(ecial)g(compiler)630 4838 y(options)45 +(system)f(requires)g(sp)s(ecial)g(compiler)630 3912 y(options)45 b(to)g(build)e(programs)h(whic)m(h)g(can)g(access)i(large)f(\014les.)82 -b(This)44 b(is)g(enabled)g(b)m(y)630 4948 y(default,)31 +b(This)44 b(is)g(enabled)g(b)m(y)630 4021 y(default,)31 b(if)f(the)h(op)s(erating)g(system)f(pro)m(vides)g(large)i(\014le)e -(supp)s(ort.)150 5121 y Fs(--enable-profiling)630 5230 +(supp)s(ort.)150 4191 y Fs(--enable-profiling)630 4301 y Ft(This)h(builds)f(a)i(Bash)g(binary)f(that)h(pro)s(duces)e (pro\014ling)h(information)h(to)h(b)s(e)d(pro)s(cessed)630 -5340 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)p -eop end -%%Page: 131 137 -TeXDict begin 131 136 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(131)150 299 y Fs(--enable-static-link)630 -408 y Ft(This)37 b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically) --8 b(,)43 b(if)37 b Fs(gcc)g Ft(is)g(b)s(eing)g(used.)61 -b(This)37 b(could)h(b)s(e)630 518 y(used)30 b(to)h(build)e(a)i(v)m -(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 671 +4411 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)150 +4581 y Fs(--enable-static-link)630 4690 y Ft(This)37 +b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)-8 +b(,)43 b(if)37 b Fs(gcc)g Ft(is)g(b)s(eing)g(used.)61 +b(This)37 b(could)h(b)s(e)630 4800 y(used)30 b(to)h(build)e(a)i(v)m +(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 4976 y(The)f(`)p Fs(minimal-config)p Ft(')d(option)k(can)g(b)s(e)f(used)f (to)j(disable)e(all)i(of)f(the)f(follo)m(wing)i(options,)g(but)d(it)150 -781 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m -(y)h(b)s(e)f(enabled)g(using)g(`)p Fs(enable-)p Fj(feature)11 -b Ft('.)275 913 y(All)37 b(of)g(the)f(follo)m(wing)i(options)f(except)h -(for)e(`)p Fs(disabled-builtins)p Ft(')d(and)j(`)p Fs(xpg-echo-default) -p Ft(')150 1022 y(are)26 b(enabled)g(b)m(y)g(default,)h(unless)f(the)g -(op)s(erating)g(system)g(do)s(es)g(not)g(pro)m(vide)g(the)g(necessary)g -(supp)s(ort.)150 1176 y Fs(--enable-alias)630 1285 y -Ft(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h +5085 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m +(y)h(b)s(e)f(enabled)g(using)g(`)p Fs(enable-)p Fi(feature)11 +b Ft('.)275 5230 y(All)37 b(of)g(the)f(follo)m(wing)i(options)f(except) +h(for)e(`)p Fs(disabled-builtins)p Ft(')d(and)j(`)p Fs +(xpg-echo-default)p Ft(')150 5340 y(are)26 b(enabled)g(b)m(y)g +(default,)h(unless)f(the)g(op)s(erating)g(system)g(do)s(es)g(not)g(pro) +m(vide)g(the)g(necessary)g(supp)s(ort.)p eop end +%%Page: 131 137 +TeXDict begin 131 136 bop 150 -116 a Ft(Chapter)30 b(10:)41 +b(Installing)31 b(Bash)2356 b(131)150 299 y Fs(--enable-alias)630 +408 y Ft(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h Fs(alias)f Ft(and)g Fs(unalias)e Ft(builtins)j(\(see)g(Sec-)630 -1395 y(tion)31 b(6.6)g([Aliases],)i(page)e(79\).)150 -1548 y Fs(--enable-arith-for-comma)o(nd)630 1658 y Ft(Include)21 +518 y(tion)31 b(6.6)g([Aliases],)i(page)e(79\).)150 692 +y Fs(--enable-arith-for-comma)o(nd)630 801 y Ft(Include)21 b(supp)s(ort)g(for)g(the)i(alternate)g(form)f(of)g(the)g Fs(for)f Ft(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630 -1767 y(C)30 b(language)i Fs(for)d Ft(statemen)m(t)j(\(see)g(Section)f -(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)150 -1921 y Fs(--enable-array-variables)630 2030 y Ft(Include)h(supp)s(ort)g +911 y(C)30 b(language)i Fs(for)d Ft(statemen)m(t)j(\(see)g(Section)f +(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(9\).)150 +1084 y Fs(--enable-array-variables)630 1194 y Ft(Include)h(supp)s(ort)g (for)h(one-dimensional)h(arra)m(y)f(shell)h(v)-5 b(ariables)33 -b(\(see)h(Section)g(6.7)h([Ar-)630 2140 y(ra)m(ys],)c(page)g(80\).)150 -2293 y Fs(--enable-bang-history)630 2403 y Ft(Include)36 +b(\(see)h(Section)g(6.7)h([Ar-)630 1303 y(ra)m(ys],)c(page)g(80\).)150 +1477 y Fs(--enable-bang-history)630 1587 y Ft(Include)36 b(supp)s(ort)f(for)h Fs(csh)p Ft(-lik)m(e)h(history)g(substitution)f -(\(see)h(Section)g(9.3)h([History)f(In-)630 2513 y(teraction],)c(page)e -(123\).)150 2666 y Fs(--enable-brace-expansion)630 2776 +(\(see)h(Section)g(9.3)h([History)f(In-)630 1696 y(teraction],)c(page)e +(123\).)150 1870 y Fs(--enable-brace-expansion)630 1979 y Ft(Include)40 b Fs(csh)p Ft(-lik)m(e)h(brace)f(expansion)g(\()h -Fs(b{a,b}c)2445 2772 y Fp(7!)2576 2776 y Fs(bac)30 b(bbc)39 -b Ft(\).)71 b(See)40 b(Section)h(3.5.1)630 2885 y([Brace)32 -b(Expansion],)e(page)h(18,)h(for)e(a)g(complete)i(description.)150 -3039 y Fs(--enable-casemod-attribu)o(tes)630 3148 y Ft(Include)37 +Fs(b{a,b}c)d Fp(7!)i Fs(bac)30 b(bbc)39 b Ft(\).)71 b(See)40 +b(Section)h(3.5.1)630 2089 y([Brace)32 b(Expansion],)e(page)h(18,)h +(for)e(a)g(complete)i(description.)150 2262 y Fs +(--enable-casemod-attribu)o(tes)630 2372 y Ft(Include)37 b(supp)s(ort)g(for)g(case-mo)s(difying)i(attributes)g(in)e(the)h -Fs(declare)e Ft(builtin)i(and)f(as-)630 3258 y(signmen)m(t)29 +Fs(declare)e Ft(builtin)i(and)f(as-)630 2482 y(signmen)m(t)29 b(statemen)m(ts.)41 b(V)-8 b(ariables)30 b(with)e(the)g Fq(upp)s(ercase)k Ft(attribute,)e(for)e(example,)i(will)630 -3367 y(ha)m(v)m(e)i(their)e(v)-5 b(alues)31 b(con)m(v)m(erted)h(to)f -(upp)s(ercase)e(up)s(on)g(assignmen)m(t.)150 3521 y Fs -(--enable-casemod-expansi)o(on)630 3630 y Ft(Include)h(supp)s(ort)e +2591 y(ha)m(v)m(e)i(their)e(v)-5 b(alues)31 b(con)m(v)m(erted)h(to)f +(upp)s(ercase)e(up)s(on)g(assignmen)m(t.)150 2765 y Fs +(--enable-casemod-expansi)o(on)630 2874 y Ft(Include)h(supp)s(ort)e (for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150 -3784 y Fs(--enable-command-timing)630 3893 y Ft(Include)43 +3048 y Fs(--enable-command-timing)630 3157 y Ft(Include)43 b(supp)s(ort)f(for)h(recognizing)i Fs(time)e Ft(as)g(a)h(reserv)m(ed)g -(w)m(ord)f(and)g(for)h(displa)m(ying)630 4003 y(timing)37 +(w)m(ord)f(and)g(for)h(displa)m(ying)630 3267 y(timing)37 b(statistics)h(for)e(the)g(pip)s(eline)g(follo)m(wing)i Fs(time)d Ft(\(see)i(Section)g(3.2.2)h([Pip)s(elines],)630 -4113 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w) +3377 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w) m(ell)g(as)g(shell)f(builtins)g(and)g(functions)g(to)h(b)s(e)e(timed.) -150 4266 y Fs(--enable-cond-command)630 4376 y Ft(Include)33 +150 3550 y Fs(--enable-cond-command)630 3660 y Ft(Include)33 b(supp)s(ort)f(for)i(the)g Fs([[)f Ft(conditional)i(command.)51 -b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 4485 y(tional)c -(Constructs],)e(page)h(10\).)150 4639 y Fs(--enable-cond-regexp)630 -4748 y Ft(Include)f(supp)s(ort)f(for)i(matc)m(hing)h(POSIX)d(regular)i +b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 3769 y(tional)c +(Constructs],)e(page)h(10\).)150 3943 y Fs(--enable-cond-regexp)630 +4052 y Ft(Include)f(supp)s(ort)f(for)i(matc)m(hing)h(POSIX)d(regular)i (expressions)g(using)f(the)h(`)p Fs(=~)p Ft(')g(binary)630 -4858 y(op)s(erator)25 b(in)f(the)h Fs([[)f Ft(conditional)h(command.)39 +4162 y(op)s(erator)25 b(in)f(the)h Fs([[)f Ft(conditional)h(command.)39 b(\(see)25 b(Section)h(3.2.4.2)h([Conditional)e(Con-)630 -4967 y(structs],)31 b(page)g(10\).)150 5121 y Fs(--enable-coprocesses) -630 5230 y Ft(Include)23 b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f +4271 y(structs],)31 b(page)g(10\).)150 4445 y Fs(--enable-coprocesses) +630 4555 y Ft(Include)23 b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f (the)h Fs(coproc)e Ft(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.2) -630 5340 y([Pip)s(elines],)31 b(page)g(8\).)p eop end +630 4664 y([Pip)s(elines],)31 b(page)g(8\).)150 4838 +y Fs(--enable-debugger)630 4947 y Ft(Include)f(supp)s(ort)e(for)i(the)h +(bash)f(debugger)g(\(distributed)g(separately\).)150 +5121 y Fs(--enable-directory-stack)630 5230 y Ft(Include)j(supp)s(ort)g +(for)h(a)g Fs(csh)p Ft(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i +Fs(pushd)p Ft(,)f Fs(popd)p Ft(,)g(and)f Fs(dirs)630 +5340 y Ft(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m +(k],)g(page)f(81\).)p eop end %%Page: 132 138 TeXDict begin 132 137 bop 150 -116 a Ft(132)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fs(--enable-debugger)630 -408 y Ft(Include)f(supp)s(ort)e(for)i(the)h(bash)f(debugger)g -(\(distributed)g(separately\).)150 573 y Fs(--enable-directory-stack) -630 682 y Ft(Include)j(supp)s(ort)g(for)h(a)g Fs(csh)p -Ft(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i Fs(pushd)p -Ft(,)f Fs(popd)p Ft(,)g(and)f Fs(dirs)630 792 y Ft(builtins)d(\(see)h -(Section)g(6.8)h([The)e(Directory)i(Stac)m(k],)g(page)f(81\).)150 -956 y Fs(--enable-disabled-builti)o(ns)630 1066 y Ft(Allo)m(w)40 -b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m(ed)i(via)f(`)p -Fs(builtin)29 b(xxx)p Ft(')37 b(ev)m(en)j(after)f Fs(xxx)e -Ft(has)630 1176 y(b)s(een)31 b(disabled)g(using)g(`)p +b(Reference)g(Man)m(ual)150 299 y Fs(--enable-disabled-builti)o(ns)630 +408 y Ft(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m +(ed)i(via)f(`)p Fs(builtin)29 b(xxx)p Ft(')37 b(ev)m(en)j(after)f +Fs(xxx)e Ft(has)630 518 y(b)s(een)31 b(disabled)g(using)g(`)p Fs(enable)d(-n)i(xxx)p Ft('.)43 b(See)32 b(Section)g(4.2)h([Bash)e -(Builtins],)i(page)f(41,)630 1285 y(for)e(details)i(of)e(the)h +(Builtins],)i(page)f(41,)630 628 y(for)e(details)i(of)e(the)h Fs(builtin)d Ft(and)i Fs(enable)e Ft(builtin)i(commands.)150 -1450 y Fs(--enable-dparen-arithmet)o(ic)630 1559 y Ft(Include)42 +783 y Fs(--enable-dparen-arithmet)o(ic)630 892 y Ft(Include)42 b(supp)s(ort)f(for)h(the)h Fs(\(\(...)o(\)\))f Ft(command)g(\(see)i -(Section)f(3.2.4.2)i([Conditional)630 1669 y(Constructs],)30 -b(page)h(10\).)150 1833 y Fs(--enable-extended-glob)630 -1943 y Ft(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h +(Section)f(3.2.4.2)i([Conditional)630 1002 y(Constructs],)30 +b(page)h(10\).)150 1157 y Fs(--enable-extended-glob)630 +1267 y Ft(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h (matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)630 -2052 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i -(page)e(25.)150 2217 y Fs(--enable-help-builtin)630 2326 -y Ft(Include)24 b(the)h Fs(help)f Ft(builtin,)h(whic)m(h)g(displa)m(ys) -f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25 -b(\(see)630 2436 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f -(41\).)150 2600 y Fs(--enable-history)630 2710 y Ft(Include)e(command)g +1377 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i +(page)e(24.)150 1532 y Fs(--enable-extended-glob-d)o(efau)o(lt)630 +1641 y Ft(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g +Fq(extglob)j Ft(shell)d(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(under) +d(Sec-)630 1751 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g +(55)g(to)h(b)s(e)d(enabled.)150 1906 y Fs(--enable-help-builtin)630 +2016 y Ft(Include)24 b(the)h Fs(help)f Ft(builtin,)h(whic)m(h)g(displa) +m(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25 +b(\(see)630 2125 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f +(41\).)150 2281 y Fs(--enable-history)630 2390 y Ft(Include)e(command)g (history)h(and)f(the)h Fs(fc)f Ft(and)g Fs(history)e -Ft(builtin)j(commands)f(\(see)h(Sec-)630 2819 y(tion)h(9.1)g([Bash)g +Ft(builtin)j(commands)f(\(see)h(Sec-)630 2500 y(tion)h(9.1)g([Bash)g (History)g(F)-8 b(acilities],)34 b(page)d(121\).)150 -2984 y Fs(--enable-job-control)630 3093 y Ft(This)e(enables)i(the)f +2655 y Fs(--enable-job-control)630 2765 y Ft(This)e(enables)i(the)f (job)g(con)m(trol)h(features)g(\(see)g(Chapter)f(7)g([Job)g(Con)m -(trol],)h(page)g(89\),)h(if)630 3203 y(the)f(op)s(erating)f(system)h -(supp)s(orts)d(them.)150 3367 y Fs(--enable-multibyte)630 -3477 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m +(trol],)h(page)g(89\),)h(if)630 2874 y(the)f(op)s(erating)f(system)h +(supp)s(orts)d(them.)150 3029 y Fs(--enable-multibyte)630 +3139 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m (haracters)g(if)f(the)g(op)s(erating)h(system)f(pro)m(vides)630 -3587 y(the)h(necessary)f(supp)s(ort.)150 3751 y Fs -(--enable-net-redirection)o(s)630 3861 y Ft(This)21 b(enables)h(the)g +3249 y(the)h(necessary)f(supp)s(ort.)150 3404 y Fs +(--enable-net-redirection)o(s)630 3513 y Ft(This)21 b(enables)h(the)g (sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g(form)f -Fs(/dev/tcp/)p Fj(host)11 b Fs(/)p Fj(port)630 3970 y -Ft(and)29 b Fs(/dev/udp/)p Fj(host)11 b Fs(/)p Fj(port)34 +Fs(/dev/tcp/)p Fi(host)11 b Fs(/)p Fi(port)630 3623 y +Ft(and)29 b Fs(/dev/udp/)p Fi(host)11 b Fs(/)p Fi(port)34 b Ft(when)28 b(used)g(in)h(redirections)h(\(see)g(Section)g(3.6)g -([Redirec-)630 4080 y(tions],)h(page)g(26\).)150 4244 -y Fs(--enable-process-substit)o(utio)o(n)630 4354 y Ft(This)49 +([Redirec-)630 3733 y(tions],)h(page)g(26\).)150 3888 +y Fs(--enable-process-substit)o(utio)o(n)630 3998 y Ft(This)49 b(enables)i(pro)s(cess)f(substitution)g(\(see)h(Section)g(3.5.6)h([Pro) -s(cess)e(Substitution],)630 4463 y(page)31 b(23\))h(if)e(the)h(op)s +s(cess)e(Substitution],)630 4107 y(page)31 b(23\))h(if)e(the)h(op)s (erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150 -4628 y Fs(--enable-progcomp)630 4737 y Ft(Enable)d(the)g(programmable)g +4262 y Fs(--enable-progcomp)630 4372 y Ft(Enable)d(the)g(programmable)g (completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630 -4847 y(Completion],)i(page)h(115\).)42 b(If)30 b(Readline)h(is)f(not)h +4482 y(Completion],)i(page)h(115\).)42 b(If)30 b(Readline)h(is)f(not)h (enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150 -5011 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 5121 +4637 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 4746 y Ft(T)-8 b(urn)46 b(on)h(the)h(in)m(terpretation)g(of)g(a)g(n)m(um)m (b)s(er)e(of)h(bac)m(kslash-escap)s(ed)h(c)m(haracters)h(in)630 -5230 y(the)39 b Fs($PS1)p Ft(,)g Fs($PS2)p Ft(,)h Fs($PS3)p +4856 y(the)39 b Fs($PS1)p Ft(,)g Fs($PS2)p Ft(,)h Fs($PS3)p Ft(,)f(and)f Fs($PS4)f Ft(prompt)h(strings.)64 b(See)39 -b(Section)g(6.9)h([Prin)m(ting)f(a)630 5340 y(Prompt],)30 -b(page)h(83,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g -(escap)s(e)h(sequences.)p eop end +b(Section)g(6.9)h([Prin)m(ting)f(a)630 4966 y(Prompt],)30 +b(page)h(82,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g +(escap)s(e)h(sequences.)150 5121 y Fs(--enable-readline)630 +5230 y Ft(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f +(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 5340 +y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g +(Editing],)h(page)g(93\).)p eop end %%Page: 133 139 TeXDict begin 133 138 bop 150 -116 a Ft(Chapter)30 b(10:)41 -b(Installing)31 b(Bash)2356 b(133)150 299 y Fs(--enable-readline)630 -408 y Ft(Include)28 b(supp)s(ort)f(for)h(command-line)h(editing)g(and)f -(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 518 -y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g -(Editing],)h(page)g(93\).)150 677 y Fs(--enable-restricted)630 -787 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p +b(Installing)31 b(Bash)2356 b(133)150 299 y Fs(--enable-restricted)630 +408 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p Ft(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630 -897 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68 +518 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68 b(See)40 b(Section)h(6.10)g([The)f(Restricted)h(Shell],)630 -1006 y(page)31 b(84,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s -(de.)150 1166 y Fs(--enable-select)630 1275 y Ft(Include)k(the)g +628 y(page)31 b(84,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s +(de.)150 787 y Fs(--enable-select)630 897 y Ft(Include)k(the)g Fs(select)f Ft(builtin,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g(of) -g(simple)f(men)m(us)g(\(see)630 1385 y(Section)c(3.2.4.2)i -([Conditional)e(Constructs],)g(page)g(10\).)150 1544 -y Fs(--enable-separate-helpfi)o(les)630 1654 y Ft(Use)h(external)h +g(simple)f(men)m(us)g(\(see)630 1006 y(Section)c(3.2.4.2)i +([Conditional)e(Constructs],)g(page)g(10\).)150 1166 +y Fs(--enable-separate-helpfi)o(les)630 1275 y Ft(Use)h(external)h (\014les)f(for)g(the)g(do)s(cumen)m(tation)h(displa)m(y)m(ed)f(b)m(y)g -(the)g Fs(help)f Ft(builtin)h(instead)630 1763 y(of)f(storing)f(the)h -(text)g(in)m(ternally)-8 b(.)150 1923 y Fs(--enable-single-help-str)o -(ings)630 2032 y Ft(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e +(the)g Fs(help)f Ft(builtin)h(instead)630 1385 y(of)f(storing)f(the)h +(text)g(in)m(ternally)-8 b(.)150 1544 y Fs(--enable-single-help-str)o +(ings)630 1654 y Ft(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e (the)i Fs(help)d Ft(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h) -i(help)630 2142 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g +i(help)630 1763 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g (text)g(to)g(di\013eren)m(t)g(languages.)54 b(Y)-8 b(ou)35 -b(ma)m(y)g(need)630 2252 y(to)c(disable)g(this)f(if)g(y)m(our)h +b(ma)m(y)g(need)630 1873 y(to)c(disable)g(this)f(if)g(y)m(our)h (compiler)g(cannot)f(handle)g(v)m(ery)h(long)g(string)f(literals.)150 -2411 y Fs(--enable-strict-posix-de)o(faul)o(t)630 2521 +2032 y Fs(--enable-strict-posix-de)o(faul)o(t)630 2142 y Ft(Mak)m(e)c(Bash)f Fl(posix)p Ft(-conforman)m(t)g(b)m(y)f(default)h (\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630 -2630 y(page)31 b(85\).)150 2790 y Fs(--enable-usg-echo-defaul)o(t)630 -2899 y Ft(A)f(synon)m(ym)g(for)g Fs(--enable-xpg-echo-default)p -Ft(.)150 3059 y Fs(--enable-xpg-echo-defaul)o(t)630 3168 +2252 y(page)31 b(84\).)150 2411 y Fs(--enable-usg-echo-defaul)o(t)630 +2521 y Ft(A)f(synon)m(ym)g(for)g Fs(--enable-xpg-echo-default)p +Ft(.)150 2680 y Fs(--enable-xpg-echo-defaul)o(t)630 2790 y Ft(Mak)m(e)c(the)f Fs(echo)e Ft(builtin)i(expand)f(bac)m (kslash-escap)s(ed)h(c)m(haracters)h(b)m(y)f(default,)h(without)630 -3278 y(requiring)41 b(the)g(`)p Fs(-e)p Ft(')g(option.)73 +2899 y(requiring)41 b(the)g(`)p Fs(-e)p Ft(')g(option.)73 b(This)41 b(sets)g(the)g(default)h(v)-5 b(alue)41 b(of)h(the)f -Fs(xpg_echo)e Ft(shell)630 3387 y(option)26 b(to)g Fs(on)p +Fs(xpg_echo)e Ft(shell)630 3009 y(option)26 b(to)g Fs(on)p Ft(,)g(whic)m(h)g(mak)m(es)g(the)g(Bash)g Fs(echo)e Ft(b)s(eha)m(v)m(e) i(more)g(lik)m(e)h(the)f(v)m(ersion)g(sp)s(eci\014ed)630 -3497 y(in)41 b(the)h(Single)g(Unix)f(Sp)s(eci\014cation,)k(v)m(ersion)e +3118 y(in)41 b(the)h(Single)g(Unix)f(Sp)s(eci\014cation,)k(v)m(ersion)e (3.)74 b(See)42 b(Section)g(4.2)h([Bash)f(Builtins],)630 -3606 y(page)31 b(41,)h(for)e(a)g(description)h(of)f(the)h(escap)s(e)g -(sequences)f(that)h Fs(echo)f Ft(recognizes.)275 3766 +3228 y(page)31 b(41,)h(for)e(a)g(description)h(of)f(the)h(escap)s(e)g +(sequences)f(that)h Fs(echo)f Ft(recognizes.)275 3387 y(The)23 b(\014le)i(`)p Fs(config-top.h)p Ft(')c(con)m(tains)26 b(C)e(Prepro)s(cessor)g(`)p Fs(#define)p Ft(')e(statemen)m(ts)k(for)f -(options)f(whic)m(h)150 3875 y(are)35 b(not)g(settable)i(from)d +(options)f(whic)m(h)150 3497 y(are)35 b(not)g(settable)i(from)d Fs(configure)p Ft(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g -(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 3985 +(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 3606 y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36 b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e -(for)g(more)150 4095 y(information)c(ab)s(out)f(its)h(e\013ect.)p +(for)g(more)150 3716 y(information)c(ab)s(out)f(its)h(e\013ect.)p eop end %%Page: 134 140 -TeXDict begin 134 139 bop 150 -116 a Ft(134)2527 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +TeXDict begin 134 139 bop eop end %%Page: 135 141 TeXDict begin 135 140 bop 150 -116 a Ft(App)s(endix)29 b(A:)h(Rep)s(orting)h(Bugs)2299 b(135)150 299 y Fo(App)t(endix)52 -b(A)121 b(Rep)t(orting)52 b(Bugs)275 533 y Ft(Please)35 -b(rep)s(ort)e(all)i(bugs)f(y)m(ou)g(\014nd)f(in)h(Bash.)52 -b(But)34 b(\014rst,)h(y)m(ou)f(should)f(mak)m(e)i(sure)f(that)g(it)h -(really)150 643 y(is)h(a)g(bug,)h(and)e(that)h(it)h(app)s(ears)e(in)g -(the)h(latest)i(v)m(ersion)e(of)g(Bash.)57 b(The)35 b(latest)j(v)m -(ersion)e(of)g(Bash)g(is)150 752 y(alw)m(a)m(ys)c(a)m(v)-5 -b(ailable)33 b(for)d(FTP)g(from)g Fs(ftp://ftp.gnu.org/pub/ba)o(sh/)o -Ft(.)275 887 y(Once)41 b(y)m(ou)g(ha)m(v)m(e)h(determined)f(that)h(a)f -(bug)g(actually)h(exists,)j(use)c(the)g Fs(bashbug)e +b(A)81 b(Rep)t(orting)53 b(Bugs)150 533 y Ft(Please)33 +b(rep)s(ort)e(all)h(bugs)f(y)m(ou)h(\014nd)e(in)i(Bash.)44 +b(But)32 b(\014rst,)g(y)m(ou)g(should)e(mak)m(e)j(sure)e(that)h(it)g +(really)h(is)f(a)150 643 y(bug,)d(and)g(that)h(it)g(app)s(ears)f(in)g +(the)h(latest)h(v)m(ersion)f(of)g(Bash.)40 b(The)29 b(latest)j(v)m +(ersion)e(of)f(Bash)h(is)f(alw)m(a)m(ys)150 752 y(a)m(v)-5 +b(ailable)33 b(for)d(FTP)g(from)g Fs(ftp://ftp.gnu.org/pub/gn)o(u/ba)o +(sh/)o Ft(.)275 887 y(Once)41 b(y)m(ou)g(ha)m(v)m(e)h(determined)f +(that)h(a)f(bug)g(actually)h(exists,)j(use)c(the)g Fs(bashbug)e Ft(command)i(to)150 996 y(submit)25 b(a)h(bug)g(rep)s(ort.)38 b(If)26 b(y)m(ou)g(ha)m(v)m(e)h(a)f(\014x,)h(y)m(ou)f(are)g(encouraged) h(to)f(mail)h(that)f(as)g(w)m(ell!)40 b(Suggestions)150 @@ -13980,23 +13960,22 @@ s(duce)e(it.)150 2182 y Fs(bashbug)d Ft(inserts)i(the)h(\014rst)f (three)g(items)h(automatically)i(in)m(to)f(the)e(template)i(it)f(pro)m (vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275 2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m -(ual)f(to)h Fs(chet@po.CWRU.Edu)p Ft(.)p eop end +(ual)f(to)h Fs(chet.ramey@case.edu)p Ft(.)p eop end %%Page: 136 142 -TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +TeXDict begin 136 141 bop eop end %%Page: 137 143 TeXDict begin 137 142 bop 150 -116 a Ft(App)s(endix)29 b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31 -b(The)f(Bourne)g(Shell)1258 b(137)150 141 y Fo(App)t(endix)52 -b(B)128 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54 -b(The)f(Bourne)1135 299 y(Shell)275 530 y Ft(Bash)25 -b(implemen)m(ts)g(essen)m(tially)i(the)f(same)f(grammar,)i(parameter)e -(and)g(v)-5 b(ariable)26 b(expansion,)g(redi-)150 640 -y(rection,)i(and)e(quoting)h(as)f(the)g(Bourne)g(Shell.)40 -b(Bash)26 b(uses)g(the)g Fl(posix)g Ft(standard)f(as)i(the)f(sp)s -(eci\014cation)150 749 y(of)h(ho)m(w)h(these)f(features)h(are)f(to)h(b) -s(e)f(implemen)m(ted.)40 b(There)27 b(are)g(some)h(di\013erences)f(b)s -(et)m(w)m(een)h(the)g(tradi-)150 859 y(tional)33 b(Bourne)e(shell)h +b(The)f(Bourne)g(Shell)1258 b(137)150 141 y Fo(App)t(endix)58 +b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54 +b(The)g(Bourne)1088 299 y(Shell)150 530 y Ft(Bash)26 +b(implemen)m(ts)h(essen)m(tially)g(the)g(same)f(grammar,)h(parameter)f +(and)g(v)-5 b(ariable)27 b(expansion,)g(redirec-)150 +640 y(tion,)i(and)e(quoting)g(as)h(the)g(Bourne)f(Shell.)40 +b(Bash)27 b(uses)g(the)h Fl(posix)f Ft(standard)f(as)i(the)g(sp)s +(eci\014cation)g(of)150 749 y(ho)m(w)34 b(these)h(features)g(are)g(to)g +(b)s(e)f(implemen)m(ted.)53 b(There)34 b(are)h(some)g(di\013erences)g +(b)s(et)m(w)m(een)g(the)g(tradi-)150 859 y(tional)e(Bourne)e(shell)h (and)f(Bash;)i(this)f(section)g(quic)m(kly)h(details)g(the)e (di\013erences)h(of)g(signi\014cance.)46 b(A)150 969 y(n)m(um)m(b)s(er)24 b(of)h(these)h(di\013erences)f(are)h(explained)f @@ -14008,7 +13987,7 @@ Fs(sh)f Ft(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g Fl(posix)p Ft(-conforman)m(t,)g(ev)m(en)g(where)f(the)g Fl(posix)g Ft(sp)s(eci\014cation)h(di\013ers)f(from)g(traditional)330 1431 y Fs(sh)e Ft(b)s(eha)m(vior)g(\(see)i(Section)f(6.11)h([Bash)e -(POSIX)g(Mo)s(de],)h(page)g(85\).)225 1565 y Fp(\017)60 +(POSIX)g(Mo)s(de],)h(page)g(84\).)225 1565 y Fp(\017)60 b Ft(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g (options)f(\(see)f(Section)h(6.1)g([In)m(v)m(oking)g(Bash],)h(page)e (71\).)225 1699 y Fp(\017)60 b Ft(Bash)28 b(has)g(command-line)h @@ -14065,10 +14044,10 @@ Ft(reserv)m(ed)h(w)m(ord)g(and)f(command)h(timing)h(\(see)g(Section)g b(displa)m(y)i(of)f(the)g(timing)g(statistics)i(ma)m(y)f(b)s(e)e(con)m (trolled)j(with)e(the)g Fs(TIMEFORMAT)330 4853 y Ft(v)-5 b(ariable.)225 4987 y Fp(\017)60 b Ft(Bash)23 b(implemen)m(ts)g(the)h -Fs(for)29 b(\(\()h Fj(expr1)39 b Fs(;)30 b Fj(expr2)40 -b Fs(;)30 b Fj(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j +Fs(for)29 b(\(\()h Fi(expr1)39 b Fs(;)30 b Fi(expr2)40 +b Fs(;)30 b Fi(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j (sim-)330 5096 y(ilar)31 b(to)g(the)g(C)f(language)h(\(see)h(Section)f -(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)225 +(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(9\).)225 5230 y Fp(\017)60 b Ft(Bash)31 b(includes)f(the)g Fs(select)f Ft(comp)s(ound)g(command,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g (of)g(simple)330 5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i @@ -14110,39 +14089,39 @@ Fs(#)p Ft(',)g(`)p Fs(\045\045)p Ft(')e(and)f(`)p Fs(##)p Ft(')h(expansions)g(to)g(remo)m(v)m(e)330 2342 y(leading)f(or)f (trailing)h(substrings)e(from)g(v)-5 b(ariable)35 b(v)-5 b(alues)35 b(\(see)g(Section)g(3.5.3)g([Shell)g(P)m(arameter)330 -2452 y(Expansion],)30 b(page)h(20\).)225 2587 y Fp(\017)60 +2452 y(Expansion],)30 b(page)h(19\).)225 2587 y Fp(\017)60 b Ft(The)46 b(expansion)g Fs(${#xx})p Ft(,)j(whic)m(h)d(returns)f(the)i (length)f(of)h Fs(${xx})p Ft(,)i(is)e(supp)s(orted)d(\(see)j(Sec-)330 2697 y(tion)31 b(3.5.3)h([Shell)f(P)m(arameter)g(Expansion],)f(page)i -(20\).)225 2832 y Fp(\017)60 b Ft(The)30 b(expansion)g +(19\).)225 2832 y Fp(\017)60 b Ft(The)30 b(expansion)g Fs(${var:)p Fq(o\013set)r Fs([:)p Fq(length)p Fs(]})p Ft(,)g(whic)m(h)g(expands)g(to)h(the)g(substring)e(of)i Fs(var)p Ft('s)e(v)-5 b(alue)330 2942 y(of)43 b(length)g -Fq(length)p Ft(,)k(b)s(eginning)42 b(at)i Fq(o\013set)p -Ft(,)j(is)c(presen)m(t)g(\(see)g(Section)h(3.5.3)h([Shell)e(P)m -(arameter)330 3051 y(Expansion],)30 b(page)h(20\).)225 +Fq(length)p Ft(,)j(b)s(eginning)c(at)i Fq(o\013set)r +Ft(,)j(is)42 b(presen)m(t)h(\(see)h(Section)f(3.5.3)i([Shell)e(P)m +(arameter)330 3051 y(Expansion],)30 b(page)h(19\).)225 3187 y Fp(\017)60 b Ft(The)21 b(expansion)f Fs(${var/[/])p Fq(pattern)p Fs([/)p Fq(replacemen)m(t)r Fs(]})p Ft(,)i(whic)m(h)e (matc)m(hes)j Fq(pattern)e Ft(and)f(replaces)330 3296 y(it)29 b(with)e Fq(replacemen)m(t)32 b Ft(in)c(the)g(v)-5 b(alue)29 b(of)f Fs(var)p Ft(,)g(is)g(a)m(v)-5 b(ailable)31 b(\(see)e(Section)f(3.5.3)i([Shell)f(P)m(arameter)330 -3406 y(Expansion],)h(page)h(20\).)225 3541 y Fp(\017)60 -b Ft(The)32 b(expansion)g Fs(${!)p Fj(prefix)p Fs(})p -Fj(*)40 b Ft(expansion,)32 b(whic)m(h)g(expands)g(to)h(the)f(names)g -(of)h(all)g(shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)g(names)g -(b)s(egin)g(with)g Fq(pre\014x)p Ft(,)g(is)g(a)m(v)-5 -b(ailable)39 b(\(see)e(Section)g(3.5.3)g([Shell)g(P)m(arameter)330 -3761 y(Expansion],)30 b(page)h(20\).)225 3896 y Fp(\017)60 +3406 y(Expansion],)h(page)h(19\).)225 3541 y Fp(\017)60 +b Ft(The)32 b(expansion)g Fs(${!)p Fi(prefix)p Fs(})p +Fi(*)40 b Ft(expansion,)32 b(whic)m(h)g(expands)g(to)h(the)f(names)g +(of)h(all)g(shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)f(names)h +(b)s(egin)f(with)g Fq(pre\014x)6 b Ft(,)36 b(is)g(a)m(v)-5 +b(ailable)38 b(\(see)e(Section)h(3.5.3)g([Shell)f(P)m(arameter)330 +3761 y(Expansion],)30 b(page)h(19\).)225 3896 y Fp(\017)60 b Ft(Bash)22 b(has)f Fq(indirect)j Ft(v)-5 b(ariable)22 b(expansion)g(using)f Fs(${!word})e Ft(\(see)k(Section)f(3.5.3)i -([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(20\).)225 +([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(19\).)225 4141 y Fp(\017)60 b Ft(Bash)31 b(can)f(expand)g(p)s(ositional)h (parameters)g(b)s(ey)m(ond)e Fs($9)h Ft(using)g Fs(${)p -Fj(num)11 b Fs(})p Ft(.)225 4276 y Fp(\017)60 b Ft(The)27 +Fi(num)11 b Fs(})p Ft(.)225 4276 y Fp(\017)60 b Ft(The)27 b Fl(posix)g Fs($\(\))g Ft(form)g(of)h(command)g(substitution)f(is)h (implemen)m(ted)g(\(see)h(Section)f(3.5.4)i([Com-)330 -4386 y(mand)38 b(Substitution],)k(page)e(23\),)j(and)38 +4386 y(mand)38 b(Substitution],)k(page)e(22\),)j(and)38 b(preferred)g(to)i(the)g(Bourne)f(shell's)h Fs(``)e Ft(\(whic)m(h)i(is) f(also)330 4495 y(implemen)m(ted)31 b(for)f(bac)m(kw)m(ards)h (compatibilit)m(y\).)225 4631 y Fp(\017)60 b Ft(Bash)31 @@ -14160,7 +14139,7 @@ b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(61,)g(for)f (details.)225 5230 y Fp(\017)60 b Ft(The)44 b Fs(IFS)f Ft(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g (of)h(expansion,)i(not)d(all)h(w)m(ords)f(\(see)330 5340 -y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(24\).)41 +y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(23\).)41 b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p eop end %%Page: 139 145 @@ -14169,13 +14148,13 @@ b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31 b(The)f(Bourne)g(Shell)1258 b(139)225 299 y Fp(\017)60 b Ft(Bash)38 b(implemen)m(ts)g(the)g(full)g(set)g(of)g Fl(posix)f Ft(\014lename)h(expansion)g(op)s(erators,)i(including)d -Fq(c)m(har-)330 408 y(acter)i(classes)p Ft(,)j Fq(equiv)-5 -b(alence)39 b(classes)p Ft(,)j(and)37 b Fq(collating)k(sym)m(b)s(ols)g -Ft(\(see)e(Section)g(3.5.8)h([Filename)330 518 y(Expansion],)30 +Fq(c)m(har-)330 408 y(acter)i(classes)t Ft(,)h Fq(equiv)-5 +b(alence)39 b(classes)t Ft(,)h(and)d Fq(collating)j(sym)m(b)s(ols)g +Ft(\(see)f(Section)f(3.5.8)h([Filename)330 518 y(Expansion],)30 b(page)h(24\).)225 660 y Fp(\017)60 b Ft(Bash)35 b(implemen)m(ts)g (extended)g(pattern)g(matc)m(hing)h(features)f(when)f(the)h Fs(extglob)d Ft(shell)j(option)330 769 y(is)30 b(enabled)h(\(see)g -(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(25\).)225 +(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(24\).)225 911 y Fp(\017)60 b Ft(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f (v)-5 b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j Fs(sh)d Ft(do)s(es)g(not)g(separate)330 1021 y(the)31 @@ -14188,7 +14167,7 @@ Ft(builtin,)i(and)e(th)m(us)330 1272 y(useful)i(recursiv)m(e)g b(ariable)25 b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only) f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1524 y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page) -e(32\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5 b(ariable)37 +e(31\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5 b(ariable)37 b(assignmen)m(ts)330 1633 y(preceding)30 b(commands)g(are)h(global)h (unless)d(the)i(command)f(is)h(executed)g(from)f(the)g(\014le)h (system.)225 1775 y Fp(\017)60 b Ft(Bash)44 b(p)s(erforms)e(\014lename) @@ -14206,8 +14185,8 @@ y Fp(\017)60 b Ft(Bash)21 b(includes)f(the)h(`)p Fs(<<<)p Ft(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s (e)e(used)g(as)h(the)g(standard)330 2497 y(input)29 b(to)j(a)e (command.)225 2639 y Fp(\017)60 b Ft(Bash)29 b(implemen)m(ts)h(the)f(`) -p Fs([n]<&)p Fj(word)11 b Ft(')26 b(and)j(`)p Fs([n]>&)p -Fj(word)11 b Ft(')26 b(redirection)k(op)s(erators,)g(whic)m(h)e(mo)m(v) +p Fs([n]<&)p Fi(word)11 b Ft(')26 b(and)j(`)p Fs([n]>&)p +Fi(word)11 b Ft(')26 b(redirection)k(op)s(erators,)g(whic)m(h)e(mo)m(v) m(e)330 2749 y(one)j(\014le)f(descriptor)g(to)h(another.)225 2890 y Fp(\017)60 b Ft(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i (\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g(used)f(in)g @@ -14305,7 +14284,7 @@ f(the)g Fs(.)g Ft(or)330 2737 y Fs(source)c Ft(builtins)g(\(see)j 2874 y Fp(\017)60 b Ft(Bash)43 b(includes)g(the)g Fs(shopt)f Ft(builtin,)k(for)d(\014ner)f(con)m(trol)j(of)e(shell)h(optional)g (capabilities)h(\(see)330 2984 y(Section)c(4.3.2)g([The)f(Shopt)f -(Builtin],)k(page)d(54\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f +(Builtin],)k(page)d(55\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f (b)s(e)f(set)i(and)330 3093 y(unset)30 b(at)h(shell)g(in)m(v)m(o)s (cation)h(\(see)f(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)g(page)h (71\).)225 3230 y Fp(\017)60 b Ft(Bash)45 b(has)f(m)m(uc)m(h)g(more)h @@ -14356,77 +14335,77 @@ b(The)f(Bourne)g(Shell)1258 b(141)330 299 y(are)40 b(executed)g(after)g b(The)39 b Fs(ERR)g Ft(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h (shell)g(functions)f(unless)g(the)h Fs(-o)29 b(errtrace)37 b Ft(option)i(to)g(the)g Fs(set)f Ft(builtin)g(is)330 -518 y(enabled.)330 645 y(The)g Fs(trap)g Ft(builtin)h(\(see)g(Section)h +518 y(enabled.)330 650 y(The)g Fs(trap)g Ft(builtin)h(\(see)g(Section)h (4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(35\))g(allo)m(ws)g(a)g -Fs(RETURN)330 755 y Ft(pseudo-signal)35 b(sp)s(eci\014cation,)j +Fs(RETURN)330 760 y Ft(pseudo-signal)35 b(sp)s(eci\014cation,)j (similar)d(to)h Fs(EXIT)e Ft(and)g Fs(DEBUG)p Ft(.)54 -b(Commands)34 b(sp)s(eci\014ed)g(with)h(an)330 864 y +b(Commands)34 b(sp)s(eci\014ed)g(with)h(an)330 869 y Fs(RETURN)k Ft(trap)i(are)g(executed)h(b)s(efore)e(execution)i(resumes) -e(after)h(a)g(shell)g(function)g(or)g(a)g(shell)330 974 +e(after)h(a)g(shell)g(function)g(or)g(a)g(shell)330 979 y(script)36 b(executed)g(with)g Fs(.)f Ft(or)h Fs(source)e Ft(returns.)56 b(The)35 b Fs(RETURN)f Ft(trap)i(is)g(not)g(inherited)f -(b)m(y)h(shell)330 1083 y(functions)k(unless)h(the)g(function)f(has)h +(b)m(y)h(shell)330 1088 y(functions)k(unless)h(the)g(function)f(has)h (b)s(een)f(giv)m(en)i(the)f Fs(trace)e Ft(attribute)j(or)e(the)h -Fs(functrace)330 1193 y Ft(option)31 b(has)f(b)s(een)g(enabled)g(using) -g(the)g Fs(shopt)f Ft(builtin.)225 1320 y Fp(\017)60 +Fs(functrace)330 1198 y Ft(option)31 b(has)f(b)s(een)g(enabled)g(using) +g(the)g Fs(shopt)f Ft(builtin.)225 1330 y Fp(\017)60 b Ft(The)30 b(Bash)g Fs(type)f Ft(builtin)h(is)g(more)g(extensiv)m(e)i (and)d(giv)m(es)j(more)e(information)h(ab)s(out)f(the)g(names)330 -1430 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i -(page)f(41\).)225 1557 y Fp(\017)60 b Ft(The)34 b(Bash)h +1440 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i +(page)f(41\).)225 1571 y Fp(\017)60 b Ft(The)34 b(Bash)h Fs(umask)e Ft(builtin)h(p)s(ermits)g(a)g(`)p Fs(-p)p Ft(')h(option)g(to)g(cause)g(the)g(output)f(to)h(b)s(e)f(displa)m(y)m -(ed)h(in)330 1666 y(the)g(form)g(of)g(a)h Fs(umask)e +(ed)h(in)330 1681 y(the)g(form)g(of)g(a)h Fs(umask)e Ft(command)h(that)g(ma)m(y)h(b)s(e)f(reused)f(as)h(input)g(\(see)h -(Section)g(4.1)g([Bourne)330 1776 y(Shell)30 b(Builtins],)h(page)h -(35\).)225 1903 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g +(Section)g(4.1)g([Bourne)330 1791 y(Shell)30 b(Builtins],)h(page)h +(35\).)225 1923 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g Fs(csh)p Ft(-lik)m(e)g(directory)f(stac)m(k,)j(and)d(pro)m(vides)g(the) g Fs(pushd)p Ft(,)g Fs(popd)p Ft(,)g(and)g Fs(dirs)330 -2012 y Ft(builtins)g(to)i(manipulate)f(it)h(\(see)f(Section)h(6.8)g +2032 y Ft(builtins)g(to)i(manipulate)f(it)h(\(see)f(Section)h(6.8)g ([The)f(Directory)h(Stac)m(k],)i(page)d(81\).)56 b(Bash)35 -b(also)330 2122 y(mak)m(es)c(the)g(directory)g(stac)m(k)g(visible)g(as) +b(also)330 2142 y(mak)m(es)c(the)g(directory)g(stac)m(k)g(visible)g(as) g(the)f(v)-5 b(alue)31 b(of)g(the)f Fs(DIRSTACK)f Ft(shell)h(v)-5 -b(ariable.)225 2249 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s +b(ariable.)225 2274 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s (ecial)g(bac)m(kslash-escap)s(ed)g(c)m(haracters)g(in)f(the)h(prompt)e -(strings)h(when)f(in)m(ter-)330 2358 y(activ)m(e)33 b(\(see)e(Section)g -(6.9)h([Prin)m(ting)e(a)h(Prompt],)g(page)g(83\).)225 -2485 y Fp(\017)60 b Ft(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h +(strings)h(when)f(in)m(ter-)330 2383 y(activ)m(e)33 b(\(see)e(Section)g +(6.9)h([Prin)m(ting)e(a)h(Prompt],)g(page)g(82\).)225 +2515 y Fp(\017)60 b Ft(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h (more)f(useful)g(\(see)h(Section)h(6.10)g([The)e(Restricted)i(Shell],) -330 2595 y(page)31 b(84\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s -(de)f(is)h(to)s(o)g(limited.)225 2722 y Fp(\017)60 b +330 2625 y(page)31 b(84\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s +(de)f(is)h(to)s(o)g(limited.)225 2757 y Fp(\017)60 b Ft(The)30 b Fs(disown)f Ft(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f (from)g(the)h(in)m(ternal)g(shell)g(job)f(table)i(\(see)f(Section)h -(7.2)330 2832 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(90\))h(or)e +(7.2)330 2866 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(90\))h(or)e (suppress)e(the)i(sending)g(of)g Fs(SIGHUP)e Ft(to)j(a)g(job)f(when)f -(the)330 2941 y(shell)f(exits)g(as)f(the)h(result)f(of)h(a)f -Fs(SIGHUP)p Ft(.)225 3068 y Fp(\017)60 b Ft(Bash)31 b(includes)f(a)g(n) +(the)330 2976 y(shell)f(exits)g(as)f(the)h(result)f(of)h(a)f +Fs(SIGHUP)p Ft(.)225 3108 y Fp(\017)60 b Ft(Bash)31 b(includes)f(a)g(n) m(um)m(b)s(er)f(of)i(features)g(to)g(supp)s(ort)d(a)j(separate)g -(debugger)f(for)h(shell)f(scripts.)225 3195 y Fp(\017)60 +(debugger)f(for)h(shell)f(scripts.)225 3240 y Fp(\017)60 b Ft(The)28 b(SVR4.2)h(shell)f(has)g(t)m(w)m(o)i(privilege-related)g (builtins)e(\()p Fs(mldmode)e Ft(and)i Fs(priv)p Ft(\))f(not)i(presen)m -(t)f(in)330 3305 y(Bash.)225 3432 y Fp(\017)60 b Ft(Bash)31 +(t)f(in)330 3350 y(Bash.)225 3482 y Fp(\017)60 b Ft(Bash)31 b(do)s(es)f(not)g(ha)m(v)m(e)i(the)e Fs(stop)g Ft(or)g -Fs(newgrp)f Ft(builtins.)225 3559 y Fp(\017)60 b Ft(Bash)31 +Fs(newgrp)f Ft(builtins.)225 3613 y Fp(\017)60 b Ft(Bash)31 b(do)s(es)f(not)g(use)g(the)h Fs(SHACCT)d Ft(v)-5 b(ariable)32 -b(or)e(p)s(erform)f(shell)i(accoun)m(ting.)225 3686 y +b(or)e(p)s(erform)f(shell)i(accoun)m(ting.)225 3745 y Fp(\017)60 b Ft(The)30 b(SVR4.2)h Fs(sh)f Ft(uses)g(a)g Fs(TIMEOUT)f Ft(v)-5 b(ariable)31 b(lik)m(e)h(Bash)e(uses)g -Fs(TMOUT)p Ft(.)150 3830 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m +Fs(TMOUT)p Ft(.)150 3900 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m (y)g(b)s(e)f(found)f(in)h(Chapter)f(6)i([Bash)g(F)-8 -b(eatures],)32 b(page)f(71.)150 4065 y Fr(B.1)67 b(Implemen)l(tation)48 -b(Di\013erences)e(F)-11 b(rom)44 b(The)h(SVR4.2)g(Shell)275 -4301 y Ft(Since)39 b(Bash)h(is)f(a)h(completely)i(new)d(implemen)m -(tation,)k(it)d(do)s(es)g(not)f(su\013er)g(from)g(man)m(y)h(of)g(the) -150 4411 y(limitations)32 b(of)f(the)f(SVR4.2)h(shell.)41 -b(F)-8 b(or)31 b(instance:)225 4538 y Fp(\017)60 b Ft(Bash)32 +b(eatures],)32 b(page)f(71.)150 4127 y Fr(B.1)67 b(Implemen)l(tation)48 +b(Di\013erences)e(F)-11 b(rom)44 b(The)h(SVR4.2)g(Shell)150 +4287 y Ft(Since)33 b(Bash)h(is)f(a)g(completely)i(new)e(implemen)m +(tation,)j(it)e(do)s(es)e(not)i(su\013er)e(from)h(man)m(y)g(of)h(the)f +(limi-)150 4396 y(tations)f(of)e(the)h(SVR4.2)g(shell.)41 +b(F)-8 b(or)31 b(instance:)225 4528 y Fp(\017)60 b Ft(Bash)32 b(do)s(es)f(not)h(fork)f(a)h(subshell)e(when)h(redirecting)h(in)m(to)h (or)e(out)h(of)g(a)g(shell)f(con)m(trol)i(structure)330 -4648 y(suc)m(h)d(as)h(an)f Fs(if)g Ft(or)g Fs(while)f -Ft(statemen)m(t.)225 4775 y Fp(\017)60 b Ft(Bash)29 b(do)s(es)f(not)h +4638 y(suc)m(h)d(as)h(an)f Fs(if)g Ft(or)g Fs(while)f +Ft(statemen)m(t.)225 4770 y Fp(\017)60 b Ft(Bash)29 b(do)s(es)f(not)h (allo)m(w)h(un)m(balanced)f(quotes.)41 b(The)28 b(SVR4.2)h(shell)g -(will)g(silen)m(tly)i(insert)d(a)h(needed)330 4884 y(closing)g(quote)g +(will)g(silen)m(tly)i(insert)d(a)h(needed)330 4879 y(closing)g(quote)g (at)f Fs(EOF)f Ft(under)g(certain)h(circumstances.)41 b(This)27 b(can)h(b)s(e)g(the)g(cause)g(of)g(some)h(hard-)330 -4994 y(to-\014nd)h(errors.)225 5121 y Fp(\017)60 b Ft(The)45 +4989 y(to-\014nd)h(errors.)225 5121 y Fp(\017)60 b Ft(The)45 b(SVR4.2)h(shell)f(uses)g(a)g(baro)s(que)g(memory)g(managemen)m(t)i(sc) m(heme)e(based)g(on)g(trapping)330 5230 y Fs(SIGSEGV)p Ft(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f @@ -14469,19 +14448,18 @@ b Ft(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h %%Page: 143 149 TeXDict begin 143 148 bop 150 -116 a Ft(App)s(endix)29 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560 -b(143)150 299 y Fo(App)t(endix)52 b(C)126 b(GNU)53 b(F)-13 -b(ree)53 b(Do)t(cumen)l(tation)f(License)1396 502 y Ft(V)-8 -b(ersion)31 b(1.2,)h(No)m(v)m(em)m(b)s(er)g(2002)390 +b(143)150 299 y Fo(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13 +b(ree)53 b(Do)t(cumen)l(tation)e(License)1359 502 y Ft(V)-8 +b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fp(\015)e -Ft(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 -b(oundation,)32 b(Inc.)390 745 y(51)f(F)-8 b(ranklin)31 -b(St,)f(Fifth)h(Flo)s(or,)g(Boston,)h(MA)61 b(02110-1301,)35 -b(USA)390 964 y(Ev)m(ery)m(one)c(is)g(p)s(ermitted)f(to)h(cop)m(y)g -(and)f(distribute)g(v)m(erbatim)h(copies)390 1074 y(of)g(this)f -(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f(is)f(not)h(allo)m -(w)m(ed.)199 1207 y(0.)61 b(PREAMBLE)330 1340 y(The)37 -b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g(a)g(man)m -(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330 +Ft(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31 +b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 745 +y Fs(http://fsf.org/)390 964 y Ft(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f +(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390 +1074 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f +(is)f(not)h(allo)m(w)m(ed.)199 1207 y(0.)61 b(PREAMBLE)330 +1340 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g +(a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330 1450 y(useful)29 b(do)s(cumen)m(t)h Fq(free)36 b Ft(in)29 b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j (the)e(e\013ectiv)m(e)j(freedom)330 1559 y(to)f(cop)m(y)g(and)f @@ -14561,1644 +14539,1759 @@ b(arian)m(t.)46 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)i(zero) e(In)m(v)-5 b(arian)m(t)330 518 y(Sections.)39 b(If)25 b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)g(an)m(y)g(In)m(v) -5 b(arian)m(t)25 b(Sections)h(then)e(there)h(are)g(none.)330 -655 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)g(short) +669 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)g(short) g(passages)g(of)g(text)g(that)h(are)f(listed,)i(as)d(F)-8 -b(ron)m(t-Co)m(v)m(er)330 765 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m(er) +b(ron)m(t-Co)m(v)m(er)330 778 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m(er) j(T)-8 b(exts,)27 b(in)d(the)h(notice)i(that)e(sa)m(ys)h(that)g(the)f -(Do)s(cumen)m(t)h(is)f(released)g(under)330 874 y(this)h(License.)40 +(Do)s(cumen)m(t)h(is)f(released)g(under)330 888 y(this)h(License.)40 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)g(Bac)m(k-Co)m -(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 984 y(b)s(e)k(at)h(most)g(25)g(w)m -(ords.)330 1121 y(A)36 b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g +(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 998 y(b)s(e)k(at)h(most)g(25)g(w)m +(ords.)330 1148 y(A)36 b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g (the)f(Do)s(cumen)m(t)h(means)g(a)g(mac)m(hine-readable)h(cop)m(y)-8 -b(,)38 b(represen)m(ted)330 1230 y(in)d(a)h(format)g(whose)g(sp)s +b(,)38 b(represen)m(ted)330 1258 y(in)d(a)h(format)g(whose)g(sp)s (eci\014cation)g(is)g(a)m(v)-5 b(ailable)38 b(to)f(the)f(general)g -(public,)h(that)f(is)g(suitable)g(for)330 1340 y(revising)c(the)g(do)s +(public,)h(that)f(is)g(suitable)g(for)330 1367 y(revising)c(the)g(do)s (cumen)m(t)f(straigh)m(tforw)m(ardly)i(with)e(generic)i(text)g(editors) -f(or)f(\(for)h(images)h(com-)330 1450 y(p)s(osed)23 b(of)h(pixels\))g +f(or)f(\(for)h(images)h(com-)330 1477 y(p)s(osed)23 b(of)h(pixels\))g (generic)h(pain)m(t)f(programs)g(or)f(\(for)h(dra)m(wings\))g(some)g -(widely)g(a)m(v)-5 b(ailable)26 b(dra)m(wing)330 1559 +(widely)g(a)m(v)-5 b(ailable)26 b(dra)m(wing)330 1587 y(editor,)k(and)f(that)g(is)g(suitable)h(for)f(input)f(to)i(text)g (formatters)f(or)g(for)g(automatic)i(translation)f(to)330 -1669 y(a)d(v)-5 b(ariet)m(y)28 b(of)f(formats)g(suitable)h(for)e(input) +1696 y(a)d(v)-5 b(ariet)m(y)28 b(of)f(formats)g(suitable)h(for)e(input) g(to)i(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)g(an)g -(otherwise)330 1778 y(T)-8 b(ransparen)m(t)37 b(\014le)h(format)g +(otherwise)330 1806 y(T)-8 b(ransparen)m(t)37 b(\014le)h(format)g (whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f -(arranged)g(to)330 1888 y(th)m(w)m(art)27 b(or)g(discourage)g +(arranged)g(to)330 1915 y(th)m(w)m(art)27 b(or)g(discourage)g (subsequen)m(t)f(mo)s(di\014cation)h(b)m(y)g(readers)f(is)g(not)h(T)-8 -b(ransparen)m(t.)39 b(An)27 b(image)330 1998 y(format)35 +b(ransparen)m(t.)39 b(An)27 b(image)330 2025 y(format)35 b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g (substan)m(tial)h(amoun)m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g -(is)330 2107 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i -(\\Opaque".)330 2244 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T) +(is)330 2134 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i +(\\Opaque".)330 2285 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T) -8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fl(asci)r(i)g -Ft(without)330 2354 y(markup,)41 b(T)-8 b(exinfo)40 b(input)f(format,)j -(LaT)1775 2373 y(E)1826 2354 y(X)d(input)g(format,)k -Fl(sgml)c Ft(or)g Fl(xml)g Ft(using)g(a)h(publicly)330 -2463 y(a)m(v)-5 b(ailable)34 b Fl(dtd)p Ft(,)d(and)g -(standard-conforming)g(simple)h Fl(html)p Ft(,)f(P)m(ostScript)h(or)f -Fl(pdf)g Ft(designed)g(for)330 2573 y(h)m(uman)37 b(mo)s(di\014cation.) -65 b(Examples)38 b(of)g(transparen)m(t)g(image)i(formats)e(include)g -Fl(png)p Ft(,)i Fl(x)n(cf)e Ft(and)330 2682 y Fl(jpg)p -Ft(.)63 b(Opaque)38 b(formats)g(include)g(proprietary)g(formats)g(that) -h(can)f(b)s(e)g(read)g(and)f(edited)i(only)330 2792 y(b)m(y)g -(proprietary)g(w)m(ord)g(pro)s(cessors,)j Fl(sgml)c Ft(or)i -Fl(xml)e Ft(for)i(whic)m(h)f(the)g Fl(dtd)g Ft(and/or)g(pro)s(cessing) -330 2902 y(to)s(ols)32 b(are)f(not)g(generally)h(a)m(v)-5 -b(ailable,)34 b(and)c(the)h(mac)m(hine-generated)i Fl(html)p -Ft(,)d(P)m(ostScript)i(or)f Fl(pdf)330 3011 y Ft(pro)s(duced)e(b)m(y)h -(some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8 -b(.)330 3148 y(The)34 b(\\Title)h(P)m(age")i(means,)e(for)f(a)h(prin)m -(ted)f(b)s(o)s(ok,)h(the)f(title)i(page)f(itself,)h(plus)e(suc)m(h)f -(follo)m(wing)330 3258 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)g -(legibly)-8 b(,)30 b(the)e(material)h(this)e(License)i(requires)e(to)h -(app)s(ear)f(in)h(the)330 3367 y(title)g(page.)40 b(F)-8 -b(or)28 b(w)m(orks)e(in)g(formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h -(an)m(y)e(title)j(page)e(as)g(suc)m(h,)g(\\Title)h(P)m(age")330 -3477 y(means)j(the)f(text)i(near)e(the)h(most)g(prominen)m(t)g(app)s -(earance)f(of)h(the)g(w)m(ork's)g(title,)h(preceding)f(the)330 -3587 y(b)s(eginning)f(of)g(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330 -3724 y(A)f(section)h(\\En)m(titled)g(XYZ")f(means)f(a)h(named)g +Ft(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j +(LaT)1759 2414 y(E)1810 2395 y(X)e(input)f(format,)j +Ff(SGML)f Ft(or)f Ff(XML)g Ft(using)g(a)g(publicly)330 +2504 y(a)m(v)-5 b(ailable)42 b Ff(DTD)p Ft(,)g(and)d +(standard-conforming)h(simple)g Ff(HTML)p Ft(,)g(P)m(ostScript)h(or)f +Ff(PDF)g Ft(designed)330 2614 y(for)e(h)m(uman)g(mo)s(di\014cation.)65 +b(Examples)38 b(of)h(transparen)m(t)f(image)i(formats)e(include)g +Ff(PNG)p Ft(,)h Ff(X)n(CF)330 2724 y Ft(and)h Ff(JPG)p +Ft(.)g(Opaque)h(formats)g(include)f(proprietary)g(formats)h(that)h(can) +f(b)s(e)f(read)g(and)h(edited)330 2833 y(only)54 b(b)m(y)f(proprietary) +h(w)m(ord)f(pro)s(cessors,)59 b Ff(SGML)54 b Ft(or)f +Ff(XML)h Ft(for)g(whic)m(h)f(the)h Ff(DTD)g Ft(and/or)330 +2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g(generally)i(a)m(v)-5 +b(ailable,)71 b(and)60 b(the)h(mac)m(hine-generated)j +Ff(HTML)p Ft(,)330 3052 y(P)m(ostScript)31 b(or)f Ff(PDF)h +Ft(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s(cessors)g(for)g(output) +g(purp)s(oses)f(only)-8 b(.)330 3203 y(The)34 b(\\Title)h(P)m(age")i +(means,)e(for)f(a)h(prin)m(ted)f(b)s(o)s(ok,)h(the)f(title)i(page)f +(itself,)h(plus)e(suc)m(h)f(follo)m(wing)330 3313 y(pages)28 +b(as)g(are)g(needed)g(to)g(hold,)g(legibly)-8 b(,)30 +b(the)e(material)h(this)e(License)i(requires)e(to)h(app)s(ear)f(in)h +(the)330 3422 y(title)g(page.)40 b(F)-8 b(or)28 b(w)m(orks)e(in)g +(formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h(an)m(y)e(title)j(page)e +(as)g(suc)m(h,)g(\\Title)h(P)m(age")330 3532 y(means)j(the)f(text)i +(near)e(the)h(most)g(prominen)m(t)g(app)s(earance)f(of)h(the)g(w)m +(ork's)g(title,)h(preceding)f(the)330 3641 y(b)s(eginning)f(of)g(the)h +(b)s(o)s(dy)e(of)h(the)h(text.)330 3792 y(The)j(\\publisher")g(means)h +(an)m(y)f(p)s(erson)g(or)h(en)m(tit)m(y)h(that)f(distributes)f(copies)i +(of)e(the)h(Do)s(cumen)m(t)330 3902 y(to)c(the)g(public.)330 +4052 y(A)f(section)h(\\En)m(titled)g(XYZ")f(means)f(a)h(named)g (subunit)e(of)h(the)h(Do)s(cumen)m(t)h(whose)e(title)i(either)330 -3833 y(is)d(precisely)g(XYZ)g(or)f(con)m(tains)i(XYZ)f(in)f(paren)m +4162 y(is)d(precisely)g(XYZ)g(or)f(con)m(tains)i(XYZ)f(in)f(paren)m (theses)i(follo)m(wing)g(text)g(that)f(translates)h(XYZ)e(in)330 -3943 y(another)e(language.)40 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g +4271 y(another)e(language.)40 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g (sp)s(eci\014c)g(section)h(name)f(men)m(tioned)h(b)s(elo)m(w,)g(suc)m -(h)330 4052 y(as)i(\\Ac)m(kno)m(wledgemen)m(ts",)33 b(\\Dedications",)e +(h)330 4381 y(as)i(\\Ac)m(kno)m(wledgemen)m(ts",)33 b(\\Dedications",)e (\\Endorsemen)m(ts",)e(or)f(\\History".\))42 b(T)-8 b(o)29 -b(\\Preserv)m(e)330 4162 y(the)34 b(Title")h(of)e(suc)m(h)h(a)g +b(\\Preserv)m(e)330 4491 y(the)34 b(Title")h(of)e(suc)m(h)h(a)g (section)g(when)f(y)m(ou)h(mo)s(dify)e(the)i(Do)s(cumen)m(t)h(means)e -(that)h(it)g(remains)g(a)330 4271 y(section)e(\\En)m(titled)f(XYZ")g -(according)g(to)g(this)g(de\014nition.)330 4408 y(The)c(Do)s(cumen)m(t) +(that)h(it)g(remains)g(a)330 4600 y(section)e(\\En)m(titled)f(XYZ")g +(according)g(to)g(this)g(de\014nition.)330 4751 y(The)c(Do)s(cumen)m(t) i(ma)m(y)f(include)f(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)f(next)f(to) -g(the)g(notice)h(whic)m(h)e(states)i(that)330 4518 y(this)34 +g(the)g(notice)h(whic)m(h)e(states)i(that)330 4861 y(this)34 b(License)g(applies)g(to)h(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8 b(arran)m(t)m(y)36 b(Disclaimers)f(are)g(considered)e(to)330 -4628 y(b)s(e)k(included)g(b)m(y)g(reference)h(in)g(this)f(License,)j +4970 y(b)s(e)k(included)g(b)m(y)g(reference)h(in)g(this)f(License,)j (but)d(only)h(as)g(regards)f(disclaiming)i(w)m(arran)m(ties:)330 -4737 y(an)m(y)e(other)g(implication)i(that)e(these)g(W)-8 +5080 y(an)m(y)e(other)g(implication)i(that)e(these)g(W)-8 b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g -(and)f(has)h(no)330 4847 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h -(this)f(License.)199 4984 y(2.)61 b(VERBA)-8 b(TIM)31 -b(COPYING)330 5121 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e -(distribute)h(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g -(commercially)h(or)330 5230 y(noncommercially)-8 b(,)48 -b(pro)m(vided)42 b(that)h(this)f(License,)47 b(the)42 -b(cop)m(yrigh)m(t)i(notices,)j(and)42 b(the)h(license)330 -5340 y(notice)37 b(sa)m(ying)g(this)e(License)i(applies)e(to)i(the)f -(Do)s(cumen)m(t)g(are)g(repro)s(duced)e(in)i(all)g(copies,)j(and)p -eop end +(and)f(has)h(no)330 5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h +(this)f(License.)199 5340 y(2.)61 b(VERBA)-8 b(TIM)31 +b(COPYING)p eop end %%Page: 145 151 TeXDict begin 145 150 bop 150 -116 a Ft(App)s(endix)29 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560 -b(145)330 299 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)h -(whatso)s(ev)m(er)h(to)f(those)g(of)g(this)f(License.)40 -b(Y)-8 b(ou)27 b(ma)m(y)g(not)g(use)330 408 y(tec)m(hnical)35 -b(measures)d(to)i(obstruct)f(or)g(con)m(trol)h(the)f(reading)g(or)g -(further)e(cop)m(ying)j(of)f(the)g(copies)330 518 y(y)m(ou)25 -b(mak)m(e)g(or)g(distribute.)38 b(Ho)m(w)m(ev)m(er,)28 +b(145)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h +(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h +(or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42 +b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j +(and)42 b(the)h(license)330 518 y(notice)37 b(sa)m(ying)g(this)e +(License)i(applies)e(to)i(the)f(Do)s(cumen)m(t)g(are)g(repro)s(duced)e +(in)i(all)g(copies,)j(and)330 628 y(that)27 b(y)m(ou)g(add)f(no)h +(other)f(conditions)h(whatso)s(ev)m(er)h(to)f(those)g(of)g(this)f +(License.)40 b(Y)-8 b(ou)27 b(ma)m(y)g(not)g(use)330 +737 y(tec)m(hnical)35 b(measures)d(to)i(obstruct)f(or)g(con)m(trol)h +(the)f(reading)g(or)g(further)e(cop)m(ying)j(of)f(the)g(copies)330 +847 y(y)m(ou)25 b(mak)m(e)g(or)g(distribute.)38 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h(comp)s(ensation)f(in)f(exc)m(hange)j(for)d -(copies.)330 628 y(If)32 b(y)m(ou)g(distribute)g(a)h(large)g(enough)f +(copies.)330 956 y(If)32 b(y)m(ou)g(distribute)g(a)h(large)g(enough)f (n)m(um)m(b)s(er)f(of)h(copies)h(y)m(ou)f(m)m(ust)h(also)g(follo)m(w)g -(the)f(conditions)330 737 y(in)e(section)i(3.)330 883 +(the)f(conditions)330 1066 y(in)e(section)i(3.)330 1200 y(Y)-8 b(ou)21 b(ma)m(y)h(also)f(lend)g(copies,)i(under)d(the)h(same)g (conditions)g(stated)h(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g -(publicly)330 993 y(displa)m(y)31 b(copies.)199 1139 -y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1285 y(If)25 +(publicly)330 1310 y(displa)m(y)31 b(copies.)199 1443 +y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1577 y(If)25 b(y)m(ou)g(publish)f(prin)m(ted)g(copies)i(\(or)g(copies)g(in)f(media)g (that)h(commonly)g(ha)m(v)m(e)g(prin)m(ted)f(co)m(v)m(ers\))i(of)330 -1395 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)e(more)h(than)f +1687 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)e(more)h(than)f (100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)f(notice)h(requires)330 -1504 y(Co)m(v)m(er)i(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)i +1797 y(Co)m(v)m(er)i(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)i (the)e(copies)h(in)f(co)m(v)m(ers)i(that)f(carry)-8 b(,)36 -b(clearly)f(and)f(legibly)-8 b(,)37 b(all)330 1614 y(these)j(Co)m(v)m +b(clearly)f(and)f(legibly)-8 b(,)37 b(all)330 1906 y(these)j(Co)m(v)m (er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41 b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44 b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330 -1724 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) +2016 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) m(ust)e(also)h(clearly)g(and)f(legibly)h(iden)m(tify)f(y)m(ou)h(as)f -(the)h(publisher)330 1833 y(of)k(these)h(copies.)53 b(The)34 +(the)h(publisher)330 2125 y(of)k(these)h(copies.)53 b(The)34 b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)f(title)i -(with)d(all)j(w)m(ords)d(of)i(the)f(title)330 1943 y(equally)e +(with)d(all)j(w)m(ords)d(of)i(the)f(title)330 2235 y(equally)e (prominen)m(t)e(and)g(visible.)43 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g (other)g(material)h(on)f(the)g(co)m(v)m(ers)h(in)e(addition.)330 -2052 y(Cop)m(ying)36 b(with)g(c)m(hanges)h(limited)g(to)g(the)g(co)m(v) +2345 y(Cop)m(ying)36 b(with)g(c)m(hanges)h(limited)g(to)g(the)g(co)m(v) m(ers,)i(as)d(long)h(as)g(they)f(preserv)m(e)g(the)h(title)g(of)g(the) -330 2162 y(Do)s(cumen)m(t)h(and)e(satisfy)i(these)f(conditions,)j(can)d +330 2454 y(Do)s(cumen)m(t)h(and)e(satisfy)i(these)f(conditions,)j(can)d (b)s(e)g(treated)h(as)f(v)m(erbatim)h(cop)m(ying)g(in)f(other)330 -2271 y(resp)s(ects.)330 2418 y(If)32 b(the)h(required)f(texts)i(for)e +2564 y(resp)s(ects.)330 2698 y(If)32 b(the)h(required)f(texts)i(for)e (either)h(co)m(v)m(er)i(are)e(to)s(o)g(v)m(oluminous)g(to)g(\014t)g -(legibly)-8 b(,)35 b(y)m(ou)e(should)f(put)330 2527 y(the)h(\014rst)f +(legibly)-8 b(,)35 b(y)m(ou)e(should)f(put)330 2807 y(the)h(\014rst)f (ones)h(listed)g(\(as)h(man)m(y)f(as)g(\014t)g(reasonably\))g(on)g(the) g(actual)h(co)m(v)m(er,)h(and)e(con)m(tin)m(ue)h(the)330 -2637 y(rest)d(on)m(to)g(adjacen)m(t)h(pages.)330 2783 +2917 y(rest)d(on)m(to)g(adjacen)m(t)h(pages.)330 3051 y(If)27 b(y)m(ou)g(publish)e(or)i(distribute)g(Opaque)f(copies)i(of)f (the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)f(more)i(than)e(100,)330 -2892 y(y)m(ou)i(m)m(ust)g(either)h(include)e(a)i(mac)m(hine-readable)g +3160 y(y)m(ou)i(m)m(ust)g(either)h(include)e(a)i(mac)m(hine-readable)g (T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)g(with)e(eac)m(h)i(Opaque) -330 3002 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)f(or)g(with)g(eac)m(h)h +330 3270 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)f(or)g(with)g(eac)m(h)h (Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)h(from)d -(whic)m(h)330 3112 y(the)24 b(general)i(net)m(w)m(ork-using)f(public)e +(whic)m(h)330 3380 y(the)24 b(general)i(net)m(w)m(ork-using)f(public)e (has)h(access)i(to)f(do)m(wnload)f(using)g(public-standard)f(net)m(w)m -(ork)330 3221 y(proto)s(cols)40 b(a)f(complete)h(T)-8 +(ork)330 3489 y(proto)s(cols)40 b(a)f(complete)h(T)-8 b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g -(added)f(material.)67 b(If)330 3331 y(y)m(ou)39 b(use)g(the)g(latter)h +(added)f(material.)67 b(If)330 3599 y(y)m(ou)39 b(use)g(the)g(latter)h (option,)h(y)m(ou)f(m)m(ust)e(tak)m(e)j(reasonably)e(pruden)m(t)e -(steps,)k(when)d(y)m(ou)h(b)s(egin)330 3440 y(distribution)f(of)g +(steps,)k(when)d(y)m(ou)h(b)s(egin)330 3708 y(distribution)f(of)g (Opaque)g(copies)h(in)e(quan)m(tit)m(y)-8 b(,)43 b(to)38 b(ensure)g(that)h(this)f(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330 -3550 y(remain)30 b(th)m(us)g(accessible)i(at)f(the)f(stated)h(lo)s +3818 y(remain)30 b(th)m(us)g(accessible)i(at)f(the)f(stated)h(lo)s (cation)h(un)m(til)e(at)h(least)h(one)e(y)m(ear)h(after)g(the)f(last)h -(time)330 3660 y(y)m(ou)37 b(distribute)f(an)h(Opaque)f(cop)m(y)i +(time)330 3927 y(y)m(ou)37 b(distribute)f(an)h(Opaque)f(cop)m(y)i (\(directly)g(or)e(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))h -(of)f(that)330 3769 y(edition)31 b(to)g(the)g(public.)330 -3915 y(It)k(is)f(requested,)i(but)e(not)h(required,)g(that)g(y)m(ou)g +(of)f(that)330 4037 y(edition)31 b(to)g(the)g(public.)330 +4171 y(It)k(is)f(requested,)i(but)e(not)h(required,)g(that)g(y)m(ou)g (con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330 -4025 y(b)s(efore)28 b(redistributing)g(an)m(y)h(large)h(n)m(um)m(b)s +4281 y(b)s(efore)28 b(redistributing)g(an)m(y)h(large)h(n)m(um)m(b)s (er)d(of)i(copies,)h(to)f(giv)m(e)h(them)f(a)g(c)m(hance)h(to)f(pro)m -(vide)g(y)m(ou)330 4134 y(with)h(an)g(up)s(dated)f(v)m(ersion)i(of)g -(the)f(Do)s(cumen)m(t.)199 4281 y(4.)61 b(MODIFICA)-8 -b(TIONS)330 4427 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)g(a) +(vide)g(y)m(ou)330 4390 y(with)h(an)g(up)s(dated)f(v)m(ersion)i(of)g +(the)f(Do)s(cumen)m(t.)199 4524 y(4.)61 b(MODIFICA)-8 +b(TIONS)330 4658 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)g(a) h(Mo)s(di\014ed)f(V)-8 b(ersion)26 b(of)g(the)g(Do)s(cumen)m(t)g(under) -e(the)h(conditions)330 4536 y(of)c(sections)h(2)g(and)e(3)h(ab)s(o)m(v) +e(the)h(conditions)330 4768 y(of)c(sections)h(2)g(and)e(3)h(ab)s(o)m(v) m(e,)k(pro)m(vided)20 b(that)i(y)m(ou)f(release)i(the)e(Mo)s(di\014ed)f -(V)-8 b(ersion)22 b(under)d(precisely)330 4646 y(this)29 +(V)-8 b(ersion)22 b(under)d(precisely)330 4877 y(this)29 b(License,)h(with)f(the)g(Mo)s(di\014ed)f(V)-8 b(ersion)30 b(\014lling)f(the)g(role)h(of)f(the)g(Do)s(cumen)m(t,)h(th)m(us)f -(licensing)330 4755 y(distribution)k(and)h(mo)s(di\014cation)g(of)h +(licensing)330 4987 y(distribution)k(and)h(mo)s(di\014cation)g(of)h (the)f(Mo)s(di\014ed)f(V)-8 b(ersion)35 b(to)g(who)s(ev)m(er)f(p)s -(ossesses)f(a)i(cop)m(y)g(of)330 4865 y(it.)41 b(In)30 +(ossesses)f(a)i(cop)m(y)g(of)330 5096 y(it.)41 b(In)30 b(addition,)h(y)m(ou)f(m)m(ust)h(do)f(these)h(things)f(in)g(the)h(Mo)s -(di\014ed)e(V)-8 b(ersion:)357 5011 y(A.)60 b(Use)33 +(di\014ed)e(V)-8 b(ersion:)357 5230 y(A.)60 b(Use)33 b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e (an)m(y\))g(a)g(title)h(distinct)f(from)g(that)g(of)g(the)510 -5121 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m +5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m (ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8 -b(,)510 5230 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g -(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same) -h(title)h(as)510 5340 y(a)e(previous)f(v)m(ersion)g(if)h(the)f -(original)i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s -(ermission.)p eop end +b(,)p eop end %%Page: 146 152 TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31 -b(Reference)g(Man)m(ual)360 299 y(B.)61 b(List)31 b(on)f(the)h(Title)g -(P)m(age,)i(as)d(authors,)h(one)g(or)f(more)h(p)s(ersons)e(or)h(en)m -(tities)j(resp)s(onsible)c(for)510 408 y(authorship)c(of)h(the)h(mo)s -(di\014cations)f(in)g(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)28 -b(together)g(with)d(at)i(least)h(\014v)m(e)510 518 y(of)c(the)g -(principal)g(authors)f(of)i(the)f(Do)s(cumen)m(t)g(\(all)h(of)g(its)f -(principal)g(authors,)h(if)f(it)g(has)g(few)m(er)510 -628 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g(y)m(ou)g(from) -f(this)g(requiremen)m(t.)359 766 y(C.)60 b(State)32 b(on)e(the)h(Title) -h(page)f(the)g(name)g(of)g(the)g(publisher)e(of)i(the)g(Mo)s(di\014ed)f -(V)-8 b(ersion,)32 b(as)f(the)510 876 y(publisher.)355 -1015 y(D.)61 b(Preserv)m(e)31 b(all)g(the)g(cop)m(yrigh)m(t)h(notices)f -(of)g(the)f(Do)s(cumen)m(t.)363 1154 y(E.)60 b(Add)30 -b(an)i(appropriate)f(cop)m(yrigh)m(t)i(notice)f(for)g(y)m(our)f(mo)s -(di\014cations)g(adjacen)m(t)i(to)f(the)g(other)510 1263 -y(cop)m(yrigh)m(t)g(notices.)365 1402 y(F.)61 b(Include,)28 -b(immediately)h(after)f(the)h(cop)m(yrigh)m(t)g(notices,)h(a)e(license) -h(notice)g(giving)g(the)f(public)510 1512 y(p)s(ermission)23 -b(to)j(use)e(the)g(Mo)s(di\014ed)g(V)-8 b(ersion)25 b(under)e(the)i -(terms)f(of)h(this)f(License,)j(in)d(the)g(form)510 1621 -y(sho)m(wn)30 b(in)g(the)g(Addendum)f(b)s(elo)m(w.)353 -1760 y(G.)61 b(Preserv)m(e)23 b(in)g(that)g(license)h(notice)g(the)f +b(Reference)g(Man)m(ual)510 299 y(b)s(e)g(listed)h(in)f(the)g(History)h +(section)g(of)g(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 +b(ma)m(y)g(use)f(the)g(same)h(title)h(as)510 408 y(a)e(previous)f(v)m +(ersion)g(if)h(the)f(original)i(publisher)d(of)h(that)h(v)m(ersion)g +(giv)m(es)h(p)s(ermission.)360 545 y(B.)61 b(List)31 +b(on)f(the)h(Title)g(P)m(age,)i(as)d(authors,)h(one)g(or)f(more)h(p)s +(ersons)e(or)h(en)m(tities)j(resp)s(onsible)c(for)510 +655 y(authorship)c(of)h(the)h(mo)s(di\014cations)f(in)g(the)g(Mo)s +(di\014ed)f(V)-8 b(ersion,)28 b(together)g(with)d(at)i(least)h(\014v)m +(e)510 765 y(of)c(the)g(principal)g(authors)f(of)i(the)f(Do)s(cumen)m +(t)g(\(all)h(of)g(its)f(principal)g(authors,)h(if)f(it)g(has)g(few)m +(er)510 874 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g(y)m +(ou)g(from)f(this)g(requiremen)m(t.)359 1011 y(C.)60 +b(State)32 b(on)e(the)h(Title)h(page)f(the)g(name)g(of)g(the)g +(publisher)e(of)i(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)32 +b(as)f(the)510 1121 y(publisher.)355 1258 y(D.)61 b(Preserv)m(e)31 +b(all)g(the)g(cop)m(yrigh)m(t)h(notices)f(of)g(the)f(Do)s(cumen)m(t.) +363 1395 y(E.)60 b(Add)30 b(an)i(appropriate)f(cop)m(yrigh)m(t)i +(notice)f(for)g(y)m(our)f(mo)s(di\014cations)g(adjacen)m(t)i(to)f(the)g +(other)510 1504 y(cop)m(yrigh)m(t)g(notices.)365 1641 +y(F.)61 b(Include,)28 b(immediately)h(after)f(the)h(cop)m(yrigh)m(t)g +(notices,)h(a)e(license)h(notice)g(giving)g(the)f(public)510 +1751 y(p)s(ermission)23 b(to)j(use)e(the)g(Mo)s(di\014ed)g(V)-8 +b(ersion)25 b(under)e(the)i(terms)f(of)h(this)f(License,)j(in)d(the)g +(form)510 1861 y(sho)m(wn)30 b(in)g(the)g(Addendum)f(b)s(elo)m(w.)353 +1998 y(G.)61 b(Preserv)m(e)23 b(in)g(that)g(license)h(notice)g(the)f (full)g(lists)g(of)g(In)m(v)-5 b(arian)m(t)23 b(Sections)h(and)e -(required)g(Co)m(v)m(er)510 1870 y(T)-8 b(exts)31 b(giv)m(en)g(in)f -(the)h(Do)s(cumen)m(t's)g(license)h(notice.)357 2008 +(required)g(Co)m(v)m(er)510 2107 y(T)-8 b(exts)31 b(giv)m(en)g(in)f +(the)h(Do)s(cumen)m(t's)g(license)h(notice.)357 2244 y(H.)60 b(Include)30 b(an)g(unaltered)g(cop)m(y)h(of)g(this)f(License.) -392 2147 y(I.)60 b(Preserv)m(e)33 b(the)f(section)h(En)m(titled)g +392 2381 y(I.)60 b(Preserv)m(e)33 b(the)f(section)h(En)m(titled)g (\\History",)h(Preserv)m(e)f(its)f(Title,)i(and)d(add)h(to)h(it)f(an)g -(item)510 2257 y(stating)d(at)g(least)g(the)g(title,)h(y)m(ear,)g(new)d +(item)510 2491 y(stating)d(at)g(least)g(the)g(title,)h(y)m(ear,)g(new)d (authors,)i(and)e(publisher)f(of)j(the)f(Mo)s(di\014ed)f(V)-8 -b(ersion)510 2366 y(as)32 b(giv)m(en)g(on)f(the)h(Title)g(P)m(age.)45 +b(ersion)510 2600 y(as)32 b(giv)m(en)g(on)f(the)h(Title)g(P)m(age.)45 b(If)31 b(there)h(is)f(no)g(section)i(En)m(titled)f(\\History")h(in)e -(the)g(Do)s(cu-)510 2476 y(men)m(t,)37 b(create)f(one)f(stating)h(the)f +(the)g(Do)s(cu-)510 2710 y(men)m(t,)37 b(create)f(one)f(stating)h(the)f (title,)i(y)m(ear,)g(authors,)f(and)e(publisher)f(of)i(the)g(Do)s -(cumen)m(t)510 2586 y(as)h(giv)m(en)h(on)f(its)h(Title)g(P)m(age,)i +(cumen)m(t)510 2819 y(as)h(giv)m(en)h(on)f(its)h(Title)g(P)m(age,)i (then)d(add)g(an)g(item)g(describing)g(the)g(Mo)s(di\014ed)g(V)-8 -b(ersion)37 b(as)510 2695 y(stated)31 b(in)f(the)h(previous)f(sen)m -(tence.)378 2834 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s +b(ersion)37 b(as)510 2929 y(stated)31 b(in)f(the)h(previous)f(sen)m +(tence.)378 3066 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s (cation,)i(if)d(an)m(y)-8 b(,)34 b(giv)m(en)f(in)g(the)f(Do)s(cumen)m -(t)h(for)g(public)e(access)j(to)510 2944 y(a)e(T)-8 b(ransparen)m(t)30 +(t)h(for)g(public)e(access)j(to)510 3176 y(a)e(T)-8 b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m(ewise)h(the)g(net) -m(w)m(ork)g(lo)s(cations)g(giv)m(en)g(in)510 3053 y(the)g(Do)s(cumen)m +m(w)m(ork)g(lo)s(cations)g(giv)m(en)g(in)510 3285 y(the)g(Do)s(cumen)m (t)g(for)g(previous)f(v)m(ersions)h(it)g(w)m(as)g(based)f(on.)45 -b(These)31 b(ma)m(y)h(b)s(e)f(placed)h(in)g(the)510 3163 +b(These)31 b(ma)m(y)h(b)s(e)f(placed)h(in)g(the)510 3395 y(\\History")27 b(section.)40 b(Y)-8 b(ou)25 b(ma)m(y)h(omit)g(a)f(net) m(w)m(ork)h(lo)s(cation)g(for)f(a)h(w)m(ork)f(that)g(w)m(as)h -(published)510 3272 y(at)36 b(least)h(four)e(y)m(ears)i(b)s(efore)e +(published)510 3504 y(at)36 b(least)h(four)e(y)m(ears)i(b)s(efore)e (the)h(Do)s(cumen)m(t)h(itself,)h(or)d(if)h(the)g(original)h(publisher) -d(of)i(the)510 3382 y(v)m(ersion)31 b(it)g(refers)f(to)h(giv)m(es)h(p)s -(ermission.)354 3521 y(K.)60 b(F)-8 b(or)24 b(an)m(y)h(section)f(En)m +d(of)i(the)510 3614 y(v)m(ersion)31 b(it)g(refers)f(to)h(giv)m(es)h(p)s +(ermission.)354 3751 y(K.)60 b(F)-8 b(or)24 b(an)m(y)h(section)f(En)m (titled)h(\\Ac)m(kno)m(wledgemen)m(ts")i(or)d(\\Dedications",)k -(Preserv)m(e)c(the)g(Title)510 3630 y(of)j(the)f(section,)j(and)d +(Preserv)m(e)c(the)g(Title)510 3861 y(of)j(the)f(section,)j(and)d (preserv)m(e)h(in)f(the)h(section)g(all)h(the)e(substance)h(and)f(tone) -h(of)f(eac)m(h)i(of)f(the)510 3740 y(con)m(tributor)k(ac)m(kno)m +h(of)f(eac)m(h)i(of)f(the)510 3970 y(con)m(tributor)k(ac)m(kno)m (wledgemen)m(ts)i(and/or)d(dedications)h(giv)m(en)h(therein.)368 -3879 y(L.)60 b(Preserv)m(e)36 b(all)g(the)g(In)m(v)-5 +4107 y(L.)60 b(Preserv)m(e)36 b(all)g(the)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(of)f(the)h(Do)s(cumen)m(t,)h(unaltered)f -(in)f(their)g(text)i(and)510 3988 y(in)f(their)g(titles.)58 +(in)f(their)g(text)i(and)510 4217 y(in)f(their)g(titles.)58 b(Section)37 b(n)m(um)m(b)s(ers)d(or)i(the)g(equiv)-5 b(alen)m(t)38 b(are)e(not)g(considered)g(part)g(of)g(the)510 -4098 y(section)c(titles.)341 4237 y(M.)61 b(Delete)33 +4326 y(section)c(titles.)341 4463 y(M.)61 b(Delete)33 b(an)m(y)e(section)h(En)m(titled)f(\\Endorsemen)m(ts".)42 b(Suc)m(h)30 b(a)i(section)f(ma)m(y)h(not)f(b)s(e)f(included)510 -4346 y(in)g(the)h(Mo)s(di\014ed)e(V)-8 b(ersion.)357 -4485 y(N.)60 b(Do)29 b(not)g(retitle)h(an)m(y)e(existing)i(section)f +4573 y(in)g(the)h(Mo)s(di\014ed)e(V)-8 b(ersion.)357 +4710 y(N.)60 b(Do)29 b(not)g(retitle)h(an)m(y)e(existing)i(section)f (to)g(b)s(e)f(En)m(titled)h(\\Endorsemen)m(ts")g(or)f(to)h(con\015ict)g -(in)510 4595 y(title)j(with)e(an)m(y)h(In)m(v)-5 b(arian)m(t)31 -b(Section.)354 4734 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 -b(arran)m(t)m(y)32 b(Disclaimers.)330 4902 y(If)h(the)g(Mo)s(di\014ed)g +(in)510 4819 y(title)j(with)e(an)m(y)h(In)m(v)-5 b(arian)m(t)31 +b(Section.)354 4956 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 +b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g (V)-8 b(ersion)34 b(includes)f(new)g(fron)m(t-matter)i(sections)f(or)f -(app)s(endices)g(that)h(qualify)330 5011 y(as)28 b(Secondary)g +(app)s(endices)g(that)h(qualify)330 5230 y(as)28 b(Secondary)g (Sections)g(and)f(con)m(tain)j(no)d(material)j(copied)e(from)f(the)h -(Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)330 5121 y(y)m(our)k(option)h +(Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)330 5340 y(y)m(our)k(option)h (designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5 -b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)330 -5230 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 b(arian)m(t)36 -b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8 b(ersion's)36 -b(license)g(notice.)57 b(These)330 5340 y(titles)32 b(m)m(ust)e(b)s(e)g -(distinct)h(from)e(an)m(y)i(other)g(section)g(titles.)p +b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p eop end %%Page: 147 153 TeXDict begin 147 152 bop 150 -116 a Ft(App)s(endix)29 b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560 -b(147)330 299 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section)i(En)m -(titled)f(\\Endorsemen)m(ts",)j(pro)m(vided)c(it)h(con)m(tains)g -(nothing)g(but)330 408 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s +b(147)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 +b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8 +b(ersion's)36 b(license)g(notice.)57 b(These)330 408 +y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g +(section)g(titles.)330 551 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section) +i(En)m(titled)f(\\Endorsemen)m(ts",)j(pro)m(vided)c(it)h(con)m(tains)g +(nothing)g(but)330 661 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s (di\014ed)g(V)-8 b(ersion)31 b(b)m(y)e(v)-5 b(arious)30 -b(parties|for)g(example,)g(statemen)m(ts)i(of)330 518 +b(parties|for)g(example,)g(statemen)m(ts)i(of)330 770 y(p)s(eer)27 b(review)g(or)g(that)h(the)f(text)i(has)d(b)s(een)h(appro) m(v)m(ed)g(b)m(y)g(an)h(organization)h(as)e(the)h(authoritativ)m(e)330 -628 y(de\014nition)i(of)h(a)f(standard.)330 757 y(Y)-8 +880 y(de\014nition)i(of)h(a)f(standard.)330 1022 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g(up)e(to)i(\014v)m(e)g(w)m (ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er)30 b(T)-8 -b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 867 y(to)g(25)g(w)m(ords)e +b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 1132 y(to)g(25)g(w)m(ords)e (as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext,)29 b(to)f(the)f(end)f(of)i (the)f(list)h(of)f(Co)m(v)m(er)h(T)-8 b(exts)27 b(in)g(the)h(Mo)s -(di\014ed)330 976 y(V)-8 b(ersion.)58 b(Only)35 b(one)h(passage)h(of)f +(di\014ed)330 1241 y(V)-8 b(ersion.)58 b(Only)35 b(one)h(passage)h(of)f (F)-8 b(ron)m(t-Co)m(v)m(er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m -(k-Co)m(v)m(er)j(T)-8 b(ext)36 b(ma)m(y)h(b)s(e)330 1086 +(k-Co)m(v)m(er)j(T)-8 b(ext)36 b(ma)m(y)h(b)s(e)330 1351 y(added)27 b(b)m(y)g(\(or)h(through)f(arrangemen)m(ts)h(made)g(b)m(y\)) g(an)m(y)g(one)f(en)m(tit)m(y)-8 b(.)42 b(If)27 b(the)h(Do)s(cumen)m(t) -g(already)330 1196 y(includes)34 b(a)g(co)m(v)m(er)h(text)g(for)f(the)g +g(already)330 1461 y(includes)34 b(a)g(co)m(v)m(er)h(text)g(for)f(the)g (same)h(co)m(v)m(er,)h(previously)e(added)f(b)m(y)h(y)m(ou)g(or)g(b)m -(y)g(arrangemen)m(t)330 1305 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m +(y)g(arrangemen)m(t)330 1570 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m (y)i(y)m(ou)f(are)f(acting)i(on)e(b)s(ehalf)f(of,)j(y)m(ou)f(ma)m(y)g -(not)f(add)g(another;)j(but)330 1415 y(y)m(ou)c(ma)m(y)h(replace)g(the) +(not)f(add)g(another;)j(but)330 1680 y(y)m(ou)c(ma)m(y)h(replace)g(the) f(old)g(one,)i(on)e(explicit)h(p)s(ermission)e(from)g(the)i(previous)e -(publisher)f(that)330 1524 y(added)e(the)g(old)h(one.)330 -1654 y(The)25 b(author\(s\))h(and)f(publisher\(s\))f(of)i(the)f(Do)s +(publisher)f(that)330 1789 y(added)e(the)g(old)h(one.)330 +1932 y(The)25 b(author\(s\))h(and)f(publisher\(s\))f(of)i(the)f(Do)s (cumen)m(t)h(do)g(not)f(b)m(y)h(this)f(License)h(giv)m(e)h(p)s -(ermission)330 1763 y(to)k(use)f(their)g(names)h(for)f(publicit)m(y)g +(ermission)330 2041 y(to)k(use)f(their)g(names)h(for)f(publicit)m(y)g (for)h(or)f(to)h(assert)g(or)f(imply)g(endorsemen)m(t)g(of)h(an)m(y)g -(Mo)s(di\014ed)330 1873 y(V)-8 b(ersion.)199 2002 y(5.)61 -b(COMBINING)31 b(DOCUMENTS)330 2132 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m +(Mo)s(di\014ed)330 2151 y(V)-8 b(ersion.)199 2293 y(5.)61 +b(COMBINING)31 b(DOCUMENTS)330 2436 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m (bine)h(the)f(Do)s(cumen)m(t)g(with)g(other)f(do)s(cumen)m(ts)h -(released)g(under)f(this)g(License,)330 2242 y(under)f(the)h(terms)g +(released)g(under)f(this)g(License,)330 2545 y(under)f(the)h(terms)g (de\014ned)f(in)h(section)h(4)g(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)f -(v)m(ersions,)k(pro)m(vided)d(that)h(y)m(ou)330 2351 +(v)m(ersions,)k(pro)m(vided)d(that)h(y)m(ou)330 2655 y(include)25 b(in)g(the)g(com)m(bination)i(all)f(of)g(the)f(In)m(v)-5 b(arian)m(t)26 b(Sections)g(of)g(all)g(of)f(the)h(original)g(do)s -(cumen)m(ts,)330 2461 y(unmo)s(di\014ed,)g(and)g(list)h(them)g(all)g +(cumen)m(ts,)330 2765 y(unmo)s(di\014ed,)g(and)g(list)h(them)g(all)g (as)g(In)m(v)-5 b(arian)m(t)28 b(Sections)f(of)g(y)m(our)g(com)m(bined) -g(w)m(ork)f(in)h(its)g(license)330 2570 y(notice,)32 +g(w)m(ork)f(in)h(its)g(license)330 2874 y(notice,)32 b(and)e(that)h(y)m(ou)f(preserv)m(e)h(all)g(their)g(W)-8 -b(arran)m(t)m(y)32 b(Disclaimers.)330 2700 y(The)e(com)m(bined)g(w)m +b(arran)m(t)m(y)32 b(Disclaimers.)330 3017 y(The)e(com)m(bined)g(w)m (ork)h(need)e(only)i(con)m(tain)g(one)g(cop)m(y)g(of)f(this)g(License,) -i(and)d(m)m(ultiple)i(iden)m(tical)330 2809 y(In)m(v)-5 +i(and)d(m)m(ultiple)i(iden)m(tical)330 3126 y(In)m(v)-5 b(arian)m(t)33 b(Sections)g(ma)m(y)g(b)s(e)f(replaced)h(with)f(a)h (single)g(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)g(In)m -(v)-5 b(arian)m(t)330 2919 y(Sections)27 b(with)g(the)g(same)g(name)g +(v)-5 b(arian)m(t)330 3236 y(Sections)27 b(with)g(the)g(same)g(name)g (but)f(di\013eren)m(t)h(con)m(ten)m(ts,)i(mak)m(e)f(the)f(title)h(of)f -(eac)m(h)h(suc)m(h)f(section)330 3029 y(unique)33 b(b)m(y)h(adding)f +(eac)m(h)h(suc)m(h)f(section)330 3345 y(unique)33 b(b)m(y)h(adding)f (at)i(the)f(end)g(of)g(it,)h(in)f(paren)m(theses,)i(the)e(name)g(of)g -(the)g(original)h(author)f(or)330 3138 y(publisher)23 +(the)g(original)h(author)f(or)330 3455 y(publisher)23 b(of)i(that)h(section)g(if)f(kno)m(wn,)h(or)f(else)h(a)f(unique)f(n)m (um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330 -3248 y(to)g(the)g(section)g(titles)h(in)e(the)h(list)g(of)f(In)m(v)-5 +3565 y(to)g(the)g(section)g(titles)h(in)e(the)h(list)g(of)f(In)m(v)-5 b(arian)m(t)26 b(Sections)f(in)f(the)g(license)i(notice)g(of)e(the)h -(com)m(bined)330 3357 y(w)m(ork.)330 3487 y(In)41 b(the)g(com)m +(com)m(bined)330 3674 y(w)m(ork.)330 3817 y(In)41 b(the)g(com)m (bination,)46 b(y)m(ou)41 b(m)m(ust)g(com)m(bine)h(an)m(y)g(sections)g (En)m(titled)g(\\History")h(in)e(the)g(v)-5 b(ari-)330 -3597 y(ous)32 b(original)h(do)s(cumen)m(ts,)g(forming)f(one)g(section)h +3926 y(ous)32 b(original)h(do)s(cumen)m(ts,)g(forming)f(one)g(section)h (En)m(titled)g(\\History";)i(lik)m(ewise)f(com)m(bine)f(an)m(y)330 -3706 y(sections)g(En)m(titled)f(\\Ac)m(kno)m(wledgemen)m(ts",)k(and)31 +4036 y(sections)g(En)m(titled)f(\\Ac)m(kno)m(wledgemen)m(ts",)k(and)31 b(an)m(y)h(sections)h(En)m(titled)g(\\Dedications".)47 -b(Y)-8 b(ou)330 3816 y(m)m(ust)30 b(delete)i(all)f(sections)h(En)m -(titled)f(\\Endorsemen)m(ts.")199 3945 y(6.)61 b(COLLECTIONS)28 -b(OF)i(DOCUMENTS)330 4075 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f +b(Y)-8 b(ou)330 4145 y(m)m(ust)30 b(delete)i(all)f(sections)h(En)m +(titled)f(\\Endorsemen)m(ts.")199 4288 y(6.)61 b(COLLECTIONS)28 +b(OF)i(DOCUMENTS)330 4430 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f (collection)i(consisting)f(of)f(the)g(Do)s(cumen)m(t)g(and)g(other)g -(do)s(cumen)m(ts)f(released)330 4184 y(under)41 b(this)h(License,)k +(do)s(cumen)m(ts)f(released)330 4540 y(under)41 b(this)h(License,)k (and)c(replace)h(the)g(individual)f(copies)h(of)f(this)g(License)h(in)f -(the)h(v)-5 b(arious)330 4294 y(do)s(cumen)m(ts)42 b(with)g(a)h(single) +(the)h(v)-5 b(arious)330 4650 y(do)s(cumen)m(ts)42 b(with)g(a)h(single) g(cop)m(y)h(that)f(is)f(included)g(in)g(the)h(collection,)48 -b(pro)m(vided)42 b(that)i(y)m(ou)330 4403 y(follo)m(w)38 +b(pro)m(vided)42 b(that)i(y)m(ou)330 4759 y(follo)m(w)38 b(the)g(rules)e(of)h(this)g(License)h(for)f(v)m(erbatim)h(cop)m(ying)g (of)f(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)h(all)330 -4513 y(other)31 b(resp)s(ects.)330 4643 y(Y)-8 b(ou)32 +4869 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32 b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h (collection,)i(and)d(distribute)g(it)h(individu-)330 -4752 y(ally)k(under)d(this)i(License,)i(pro)m(vided)e(y)m(ou)g(insert)g +5121 y(ally)k(under)d(this)i(License,)i(pro)m(vided)e(y)m(ou)g(insert)g (a)g(cop)m(y)h(of)f(this)g(License)g(in)m(to)h(the)g(extracted)330 -4862 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g +5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330 -4971 y(that)d(do)s(cumen)m(t.)199 5101 y(7.)61 b(A)m(GGREGA)-8 -b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 5230 y(A)d(compilation)i -(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30 -b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330 -5340 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m -(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called)p -eop end +5340 y(that)d(do)s(cumen)m(t.)p eop end %%Page: 148 154 TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31 -b(Reference)g(Man)m(ual)330 299 y(an)f(\\aggregate")k(if)c(the)g(cop)m -(yrigh)m(t)i(resulting)e(from)f(the)i(compilation)g(is)f(not)h(used)e -(to)i(limit)g(the)330 408 y(legal)d(righ)m(ts)f(of)g(the)g -(compilation's)h(users)e(b)s(ey)m(ond)g(what)g(the)h(individual)f(w)m -(orks)g(p)s(ermit.)39 b(When)330 518 y(the)g(Do)s(cumen)m(t)g(is)f -(included)g(in)g(an)g(aggregate,)44 b(this)38 b(License)h(do)s(es)f -(not)h(apply)f(to)h(the)g(other)330 628 y(w)m(orks)30 -b(in)g(the)h(aggregate)i(whic)m(h)d(are)h(not)g(themselv)m(es)g(deriv) --5 b(ativ)m(e)32 b(w)m(orks)f(of)f(the)h(Do)s(cumen)m(t.)330 -762 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 b(ext)23 b(requiremen)m(t)g(of)g -(section)h(3)f(is)g(applicable)h(to)f(these)h(copies)f(of)g(the)g(Do)s -(cumen)m(t,)330 872 y(then)f(if)g(the)h(Do)s(cumen)m(t)g(is)g(less)f -(than)g(one)h(half)f(of)h(the)g(en)m(tire)g(aggregate,)k(the)c(Do)s -(cumen)m(t's)g(Co)m(v)m(er)330 981 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f -(placed)h(on)g(co)m(v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m -(t)g(within)f(the)h(aggregate,)j(or)d(the)330 1091 y(electronic)37 -b(equiv)-5 b(alen)m(t)36 b(of)g(co)m(v)m(ers)g(if)f(the)g(Do)s(cumen)m -(t)h(is)f(in)g(electronic)i(form.)54 b(Otherwise)35 b(they)330 -1200 y(m)m(ust)30 b(app)s(ear)g(on)g(prin)m(ted)g(co)m(v)m(ers)i(that)f -(brac)m(k)m(et)h(the)f(whole)f(aggregate.)199 1335 y(8.)61 -b(TRANSLA)-8 b(TION)330 1469 y(T)g(ranslation)41 b(is)f(considered)f(a) +b(Reference)g(Man)m(ual)199 299 y(7.)61 b(A)m(GGREGA)-8 +b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i +(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30 +b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330 +551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m +(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called) +330 661 y(an)c(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i(resulting)e +(from)f(the)i(compilation)g(is)f(not)h(used)e(to)i(limit)g(the)330 +770 y(legal)d(righ)m(ts)f(of)g(the)g(compilation's)h(users)e(b)s(ey)m +(ond)g(what)g(the)h(individual)f(w)m(orks)g(p)s(ermit.)39 +b(When)330 880 y(the)g(Do)s(cumen)m(t)g(is)f(included)g(in)g(an)g +(aggregate,)44 b(this)38 b(License)h(do)s(es)f(not)h(apply)f(to)h(the)g +(other)330 989 y(w)m(orks)30 b(in)g(the)h(aggregate)i(whic)m(h)d(are)h +(not)g(themselv)m(es)g(deriv)-5 b(ativ)m(e)32 b(w)m(orks)f(of)f(the)h +(Do)s(cumen)m(t.)330 1132 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 +b(ext)23 b(requiremen)m(t)g(of)g(section)h(3)f(is)g(applicable)h(to)f +(these)h(copies)f(of)g(the)g(Do)s(cumen)m(t,)330 1241 +y(then)f(if)g(the)h(Do)s(cumen)m(t)g(is)g(less)f(than)g(one)h(half)f +(of)h(the)g(en)m(tire)g(aggregate,)k(the)c(Do)s(cumen)m(t's)g(Co)m(v)m +(er)330 1351 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)h(on)g(co)m(v)m +(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)f(the)h +(aggregate,)j(or)d(the)330 1461 y(electronic)37 b(equiv)-5 +b(alen)m(t)36 b(of)g(co)m(v)m(ers)g(if)f(the)g(Do)s(cumen)m(t)h(is)f +(in)g(electronic)i(form.)54 b(Otherwise)35 b(they)330 +1570 y(m)m(ust)30 b(app)s(ear)g(on)g(prin)m(ted)g(co)m(v)m(ers)i(that)f +(brac)m(k)m(et)h(the)f(whole)f(aggregate.)199 1713 y(8.)61 +b(TRANSLA)-8 b(TION)330 1855 y(T)g(ranslation)41 b(is)f(considered)f(a) i(kind)e(of)h(mo)s(di\014cation,)j(so)d(y)m(ou)g(ma)m(y)h(distribute)e -(translations)330 1579 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h +(translations)330 1965 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h (terms)h(of)f(section)i(4.)83 b(Replacing)45 b(In)m(v)-5 -b(arian)m(t)45 b(Sections)g(with)330 1689 y(translations)h(requires)f +b(arian)m(t)45 b(Sections)g(with)330 2074 y(translations)h(requires)f (sp)s(ecial)h(p)s(ermission)f(from)g(their)g(cop)m(yrigh)m(t)i -(holders,)i(but)c(y)m(ou)g(ma)m(y)330 1798 y(include)24 +(holders,)i(but)c(y)m(ou)g(ma)m(y)330 2184 y(include)24 b(translations)i(of)e(some)h(or)g(all)g(In)m(v)-5 b(arian)m(t)25 b(Sections)g(in)f(addition)h(to)g(the)g(original)h(v)m(ersions)330 -1908 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)33 b(Sections.)44 +2293 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)33 b(Sections.)44 b(Y)-8 b(ou)32 b(ma)m(y)g(include)f(a)h(translation)g(of)g(this)f -(License,)i(and)d(all)j(the)330 2017 y(license)42 b(notices)g(in)f(the) +(License,)i(and)d(all)j(the)330 2403 y(license)42 b(notices)g(in)f(the) h(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42 -b(Disclaimers,)k(pro)m(vided)41 b(that)h(y)m(ou)330 2127 +b(Disclaimers,)k(pro)m(vided)41 b(that)h(y)m(ou)330 2513 y(also)f(include)f(the)g(original)h(English)f(v)m(ersion)g(of)g(this)g (License)h(and)e(the)h(original)h(v)m(ersions)g(of)330 -2237 y(those)35 b(notices)g(and)e(disclaimers.)53 b(In)33 +2622 y(those)35 b(notices)g(and)e(disclaimers.)53 b(In)33 b(case)i(of)g(a)f(disagreemen)m(t)h(b)s(et)m(w)m(een)g(the)f -(translation)i(and)330 2346 y(the)f(original)i(v)m(ersion)e(of)h(this)f +(translation)i(and)330 2732 y(the)f(original)i(v)m(ersion)e(of)h(this)f (License)h(or)f(a)g(notice)i(or)e(disclaimer,)i(the)f(original)g(v)m -(ersion)g(will)330 2456 y(prev)-5 b(ail.)330 2590 y(If)28 +(ersion)g(will)330 2841 y(prev)-5 b(ail.)330 2984 y(If)28 b(a)h(section)h(in)e(the)h(Do)s(cumen)m(t)h(is)e(En)m(titled)i(\\Ac)m (kno)m(wledgemen)m(ts",)i(\\Dedications",)g(or)d(\\His-)330 -2700 y(tory",)f(the)f(requiremen)m(t)f(\(section)i(4\))f(to)g(Preserv)m +3093 y(tory",)f(the)f(requiremen)m(t)f(\(section)i(4\))f(to)g(Preserv)m (e)g(its)f(Title)i(\(section)f(1\))g(will)g(t)m(ypically)h(require)330 -2809 y(c)m(hanging)j(the)g(actual)h(title.)199 2944 y(9.)61 -b(TERMINA)-8 b(TION)330 3078 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m(y)-8 +3203 y(c)m(hanging)j(the)g(actual)h(title.)199 3345 y(9.)61 +b(TERMINA)-8 b(TION)330 3488 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m(y)-8 b(,)31 b(mo)s(dify)-8 b(,)30 b(sublicense,)g(or)g(distribute)f(the)h -(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3188 y(pro)m(vided)41 -b(for)h(under)e(this)i(License.)75 b(An)m(y)42 b(other)g(attempt)h(to)g -(cop)m(y)-8 b(,)46 b(mo)s(dify)-8 b(,)44 b(sublicense)e(or)330 -3298 y(distribute)36 b(the)h(Do)s(cumen)m(t)g(is)g(v)m(oid,)i(and)d -(will)h(automatically)i(terminate)f(y)m(our)e(righ)m(ts)h(under)330 -3407 y(this)28 b(License.)40 b(Ho)m(w)m(ev)m(er,)31 b(parties)d(who)f -(ha)m(v)m(e)i(receiv)m(ed)g(copies,)h(or)d(righ)m(ts,)i(from)f(y)m(ou)g -(under)e(this)330 3517 y(License)37 b(will)g(not)g(ha)m(v)m(e)h(their)f -(licenses)g(terminated)h(so)f(long)g(as)g(suc)m(h)f(parties)h(remain)g -(in)f(full)330 3626 y(compliance.)154 3761 y(10.)61 b(FUTURE)30 -b(REVISIONS)f(OF)i(THIS)e(LICENSE)330 3895 y(The)41 b(F)-8 -b(ree)43 b(Soft)m(w)m(are)f(F)-8 b(oundation)43 b(ma)m(y)f(publish)e -(new,)k(revised)d(v)m(ersions)h(of)g(the)g(GNU)g(F)-8 -b(ree)330 4005 y(Do)s(cumen)m(tation)34 b(License)e(from)g(time)h(to)g -(time.)46 b(Suc)m(h)31 b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h -(in)g(spirit)330 4115 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma) -m(y)h(di\013er)f(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i -(concerns.)330 4224 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p -Ft(.)330 4359 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m -(en)g(a)g(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 -b(If)29 b(the)g(Do)s(cumen)m(t)330 4468 y(sp)s(eci\014es)45 -b(that)h(a)g(particular)f(n)m(um)m(b)s(ered)f(v)m(ersion)i(of)f(this)g -(License)h(\\or)g(an)m(y)g(later)g(v)m(ersion")330 4578 -y(applies)33 b(to)g(it,)h(y)m(ou)e(ha)m(v)m(e)i(the)f(option)g(of)f -(follo)m(wing)i(the)f(terms)f(and)g(conditions)h(either)g(of)f(that)330 -4687 y(sp)s(eci\014ed)37 b(v)m(ersion)i(or)e(of)h(an)m(y)h(later)g(v)m +(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3598 y(pro)m(vided)38 +b(under)f(this)i(License.)65 b(An)m(y)39 b(attempt)h(otherwise)f(to)g +(cop)m(y)-8 b(,)42 b(mo)s(dify)-8 b(,)40 b(sublicense,)h(or)330 +3707 y(distribute)30 b(it)h(is)f(v)m(oid,)h(and)f(will)h(automatically) +i(terminate)f(y)m(our)e(righ)m(ts)h(under)e(this)h(License.)330 +3850 y(Ho)m(w)m(ev)m(er,)35 b(if)e(y)m(ou)f(cease)i(all)f(violation)i +(of)d(this)g(License,)i(then)e(y)m(our)h(license)g(from)f(a)h +(particular)330 3959 y(cop)m(yrigh)m(t)k(holder)e(is)h(reinstated)h +(\(a\))f(pro)m(visionally)-8 b(,)39 b(unless)c(and)g(un)m(til)h(the)g +(cop)m(yrigh)m(t)h(holder)330 4069 y(explicitly)42 b(and)e(\014nally)h +(terminates)g(y)m(our)g(license,)j(and)c(\(b\))h(p)s(ermanen)m(tly)-8 +b(,)43 b(if)e(the)g(cop)m(yrigh)m(t)330 4178 y(holder)34 +b(fails)h(to)g(notify)g(y)m(ou)g(of)f(the)h(violation)h(b)m(y)e(some)h +(reasonable)g(means)g(prior)e(to)i(60)h(da)m(ys)330 4288 +y(after)31 b(the)f(cessation.)330 4430 y(Moreo)m(v)m(er,)k(y)m(our)d +(license)i(from)e(a)h(particular)f(cop)m(yrigh)m(t)i(holder)e(is)h +(reinstated)g(p)s(ermanen)m(tly)f(if)330 4540 y(the)d(cop)m(yrigh)m(t)h +(holder)f(noti\014es)g(y)m(ou)g(of)g(the)g(violation)h(b)m(y)f(some)g +(reasonable)h(means,)f(this)g(is)g(the)330 4650 y(\014rst)f(time)i(y)m +(ou)f(ha)m(v)m(e)h(receiv)m(ed)g(notice)g(of)f(violation)i(of)e(this)f +(License)i(\(for)f(an)m(y)g(w)m(ork\))g(from)f(that)330 +4759 y(cop)m(yrigh)m(t)33 b(holder,)g(and)e(y)m(ou)h(cure)g(the)g +(violation)i(prior)d(to)i(30)f(da)m(ys)h(after)f(y)m(our)g(receipt)h +(of)f(the)330 4869 y(notice.)330 5011 y(T)-8 b(ermination)28 +b(of)g(y)m(our)f(righ)m(ts)h(under)e(this)i(section)g(do)s(es)f(not)h +(terminate)h(the)e(licenses)i(of)f(parties)330 5121 y(who)38 +b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g +(under)f(this)h(License.)64 b(If)38 b(y)m(our)g(righ)m(ts)h(ha)m(v)m(e) +330 5230 y(b)s(een)25 b(terminated)i(and)e(not)h(p)s(ermanen)m(tly)g +(reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f +(the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f +(an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end +%%Page: 149 155 +TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29 +b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560 +b(149)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE) +330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 +b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g +(the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34 +b(License)e(from)g(time)h(to)g(time.)46 b(Suc)m(h)31 +b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h(in)g(spirit)330 +653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m(y)h(di\013er)f +(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i(concerns.)330 +762 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p Ft(.)330 +897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m(en)g(a)g +(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29 +b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g +(particular)f(n)m(um)m(b)s(ered)f(v)m(ersion)i(of)f(this)g(License)h +(\\or)g(an)m(y)g(later)g(v)m(ersion")330 1116 y(applies)33 +b(to)g(it,)h(y)m(ou)e(ha)m(v)m(e)i(the)f(option)g(of)f(follo)m(wing)i +(the)f(terms)f(and)g(conditions)h(either)g(of)f(that)330 +1225 y(sp)s(eci\014ed)37 b(v)m(ersion)i(or)e(of)h(an)m(y)h(later)g(v)m (ersion)f(that)g(has)g(b)s(een)f(published)f(\(not)j(as)f(a)g(draft\))g -(b)m(y)330 4797 y(the)33 b(F)-8 b(ree)34 b(Soft)m(w)m(are)f(F)-8 +(b)m(y)330 1335 y(the)33 b(F)-8 b(ree)34 b(Soft)m(w)m(are)f(F)-8 b(oundation.)49 b(If)32 b(the)h(Do)s(cumen)m(t)g(do)s(es)g(not)g(sp)s -(ecify)f(a)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)330 4907 +(ecify)f(a)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)330 1445 y(this)i(License,)j(y)m(ou)d(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g(v)m (ersion)g(ev)m(er)g(published)e(\(not)i(as)g(a)f(draft\))h(b)m(y)f(the) -h(F)-8 b(ree)330 5016 y(Soft)m(w)m(are)31 b(F)-8 b(oundation.)p -eop end -%%Page: 149 155 -TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29 -b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560 -b(149)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f -(for)g(y)l(our)g(do)t(cumen)l(ts)275 543 y Ft(T)-8 b(o)27 -b(use)g(this)g(License)h(in)f(a)h(do)s(cumen)m(t)f(y)m(ou)h(ha)m(v)m(e) -g(written,)g(include)f(a)h(cop)m(y)g(of)f(the)h(License)g(in)f(the)150 -653 y(do)s(cumen)m(t)j(and)g(put)g(the)g(follo)m(wing)i(cop)m(yrigh)m -(t)g(and)e(license)h(notices)g(just)f(after)h(the)g(title)h(page:)468 -765 y Fe(Copyright)42 b(\(C\))79 b Fd(year)88 b(your)40 -b(name)p Fe(.)468 852 y(Permission)i(is)e(granted)g(to)g(copy,)h -(distribute)g(and/or)g(modify)f(this)g(document)468 939 -y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i -(License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h -(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468 -1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g -(and)f(no)f(Back-Cover)468 1200 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f -(license)i(is)f(included)h(in)f(the)g(section)g(entitled)h(``GNU)468 -1288 y(Free)g(Documentation)h(License''.)275 1410 y Ft(If)d(y)m(ou)h -(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8 -b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k -(T)-8 b(exts,)43 b(replace)e(the)150 1520 y(\\with)6 -b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547 -1632 y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g -Fd(list)f(their)g(titles)p Fe(,)h(with)547 1719 y(the)f(Front-Cover)i -(Texts)e(being)g Fd(list)p Fe(,)h(and)f(with)g(the)g(Back-Cover)h -(Texts)547 1806 y(being)f Fd(list)p Fe(.)275 1929 y Ft(If)34 +h(F)-8 b(ree)330 1554 y(Soft)m(w)m(are)33 b(F)-8 b(oundation.)46 +b(If)32 b(the)g(Do)s(cumen)m(t)g(sp)s(eci\014es)g(that)g(a)h(pro)m(xy)f +(can)g(decide)g(whic)m(h)g(future)330 1664 y(v)m(ersions)h(of)g(this)f +(License)h(can)g(b)s(e)f(used,)g(that)i(pro)m(xy's)e(public)g(statemen) +m(t)i(of)f(acceptance)i(of)e(a)330 1773 y(v)m(ersion)e(p)s(ermanen)m +(tly)f(authorizes)h(y)m(ou)g(to)g(c)m(ho)s(ose)g(that)g(v)m(ersion)g +(for)f(the)h(Do)s(cumen)m(t.)154 1908 y(11.)61 b(RELICENSING)330 +2042 y(\\Massiv)m(e)39 b(Multiauthor)f(Collab)s(oration)g(Site")h(\(or) +e(\\MMC)h(Site"\))h(means)e(an)m(y)h(W)-8 b(orld)37 b(Wide)330 +2152 y(W)-8 b(eb)36 b(serv)m(er)g(that)h(publishes)d(cop)m(yrigh)m +(table)k(w)m(orks)e(and)f(also)i(pro)m(vides)e(prominen)m(t)h +(facilities)330 2262 y(for)27 b(an)m(yb)s(o)s(dy)g(to)h(edit)g(those)g +(w)m(orks.)39 b(A)28 b(public)f(wiki)h(that)g(an)m(yb)s(o)s(dy)e(can)i +(edit)g(is)f(an)h(example)g(of)330 2371 y(suc)m(h)33 +b(a)h(serv)m(er.)51 b(A)34 b(\\Massiv)m(e)i(Multiauthor)e(Collab)s +(oration")h(\(or)f(\\MMC"\))h(con)m(tained)g(in)f(the)330 +2481 y(site)d(means)f(an)m(y)h(set)g(of)g(cop)m(yrigh)m(table)h(w)m +(orks)e(th)m(us)g(published)f(on)h(the)h(MMC)f(site.)330 +2615 y(\\CC-BY-SA")36 b(means)f(the)g(Creativ)m(e)i(Commons)e(A)m +(ttribution-Share)g(Alik)m(e)i(3.0)f(license)g(pub-)330 +2725 y(lished)27 b(b)m(y)f(Creativ)m(e)j(Commons)d(Corp)s(oration,)h(a) +g(not-for-pro\014t)g(corp)s(oration)h(with)e(a)h(principal)330 +2834 y(place)g(of)f(business)e(in)i(San)f(F)-8 b(rancisco,)29 +b(California,)f(as)e(w)m(ell)h(as)f(future)f(cop)m(yleft)i(v)m(ersions) +f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g +(organization.)330 3078 y(\\Incorp)s(orate")h(means)e(to)h(publish)e +(or)i(republish)e(a)i(Do)s(cumen)m(t,)g(in)g(whole)g(or)f(in)g(part,)h +(as)g(part)330 3188 y(of)g(another)f(Do)s(cumen)m(t.)330 +3323 y(An)c(MMC)g(is)h(\\eligible)h(for)e(relicensing")h(if)g(it)f(is)h +(licensed)f(under)f(this)h(License,)i(and)e(if)g(all)h(w)m(orks)330 +3432 y(that)43 b(w)m(ere)f(\014rst)f(published)f(under)h(this)h +(License)g(somewhere)g(other)g(than)g(this)g(MMC,)h(and)330 +3542 y(subsequen)m(tly)34 b(incorp)s(orated)h(in)f(whole)h(or)g(in)f +(part)h(in)m(to)h(the)f(MMC,)g(\(1\))h(had)e(no)h(co)m(v)m(er)h(texts) +330 3651 y(or)30 b(in)m(v)-5 b(arian)m(t)32 b(sections,)g(and)d(\(2\))j +(w)m(ere)f(th)m(us)f(incorp)s(orated)g(prior)g(to)h(No)m(v)m(em)m(b)s +(er)g(1,)g(2008.)330 3786 y(The)40 b(op)s(erator)h(of)g(an)f(MMC)h +(Site)g(ma)m(y)g(republish)e(an)h(MMC)h(con)m(tained)h(in)e(the)h(site) +g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g +(time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is) +330 4005 y(eligible)h(for)e(relicensing.)p eop end +%%Page: 150 156 +TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31 +b(Reference)g(Man)m(ual)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g +(this)h(License)f(for)g(y)l(our)g(do)t(cumen)l(ts)150 +458 y Ft(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g +(y)m(ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f +(License)h(in)g(the)150 568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g +(follo)m(wing)i(cop)m(yrigh)m(t)g(and)e(license)h(notices)g(just)f +(after)h(the)g(title)h(page:)468 680 y Fe(Copyright)42 +b(\(C\))79 b Fd(year)88 b(your)40 b(name)9 b Fe(.)468 +767 y(Permission)42 b(is)e(granted)g(to)g(copy,)h(distribute)g(and/or)g +(modify)f(this)g(document)468 854 y(under)h(the)f(terms)g(of)g(the)g +(GNU)g(Free)g(Documentation)i(License,)f(Version)g(1.3)468 +941 y(or)f(any)g(later)g(version)h(published)h(by)d(the)h(Free)g +(Software)h(Foundation;)468 1029 y(with)g(no)e(Invariant)j(Sections,)f +(no)f(Front-Cover)h(Texts,)g(and)f(no)f(Back-Cover)468 +1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f(license)i(is)f(included)h +(in)f(the)g(section)g(entitled)h(``GNU)468 1203 y(Free)g(Documentation) +h(License''.)275 1337 y Ft(If)d(y)m(ou)h(ha)m(v)m(e)h(In)m(v)-5 +b(arian)m(t)41 b(Sections,)i(F)-8 b(ron)m(t-Co)m(v)m(er)42 +b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts,)43 +b(replace)e(the)150 1447 y(\\with)6 b(.)22 b(.)g(.)12 +b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547 1559 +y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g Fd(list)f(their)g +(titles)9 b Fe(,)41 b(with)547 1646 y(the)f(Front-Cover)i(Texts)e +(being)g Fd(list)9 b Fe(,)40 b(and)g(with)g(the)g(Back-Cover)i(Texts) +547 1733 y(being)e Fd(list)9 b Fe(.)275 1868 y Ft(If)34 b(y)m(ou)i(ha)m(v)m(e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f (Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g -(of)g(the)150 2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g -(alternativ)m(es)i(to)e(suit)f(the)h(situation.)275 2173 +(of)g(the)150 1978 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g +(alternativ)m(es)i(to)e(suit)f(the)h(situation.)275 2112 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g (examples)g(of)f(program)f(co)s(de,)j(w)m(e)e(recommend)g(releasing)150 -2283 y(these)44 b(examples)f(in)g(parallel)h(under)e(y)m(our)h(c)m +2222 y(these)44 b(examples)f(in)g(parallel)h(under)e(y)m(our)h(c)m (hoice)i(of)e(free)g(soft)m(w)m(are)h(license,)k(suc)m(h)43 -b(as)g(the)g(GNU)150 2392 y(General)31 b(Public)f(License,)i(to)f(p)s +b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s (ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p eop end -%%Page: 150 156 -TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end %%Page: 151 157 TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29 b(D:)i(Indexes)2623 b(151)150 299 y Fo(App)t(endix)52 -b(D)119 b(Indexes)150 656 y Fr(D.1)68 b(Index)45 b(of)g(Shell)g -(Builtin)g(Commands)150 977 y(.)150 1105 y Fe(.)17 b -Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(35)150 1367 -y Fr(:)150 1495 y Fe(:)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(35)150 1767 y Fr([)150 1895 y Fe([)17 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(39)150 2166 y Fr(A)150 -2293 y Fe(alias)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fb(41)150 2556 -y Fr(B)150 2684 y Fe(bg)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(90)150 2777 y Fe(bind)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(41)150 2869 y Fe(break)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b -Fb(35)150 2962 y Fe(builtin)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(42)150 -3225 y Fr(C)150 3352 y Fe(caller)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 -b Fb(43)150 3445 y Fe(cd)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(36)150 3538 y Fe(command)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150 -3631 y Fe(compgen)7 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(116)150 3724 y Fe(complete)26 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -50 b Fb(117)150 3817 y Fe(compopt)7 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(120)150 -3910 y Fe(continue)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(36)150 4172 y -Fr(D)150 4300 y Fe(declare)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150 -4393 y Fe(dirs)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(82)150 -4485 y Fe(disown)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(91)150 4748 -y Fr(E)150 4876 y Fe(echo)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(44)150 4969 y Fe(enable)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(45)150 -5061 y Fe(eval)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150 -5154 y Fe(exec)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150 -5247 y Fe(exit)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(36)150 -5340 y Fe(export)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(36)2025 977 -y Fr(F)2025 1104 y Fe(fc)14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)41 -b Fb(122)2025 1196 y Fe(fg)15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(90)2025 1474 y Fr(G)2025 1601 y Fe(getopts)8 b Fc(.)14 -b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)34 b Fb(37)2025 1879 y Fr(H)2025 2006 y Fe(hash)13 -b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(37)2025 2098 y Fe(help)13 -b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(46)2025 2190 y Fe(history)7 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)33 b Fb(122)2025 2469 y Fr(J)2025 2595 y Fe(jobs)13 -b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(90)2025 2874 y Fr(K)2025 -3000 y Fe(kill)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(91)2025 -3260 y Fr(L)2025 3387 y Fe(let)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(46)2025 3479 y Fe(local)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(46)2025 3571 y Fe(logout)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b -Fb(46)2025 3850 y Fr(M)2025 3976 y Fe(mapfile)8 b Fc(.)14 -b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)34 b Fb(46)2025 4255 y Fr(P)2025 4381 y Fe(popd)13 -b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(82)2025 4473 y Fe(printf)10 -b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)35 b Fb(47)2025 4566 y Fe(pushd)11 b Fc(.)i(.)g(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(82)2025 4658 y Fe(pwd)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(38)2025 4937 y Fr(R)2025 5063 y Fe(read)13 b Fc(.)g(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -38 b Fb(47)2025 5155 y Fe(readarray)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(48)2025 -5248 y Fe(readonly)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(38)2025 5340 y -Fe(return)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(38)p eop end +b(D)81 b(Indexes)150 631 y Fr(D.1)68 b(Index)45 b(of)g(Shell)g(Builtin) +g(Commands)150 868 y(.)150 984 y Fe(.)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)39 b Fb(35)150 1218 y Fr(:)150 1335 +y Fe(:)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 +b Fb(35)150 1579 y Fr([)150 1695 y Fe([)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)39 b Fb(39)150 1938 y Fr(A)150 2055 +y Fe(alias)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(41)150 +2289 y Fr(B)150 2405 y Fe(bg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)37 b Fb(90)150 2493 y Fe(bind)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +49 b Fb(41)150 2580 y Fe(break)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 +b Fb(35)150 2668 y Fe(builtin)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 +b Fb(43)150 2902 y Fr(C)150 3019 y Fe(caller)17 b Fc(:)e(:)e(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +43 b Fb(43)150 3106 y Fe(cd)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)37 b Fb(36)150 3194 y Fe(command)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 +b Fb(43)150 3281 y Fe(compgen)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b +Fb(117)150 3368 y Fe(complete)10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(117)150 +3456 y Fe(compopt)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(120)150 3543 +y Fe(continue)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(36)150 3778 y +Fr(D)150 3894 y Fe(declare)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b +Fb(43)150 3982 y Fe(dirs)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(81)150 4069 y Fe(disown)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 +b Fb(91)150 4303 y Fr(E)150 4420 y Fe(echo)23 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(45)150 4507 y Fe(enable)17 +b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(45)150 4595 y Fe(eval)23 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(36)150 4682 y +Fe(exec)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(36)150 +4770 y Fe(exit)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(36)150 4857 y Fe(export)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 +b Fb(36)150 5110 y Fr(F)150 5227 y Fe(fc)8 b Fc(:)14 +b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(121)150 5314 +y Fe(fg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 +b Fb(90)2025 868 y Fr(G)2025 988 y Fe(getopts)15 b Fc(:)f(:)f(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 +b Fb(37)2025 1250 y Fr(H)2025 1370 y Fe(hash)23 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(37)2025 1459 y Fe(help)23 +b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(46)2025 1549 +y Fe(history)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(122)2025 1811 +y Fr(J)2025 1931 y Fe(jobs)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 +b Fb(90)2025 2193 y Fr(K)2025 2313 y Fe(kill)23 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(91)2025 2557 y Fr(L)2025 +2677 y Fe(let)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(46)2025 2766 y Fe(local)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 +b Fb(46)2025 2856 y Fe(logout)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(46)2025 3118 y Fr(M)2025 3238 y Fe(mapfile)15 b +Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)41 b Fb(46)2025 3500 y Fr(P)2025 3620 +y Fe(popd)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(82)2025 +3710 y Fe(printf)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(47)2025 +3799 y Fe(pushd)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b +Fb(82)2025 3888 y Fe(pwd)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(38)2025 4150 y Fr(R)2025 4270 y Fe(read)23 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(47)2025 4360 y Fe(readarray)9 +b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)36 b Fb(49)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 +b Fb(38)2025 4538 y Fe(return)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(38)2025 4782 y Fr(S)2025 4902 y Fe(set)8 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(51)2025 4991 +y Fe(shift)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(38)2025 +5080 y Fe(shopt)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b +Fb(55)2025 5169 y Fe(source)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(49)2025 5259 y Fe(suspend)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 +b Fb(91)p eop end %%Page: 152 158 TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fr(S)150 423 y Fe(set)14 -b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(51)150 514 y Fe(shift)11 -b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)37 b Fb(38)150 606 y Fe(shopt)11 b -Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)37 b Fb(54)150 697 y Fe(source)10 b Fc(.)j(.)g(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 -b Fb(49)150 788 y Fe(suspend)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(91)150 -1061 y Fr(T)150 1185 y Fe(test)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(39)150 1276 y Fe(times)11 b Fc(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b -Fb(40)150 1368 y Fe(trap)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(40)2025 299 y Fe(type)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(49)2025 386 y Fe(typeset)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(49)2025 -639 y Fr(U)2025 755 y Fe(ulimit)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b -Fb(49)2025 843 y Fe(umask)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b -Fb(41)2025 930 y Fe(unalias)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(50)2025 -1017 y Fe(unset)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(41)2025 1251 -y Fr(W)2025 1368 y Fe(wait)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(91)150 1642 y Fr(D.2)68 b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W) --11 b(ords)150 1963 y(!)150 2096 y Fe(!)18 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(8)150 2382 y -Fr([)150 2515 y Fe([[)15 b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(12)150 2807 y Fr(])150 2940 y Fe(]])15 b Fc(.)e(.)g(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)41 b Fb(12)150 3226 y Fa({)150 3359 y Fe({)17 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(14)150 3645 y Fa(})150 -3777 y Fe(})17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(14)150 4062 y Fr(C)150 4195 y Fe(case)13 b Fc(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(11)150 4471 y Fr(D)150 4604 y Fe(do)15 b Fc(.)e(.)g(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)41 b Fb(10)150 4700 y Fe(done)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(10)2025 1963 y Fr(E)2025 2079 y Fe(elif)13 b Fc(.)g(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -38 b Fb(10)2025 2166 y Fe(else)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(10)2025 2254 y Fe(esac)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(11)2025 2487 y Fr(F)2025 2603 y Fe(fi)15 b Fc(.)e(.)f(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)41 b Fb(10)2025 2690 y Fe(for)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(10)2025 2778 y Fe(function)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(15)2025 -3011 y Fr(I)2025 3127 y Fe(if)15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(10)2025 3215 y Fe(in)15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(11)2025 3448 y Fr(S)2025 3564 y Fe(select)10 b Fc(.)j(.)f(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fb(12)2025 3797 y Fr(T)2025 3914 y Fe(then)13 b Fc(.)g(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -38 b Fb(10)2025 4001 y Fe(time)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)40 -b Fb(8)2025 4234 y Fr(U)2025 4350 y Fe(until)11 b Fc(.)i(.)g(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(10)2025 4584 y Fr(W)2025 4700 y Fe(while)11 b Fc(.)i(.)g(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(10)150 4957 y Fr(D.3)68 b(P)l(arameter)47 b(and)d(V)-11 -b(ariable)46 b(Index)150 5279 y(!)1834 b Fe(!)17 b Fc(.)12 -b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fb(17)p eop end +b(Reference)g(Man)m(ual)150 299 y Fr(T)150 428 y Fe(test)23 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(39)150 522 y +Fe(times)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(40)150 +616 y Fe(trap)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(40)150 709 y Fe(type)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(49)150 803 y Fe(typeset)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 +b Fb(49)2025 299 y Fr(U)2025 415 y Fe(ulimit)17 b Fc(:)d(:)g(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +44 b Fb(49)2025 502 y Fe(umask)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 +b Fb(41)2025 590 y Fe(unalias)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 +b Fb(51)2025 677 y Fe(unset)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 +b Fb(41)2025 910 y Fr(W)2025 1026 y Fe(wait)23 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(91)150 1259 y Fr(D.2)68 +b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W)-11 b(ords)150 +1495 y(!)150 1612 y Fe(!)15 b Fc(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)42 b Fb(8)150 1855 y Fr([)150 1971 y Fe([[)10 +b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(12)150 +2220 y Fr(])150 2337 y Fe(]])10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)37 b Fb(12)150 2579 y Fa({)150 2695 y Fe({)13 b Fc(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(13)150 2938 y Fa(})150 +3054 y Fe(})13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 +b Fb(13)150 3296 y Fr(C)150 3412 y Fe(case)23 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(10)150 3646 y Fr(D)150 +3762 y Fe(do)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 +b Fb(9)150 3849 y Fe(done)7 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(9)150 4083 y Fr(E)150 4199 y Fe(elif)23 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 1495 y Fe(else)23 +b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 1586 +y Fe(esac)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 +1838 y Fr(F)2025 1961 y Fe(fi)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)37 b Fb(10)2025 2052 y Fe(for)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)34 b Fb(10)2025 2143 y Fe(function)12 b Fc(:)j(:)e(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 +b Fb(14)2025 2394 y Fr(I)2025 2518 y Fe(if)10 b Fc(:)k(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)37 b Fb(10)2025 2608 y Fe(in)10 b +Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(10)2025 +2860 y Fr(S)2025 2983 y Fe(select)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(11)2025 3235 y Fr(T)2025 3358 y Fe(then)23 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 3449 y Fe(time)7 +b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(8)2025 +3701 y Fr(U)2025 3824 y Fe(until)23 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 +b Fb(9)2025 4076 y Fr(W)2025 4199 y Fe(while)23 b Fc(:)13 +b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)49 b Fb(9)150 4431 y Fr(D.3)68 +b(P)l(arameter)47 b(and)d(V)-11 b(ariable)46 b(Index)150 +4668 y(!)150 4794 y Fe(!)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)39 b Fb(17)150 5054 y Fr(#)150 5180 y Fe(#)13 b Fc(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(17)2025 4668 y Fr($)2025 +4794 y Fe($)13 b Fc(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 +b Fb(17)2025 5067 y Fr(*)2025 5192 y Fe(*)13 b Fc(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(16)p eop end %%Page: 153 159 TeXDict begin 153 158 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(153)150 299 y Fr(#)150 424 y Fe(#)17 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 688 -y Fr($)150 813 y Fe($)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(17)150 1084 y Fr(*)150 1209 y Fe(*)17 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 1464 y Fr(-)150 -1589 y Fe(-)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(17)150 1844 y Fr(?)150 1969 y Fe(?)17 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 2224 y Fr(@)150 -2348 y Fe(@)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(17)p 159 2603 41 6 v 150 2728 a Fe(_)17 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(17)150 2983 y Fr(0)150 -3108 y Fe(0)17 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(17)150 3363 y Fr(A)150 3488 y Fe(auto_resume)23 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 -b Fb(92)150 3752 y Fr(B)150 3877 y Fe(BASH)13 b Fc(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(61)150 3968 y Fe(BASH_ALIASES)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(62)150 4060 y Fe(BASH_ARGC)25 -b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -49 b Fb(62)150 4151 y Fe(BASH_ARGV)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(62)150 -4243 y Fe(BASH_CMDS)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(62)150 4334 y Fe(BASH_COMMAND)22 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 -b Fb(62)150 4426 y Fe(BASH_ENV)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(62)150 -4517 y Fe(BASH_EXECUTION_STRING)d Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 -b Fb(62)150 4608 y Fe(BASH_LINENO)23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(62)150 4700 y -Fe(BASH_REMATCH)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)45 b Fb(63)150 4791 y Fe(BASH_SOURCE)23 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 -b Fb(63)150 4883 y Fe(BASH_SUBSHELL)18 b Fc(.)d(.)d(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)43 b Fb(63)150 4974 y Fe(BASH_VERSINFO)18 -b Fc(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 -b Fb(63)150 5066 y Fe(BASH_VERSION)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(63)150 5157 y Fe(BASHPID)8 -b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)34 b Fb(62)150 5249 y Fe(bell-style)24 b -Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 -b Fb(97)150 5340 y Fe(bind-tty-special-chars)28 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)48 b Fb(97)2025 299 y Fr(C)2025 417 y Fe(CDPATH)10 -b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)35 b Fb(61)2025 506 y Fe(COLUMNS)8 b Fc(.)14 -b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)34 b Fb(63)2025 594 y Fe(comment-begin)18 b Fc(.)d(.)d(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(97)2025 683 y Fe(COMP_CWORD)24 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 -b Fb(63)2025 771 y Fe(COMP_KEY)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(64)2025 -860 y Fe(COMP_LINE)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(63)2025 948 y Fe(COMP_POINT)24 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 -b Fb(64)2025 1036 y Fe(COMP_TYPE)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(64)2025 1125 -y Fe(COMP_WORDBREAKS)15 b Fc(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 -b Fb(64)2025 1213 y Fe(COMP_WORDS)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(64)2025 1302 -y Fe(completion-prefix-display-leng)q(th)9 b Fc(.)18 -b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(97)2025 -1390 y Fe(completion-query-items)27 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fb(97)2025 1479 y Fe(COMPREPLY)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(64)2025 1567 -y Fe(convert-meta)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)45 b Fb(98)2025 1807 y Fr(D)2025 1925 y Fe(DIRSTACK)7 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)32 b Fb(64)2025 2014 y Fe(disable-completion)10 -b Fc(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(98)2025 -2272 y Fr(E)2025 2390 y Fe(editing-mode)22 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 -b Fb(98)2025 2479 y Fe(EMACS)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(64)2025 2567 y Fe(enable-keypad)18 b Fc(.)d(.)d(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(98)2025 2656 y Fe(EUID)13 -b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(65)2025 2744 y Fe(expand-tilde)22 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 -b Fb(98)2025 3002 y Fr(F)2025 3121 y Fe(FCEDIT)10 b Fc(.)j(.)f(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fb(65)2025 3209 y Fe(FIGNORE)8 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(65)2025 -3297 y Fe(FUNCNAME)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(65)2025 3537 y -Fr(G)2025 3655 y Fe(GLOBIGNORE)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(65)2025 3744 -y Fe(GROUPS)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(65)2025 3983 y Fr(H)2025 -4102 y Fe(histchars)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(65)2025 4190 y Fe(HISTCMD)8 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)34 b Fb(65)2025 4279 y Fe(HISTCONTROL)23 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46 -b Fb(65)2025 4367 y Fe(HISTFILE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)2025 -4456 y Fe(HISTFILESIZE)22 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)45 b Fb(66)2025 4544 y Fe(HISTIGNORE)24 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 -b Fb(66)2025 4632 y Fe(history-preserve-point)27 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)48 b Fb(98)2025 4721 y Fe(history-size)22 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 -b Fb(98)2025 4809 y Fe(HISTSIZE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)2025 -4898 y Fe(HISTTIMEFORMAT)16 b Fc(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)42 b Fb(66)2025 4986 y Fe(HOME)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(61)2025 5075 y Fe(horizontal-scroll-mode)27 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)48 b Fb(98)2025 5163 y Fe(HOSTFILE)7 b Fc(.)14 -b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -32 b Fb(66)2025 5252 y Fe(HOSTNAME)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)2025 -5340 y Fe(HOSTTYPE)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(66)p eop end +b(D:)i(Indexes)2623 b(153)150 299 y Fr(-)150 415 y Fe(-)13 +b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(17)150 +649 y Fr(?)150 765 y Fe(?)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)39 b Fb(17)150 999 y Fr(@)150 1115 y Fe(@)13 b +Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(16)p +159 1349 41 6 v 150 1465 a Fe(_)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)39 b Fb(17)150 1699 y Fr(0)150 1815 y Fe(0)13 +b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(17)150 +2049 y Fr(A)150 2166 y Fe(auto_resume)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(92)150 +2409 y Fr(B)150 2525 y Fe(BASH)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(61)150 2612 y Fe(BASH_ALIASES)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(62)150 2700 +y Fe(BASH_ARGC)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(62)150 2787 y +Fe(BASH_ARGV)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(62)150 2874 y Fe(BASH_CMDS)9 +b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)36 b Fb(62)150 2962 y Fe(BASH_COMMAND)22 +b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 +b Fb(62)150 3049 y Fe(BASH_ENV)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b +Fb(62)150 3137 y Fe(BASH_EXECUTION_STRING)13 b Fc(:)18 +b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)39 b Fb(62)150 3224 y Fe(BASH_LINENO)24 +b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +48 b Fb(63)150 3311 y Fe(BASH_REMATCH)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(63)150 +3399 y Fe(BASH_SOURCE)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(63)150 3486 y Fe(BASH_SUBSHELL)16 +b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 +b Fb(63)150 3573 y Fe(BASH_VERSINFO)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(63)150 3661 y Fe(BASH_VERSION)22 +b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 +b Fb(63)150 3748 y Fe(BASH_XTRACEFD)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(63)150 3835 y Fe(BASHOPTS)12 +b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)38 b Fb(62)150 3923 y Fe(BASHPID)15 b +Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)41 b Fb(62)150 4010 y Fe(bell-style)7 +b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)33 b Fb(97)150 4098 y Fe(bind-tty-special-chars)10 +b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(97)150 4350 y Fr(C)150 +4466 y Fe(CDPATH)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(61)150 +4554 y Fe(COLUMNS)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(64)150 +4641 y Fe(comment-begin)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)43 b Fb(97)150 4728 y Fe(COMP_CWORD)7 +b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)33 b Fb(64)150 4816 y Fe(COMP_KEY)12 b Fc(:)j(:)e(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 +b Fb(64)150 4903 y Fe(COMP_LINE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b +Fb(64)150 4991 y Fe(COMP_POINT)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(64)150 +5078 y Fe(COMP_TYPE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(64)150 5165 +y Fe(COMP_WORDBREAKS)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)38 b Fb(64)150 5253 y Fe(COMP_WORDS)7 b Fc(:)15 +b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +33 b Fb(64)150 5340 y Fe(completion-prefix-display-len)q(gth)25 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(97)2025 +299 y Fe(completion-query-items)10 b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 +b Fb(97)2025 387 y Fe(COMPREPLY)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b +Fb(65)2025 475 y Fe(convert-meta)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(98)2025 713 y +Fr(D)2025 831 y Fe(DIRSTACK)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(65)2025 +919 y Fe(disable-completion)25 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +47 b Fb(98)2025 1175 y Fr(E)2025 1293 y Fe(editing-mode)21 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 +b Fb(98)2025 1381 y Fe(EMACS)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 +b Fb(65)2025 1470 y Fe(enable-keypad)16 b Fc(:)g(:)d(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(98)2025 1558 y +Fe(EUID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(65)2025 +1646 y Fe(expand-tilde)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(98)2025 1902 y Fr(F)2025 +2020 y Fe(FCEDIT)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(65)2025 +2108 y Fe(FIGNORE)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(65)2025 +2196 y Fe(FUNCNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(65)2025 2434 +y Fr(G)2025 2552 y Fe(GLOBIGNORE)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(65)2025 +2640 y Fe(GROUPS)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(65)2025 +2878 y Fr(H)2025 2996 y Fe(histchars)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 +b Fb(65)2025 3084 y Fe(HISTCMD)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 +b Fb(66)2025 3172 y Fe(HISTCONTROL)24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(66)2025 +3260 y Fe(HISTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(66)2025 3348 +y Fe(HISTFILESIZE)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)45 b Fb(66)2025 3436 y Fe(HISTIGNORE)7 +b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)33 b Fb(66)2025 3525 y Fe(history-preserve-point)10 +b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(98)2025 3613 y Fe(history-size)21 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 +b Fb(98)2025 3701 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b +Fb(66)2025 3789 y Fe(HISTTIMEFORMAT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(66)2025 3877 y Fe(HOME)23 +b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(61)2025 3965 +y Fe(horizontal-scroll-mode)10 b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 +b Fb(98)2025 4053 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b +Fb(67)2025 4141 y Fe(HOSTNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b +Fb(67)2025 4230 y Fe(HOSTTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b +Fb(67)2025 4467 y Fr(I)2025 4585 y Fe(IFS)8 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(61)2025 4673 +y Fe(IGNOREEOF)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(67)2025 4761 y +Fe(input-meta)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(99)2025 4850 y Fe(INPUTRC)15 +b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)41 b Fb(67)2025 4938 y Fe(isearch-terminators)18 +b Fc(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(99)2025 5175 +y Fr(K)2025 5293 y Fe(keymap)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(99)p eop end %%Page: 154 160 TeXDict begin 154 159 bop 150 -116 a Ft(154)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fr(I)150 423 y Fe(IFS)14 -b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(61)150 515 y Fe(IGNOREEOF)25 -b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -49 b Fb(66)150 606 y Fe(input-meta)24 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(98)150 698 -y Fe(INPUTRC)8 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(67)150 789 y Fe -(isearch-terminators)9 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 -b Fb(99)150 1044 y Fr(K)150 1168 y Fe(keymap)10 b Fc(.)j(.)g(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 -b Fb(99)150 1442 y Fr(L)150 1566 y Fe(LANG)13 b Fc(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(67)150 1658 y Fe(LC_ALL)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(67)150 -1749 y Fe(LC_COLLATE)24 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)47 b Fb(67)150 1840 y Fe(LC_CTYPE)7 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)32 b Fb(67)150 1932 y Fe(LC_MESSAGES)14 b Fc(.)h(.)d(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(7,)26 b(67)150 -2023 y Fe(LC_NUMERIC)e Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)47 b Fb(67)150 2114 y Fe(LINENO)10 -b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)35 b Fb(67)150 2206 y Fe(LINES)11 b Fc(.)j(.)e(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 -b Fb(67)150 2460 y Fr(M)150 2585 y Fe(MACHTYPE)7 b Fc(.)14 -b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -32 b Fb(67)150 2676 y Fe(MAIL)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fb(61)150 2768 y Fe(MAILCHECK)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(67)150 2859 -y Fe(MAILPATH)7 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(61)150 2950 y Fe(mark-modified-lines)9 -b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(99)150 3042 -y Fe(mark-symlinked-directories)17 b Fc(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(99)150 3133 -y Fe(match-hidden-files)10 b Fc(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 -b Fb(99)150 3225 y Fe(meta-flag)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(98)150 3498 -y Fr(O)150 3623 y Fe(OLDPWD)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(67)150 -3714 y Fe(OPTARG)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(61)150 3805 -y Fe(OPTERR)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(67)150 3897 y Fe(OPTIND)10 -b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)35 b Fb(61)150 3988 y Fe(OSTYPE)10 b Fc(.)j(.)g(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 -b Fb(67)150 4079 y Fe(output-meta)23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(99)2025 299 y -Fr(P)2025 415 y Fe(page-completions)13 b Fc(.)j(.)c(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)39 b Fb(99)2025 502 y Fe(PATH)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(61)2025 589 y Fe(PIPESTATUS)24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(67)2025 677 y -Fe(POSIXLY_CORRECT)15 b Fc(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 -b Fb(68)2025 764 y Fe(PPID)13 b Fc(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(68)2025 851 y Fe(PROMPT_COMMAND)16 b Fc(.)f(.)e(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)42 b Fb(68)2025 938 y Fe(PROMPT_DIRTRIM)16 -b Fc(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)42 b -Fb(68)2025 1026 y Fe(PS1)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(61)2025 1113 y Fe(PS2)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(61)2025 1200 y Fe(PS3)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(68)2025 1287 y Fe(PS4)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(68)2025 1374 y Fe(PWD)14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(68)2025 1607 y Fr(R)2025 1724 y Fe(RANDOM)10 b Fc(.)j(.)f(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fb(68)2025 1811 y Fe(REPLY)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(68)2025 1898 y Fe(revert-all-at-newline)28 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)49 b Fb(100)2025 2131 y Fr(S)2025 2247 y Fe(SECONDS)8 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)34 b Fb(68)2025 2334 y Fe(SHELL)11 b Fc(.)i(.)g(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(68)2025 2422 y Fe(SHELLOPTS)25 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(68)2025 2509 -y Fe(SHLVL)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(69)2025 2596 -y Fe(show-all-if-ambiguous)28 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(100)2025 -2683 y Fe(show-all-if-unmodified)26 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(100)2025 -2916 y Fr(T)2025 3032 y Fe(TEXTDOMAIN)25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(7)2025 -3120 y Fe(TEXTDOMAINDIR)21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)45 b Fb(7)2025 3207 y Fe(TIMEFORMAT)24 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 -b Fb(69)2025 3294 y Fe(TMOUT)11 b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(69)2025 3381 y Fe(TMPDIR)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b -Fb(69)2025 3614 y Fr(U)2025 3730 y Fe(UID)14 b Fc(.)f(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)40 b Fb(69)2025 3963 y Fr(V)2025 4079 y Fe(visible-stats)17 -b Fc(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b -Fb(100)150 4353 y Fr(D.4)68 b(F)-11 b(unction)44 b(Index)150 -4675 y(A)150 4792 y Fe(abort)27 b(\(C-g\))8 b Fc(.)13 -b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 -b Fb(112)150 4880 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))11 -b Fc(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(107)150 -4968 y Fe(alias-expand-line)29 b(\(\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 -b Fb(114)150 5223 y Fr(B)150 5340 y Fe(backward-char)29 -b(\(C-b\))15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)41 b Fb(106)2025 -4675 y Fe(backward-delete-char)30 b(\(Rubout\))18 b Fc(.)c(.)f(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(108)2025 4786 -y Fe(backward-kill-line)29 b(\(C-x)e(Rubout\))d Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(109)2025 -4896 y Fe(backward-kill-word)29 b(\(\))12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)38 -b Fb(109)2025 5007 y Fe(backward-kill-word)29 b(\(M-)2873 -5004 y Fg(h)p 2898 4951 146 4 v 2898 5007 a Ff(DEL)p -2898 5023 V 3040 5004 a Fg(i)3070 5007 y Fe(\))20 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b -Fb(109)2025 5118 y Fe(backward-word)28 b(\(M-b\))15 b -Fc(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(106)2025 5229 y Fe(beginning-of-history) -30 b(\(M-<\))24 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)49 b Fb(107)2025 5340 y Fe(beginning-of-line)29 -b(\(C-a\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(106)p eop end +b(Reference)g(Man)m(ual)150 299 y Fr(L)150 415 y Fe(LANG)23 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(67)150 502 y +Fe(LC_ALL)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(67)150 589 +y Fe(LC_COLLATE)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(67)150 676 y Fe(LC_CTYPE)12 +b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)38 b Fb(67)150 764 y Fe(LC_MESSAGES)13 +b Fc(:)j(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40 +b Fb(7,)26 b(67)150 851 y Fe(LC_NUMERIC)7 b Fc(:)15 b(:)e(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 +b Fb(67)150 938 y Fe(LINENO)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 +b Fb(67)150 1025 y Fe(LINES)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 +b Fb(67)150 1258 y Fr(M)150 1374 y Fe(MACHTYPE)12 b Fc(:)j(:)e(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 +b Fb(67)150 1461 y Fe(MAIL)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(61)150 1549 y Fe(MAILCHECK)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b +Fb(68)150 1636 y Fe(MAILPATH)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(61)150 +1723 y Fe(mark-modified-lines)18 b Fc(:)g(:)13 b(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 +b Fb(99)150 1810 y Fe(mark-symlinked-directories)18 b +Fc(:)g(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 +b Fb(99)150 1897 y Fe(match-hidden-files)25 b Fc(:)13 +b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(99)150 1985 y +Fe(meta-flag)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(99)150 2236 y Fr(O)150 +2352 y Fe(OLDPWD)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150 +2439 y Fe(OPTARG)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(61)150 +2526 y Fe(OPTERR)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150 +2614 y Fe(OPTIND)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(61)150 +2701 y Fe(OSTYPE)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(68)150 +2788 y Fe(output-meta)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(99)150 3040 y Fr(P)150 +3156 y Fe(page-completions)9 b Fc(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)35 b Fb(99)150 3243 y Fe(PATH)23 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(61)150 3330 y Fe(PIPESTATUS)7 +b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)33 b Fb(68)150 3417 y Fe(POSIXLY_CORRECT)11 b +Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 +b Fb(68)150 3504 y Fe(PPID)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(68)150 3592 y Fe(PROMPT_COMMAND)14 b Fc(:)i(:)d(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)40 b Fb(68)2025 299 y Fe(PROMPT_DIRTRIM)14 +b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 +b Fb(68)2025 387 y Fe(PS1)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(61)2025 475 y Fe(PS2)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(61)2025 563 y Fe(PS3)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(68)2025 651 y Fe(PS4)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(68)2025 739 y Fe(PWD)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(68)2025 977 y Fr(R)2025 1095 y Fe(RANDOM)17 b Fc(:)d(:)g(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)44 b Fb(68)2025 1183 y Fe(REPLY)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 +b Fb(68)2025 1271 y Fe(revert-all-at-newline)11 b Fc(:)18 +b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)38 b Fb(100)2025 1508 y Fr(S)2025 1626 +y Fe(SECONDS)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(69)2025 1714 +y Fe(SHELL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025 +1802 y Fe(SHELLOPTS)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(69)2025 1890 +y Fe(SHLVL)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025 +1978 y Fe(show-all-if-ambiguous)11 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 +b Fb(100)2025 2067 y Fe(show-all-if-unmodified)8 b Fc(:)18 +b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)35 b Fb(100)2025 2155 y Fe(skip-completed-text)16 +b Fc(:)h(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(100)2025 2411 y Fr(T)2025 +2529 y Fe(TEXTDOMAIN)9 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(7)2025 2617 +y Fe(TEXTDOMAINDIR)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)46 b Fb(7)2025 2705 y Fe(TIMEFORMAT)7 +b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)33 b Fb(69)2025 2793 y Fe(TMOUT)21 b Fc(:)13 +b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)46 b Fb(69)2025 2881 y Fe(TMPDIR)17 +b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(70)2025 3119 y Fr(U)2025 +3236 y Fe(UID)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(70)2025 3474 y Fr(V)2025 3592 y Fe(visible-stats)14 +b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 +b Fb(100)150 3831 y Fr(D.4)68 b(F)-11 b(unction)44 b(Index)150 +4068 y(A)150 4195 y Fe(abort)27 b(\(C-g\))9 b Fc(:)14 +b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 +b Fb(112)150 4287 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))e +Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 b +Fb(107)150 4380 y Fe(alias-expand-line)29 b(\(\))21 b +Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(114)150 4659 y Fr(B)150 +4785 y Fe(backward-char)29 b(\(C-b\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +49 b Fb(106)150 4878 y Fe(backward-delete-char)30 b(\(Rubout\))14 +b Fc(:)h(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 +b Fb(108)150 4970 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))16 +b Fc(:)f(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(109)150 +5063 y Fe(backward-kill-word)30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 +b Fb(109)150 5155 y Fe(backward-kill-word)30 b(\(M-DEL\))23 +b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +49 b Fb(109)150 5248 y Fe(backward-word)29 b(\(M-b\))23 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 b Fb(106)150 5340 y +Fe(beginning-of-history)30 b(\(M-<\))23 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(107)2025 +4068 y Fe(beginning-of-line)29 b(\(C-a\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40 +b Fb(106)2025 4329 y Fr(C)2025 4449 y Fe(call-last-kbd-macro)30 +b(\(C-x)c(e\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)36 b Fb(112)2025 4538 y Fe(capitalize-word)29 +b(\(M-c\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(109)2025 4627 +y Fe(character-search)29 b(\(C-]\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 +b Fb(113)2025 4716 y Fe(character-search-backward)31 +b(\(M-C-]\))23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)48 +b Fb(113)2025 4806 y Fe(clear-screen)28 b(\(C-l\))8 b +Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(106)2025 +4895 y Fe(complete)27 b(\(TAB\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)45 b Fb(110)2025 4984 y Fe(complete-command)29 +b(\(M-!\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(111)2025 5073 +y Fe(complete-filename)29 b(\(M-/\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40 +b Fb(111)2025 5162 y Fe(complete-hostname)29 b(\(M-@\))13 +b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)40 b Fb(111)2025 5251 y Fe(complete-into-braces)30 +b(\(M-{\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)49 b Fb(112)2025 5340 y Fe(complete-username)29 +b(\(M-~\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(111)p eop end %%Page: 155 161 TeXDict begin 155 160 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(155)150 299 y Fr(C)150 428 y Fe -(call-last-kbd-macro)30 b(\(C-x)c(e\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(112)150 521 -y Fe(capitalize-word)29 b(\(M-c\))12 b Fc(.)h(.)g(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fb(109)150 615 y Fe(character-search)29 b(\(C-]\))10 -b Fc(.)k(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)36 b Fb(113)150 708 y Fe(character-search-backward)31 -b(\(M-C-]\))12 b Fc(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)38 -b Fb(113)150 802 y Fe(clear-screen)28 b(\(C-l\))16 b -Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150 896 y Fe(complete)27 -b(\()528 893 y Fg(h)p 553 839 148 4 v 553 896 a Ff(T)-6 -b(AB)p 553 911 V 697 893 a Fg(i)726 896 y Fe(\))18 b -Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(110)150 -989 y Fe(complete-command)29 b(\(M-!\))10 b Fc(.)k(.)e(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36 -b Fb(111)150 1083 y Fe(complete-filename)29 b(\(M-/\))9 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)35 b Fb(111)150 1176 y Fe(complete-hostname)29 -b(\(M-@\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(111)150 1270 y Fe(complete-into-braces) -30 b(\(M-{\))24 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)49 b Fb(112)150 1363 y Fe(complete-username)29 -b(\(M-~\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(111)150 1457 y Fe(complete-variable)29 -b(\(M-$\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(111)150 1550 y Fe(copy-backward-word)30 -b(\(\))12 b Fc(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(110)150 1644 y Fe(copy-forward-word) -29 b(\(\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(110)150 1737 -y Fe(copy-region-as-kill)30 b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36 -b Fb(110)150 2022 y Fr(D)150 2151 y Fe(dabbrev-expand)29 -b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(112)150 -2245 y Fe(delete-char)28 b(\(C-d\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)43 b Fb(108)150 2338 y Fe(delete-char-or-list)30 -b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(111)150 2432 y Fe -(delete-horizontal-space)31 b(\(\))23 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)49 b Fb(110)150 2525 -y Fe(digit-argument)29 b(\()p Fd(M-0)p Fe(,)e Fd(M-1)p -Fe(,)f(...)g Fd(M--)p Fe(\))13 b Fc(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)39 -b Fb(110)150 2619 y Fe(display-shell-version)30 b(\(C-x)d(C-v\))c -Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(114)150 -2712 y Fe(do-uppercase-version)30 b(\(M-a,)d(M-b,)f(M-)p -Fd(x)p Fe(,)h(...)q(\))317 2799 y Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 -b Fb(112)150 2893 y Fe(downcase-word)29 b(\(M-l\))15 -b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)41 b Fb(108)150 2987 y Fe(dump-functions)29 -b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(113)150 -3080 y Fe(dump-macros)28 b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)48 b Fb(113)150 3174 y Fe(dump-variables)29 -b(\(\))18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(113)150 -3267 y Fe(dynamic-complete-history)31 b(\(M-)1234 3264 -y Fg(h)p 1259 3211 V 1259 3267 a Ff(T)-6 b(AB)p 1259 -3282 V 1403 3264 a Fg(i)1432 3267 y Fe(\))10 b Fc(.)j(.)g(.)f(.)g(.)h -(.)f(.)36 b Fb(112)150 3552 y Fr(E)150 3681 y Fe -(edit-and-execute-command)31 b(\(C-xC-e\))12 b Fc(.)j(.)d(.)g(.)h(.)f -(.)g(.)h(.)38 b Fb(114)150 3774 y Fe(end-kbd-macro)29 -b(\(C-x)d(\)\))19 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(112)150 -3868 y Fe(end-of-history)29 b(\(M->\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 -b Fb(107)150 3962 y Fe(end-of-line)28 b(\(C-e\))18 b -Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(106)150 4055 -y Fe(exchange-point-and-mark)31 b(\(C-x)26 b(C-x\))21 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)45 b Fb(113)150 -4340 y Fr(F)150 4469 y Fe(forward-backward-delete-char)32 -b(\(\))15 b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 -b Fb(108)150 4562 y Fe(forward-char)28 b(\(C-f\))16 b -Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150 4656 y Fe -(forward-search-history)31 b(\(C-s\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(107)150 4749 y Fe(forward-word)28 -b(\(M-f\))16 b Fc(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(106)150 -5024 y Fr(G)150 5153 y Fe(glob-complete-word)30 b(\(M-g\))7 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)33 b Fb(113)150 5246 y Fe(glob-expand-word)c(\(C-x)e(*\))14 -b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)40 b Fb(114)150 5340 y Fe(glob-list-expansions)30 -b(\(C-x)d(g\))8 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)34 b Fb(114)2025 299 y Fr(H)2025 431 y Fe -(history-and-alias-expand-line)e(\(\))14 b Fc(.)f(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)40 b Fb(114)2025 526 y Fe(history-expand-line)30 -b(\(M-^\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)50 b Fb(114)2025 621 y Fe(history-search-backward)31 -b(\(\))23 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)49 b Fb(107)2025 716 y Fe(history-search-forward)30 -b(\(\))25 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)50 b Fb(107)2025 1008 y Fr(I)2025 1140 y Fe(insert-comment) -29 b(\(M-#\))13 b Fc(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(113)2025 -1235 y Fe(insert-completions)29 b(\(M-*\))7 b Fc(.)14 -b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)34 -b Fb(111)2025 1330 y Fe(insert-last-argument)c(\(M-.)c(or)g(M-_\))8 -b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(114)2025 -1622 y Fr(K)2025 1754 y Fe(kill-line)27 b(\(C-k\))22 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(109)2025 -1849 y Fe(kill-region)28 b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)48 b Fb(110)2025 1944 y Fe(kill-whole-line)29 -b(\(\))16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(109)2025 -2039 y Fe(kill-word)27 b(\(M-d\))22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)47 b Fb(109)2025 2321 y Fr(M)2025 2453 y Fe(magic-space)28 -b(\(\))22 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 -b Fb(114)2025 2548 y Fe(menu-complete)28 b(\(\))20 b -Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(111)2025 -2840 y Fr(N)2025 2972 y Fe(next-history)28 b(\(C-n\))16 -b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(107)2025 3067 y Fe -(non-incremental-forward-search)q(-hist)q(ory)32 b(\(M-n\))2191 -3154 y Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 3249 y Fe -(non-incremental-reverse-search)q(-hist)q(ory)32 b(\(M-p\))2191 -3337 y Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 3610 y Fr(O)2025 -3742 y Fe(operate-and-get-next)30 b(\(C-o\))24 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 -b Fb(114)2025 3837 y Fe(overwrite-mode)29 b(\(\))18 b -Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(109)2025 4119 -y Fr(P)2025 4251 y Fe(possible-command-completions)32 -b(\(C-x)26 b(!\))15 b Fc(.)e(.)f(.)h(.)f(.)41 b Fb(112)2025 -4346 y Fe(possible-completions)30 b(\(M-?\))24 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 -b Fb(111)2025 4441 y Fe(possible-filename-completions)32 -b(\(C-x)26 b(/\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 -4536 y Fe(possible-hostname-completions)32 b(\(C-x)26 -b(@\))14 b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 4631 y Fe -(possible-username-completions)32 b(\(C-x)26 b(~\))14 -b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 4726 y Fe -(possible-variable-completions)32 b(\(C-x)26 b($\))14 -b Fc(.)f(.)f(.)g(.)40 b Fb(111)2025 4821 y Fe(prefix-meta)28 -b(\()2521 4818 y Fg(h)p 2545 4765 139 4 v 2545 4821 a -Ff(ESC)p 2545 4836 V 2679 4818 a Fg(i)2709 4821 y Fe(\))19 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(112)2025 4916 y Fe(previous-history) -29 b(\(C-p\))10 b Fc(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(107)2025 5208 y Fr(Q)2025 -5340 y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))18 b -Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 -b Fb(108)p eop end +b(D:)i(Indexes)2623 b(155)150 299 y Fe(complete-variable)29 +b(\(M-$\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(111)150 389 y Fe(copy-backward-word) +30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(110)150 479 +y Fe(copy-forward-word)29 b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 +b Fb(110)150 569 y Fe(copy-region-as-kill)30 b(\(\))15 +b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)42 b Fb(110)150 836 y Fr(D)150 958 y +Fe(dabbrev-expand)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +38 b Fb(112)150 1048 y Fe(delete-char)28 b(\(C-d\))11 +b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(108)150 +1138 y Fe(delete-char-or-list)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 +b Fb(111)150 1228 y Fe(delete-horizontal-space)31 b(\(\))22 +b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +49 b Fb(109)150 1318 y Fe(digit-argument)29 b(\()p Fd(M-0)p +Fe(,)e Fd(M-1)p Fe(,)f(...)g Fd(M--)p Fe(\))d Fc(:)13 +b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(110)150 1408 y Fe +(display-shell-version)30 b(\(C-x)d(C-v\))16 b Fc(:)e(:)f(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(114)150 1499 y Fe(do-uppercase-version) +30 b(\(M-a,)d(M-b,)f(M-)p Fd(x)9 b Fe(,)27 b(...\))325 +1586 y Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(112)150 1676 +y Fe(downcase-word)29 b(\(M-l\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 +b Fb(108)150 1766 y Fe(dump-functions)29 b(\(\))11 b +Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(113)150 +1856 y Fe(dump-macros)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)45 b Fb(113)150 1946 y Fe(dump-variables)29 +b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 +b Fb(113)150 2036 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7 +b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(112)150 +2303 y Fr(E)150 2425 y Fe(edit-and-execute-command)e(\(C-xC-e\))23 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(114)150 +2515 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))7 b Fc(:)14 +b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)34 b Fb(112)150 2605 y Fe(end-of-history)29 +b(\(M->\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(107)150 +2695 y Fe(end-of-line)28 b(\(C-e\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)38 b Fb(106)150 2785 y Fe(exchange-point-and-mark)31 +b(\(C-x)26 b(C-x\))11 b Fc(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)38 +b Fb(113)150 3052 y Fr(F)150 3174 y Fe(forward-backward-delete-char)32 +b(\(\))9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 +b Fb(108)150 3264 y Fe(forward-char)28 b(\(C-f\))8 b +Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(106)150 +3354 y Fe(forward-search-history)c(\(C-s\))17 b Fc(:)d(:)f(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(107)150 3445 +y Fe(forward-word)28 b(\(M-f\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)35 b Fb(106)150 3701 y Fr(G)150 3823 y Fe(glob-complete-word)30 +b(\(M-g\))10 b Fc(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(114)150 3913 y Fe(glob-expand-word)29 +b(\(C-x)e(*\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(114)150 4003 y Fe +(glob-list-expansions)30 b(\(C-x)d(g\))7 b Fc(:)13 b(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(114)150 4270 +y Fr(H)150 4392 y Fe(history-and-alias-expand-line)f(\(\))7 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(114)150 +4482 y Fe(history-expand-line)d(\(M-^\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 +b Fb(114)150 4572 y Fe(history-search-backward)d(\(\))22 +b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +49 b Fb(107)150 4662 y Fe(history-search-forward)31 b(\(\))8 +b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)34 b Fb(107)150 4929 y Fr(I)150 5051 y Fe(insert-comment)29 +b(\(M-#\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(113)150 +5141 y Fe(insert-completions)30 b(\(M-*\))10 b Fc(:)k(:)f(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 +b Fb(111)150 5231 y Fe(insert-last-argument)30 b(\(M-.)d(or)f(M-_\))18 +b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(114)2025 +299 y Fr(K)2025 416 y Fe(kill-line)27 b(\(C-k\))16 b +Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(109)2025 +503 y Fe(kill-region)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)45 b Fb(110)2025 591 y Fe(kill-whole-line)29 +b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b +Fb(109)2025 678 y Fe(kill-word)27 b(\(M-d\))16 b Fc(:)f(:)e(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(109)2025 921 y Fr(M)2025 +1038 y Fe(magic-space)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)45 b Fb(114)2025 1126 y Fe(menu-complete)28 +b(\(\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 +b Fb(111)2025 1213 y Fe(menu-complete-backward)30 b(\(\))8 +b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)34 b Fb(111)2025 1467 y Fr(N)2025 1584 y Fe(next-history)28 +b(\(C-n\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 +b Fb(107)2025 1671 y Fe(non-incremental-forward-search)q(-hist)q(ory)d +(\(M-n\))2200 1758 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b +Fb(107)2025 1846 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32 +b(\(M-p\))2200 1933 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b +Fb(107)2025 2168 y Fr(O)2025 2285 y Fe(operate-and-get-next)30 +b(\(C-o\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)49 b Fb(114)2025 2372 y Fe(overwrite-mode)29 +b(\(\))11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 +b Fb(109)2025 2615 y Fr(P)2025 2732 y Fe(possible-command-completions) +32 b(\(C-x)26 b(!\))21 b Fc(:)13 b(:)g(:)h(:)f(:)47 b +Fb(112)2025 2820 y Fe(possible-completions)30 b(\(M-?\))23 +b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +49 b Fb(110)2025 2907 y Fe(possible-filename-completions)32 +b(\(C-x)26 b(/\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 +2995 y Fe(possible-hostname-completions)32 b(\(C-x)26 +b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 3082 y Fe +(possible-username-completions)32 b(\(C-x)26 b(~\))18 +b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 3170 y Fe +(possible-variable-completions)32 b(\(C-x)26 b($\))18 +b Fc(:)c(:)f(:)g(:)45 b Fb(111)2025 3258 y Fe(prefix-meta)28 +b(\(ESC\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 +b Fb(112)2025 3345 y Fe(previous-history)29 b(\(C-p\))15 +b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)42 b Fb(107)2025 3599 y Fr(Q)2025 3715 +y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))19 b Fc(:)14 +b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)46 +b Fb(108)2025 3969 y Fr(R)2025 4086 y Fe(re-read-init-file)29 +b(\(C-x)e(C-r\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)36 b Fb(112)2025 4173 y Fe(redraw-current-line)30 +b(\(\))15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(106)2025 4261 y Fe +(reverse-search-history)30 b(\(C-r\))17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(107)2025 4348 y Fe(revert-line)28 +b(\(M-r\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38 +b Fb(112)2025 4592 y Fr(S)2025 4708 y Fe(self-insert)28 +b(\(a,)e(b,)g(A,)g(1,)g(!,)g(...)q(\))7 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(108)2025 4796 y Fe(set-mark)27 +b(\(C-@\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 +b Fb(113)2025 4883 y Fe(shell-backward-word)30 b(\(\))15 +b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)42 b Fb(106)2025 4971 y Fe(shell-expand-line)29 +b(\(M-C-e\))8 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(114)2025 5059 y Fe(shell-forward-word)29 +b(\(\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(106)2025 5146 +y Fe(shell-kill-word)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)35 b Fb(109)2025 5234 y Fe(skip-csi-sequence)29 b(\(\))21 +b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(113)2025 5321 y Fe(start-kbd-macro) +29 b(\(C-x)d(\(\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)46 b Fb(112)p eop +end %%Page: 156 162 TeXDict begin 156 161 bop 150 -116 a Ft(156)2527 b(Bash)31 -b(Reference)g(Man)m(ual)150 299 y Fr(R)150 424 y Fe(re-read-init-file)e -(\(C-x)e(C-r\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)36 b Fb(112)150 516 y Fe(redraw-current-line)30 -b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)36 b Fb(107)150 608 y Fe(reverse-search-history) -31 b(\(C-r\))20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)46 b Fb(107)150 700 y Fe(revert-line)28 b(\(M-r\))18 -b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(113)150 965 -y Fr(S)150 1091 y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)h(!,)f(...\)) -12 b Fc(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fb(108)150 1183 y Fe(set-mark)27 b(\(C-@\))c Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(113)150 -1275 y Fe(shell-backward-word)30 b(\(\))10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)36 -b Fb(106)150 1366 y Fe(shell-expand-line)29 b(\(M-C-e\))d -Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)50 -b Fb(114)150 1458 y Fe(shell-forward-word)30 b(\(\))12 -b Fc(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)38 b Fb(106)150 1550 y Fe(shell-kill-word)29 -b(\(\))16 b Fc(.)d(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(109)150 -1642 y Fe(start-kbd-macro)29 b(\(C-x)e(\(\))16 b Fc(.)c(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)42 -b Fb(112)150 1907 y Fr(T)2025 299 y Fe(tilde-expand)28 -b(\(M-&\))16 b Fc(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(113)2025 -386 y Fe(transpose-chars)29 b(\(C-t\))12 b Fc(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)38 -b Fb(108)2025 473 y Fe(transpose-words)29 b(\(M-t\))12 -b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)38 b Fb(108)2025 725 y Fr(U)2025 841 -y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))14 b Fc(.)f(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 -b Fb(112)2025 929 y Fe(universal-argument)29 b(\(\))12 -b Fc(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)38 b Fb(110)2025 1016 y Fe(unix-filename-rubout)30 -b(\(\))9 b Fc(.)k(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)35 b Fb(109)2025 1103 y Fe(unix-line-discard)29 -b(\(C-u\))9 b Fc(.)14 b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)35 b Fb(109)2025 1190 y Fe(unix-word-rubout)29 -b(\(C-w\))10 b Fc(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(109)2025 1278 y Fe(upcase-word)28 -b(\(M-u\))18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b -Fb(108)2025 1530 y Fr(Y)2025 1646 y Fe(yank)26 b(\(C-y\))10 -b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 -b Fb(110)2025 1733 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))18 -b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -44 b Fb(108)2025 1820 y Fe(yank-nth-arg)28 b(\(M-C-y\))13 -b Fc(.)h(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)39 b Fb(107)2025 1907 y Fe(yank-pop)27 -b(\(M-y\))c Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 -b Fb(110)150 2165 y Fr(D.5)68 b(Concept)45 b(Index)150 -2509 y(A)150 2630 y Fb(alias)27 b(expansion)20 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(79)150 -2719 y(arithmetic)26 b(ev)l(aluation)f Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 -b Fb(78)150 2808 y(arithmetic)26 b(expansion)12 b Fc(.)h(.)f(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)38 b Fb(23)150 2898 y(arithmetic,)27 b(shell)20 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 -b Fb(78)150 2987 y(arra)n(ys)6 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32 -b Fb(80)150 3248 y Fr(B)150 3368 y Fb(bac)n(kground)23 -b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 -b Fb(89)150 3457 y(Bash)26 b(con\014guration)11 b Fc(.)i(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)36 b Fb(127)150 3547 y(Bash)26 b(installation)6 -b Fc(.)15 b(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(127)150 -3636 y(Bourne)26 b(shell)10 b Fc(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(5)150 3725 y(brace)26 -b(expansion)d Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)48 -b Fb(18)150 3814 y(builtin)17 b Fc(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b -Fb(3)150 4058 y Fr(C)150 4179 y Fb(command)26 b(editing)19 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(94)150 -4268 y(command)26 b(execution)11 b Fc(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -37 b Fb(30)150 4357 y(command)26 b(expansion)d Fc(.)12 -b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fb(30)150 4447 y(command)26 -b(history)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(121)150 4536 y(command)26 b(searc)n(h)12 b Fc(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)38 b Fb(30)150 4625 y(command)26 -b(substitution)e Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(23)150 -4715 y(command)26 b(timing)8 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)34 b Fb(8)150 4804 y(commands,)26 b(comp)r(ound)8 -b Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(9)150 4893 -y(commands,)26 b(conditional)13 b Fc(.)h(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)39 -b Fb(10)150 4983 y(commands,)26 b(grouping)15 b Fc(.)f(.)e(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)41 b Fb(13)150 5072 y(commands,)26 b(lists)6 -b Fc(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 -b Fb(9)150 5161 y(commands,)26 b(lo)r(oping)e Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(10)150 5251 y(commands,)26 -b(pip)r(elines)17 b Fc(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 -b Fb(8)150 5340 y(commands,)26 b(shell)16 b Fc(.)e(.)e(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(8)2025 2509 y(commands,)26 -b(simple)21 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 -b Fb(8)2025 2598 y(commen)n(ts,)26 b(shell)8 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)34 -b Fb(7)2025 2687 y(completion)26 b(builtins)c Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(116)2025 2777 y(con\014guration)15 -b Fc(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)42 -b Fb(127)2025 2866 y(con)n(trol)26 b(op)r(erator)c Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fb(3)2025 -2955 y(copro)r(cess)6 b Fc(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(14)2025 3214 -y Fr(D)2025 3334 y Fb(directory)26 b(stac)n(k)d Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fb(81)2025 -3594 y Fr(E)2025 3713 y Fb(editing)26 b(command)g(lines)c -Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fb(94)2025 3802 y(en)n(vironmen)n(t)10 -b Fc(.)h(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 -b Fb(32)2025 3892 y(ev)l(aluation,)26 b(arithmetic)13 -b Fc(.)h(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)39 b Fb(78)2025 3981 y(ev)n(en)n(t)24 -b(designators)18 b Fc(.)d(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 -b Fb(124)2025 4070 y(execution)25 b(en)n(vironmen)n(t)19 -b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fb(31)2025 4159 y(exit)25 -b(status)17 b Fc(.)c(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)43 b Fb(3,)26 b(33)2025 4248 y(expansion)16 b Fc(.)c(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b -Fb(17)2025 4337 y(expansion,)26 b(arithmetic)20 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)45 b Fb(23)2025 4426 y(expansion,)26 -b(brace)12 b Fc(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fb(18)2025 4515 y(expansion,)26 b(\014lename)18 b Fc(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(24)2025 4604 y(expansion,)26 -b(parameter)c Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(20)2025 -4693 y(expansion,)26 b(pathname)8 b Fc(.)k(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 -b Fb(24)2025 4782 y(expansion,)26 b(tilde)9 b Fc(.)j(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(19)2025 4872 y(expressions,)27 -b(arithmetic)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(78)2025 -4961 y(expressions,)27 b(conditional)22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 -b Fb(77)2025 5220 y Fr(F)2025 5340 y Fb(\014eld)21 b -Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(3)p eop end +b(Reference)g(Man)m(ual)150 299 y Fr(T)150 415 y Fe(tilde-expand)d +(\(M-&\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 +b Fb(113)150 502 y Fe(transpose-chars)29 b(\(C-t\))18 +b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)44 b Fb(108)150 590 y Fe(transpose-words)29 +b(\(M-t\))18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(108)150 842 +y Fr(U)150 958 y Fe(undo)27 b(\(C-_)f(or)g(C-x)g(C-u\))c +Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(112)150 1046 y Fe +(universal-argument)30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 +b Fb(110)150 1133 y Fe(unix-filename-rubout)30 b(\(\))13 +b Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)39 b Fb(109)2025 299 y Fe(unix-line-discard)29 +b(\(C-u\))13 b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(109)2025 389 y Fe(unix-word-rubout) +29 b(\(C-w\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(109)2025 478 +y Fe(upcase-word)28 b(\(M-u\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)38 b Fb(108)2025 743 y Fr(Y)2025 864 y Fe(yank)26 +b(\(C-y\))12 b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)39 b Fb(110)2025 954 y Fe(yank-last-arg)28 +b(\(M-.)f(or)f(M-_\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(108)2025 1043 y Fe(yank-nth-arg)28 +b(\(M-C-y\))22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(107)2025 +1133 y Fe(yank-pop)27 b(\(M-y\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)45 b Fb(110)150 1366 y Fr(D.5)68 +b(Concept)45 b(Index)150 1625 y(A)150 1743 y Fb(alias)27 +b(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)44 b Fb(79)150 1831 y(arithmetic)26 b(ev)l(aluation)16 +b Fc(:)e(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(78)150 1919 +y(arithmetic)26 b(expansion)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 +b Fb(23)150 2007 y(arithmetic,)27 b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(78)150 2095 y(arra)n(ys)15 +b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b Fb(80)150 2348 y Fr(B)150 +2466 y Fb(bac)n(kground)9 b Fc(:)j(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(89)150 2554 y(Bash)26 +b(con\014guration)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(127)150 2642 y(Bash)26 b(installation)c Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(127)150 +2729 y(Bourne)26 b(shell)13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(5)150 2817 +y(brace)26 b(expansion)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)47 b Fb(18)150 2905 y(builtin)9 b Fc(:)k(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)36 b Fb(3)150 3142 y Fr(C)150 3260 y Fb(command)26 +b(editing)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)42 +b Fb(94)150 3348 y(command)26 b(execution)d Fc(:)13 b(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)49 b Fb(30)150 3435 y(command)26 b(expansion)16 +b Fc(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(29)150 +3523 y(command)26 b(history)12 b Fc(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)39 b Fb(121)150 3611 y(command)26 b(searc)n(h)10 +b Fc(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 +b Fb(30)150 3699 y(command)26 b(substitution)15 b Fc(:)e(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)41 b Fb(22)150 3787 y(command)26 b(timing)7 +b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 +b Fb(8)150 3875 y(commands,)26 b(comp)r(ound)18 b Fc(:)c(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)45 b Fb(9)150 3963 y(commands,)26 b(conditional)d +Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(10)150 4051 y(commands,)26 +b(grouping)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 +b Fb(13)150 4139 y(commands,)26 b(lists)6 b Fc(:)15 b(:)e(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(8)150 +4227 y(commands,)26 b(lo)r(oping)18 b Fc(:)d(:)e(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)45 b Fb(9)150 4315 y(commands,)26 b(pip)r(elines)12 +b Fc(:)i(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(8)150 +4403 y(commands,)26 b(shell)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)42 b Fb(7)150 4491 y(commands,)26 +b(simple)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 +b Fb(8)150 4579 y(commen)n(ts,)26 b(shell)7 b Fc(:)15 +b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 +b Fb(7)150 4667 y(completion)27 b(builtins)15 b Fc(:)e(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)42 b Fb(117)150 4755 y(con\014guration)15 +b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 +b Fb(127)150 4842 y(con)n(trol)26 b(op)r(erator)21 b +Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 +b Fb(3)150 4930 y(copro)r(cess)12 b Fc(:)i(:)g(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b +Fb(14)150 5184 y Fr(D)150 5301 y Fb(directory)26 b(stac)n(k)c +Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 +b Fb(81)2025 1625 y Fr(E)2025 1745 y Fb(editing)26 b(command)g(lines)13 +b Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)39 b Fb(94)2025 1834 +y(en)n(vironmen)n(t)12 b Fc(:)g(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(31)2025 1923 y(ev)l(aluation,)26 +b(arithmetic)e Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)49 b +Fb(78)2025 2012 y(ev)n(en)n(t)24 b(designators)14 b Fc(:)h(:)e(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 b Fb(123)2025 2101 y(execution)25 +b(en)n(vironmen)n(t)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37 +b Fb(30)2025 2190 y(exit)25 b(status)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)45 b Fb(3,)26 +b(32)2025 2279 y(expansion)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(17)2025 +2368 y(expansion,)26 b(arithmetic)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)38 b Fb(23)2025 2457 y(expansion,)26 b(brace)10 b +Fc(:)j(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 +b Fb(18)2025 2546 y(expansion,)26 b(\014lename)12 b Fc(:)h(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)38 b Fb(24)2025 2635 y(expansion,)26 +b(parameter)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)40 +b Fb(19)2025 2724 y(expansion,)26 b(pathname)18 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(24)2025 2813 y(expansion,)26 +b(tilde)8 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)34 b Fb(19)2025 2902 y(expressions,)27 b(arithmetic)7 +b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(78)2025 2991 +y(expressions,)27 b(conditional)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 +b Fb(76)2025 3250 y Fr(F)2025 3369 y Fb(\014eld)15 b +Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(3)2025 3458 +y(\014lename)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(3)2025 +3547 y(\014lename)26 b(expansion)c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)49 b Fb(24)2025 3636 y(foreground)23 b Fc(:)13 +b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +49 b Fb(89)2025 3725 y(functions,)26 b(shell)21 b Fc(:)13 +b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47 +b Fb(14)2025 3984 y Fr(H)2025 4104 y Fb(history)25 b(builtins)14 +b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 +b Fb(121)2025 4193 y(history)25 b(ev)n(en)n(ts)19 b Fc(:)13 +b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46 +b Fb(123)2025 4282 y(history)25 b(expansion)8 b Fc(:)14 +b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(123)2025 +4371 y(history)25 b(list)c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)47 b Fb(121)2025 4460 +y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)40 b Fb(120)2025 4719 y Fr(I)2025 4838 y +Fb(iden)n(ti\014er)22 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50 b Fb(3)2025 +4927 y(initialization)28 b(\014le,)e(readline)13 b Fc(:)h(:)f(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +40 b Fb(96)2025 5016 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(127)2025 +5105 y(in)n(teraction,)26 b(readline)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)47 b Fb(93)2025 5194 y(in)n(teractiv)n(e)26 +b(shell)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)40 +b Fb(73,)27 b(75)2025 5283 y(in)n(ternationalization)14 +b Fc(:)h(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b +Fb(7)p eop end %%Page: 157 163 TeXDict begin 157 162 bop 150 -116 a Ft(App)s(endix)29 -b(D:)i(Indexes)2623 b(157)150 299 y Fb(\014lename)8 b -Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)34 b Fb(3)150 398 y(\014lename)26 b(expansion)10 -b Fc(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)36 b Fb(24)150 -497 y(foreground)20 b Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)45 b Fb(89)150 596 y(functions,)26 -b(shell)d Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 -b Fb(14)150 908 y Fr(H)150 1048 y Fb(history)26 b(builtins)16 -b Fc(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b -Fb(121)150 1147 y(history)26 b(ev)n(en)n(ts)19 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)46 b Fb(124)150 -1246 y(history)26 b(expansion)13 b Fc(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)39 b Fb(123)150 1345 y(history)26 b(list)18 b Fc(.)13 -b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fb(121)150 1444 y(History)-6 b(,)26 b(ho)n(w)g(to)f(use)20 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 b Fb(120)150 1755 -y Fr(I)150 1896 y Fb(iden)n(ti\014er)16 b Fc(.)c(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 -b Fb(3)150 1995 y(initialization)28 b(\014le,)e(readline)7 -b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)33 b Fb(96)150 2094 y(installation)11 -b Fc(.)j(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fb(127)150 2193 y(in)n(teraction,)27 b(readline)9 b -Fc(.)k(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)35 b Fb(93)150 2292 -y(in)n(teractiv)n(e)26 b(shell)20 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)46 b Fb(73,)26 b(75)150 2391 y(in)n(ternationalization)21 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fb(7)150 -2686 y Fr(J)150 2826 y Fb(job)22 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 -b Fb(3)150 2925 y(job)26 b(con)n(trol)12 b Fc(.)h(.)g(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(3,)26 b(89)150 -3236 y Fr(K)150 3377 y Fb(kill)g(ring)14 b Fc(.)f(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(95)150 3476 y(killing)27 b(text)16 b Fc(.)c(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fb(95)150 -3787 y Fr(L)150 3928 y Fb(lo)r(calization)10 b Fc(.)15 -b(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fb(7)150 4027 y(login)27 b(shell)13 b Fc(.)g(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)39 b Fb(73)150 -4338 y Fr(M)150 4478 y Fb(matc)n(hing,)26 b(pattern)7 -b Fc(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(25)150 -4577 y(metac)n(haracter)17 b Fc(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)43 b Fb(3)150 4872 y Fr(N)150 5013 y -Fb(name)21 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(3)150 5112 -y(nativ)n(e)25 b(languages)14 b Fc(.)h(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)40 b Fb(7)150 5211 y(notation,)27 b(readline)12 -b Fc(.)h(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(94)150 -5522 y Fr(O)150 5662 y Fb(op)r(erator,)27 b(shell)15 -b Fc(.)e(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fb(3)2025 299 y Fr(P)2025 415 y Fb(parameter)26 b(expansion)14 -b Fc(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(20)2025 502 y(parameters)14 -b Fc(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fb(16)2025 589 y(parameters,)27 b(p)r(ositional)9 b -Fc(.)14 b(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(16)2025 677 y(parameters,)27 -b(sp)r(ecial)e Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 -b Fb(17)2025 764 y(pathname)25 b(expansion)19 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(24)2025 851 y(pattern)25 -b(matc)n(hing)18 b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 -b Fb(25)2025 938 y(pip)r(eline)15 b Fc(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b -Fb(8)2025 1026 y(POSIX)8 b Fc(.)j(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(3)2025 -1113 y(POSIX)24 b(Mo)r(de)10 b Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)35 b Fb(85)2025 1200 y(pro)r(cess)26 -b(group)7 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)34 b Fb(3)2025 1287 y(pro)r(cess)26 b(group)g(ID)e -Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)50 -b Fb(3)2025 1374 y(pro)r(cess)26 b(substitution)10 b -Fc(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(23)2025 1462 -y(programmable)27 b(completion)16 b Fc(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(115)2025 -1549 y(prompting)7 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(83)2025 1799 y Fr(Q)2025 -1915 y Fb(quoting)19 b Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(6)2025 -2002 y(quoting,)26 b(ANSI)12 b Fc(.)f(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)39 b Fb(6)2025 2251 y Fr(R)2025 2368 -y Fb(Readline,)26 b(ho)n(w)g(to)g(use)14 b Fc(.)e(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)40 b Fb(92)2025 2455 y(redirection)21 b Fc(.)12 b(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fb(26)2025 -2542 y(reserv)n(ed)25 b(w)n(ord)f Fc(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)50 b Fb(3)2025 2629 y(restricted)26 -b(shell)8 b Fc(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -34 b Fb(84)2025 2716 y(return)25 b(status)19 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 -b Fb(4)2025 2949 y Fr(S)2025 3066 y Fb(shell)26 b(arithmetic)12 -b Fc(.)h(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fb(78)2025 3153 y(shell)26 b(function)11 b Fc(.)i(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fb(14)2025 3240 -y(shell)26 b(script)18 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(34)2025 3327 y(shell)26 -b(v)l(ariable)17 b Fc(.)c(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)43 b Fb(16)2025 3414 y(shell,)26 b(in)n(teractiv)n(e)16 -b Fc(.)d(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b -Fb(75)2025 3502 y(signal)14 b Fc(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 -b Fb(4)2025 3589 y(signal)27 b(handling)18 b Fc(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)44 b Fb(33)2025 -3676 y(sp)r(ecial)27 b(builtin)12 b Fc(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)38 b Fb(4,)26 b(59)2025 3763 y(startup)f(\014les)20 -b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)45 -b Fb(73)2025 3851 y(susp)r(ending)25 b(jobs)7 b Fc(.)14 -b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(89)2025 -4100 y Fr(T)2025 4216 y Fb(tilde)26 b(expansion)19 b -Fc(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 -b Fb(19)2025 4304 y(tok)n(en)18 b Fc(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 -b Fb(4)2025 4391 y(translation,)27 b(nativ)n(e)e(languages)9 -b Fc(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)35 b Fb(7)2025 4640 y Fr(V)2025 4756 y Fb(v)l(ariable,)26 -b(shell)7 b Fc(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)32 b Fb(16)2025 4844 y(v)l(ariables,)27 b(readline)7 -b Fc(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fb(97)2025 -5093 y Fr(W)2025 5209 y Fb(w)n(ord)10 b Fc(.)i(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fb(4)2025 5297 y(w)n(ord)26 b(splitting)21 b Fc(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 -b Fb(24)2025 5546 y Fr(Y)2025 5662 y Fb(y)n(anking)25 -b(text)7 b Fc(.)k(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)33 b Fb(95)p eop end +b(D:)i(Indexes)2623 b(157)150 299 y Fr(J)150 415 y Fb(job)16 +b Fc(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 b Fb(3)150 +503 y(job)26 b(con)n(trol)13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Fb(3,)26 b(89)150 753 +y Fr(K)150 870 y Fb(kill)g(ring)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 +b Fb(95)150 957 y(killing)27 b(text)19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b +Fb(95)150 1208 y Fr(L)150 1324 y Fb(lo)r(calization)14 +b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)41 b Fb(7)150 1412 y(login)27 b(shell)17 b +Fc(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)g(:)44 b Fb(73)150 1662 y Fr(M)150 1779 y Fb(matc)n(hing,)26 +b(pattern)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 +b Fb(24)150 1866 y(metac)n(haracter)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(3)150 2100 +y Fr(N)150 2217 y Fb(name)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)40 +b Fb(3)150 2304 y(nativ)n(e)25 b(languages)13 b Fc(:)i(:)e(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(7)150 2391 +y(notation,)27 b(readline)9 b Fc(:)k(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)35 b Fb(94)150 2642 y Fr(O)150 2759 y Fb(op)r(erator,)27 +b(shell)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)43 b Fb(3)150 3009 y Fr(P)150 3126 y Fb(parameter)26 +b(expansion)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34 +b Fb(19)150 3213 y(parameters)17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 b Fb(15)150 +3300 y(parameters,)27 b(p)r(ositional)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)44 b Fb(16)150 3388 y(parameters,)27 b(sp)r(ecial)18 +b Fc(:)c(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)44 b Fb(16)150 +3475 y(pathname)25 b(expansion)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)38 b Fb(24)150 3563 y(pattern)25 b(matc)n(hing)14 +b Fc(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)40 +b Fb(24)150 3650 y(pip)r(eline)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 +b Fb(8)150 3737 y(POSIX)17 b Fc(:)12 b(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 +b Fb(3)150 3825 y(POSIX)25 b(Mo)r(de)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(84)150 +3912 y(pro)r(cess)27 b(group)9 b Fc(:)k(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)36 b Fb(3)150 4000 y(pro)r(cess)27 +b(group)e(ID)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)49 b Fb(3)150 4087 y(pro)r(cess)27 b(substitution)21 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)48 b Fb(23)150 +4175 y(programmable)27 b(completion)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46 +b Fb(115)150 4262 y(prompting)11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(82)2025 +299 y Fr(Q)2025 419 y Fb(quoting)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)37 +b Fb(6)2025 508 y(quoting,)26 b(ANSI)13 b Fc(:)e(:)j(:)f(:)g(:)g(:)g(:) +g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(6)2025 +768 y Fr(R)2025 888 y Fb(Readline,)26 b(ho)n(w)g(to)g(use)7 +b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(92)2025 +977 y(redirection)7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(26)2025 1066 +y(reserv)n(ed)25 b(w)n(ord)7 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(3)2025 1155 +y(restricted)26 b(shell)8 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(84)2025 1244 y(return)25 +b(status)c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)48 b Fb(4)2025 1487 y Fr(S)2025 1607 y +Fb(shell)26 b(arithmetic)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)37 b Fb(78)2025 1696 y(shell)26 b(function)12 +b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)38 +b Fb(14)2025 1785 y(shell)26 b(script)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b +Fb(33)2025 1874 y(shell)26 b(v)l(ariable)18 b Fc(:)c(:)f(:)g(:)g(:)h(:) +f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(15)2025 +1964 y(shell,)26 b(in)n(teractiv)n(e)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:) +h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)40 b Fb(75)2025 2053 y(signal)7 +b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34 b Fb(4)2025 2142 +y(signal)27 b(handling)17 b Fc(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g +(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) +g(:)g(:)g(:)g(:)44 b Fb(32)2025 2231 y(sp)r(ecial)27 +b(builtin)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +37 b Fb(4,)26 b(59)2025 2320 y(startup)f(\014les)d Fc(:)13 +b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 +b Fb(73)2025 2409 y(susp)r(ending)25 b(jobs)6 b Fc(:)14 +b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h +(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33 +b Fb(89)2025 2669 y Fr(T)2025 2789 y Fb(tilde)26 b(expansion)18 +b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 +b Fb(19)2025 2878 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)38 +b Fb(4)2025 2967 y(translation,)27 b(nativ)n(e)e(languages)13 +b Fc(:)i(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) +g(:)g(:)g(:)40 b Fb(7)2025 3227 y Fr(V)2025 3347 y Fb(v)l(ariable,)26 +b(shell)8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g +(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) +f(:)g(:)g(:)34 b Fb(15)2025 3436 y(v)l(ariables,)27 b(readline)21 +b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f +(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47 +b Fb(97)2025 3695 y Fr(W)2025 3815 y Fb(w)n(ord)21 b +Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g +(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) +g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(4)2025 3904 +y(w)n(ord)26 b(splitting)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(23)2025 4164 y Fr(Y)2025 +4284 y Fb(y)n(anking)25 b(text)9 b Fc(:)j(:)h(:)g(:)h(:)f(:)g(:)g(:)g +(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) +g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(95)p eop +end %%Page: 158 164 -TeXDict begin 158 163 bop 150 -116 a Ft(158)2527 b(Bash)31 -b(Reference)g(Man)m(ual)p eop end +TeXDict begin 158 163 bop eop end %%Trailer userdict /end-hook known{end-hook}if diff --git a/doc/bashref.texi b/doc/bashref.texi index c310664..bf8e3d0 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -24,7 +24,7 @@ are preserved on all copies. @quotation Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 or +under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is @@ -498,6 +498,7 @@ alert (bell) @item \b backspace @item \e +@itemx \E an escape character (not ANSI C) @item \f form feed @@ -513,6 +514,8 @@ vertical tab backslash @item \' single quote +@item \" +double quote @item \@var{nnn} the eight-bit character whose value is the octal value @var{nnn} (one to three digits) @@ -777,7 +780,7 @@ in @var{consequent-commands}, or zero if none was executed. The syntax of the @code{for} command is: @example -for @var{name} [in @var{words} @dots{}]; do @var{commands}; done +for @var{name} [ [in [@var{words} @dots{}] ] ; ] do @var{commands}; done @end example Expand @var{words}, and execute @var{commands} once for each member in the resultant list, with @var{name} bound to the current member. @@ -864,7 +867,7 @@ operator terminates a pattern list. A list of patterns and an associated command-list is known as a @var{clause}. -Each clause must be terminated with @samp{;;}, @samp{,&}, or @samp{;;&}. +Each clause must be terminated with @samp{;;}, @samp{;&}, or @samp{;;&}. The @var{word} undergoes tilde expansion, parameter expansion, command substitution, arithmetic expansion, and quote removal before matching is attempted. Each @var{pattern} undergoes tilde expansion, parameter @@ -976,6 +979,9 @@ substitution, and quote removal are performed. Conditional operators such as @samp{-f} must be unquoted to be recognized as primaries. +When used with @samp{[[}, The @samp{<} and @samp{>} operators sort +lexicographically using the current locale. + When the @samp{==} and @samp{!=} operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below in @ref{Pattern Matching}. @@ -1177,14 +1183,18 @@ positional parameters is updated to reflect the change. Special parameter @code{0} is unchanged. The first element of the @env{FUNCNAME} variable is set to the name of the function while the function is executing. + All other aspects of the shell execution environment are identical between a function and its caller -with the exception that the @env{DEBUG} and @env{RETURN} traps +with these exceptions: +the @env{DEBUG} and @env{RETURN} traps are not inherited unless the function has been given the @code{trace} attribute using the @code{declare} builtin or the @code{-o functrace} option has been enabled with the @code{set} builtin, -(in which case all functions inherit the @env{DEBUG} and @env{RETURN} traps). +(in which case all functions inherit the @env{DEBUG} and @env{RETURN} traps), +and the @env{ERR} trap is not inherited unless the @code{-o errtrace} +shell option has been enabled. @xref{Bourne Shell Builtins}, for the description of the @code{trap} builtin. @@ -1461,7 +1471,7 @@ bash$ echo a@{d,c,b@}e ade ace abe @end example -A sequence expression takes the form @code{@{@var{x}..@var{y}[@var{incr}]@}}, +A sequence expression takes the form @code{@{@var{x}..@var{y}[..@var{incr}]@}}, where @var{x} and @var{y} are either integers or single characters, and @var{incr}, an optional increment, is an integer. When integers are supplied, the expression expands to each number between @@ -1601,7 +1611,7 @@ or when @var{parameter} is followed by a character that is not to be interpreted as part of its name. -If the first character of @var{parameter} is an exclamation point, +If the first character of @var{parameter} is an exclamation point (!), a level of variable indirection is introduced. Bash uses the value of the variable formed from the rest of @var{parameter} as the name of the variable; this variable is then @@ -1767,7 +1777,7 @@ array in turn, and the expansion is the resultant list. @itemx $@{@var{parameter},,@var{pattern}@} This expansion modifies the case of alphabetic characters in @var{parameter}. The @var{pattern} is expanded to produce a pattern just as in -pathname expansion. +filename expansion. The @samp{^} operator converts lowercase letters matching @var{pattern} to uppercase; the @samp{,} operator converts matching uppercase letters to lowercase. @@ -1941,7 +1951,7 @@ an error message is printed and the command is not executed. If the shell option @code{nocaseglob} is enabled, the match is performed without regard to the case of alphabetic characters. -When a pattern is used for filename generation, the character @samp{.} +When a pattern is used for filename expansion, the character @samp{.} at the start of a filename or immediately following a slash must be matched explicitly, unless the shell option @code{dotglob} is set. When matching a file name, the slash character must always be @@ -2084,6 +2094,14 @@ simple command or may follow a command. Redirections are processed in the order they appear, from left to right. +Each redirection that may be preceded by a file descriptor number +may instead be preceded by a word of the form @{@var{varname}@}. +In this case, for each redirection operator except +>&- and <&-, the shell will allocate a file descriptor greater +than 10 and assign it to @{@var{varname}@}. If >&- or <&- is preceded +by @{@var{varname}@}, the value of @var{varname} defines the file +descriptor to close. + In the following descriptions, if the file descriptor number is omitted, and the first character of the redirection operator is @samp{<}, the redirection refers to the standard input (file @@ -2765,8 +2783,14 @@ Many of the builtins have been extended by @sc{posix} or Bash. Unless otherwise noted, each builtin command documented as accepting options preceded by @samp{-} accepts @samp{--} to signify the end of the options. -For example, the @code{:}, @code{true}, @code{false}, and @code{test} -builtins do not accept options. +The @code{:}, @code{true}, @code{false}, and @code{test} +builtins do not accept options and do not treat @samp{--} specially. +The @code{exit}, @code{logout}, @code{break}, @code{continue}, @code{let}, +and @code{shift} builtins accept and process arguments beginning +with @samp{-} without requiring @samp{--}. +Other builtins that accept arguments but are not specified as accepting +options interpret arguments beginning with @samp{-} as invalid options and +require @samp{--} to prevent this interpretation. @node Bourne Shell Builtins @section Bourne Shell Builtins @@ -3159,15 +3183,20 @@ The @option{-l} option causes the shell to print a list of signal names and their corresponding numbers. Each @var{sigspec} is either a signal name or a signal number. Signal names are case insensitive and the @code{SIG} prefix is optional. + If a @var{sigspec} is @code{0} or @code{EXIT}, @var{arg} is executed when the shell exits. If a @var{sigspec} is @code{DEBUG}, the command @var{arg} is executed before every simple command, @code{for} command, @code{case} command, @code{select} command, every arithmetic @code{for} command, and before the first command executes in a shell function. -Refer to the description of the @code{extglob} option to the +Refer to the description of the @code{extdebug} option to the @code{shopt} builtin (@pxref{The Shopt Builtin}) for details of its effect on the @code{DEBUG} trap. +If a @var{sigspec} is @code{RETURN}, the command @var{arg} is executed +each time a shell function or a script executed with the @code{.} or +@code{source} builtins finishes executing. + If a @var{sigspec} is @code{ERR}, the command @var{arg} is executed whenever a simple command has a non-zero exit status, subject to the following conditions. @@ -3178,13 +3207,10 @@ part of a command executed in a @code{&&} or @code{||} list, or if the command's return status is being inverted using @code{!}. These are the same conditions obeyed by the @code{errexit} option. -If a @var{sigspec} is @code{RETURN}, the command @var{arg} is executed -each time a shell function or a script executed with the @code{.} or -@code{source} builtins finishes executing. Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their original -values in a child process when it is created. +values in a subshell or subshell environment when one is created. The return status is zero unless a @var{sigspec} does not specify a valid signal. @@ -3625,7 +3651,7 @@ parent. mapfile [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [ -C @var{callback}] [-c @var{quantum}] [@var{array}] @end example -Read lines from the standard input into array variable @var{array}, +Read lines from the standard input into the indexed array variable @var{array}, or from file descriptor @var{fd} if the @option{-u} option is supplied. The variable @code{MAPFILE} is the default @var{array}. @@ -3640,7 +3666,7 @@ The default index is 0. @item -s Discard the first @var{count} lines read. @item -t -Remove a trailing line from each line read. +Remove a trailing newline from each line read. @item -u Read lines from file descriptor @var{fd} instead of the standard input. @item -C @@ -3661,7 +3687,8 @@ If not supplied with an explicit origin, @code{mapfile} will clear @var{array} before assigning to it. @code{mapfile} returns successfully unless an invalid option or option -argument is supplied, or @var{array} is invalid or unassignable. +argument is supplied, @var{array} is invalid or unassignable, or @var{array} +is not an indexed array. @item printf @btindex printf @@ -3696,7 +3723,7 @@ non-zero on failure. @item read @btindex read @example -read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}] +read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-N @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}] @end example One line is read from the standard input, or from the file descriptor @var{fd} supplied as an argument to the @option{-u} option, and the first word @@ -3739,7 +3766,16 @@ the editing buffer before editing begins. @item -n @var{nchars} @code{read} returns after reading @var{nchars} characters rather than -waiting for a complete line of input. +waiting for a complete line of input, but honor a delimiter if fewer +than @var{nchars} characters are read before the delimiter. + +@item -N @var{nchars} +@code{read} returns after reading exactly @var{nchars} characters rather +than waiting for a complete line of input, unless EOF is encountered or +@code{read} times out. +Delimiter characters encountered in the input are +not treated specially and do not cause @code{read} to return until +@var{nchars} characters are read. @item -p @var{prompt} Display @var{prompt}, without a trailing newline, before attempting @@ -3779,7 +3815,7 @@ Read input from file descriptor @var{fd}. readarray [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [ -C @var{callback}] [-c @var{quantum}] [@var{array}] @end example -Read lines from the standard input into array variable @var{array}, +Read lines from the standard input into the indexed array variable @var{array}, or from file descriptor @var{fd} if the @option{-u} option is supplied. @@ -4007,7 +4043,7 @@ separately (@pxref{Command Execution Environment}), and may cause subshells to exit before executing all the commands in the subshell. @item -f -Disable file name generation (globbing). +Disable filename expansion (globbing). @item -h Locate and remember (hash) commands as they are looked up for execution. @@ -4124,8 +4160,8 @@ Same as @code{-x}. Turn on privileged mode. In this mode, the @env{$BASH_ENV} and @env{$ENV} files are not processed, shell functions are not inherited from the environment, -and the @env{SHELLOPTS}, @env{CDPATH} and @env{GLOBIGNORE} variables, -if they appear in the environment, are ignored. +and the @env{SHELLOPTS}, @env{BASHOPTS}, @env{CDPATH} and @env{GLOBIGNORE} +variables, if they appear in the environment, are ignored. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the @code{-p} option is not supplied, these actions are taken and the effective user id is set to the real user id. @@ -4391,7 +4427,7 @@ performed within @code{$@{@var{parameter}@}} expansions enclosed in double quotes. This option is enabled by default. @item failglob -If set, patterns which fail to match filenames during pathname expansion +If set, patterns which fail to match filenames during filename expansion result in an expansion error. @item force_fignore @@ -4638,6 +4674,16 @@ variables for controlling the job control facilities @item BASH The full pathname used to execute the current instance of Bash. +@item BASHOPTS +A colon-separated list of enabled shell options. Each word in +the list is a valid argument for the @option{-s} option to the +@code{shopt} builtin command (@pxref{The Shopt Builtin}). +The options appearing in @env{BASHOPTS} are those reported +as @samp{on} by @samp{shopt}. +If this variable is in the environment when Bash +starts up, each shell option in the list will be enabled before +reading any startup files. This variable is readonly. + @item BASHPID Expands to the process id of the current Bash process. This differs from @code{$$} under certain circumstances, such as subshells @@ -4750,6 +4796,20 @@ The value of @env{MACHTYPE}. @item BASH_VERSION The version number of the current instance of Bash. +@item BASH_XTRACEFD +If set to an integer corresponding to a valid file descriptor, Bash +will write the trace output generated when @samp{set -x} +is enabled to that file descriptor. +This allows tracing output to be separated from diagnostic and error +messages. +The file descriptor is closed when @code{BASH_XTRACEFD} is unset or assigned +a new value. +Unsetting @code{BASH_XTRACEFD} or assigning it the empty string causes the +trace output to be sent to the standard error. +Note that setting @code{BASH_XTRACEFD} to 2 (the standard error file +descriptor) and then unsetting it will result in the standard error +being closed. + @item COLUMNS Used by the @code{select} builtin command to determine the terminal width when printing selection lists. Automatically set upon receipt of a @@ -4962,7 +5022,8 @@ is running; the next time hostname completion is attempted after the value is changed, Bash adds the contents of the new file to the existing list. -If @env{HOSTFILE} is set, but has no value, Bash attempts to read +If @env{HOSTFILE} is set, but has no value, or does not name a readable file, +Bash attempts to read @file{/etc/hosts} to obtain the list of possible hostname completions. When @env{HOSTFILE} is unset, the hostname list is cleared. @@ -5482,8 +5543,9 @@ allow them to be specified. If Bash is started with the effective user (group) id not equal to the real user (group) id, and the @code{-p} option is not supplied, no startup files are read, shell functions are not inherited from the environment, -the @env{SHELLOPTS} variable, if it appears in the environment, is ignored, -and the effective user id is set to the real user id. +the @env{SHELLOPTS}, @env{BASHOPTS}, @env{CDPATH}, and @env{GLOBIGNORE} +variables, if they appear in the environment, are ignored, and the effective +user id is set to the real user id. If the @code{-p} option is supplied at invocation, the startup behavior is the same, but the effective user id is not reset. @@ -5660,6 +5722,9 @@ If the @var{file} argument to one of the primaries is one of @file{/dev/stdin}, @file{/dev/stdout}, or @file{/dev/stderr}, file descriptor 0, 1, or 2, respectively, is checked. +When used with @samp{[[}, The @samp{<} and @samp{>} operators sort +lexicographically using the current locale. + Unless otherwise specified, primaries that operate on files follow symbolic links and operate on the target of the link, rather than the link itself. @@ -5752,19 +5817,18 @@ True if the length of @var{string} is zero. True if the length of @var{string} is non-zero. @item @var{string1} == @var{string2} +@itemx @var{string1} = @var{string2} True if the strings are equal. -@samp{=} may be used in place of @samp{==} for strict @sc{posix} compliance. +@samp{=} should be used with the @code{test} command for @sc{posix} conformance. @item @var{string1} != @var{string2} True if the strings are not equal. @item @var{string1} < @var{string2} -True if @var{string1} sorts before @var{string2} lexicographically -in the current locale. +True if @var{string1} sorts before @var{string2} lexicographically. @item @var{string1} > @var{string2} -True if @var{string1} sorts after @var{string2} lexicographically -in the current locale. +True if @var{string1} sorts after @var{string2} lexicographically. @item @var{arg1} OP @var{arg2} @code{OP} is one of @@ -6032,11 +6096,14 @@ If @var{subscript} is @samp{@@} or Referencing an array variable without a subscript is equivalent to referencing with a subscript of 0. +An array variable is considered set if a subscript has been assigned a +value. The null string is a valid value. + The @code{unset} builtin is used to destroy arrays. @code{unset} @var{name}[@var{subscript}] destroys the array element at index @var{subscript}. Care must be taken to avoid unwanted side effects caused by filename -generation. +expansion. @code{unset} @var{name}, where @var{name} is an array, removes the entire array. A subscript of @samp{*} or @samp{@@} also removes the entire array. @@ -6512,6 +6579,11 @@ escape characters are converted. The @code{ulimit} builtin uses a block size of 512 bytes for the @option{-c} and @option{-f} options. +@item +The arrival of @code{SIGCHLD} when a trap is set on @code{SIGCHLD} does +not interrupt the @code{wait} builtin and cause it to return immediately. +The trap command is run once for each child that exits. + @end enumerate There is other @sc{posix} behavior that Bash does not implement by @@ -6561,7 +6633,7 @@ refers to the ability to selectively stop (suspend) the execution of processes and continue (resume) their execution at a later point. A user typically employs this facility via an interactive interface supplied jointly -by the system's terminal driver and Bash. +by the operating system kernel's terminal driver and Bash. The shell associates a @var{job} with each pipeline. It keeps a table of currently executing jobs, which may be listed with the @@ -6586,11 +6658,13 @@ process group @sc{id} is equal to the current terminal process group These processes are said to be in the foreground. Background processes are those whose process group @sc{id} differs from the terminal's; such processes are immune to keyboard-generated -signals. Only foreground processes are allowed to read from or -write to the terminal. Background processes which attempt to -read from (write to) the terminal are sent a @code{SIGTTIN} -(@code{SIGTTOU}) signal by the terminal driver, which, unless -caught, suspends the process. +signals. Only foreground processes are allowed to read from or, if +the user so specifies with @code{stty tostop}, write to the terminal. +Background processes which attempt to +read from (write to when @code{stty tostop} is in effect) the +terminal are sent a @code{SIGTTIN} (@code{SIGTTOU}) +signal by the kernel's terminal driver, +which, unless caught, suspends the process. If the operating system on which Bash is running supports job control, Bash contains facilities to use it. Typing the @@ -7225,6 +7299,10 @@ Include support for the @code{((@dots{}))} command Include support for the extended pattern matching features described above under @ref{Pattern Matching}. +@item --enable-extended-glob-default +Set the default value of the @var{extglob} shell option described +above under @ref{The Shopt Builtin} to be enabled. + @item --enable-help-builtin Include the @code{help} builtin, which displays help on shell builtins and variables (@pxref{Bash Builtins}). @@ -7318,7 +7396,7 @@ But first, you should make sure that it really is a bug, and that it appears in the latest version of Bash. The latest version of Bash is always available for FTP from -@uref{ftp://ftp.gnu.org/pub/bash/}. +@uref{ftp://ftp.gnu.org/pub/gnu/bash/}. Once you have determined that a bug actually exists, use the @code{bashbug} command to submit a bug report. diff --git a/doc/builtins.0 b/doc/builtins.0 index faf90a0..a721e38 100644 --- a/doc/builtins.0 +++ b/doc/builtins.0 @@ -14,8 +14,12 @@ NNAAMMEE BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS Unless otherwise noted, each builtin command documented in this section as accepting options preceded by -- accepts ---- to signify the end of the - options. For example, the ::, ttrruuee, ffaallssee, and tteesstt builtins do not - accept options. + options. The ::, ttrruuee, ffaallssee, and tteesstt builtins do not accept options + and do not treat ---- specially. The eexxiitt, llooggoouutt, bbrreeaakk, ccoonnttiinnuuee, lleett, + and sshhiifftt builtins accept and process arguments beginning with -- with- + out requiring ----. Other builtins that accept arguments but are not + specified as accepting options interpret arguments beginning with -- as + invalid options and require ---- to prevent this interpretation. :: [_a_r_g_u_m_e_n_t_s] No effect; the command does nothing beyond expanding _a_r_g_u_m_e_n_t_s and performing any specified redirections. A zero exit code is @@ -184,18 +188,22 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS The return value is true unless an invalid option is supplied, or no matches were generated. - ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--EE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_p_a_t] - [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] + ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_- + _p_a_t] [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_f_i_x] _n_a_m_e [_n_a_m_e _._._.] - ccoommpplleettee --pprr [--EE] [_n_a_m_e ...] + ccoommpplleettee --pprr [--DDEE] [_n_a_m_e ...] Specify how arguments to each _n_a_m_e should be completed. If the --pp option is supplied, or if no options are supplied, existing completion specifications are printed in a way that allows them to be reused as input. The --rr option removes a completion spec- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com- - pletion specifications. The --EE option indicates that the - remaining options and actions should apply to ``empty'' command - completion; that is, completion attempted on a blank line. + pletion specifications. The --DD option indicates that the + remaining options and actions should apply to the ``default'' + command completion; that is, completion attempted on a command + for which no completion has previously been defined. The --EE + option indicates that the remaining options and actions should + apply to ``empty'' command completion; that is, completion + attempted on a blank line. The process of applying these completion specifications when word completion is attempted is described above under PPrroo-- @@ -275,7 +283,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS Names of all shell variables. May also be spec- ified as --vv. --GG _g_l_o_b_p_a_t - The filename expansion pattern _g_l_o_b_p_a_t is expanded to + The pathname expansion pattern _g_l_o_b_p_a_t is expanded to generate the possible completions. --WW _w_o_r_d_l_i_s_t The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS @@ -292,7 +300,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY array variable. --XX _f_i_l_t_e_r_p_a_t - _f_i_l_t_e_r_p_a_t is a pattern as used for filename expansion. + _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion. It is applied to the list of possible completions gener- ated by the preceding options and arguments, and each completion matching _f_i_l_t_e_r_p_a_t is removed from the list. @@ -311,129 +319,134 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS for a _n_a_m_e for which no specification exists, or an error occurs adding a completion specification. - ccoommppoopptt [--oo _o_p_t_i_o_n] [++oo _o_p_t_i_o_n] [_n_a_m_e] + ccoommppoopptt [--oo _o_p_t_i_o_n] [--DDEE] [++oo _o_p_t_i_o_n] [_n_a_m_e] Modify completion options for each _n_a_m_e according to the _o_p_t_i_o_ns, or for the currently-execution completion if no _n_a_m_es are supplied. If no _o_p_t_i_o_ns are given, display the completion options for each _n_a_m_e or the current completion. The possible values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin - described above. - - The return value is true unless an invalid option is supplied, an - attempt is made to modify the options for a _n_a_m_e for which no comple- + described above. The --DD option indicates that the remaining + options should apply to the ``default'' command completion; that + is, completion attempted on a command for which no completion + has previously been defined. The --EE option indicates that the + remaining options should apply to ``empty'' command completion; + that is, completion attempted on a blank line. + + The return value is true unless an invalid option is supplied, an + attempt is made to modify the options for a _n_a_m_e for which no comple- tion specification exists, or an output error occurs. ccoonnttiinnuuee [_n] Resume the next iteration of the enclosing ffoorr, wwhhiillee, uunnttiill, or - sseelleecctt loop. If _n is specified, resume at the _nth enclosing - loop. _n must be >= 1. If _n is greater than the number of - enclosing loops, the last enclosing loop (the ``top-level'' + sseelleecctt loop. If _n is specified, resume at the _nth enclosing + loop. _n must be >= 1. If _n is greater than the number of + enclosing loops, the last enclosing loop (the ``top-level'' loop) is resumed. The return value is 0 unless _n is not greater than or equal to 1. ddeeccllaarree [--aaAAffFFiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] ttyyppeesseett [--aaAAffFFiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...] - Declare variables and/or give them attributes. If no _n_a_m_es are - given then display the values of variables. The --pp option will + Declare variables and/or give them attributes. If no _n_a_m_es are + given then display the values of variables. The --pp option will display the attributes and values of each _n_a_m_e. When --pp is used with _n_a_m_e arguments, additional options are ignored. When --pp is - supplied without _n_a_m_e arguments, it will display the attributes - and values of all variables having the attributes specified by - the additional options. If no other options are supplied with - --pp, ddeeccllaarree will display the attributes and values of all shell - variables. The --ff option will restrict the display to shell + supplied without _n_a_m_e arguments, it will display the attributes + and values of all variables having the attributes specified by + the additional options. If no other options are supplied with + --pp, ddeeccllaarree will display the attributes and values of all shell + variables. The --ff option will restrict the display to shell functions. The --FF option inhibits the display of function defi- - nitions; only the function name and attributes are printed. If - the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source + nitions; only the function name and attributes are printed. If + the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source file name and line number where the function is defined are dis- - played as well. The --FF option implies --ff. The following - options can be used to restrict output to variables with the + played as well. The --FF option implies --ff. The following + options can be used to restrict output to variables with the specified attribute or to give variables attributes: - --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss + --aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss above). - --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss + --AA Each _n_a_m_e is an associative array variable (see AArrrraayyss above). --ff Use function names only. --ii The variable is treated as an integer; arithmetic evalua- - tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN )) is performed when the - variable is assigned a value. - --ll When the variable is assigned a value, all upper-case - characters are converted to lower-case. The upper-case + tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN above) is performed when + the variable is assigned a value. + --ll When the variable is assigned a value, all upper-case + characters are converted to lower-case. The upper-case attribute is disabled. --rr Make _n_a_m_es readonly. These names cannot then be assigned values by subsequent assignment statements or unset. - --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions - inherit the DDEEBBUUGG and RREETTUURRNN traps from the calling - shell. The trace attribute has no special meaning for + --tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions + inherit the DDEEBBUUGG and RREETTUURRNN traps from the calling + shell. The trace attribute has no special meaning for variables. - --uu When the variable is assigned a value, all lower-case - characters are converted to upper-case. The lower-case + --uu When the variable is assigned a value, all lower-case + characters are converted to upper-case. The lower-case attribute is disabled. - --xx Mark _n_a_m_es for export to subsequent commands via the + --xx Mark _n_a_m_es for export to subsequent commands via the environment. - Using `+' instead of `-' turns off the attribute instead, with + Using `+' instead of `-' turns off the attribute instead, with the exceptions that ++aa may not be used to destroy an array vari- - able and ++rr wwiillll nnoott rreemmoovvee tthhee rreeaaddoonnllyy aattttrriibbuuttee.. WWhheenn uusseedd - iinn aa ffuunnccttiioonn,, mmaakkeess eeaacchh _n_a_m_e llooccaall,, aass wwiitthh tthhee llooccaall command. + able and ++rr will not remove the readonly attribute. When used + in a function, makes each _n_a_m_e local, as with the llooccaall command. If a variable name is followed by =_v_a_l_u_e, the value of the vari- - able is set to _v_a_l_u_e. The return value is 0 unless an invalid - option is encountered, an attempt is made to define a function - using ``-f foo=bar'', an attempt is made to assign a value to a - readonly variable, an attempt is made to assign a value to an + able is set to _v_a_l_u_e. The return value is 0 unless an invalid + option is encountered, an attempt is made to define a function + using ``-f foo=bar'', an attempt is made to assign a value to a + readonly variable, an attempt is made to assign a value to an array variable without using the compound assignment syntax (see - AArrrraayyss above), one of the _n_a_m_e_s is not a valid shell variable + AArrrraayyss above), one of the _n_a_m_e_s is not a valid shell variable name, an attempt is made to turn off readonly status for a read- - only variable, an attempt is made to turn off array status for - an array variable, or an attempt is made to display a non-exis- + only variable, an attempt is made to turn off array status for + an array variable, or an attempt is made to display a non-exis- tent function with --ff. ddiirrss [[++_n]] [[--_n]] [[--ccppllvv]] - Without options, displays the list of currently remembered - directories. The default display is on a single line with - directory names separated by spaces. Directories are added to - the list with the ppuusshhdd command; the ppooppdd command removes + Without options, displays the list of currently remembered + directories. The default display is on a single line with + directory names separated by spaces. Directories are added to + the list with the ppuusshhdd command; the ppooppdd command removes entries from the list. ++_n Displays the _nth entry counting from the left of the list shown by ddiirrss when invoked without options, starting with zero. - --_n Displays the _nth entry counting from the right of the + --_n Displays the _nth entry counting from the right of the list shown by ddiirrss when invoked without options, starting with zero. --cc Clears the directory stack by deleting all of the entries. - --ll Produces a longer listing; the default listing format + --ll Produces a longer listing; the default listing format uses a tilde to denote the home directory. --pp Print the directory stack with one entry per line. - --vv Print the directory stack with one entry per line, pre- + --vv Print the directory stack with one entry per line, pre- fixing each entry with its index in the stack. - The return value is 0 unless an invalid option is supplied or _n + The return value is 0 unless an invalid option is supplied or _n indexes beyond the end of the directory stack. ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ...] - Without options, each _j_o_b_s_p_e_c is removed from the table of - active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nnoorr --rr - iiss ssuupppplliieedd,, tthhee sshheellll''ss nnoottiioonn ooff tthhee _c_u_r_r_e_n_t _j_o_b iiss uusseedd.. IIff - tthhee --hh ooppttiioonn iiss ggiivveenn,, eeaacchh _j_o_b_s_p_e_c is not removed from the ta- - ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the - shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither - the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. + Without options, each _j_o_b_s_p_e_c is removed from the table of + active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nor --rr + is supplied, the shell's notion of the _c_u_r_r_e_n_t _j_o_b is used. If + the --hh option is given, each _j_o_b_s_p_e_c is not removed from the ta- + ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the + shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither + the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If no _j_o_b_s_p_e_c is supplied, the --aa option means to remove or mark - all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts - operation to running jobs. The return value is 0 unless a _j_o_b_- + all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts + operation to running jobs. The return value is 0 unless a _j_o_b_- _s_p_e_c does not specify a valid job. eecchhoo [--nneeEE] [_a_r_g ...] - Output the _a_r_gs, separated by spaces, followed by a newline. + Output the _a_r_gs, separated by spaces, followed by a newline. The return status is always 0. If --nn is specified, the trailing - newline is suppressed. If the --ee option is given, interpreta- - tion of the following backslash-escaped characters is enabled. - The --EE option disables the interpretation of these escape char- - acters, even on systems where they are interpreted by default. - The xxppgg__eecchhoo shell option may be used to dynamically determine - whether or not eecchhoo expands these escape characters by default. - eecchhoo does not interpret ---- to mean the end of options. eecchhoo + newline is suppressed. If the --ee option is given, interpreta- + tion of the following backslash-escaped characters is enabled. + The --EE option disables the interpretation of these escape char- + acters, even on systems where they are interpreted by default. + The xxppgg__eecchhoo shell option may be used to dynamically determine + whether or not eecchhoo expands these escape characters by default. + eecchhoo does not interpret ---- to mean the end of options. eecchhoo interprets the following escape sequences: \\aa alert (bell) \\bb backspace @@ -445,187 +458,187 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS \\tt horizontal tab \\vv vertical tab \\\\ backslash - \\00_n_n_n the eight-bit character whose value is the octal value + \\00_n_n_n the eight-bit character whose value is the octal value _n_n_n (zero to three octal digits) - \\xx_H_H the eight-bit character whose value is the hexadecimal + \\xx_H_H the eight-bit character whose value is the hexadecimal value _H_H (one or two hex digits) eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...] - Enable and disable builtin shell commands. Disabling a builtin + Enable and disable builtin shell commands. Disabling a builtin allows a disk command which has the same name as a shell builtin - to be executed without specifying a full pathname, even though - the shell normally searches for builtins before disk commands. - If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are + to be executed without specifying a full pathname, even though + the shell normally searches for builtins before disk commands. + If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are enabled. For example, to use the tteesstt binary found via the PPAATTHH - instead of the shell builtin version, run ``enable -n test''. - The --ff option means to load the new builtin command _n_a_m_e from + instead of the shell builtin version, run ``enable -n test''. + The --ff option means to load the new builtin command _n_a_m_e from shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading. - The --dd option will delete a builtin previously loaded with --ff. + The --dd option will delete a builtin previously loaded with --ff. If no _n_a_m_e arguments are given, or if the --pp option is supplied, a list of shell builtins is printed. With no other option argu- - ments, the list consists of all enabled shell builtins. If --nn - is supplied, only disabled builtins are printed. If --aa is sup- - plied, the list printed includes all builtins, with an indica- - tion of whether or not each is enabled. If --ss is supplied, the - output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return - value is 0 unless a _n_a_m_e is not a shell builtin or there is an + ments, the list consists of all enabled shell builtins. If --nn + is supplied, only disabled builtins are printed. If --aa is sup- + plied, the list printed includes all builtins, with an indica- + tion of whether or not each is enabled. If --ss is supplied, the + output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return + value is 0 unless a _n_a_m_e is not a shell builtin or there is an error loading a new builtin from a shared object. eevvaall [_a_r_g ...] - The _a_r_gs are read and concatenated together into a single com- - mand. This command is then read and executed by the shell, and - its exit status is returned as the value of eevvaall. If there are + The _a_r_gs are read and concatenated together into a single com- + mand. This command is then read and executed by the shell, and + its exit status is returned as the value of eevvaall. If there are no _a_r_g_s, or only null arguments, eevvaall returns 0. eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]] - If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process - is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If + If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process + is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If the --ll option is supplied, the shell places a dash at the begin- - ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what + ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what _l_o_g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with - an empty environment. If --aa is supplied, the shell passes _n_a_m_e + an empty environment. If --aa is supplied, the shell passes _n_a_m_e as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can- - not be executed for some reason, a non-interactive shell exits, - unless the shell option eexxeeccffaaiill is enabled, in which case it - returns failure. An interactive shell returns failure if the + not be executed for some reason, a non-interactive shell exits, + unless the shell option eexxeeccffaaiill is enabled, in which case it + returns failure. An interactive shell returns failure if the file cannot be executed. If _c_o_m_m_a_n_d is not specified, any redi- rections take effect in the current shell, and the return status - is 0. If there is a redirection error, the return status is 1. + is 0. If there is a redirection error, the return status is 1. eexxiitt [_n] - Cause the shell to exit with a status of _n. If _n is omitted, + Cause the shell to exit with a status of _n. If _n is omitted, the exit status is that of the last command executed. A trap on EEXXIITT is executed before the shell terminates. eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ... eexxppoorrtt --pp - The supplied _n_a_m_e_s are marked for automatic export to the envi- - ronment of subsequently executed commands. If the --ff option is - given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or - if the --pp option is supplied, a list of all names that are - exported in this shell is printed. The --nn option causes the - export property to be removed from each _n_a_m_e. If a variable - name is followed by =_w_o_r_d, the value of the variable is set to - _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid - option is encountered, one of the _n_a_m_e_s is not a valid shell + The supplied _n_a_m_e_s are marked for automatic export to the envi- + ronment of subsequently executed commands. If the --ff option is + given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or + if the --pp option is supplied, a list of all names that are + exported in this shell is printed. The --nn option causes the + export property to be removed from each _n_a_m_e. If a variable + name is followed by =_w_o_r_d, the value of the variable is set to + _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid + option is encountered, one of the _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a func- tion. ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t] ffcc --ss [_p_a_t=_r_e_p] [_c_m_d] - Fix Command. In the first form, a range of commands from _f_i_r_s_t - to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may - be specified as a string (to locate the last command beginning - with that string) or as a number (an index into the history + Fix Command. In the first form, a range of commands from _f_i_r_s_t + to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may + be specified as a string (to locate the last command beginning + with that string) or as a number (an index into the history list, where a negative number is used as an offset from the cur- rent command number). If _l_a_s_t is not specified it is set to the - current command for listing (so that ``fc -l -10'' prints the + current command for listing (so that ``fc -l -10'' prints the last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not spec- - ified it is set to the previous command for editing and -16 for + ified it is set to the previous command for editing and -16 for listing. - The --nn option suppresses the command numbers when listing. The - --rr option reverses the order of the commands. If the --ll option - is given, the commands are listed on standard output. Other- - wise, the editor given by _e_n_a_m_e is invoked on a file containing - those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT - variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set. - If neither variable is set, is used. When editing is complete, + The --nn option suppresses the command numbers when listing. The + --rr option reverses the order of the commands. If the --ll option + is given, the commands are listed on standard output. Other- + wise, the editor given by _e_n_a_m_e is invoked on a file containing + those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT + variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set. + If neither variable is set, is used. When editing is complete, the edited commands are echoed and executed. - In the second form, _c_o_m_m_a_n_d is re-executed after each instance - of _p_a_t is replaced by _r_e_p. A useful alias to use with this is - ``r="fc -s"'', so that typing ``r cc'' runs the last command + In the second form, _c_o_m_m_a_n_d is re-executed after each instance + of _p_a_t is replaced by _r_e_p. A useful alias to use with this is + ``r="fc -s"'', so that typing ``r cc'' runs the last command beginning with ``cc'' and typing ``r'' re-executes the last com- mand. - If the first form is used, the return value is 0 unless an - invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history - lines out of range. If the --ee option is supplied, the return + If the first form is used, the return value is 0 unless an + invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history + lines out of range. If the --ee option is supplied, the return value is the value of the last command executed or failure if an error occurs with the temporary file of commands. If the second - form is used, the return status is that of the command re-exe- - cuted, unless _c_m_d does not specify a valid history line, in + form is used, the return status is that of the command re-exe- + cuted, unless _c_m_d does not specify a valid history line, in which case ffcc returns failure. ffgg [_j_o_b_s_p_e_c] - Resume _j_o_b_s_p_e_c in the foreground, and make it the current job. + Resume _j_o_b_s_p_e_c in the foreground, and make it the current job. If _j_o_b_s_p_e_c is not present, the shell's notion of the _c_u_r_r_e_n_t _j_o_b - is used. The return value is that of the command placed into - the foreground, or failure if run when job control is disabled + is used. The return value is that of the command placed into + the foreground, or failure if run when job control is disabled or, when run with job control enabled, if _j_o_b_s_p_e_c does not spec- - ify a valid job or _j_o_b_s_p_e_c specifies a job that was started + ify a valid job or _j_o_b_s_p_e_c specifies a job that was started without job control. ggeettooppttss _o_p_t_s_t_r_i_n_g _n_a_m_e [_a_r_g_s] - ggeettooppttss is used by shell procedures to parse positional parame- - ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog- - nized; if a character is followed by a colon, the option is - expected to have an argument, which should be separated from it - by white space. The colon and question mark characters may not - be used as option characters. Each time it is invoked, ggeettooppttss - places the next option in the shell variable _n_a_m_e, initializing + ggeettooppttss is used by shell procedures to parse positional parame- + ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog- + nized; if a character is followed by a colon, the option is + expected to have an argument, which should be separated from it + by white space. The colon and question mark characters may not + be used as option characters. Each time it is invoked, ggeettooppttss + places the next option in the shell variable _n_a_m_e, initializing _n_a_m_e if it does not exist, and the index of the next argument to be processed into the variable OOPPTTIINNDD. OOPPTTIINNDD is initialized to - 1 each time the shell or a shell script is invoked. When an - option requires an argument, ggeettooppttss places that argument into - the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automati- - cally; it must be manually reset between multiple calls to + 1 each time the shell or a shell script is invoked. When an + option requires an argument, ggeettooppttss places that argument into + the variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automati- + cally; it must be manually reset between multiple calls to ggeettooppttss within the same shell invocation if a new set of parame- ters is to be used. - When the end of options is encountered, ggeettooppttss exits with a - return value greater than zero. OOPPTTIINNDD is set to the index of + When the end of options is encountered, ggeettooppttss exits with a + return value greater than zero. OOPPTTIINNDD is set to the index of the first non-option argument, and nnaammee is set to ?. - ggeettooppttss normally parses the positional parameters, but if more + ggeettooppttss normally parses the positional parameters, but if more arguments are given in _a_r_g_s, ggeettooppttss parses those instead. - ggeettooppttss can report errors in two ways. If the first character - of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In - normal operation diagnostic messages are printed when invalid - options or missing option arguments are encountered. If the - variable OOPPTTEERRRR is set to 0, no error messages will be dis- + ggeettooppttss can report errors in two ways. If the first character + of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In + normal operation diagnostic messages are printed when invalid + options or missing option arguments are encountered. If the + variable OOPPTTEERRRR is set to 0, no error messages will be dis- played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon. If an invalid option is seen, ggeettooppttss places ? into _n_a_m_e and, if - not silent, prints an error message and unsets OOPPTTAARRGG. If - ggeettooppttss is silent, the option character found is placed in + not silent, prints an error message and unsets OOPPTTAARRGG. If + ggeettooppttss is silent, the option character found is placed in OOPPTTAARRGG and no diagnostic message is printed. - If a required argument is not found, and ggeettooppttss is not silent, - a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a - diagnostic message is printed. If ggeettooppttss is silent, then a - colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option + If a required argument is not found, and ggeettooppttss is not silent, + a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a + diagnostic message is printed. If ggeettooppttss is silent, then a + colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option character found. - ggeettooppttss returns true if an option, specified or unspecified, is + ggeettooppttss returns true if an option, specified or unspecified, is found. It returns false if the end of options is encountered or an error occurs. hhaasshh [--llrr] [--pp _f_i_l_e_n_a_m_e] [--ddtt] [_n_a_m_e] - For each _n_a_m_e, the full file name of the command is determined + For each _n_a_m_e, the full file name of the command is determined by searching the directories in $$PPAATTHH and remembered. If the --pp option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e is used as the full file name of the command. The --rr option causes - the shell to forget all remembered locations. The --dd option + the shell to forget all remembered locations. The --dd option causes the shell to forget the remembered location of each _n_a_m_e. - If the --tt option is supplied, the full pathname to which each - _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are - supplied with --tt, the _n_a_m_e is printed before the hashed full + If the --tt option is supplied, the full pathname to which each + _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments are + supplied with --tt, the _n_a_m_e is printed before the hashed full pathname. The --ll option causes output to be displayed in a for- - mat that may be reused as input. If no arguments are given, or + mat that may be reused as input. If no arguments are given, or if only --ll is supplied, information about remembered commands is - printed. The return status is true unless a _n_a_m_e is not found + printed. The return status is true unless a _n_a_m_e is not found or an invalid option is supplied. hheellpp [--ddmmss] [_p_a_t_t_e_r_n] - Display helpful information about builtin commands. If _p_a_t_t_e_r_n - is specified, hheellpp gives detailed help on all commands matching - _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control + Display helpful information about builtin commands. If _p_a_t_t_e_r_n + is specified, hheellpp gives detailed help on all commands matching + _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control structures is printed. --dd Display a short description of each _p_a_t_t_e_r_n - --mm Display the description of each _p_a_t_t_e_r_n in a manpage-like + --mm Display the description of each _p_a_t_t_e_r_n in a manpage-like format --ss Display only a short usage synopsis for each _p_a_t_t_e_r_n The return status is 0 unless no command matches _p_a_t_t_e_r_n. @@ -638,132 +651,133 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS hhiissttoorryy --ss _a_r_g [_a_r_g _._._.] With no options, display the command history list with line num- bers. Lines listed with a ** have been modified. An argument of - _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE-- - FFOORRMMAATT is set and not null, it is used as a format string for - _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis- - played history entry. No intervening blank is printed between - the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is - supplied, it is used as the name of the history file; if not, - the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the + _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE-- + FFOORRMMAATT is set and not null, it is used as a format string for + _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis- + played history entry. No intervening blank is printed between + the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is + supplied, it is used as the name of the history file; if not, + the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the following meanings: --cc Clear the history list by deleting all the entries. --dd _o_f_f_s_e_t Delete the history entry at position _o_f_f_s_e_t. - --aa Append the ``new'' history lines (history lines entered - since the beginning of the current bbaasshh session) to the + --aa Append the ``new'' history lines (history lines entered + since the beginning of the current bbaasshh session) to the history file. - --nn Read the history lines not already read from the history - file into the current history list. These are lines - appended to the history file since the beginning of the + --nn Read the history lines not already read from the history + file into the current history list. These are lines + appended to the history file since the beginning of the current bbaasshh session. --rr Read the contents of the history file and use them as the current history. - --ww Write the current history to the history file, overwrit- + --ww Write the current history to the history file, overwrit- ing the history file's contents. - --pp Perform history substitution on the following _a_r_g_s and - display the result on the standard output. Does not - store the results in the history list. Each _a_r_g must be + --pp Perform history substitution on the following _a_r_g_s and + display the result on the standard output. Does not + store the results in the history list. Each _a_r_g must be quoted to disable normal history expansion. - --ss Store the _a_r_g_s in the history list as a single entry. - The last command in the history list is removed before + --ss Store the _a_r_g_s in the history list as a single entry. + The last command in the history list is removed before the _a_r_g_s are added. - If the HHIISSTTTTIIMMEEFFOORRMMAATT is set, the time stamp information associ- - ated with each history entry is written to the history file, - marked with the history comment character. When the history - file is read, lines beginning with the history comment character - followed immediately by a digit are interpreted as timestamps - for the previous history line. The return value is 0 unless an - invalid option is encountered, an error occurs while reading or - writing the history file, an invalid _o_f_f_s_e_t is supplied as an - argument to --dd, or the history expansion supplied as an argument - to --pp fails. + If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, the time stamp informa- + tion associated with each history entry is written to the his- + tory file, marked with the history comment character. When the + history file is read, lines beginning with the history comment + character followed immediately by a digit are interpreted as + timestamps for the previous history line. The return value is 0 + unless an invalid option is encountered, an error occurs while + reading or writing the history file, an invalid _o_f_f_s_e_t is sup- + plied as an argument to --dd, or the history expansion supplied as + an argument to --pp fails. jjoobbss [--llnnpprrss] [ _j_o_b_s_p_e_c ... ] jjoobbss --xx _c_o_m_m_a_n_d [ _a_r_g_s ... ] The first form lists the active jobs. The options have the fol- lowing meanings: --ll List process IDs in addition to the normal information. - --pp List only the process ID of the job's process group + --pp List only the process ID of the job's process group leader. - --nn Display information only about jobs that have changed - status since the user was last notified of their status. + --nn Display information only about jobs that have changed + status since the user was last notified of their status. --rr Restrict output to running jobs. --ss Restrict output to stopped jobs. - If _j_o_b_s_p_e_c is given, output is restricted to information about - that job. The return status is 0 unless an invalid option is + If _j_o_b_s_p_e_c is given, output is restricted to information about + that job. The return status is 0 unless an invalid option is encountered or an invalid _j_o_b_s_p_e_c is supplied. If the --xx option is supplied, jjoobbss replaces any _j_o_b_s_p_e_c found in - _c_o_m_m_a_n_d or _a_r_g_s with the corresponding process group ID, and + _c_o_m_m_a_n_d or _a_r_g_s with the corresponding process group ID, and executes _c_o_m_m_a_n_d passing it _a_r_g_s, returning its exit status. kkiillll [--ss _s_i_g_s_p_e_c | --nn _s_i_g_n_u_m | --_s_i_g_s_p_e_c] [_p_i_d | _j_o_b_s_p_e_c] ... kkiillll --ll [_s_i_g_s_p_e_c | _e_x_i_t___s_t_a_t_u_s] - Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes - named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive - signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or - a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not - present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the - signal names. If any arguments are supplied when --ll is given, - the names of the signals corresponding to the arguments are + Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes + named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive + signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or + a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not + present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the + signal names. If any arguments are supplied when --ll is given, + the names of the signals corresponding to the arguments are listed, and the return status is 0. The _e_x_i_t___s_t_a_t_u_s argument to - --ll is a number specifying either a signal number or the exit - status of a process terminated by a signal. kkiillll returns true - if at least one signal was successfully sent, or false if an + --ll is a number specifying either a signal number or the exit + status of a process terminated by a signal. kkiillll returns true + if at least one signal was successfully sent, or false if an error occurs or an invalid option is encountered. lleett _a_r_g [_a_r_g ...] Each _a_r_g is an arithmetic expression to be evaluated (see AARRIITTHH-- - MMEETTIICC EEVVAALLUUAATTIIOONN). If the last _a_r_g evaluates to 0, lleett returns - 1; 0 is returned otherwise. + MMEETTIICC EEVVAALLUUAATTIIOONN above). If the last _a_r_g evaluates to 0, lleett + returns 1; 0 is returned otherwise. llooccaall [_o_p_t_i_o_n] [_n_a_m_e[=_v_a_l_u_e] ...] - For each argument, a local variable named _n_a_m_e is created, and - assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted + For each argument, a local variable named _n_a_m_e is created, and + assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted by ddeeccllaarree. When llooccaall is used within a function, it causes the - variable _n_a_m_e to have a visible scope restricted to that func- + variable _n_a_m_e to have a visible scope restricted to that func- tion and its children. With no operands, llooccaall writes a list of - local variables to the standard output. It is an error to use + local variables to the standard output. It is an error to use llooccaall when not within a function. The return status is 0 unless - llooccaall is used outside a function, an invalid _n_a_m_e is supplied, + llooccaall is used outside a function, an invalid _n_a_m_e is supplied, or _n_a_m_e is a readonly variable. llooggoouutt Exit a login shell. - mmaappffiillee [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] + mmaappffiillee [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y] - rreeaaddaarrrraayy [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] + rreeaaddaarrrraayy [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC _c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y] - Read lines from the standard input into array variable _a_r_r_a_y, or - from file descriptor _f_d if the --uu option is supplied. The vari- - able MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if supplied, have - the following meanings: - --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are + Read lines from the standard input into the indexed array vari- + able _a_r_r_a_y, or from file descriptor _f_d if the --uu option is sup- + plied. The variable MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if + supplied, have the following meanings: + --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are copied. - --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default + --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default index is 0. --ss Discard the first _c_o_u_n_t lines read. - --tt Remove a trailing line from each line read. - --uu Read lines from file descriptor _f_d instead of the stan- + --tt Remove a trailing newline from each line read. + --uu Read lines from file descriptor _f_d instead of the stan- dard input. - --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The + --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The --cc option specifies _q_u_a_n_t_u_m. - --cc Specify the number of lines read between each call to + --cc Specify the number of lines read between each call to _c_a_l_l_b_a_c_k. - If --CC is specified without --cc, the default quantum is 5000. + If --CC is specified without --cc, the default quantum is 5000. When _c_a_l_l_b_a_c_k is evaluated, it is supplied the index of the next - array element to be assigned as an additional argument. _c_a_l_l_- - _b_a_c_k is evaluated after the line is read but before the array + array element to be assigned as an additional argument. _c_a_l_l_- + _b_a_c_k is evaluated after the line is read but before the array element is assigned. - If not supplied with an explicit origin, mmaappffiillee will clear + If not supplied with an explicit origin, mmaappffiillee will clear _a_r_r_a_y before assigning to it. - mmaappffiillee returns successfully unless an invalid option or option - argument is supplied, or _a_r_r_a_y is invalid or unassignable. + mmaappffiillee returns successfully unless an invalid option or option + argument is supplied, _a_r_r_a_y is invalid or unassignable, or if + _a_r_r_a_y is not an indexed array. ppooppdd [-nn] [+_n] [-_n] Removes entries from the directory stack. With no arguments, @@ -846,8 +860,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS occurs while reading the name of the current directory or an invalid option is supplied. - rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [-- _t_e_x_t] [--nn _n_c_h_a_r_s] [--pp _p_r_o_m_p_t] [--tt - _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] + rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp + _p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...] One line is read from the standard input, or from the file descriptor _f_d supplied as an argument to the --uu option, and the first word is assigned to the first _n_a_m_e, the second word to the @@ -876,93 +890,107 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS placed into the editing buffer before editing begins. --nn _n_c_h_a_r_s rreeaadd returns after reading _n_c_h_a_r_s characters rather than - waiting for a complete line of input. + waiting for a complete line of input, but honor a delim- + iter if fewer than _n_c_h_a_r_s characters are read before the + delimiter. + --NN _n_c_h_a_r_s + rreeaadd returns after reading exactly _n_c_h_a_r_s characters + rather than waiting for a complete line of input, unless + EOF is encountered or rreeaadd times out. Delimiter charac- + ters encountered in the input are not treated specially + and do not cause rreeaadd to return until _n_c_h_a_r_s characters + are read. --pp _p_r_o_m_p_t Display _p_r_o_m_p_t on standard error, without a trailing new- line, before attempting to read any input. The prompt is displayed only if input is coming from a terminal. --rr Backslash does not act as an escape character. The back- - slash is considered to be part of the line. In particu- - lar, a backslash-newline pair may not be used as a line + slash is considered to be part of the line. In particu- + lar, a backslash-newline pair may not be used as a line continuation. --ss Silent mode. If input is coming from a terminal, charac- ters are not echoed. --tt _t_i_m_e_o_u_t - Cause rreeaadd to time out and return failure if a complete - line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_- - _o_u_t may be a decimal number with a fractional portion - following the decimal point. This option is only effec- - tive if rreeaadd is reading input from a terminal, pipe, or - other special file; it has no effect when reading from - regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns success if - input is available on the specified file descriptor, - failure otherwise. The exit status is greater than 128 + Cause rreeaadd to time out and return failure if a complete + line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_- + _o_u_t may be a decimal number with a fractional portion + following the decimal point. This option is only effec- + tive if rreeaadd is reading input from a terminal, pipe, or + other special file; it has no effect when reading from + regular files. If _t_i_m_e_o_u_t is 0, rreeaadd returns success if + input is available on the specified file descriptor, + failure otherwise. The exit status is greater than 128 if the timeout is exceeded. --uu _f_d Read input from file descriptor _f_d. If no _n_a_m_e_s are supplied, the line read is assigned to the vari- - able RREEPPLLYY. The return code is zero, unless end-of-file is - encountered, rreeaadd times out (in which case the return code is - greater than 128), or an invalid file descriptor is supplied as + able RREEPPLLYY. The return code is zero, unless end-of-file is + encountered, rreeaadd times out (in which case the return code is + greater than 128), or an invalid file descriptor is supplied as the argument to --uu. rreeaaddoonnllyy [--aaAAppff] [_n_a_m_e[=_w_o_r_d] ...] - The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s - may not be changed by subsequent assignment. If the --ff option - is supplied, the functions corresponding to the _n_a_m_e_s are so - marked. The --aa option restricts the variables to indexed - arrays; the --AA option restricts the variables to associative - arrays. If no _n_a_m_e arguments are given, or if the --pp option is - supplied, a list of all readonly names is printed. The --pp - option causes output to be displayed in a format that may be - reused as input. If a variable name is followed by =_w_o_r_d, the - value of the variable is set to _w_o_r_d. The return status is 0 + The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s + may not be changed by subsequent assignment. If the --ff option + is supplied, the functions corresponding to the _n_a_m_e_s are so + marked. The --aa option restricts the variables to indexed + arrays; the --AA option restricts the variables to associative + arrays. If no _n_a_m_e arguments are given, or if the --pp option is + supplied, a list of all readonly names is printed. The --pp + option causes output to be displayed in a format that may be + reused as input. If a variable name is followed by =_w_o_r_d, the + value of the variable is set to _w_o_r_d. The return status is 0 unless an invalid option is encountered, one of the _n_a_m_e_s is not - a valid shell variable name, or --ff is supplied with a _n_a_m_e that + a valid shell variable name, or --ff is supplied with a _n_a_m_e that is not a function. rreettuurrnn [_n] - Causes a function to exit with the return value specified by _n. - If _n is omitted, the return status is that of the last command - executed in the function body. If used outside a function, but - during execution of a script by the .. (ssoouurrccee) command, it + Causes a function to exit with the return value specified by _n. + If _n is omitted, the return status is that of the last command + executed in the function body. If used outside a function, but + during execution of a script by the .. (ssoouurrccee) command, it causes the shell to stop executing that script and return either - _n or the exit status of the last command executed within the - script as the exit status of the script. If used outside a - function and not during execution of a script by .., the return + _n or the exit status of the last command executed within the + script as the exit status of the script. If used outside a + function and not during execution of a script by .., the return status is false. Any command associated with the RREETTUURRNN trap is - executed before execution resumes after the function or script. + executed before execution resumes after the function or script. sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n] [_a_r_g ...] sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n] [_a_r_g ...] - Without options, the name and value of each shell variable are + Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables. Read-only variables can- - not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. - The output is sorted according to the current locale. When - options are specified, they set or unset shell attributes. Any - arguments remaining after option processing are treated as val- + not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. + The output is sorted according to the current locale. When + options are specified, they set or unset shell attributes. Any + arguments remaining after option processing are treated as val- ues for the positional parameters and are assigned, in order, to - $$11, $$22, ...... $$_n. Options, if specified, have the following + $$11, $$22, ...... $$_n. Options, if specified, have the following meanings: - --aa Automatically mark variables and functions which are - modified or created for export to the environment of + --aa Automatically mark variables and functions which are + modified or created for export to the environment of subsequent commands. - --bb Report the status of terminated background jobs immedi- + --bb Report the status of terminated background jobs immedi- ately, rather than before the next primary prompt. This is effective only when job control is enabled. - --ee Exit immediately if a _s_i_m_p_l_e _c_o_m_m_a_n_d (see SSHHEELLLL GGRRAAMMMMAARR + --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a + single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in + parentheses, or one of the commands executed as part of + a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR above) exits with a non-zero status. The shell does not exit if the command that fails is part of the command list immediately following a wwhhiillee or uunnttiill keyword, - part of the test in an iiff statement, part of a command - executed in a &&&& or |||| list, any command in a pipeline - but the last, or if the command's return value is being - inverted via !!. Failing simple commands that are part - of shell functions or command lists enclosed in braces - or parentheses satisfying the above conditions do not - cause the shell to exit. A trap on EERRRR, if set, is exe- - cuted before the shell exits. + part of the test following the iiff or eelliiff reserved + words, part of any command executed in a &&&& or |||| list + except the command following the final &&&& or ||||, any + command in a pipeline but the last, or if the command's + return value is being inverted with !!. A trap on EERRRR, + if set, is executed before the shell exits. This option + applies to the shell environment and each subshell envi- + ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT + above), and may cause subshells to exit before executing + all the commands in the subshell. --ff Disable pathname expansion. --hh Remember the location of commands as they are looked up for execution. This is enabled by default. @@ -989,11 +1017,11 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS is interactive, unless the shell is started with the ----nnooeeddiittiinngg option. This also affects the editing interface used for rreeaadd --ee. + eerrrreexxiitt Same as --ee. eerrrrttrraaccee Same as --EE. ffuunnccttrraaccee Same as --TT. - eerrrreexxiitt Same as --ee. hhaasshhaallll Same as --hh. hhiisstteexxppaanndd Same as --HH. @@ -1040,20 +1068,22 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and $$BBAASSHH__EENNVV files are not processed, shell functions are not inherited from the environment, and the SSHHEELLLLOOPPTTSS, - CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they appear in the - environment, are ignored. If the shell is started with - the effective user (group) id not equal to the real user - (group) id, and the --pp option is not supplied, these - actions are taken and the effective user id is set to - the real user id. If the --pp option is supplied at - startup, the effective user id is not reset. Turning - this option off causes the effective user and group ids - to be set to the real user and group ids. + BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they + appear in the environment, are ignored. If the shell is + started with the effective user (group) id not equal to + the real user (group) id, and the --pp option is not sup- + plied, these actions are taken and the effective user id + is set to the real user id. If the --pp option is sup- + plied at startup, the effective user id is not reset. + Turning this option off causes the effective user and + group ids to be set to the real user and group ids. --tt Exit after reading and executing one command. - --uu Treat unset variables as an error when performing param- - eter expansion. If expansion is attempted on an unset - variable, the shell prints an error message, and, if not - interactive, exits with a non-zero status. + --uu Treat unset variables and parameters other than the spe- + cial parameters "@" and "*" as an error when performing + parameter expansion. If expansion is attempted on an + unset variable or parameter, the shell prints an error + message, and, if not interactive, exits with a non-zero + status. --vv Print shell input lines as they are read. --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee command, sseelleecctt command, or arithmetic ffoorr command, dis- @@ -1172,61 +1202,70 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS If set, bbaasshh changes its behavior to that of version 3.1 with respect to quoted arguments to the conditional com- mand's =~ operator. + ccoommppaatt3322 + If set, bbaasshh changes its behavior to that of version 3.2 + with respect to locale-specific string comparison when + using the conditional command's < and > operators. + ccoommppaatt4400 + If set, bbaasshh changes its behavior to that of version 4.0 + with respect to locale-specific string comparison when + using the conditional command's < and > operators and + the effect of interrupting a command list. ddiirrssppeellll - If set, bbaasshh attempts spelling correction on directory - names during word completion if the directory name ini- + If set, bbaasshh attempts spelling correction on directory + names during word completion if the directory name ini- tially supplied does not exist. - ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in + ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in the results of pathname expansion. eexxeeccffaaiill If set, a non-interactive shell will not exit if it can- - not execute the file specified as an argument to the - eexxeecc builtin command. An interactive shell does not + not execute the file specified as an argument to the + eexxeecc builtin command. An interactive shell does not exit if eexxeecc fails. eexxppaanndd__aalliiaasseess - If set, aliases are expanded as described above under + If set, aliases are expanded as described above under AALLIIAASSEESS. This option is enabled by default for interac- tive shells. eexxttddeebbuugg - If set, behavior intended for use by debuggers is + If set, behavior intended for use by debuggers is enabled: 11.. The --FF option to the ddeeccllaarree builtin displays the source file name and line number corresponding to each function name supplied as an argument. - 22.. If the command run by the DDEEBBUUGG trap returns a - non-zero value, the next command is skipped and + 22.. If the command run by the DDEEBBUUGG trap returns a + non-zero value, the next command is skipped and not executed. - 33.. If the command run by the DDEEBBUUGG trap returns a - value of 2, and the shell is executing in a sub- - routine (a shell function or a shell script exe- - cuted by the .. or ssoouurrccee builtins), a call to + 33.. If the command run by the DDEEBBUUGG trap returns a + value of 2, and the shell is executing in a sub- + routine (a shell function or a shell script exe- + cuted by the .. or ssoouurrccee builtins), a call to rreettuurrnn is simulated. - 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described + 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described in their descriptions above. - 55.. Function tracing is enabled: command substitu- + 55.. Function tracing is enabled: command substitu- tion, shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps. - 66.. Error tracing is enabled: command substitution, - shell functions, and subshells invoked with (( + 66.. Error tracing is enabled: command substitution, + shell functions, and subshells invoked with (( _c_o_m_m_a_n_d )) inherit the EERRRROORR trap. eexxttgglloobb If set, the extended pattern matching features described above under PPaatthhnnaammee EExxppaannssiioonn are enabled. eexxttqquuoottee - If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed - within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double + If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed + within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double quotes. This option is enabled by default. ffaaiillgglloobb - If set, patterns which fail to match filenames during + If set, patterns which fail to match filenames during pathname expansion result in an expansion error. ffoorrccee__ffiiggnnoorree - If set, the suffixes specified by the FFIIGGNNOORREE shell - variable cause words to be ignored when performing word + If set, the suffixes specified by the FFIIGGNNOORREE shell + variable cause words to be ignored when performing word completion even if the ignored words are the only possi- ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a - description of FFIIGGNNOORREE. This option is enabled by + description of FFIIGGNNOORREE. This option is enabled by default. gglloobbssttaarr - If set, the pattern **** used in a filename expansion con- + If set, the pattern **** used in a pathname expansion con- text will match a files and zero or more directories and subdirectories. If the pattern is followed by a //, only directories and subdirectories match. @@ -1234,58 +1273,58 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS If set, shell error messages are written in the standard GNU error message format. hhiissttaappppeenndd - If set, the history list is appended to the file named - by the value of the HHIISSTTFFIILLEE variable when the shell + If set, the history list is appended to the file named + by the value of the HHIISSTTFFIILLEE variable when the shell exits, rather than overwriting the file. hhiissttrreeeeddiitt - If set, and rreeaaddlliinnee is being used, a user is given the + If set, and rreeaaddlliinnee is being used, a user is given the opportunity to re-edit a failed history substitution. hhiissttvveerriiffyy - If set, and rreeaaddlliinnee is being used, the results of his- - tory substitution are not immediately passed to the - shell parser. Instead, the resulting line is loaded + If set, and rreeaaddlliinnee is being used, the results of his- + tory substitution are not immediately passed to the + shell parser. Instead, the resulting line is loaded into the rreeaaddlliinnee editing buffer, allowing further modi- fication. hhoossttccoommpplleettee If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to - perform hostname completion when a word containing a @@ - is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE + perform hostname completion when a word containing a @@ + is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE above). This is enabled by default. hhuuppoonneexxiitt If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter- active login shell exits. iinntteerraaccttiivvee__ccoommmmeennttss If set, allow a word beginning with ## to cause that word - and all remaining characters on that line to be ignored - in an interactive shell (see CCOOMMMMEENNTTSS above). This + and all remaining characters on that line to be ignored + in an interactive shell (see CCOOMMMMEENNTTSS above). This option is enabled by default. - lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line + lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon separators where possible. llooggiinn__sshheellll - The shell sets this option if it is started as a login - shell (see IINNVVOOCCAATTIIOONN above). The value may not be + The shell sets this option if it is started as a login + shell (see IINNVVOOCCAATTIIOONN above). The value may not be changed. mmaaiillwwaarrnn - If set, and a file that bbaasshh is checking for mail has - been accessed since the last time it was checked, the - message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- + If set, and a file that bbaasshh is checking for mail has + been accessed since the last time it was checked, the + message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis- played. nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn - If set, and rreeaaddlliinnee is being used, bbaasshh will not + If set, and rreeaaddlliinnee is being used, bbaasshh will not attempt to search the PPAATTHH for possible completions when completion is attempted on an empty line. nnooccaasseegglloobb - If set, bbaasshh matches filenames in a case-insensitive + If set, bbaasshh matches filenames in a case-insensitive fashion when performing pathname expansion (see PPaatthhnnaammee EExxppaannssiioonn above). nnooccaasseemmaattcchh - If set, bbaasshh matches patterns in a case-insensitive + If set, bbaasshh matches patterns in a case-insensitive fashion when performing matching while executing ccaassee or [[[[ conditional commands. nnuullllgglloobb - If set, bbaasshh allows patterns which match no files (see - PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, + If set, bbaasshh allows patterns which match no files (see + PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string, rather than themselves. pprrooggccoommpp If set, the programmable completion facilities (see PPrroo-- @@ -1293,47 +1332,47 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS enabled by default. pprroommppttvvaarrss If set, prompt strings undergo parameter expansion, com- - mand substitution, arithmetic expansion, and quote - removal after being expanded as described in PPRROOMMPPTTIINNGG + mand substitution, arithmetic expansion, and quote + removal after being expanded as described in PPRROOMMPPTTIINNGG above. This option is enabled by default. rreessttrriicctteedd__sshheellll - The shell sets this option if it is started in + The shell sets this option if it is started in restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value - may not be changed. This is not reset when the startup - files are executed, allowing the startup files to dis- + may not be changed. This is not reset when the startup + files are executed, allowing the startup files to dis- cover whether or not a shell is restricted. sshhiifftt__vveerrbboossee - If set, the sshhiifftt builtin prints an error message when + If set, the sshhiifftt builtin prints an error message when the shift count exceeds the number of positional parame- ters. ssoouurrcceeppaatthh If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to - find the directory containing the file supplied as an + find the directory containing the file supplied as an argument. This option is enabled by default. xxppgg__eecchhoo - If set, the eecchhoo builtin expands backslash-escape + If set, the eecchhoo builtin expands backslash-escape sequences by default. ssuussppeenndd [--ff] - Suspend the execution of this shell until it receives a SSIIGGCCOONNTT + Suspend the execution of this shell until it receives a SSIIGGCCOONNTT signal. A login shell cannot be suspended; the --ff option can be used to override this and force the suspension. The return sta- - tus is 0 unless the shell is a login shell and --ff is not sup- + tus is 0 unless the shell is a login shell and --ff is not sup- plied, or if job control is not enabled. tteesstt _e_x_p_r [[ _e_x_p_r ]] - Return a status of 0 or 1 depending on the evaluation of the - conditional expression _e_x_p_r. Each operator and operand must be - a separate argument. Expressions are composed of the primaries - described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not + Return a status of 0 or 1 depending on the evaluation of the + conditional expression _e_x_p_r. Each operator and operand must be + a separate argument. Expressions are composed of the primaries + described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not accept any options, nor does it accept and ignore an argument of ---- as signifying the end of options. - Expressions may be combined using the following operators, + Expressions may be combined using the following operators, listed in decreasing order of precedence. The evaluation depends on the number of arguments; see below. !! _e_x_p_r True if _e_x_p_r is false. (( _e_x_p_r )) - Returns the value of _e_x_p_r. This may be used to override + Returns the value of _e_x_p_r. This may be used to override the normal precedence of operators. _e_x_p_r_1 -aa _e_x_p_r_2 True if both _e_x_p_r_1 and _e_x_p_r_2 are true. @@ -1350,73 +1389,78 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS null. 2 arguments If the first argument is !!, the expression is true if and - only if the second argument is null. If the first argu- - ment is one of the unary conditional operators listed - above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is + only if the second argument is null. If the first argu- + ment is one of the unary conditional operators listed + above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is true if the unary test is true. If the first argument is not a valid unary conditional operator, the expression is false. 3 arguments - If the second argument is one of the binary conditional + If the second argument is one of the binary conditional operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the result of the expression is the result of the binary test - using the first and third arguments as operands. The --aa - and --oo operators are considered binary operators when - there are three arguments. If the first argument is !!, - the value is the negation of the two-argument test using + using the first and third arguments as operands. The --aa + and --oo operators are considered binary operators when + there are three arguments. If the first argument is !!, + the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly (( and the third argument is exactly )), the result - is the one-argument test of the second argument. Other- + is the one-argument test of the second argument. Other- wise, the expression is false. 4 arguments If the first argument is !!, the result is the negation of - the three-argument expression composed of the remaining + the three-argument expression composed of the remaining arguments. Otherwise, the expression is parsed and eval- - uated according to precedence using the rules listed + uated according to precedence using the rules listed above. 5 or more arguments - The expression is parsed and evaluated according to + The expression is parsed and evaluated according to precedence using the rules listed above. - ttiimmeess Print the accumulated user and system times for the shell and + ttiimmeess Print the accumulated user and system times for the shell and for processes run from the shell. The return status is 0. ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...] - The command _a_r_g is to be read and executed when the shell - receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a - single _s_i_g_s_p_e_c) or --, each specified signal is reset to its - original disposition (the value it had upon entrance to the - shell). If _a_r_g is the null string the signal specified by each - _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. - If _a_r_g is not present and --pp has been supplied, then the trap - commands associated with each _s_i_g_s_p_e_c are displayed. If no - arguments are supplied or if only --pp is given, ttrraapp prints the - list of commands associated with each signal. The --ll option - causes the shell to print a list of signal names and their cor- - responding numbers. Each _s_i_g_s_p_e_c is either a signal name - defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are - case insensitive and the SIG prefix is optional. If a _s_i_g_s_p_e_c - is EEXXIITT (0) the command _a_r_g is executed on exit from the shell. - If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is executed before every - _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, _s_e_l_e_c_t command, every - arithmetic _f_o_r command, and before the first command executes in - a shell function (see SSHHEELLLL GGRRAAMMMMAARR above). Refer to the - description of the eexxttddeebbuugg option to the sshhoopptt builtin for - details of its effect on the DDEEBBUUGG trap. If a _s_i_g_s_p_e_c is EERRRR, - the command _a_r_g is executed whenever a simple command has a - non-zero exit status, subject to the following conditions. The - EERRRR trap is not executed if the failed command is part of the - command list immediately following a wwhhiillee or uunnttiill keyword, - part of the test in an _i_f statement, part of a command executed - in a &&&& or |||| list, or if the command's return value is being - inverted via !!. These are the same conditions obeyed by the - eerrrreexxiitt option. If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is exe- - cuted each time a shell function or a script executed with the .. - or ssoouurrccee builtins finishes executing. Signals ignored upon - entry to the shell cannot be trapped or reset. Trapped signals - that are not being ignored are reset to their original values in - a child process when it is created. The return status is false - if any _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true. + The command _a_r_g is to be read and executed when the shell + receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a + single _s_i_g_s_p_e_c) or --, each specified signal is reset to its + original disposition (the value it had upon entrance to the + shell). If _a_r_g is the null string the signal specified by each + _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes. + If _a_r_g is not present and --pp has been supplied, then the trap + commands associated with each _s_i_g_s_p_e_c are displayed. If no + arguments are supplied or if only --pp is given, ttrraapp prints the + list of commands associated with each signal. The --ll option + causes the shell to print a list of signal names and their cor- + responding numbers. Each _s_i_g_s_p_e_c is either a signal name + defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are + case insensitive and the SIG prefix is optional. + + If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit + from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe- + cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command, + _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the + first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR + above). Refer to the description of the eexxttddeebbuugg option to the + sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a + _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell + function or a script executed with the .. or ssoouurrccee builtins fin- + ishes executing. + + If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim- + ple command has a non-zero exit status, subject to the following + conditions. The EERRRR trap is not executed if the failed command + is part of the command list immediately following a wwhhiillee or + uunnttiill keyword, part of the test in an _i_f statement, part of a + command executed in a &&&& or |||| list, or if the command's return + value is being inverted via !!. These are the same conditions + obeyed by the eerrrreexxiitt option. + + Signals ignored upon entry to the shell cannot be trapped or + reset. Trapped signals that are not being ignored are reset to + their original values in a subshell or subshell environment when + one is created. The return status is false if any _s_i_g_s_p_e_c is + invalid; otherwise ttrraapp returns true. ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...] With no options, indicate how each _n_a_m_e would be interpreted if @@ -1464,7 +1508,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS children --ii The maximum number of pending signals --ll The maximum size that may be locked into memory - --mm The maximum resident set size + --mm The maximum resident set size (many systems do not honor + this limit) --nn The maximum number of open file descriptors (most systems do not allow this value to be set) --pp The pipe size in 512-byte blocks (this may not be set) @@ -1472,58 +1517,58 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS --rr The maximum real-time scheduling priority --ss The maximum stack size --tt The maximum amount of cpu time in seconds - --uu The maximum number of processes available to a single + --uu The maximum number of processes available to a single user - --vv The maximum amount of virtual memory available to the + --vv The maximum amount of virtual memory available to the shell --xx The maximum number of file locks --TT The maximum number of threads If _l_i_m_i_t is given, it is the new value of the specified resource (the --aa option is display only). If no option is given, then --ff - is assumed. Values are in 1024-byte increments, except for --tt, - which is in seconds, --pp, which is in units of 512-byte blocks, - and --TT, --bb, --nn, and --uu, which are unscaled values. The return + is assumed. Values are in 1024-byte increments, except for --tt, + which is in seconds, --pp, which is in units of 512-byte blocks, + and --TT, --bb, --nn, and --uu, which are unscaled values. The return status is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit. uummaasskk [--pp] [--SS] [_m_o_d_e] The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with - a digit, it is interpreted as an octal number; otherwise it is - interpreted as a symbolic mode mask similar to that accepted by - _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is - printed. The --SS option causes the mask to be printed in sym- - bolic form; the default output is an octal number. If the --pp + a digit, it is interpreted as an octal number; otherwise it is + interpreted as a symbolic mode mask similar to that accepted by + _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is + printed. The --SS option causes the mask to be printed in sym- + bolic form; the default output is an octal number. If the --pp option is supplied, and _m_o_d_e is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode - was successfully changed or if no _m_o_d_e argument was supplied, + was successfully changed or if no _m_o_d_e argument was supplied, and false otherwise. uunnaalliiaass [-aa] [_n_a_m_e ...] - Remove each _n_a_m_e from the list of defined aliases. If --aa is - supplied, all alias definitions are removed. The return value + Remove each _n_a_m_e from the list of defined aliases. If --aa is + supplied, all alias definitions are removed. The return value is true unless a supplied _n_a_m_e is not a defined alias. uunnsseett [-ffvv] [_n_a_m_e ...] - For each _n_a_m_e, remove the corresponding variable or function. + For each _n_a_m_e, remove the corresponding variable or function. If no options are supplied, or the --vv option is given, each _n_a_m_e - refers to a shell variable. Read-only variables may not be - unset. If --ff is specified, each _n_a_m_e refers to a shell func- - tion, and the function definition is removed. Each unset vari- - able or function is removed from the environment passed to sub- - sequent commands. If any of RRAANNDDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, - FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they lose their special - properties, even if they are subsequently reset. The exit sta- - tus is true unless a _n_a_m_e is readonly. + refers to a shell variable. Read-only variables may not be + unset. If --ff is specified, each _n_a_m_e refers to a shell func- + tion, and the function definition is removed. Each unset vari- + able or function is removed from the environment passed to sub- + sequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANNDDOOMM, SSEECCOONNDDSS, + LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they + lose their special properties, even if they are subsequently + reset. The exit status is true unless a _n_a_m_e is readonly. wwaaiitt [_n _._._.] - Wait for each specified process and return its termination sta- - tus. Each _n may be a process ID or a job specification; if a - job spec is given, all processes in that job's pipeline are - waited for. If _n is not given, all currently active child pro- - cesses are waited for, and the return status is zero. If _n - specifies a non-existent process or job, the return status is - 127. Otherwise, the return status is the exit status of the + Wait for each specified process and return its termination sta- + tus. Each _n may be a process ID or a job specification; if a + job spec is given, all processes in that job's pipeline are + waited for. If _n is not given, all currently active child pro- + cesses are waited for, and the return status is zero. If _n + specifies a non-existent process or job, the return status is + 127. Otherwise, the return status is the exit status of the last process or job waited for. SSEEEE AALLSSOO diff --git a/doc/builtins.ps b/doc/builtins.ps index 7d00230..539dfb0 100644 --- a/doc/builtins.ps +++ b/doc/builtins.ps @@ -1,13 +1,13 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.19.2 -%%CreationDate: Thu Feb 5 08:05:28 2009 +%%CreationDate: Wed Dec 30 13:07:37 2009 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Symbol %%+ font Courier %%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 20 +%%Pages: 21 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait @@ -251,344 +251,357 @@ imes, trap, true, type, typeset, ulimit, umask, unalias, unset, w)108 .329 E(UIL)-.11 E(TIN COMMANDS)-1.007 E F0 .063 (Unless otherwise noted, each b)108 172.8 R .062(uiltin command documen\ ted in this section as accepting options preceded by)-.2 F F2108 -184.8 Q F0(accepts)3.8 E F23.8 E F0 1.3 -(to signify the end of the options.)3.8 F -.15(Fo)6.3 G 3.8(re).15 G 1.3 -(xample, the)-3.95 F F2(:)3.8 E F0(,)A F2(true)3.8 E F0(,)A F2(false)3.8 -E F0 3.8(,a)C(nd)-3.8 E F2(test)3.8 E F0 -.2(bu)3.8 G 1.3(iltins do not) -.2 F(accept options.)108 196.8 Q F2(:)108 214.8 Q F0([)2.5 E/F3 10 -/Times-Italic@0 SF(ar)A(guments)-.37 E F0(])A .452(No ef)144 226.8 R -.452(fect; the command does nothing be)-.25 F .452(yond e)-.15 F -(xpanding)-.15 E F3(ar)3.282 E(guments)-.37 E F0 .451(and performing an) -3.221 F 2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144 -238.8 R(zero e)2.5 E(xit code is returned.)-.15 E F2(.)110.5 255.6 Q F3 -(\214lename)6.666 E F0([)2.5 E F3(ar)A(guments)-.37 E F0(])A F2(sour)108 -267.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3(ar)A(guments)-.37 E -F0(])A 1.02(Read and e)144 279.6 R -.15(xe)-.15 G 1.02 -(cute commands from).15 F F3(\214lename)5.43 E F0 1.02 +184.8 Q F0(accepts)2.533 E F22.533 E F0 .034 +(to signify the end of the options.)2.533 F(The)5.034 E F2(:)2.534 E F0 +(,)A F2(true)2.534 E F0(,)A F2(false)2.534 E F0 2.534(,a)C(nd)-2.534 E +F2(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and) +.2 F .078(do not treat)108 196.8 R F22.577 E F0(specially)2.577 E +5.077(.T)-.65 G(he)-5.077 E F2(exit)2.577 E F0(,)A F2(logout)2.577 E F0 +(,)A F2(br)2.577 E(eak)-.18 E F0(,)A F2(continue)2.577 E F0(,)A F2(let) +2.577 E F0 2.577(,a)C(nd)-2.577 E F2(shift)2.577 E F0 -.2(bu)2.577 G +.077(iltins accept and process ar).2 F(gu-)-.18 E .319(ments be)108 +208.8 R .319(ginning with)-.15 F F22.819 E F0 .319 +(without requiring)2.819 F F22.819 E F0 5.319(.O)C .319(ther b) +-5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32 +(ut are not speci\214ed as)-.2 F 1.144(accepting options interpret ar) +108 220.8 R 1.144(guments be)-.18 F 1.144(ginning with)-.15 F F2 +3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143 +(lid options and require).25 F F23.643 E F0 1.143(to pre)3.643 F +-.15(ve)-.25 G 1.143(nt this).15 F(interpretation.)108 232.8 Q F2(:)108 +250.8 Q F0([)2.5 E/F3 10/Times-Italic@0 SF(ar)A(guments)-.37 E F0(])A +.451(No ef)144 262.8 R .451(fect; the command does nothing be)-.25 F +.452(yond e)-.15 F(xpanding)-.15 E F3(ar)3.282 E(guments)-.37 E F0 .452 +(and performing an)3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5 +(redirections. A)144 274.8 R(zero e)2.5 E(xit code is returned.)-.15 E +F2(.)110.5 291.6 Q F3(\214lename)6.666 E F0([)2.5 E F3(ar)A(guments)-.37 +E F0(])A F2(sour)108 303.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3 +(ar)A(guments)-.37 E F0(])A 1.02(Read and e)144 315.6 R -.15(xe)-.15 G +1.02(cute commands from).15 F F3(\214lename)5.43 E F0 1.02 (in the current shell en)3.7 F 1.02(vironment and return the e)-.4 F -(xit)-.15 E 1.68(status of the last command e)144 291.6 R -.15(xe)-.15 G +(xit)-.15 E 1.68(status of the last command e)144 327.6 R -.15(xe)-.15 G 1.68(cuted from).15 F F3(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F3 (\214lename)6.09 E F0 1.68(does not contain a slash, \214le)4.36 F .608 -(names in)144 303.6 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E +(names in)144 339.6 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608(are used to \214nd the directory containing)2.858 F F3 (\214lename)3.108 E F0 5.608(.T).18 G .608(he \214le searched for in) --5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .833(need not be e)144 315.6 -R -.15(xe)-.15 G 3.333(cutable. When).15 F F2(bash)3.333 E F0 .832 -(is not in)3.333 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .832 -(he current directory is searched if no)-3.332 F .981 -(\214le is found in)144 327.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9 +-5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .832(need not be e)144 351.6 +R -.15(xe)-.15 G 3.332(cutable. When).15 F F2(bash)3.332 E F0 .832 +(is not in)3.332 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .833 +(he current directory is searched if no)-3.332 F .982 +(\214le is found in)144 363.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9 /Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F2(sour)3.481 E(cepath)-.18 E F0 .981(option to the)3.481 F F2(shopt)3.481 E F0 -.2(bu)3.481 G .981 -(iltin command is turned of).2 F .982(f, the)-.25 F F4 -.666(PA)144 -339.6 S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F +(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144 +375.6 S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F (y)-.15 E F3(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F 2.612(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F3 -(\214lename)144 351.6 Q F0 .341(is e)2.841 F -.15(xe)-.15 G 2.841 -(cuted. Otherwise).15 F .341(the positional parameters are unchanged.) -2.841 F .342(The return status is the)5.342 F .716 -(status of the last command e)144 363.6 R .716 +(\214lename)144 387.6 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842 +(cuted. Otherwise).15 F .342(the positional parameters are unchanged.) +2.842 F .341(The return status is the)5.341 F .716 +(status of the last command e)144 399.6 R .716 (xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G -.716(cuted\), and f).15 F .715(alse if)-.1 F F3(\214lename)145.91 375.6 -Q F0(is not found or cannot be read.)2.68 E F2(alias)108 392.4 Q F0([) +.716(cuted\), and f).15 F .716(alse if)-.1 F F3(\214lename)145.91 411.6 +Q F0(is not found or cannot be read.)2.68 E F2(alias)108 428.4 Q F0([) 2.5 E F2A F0 2.5(][)C F3(name)-2.5 E F0([=)A F3(value)A F0 2.5(].) -C(..])-2.5 E F2(Alias)144 404.4 Q F0 2.724(with no ar)5.224 F 2.724 +C(..])-2.5 E F2(Alias)144 440.4 Q F0 2.725(with no ar)5.225 F 2.724 (guments or with the)-.18 F F25.224 E F0 2.724 -(option prints the list of aliases in the form)5.224 F F2(alias)5.225 E -F3(name)144 416.4 Q F0(=)A F3(value)A F0 .58(on standard output.)3.08 F +(option prints the list of aliases in the form)5.224 F F2(alias)5.224 E +F3(name)144 452.4 Q F0(=)A F3(value)A F0 .58(on standard output.)3.08 F .58(When ar)5.58 F .58 (guments are supplied, an alias is de\214ned for each)-.18 F F3(name) -3.08 E F0(whose)144 428.4 Q F3(value)2.895 E F0 .395(is gi)2.895 F -.15 +3.08 E F0(whose)144 464.4 Q F3(value)2.895 E F0 .395(is gi)2.895 F -.15 (ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F3(value) 5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395 (ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054 -(stitution when the alias is e)144 440.4 R 2.554(xpanded. F)-.15 F .054 +(stitution when the alias is e)144 476.4 R 2.554(xpanded. F)-.15 F .054 (or each)-.15 F F3(name)2.554 E F0 .054(in the ar)2.554 F .054 -(gument list for which no)-.18 F F3(value)2.554 E F0 .053(is sup-)2.553 -F 1.313(plied, the name and v)144 452.4 R 1.314 +(gument list for which no)-.18 F F3(value)2.554 E F0 .054(is sup-)2.554 +F 1.314(plied, the name and v)144 488.4 R 1.314 (alue of the alias is printed.)-.25 F F2(Alias)6.314 E F0 1.314 -(returns true unless a)3.814 F F3(name)3.814 E F0 1.314(is gi)3.814 F --.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E -(which no alias has been de\214ned.)144 464.4 Q F2(bg)108 481.2 Q F0([) -2.5 E F3(jobspec)A F0(...])2.5 E .745(Resume each suspended job)144 -493.2 R F3(jobspec)3.245 E F0 .745 -(in the background, as if it had been started with)3.245 F F2(&)3.244 E -F0 5.744(.I)C(f)-5.744 E F3(job-)4.984 E(spec)144 505.2 Q F0 .671 -(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the) --3.171 F F3(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2 -(bg)5.672 E F3(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419 -(when job control is disabled or)144 517.2 R 2.919(,w)-.4 G .419 -(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G -(peci\214ed)-2.918 E F3(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G -(ot)-2.918 E(found or w)144 529.2 Q(as started without job control.)-.1 -E F2(bind)108 546 Q F0([)2.5 E F2A F3 -.1(ke)2.5 G(ymap)-.2 E F0 -2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 558 Q F0([)2.5 E F2 +(returns true unless a)3.814 F F3(name)3.814 E F0 1.313(is gi)3.814 F +-.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E +(which no alias has been de\214ned.)144 500.4 Q F2(bg)108 517.2 Q F0([) +2.5 E F3(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 +529.2 R F3(jobspec)3.244 E F0 .745 +(in the background, as if it had been started with)3.244 F F2(&)3.245 E +F0 5.745(.I)C(f)-5.745 E F3(job-)4.985 E(spec)144 541.2 Q F0 .672 +(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the) +-3.172 F F3(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F2 +(bg)5.671 E F3(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418 +(when job control is disabled or)144 553.2 R 2.919(,w)-.4 G .419 +(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G +(peci\214ed)-2.919 E F3(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G +(ot)-2.919 E(found or w)144 565.2 Q(as started without job control.)-.1 +E F2(bind)108 582 Q F0([)2.5 E F2A F3 -.1(ke)2.5 G(ymap)-.2 E F0 +2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 594 Q F0([)2.5 E F2 A F3 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F2-2.5 E F3 (function)2.5 E F0 2.5(][)C F2-2.5 E F3(function)2.5 E F0 2.5(][)C -F2-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 570 Q F0([) +F2-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 606 Q F0([) 2.5 E F2A F3 -.1(ke)2.5 G(ymap)-.2 E F0(])A F22.5 E F3 -(\214lename)2.5 E F2(bind)108 582 Q F0([)2.5 E F2A F3 -.1(ke)2.5 G +(\214lename)2.5 E F2(bind)108 618 Q F0([)2.5 E F2A F3 -.1(ke)2.5 G (ymap)-.2 E F0(])A F22.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3 -(shell\255command)A F2(bind)108 594 Q F0([)2.5 E F2A F3 -.1(ke)2.5 +(shell\255command)A F2(bind)108 630 Q F0([)2.5 E F2A F3 -.1(ke)2.5 G(ymap)-.2 E F0(])A F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3 -(function\255name)A F2(bind)108 606 Q F3 -.37(re)2.5 G -(adline\255command).37 E F0 .238(Display current)144 618 R F2 -.18(re) -2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239 -(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239 -(equence to a).15 F F2 -.18(re)2.739 G(adline).18 E F0 .239(function or) -2.739 F .476(macro, or set a)144 630 R F2 -.18(re)2.976 G(adline).18 E -F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F -.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F3 -(.inputr)144 642 Q(c)-.37 E F0 2.983(,b).31 G .484 -(ut each binding or command must be passed as a separate ar)-3.183 F -.484(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5 -(re\255read\255init\255\214le'. Options,)144 654 R(if supplied, ha)2.5 E -.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2144 666 -Q F3 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 678 Q F3 -.1(ke)5.159 G(ymap)-.2 -E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.658 -(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E F3 -.1(ke) -180 690 S(ymap)-.2 E F0 3.192(names are)5.882 F F3 3.192 -(emacs, emacs\255standar)5.692 F 3.193 +(function\255name)A F2(bind)108 642 Q F3 -.37(re)2.5 G +(adline\255command).37 E F0 .239(Display current)144 654 R F2 -.18(re) +2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239 +(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238 +(equence to a).15 F F2 -.18(re)2.738 G(adline).18 E F0 .238(function or) +2.738 F .475(macro, or set a)144 666 R F2 -.18(re)2.975 G(adline).18 E +F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F +.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F3 +(.inputr)144 678 Q(c)-.37 E F0 2.984(,b).31 G .484 +(ut each binding or command must be passed as a separate ar)-3.184 F +.483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5 +(re\255read\255init\255\214le'. Options,)144 690 R(if supplied, ha)2.5 E +.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2144 702 +Q F3 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 714 Q F3 -.1(ke)5.158 G(ymap)-.2 +E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.659 +(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E F3 -.1(ke) +180 726 S(ymap)-.2 E F0 3.193(names are)5.883 F F3 3.193 +(emacs, emacs\255standar)5.693 F 3.192 (d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E -(vi\255command)180 702 Q F0 4.43(,a)C(nd)-4.43 E F3(vi\255insert)4.429 E -F0(.).68 E F3(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.929 -(lent to).25 F F3(vi\255command)4.429 E F0(;)A F3(emacs)4.429 E F0 1.929 -(is equi)4.429 F -.25(va)-.25 G 1.929(lent to).25 F F3(emacs\255standar) -180 714 Q(d)-.37 E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(1) -203.725 E 0 Cg EP +F0(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(1)203.725 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF144 84 Q F0(List the names of all)27.52 E F1 -.18 -(re)2.5 G(adline).18 E F0(functions.)2.5 E F1144 96 Q F0(Display) -24.74 E F1 -.18(re)2.5 G(adline).18 E F0 +/Times-Italic@0 SF(vi\255command)180 84 Q F0 4.429(,a)C(nd)-4.429 E F1 +(vi\255insert)4.429 E F0(.).68 E F1(vi)6.929 E F0 1.929(is equi)4.429 F +-.25(va)-.25 G 1.929(lent to).25 F F1(vi\255command)4.429 E F0(;)A F1 +(emacs)4.429 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 +F F1(emacs\255standar)180 96 Q(d)-.37 E F0(.)A/F2 10/Times-Bold@0 SF +144 108 Q F0(List the names of all)27.52 E F2 -.18(re)2.5 G +(adline).18 E F0(functions.)2.5 E F2144 120 Q F0(Display)24.74 E +F2 -.18(re)2.5 G(adline).18 E F0 (function names and bindings in such a w)2.5 E(ay that the)-.1 E 2.5(yc) --.15 G(an be re-read.)-2.5 E F1144 108 Q F0(List current)24.19 E -F1 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F1 -144 120 Q F0(Display)26.41 E F1 -.18(re)3.655 G(adline).18 E F0 +-.15 G(an be re-read.)-2.5 E F2144 132 Q F0(List current)24.19 E +F2 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F2 +144 144 Q F0(Display)26.41 E F2 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G 1.155 (equences bound to macros and the strings the)-3.655 F 3.655(yo)-.15 G -1.155(utput in such a)-3.655 F -.1(wa)180 132 S 2.5(yt).1 G(hat the)-2.5 -E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1144 144 Q F0(Display)24.74 -E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G +1.155(utput in such a)-3.655 F -.1(wa)180 156 S 2.5(yt).1 G(hat the)-2.5 +E 2.5(yc)-.15 G(an be re-read.)-2.5 E F2144 168 Q F0(Display)24.74 +E F2 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G (equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G -(utput.)-2.5 E F1144 156 Q F0(Display)25.3 E F1 -.18(re)2.5 G +(utput.)-2.5 E F2144 180 Q F0(Display)25.3 E F2 -.18(re)2.5 G (adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E (alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G -(an be re-read.)-2.5 E F1144 168 Q F0(List current)23.08 E F1 -.18 +(an be re-read.)-2.5 E F2144 192 Q F0(List current)23.08 E F2 -.18 (re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E(alues.) --.25 E F1144 180 Q/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0 -(Read k)180 192 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename) -2.5 E F0(.)A F1144 204 Q F2(function)2.5 E F0(Query about which k) -180 216 Q -.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 -H(he named).1 E F2(function)2.5 E F0(.)A F1144 228 Q F2(function) -2.5 E F0(Unbind all k)180 240 Q -.15(ey)-.1 G 2.5(sb).15 G -(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1144 252 Q F2 --.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 264 Q .3 -.15(ve a)-.15 H .3 -.15 -(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(.)A -F1144 276 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command) -A F0(Cause)180 288 Q F2(shell\255command)4.325 E F0 1.825(to be e)4.325 -F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F2 -.1 -(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F2 -(shell\255com-)4.325 E(mand)180 300 Q F0 1.113(is e)3.613 F -.15(xe)-.15 -G 1.113(cuted, the shell sets the).15 F F1(READLINE_LINE)3.613 E F0 -.25 -(va)3.613 G 1.113(riable to the contents of the).25 F F1 -.18(re)180 312 -S(adline).18 E F0 .587(line b)3.087 F(uf)-.2 E .587(fer and the)-.25 F -F1(READLINE_POINT)3.087 E F0 -.25(va)3.087 G .586 -(riable to the current location of the).25 F 1.24(insertion point.)180 -324 R 1.241(If the e)6.241 F -.15(xe)-.15 G 1.241 -(cuted command changes the v).15 F 1.241(alue of)-.25 F F1 -(READLINE_LINE)3.741 E F0(or)3.741 E F1(READLINE_POINT)180 336 Q F0 2.5 -(,t)C(hose ne)-2.5 E 2.5(wv)-.25 G +-.25 E F2144 204 Q F1(\214lename)2.5 E F0(Read k)180 216 Q .3 -.15 +(ey b)-.1 H(indings from).15 E F1(\214lename)2.5 E F0(.)A F2144 +228 Q F1(function)2.5 E F0(Query about which k)180 240 Q -.15(ey)-.1 G +2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H(he named).1 E F1 +(function)2.5 E F0(.)A F2144 252 Q F1(function)2.5 E F0 +(Unbind all k)180 264 Q -.15(ey)-.1 G 2.5(sb).15 G(ound to the named) +-2.5 E F1(function)2.5 E F0(.)A F2144 276 Q F1 -.1(ke)2.5 G(yseq) +-.2 E F0(Remo)180 288 Q .3 -.15(ve a)-.15 H .3 -.15(ny c).15 H +(urrent binding for).15 E F1 -.1(ke)2.5 G(yseq)-.2 E F0(.)A F2144 +300 Q F1 -.1(ke)2.5 G(yseq)-.2 E F2(:)A F1(shell\255command)A F0(Cause) +180 312 Q F1(shell\255command)4.325 E F0 1.825(to be e)4.325 F -.15(xe) +-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F1 -.1(ke)4.325 G +(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F1(shell\255com-) +4.325 E(mand)180 324 Q F0 1.765(is e)4.265 F -.15(xe)-.15 G 1.765 +(cuted, the shell sets the).15 F/F3 9/Times-Bold@0 SF(READLINE_LINE) +4.265 E F0 -.25(va)4.015 G 1.765(riable to the contents of the).25 F F2 +-.18(re)180 336 S(adline).18 E F0 1.353(line b)3.852 F(uf)-.2 E 1.353 +(fer and the)-.25 F F3(READLINE_POINT)3.853 E F0 -.25(va)3.603 G 1.353 +(riable to the current location of the).25 F 2.012(insertion point.)180 +348 R 2.011(If the e)7.012 F -.15(xe)-.15 G 2.011 +(cuted command changes the v).15 F 2.011(alue of)-.25 F F3 +(READLINE_LINE)4.511 E F0(or)4.261 E F3(READLINE_POINT)180 360 Q/F4 9 +/Times-Roman@0 SF(,)A F0(those ne)2.25 E 2.5(wv)-.25 G (alues will be re\215ected in the editing state.)-2.75 E(The return v) -144 352.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15 +144 376.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15 (ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5 -E F1(br)108 369.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055 -(Exit from within a)144 381.6 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1 -(while)2.555 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1 -(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055 -(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G -(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F3 10/Symbol SF2.554 -E F0(1.)2.554 E(If)144 393.6 Q F2(n)3.074 E F0 .215(is greater than the\ - number of enclosing loops, all enclosing loops are e)2.954 F 2.715 -(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144 -405.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2 -(bu)108 422.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E -F2(ar)A(guments)-.37 E F0(])A(Ex)144 434.4 Q .793 -(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F2 +E F2(br)108 393.6 Q(eak)-.18 E F0([)2.5 E F1(n)A F0(])A .054 +(Exit from within a)144 405.6 R F2 -.25(fo)2.554 G(r).25 E F0(,)A F2 +(while)2.554 E F0(,)A F2(until)2.555 E F0 2.555(,o)C(r)-2.555 E F2 +(select)2.555 E F0 2.555(loop. If)2.555 F F1(n)2.555 E F0 .055 +(is speci\214ed, break)2.555 F F1(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G +(ls.).15 E F1(n)5.415 E F0 .055(must be)2.795 F/F5 10/Symbol SF2.555 +E F0(1.)2.555 E(If)144 417.6 Q F1(n)3.075 E F0 .215(is greater than the\ + number of enclosing loops, all enclosing loops are e)2.955 F 2.714 +(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(is 0 unless)144 +429.6 Q F1(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F2 -.2 +(bu)108 446.4 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E +F1(ar)A(guments)-.37 E F0(])A(Ex)144 458.4 Q .792 +(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1 (ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293 -F .792(xit status.)-.15 F .792(This is useful)5.792 F .615 +F .793(xit status.)-.15 F .793(This is useful)5.793 F .616 (when de\214ning a function whose name is the same as a shell b)144 -446.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144 -458.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0 +470.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144 +482.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0 -.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E -5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 470.4 Q(alse if)-.1 -E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E -(uiltin command.)-.2 E F1(caller)108 487.2 Q F0([)2.5 E F2 -.2(ex)C(pr) -.2 E F0(])A .253(Returns the conte)144 499.2 R .254(xt of an)-.15 F +5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 494.4 Q(alse if)-.1 +E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E +(uiltin command.)-.2 E F2(caller)108 511.2 Q F0([)2.5 E F1 -.2(ex)C(pr) +.2 E F0(])A .254(Returns the conte)144 523.2 R .254(xt of an)-.15 F 2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254 (ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G -.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 511.2 Q -(ce)-.18 E F0 -.2(bu)3.063 G 3.063(iltins. W).2 F(ithout)-.4 E F2 -.2 -(ex)3.062 G(pr).2 E F0(,)A F1(caller)3.062 E F0 .562 +.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 535.2 Q +(ce)-.18 E F0 -.2(bu)3.062 G 3.062(iltins. W).2 F(ithout)-.4 E F1 -.2 +(ex)3.062 G(pr).2 E F0(,)A F2(caller)3.062 E F0 .562 (displays the line number and source \214lename of the current)3.062 F -.253(subroutine call.)144 523.2 R .253(If a non-ne)5.253 F -.05(ga)-.15 -G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15 -F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .254 -(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\ +.254(subroutine call.)144 547.2 R .254(If a non-ne)5.254 F -.05(ga)-.15 +G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15 +F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253 +(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\ tine name, and source \214le corresponding to that position in the curr\ -ent e)144 535.2 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e) -144 547.2 Q(xtra information may be used, for e)-.15 E .001 -(xample, to print a stack trace.)-.15 F .001(The current frame is frame) -5.001 F 3.02(0. The)144 559.2 R .52(return v)3.02 F .52 -(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519 -(cuting a subroutine call or).15 F F2 -.2(ex)3.019 G(pr).2 E F0 .519 -(does not corre-)3.019 F(spond to a v)144 571.2 Q -(alid position in the call stack.)-.25 E F1(cd)108 588 Q F0([)2.5 E F1 -(\255L|-P)A F0 2.5(][)C F2(dir)-2.5 E F0(])A .21 -(Change the current directory to)144 600 R F2(dir)2.71 E F0 5.21(.T)C -.21(he v)-5.21 F(ariable)-.25 E/F4 9/Times-Bold@0 SF(HOME)2.71 E F0 .21 -(is the def)2.46 F(ault)-.1 E F2(dir)2.71 E F0 5.21(.T).73 G .21(he v) --5.21 F(ariable)-.25 E F4(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .777 -(de\214nes the search path for the directory containing)144 612 R F2 -(dir)3.276 E F0 5.776(.A).73 G(lternati)-5.776 E 1.076 -.15(ve d)-.25 H -.776(irectory names in).15 F F4(CDP)3.276 E -.855(AT)-.666 G(H).855 E F0 -.764(are separated by a colon \(:\).)144 624 R 3.264(An)5.764 G .764 -(ull directory name in)-3.264 F F4(CDP)3.264 E -.855(AT)-.666 G(H).855 E -F0 .764(is the same as the current direc-)3.014 F(tory)144 636 Q 2.974 -(,i)-.65 G .474(.e., `)-2.974 F(`)-.74 E F1(.)A F0 -.74('')C 5.474(.I) -.74 G(f)-5.474 E F2(dir)3.324 E F0(be)3.704 E .474 -(gins with a slash \(/\), then)-.15 F F4(CDP)2.974 E -.855(AT)-.666 G(H) -.855 E F0 .473(is not used. The)2.724 F F12.973 E F0 .473 -(option says to use)2.973 F .579(the ph)144 648 R .579 +ent e)144 559.2 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001 +(This e)144 571.2 R .001(xtra information may be used, for e)-.15 F .001 +(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E +3.019(0. The)144 583.2 R .519(return v)3.019 F .519 +(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52 +(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52 +(does not corre-)3.02 F(spond to a v)144 595.2 Q +(alid position in the call stack.)-.25 E F2(cd)108 612 Q F0([)2.5 E F2 +(\255L|-P)A F0 2.5(][)C F1(dir)-2.5 E F0(])A .21 +(Change the current directory to)144 624 R F1(dir)2.71 E F0 5.21(.T)C +.21(he v)-5.21 F(ariable)-.25 E F3(HOME)2.71 E F0 .21(is the def)2.46 F +(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v)-5.21 F(ariable)-.25 +E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776 +(de\214nes the search path for the directory containing)144 636 R F1 +(dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H +.777(irectory names in).15 F F3(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0 +.764(are separated by a colon \(:\).)144 648 R 3.264(An)5.764 G .764 +(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H).855 E +F0 .764(is the same as the current direc-)3.014 F(tory)144 660 Q 2.973 +(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I) +.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474 +(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H) +.855 E F0 .474(is not used. The)2.724 F F22.974 E F0 .474 +(option says to use)2.974 F .58(the ph)144 672 R .58 (ysical directory structure instead of follo)-.05 F .579 -(wing symbolic links \(see also the)-.25 F F13.08 E F0 .58 -(option to the)3.08 F F1(set)144 660 Q F0 -.2(bu)3.384 G .884 -(iltin command\); the).2 F F13.384 E F0 .884 +(wing symbolic links \(see also the)-.25 F F23.079 E F0 .579 +(option to the)3.079 F F2(set)144 684 Q F0 -.2(bu)3.383 G .883 +(iltin command\); the).2 F F23.383 E F0 .884 (option forces symbolic links to be follo)3.384 F 3.384(wed. An)-.25 F -(ar)3.383 E .883(gument of)-.18 F F13.383 E F0(is)3.383 E(equi)144 -672 Q -.25(va)-.25 G .062(lent to).25 F F4($OLDPWD)2.562 E/F5 9 -/Times-Roman@0 SF(.)A F0 .062(If a non-empty directory name from)4.562 F -F1(CDP)2.562 E -.95(AT)-.74 G(H).95 E F0 .063(is used, or if)2.562 F F1 -2.563 E F0 .063(is the \214rst)2.563 F(ar)144 684 Q .116(gument, an\ -d the directory change is successful, the absolute pathname of the ne) --.18 F 2.615(ww)-.25 G .115(orking direc-)-2.715 F 1.164 -(tory is written to the standard output.)144 696 R 1.164(The return v) -6.164 F 1.165(alue is true if the directory w)-.25 F 1.165 -(as successfully)-.1 F(changed; f)144 708 Q(alse otherwise.)-.1 E -(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(2)203.725 E 0 Cg EP +(ar)3.384 E .884(gument of)-.18 F F23.384 E F0(is)3.384 E(equi)144 +696 Q -.25(va)-.25 G .316(lent to).25 F F3($OLDPWD)2.816 E F4(.)A F0 +.316(If a non-empty directory name from)4.816 F F3(CDP)2.815 E -.855(AT) +-.666 G(H).855 E F0 .315(is used, or if)2.565 F F22.815 E F0 .315 +(is the \214rst)2.815 F(ar)144 708 Q .116(gument, and the directory cha\ +nge is successful, the absolute pathname of the ne)-.18 F 2.616(ww)-.25 +G .116(orking direc-)-2.716 F 1.165 +(tory is written to the standard output.)144 720 R 1.164(The return v) +6.164 F 1.164(alue is true if the directory w)-.25 F 1.164 +(as successfully)-.1 F(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(2) +203.725 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(command)108 84 Q F0([)2.5 E F1(\255pVv)A F0(])A/F2 10 -/Times-Italic@0 SF(command)2.5 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 -E(Run)144 96 Q F2(command)2.957 E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 -E F0 .257(suppressing the normal shell function lookup. Only b)3.027 F -.257(uiltin commands or)-.2 F .501(commands found in the)144 108 R/F3 9 -/Times-Bold@0 SF -.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(changed; f) +144 84 Q(alse otherwise.)-.1 E/F1 10/Times-Bold@0 SF(command)108 100.8 Q +F0([)2.5 E F1(\255pVv)A F0(])A/F2 10/Times-Italic@0 SF(command)2.5 E F0 +([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 112.8 Q F2(command)2.956 +E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257 +(suppressing the normal shell function lookup. Only b)3.027 F .257 +(uiltin commands or)-.2 F .502(commands found in the)144 124.8 R/F3 9 +/Times-Bold@0 SF -.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15 (xe)-.15 G 3.002(cuted. If).15 F(the)3.002 E F13.002 E F0 .502 -(option is gi)3.002 F -.15(ve)-.25 G .502(n, the search for).15 F F2 -(command)3.202 E F0(is)3.772 E .232(performed using a def)144 120 R .231 -(ault v)-.1 F .231(alue for)-.25 F F1 -.74(PA)2.731 G(TH)-.21 E F0 .231 -(that is guaranteed to \214nd all of the standard utilities.)2.731 F(If) -5.231 E .174(either the)144 132 R F12.674 E F0(or)2.674 E F1 -2.674 E F0 .175(option is supplied, a description of)2.674 F F2(command) -2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F12.675 E F0 .175 -(option causes)2.675 F 3.11(as)144 144 S .61(ingle w)-3.11 F .61 -(ord indicating the command or \214le name used to in)-.1 F -.2(vo)-.4 G --.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F F1 -144 156 Q F0 .249(option produces a more v)2.749 F .249 -(erbose description.)-.15 F .249(If the)5.249 F F12.749 E F0(or) -2.749 E F12.75 E F0 .25(option is supplied, the e)2.75 F .25 -(xit status)-.15 F 1.005(is 0 if)144 168 R F2(command)3.705 E F0 -.1(wa) -4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004 +(option is gi)3.002 F -.15(ve)-.25 G .501(n, the search for).15 F F2 +(command)3.201 E F0(is)3.771 E .399(performed using a def)144 136.8 R +.399(ault v)-.1 F .399(alue for)-.25 F F3 -.666(PA)2.899 G(TH)-.189 E F0 +.4(that is guaranteed to \214nd all of the standard utilities.)2.649 F +(If)5.4 E .175(either the)144 148.8 R F12.675 E F0(or)2.675 E F1 +2.675 E F0 .175(option is supplied, a description of)2.675 F F2 +(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F12.674 E +F0 .174(option causes)2.674 F 3.11(as)144 160.8 S .61(ingle w)-3.11 F +.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo) +-.4 G -.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F +F1144 172.8 Q F0 .25(option produces a more v)2.75 F .25 +(erbose description.)-.15 F .249(If the)5.25 F F12.749 E F0(or) +2.749 E F12.749 E F0 .249(option is supplied, the e)2.749 F .249 +(xit status)-.15 F 1.004(is 0 if)144 184.8 R F2(command)3.704 E F0 -.1 +(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005 (If neither option is supplied and an error occurred or)6.005 F F2 -(command)144.2 180 Q F0 1.598(cannot be found, the e)4.868 F 1.599 -(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599 -(xit status of the)-.15 F F1(command)4.099 E F0 -.2(bu)144 192 S +(command)144.2 196.8 Q F0 1.599(cannot be found, the e)4.869 F 1.599 +(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598 +(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 208.8 S (iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1 -(compgen)108 208.8 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d) --.37 E F0(])A .013(Generate possible completion matches for)144 220.8 R +(compgen)108 225.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d) +-.37 E F0(])A .012(Generate possible completion matches for)144 237.6 R F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513 -E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981 -(accepted by the)144 232.8 R F1(complete)3.481 E F0 -.2(bu)3.481 G .981 +E F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982 +(accepted by the)144 249.6 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981 (iltin with the e).2 F .981(xception of)-.15 F F13.481 E F0(and) -3.481 E F13.481 E F0 3.481(,a)C .982(nd write the matches to the) --3.481 F 1.415(standard output.)144 244.8 R 1.415(When using the)6.415 F +3.481 E F13.481 E F0 3.481(,a)C .981(nd write the matches to the) +-3.481 F 1.415(standard output.)144 261.6 R 1.415(When using the)6.415 F F13.915 E F0(or)3.915 E F13.915 E F0 1.415(options, the v) 3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25 -F(grammable completion f)144 256.8 Q(acilities, while a)-.1 E -.25(va) +F(grammable completion f)144 273.6 Q(acilities, while a)-.1 E -.25(va) -.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.) --.25 E .352(The matches will be generated in the same w)144 280.8 R .352 +-.25 E .352(The matches will be generated in the same w)144 297.6 R .352 (ay as if the programmable completion code had gen-)-.1 F .02(erated th\ em directly from a completion speci\214cation with the same \215ags.)144 -292.8 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only) -2.52 F(those completions matching)144 304.8 Q F2(wor)2.5 E(d)-.37 E F0 -(will be displayed.)2.5 E(The return v)144 328.8 Q +309.6 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only) +2.52 F(those completions matching)144 321.6 Q F2(wor)2.5 E(d)-.37 E F0 +(will be displayed.)2.5 E(The return v)144 345.6 Q (alue is true unless an in)-.25 E -.25(va)-.4 G (lid option is supplied, or no matches were generated.).25 E F1 -(complete)108 345.6 Q F0([)3.033 E F1(\255abcdefgjksuv)A F0 3.033(][)C -F1-3.033 E F2(comp-option)3.033 E F0 3.033(][)C F1-3.033 E -F0 3.033(][)C F1-3.033 E F2(action)3.033 E F0 3.033(][)C F1 --3.033 E F2(globpat)3.033 E F0 3.034(][)C F1-3.034 E F2(wor)3.034 -E(dlist)-.37 E F0 3.034(][)C F1-3.034 E F2(function)3.034 E F0(])A -([)108 357.6 Q F1A F2(command)2.5 E F0(])A([)144 369.6 Q F1A -F2(\214lterpat)2.5 E F0 2.5(][)C F1-2.5 E F2(pr)2.5 E(e\214x)-.37 -E F0 2.5(][)C F1-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5 -E F0([)2.5 E F2(name ...)A F0(])A F1(complete \255pr)108 381.6 Q F0([) -2.5 E F1A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .633 -(Specify ho)144 393.6 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633 -(uments to each).18 F F2(name)3.133 E F0 .633(should be completed.)3.133 -F .634(If the)5.634 F F13.134 E F0 .634 -(option is supplied, or if no)3.134 F .14(options are supplied, e)144 -405.6 R .139(xisting completion speci\214cations are printed in a w)-.15 -F .139(ay that allo)-.1 F .139(ws them to be)-.25 F .31 -(reused as input.)144 417.6 R(The)5.31 E F12.81 E F0 .31 -(option remo)2.81 F -.15(ve)-.15 G 2.81(sac).15 G .31 -(ompletion speci\214cation for each)-2.81 F F2(name)2.81 E F0 2.81(,o)C -1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2(name)2.81 E F0(s)A 1.393 -(are supplied, all completion speci\214cations.)144 429.6 R(The)6.393 E -F13.893 E F0 1.392(option indicates that the remaining options) -3.892 F 1.304(and actions should apply to `)144 441.6 R(`empty')-.74 E -3.804('c)-.74 G 1.304 -(ommand completion; that is, completion attempted on a)-3.804 F -(blank line.)144 453.6 Q 1.438 +(complete)108 362.4 Q F0([)3.729 E F1(\255abcdefgjksuv)A F0 3.729(][)C +F1-3.729 E F2(comp-option)3.729 E F0 3.729(][)C F1(\255DE)-3.729 E +F0 3.728(][)C F1-3.728 E F2(action)3.728 E F0 3.728(][)C F1 +-3.728 E F2(globpat)3.728 E F0 3.728(][)C F1-3.728 E F2(wor)3.728 +E(dlist)-.37 E F0 3.728(][)C F1-3.728 E F2(func-)3.728 E(tion)108 +374.4 Q F0 2.5(][)C F1-2.5 E F2(command)2.5 E F0(])A([)144 386.4 Q +F1A F2(\214lterpat)2.5 E F0 2.5(][)C F1-2.5 E F2(pr)2.5 E +(e\214x)-.37 E F0 2.5(][)C F1-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(]) +A F2(name)2.5 E F0([)2.5 E F2(name ...)A F0(])A F1(complete \255pr)108 +398.4 Q F0([)2.5 E F1(\255DE)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E +.634(Specify ho)144 410.4 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634 +(uments to each).18 F F2(name)3.134 E F0 .634(should be completed.)3.134 +F .633(If the)5.634 F F13.133 E F0 .633 +(option is supplied, or if no)3.133 F .139(options are supplied, e)144 +422.4 R .139(xisting completion speci\214cations are printed in a w)-.15 +F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.) +144 434.4 R(The)5.31 E F12.81 E F0 .31(option remo)2.81 F -.15(ve) +-.15 G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2 +(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E +F2(name)2.81 E F0(s)A 1.346 +(are supplied, all completion speci\214cations.)144 446.4 R(The)6.347 E +F13.847 E F0 1.347(option indicates that the remaining options) +3.847 F .5(and actions should apply to the `)144 458.4 R(`def)-.74 E +(ault')-.1 E 3('c)-.74 G .5 +(ommand completion; that is, completion attempted on)-3 F 3.455(ac)144 +470.4 S .955(ommand for which no completion has pre)-3.455 F .955 +(viously been de\214ned.)-.25 F(The)5.955 E F13.455 E F0 .955 +(option indicates that)3.455 F .065 +(the remaining options and actions should apply to `)144 482.4 R +(`empty')-.74 E 2.564('c)-.74 G .064 +(ommand completion; that is, comple-)-2.564 F +(tion attempted on a blank line.)144 494.4 Q 1.437 (The process of applying these completion speci\214cations when w)144 -477.6 R 1.437(ord completion is attempted is)-.1 F(described abo)144 -489.6 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E -(ogrammable Completion)-.18 E F0(.)A .555 -(Other options, if speci\214ed, ha)144 513.6 R .855 -.15(ve t)-.2 H .555 +518.4 R 1.438(ord completion is attempted is)-.1 F(described abo)144 +530.4 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E +(ogrammable Completion)-.18 E F0(.)A .556 +(Other options, if speci\214ed, ha)144 554.4 R .856 -.15(ve t)-.2 H .555 (he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555 -(guments to the)-.18 F F13.056 E F0(,)A F13.056 E F0 3.056 -(,a)C(nd)-3.056 E F13.056 E F0 .723(options \(and, if necessary) -144 525.6 R 3.223(,t)-.65 G(he)-3.223 E F13.223 E F0(and)3.223 E -F13.223 E F0 .722 -(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E -(sion before the)144 537.6 Q F1(complete)2.5 E F0 -.2(bu)2.5 G -(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1144 549.6 Q -F2(comp-option)2.5 E F0(The)184 561.6 Q F2(comp-option)2.79 E F0 .291 +(guments to the)-.18 F F13.055 E F0(,)A F13.055 E F0 3.055 +(,a)C(nd)-3.055 E F13.055 E F0 .722(options \(and, if necessary) +144 566.4 R 3.222(,t)-.65 G(he)-3.222 E F13.222 E F0(and)3.222 E +F13.222 E F0 .723 +(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E +(sion before the)144 578.4 Q F1(complete)2.5 E F0 -.2(bu)2.5 G +(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1144 590.4 Q +F2(comp-option)2.5 E F0(The)184 602.4 Q F2(comp-option)2.791 E F0 .291 (controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec') .15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291 -(yond the simple)-.15 F(generation of completions.)184 573.6 Q F2 -(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 585.6 Q F0 -.281(Perform the rest of the def)224 597.6 R(ault)-.1 E F1(bash)2.781 E +(yond the simple)-.15 F(generation of completions.)184 614.4 Q F2 +(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 626.4 Q F0 +.281(Perform the rest of the def)224 638.4 R(ault)-.1 E F1(bash)2.781 E F0 .281(completions if the compspec generates no)2.781 F(matches.)224 -609.6 Q F1(default)184 621.6 Q F0 2.875(Use readline')10 F 5.375(sd)-.55 -G(ef)-5.375 E 2.876 +650.4 Q F1(default)184 662.4 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 +G(ef)-5.376 E 2.875 (ault \214lename completion if the compspec generates no)-.1 F(matches.) -224 633.6 Q F1(dir)184 645.6 Q(names)-.15 E F0(Perform directory name c\ -ompletion if the compspec generates no matches.)224 657.6 Q F1 -(\214lenames)184 669.6 Q F0 -.7(Te)224 681.6 S .137(ll readline that th\ -e compspec generates \214lenames, so it can perform an).7 F 2.636<798c> --.15 G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 693.6 R -2.634(ea)-.1 G .134(dding a slash to directory names, quoting spe-) --2.634 F .45(cial characters, or suppressing trailing spaces\).)224 -705.6 R .45(Intended to be used with shell)5.45 F(functions.)224 717.6 Q +224 674.4 Q F1(dir)184 686.4 Q(names)-.15 E F0(Perform directory name c\ +ompletion if the compspec generates no matches.)224 698.4 Q (GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(3)203.725 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup @@ -596,1972 +609,2043 @@ BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(nospace)184 84 Q F0 -.7(Te)6.11 G .22 +/Times-Bold@0 SF(\214lenames)184 84 Q F0 -.7(Te)224 96 S .137(ll readli\ +ne that the compspec generates \214lenames, so it can perform an).7 F +2.637<798c>-.15 G(le-)-2.637 E .134(name\255speci\214c processing \(lik) +224 108 R 2.634(ea)-.1 G .134 +(dding a slash to directory names, quoting spe-)-2.634 F .45 +(cial characters, or suppressing trailing spaces\).)224 120 R .45 +(Intended to be used with shell)5.45 F(functions.)224 132 Q F1(nospace) +184 144 Q F0 -.7(Te)6.11 G .22 (ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F -.22(ords completed at the end)-.1 F(of the line.)224 96 Q F1(plusdirs) -184 108 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985 +.22(ords completed at the end)-.1 F(of the line.)224 156 Q F1(plusdirs) +184 168 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985 (atches de\214ned by the compspec are generated, directory name)-4.485 F -.583(completion is attempted and an)224 120 R 3.084(ym)-.15 G .584 -(atches are added to the results of the other)-3.084 F(actions.)224 132 -Q F1144 144 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 156 +.584(completion is attempted and an)224 180 R 3.084(ym)-.15 G .584 +(atches are added to the results of the other)-3.084 F(actions.)224 192 +Q F1144 204 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 216 Q F2(action)2.5 E F0(may be one of the follo)2.5 E (wing to generate a list of possible completions:)-.25 E F1(alias)184 -168 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F12.5 -E F0(.)A F1(arrayv)184 180 Q(ar)-.1 E F0(Array v)224 192 Q -(ariable names.)-.25 E F1 4.7(binding Readline)184 204 R F0 -.1(ke)2.5 G -2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 216 S(iltin).2 E F0 +228 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F12.5 +E F0(.)A F1(arrayv)184 240 Q(ar)-.1 E F0(Array v)224 252 Q +(ariable names.)-.25 E F1 4.7(binding Readline)184 264 R F0 -.1(ke)2.5 G +2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 276 S(iltin).2 E F0 (Names of shell b)11.85 E(uiltin commands.)-.2 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(command)184 228 -Q F0(Command names.)224 240 Q(May also be speci\214ed as)5 E F12.5 -E F0(.)A F1(dir)184 252 Q(ectory)-.18 E F0(Directory names.)224 264 Q -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(disabled)184 276 -Q F0(Names of disabled shell b)224 288 Q(uiltins.)-.2 E F1(enabled)184 -300 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184 -312 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May) +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(command)184 288 +Q F0(Command names.)224 300 Q(May also be speci\214ed as)5 E F12.5 +E F0(.)A F1(dir)184 312 Q(ectory)-.18 E F0(Directory names.)224 324 Q +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(disabled)184 336 +Q F0(Names of disabled shell b)224 348 Q(uiltins.)-.2 E F1(enabled)184 +360 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184 +372 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May) -.25 F(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1(\214le)184 -324 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F12.5 -E F0(.)A F1(function)184 336 Q F0(Names of shell functions.)224 348 Q F1 -(gr)184 360 Q(oup)-.18 E F0(Group names.)14.62 E +384 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F12.5 +E F0(.)A F1(function)184 396 Q F0(Names of shell functions.)224 408 Q F1 +(gr)184 420 Q(oup)-.18 E F0(Group names.)14.62 E (May also be speci\214ed as)5 E F12.5 E F0(.)A F1(helptopic)184 -372 Q F0(Help topics as accepted by the)224 384 Q F1(help)2.5 E F0 -.2 -(bu)2.5 G(iltin.).2 E F1(hostname)184 396 Q F0(Hostnames, as tak)224 408 +432 Q F0(Help topics as accepted by the)224 444 Q F1(help)2.5 E F0 -.2 +(bu)2.5 G(iltin.).2 E F1(hostname)184 456 Q F0(Hostnames, as tak)224 468 Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF -(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 420 Q F0 +(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 480 Q F0 (Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G -(ay also be speci\214ed as)-5 E F12.5 E F0(.)A F1 -.1(ke)184 432 S -(yw).1 E(ord)-.1 E F0(Shell reserv)224 444 Q(ed w)-.15 E 2.5(ords. May) +(ay also be speci\214ed as)-5 E F12.5 E F0(.)A F1 -.1(ke)184 492 S +(yw).1 E(ord)-.1 E F0(Shell reserv)224 504 Q(ed w)-.15 E 2.5(ords. May) -.1 F(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1(running)184 -456 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve) --.25 G(.).15 E F1(ser)184 468 Q(vice)-.1 E F0(Service names.)10.67 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(setopt)184 480 Q +516 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve) +-.25 G(.).15 E F1(ser)184 528 Q(vice)-.1 E F0(Service names.)10.67 E +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1(setopt)184 540 Q F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F12.5 E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1 -(shopt)184 492 Q F0(Shell option names as accepted by the)16.66 E F1 -(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 504 Q F0 -(Signal names.)14.99 E F1(stopped)184 516 Q F0 +(shopt)184 552 Q F0(Shell option names as accepted by the)16.66 E F1 +(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 564 Q F0 +(Signal names.)14.99 E F1(stopped)184 576 Q F0 (Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.) -.15 E F1(user)184 528 Q F0(User names.)21.67 E -(May also be speci\214ed as)5 E F12.5 E F0(.)A F1 -.1(va)184 540 S +.15 E F1(user)184 588 Q F0(User names.)21.67 E +(May also be speci\214ed as)5 E F12.5 E F0(.)A F1 -.1(va)184 600 S (riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F -(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1144 552 Q F2 -(globpat)2.5 E F0 1.411(The \214lename e)184 564 R 1.411 -(xpansion pattern)-.15 F F2(globpat)3.911 E F0 1.411(is e)3.911 F 1.411 -(xpanded to generate the possible comple-)-.15 F(tions.)184 576 Q F1 -144 588 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 600 Q F2(wor)3.639 -E(dlist)-.37 E F0 1.14(is split using the characters in the)3.639 F F3 -(IFS)3.64 E F0 1.14(special v)3.39 F 1.14(ariable as delimiters, and) --.25 F 2.008(each resultant w)184 612 R 2.008(ord is e)-.1 F 4.508 -(xpanded. The)-.15 F 2.007(possible completions are the members of the) -4.508 F(resultant list which match the w)184 624 Q(ord being completed.) --.1 E F1144 636 Q F2(command)2.5 E(command)184 648 Q F0 1.055 -(is e)3.555 F -.15(xe)-.15 G 1.055(cuted in a subshell en).15 F 1.056 +(also be speci\214ed as)2.5 E F12.5 E F0(.)A F1144 612 Q F2 +(globpat)2.5 E F0 1.007(The pathname e)184 624 R 1.007(xpansion pattern) +-.15 F F2(globpat)3.507 E F0 1.007(is e)3.507 F 1.008 +(xpanded to generate the possible comple-)-.15 F(tions.)184 636 Q F1 +144 648 Q F2(wor)2.5 E(dlist)-.37 E F0(The)184 660 Q F2(wor)3.64 E +(dlist)-.37 E F0 1.14(is split using the characters in the)3.64 F F3 +(IFS)3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and) +-.25 F 2.007(each resultant w)184 672 R 2.007(ord is e)-.1 F 4.507 +(xpanded. The)-.15 F 2.008(possible completions are the members of the) +4.507 F(resultant list which match the w)184 684 Q(ord being completed.) +-.1 E F1144 696 Q F2(command)2.5 E(command)184 708 Q F0 1.056 +(is e)3.556 F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056 (vironment, and its output is used as the possible)-.4 F(completions.) -184 660 Q F1144 672 Q F2(function)2.5 E F0 1.181 -(The shell function)184 684 R F2(function)3.681 E F0 1.181(is e)3.681 F --.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68 -(vironment. When)-.4 F 1.18(it \214n-)3.68 F .932 -(ishes, the possible completions are retrie)184 696 R -.15(ve)-.25 G -3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F3 -(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 708 S(riable.) -.25 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(4)203.725 E 0 Cg EP +184 720 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(4)203.725 E 0 Cg +EP %%Page: 5 5 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF144 84 Q/F2 10/Times-Italic@0 SF(\214lterpat)2.5 E -(\214lterpat)184 96 Q F0 .733(is a pattern as used for \214lename e) -3.234 F 3.233(xpansion. It)-.15 F .733 -(is applied to the list of possible)3.233 F 1.596 -(completions generated by the preceding options and ar)184 108 R 1.596 -(guments, and each completion)-.18 F(matching)184 120 Q F2(\214lterpat) -3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704 -(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0 -(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704 -(tes the pattern;).05 F(in this case, an)184 132 Q 2.5(yc)-.15 G +/Times-Bold@0 SF144 84 Q/F2 10/Times-Italic@0 SF(function)2.5 E F0 +1.18(The shell function)184 96 R F2(function)3.68 E F0 1.181(is e)3.681 +F -.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681 +(vironment. When)-.4 F 1.181(it \214n-)3.681 F .932 +(ishes, the possible completions are retrie)184 108 R -.15(ve)-.25 G +3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F/F3 9 +/Times-Bold@0 SF(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184 +120 S(riable.).25 E F1144 132 Q F2(\214lterpat)2.5 E(\214lterpat) +184 144 Q F0 .455(is a pattern as used for pathname e)2.955 F 2.956 +(xpansion. It)-.15 F .456(is applied to the list of possible)2.956 F +1.596(completions generated by the preceding options and ar)184 156 R +1.596(guments, and each completion)-.18 F(matching)184 168 Q F2 +(\214lterpat)3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 +G .704(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!) +3.204 E F0(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 +G .705(tes the pattern;).05 F(in this case, an)184 180 Q 2.5(yc)-.15 G (ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E --.15(ve)-.15 G(d.).15 E F1144 144 Q F2(pr)2.5 E(e\214x)-.37 E(pr) -184 156 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534 +-.15(ve)-.15 G(d.).15 E F1144 192 Q F2(pr)2.5 E(e\214x)-.37 E(pr) +184 204 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534 (ginning of each possible completion after all other options ha)-.15 F --.15(ve)-.2 G(been applied.)184 168 Q F1144 180 Q F2(suf)2.5 E +-.15(ve)-.2 G(been applied.)184 216 Q F1144 228 Q F2(suf)2.5 E 2.81(\214x suf)-.18 F<8c78>-.18 E F0 (is appended to each possible completion after all other options ha)2.5 -E .3 -.15(ve b)-.2 H(een applied.).15 E .467(The return v)144 196.8 R -.467(alue is true unless an in)-.25 F -.25(va)-.4 G .466 -(lid option is supplied, an option other than).25 F F12.966 E F0 -(or)2.966 E F12.966 E F0 .466(is sup-)2.966 F 1.361 -(plied without a)144 208.8 R F2(name)3.861 E F0(ar)3.861 E 1.361 -(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H -1.362(ompletion speci\214cation for a).15 F F2(name)144 220.8 Q F0 +E .3 -.15(ve b)-.2 H(een applied.).15 E .466(The return v)144 244.8 R +.466(alue is true unless an in)-.25 F -.25(va)-.4 G .466 +(lid option is supplied, an option other than).25 F F12.967 E F0 +(or)2.967 E F12.967 E F0 .467(is sup-)2.967 F 1.362 +(plied without a)144 256.8 R F2(name)3.862 E F0(ar)3.862 E 1.361 +(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H +1.361(ompletion speci\214cation for a).15 F F2(name)144 268.8 Q F0 (for which no speci\214cation e)2.5 E (xists, or an error occurs adding a completion speci\214cation.)-.15 E -F1(compopt)108 237.6 Q F0([)2.5 E F1A F2(option)2.5 E F0 2.5(][)C -F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .447 -(Modify completion options for each)144 249.6 R F2(name)2.947 E F0 .447 -(according to the)2.947 F F2(option)2.947 E F0 .447 -(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .725 -(completion if no)144 261.6 R F2(name)3.225 E F0 3.225(sa)C .725 -(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa) -C .725(re gi)-3.225 F -.15(ve)-.25 G .726 -(n, display the completion options for).15 F(each)144 273.6 Q F2(name) -3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v) +F1(compopt)108 285.6 Q F0([)2.5 E F1A F2(option)2.5 E F0 2.5(][)C +F1(\255DE)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2 +(name)-2.5 E F0(])A .447(Modify completion options for each)144 297.6 R +F2(name)2.947 E F0 .447(according to the)2.947 F F2(option)2.947 E F0 +.447(s, or for the currently-e)B -.15(xe)-.15 G(cution).15 E .726 +(completion if no)144 309.6 R F2(name)3.226 E F0 3.226(sa)C .726 +(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa) +C .725(re gi)-3.225 F -.15(ve)-.25 G .725 +(n, display the completion options for).15 F(each)144 321.6 Q F2(name) +3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v) 5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224 -F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 285.6 Q F0 -.2(bu) -2.5 G(iltin described abo).2 E -.15(ve)-.15 G(.).15 E .327(The return v) -108 302.4 R .327(alue is true unless an in)-.25 F -.25(va)-.4 G .327 +F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 333.6 Q F0 -.2(bu) +2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he) +-5.297 E F12.797 E F0 .297 +(option indicates that the remaining options should apply to)2.797 F +1.227(the `)144 345.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\ +mmand completion; that is, completion attempted on a command for which \ +no)-3.727 F 2.178(completion has pre)144 357.6 R 2.178 +(viously been de\214ned.)-.25 F(The)7.178 E F14.678 E F0 2.177 +(option indicates that the remaining options)4.677 F(should apply to `) +144 369.6 Q(`empty')-.74 E 2.5('c)-.74 G +(ommand completion; that is, completion attempted on a blank line.)-2.5 +E .327(The return v)108 386.4 R .327(alue is true unless an in)-.25 F +-.25(va)-.4 G .327 (lid option is supplied, an attempt is made to modify the options for a) -.25 F F2(name)108 314.4 Q F0(for which no completion speci\214cation e) -2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 331.2 Q -F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 343.2 R 1.754 +.25 F F2(name)108 398.4 Q F0(for which no completion speci\214cation e) +2.5 E(xists, or an output error occurs.)-.15 E F1(continue)108 415.2 Q +F0([)2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 427.2 R 1.754 (xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1 (select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753 -(is speci\214ed,)4.493 F 1.208(resume at the)144 355.2 R F2(n)3.709 E F0 -1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F3 10 +(is speci\214ed,)4.493 F 1.208(resume at the)144 439.2 R F2(n)3.709 E F0 +1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F4 10 /Symbol SF3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209 (is greater than the number of enclosing)3.949 F .514 -(loops, the last enclosing loop \(the `)144 367.2 R(`top-le)-.74 E -.15 +(loops, the last enclosing loop \(the `)144 451.2 R(`top-le)-.74 E -.15 (ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513 (The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is) -3.013 E(not greater than or equal to 1.)144 379.2 Q F1(declar)108 396 Q +3.013 E(not greater than or equal to 1.)144 463.2 Q F1(declar)108 480 Q (e)-.18 E F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1 -(typeset)108 408 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1 +(typeset)108 492 Q F0([)2.5 E F1(\255aAfFilrtux)A F0 2.5(][)C F1 -2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..]) --2.5 E 1.264(Declare v)144 420 R 1.264(ariables and/or gi)-.25 F 1.564 +-2.5 E 1.264(Declare v)144 504 R 1.264(ariables and/or gi)-.25 F 1.564 -.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.765 (nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F -.25 -(va)144 432 S 3.483(riables. The).25 F F13.483 E F0 .983 +(va)144 516 S 3.483(riables. The).25 F F13.483 E F0 .983 (option will display the attrib)3.483 F .983(utes and v)-.2 F .982 (alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1 -3.482 E F0 .982(is used)3.482 F(with)144 444 Q F2(name)3.579 E F0 +3.482 E F0 .982(is used)3.482 F(with)144 528 Q F2(name)3.579 E F0 (ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F(When) 6.079 E F13.579 E F0 1.079(is supplied without)3.579 F F2(name) 3.58 E F0(ar)3.58 E(gu-)-.18 E .151(ments, it will display the attrib) -144 456 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15 +144 540 R .151(utes and v)-.2 F .151(alues of all v)-.25 F .15 (ariables ha)-.25 F .15(ving the attrib)-.2 F .15 -(utes speci\214ed by the)-.2 F .046(additional options.)144 468 R .046 +(utes speci\214ed by the)-.2 F .046(additional options.)144 552 R .046 (If no other options are supplied with)5.046 F F12.547 E F0(,)A F1 (declar)2.547 E(e)-.18 E F0 .047(will display the attrib)2.547 F .047 -(utes and)-.2 F -.25(va)144 480 S 1.363(lues of all shell v).25 F 3.863 +(utes and)-.2 F -.25(va)144 564 S 1.363(lues of all shell v).25 F 3.863 (ariables. The)-.25 F F13.863 E F0 1.362 (option will restrict the display to shell functions.)3.863 F(The)6.362 E F13.862 E F0 2.422(option inhibits the display of function de\ -\214nitions; only the function name and attrib)144 492 R 2.423(utes are) --.2 F 2.664(printed. If)144 504 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E +\214nitions; only the function name and attrib)144 576 R 2.423(utes are) +-.2 F 2.664(printed. If)144 588 R(the)2.664 E F1(extdeb)2.664 E(ug)-.2 E F0 .164(shell option is enabled using)2.664 F F1(shopt)2.664 E F0 2.664 (,t)C .163(he source \214le name and line number)-2.664 F 1.382 -(where the function is de\214ned are displayed as well.)144 516 R(The) +(where the function is de\214ned are displayed as well.)144 600 R(The) 6.382 E F13.882 E F0 1.382(option implies)3.882 F F13.882 E F0 6.382(.T)C 1.382(he follo)-6.382 F(wing)-.25 E .794 -(options can be used to restrict output to v)144 528 R .794 +(options can be used to restrict output to v)144 612 R .794 (ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F -1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 540 Q(utes:)-.2 E F1 -144 552 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15 +1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 624 Q(utes:)-.2 E F1 +144 636 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15 (xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5 -E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1144 564 Q F0(Each)23.08 +E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1144 648 Q F0(Each)23.08 E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).) -.15 E F1144 576 Q F0(Use function names only)26.97 E(.)-.65 E F1 -144 588 Q F0 .557(The v)27.52 F .558 +.15 E F1144 660 Q F0(Use function names only)26.97 E(.)-.65 E F1 +144 672 Q F0 .557(The v)27.52 F .558 (ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25 -(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .558 -(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION \))180 600 Q F0 -(is performed when the v)2.25 E(ariable is assigned a v)-.25 E(alue.) --.25 E F1144 612 Q F0 .91(When the v)27.52 F .909 +(va)-.25 G .558(luation \(see).25 F F3 .558(ARITHMETIC EV)3.058 F(ALU) +-1.215 E(A-)-.54 E(TION)180 684 Q F0(abo)2.25 E -.15(ve)-.15 G 2.5(\)i) +.15 G 2.5(sp)-2.5 G(erformed when the v)-2.5 E(ariable is assigned a v) +-.25 E(alue.)-.25 E F1144 696 Q F0 .91(When the v)27.52 F .909 (ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909 (-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer) --.25 E(-)-.2 E 2.5(case. The)180 624 R(upper)2.5 E(-case attrib)-.2 E -(ute is disabled.)-.2 E F1144 636 Q F0(Mak)25.86 E(e)-.1 E F2 -(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T)-.65 G 2.546 -(hese names cannot then be assigned v)-7.546 F 2.547 -(alues by subsequent)-.25 F(assignment statements or unset.)180 648 Q F1 -144 660 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2(name) +-.25 E(-)-.2 E 2.5(case. The)180 708 R(upper)2.5 E(-case attrib)-.2 E +(ute is disabled.)-.2 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(5) +203.725 E 0 Cg EP +%%Page: 6 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF144 84 Q F0(Mak)25.86 E(e)-.1 E/F2 10 +/Times-Italic@0 SF(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T) +-.65 G 2.546(hese names cannot then be assigned v)-7.546 F 2.547 +(alues by subsequent)-.25 F(assignment statements or unset.)180 96 Q F1 +144 108 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2(name) 2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929 (ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG) -.1 E F0(and)2.929 E F1(RETURN)2.929 E F0(traps from the calling shell.) -180 672 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E -(ariables.)-.25 E F1144 684 Q F0 .909(When the v)24.74 F .909 +180 120 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E +(ariables.)-.25 E F1144 132 Q F0 .909(When the v)24.74 F .909 (ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909 (-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to upper).15 F(-) --.2 E 2.5(case. The)180 696 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E -(ute is disabled.)-.2 E F1144 708 Q F0(Mark)25.3 E F2(name)2.5 E +-.2 E 2.5(case. The)180 144 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E +(ute is disabled.)-.2 E F1144 156 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E -(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 724.8 R +(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 172.8 R 2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2 F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F -(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(5)203.725 E 0 Cg EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.236 -(to destro)144 84 R 3.736(ya)-.1 G 3.737(na)-3.736 G 1.237(rray v)-3.737 -F 1.237(ariable and)-.25 F/F1 10/Times-Bold@0 SF 1.237(+r will not r) -3.737 F(emo)-.18 E 1.437 -.1(ve t)-.1 H 1.237(he r).1 F 1.237 -(eadonly attrib)-.18 F 3.737(ute. When)-.2 F 1.237(used in a)3.737 F -.312(function, mak)144 96 R .312(es each)-.1 F/F2 10/Times-Italic@0 SF -(name)2.812 E F1 .311(local, as with the local)2.812 F F0 2.811 -(command. If)2.811 F 2.811(av)2.811 G .311(ariable name is follo)-3.061 -F .311(wed by)-.25 F(=)144 108 Q F2(value)A F0 3.238(,t)C .738(he v) --3.238 F .738(alue of the v)-.25 F .738(ariable is set to)-.25 F F2 -(value)3.238 E F0 5.738(.T)C .738(he return v)-5.738 F .739 -(alue is 0 unless an in)-.25 F -.25(va)-.4 G .739(lid option is).25 F -.603(encountered, an attempt is made to de\214ne a function using)144 -120 R/F3 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103 -(na)-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 132 R +.644(to destro)144 184.8 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v) +-3.144 F .644(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo) +3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.145 +(ute. When)-.2 F .645(used in a func-)3.145 F 1.945(tion, mak)144 196.8 +R 1.945(es each)-.1 F F2(name)4.445 E F0 1.945(local, as with the)4.445 +F F1(local)4.444 E F0 4.444(command. If)4.444 F 4.444(av)4.444 G 1.944 +(ariable name is follo)-4.694 F 1.944(wed by)-.25 F(=)144 208.8 Q F2 +(value)A F0 3.238(,t)C .738(he v)-3.238 F .738(alue of the v)-.25 F .738 +(ariable is set to)-.25 F F2(value)3.238 E F0 5.738(.T)C .738 +(he return v)-5.738 F .739(alue is 0 unless an in)-.25 F -.25(va)-.4 G +.739(lid option is).25 F .603 +(encountered, an attempt is made to de\214ne a function using)144 220.8 +R/F3 10/Courier@0 SF .603(\255f foo=bar)3.103 F F0 3.103(,a)C 3.103(na) +-3.103 G .603(ttempt is made to)-3.103 F 1.242(assign a v)144 232.8 R 1.242(alue to a readonly v)-.25 F 1.242 (ariable, an attempt is made to assign a v)-.25 F 1.243 (alue to an array v)-.25 F(ariable)-.25 E 1.386 -(without using the compound assignment syntax \(see)144 144 R F1(Arrays) -3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F F2 -(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 156 S .171 +(without using the compound assignment syntax \(see)144 244.8 R F1 +(Arrays)3.886 E F0(abo)3.886 E -.15(ve)-.15 G 1.386(\), one of the).15 F +F2(names)3.886 E F0 1.386(is not a)3.886 F -.25(va)144 256.8 S .171 (lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25 F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .172 -(ariable, an)-.25 F .96(attempt is made to turn of)144 168 R 3.46(fa) +(ariable, an)-.25 F .96(attempt is made to turn of)144 268.8 R 3.46(fa) -.25 G .96(rray status for an array v)-3.46 F .96 -(ariable, or an attempt is made to display a)-.25 F(non-e)144 180 Q -(xistent function with)-.15 E F12.5 E F0(.)A F1(dirs [+)108 196.8 +(ariable, or an attempt is made to display a)-.25 F(non-e)144 280.8 Q +(xistent function with)-.15 E F12.5 E F0(.)A F1(dirs [+)108 297.6 Q F2(n)A F1 2.5(][)C-2.5 E F2(n)A F1 2.5(][)C(\255cplv])-2.5 E F0 --.4(Wi)144 208.8 S .328 +-.4(Wi)144 309.6 S .328 (thout options, displays the list of currently remembered directories.) .4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238 -(single line with directory names separated by spaces.)144 220.8 R 1.238 -(Directories are added to the list with the)6.238 F F1(pushd)144 232.8 Q +(single line with directory names separated by spaces.)144 321.6 R 1.238 +(Directories are added to the list with the)6.238 F F1(pushd)144 333.6 Q F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G -2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 244.8 Q F2(n)A F0 +2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 345.6 Q F2(n)A F0 1.564(Displays the)25.3 F F2(n)4.064 E F0 1.565 (th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1 (dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E -(without options, starting with zero.)180 256.8 Q F1144 268.8 Q F2 +(without options, starting with zero.)180 357.6 Q F1144 369.6 Q F2 (n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194 (th entry counting from the right of the list sho)B 1.194(wn by)-.25 F F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E -(without options, starting with zero.)180 280.8 Q F1144 292.8 Q F0 +(without options, starting with zero.)180 381.6 Q F1144 393.6 Q F0 (Clears the directory stack by deleting all of the entries.)25.86 E F1 -144 304.8 Q F0 .324(Produces a longer listing; the def)27.52 F +144 405.6 Q F0 .324(Produces a longer listing; the def)27.52 F .324(ault listing format uses a tilde to denote the home direc-)-.1 F -(tory)180 316.8 Q(.)-.65 E F1144 328.8 Q F0 +(tory)180 417.6 Q(.)-.65 E F1144 429.6 Q F0 (Print the directory stack with one entry per line.)24.74 E F1144 -340.8 Q F0 .273(Print the directory stack with one entry per line, pre\ +441.6 Q F0 .273(Print the directory stack with one entry per line, pre\ \214xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772 -G(he)-2.772 E(stack.)180 352.8 Q .257(The return v)144 369.6 R .258 +G(he)-2.772 E(stack.)180 453.6 Q .257(The return v)144 470.4 R .258 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .258 (lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe) -.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-) -.15 F(tory stack.)144 381.6 Q F1(diso)108 398.4 Q(wn)-.1 E F0([)2.5 E F1 +.15 F(tory stack.)144 482.4 Q F1(diso)108 499.2 Q(wn)-.1 E F0([)2.5 E F1 (\255ar)A F0 2.5(][)C F1-2.5 E F0 2.5(][)C F2(jobspec)-2.5 E F0 -(...])2.5 E -.4(Wi)144 410.4 S .295(thout options, each).4 F F2(jobspec) +(...])2.5 E -.4(Wi)144 511.2 S .295(thout options, each).4 F F2(jobspec) 4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295 (rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15 -F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .243(and neither) -144 422.4 R F1 .243(\255a nor \255r is supplied, the shell')2.743 F -2.743(sn)-.37 G .243(otion of the)-2.743 F F2(curr)2.743 E .243(ent job) --.37 F F1 .243(is used.)2.743 F .244(If the \255h option)5.243 F .334 -(is gi)144 434.4 R -.1(ve)-.1 G .334(n, each).1 F F2(jobspec)4.574 E F0 -.334(is not remo)3.144 F -.15(ve)-.15 G 2.834(df).15 G .334 -(rom the table, b)-2.834 F .334(ut is mark)-.2 F .334(ed so that)-.1 F -/F4 9/Times-Bold@0 SF(SIGHUP)2.834 E F0 .333(is not sent to)2.584 F -1.189(the job if the shell recei)144 446.4 R -.15(ve)-.25 G 3.689(sa).15 -G F4(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 1.189(If no)5.689 F F2 -(jobspec)5.429 E F0 1.189(is present, and neither the)3.999 F F1 -3.689 E F0 1.19(nor the)3.69 F F13.69 E F0 1.57 -(option is supplied, the)144 458.4 R F2(curr)4.07 E 1.57(ent job)-.37 F -F0 1.57(is used.)4.07 F 1.569(If no)6.569 F F2(jobspec)5.809 E F0 1.569 -(is supplied, the)4.379 F F14.069 E F0 1.569(option means to)4.069 -F(remo)144 470.4 Q .903 -.15(ve o)-.15 H 3.103(rm).15 G .603 -(ark all jobs; the)-3.103 F F13.103 E F0 .603(option without a) -3.103 F F2(jobspec)4.843 E F0(ar)3.414 E .604 -(gument restricts operation to running)-.18 F 2.5(jobs. The)144 482.4 R -(return v)2.5 E(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0 -(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 499.2 Q +F F2(jobspec)4.535 E F0 .295(is not present,)3.105 F .422(and neither) +144 523.2 R F12.922 E F0(nor)2.922 E F12.922 E F0 .422 +(is supplied, the shell')2.922 F 2.922(sn)-.55 G .422(otion of the) +-2.922 F F2(curr)2.923 E .423(ent job)-.37 F F0 .423(is used.)2.923 F +.423(If the)5.423 F F12.923 E F0 .423(option is)2.923 F(gi)144 +535.2 Q -.15(ve)-.25 G .141(n, each).15 F F2(jobspec)4.381 E F0 .141 +(is not remo)2.951 F -.15(ve)-.15 G 2.641(df).15 G .141 +(rom the table, b)-2.641 F .141(ut is mark)-.2 F .141(ed so that)-.1 F +/F4 9/Times-Bold@0 SF(SIGHUP)2.641 E F0 .14(is not sent to the)2.39 F +.004(job if the shell recei)144 547.2 R -.15(ve)-.25 G 2.504(sa).15 G F4 +(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 .004(If no)4.504 F F2(jobspec) +4.244 E F0 .004(is present, and neither the)2.814 F F12.504 E F0 +.005(nor the)2.504 F F12.505 E F0 .005(option is)2.505 F 1.229 +(supplied, the)144 559.2 R F2(curr)3.729 E 1.229(ent job)-.37 F F0 1.229 +(is used.)3.729 F 1.229(If no)6.229 F F2(jobspec)5.469 E F0 1.229 +(is supplied, the)4.039 F F13.729 E F0 1.228(option means to remo) +3.729 F 1.528 -.15(ve o)-.15 H(r).15 E .656(mark all jobs; the)144 571.2 +R F13.156 E F0 .657(option without a)3.156 F F2(jobspec)4.897 E F0 +(ar)3.467 E .657(gument restricts operation to running jobs.)-.18 F(The) +5.657 E(return v)144 583.2 Q(alue is 0 unless a)-.25 E F2(jobspec)4.24 E +F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 600 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.395(Output the)144 511.2 R F2(ar)2.895 E(g)-.37 E F0 .395 +.395(Output the)144 612 R F2(ar)2.895 E(g)-.37 E F0 .395 (s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895 (wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394 (ys 0.).1 F(If)5.394 E F12.894 E F0 .548 -(is speci\214ed, the trailing ne)144 523.2 R .548(wline is suppressed.) +(is speci\214ed, the trailing ne)144 624 R .548(wline is suppressed.) -.25 F .548(If the)5.548 F F13.048 E F0 .548(option is gi)3.048 F --.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 535.2 Q +-.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 636 Q .053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1 2.553 E F0 .052(option disables the interpretation of these)2.552 -F 1.502(escape characters, e)144 547.2 R -.15(ve)-.25 G 4.002(no).15 G +F 1.502(escape characters, e)144 648 R -.15(ve)-.25 G 4.002(no).15 G 4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502 (re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003 E F0(shell)4.003 E .009 -(option may be used to dynamically determine whether or not)144 559.2 R -F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters) -.15 F .659(by def)144 571.2 R(ault.)-.1 E F1(echo)5.659 E F0 .659 +(option may be used to dynamically determine whether or not)144 660 R F1 +(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters).15 +F .659(by def)144 672 R(ault.)-.1 E F1(echo)5.659 E F0 .659 (does not interpret)3.159 F F13.159 E F0 .659 (to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66 -(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 583.2 Q -F1(\\a)144 595.2 Q F0(alert \(bell\))28.22 E F1(\\b)144 607.2 Q F0 -(backspace)27.66 E F1(\\c)144 619.2 Q F0(suppress further output)28.78 E -F1(\\e)144 631.2 Q F0(an escape character)28.78 E F1(\\f)144 643.2 Q F0 -(form feed)29.89 E F1(\\n)144 655.2 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine) --2.5 E F1(\\r)144 667.2 Q F0(carriage return)28.78 E F1(\\t)144 679.2 Q -F0(horizontal tab)29.89 E F1(\\v)144 691.2 Q F0 -.15(ve)28.22 G -(rtical tab).15 E F1(\\\\)144 703.2 Q F0(backslash)30.44 E F1(\\0)144 -715.2 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E -(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0 -(\(zero to three octal digits\))2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20) -148.735 E(6)203.725 E 0 Cg EP +(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 684 Q F1 +(\\a)144 696 Q F0(alert \(bell\))28.22 E F1(\\b)144 708 Q F0(backspace) +27.66 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(6)203.725 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(\\x)144 84 Q/F2 10/Times-Italic@0 SF(HH)A F0 -(the eight-bit character whose v)13.78 E(alue is the he)-.25 E -(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh) --.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(enable)108 100.8 Q F0([)2.5 E -F1A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1-2.5 E F2 -(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278 -(Enable and disable b)144 112.8 R .278(uiltin shell commands.)-.2 F .278 -(Disabling a b)5.278 F .278(uiltin allo)-.2 F .278 -(ws a disk command which has)-.25 F .833(the same name as a shell b)144 -124.8 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834 -(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334 -(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 136.8 -R .989(uiltins before disk commands.)-.2 F(If)5.989 E F13.489 E F0 -.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581 -(abled; otherwise,)144 148.8 R F2(names)4.082 E F0 1.582(are enabled.) +/Times-Bold@0 SF(\\c)144 84 Q F0(suppress further output)28.78 E F1(\\e) +144 96 Q F0(an escape character)28.78 E F1(\\f)144 108 Q F0(form feed) +29.89 E F1(\\n)144 120 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r) +144 132 Q F0(carriage return)28.78 E F1(\\t)144 144 Q F0(horizontal tab) +29.89 E F1(\\v)144 156 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 +168 Q F0(backslash)30.44 E F1(\\0)144 180 Q/F2 10/Times-Italic@0 SF(nnn) +A F0(the eight-bit character whose v)13.22 E(alue is the octal v)-.25 E +(alue)-.25 E F2(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F1 +(\\x)144 192 Q F2(HH)A F0(the eight-bit character whose v)13.78 E +(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0 +(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1 +(enable)108 208.8 Q F0([)2.5 E F1A F0 2.5(][)C F1(\255dnps)-2.5 E +F0 2.5(][)C F1-2.5 E F2(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 +E F0(...])2.5 E .278(Enable and disable b)144 220.8 R .278 +(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278 +(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .833 +(the same name as a shell b)144 232.8 R .834(uiltin to be e)-.2 F -.15 +(xe)-.15 G .834(cuted without specifying a full pathname, e).15 F -.15 +(ve)-.25 G 3.334(nt).15 G(hough)-3.334 E .99 +(the shell normally searches for b)144 244.8 R .989 +(uiltins before disk commands.)-.2 F(If)5.989 E F13.489 E F0 .989 +(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581 +(abled; otherwise,)144 256.8 R F2(names)4.082 E F0 1.582(are enabled.) 4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F F1(test)4.082 E F0 1.582(binary found via the)4.082 F/F3 9/Times-Bold@0 -SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 160.8 +SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 268.8 R .081(uiltin v)-.2 F .081(ersion, run)-.15 F/F4 10/Courier@0 SF .081 (enable -n test)2.581 F F0 5.081(.T)C(he)-5.081 E F12.58 E F0 .08 -(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 172.8 S 1.524 +(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 280.8 S 1.524 (iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524 -(ystems that support dynamic loading.)-4.024 F(The)144 184.8 Q F1 +(ystems that support dynamic loading.)-4.024 F(The)144 292.8 Q F1 2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F .367(viously loaded with)-.25 F F12.866 E F0 5.366(.I)C 2.866(fn) -5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi) --.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 196.8 R F1 +-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 304.8 R F1 2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399 (uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4 F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144 -208.8 R 2.598(uiltins. If)-.2 F F12.598 E F0 .098 +316.8 R 2.598(uiltins. If)-.2 F F12.598 E F0 .098 (is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F (If)5.098 E F12.598 E F0 1.916 -(is supplied, the list printed includes all b)144 220.8 R 1.916 +(is supplied, the list printed includes all b)144 328.8 R 1.916 (uiltins, with an indication of whether or not each is)-.2 F 2.879 -(enabled. If)144 232.8 R F12.879 E F0 .379 +(enabled. If)144 340.8 R F12.879 E F0 .379 (is supplied, the output is restricted to the POSIX)2.879 F F2(special) 2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F -(alue)-.25 E .994(is 0 unless a)144 244.8 R F2(name)3.854 E F0 .994 +(alue)-.25 E .994(is 0 unless a)144 352.8 R F2(name)3.854 E F0 .994 (is not a shell b)3.674 F .994(uiltin or there is an error loading a ne) -.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144 -256.8 Q F1 -2.3 -.15(ev a)108 273.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 -E F0(...])2.5 E(The)144 285.6 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C +364.8 Q F1 -2.3 -.15(ev a)108 381.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 +E F0(...])2.5 E(The)144 393.6 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C .671(re read and concatenated together into a single command.)-3.171 F -.67(This command is then read)5.67 F .495(and e)144 297.6 R -.15(xe)-.15 +.67(This command is then read)5.67 F .495(and e)144 405.6 R -.15(xe)-.15 G .495(cuted by the shell, and its e).15 F .495 (xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15 (ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no) --2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 309.6 Q +-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 417.6 Q (guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1 -(exec)108 326.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1-2.5 E F2 +(exec)108 434.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1-2.5 E F2 (name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments) --.37 E F0(]])A(If)144 338.4 Q F2(command)3.006 E F0 .306 +-.37 E F0(]])A(If)144 446.4 Q F2(command)3.006 E F0 .306 (is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805 (wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E -(guments)-.37 E F0(become)3.075 E .176(the ar)144 350.4 R .176 +(guments)-.37 E F0(become)3.075 E .176(the ar)144 458.4 R .176 (guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G (he)-2.676 E F12.676 E F0 .176 (option is supplied, the shell places a dash at the be)2.676 F .177 -(ginning of)-.15 F .5(the zeroth ar)144 362.4 R .5(gument passed to)-.18 +(ginning of)-.15 F .5(the zeroth ar)144 470.4 R .5(gument passed to)-.18 F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F12.999 E F0 -.499(option causes)2.999 F F2(com-)3.199 E(mand)144 374.4 Q F0 .638 +.499(option causes)2.999 F F2(com-)3.199 E(mand)144 482.4 Q F0 .638 (to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138 (vironment. If)-.4 F F13.138 E F0 .638 (is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the) -3.319 F 1.078(zeroth ar)144 386.4 R 1.077(gument to the e)-.18 F -.15 +3.319 F 1.078(zeroth ar)144 494.4 R 1.077(gument to the e)-.18 F -.15 (xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0 1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a) -.15 F(non-interacti)144 398.4 Q .617 -.15(ve s)-.25 H .317(hell e).15 F +.15 F(non-interacti)144 506.4 Q .617 -.15(ve s)-.25 H .317(hell e).15 F .317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318 (is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505 -(ure. An)144 410.4 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005 +(ure. An)144 518.4 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005 (hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15 (xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005 -(is not speci\214ed,)3.275 F(an)144 422.4 Q 3.036(yr)-.15 G .536 +(is not speci\214ed,)3.275 F(an)144 530.4 Q 3.036(yr)-.15 G .536 (edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536 (ect in the current shell, and the return status is 0.).25 F .536 -(If there is a redirection)5.536 F(error)144 434.4 Q 2.5(,t)-.4 G -(he return status is 1.)-2.5 E F1(exit)108 451.2 Q F0([)2.5 E F2(n)A F0 +(If there is a redirection)5.536 F(error)144 542.4 Q 2.5(,t)-.4 G +(he return status is 1.)-2.5 E F1(exit)108 559.2 Q F0([)2.5 E F2(n)A F0 6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of) -.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095 (is omitted, the e)2.835 F .095(xit status is that of the last command) --.15 F -.15(exe)144 463.2 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5 +-.15 F -.15(exe)144 571.2 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E -F1(export)108 480 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 -E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 492 Q F0 -.256(The supplied)144 504 R F2(names)3.117 E F0 .257(are mark)3.027 F +F1(export)108 588 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 +E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 600 Q F0 +.256(The supplied)144 612 R F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257 (vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627 -(commands. If)144 516 R(the)2.627 E F12.627 E F0 .127 +(commands. If)144 624 R(the)2.627 E F12.627 E F0 .127 (option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F1 -144 528 Q F0 .659(option is supplied, a list of all names that are e) +144 636 Q F0 .659(option is supplied, a list of all names that are e) 3.159 F .66(xported in this shell is printed.)-.15 F(The)5.66 E F1 -3.16 E F0(option)3.16 E 1.587(causes the e)144 540 R 1.587 +3.16 E F0(option)3.16 E 1.587(causes the e)144 648 R 1.587 (xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586 (rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G -1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 552 Q F2 +1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 660 Q F2 (wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)-.25 F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1 (export)5.304 E F0 .304(returns an e)2.804 F .304 (xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294 -(option is encountered, one of the)144 564 R F2(names)2.793 E F0 .293 +(option is encountered, one of the)144 672 R F2(names)2.793 E F0 .293 (is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25 -F F12.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 576 -Q F0(that is not a function.)2.68 E F1(fc)108 592.8 Q F0([)2.5 E F1 +F F12.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36 684 +Q F0(that is not a function.)2.68 E F1(fc)108 700.8 Q F0([)2.5 E F1 A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2 -<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108 -604.8 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2 -(cmd)-2.5 E F0(])A .477(Fix Command.)144 616.8 R .478 +<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A(GNU Bash-4.0)72 +768 Q(2004 Apr 20)148.735 E(7)203.725 E 0 Cg EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF(fc \255s)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0 SF +(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2(cmd)-2.5 E F0(])A .477 +(Fix Command.)144 96 R .478 (In the \214rst form, a range of commands from)5.477 F F2<8c72>4.888 E (st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .478 -(is selected from the his-)3.658 F .882(tory list.)144 628.8 R F2 -.45 -(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882 +(is selected from the his-)3.658 F .882(tory list.)144 108 R F2 -.45(Fi) +5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882 (may be speci\214ed as a string \(to locate the last command be)4.062 F .881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144 -640.8 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F +120 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F -.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an) -.15 F(of)144 652.8 Q .277(fset from the current command number\).)-.25 F +.15 F(of)144 132 Q .277(fset from the current command number\).)-.25 F (If)5.277 E F2(last)2.867 E F0 .276 (is not speci\214ed it is set to the current command)3.457 F .092 -(for listing \(so that)144 664.8 R F4 .092(fc \255l \25510)2.592 F F0 -.092(prints the last 10 commands\) and to)2.592 F F2<8c72>4.502 E(st)-.1 -E F0 2.592(otherwise. If)3.272 F F2<8c72>4.502 E(st)-.1 E F0 .093 -(is not)3.273 F(speci\214ed it is set to the pre)144 676.8 Q -(vious command for editing and \25516 for listing.)-.25 E(The)144 700.8 -Q F12.522 E F0 .022 +(for listing \(so that)144 144 R/F3 10/Courier@0 SF .092 +(fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to) +2.592 F F2<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F2<8c72> +4.502 E(st)-.1 E F0 .093(is not)3.273 F +(speci\214ed it is set to the pre)144 156 Q +(vious command for editing and \25516 for listing.)-.25 E(The)144 180 Q +F12.522 E F0 .022 (option suppresses the command numbers when listing.)2.522 F(The)5.022 E F12.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022 -(rses the order of).15 F .438(the commands.)144 712.8 R .438(If the) -5.438 F F12.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438 +(rses the order of).15 F .438(the commands.)144 192 R .438(If the)5.438 +F F12.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438 (n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E -.335(the editor gi)144 724.8 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E -F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835 -(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 -F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G -(n,).15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(7)203.725 E 0 Cg -EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .63(the v) -144 84 R .63(alue of the)-.25 F/F1 9/Times-Bold@0 SF(FCEDIT)3.13 E F0 --.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25 F -F1(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F1(FCEDIT)3.131 E F0 .631 -(is not set.)2.881 F .631(If nei-)5.631 F 1.884(ther v)144 96 R 1.884 -(ariable is set, is used.)-.25 F 1.884 +.335(the editor gi)144 204 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E F2 +(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835(do) +.1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 F +(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G +(n,).15 E .63(the v)144 216 R .63(alue of the)-.25 F/F4 9/Times-Bold@0 +SF(FCEDIT)3.13 E F0 -.25(va)2.88 G .631(riable is used, and the v).25 F +.631(alue of)-.25 F F4(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F4(FCEDIT) +3.131 E F0 .631(is not set.)2.881 F .631(If nei-)5.631 F 1.884(ther v) +144 228 R 1.884(ariable is set, is used.)-.25 F 1.884 (When editing is complete, the edited commands are echoed and)6.884 F --.15(exe)144 108 S(cuted.).15 E .039(In the second form,)144 132 R/F2 10 -/Times-Italic@0 SF(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 -G .039(cuted after each instance of).15 F F2(pat)2.54 E F0 .04 -(is replaced by)2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful) --2.5 E .406(alias to use with this is)144 144 R/F3 10/Courier@0 SF .406 -(r='fc \255s')2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing) --2.906 F F3 6.406(rc)2.906 G(c)-6.406 E F0 .406 -(runs the last command be)2.906 F .406(ginning with)-.15 F F3(cc)144 156 -Q F0(and typing)2.5 E F3(r)2.5 E F0(re-e)2.5 E -.15(xe)-.15 G -(cutes the last command.).15 E .142 -(If the \214rst form is used, the return v)144 180 R .142 +-.15(exe)144 240 S(cuted.).15 E .039(In the second form,)144 264 R F2 +(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 G .039 +(cuted after each instance of).15 F F2(pat)2.54 E F0 .04(is replaced by) +2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)-2.5 E .406 +(alias to use with this is)144 276 R F3 .406(r='fc \255s')2.906 F F0 +2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F3 6.406(rc)2.906 +G(c)-6.406 E F0 .406(runs the last command be)2.906 F .406(ginning with) +-.15 F F3(cc)144 288 Q F0(and typing)2.5 E F3(r)2.5 E F0(re-e)2.5 E -.15 +(xe)-.15 G(cutes the last command.).15 E .142 +(If the \214rst form is used, the return v)144 312 R .142 (alue is 0 unless an in)-.25 F -.25(va)-.4 G .142 (lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322 -E F2(last)2.732 E F0 .455(specify history lines out of range.)144 192 R -.454(If the)5.454 F/F4 10/Times-Bold@0 SF2.954 E F0 .454 +E F2(last)2.732 E F0 .455(specify history lines out of range.)144 324 R +.454(If the)5.454 F F12.954 E F0 .454 (option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454 -(alue of the)-.25 F .787(last command e)144 204 R -.15(xe)-.15 G .787 +(alue of the)-.25 F .787(last command e)144 336 R -.15(xe)-.15 G .787 (cuted or f).15 F .788 (ailure if an error occurs with the temporary \214le of commands.)-.1 F .788(If the)5.788 F 1.136 (second form is used, the return status is that of the command re-e)144 -216 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135 -(does not)4.405 F(specify a v)144 228 Q -(alid history line, in which case)-.25 E F4(fc)2.5 E F0(returns f)2.5 E -(ailure.)-.1 E F4(fg)108 244.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume) -144 256.8 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413 +348 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135 +(does not)4.405 F(specify a v)144 360 Q +(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E +(ailure.)-.1 E F1(fg)108 376.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume) +144 388.8 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413 (ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413 (he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0 -1.414(is not present, the)4.223 F(shell')144 268.8 Q 3.117(sn)-.55 G +1.414(is not present, the)4.223 F(shell')144 400.8 Q 3.117(sn)-.55 G .617(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617 (is used.)3.117 F .617(The return v)5.617 F .616 -(alue is that of the command placed into the)-.25 F(fore)144 280.8 Q +(alue is that of the command placed into the)-.25 F(fore)144 412.8 Q .362(ground, or f)-.15 F .362 (ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .363 -(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 292.8 Q +(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 424.8 Q F0 .004(does not specify a v)2.815 F .004(alid job or)-.25 F F2(jobspec) 4.244 E F0 .004(speci\214es a job that w)2.814 F .004 -(as started without job control.)-.1 F F4(getopts)108 309.6 Q F2 -(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F4(getopts)144 -321.6 Q F0 .793 +(as started without job control.)-.1 F F1(getopts)108 441.6 Q F2 +(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144 +453.6 Q F0 .793 (is used by shell procedures to parse positional parameters.)3.293 F F2 (optstring)6.023 E F0 .793(contains the option)3.513 F .15 -(characters to be recognized; if a character is follo)144 333.6 R .149 +(characters to be recognized; if a character is follo)144 465.6 R .149 (wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449 --.15(ve a)-.2 H(n).15 E(ar)144 345.6 Q .578 +-.15(ve a)-.2 H(n).15 E(ar)144 477.6 Q .578 (gument, which should be separated from it by white space.)-.18 F .579 (The colon and question mark char)5.579 F(-)-.2 E 1.665 -(acters may not be used as option characters.)144 357.6 R 1.665 -(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F4(getopts) +(acters may not be used as option characters.)144 489.6 R 1.665 +(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts) 4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796 -(option in the shell v)144 369.6 R(ariable)-.25 E F2(name)3.296 E F0 +(option in the shell v)144 501.6 R(ariable)-.25 E F2(name)3.296 E F0 3.296(,i).18 G(nitializing)-3.296 E F2(name)3.657 E F0 .797 (if it does not e)3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G -3.297(ft)-3.297 G .797(he ne)-3.297 F(xt)-.15 E(ar)144 381.6 Q .085 -(gument to be processed into the v)-.18 F(ariable)-.25 E F1(OPTIND)2.585 -E/F5 9/Times-Roman@0 SF(.)A F1(OPTIND)4.585 E F0 .085 +3.297(ft)-3.297 G .797(he ne)-3.297 F(xt)-.15 E(ar)144 513.6 Q .085 +(gument to be processed into the v)-.18 F(ariable)-.25 E F4(OPTIND)2.585 +E/F5 9/Times-Roman@0 SF(.)A F4(OPTIND)4.585 E F0 .085 (is initialized to 1 each time the shell)2.335 F .845 -(or a shell script is in)144 393.6 R -.2(vo)-.4 G -.1(ke).2 G 3.345 -(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F4 +(or a shell script is in)144 525.6 R -.2(vo)-.4 G -.1(ke).2 G 3.345 +(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F1 (getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804 -(into the v)144 405.6 R(ariable)-.25 E F1(OPT)3.304 E(ARG)-.81 E F5(.)A -F0 .803(The shell does not reset)5.304 F F1(OPTIND)3.303 E F0 .803 +(into the v)144 537.6 R(ariable)-.25 E F4(OPT)3.304 E(ARG)-.81 E F5(.)A +F0 .803(The shell does not reset)5.304 F F4(OPTIND)3.303 E F0 .803 (automatically; it must be manually)3.053 F .293 -(reset between multiple calls to)144 417.6 R F4(getopts)2.793 E F0 .293 +(reset between multiple calls to)144 549.6 R F1(getopts)2.793 E F0 .293 (within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F -2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 429.6 -Q 2.044(When the end of options is encountered,)144 453.6 R F4(getopts) +2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 561.6 +Q 2.044(When the end of options is encountered,)144 585.6 R F1(getopts) 4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043 -(alue greater than zero.)-.25 F F4(OPTIND)144 465.6 Q F0 -(is set to the inde)2.5 E 2.5(xo)-.15 G 2.5(ft)-2.5 G -(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F4(name)2.5 E F0 -(is set to ?.)2.5 E F4(getopts)144 489.6 Q F0 2.392 +(alue greater than zero.)-.25 F F4(OPTIND)144 597.6 Q F0 +(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G +(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0 +(is set to ?.)2.5 E F1(getopts)144 621.6 Q F0 2.392 (normally parses the positional parameters, b)4.892 F 2.392 (ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893 -(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F4(getopts)144 -501.6 Q F0(parses those instead.)2.5 E F4(getopts)144 525.6 Q F0 1.166 +(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F1(getopts)144 +633.6 Q F0(parses those instead.)2.5 E F1(getopts)144 657.6 Q F0 1.166 (can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F 1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.165 (is a colon,)3.885 F F2(silent)4.005 E F0(error)4.345 E 1.263 -(reporting is used.)144 537.6 R 1.263 +(reporting is used.)144 669.6 R 1.263 (In normal operation diagnostic messages are printed when in)6.263 F -.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144 -549.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F -(ariable)-.25 E F1(OPTERR)2.894 E F0 .394 -(is set to 0, no error messages)2.644 F(will be displayed, e)144 561.6 Q +681.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F +(ariable)-.25 E F4(OPTERR)2.894 E F0 .394 +(is set to 0, no error messages)2.644 F(will be displayed, e)144 693.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E -F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 585.6 R --.25(va)-.4 G .666(lid option is seen,).25 F F4(getopts)3.166 E F0 .667 +F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 717.6 R +-.25(va)-.4 G .666(lid option is seen,).25 F F1(getopts)3.166 E F0 .667 (places ? into)3.167 F F2(name)3.527 E F0 .667 (and, if not silent, prints an error message)3.347 F .4(and unsets)144 -597.6 R F1(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F4(getopts)2.899 E -F0 .399(is silent, the option character found is placed in)2.899 F F1 -(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F -(diagnostic message is printed.)144 609.6 Q 1.241(If a required ar)144 -633.6 R 1.241(gument is not found, and)-.18 F F4(getopts)3.741 E F0 -1.241(is not silent, a question mark \()3.741 F F4(?).833 E F0 3.742 -(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F2(name)144 645.6 -Q F0(,).18 E F1(OPT)2.735 E(ARG)-.81 E F0 .234 -(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F4 -(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F4(:).833 E -F0(\)).833 E(is placed in)144 657.6 Q F2(name)2.86 E F0(and)2.68 E F1 -(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F4 -(getopts)144 681.6 Q F0 .902 -(returns true if an option, speci\214ed or unspeci\214ed, is found.) -3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F -(options is encountered or an error occurs.)144 693.6 Q(GNU Bash-4.0)72 -768 Q(2004 Apr 20)148.735 E(8)203.725 E 0 Cg EP +729.6 R F4(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F1(getopts)2.899 E +F0 .399(is silent, the option character found is placed in)2.899 F F4 +(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F(GNU Bash-4.0)72 768 Q +(2004 Apr 20)148.735 E(8)203.725 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(hash)108 84 Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1 --2.5 E/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)C F1 -(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo)144 96 S 3.555 -(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555(,t).18 G 1.054(he full \ -\214le name of the command is determined by searching the directories i\ -n)-3.555 F F1($P)144 108 Q -.95(AT)-.74 G(H).95 E F0 .349 -(and remembered.)2.849 F .349(If the)5.349 F F12.849 E F0 .349 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E +(diagnostic message is printed.)144 84 Q 1.241(If a required ar)144 108 +R 1.241(gument is not found, and)-.18 F/F1 10/Times-Bold@0 SF(getopts) +3.741 E F0 1.241(is not silent, a question mark \()3.741 F F1(?).833 E +F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F/F2 10 +/Times-Italic@0 SF(name)144 120 Q F0(,).18 E/F3 9/Times-Bold@0 SF(OPT) +2.735 E(ARG)-.81 E F0 .234 +(is unset, and a diagnostic message is printed.)2.485 F(If)5.234 E F1 +(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F1(:).833 E +F0(\)).833 E(is placed in)144 132 Q F2(name)2.86 E F0(and)2.68 E F3(OPT) +2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F1 +(getopts)144 156 Q F0 .902 +(returns true if an option, speci\214ed or unspeci\214ed, is found.) +3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F +(options is encountered or an error occurs.)144 168 Q F1(hash)108 184.8 +Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1-2.5 E F2(\214lename)2.5 E +F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A -.15(Fo) +144 196.8 S 3.555(re).15 G(ach)-3.555 E F2(name)3.555 E F0 3.555(,t).18 +G 1.054(he full \214le name of the command is determined by searching t\ +he directories in)-3.555 F F1($P)144 208.8 Q -.95(AT)-.74 G(H).95 E F0 +.349(and remembered.)2.849 F .349(If the)5.349 F F12.849 E F0 .349 (option is supplied, no path search is performed, and)2.849 F F2 (\214lename)4.76 E F0 .452 -(is used as the full \214le name of the command.)144 120 R(The)5.452 E +(is used as the full \214le name of the command.)144 220.8 R(The)5.452 E F12.952 E F0 .452(option causes the shell to for)2.952 F .452 -(get all remem-)-.18 F .592(bered locations.)144 132 R(The)5.592 E F1 +(get all remem-)-.18 F .592(bered locations.)144 232.8 R(The)5.592 E F1 3.092 E F0 .593(option causes the shell to for)3.092 F .593 (get the remembered location of each)-.18 F F2(name)3.093 E F0(.)A .021 -(If the)144 144 R F12.521 E F0 .021 +(If the)144 244.8 R F12.521 E F0 .021 (option is supplied, the full pathname to which each)2.521 F F2(name) 2.52 E F0 .02(corresponds is printed.)2.52 F .02(If multi-)5.02 F(ple) -144 156 Q F2(name)3.703 E F0(ar)3.703 E 1.203(guments are supplied with) --.18 F F13.703 E F0 3.703(,t)C(he)-3.703 E F2(name)3.703 E F0 -1.204(is printed before the hashed full pathname.)3.703 F(The)144 168 Q -F13.216 E F0 .715(option causes output to be displayed in a forma\ -t that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E -1.183(ments are gi)144 180 R -.15(ve)-.25 G 1.183(n, or if only).15 F F1 -3.683 E F0 1.184 +144 256.8 Q F2(name)3.703 E F0(ar)3.703 E 1.203 +(guments are supplied with)-.18 F F13.703 E F0 3.703(,t)C(he) +-3.703 E F2(name)3.703 E F0 1.204 +(is printed before the hashed full pathname.)3.703 F(The)144 268.8 Q F1 +3.216 E F0 .715(option causes output to be displayed in a format \ +that may be reused as input.)3.216 F .715(If no ar)5.715 F(gu-)-.18 E +1.183(ments are gi)144 280.8 R -.15(ve)-.25 G 1.183(n, or if only).15 F +F13.683 E F0 1.184 (is supplied, information about remembered commands is printed.)3.684 F -(The return status is true unless a)144 192 Q F2(name)2.86 E F0 +(The return status is true unless a)144 292.8 Q F2(name)2.86 E F0 (is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25 -E F1(help)108 208.8 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern) --2.5 E F0(])A .867(Display helpful information about b)144 220.8 R .867 +E F1(help)108 309.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern) +-2.5 E F0(])A .867(Display helpful information about b)144 321.6 R .867 (uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .866 (is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25 G 3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144 -232.8 R F2(pattern)2.806 E F0 2.807(;o).24 G .307 +333.6 R F2(pattern)2.806 E F0 2.807(;o).24 G .307 (therwise help for all the b)-2.807 F .307 -(uiltins and shell control struc-)-.2 F(tures is printed.)144 244.8 Q F1 -144 256.8 Q F0(Display a short description of each)24.74 E F2 -(pattern)2.5 E F1(-m)146.5 268.8 Q F0(Display the description of each) -21.84 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat) --2.5 E F1144 280.8 Q F0 +(uiltins and shell control struc-)-.2 F(tures is printed.)144 345.6 Q F1 +144 357.6 Q F0(Display a short description of each)24.74 E F2 +(pattern)2.5 E F1144 369.6 Q F0(Display the description of each) +21.97 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat) +-2.5 E F1144 381.6 Q F0 (Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E -F0(The return status is 0 unless no command matches)108 292.8 Q F2 -(pattern)2.5 E F0(.).24 E F1(history [)108 309.6 Q F2(n)A F1(])A -(history \255c)108 321.6 Q(history \255d)108 333.6 Q F2(of)2.5 E(fset) --.18 E F1(history \255anrw)108 345.6 Q F0([)2.5 E F2(\214lename)A F0(])A -F1(history \255p)108 357.6 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5 -(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 369.6 Q F2(ar)2.5 E(g) +F0(The return status is 0 unless no command matches)108 393.6 Q F2 +(pattern)2.5 E F0(.).24 E F1(history [)108 410.4 Q F2(n)A F1(])A +(history \255c)108 422.4 Q(history \255d)108 434.4 Q F2(of)2.5 E(fset) +-.18 E F1(history \255anrw)108 446.4 Q F0([)2.5 E F2(\214lename)A F0(])A +F1(history \255p)108 458.4 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5 +(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 470.4 Q F2(ar)2.5 E(g) -.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 -381.6 S .752 +482.4 S .752 (th no options, display the command history list with line numbers.).4 F .752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2 -G 1.23(been modi\214ed.)144 393.6 R 1.23(An ar)6.23 F 1.23(gument of) --.18 F F2(n)4.09 E F0 1.231(lists only the last)3.97 F F2(n)4.091 E F0 -3.731(lines. If)3.971 F 1.231(the shell v)3.731 F(ariable)-.25 E F1 -(HISTTIME-)3.731 E(FORMA)144 405.6 Q(T)-.95 E F0 .25 -(is set and not null, it is used as a format string for)2.75 F F2 -(strftime)2.749 E F0 .249(\(3\) to display the time stamp)B .378 -(associated with each displayed history entry)144 417.6 R 5.378(.N)-.65 -G 2.878(oi)-5.378 G(nterv)-2.878 E .379 -(ening blank is printed between the format-)-.15 F .815 -(ted time stamp and the history line.)144 429.6 R(If)5.814 E F2 -(\214lename)3.314 E F0 .814 -(is supplied, it is used as the name of the history)3.314 F -(\214le; if not, the v)144 441.6 Q(alue of)-.25 E/F3 9/Times-Bold@0 SF -(HISTFILE)2.5 E F0(is used.)2.25 E(Options, if supplied, ha)5 E .3 -.15 -(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1144 453.6 Q F0 +G .38(been modi\214ed.)144 494.4 R .38(An ar)5.38 F .38(gument of)-.18 F +F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88 +(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E F3(HISTTIMEFOR-) +2.881 E(MA)144 506.4 Q(T)-.855 E F0 .265 +(is set and not null, it is used as a format string for)2.515 F F2 +(strftime)2.764 E F0 .264(\(3\) to display the time stamp asso-)B 1.019 +(ciated with each displayed history entry)144 518.4 R 6.019(.N)-.65 G +3.519(oi)-6.019 G(nterv)-3.519 E 1.019 +(ening blank is printed between the formatted)-.15 F .176 +(time stamp and the history line.)144 530.4 R(If)5.176 E F2(\214lename) +2.676 E F0 .176 +(is supplied, it is used as the name of the history \214le; if)2.676 F +(not, the v)144 542.4 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.) +2.25 E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F1144 554.4 Q F0 (Clear the history list by deleting all the entries.)25.86 E F1144 -465.6 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position) -180 477.6 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1144 489.6 Q F0 .598 +566.4 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position) +180 578.4 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1144 590.4 Q F0 .598 (Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598 (istory lines \(history lines entered since the be)-3.098 F .599 -(ginning of the current)-.15 F F1(bash)180 501.6 Q F0 -(session\) to the history \214le.)2.5 E F1144 513.6 Q F0 .854(Rea\ +(ginning of the current)-.15 F F1(bash)180 602.4 Q F0 +(session\) to the history \214le.)2.5 E F1144 614.4 Q F0 .854(Rea\ d the history lines not already read from the history \214le into the c\ urrent history list.)24.74 F .772 -(These are lines appended to the history \214le since the be)180 525.6 R +(These are lines appended to the history \214le since the be)180 626.4 R .773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E -(sion.)180 537.6 Q F1144 549.6 Q F0(Read the contents of the hist\ +(sion.)180 638.4 Q F1144 650.4 Q F0(Read the contents of the hist\ ory \214le and use them as the current history)25.86 E(.)-.65 E F1 -144 561.6 Q F0(Write the current history to the history \214le, o)23.08 +144 662.4 Q F0(Write the current history to the history \214le, o)23.08 E -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G -(ontents.)-2.5 E F1144 573.6 Q F0 .626 +(ontents.)-2.5 E F1144 674.4 Q F0 .626 (Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar) 3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F -2.975(output. Does)180 585.6 R .475 +2.975(output. Does)180 686.4 R .475 (not store the results in the history list.)2.975 F(Each)5.475 E F2(ar) 2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F -(normal history e)180 597.6 Q(xpansion.)-.15 E F1144 609.6 Q F0 +(normal history e)180 698.4 Q(xpansion.)-.15 E F1144 710.4 Q F0 .363(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363 (in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362 -(he last command in the history list is)-5.363 F(remo)180 621.6 Q -.15 +(he last command in the history list is)-5.363 F(remo)180 722.4 Q -.15 (ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0 -(are added.)2.77 E .28(If the)144 638.4 R F1(HISTTIMEFORMA)2.78 E(T)-.95 -E F0 .28 -(is set, the time stamp information associated with each history entry) -2.78 F .54(is written to the history \214le, mark)144 650.4 R .539 -(ed with the history comment character)-.1 F 5.539(.W)-.55 G .539 -(hen the history \214le is)-5.539 F 1.778(read, lines be)144 662.4 R -1.778(ginning with the history comment character follo)-.15 F 1.779 -(wed immediately by a digit are)-.25 F 1.424 -(interpreted as timestamps for the pre)144 674.4 R 1.424 -(vious history line.)-.25 F 1.424(The return v)6.424 F 1.424 -(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\ -ncountered, an error occurs while reading or writing the history \214le\ -, an in)144 686.4 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is) -3 E(supplied as an ar)144 698.4 Q(gument to)-.18 E F12.5 E F0 2.5 -(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15 -E(gument to)-.18 E F12.5 E F0 -.1(fa)2.5 G(ils.).1 E(GNU Bash-4.0) -72 768 Q(2004 Apr 20)148.735 E(9)203.725 E 0 Cg EP +(are added.)2.77 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(9)203.725 +E 0 Cg EP %%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(jobs)108 84 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C/F2 -10/Times-Italic@0 SF(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 96 Q F2 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .145(If the) +144 84 R/F1 9/Times-Bold@0 SF(HISTTIMEFORMA)2.645 E(T)-.855 E F0 -.25 +(va)2.395 G .145 +(riable is set, the time stamp information associated with each history) +.25 F .669(entry is written to the history \214le, mark)144 96 R .669 +(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668 +(hen the history)-5.668 F .955(\214le is read, lines be)144 108 R .956 +(ginning with the history comment character follo)-.15 F .956 +(wed immediately by a digit)-.25 F .416 +(are interpreted as timestamps for the pre)144 120 R .416 +(vious history line.)-.25 F .416(The return v)5.416 F .415 +(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\ +ncountered, an error occurs while reading or writing the history \214le\ +, an in)144 132 R -.25(va)-.4 G(lid).25 E/F2 10/Times-Italic@0 SF(of)3 E +(fset)-.18 E F0(is)3 E(supplied as an ar)144 144 Q(gument to)-.18 E/F3 +10/Times-Bold@0 SF2.5 E F0 2.5(,o)C 2.5(rt)-2.5 G(he history e) +-2.5 E(xpansion supplied as an ar)-.15 E(gument to)-.18 E F32.5 E +F0 -.1(fa)2.5 G(ils.).1 E F3(jobs)108 160.8 Q F0([)2.5 E F3(\255lnprs)A +F0 2.5(][)C F2(jobspec)A F0(... ])2.5 E F3(jobs \255x)108 172.8 Q F2 (command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37 E F0(... ])2.5 E -(The \214rst form lists the acti)144 108 Q .3 -.15(ve j)-.25 H 2.5 +(The \214rst form lists the acti)144 184.8 Q .3 -.15(ve j)-.25 H 2.5 (obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E -(wing meanings:)-.25 E F1144 120 Q F0 -(List process IDs in addition to the normal information.)27.52 E F1 -144 132 Q F0(List only the process ID of the job')24.74 E 2.5(sp) --.55 G(rocess group leader)-2.5 E(.)-.55 E F1144 144 Q F0 .194 -(Display information only about jobs that ha)24.74 F .494 -.15(ve c)-.2 -H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F -(\214ed of their status.)180 156 Q F1144 168 Q F0 -(Restrict output to running jobs.)25.86 E F1144 180 Q F0 -(Restrict output to stopped jobs.)26.41 E(If)144 196.8 Q F2(jobspec) +(wing meanings:)-.25 E F3144 196.8 Q F0 +(List process IDs in addition to the normal information.)27.52 E F3 +144 208.8 Q F0(List only the process ID of the job')24.74 E 2.5 +(sp)-.55 G(rocess group leader)-2.5 E(.)-.55 E F3144 220.8 Q F0 +.194(Display information only about jobs that ha)24.74 F .494 -.15(ve c) +-.2 H .193(hanged status since the user w).15 F .193(as last noti-)-.1 F +(\214ed of their status.)180 232.8 Q F3144 244.8 Q F0 +(Restrict output to running jobs.)25.86 E F3144 256.8 Q F0 +(Restrict output to stopped jobs.)26.41 E(If)144 273.6 Q F2(jobspec) 4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313 (n, output is restricted to information about that job).15 F 5.314(.T) --.4 G .314(he return status is 0 unless)-5.314 F(an in)144 208.8 Q -.25 +-.4 G .314(he return status is 0 unless)-5.314 F(an in)144 285.6 Q -.25 (va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25 -E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 225.6 R F1 -2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0 +E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 302.4 R F3 +2.895 E F0 .394(option is supplied,)2.894 F F3(jobs)2.894 E F0 .394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in) 3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394 -(with the corre-)3.164 F(sponding process group ID, and e)144 237.6 Q +(with the corre-)3.164 F(sponding process group ID, and e)144 314.4 Q -.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar) 2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E -F1(kill)108 254.4 Q F0([)2.5 E F1A F2(sigspec)2.5 E F0(|)2.5 E F1 -2.5 E F2(signum)2.5 E F0(|)2.5 E F12.5 E F2(sigspec)A F0 2.5 -(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1 -(kill \255l)108 266.4 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 -G(it_status).2 E F0(])A .119(Send the signal named by)144 278.4 R F2 +F3(kill)108 331.2 Q F0([)2.5 E F3A F2(sigspec)2.5 E F0(|)2.5 E F3 +2.5 E F2(signum)2.5 E F0(|)2.5 E F32.5 E F2(sigspec)A F0 2.5 +(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F3 +(kill \255l)108 343.2 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 +G(it_status).2 E F0(])A .119(Send the signal named by)144 355.2 R F2 (sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119 (to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2 (jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319 -(either a case-insensiti)144 290.4 R .619 -.15(ve s)-.25 H .319 -(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.819 E F0 .318 -(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318 -(pre\214x\) or a signal)2.568 F(number;)144 302.4 Q F2(signum)4.188 E F0 +(either a case-insensiti)144 367.2 R .619 -.15(ve s)-.25 H .319 +(ignal name such as).15 F F1(SIGKILL)2.819 E F0 .318 +(\(with or without the)2.569 F F1(SIG)2.818 E F0 .318 +(pre\214x\) or a signal)2.568 F(number;)144 379.2 Q F2(signum)4.188 E F0 1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec) -4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0 -1.349(is assumed.)3.599 F(An)6.349 E(ar)144 314.4 Q .523(gument of)-.18 -F F13.023 E F0 .523(lists the signal names.)3.023 F .523(If an) +4.189 E F0 1.349(is not present, then)4.159 F F1(SIGTERM)3.849 E F0 +1.349(is assumed.)3.599 F(An)6.349 E(ar)144 391.2 Q .523(gument of)-.18 +F F33.023 E F0 .523(lists the signal names.)3.023 F .523(If an) 5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when) -.18 F F13.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523 -(n, the names).15 F .28(of the signals corresponding to the ar)144 326.4 +.18 F F33.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523 +(n, the names).15 F .28(of the signals corresponding to the ar)144 403.2 R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E -F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 338.4 Q .378(gument to)-.18 F -F12.878 E F0 .378 +F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 415.2 Q .378(gument to)-.18 F +F32.878 E F0 .378 (is a number specifying either a signal number or the e)2.878 F .377 -(xit status of a process termi-)-.15 F .593(nated by a signal.)144 350.4 -R F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F +(xit status of a process termi-)-.15 F .593(nated by a signal.)144 427.2 +R F3(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F .593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F -(occurs or an in)144 362.4 Q -.25(va)-.4 G(lid option is encountered.) -.25 E F1(let)108 379.2 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 -E F0(...])2.5 E(Each)144 391.2 Q F2(ar)3.965 E(g)-.37 E F0 1.135 -(is an arithmetic e)3.855 F 1.134(xpression to be e)-.15 F -.25(va)-.25 -G 1.134(luated \(see).25 F F3 1.134(ARITHMETIC EV)3.634 F(ALU)-1.215 E --.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(\).)A F0 1.134(If the) -5.634 F(last)144 403.2 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G -(luates to 0,).25 E F1(let)2.5 E F0(returns 1; 0 is returned otherwise.) -2.5 E F1(local)108 420 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name)-2.5 -E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 432 S 2.56(re) -.15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06(ariable named) --.25 F F2(name)2.92 E F0 .06(is created, and assigned)2.74 F F2(value) -2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0 .06(can be)2.56 F -(an)144 444 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653 -(he options accepted by)-3.153 F F1(declar)3.153 E(e)-.18 E F0 5.652(.W) -C(hen)-5.652 E F1(local)3.152 E F0 .652 +(occurs or an in)144 439.2 Q -.25(va)-.4 G(lid option is encountered.) +.25 E F3(let)108 456 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E +F0(...])2.5 E(Each)144 468 Q F2(ar)3.027 E(g)-.37 E F0 .197 +(is an arithmetic e)2.917 F .197(xpression to be e)-.15 F -.25(va)-.25 G +.196(luated \(see).25 F F1 .196(ARITHMETIC EV)2.696 F(ALU)-1.215 E -.855 +(AT)-.54 G(ION).855 E F0(abo)2.446 E -.15(ve)-.15 G 2.696(\). If).15 F +(the last)144 480 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G +(luates to 0,).25 E F3(let)2.5 E F0(returns 1; 0 is returned otherwise.) +2.5 E F3(local)108 496.8 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name) +-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 508.8 S +2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06 +(ariable named)-.25 F F2(name)2.92 E F0 .06(is created, and assigned) +2.74 F F2(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0 +.06(can be)2.56 F(an)144 520.8 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653 +(he options accepted by)-3.153 F F3(declar)3.153 E(e)-.18 E F0 5.652(.W) +C(hen)-5.652 E F3(local)3.152 E F0 .652 (is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144 -456 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861 +532.8 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861 (isible scope restricted to that function and its children.).15 F -.4 -(Wi)5.861 G .861(th no operands,).4 F F1(local)144 468 Q F0 1.165 +(Wi)5.861 G .861(th no operands,).4 F F3(local)144 544.8 Q F0 1.165 (writes a list of local v)3.665 F 1.165 (ariables to the standard output.)-.25 F 1.165(It is an error to use) -6.165 F F1(local)3.664 E F0 1.164(when not)3.664 F .232 -(within a function.)144 480 R .233(The return status is 0 unless)5.232 F -F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F -.25 -(va)-.4 G(lid).25 E F2(name)3.093 E F0(is)2.913 E(supplied, or)144 492 Q -F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108 -508.8 Q F0(Exit a login shell.)9.33 E F1(map\214le)108 525.6 Q F0([)2.5 -E F1A F2(count)2.5 E F0 2.5(][)C F1-2.5 E F2(origin)2.5 E F0 -2.5(][)C F1-2.5 E F2(count)2.5 E F0 2.5(][)C F1-2.5 E F0 2.5 -(][)C F1-2.5 E F2(fd)2.5 E F0 2.5(][)C F1-2.5 E F2(callbac) -2.5 E(k)-.2 E F0 2.5(][)C F1-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2 -(arr)-2.5 E(ay)-.15 E F0(])A F1 -.18(re)108 537.6 S(adarray).18 E F0([) -2.5 E F1A F2(count)2.5 E F0 2.5(][)C F1-2.5 E F2(origin)2.5 -E F0 2.5(][)C F1-2.5 E F2(count)2.5 E F0 2.5(][)C F1-2.5 E -F0 2.5(][)C F1-2.5 E F2(fd)2.5 E F0 2.5(][)C F1-2.5 E F2 -(callbac)2.5 E(k)-.2 E F0 2.5(][)C F1-2.5 E F2(quantum)2.5 E F0 -2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A 1.006 -(Read lines from the standard input into array v)144 549.6 R(ariable) --.25 E F2(arr)3.506 E(ay)-.15 E F0 3.506(,o).32 G 3.506(rf)-3.506 G -1.006(rom \214le descriptor)-3.506 F F2(fd)3.506 E F0 1.005(if the)3.506 -F F13.505 E F0 1.086(option is supplied.)144 561.6 R 1.086(The v) -6.086 F(ariable)-.25 E F1(MAPFILE)3.586 E F0 1.086(is the def)3.586 F -(ault)-.1 E F2(arr)3.587 E(ay)-.15 E F0 6.087(.O)C 1.087 -(ptions, if supplied, ha)-6.087 F 1.387 -.15(ve t)-.2 H(he).15 E(follo) -144 573.6 Q(wing meanings:)-.25 E F1144 585.6 Q F0(Cop)24.74 E 2.5 -(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18 -F F2(count)2.5 E F0(is 0, all lines are copied.)2.5 E F1144 597.6 -Q F0(Be)22.52 E(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0 -(at inde)2.82 E(x)-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E -(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1144 609.6 -Q F0(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F1 -144 621.6 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H -(railing line from each line read.).15 E F1144 633.6 Q F0 +6.165 F F3(local)3.664 E F0 1.164(when not)3.664 F .232 +(within a function.)144 556.8 R .233(The return status is 0 unless)5.232 +F F3(local)2.733 E F0 .233(is used outside a function, an in)2.733 F +-.25(va)-.4 G(lid).25 E F2(name)3.093 E F0(is)2.913 E(supplied, or)144 +568.8 Q F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F3 +(logout)108 585.6 Q F0(Exit a login shell.)9.33 E F3(map\214le)108 602.4 +Q F0([)2.5 E F3A F2(count)2.5 E F0 2.5(][)C F3-2.5 E F2 +(origin)2.5 E F0 2.5(][)C F3-2.5 E F2(count)2.5 E F0 2.5(][)C F3 +-2.5 E F0 2.5(][)C F3-2.5 E F2(fd)2.5 E F0 2.5(][)C F3 +-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)C F3-2.5 E F2(quantum) +2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A F3 -.18(re)108 614.4 S +(adarray).18 E F0([)2.5 E F3A F2(count)2.5 E F0 2.5(][)C F3 +-2.5 E F2(origin)2.5 E F0 2.5(][)C F3-2.5 E F2(count)2.5 E F0 2.5 +(][)C F3-2.5 E F0 2.5(][)C F3-2.5 E F2(fd)2.5 E F0 2.5(][)C +F3-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)C F3-2.5 E F2 +(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A .351 +(Read lines from the standard input into the inde)144 626.4 R -.15(xe) +-.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F2(arr)2.85 E +(ay)-.15 E F0 2.85(,o).32 G 2.85(rf)-2.85 G .35(rom \214le descriptor) +-2.85 F F2(fd)2.85 E F0 1.248(if the)144 638.4 R F33.748 E F0 +1.248(option is supplied.)3.748 F 1.249(The v)6.249 F(ariable)-.25 E F1 +(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 E F2(arr)3.749 E +(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)-6.249 F(ha)144 +650.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F3 +144 662.4 Q F0(Cop)24.74 E 2.5(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F2 +(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)2.5 E F0 +(is 0, all lines are copied.)2.5 E F3144 674.4 Q F0(Be)22.52 E +(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82 E(x) +-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5(xi) +-.15 G 2.5(s0)-2.5 G(.)-2.5 E F3144 686.4 Q F0 +(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F3 +144 698.4 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E +(wline from each line read.)-.25 E F3144 710.4 Q F0 (Read lines from \214le descriptor)24.74 E F2(fd)2.5 E F0 -(instead of the standard input.)2.5 E F1144 645.6 Q F0(Ev)23.08 E -(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2(quantum) +(instead of the standard input.)2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20) +148.735 E(10)198.725 E 0 Cg EP +%%Page: 11 11 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF144 84 Q F0(Ev)23.08 E(aluate)-.25 E/F2 10 +/Times-Italic@0 SF(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2(quantum) 2.5 E F0(lines are read.)2.5 E(The)5 E F12.5 E F0 -(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1144 657.6 -Q F0(Specify the number of lines read between each call to)25.86 E F2 -(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F12.968 E F0 .467 +(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1144 96 Q +F0(Specify the number of lines read between each call to)25.86 E F2 +(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 112.8 Q F12.968 E F0 .467 (is speci\214ed without)2.967 F F12.967 E F0 2.967(,t)C .467 (he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2 (callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467 -(luated, it is sup-).25 F 1.22(plied the inde)144 686.4 R 3.72(xo)-.15 G +(luated, it is sup-).25 F 1.22(plied the inde)144 124.8 R 3.72(xo)-.15 G 3.72(ft)-3.72 G 1.22(he ne)-3.72 F 1.22 (xt array element to be assigned as an additional ar)-.15 F(gument.)-.18 -E F2(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 698.4 S +E F2(callbac)6.22 E(k)-.2 E F0(is)3.72 E -.25(eva)144 136.8 S (luated after the line is read b).25 E (ut before the array element is assigned.)-.2 E -(If not supplied with an e)144 715.2 Q(xplicit origin,)-.15 E F1 +(If not supplied with an e)144 153.6 Q(xplicit origin,)-.15 E F1 (map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0 -(before assigning to it.)2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 -E(10)198.725 E 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(map\214le)144 84 Q F0 .996 -(returns successfully unless an in)3.496 F -.25(va)-.4 G .996 -(lid option or option ar).25 F .995(gument is supplied, or)-.18 F/F2 10 -/Times-Italic@0 SF(arr)3.495 E(ay)-.15 E F0(is)3.495 E(in)144 96 Q -.25 -(va)-.4 G(lid or unassignable.).25 E F1(popd)108 112.8 Q F0<5bad>2.5 E -F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C-2.5 E F2(n)A F0(])A -(Remo)144 124.8 Q -.15(ve)-.15 G 2.799(se).15 G .299 -(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G .299(th no ar) -.4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G .3 -(he top directory from the)-2.799 F 1.479(stack, and performs a)144 -136.8 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479 +(before assigning to it.)2.5 E F1(map\214le)144 170.4 Q F0 1.906 +(returns successfully unless an in)4.406 F -.25(va)-.4 G 1.905 +(lid option or option ar).25 F 1.905(gument is supplied,)-.18 F F2(arr) +4.405 E(ay)-.15 E F0(is)4.405 E(in)144 182.4 Q -.25(va)-.4 G +(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0 +(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E +F1(popd)108 199.2 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0 +2.5(][)C-2.5 E F2(n)A F0(])A(Remo)144 211.2 Q -.15(ve)-.15 G 2.799 +(se).15 G .299(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G +.299(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 +G .3(he top directory from the)-2.799 F 1.479(stack, and performs a)144 +223.2 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479 (op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478 (uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15 -F(wing)-.25 E(meanings:)144 148.8 Q F1144 160.8 Q F0 .551 +F(wing)-.25 E(meanings:)144 235.2 Q F1144 247.2 Q F0 .551 (Suppresses the normal change of directory when remo)24.74 F .551 (ving directories from the stack, so)-.15 F -(that only the stack is manipulated.)180 172.8 Q F1(+)144 184.8 Q F2(n)A +(that only the stack is manipulated.)180 259.2 Q F1(+)144 271.2 Q F2(n)A F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0 .14(th entry counting from the left of the list sho)B .14(wn by)-.25 F F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180 -196.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0 +283.2 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0 (remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,) --.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1144 208.8 Q F2(n)A F0 +-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1144 295.2 Q F2(n)A F0 (Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F2(n)3.759 E F0 1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25 F F1(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180 -220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15 +307.2 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15 (ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5 -E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 237.6 R F1(popd) -3.144 E F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643 +E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 324 R F1(popd)3.144 +E F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643 (is performed as well, and the return status is 0.)3.143 F F1(popd)5.643 -E F0 .415(returns f)144 249.6 R .415(alse if an in)-.1 F -.25(va)-.4 G +E F0 .415(returns f)144 336 R .415(alse if an in)-.1 F -.25(va)-.4 G .415(lid option is encountered, the directory stack is empty).25 F 2.916 (,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F -(tory stack entry is speci\214ed, or the directory change f)144 261.6 Q -(ails.)-.1 E F1(printf)108 278.4 Q F0([)2.5 E F1A F2(var)2.5 E F0 +(tory stack entry is speci\214ed, or the directory change f)144 348 Q +(ails.)-.1 E F1(printf)108 364.8 Q F0([)2.5 E F1A F2(var)2.5 E F0 (])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .372 -(Write the formatted)144 290.4 R F2(ar)2.872 E(guments)-.37 E F0 .372 +(Write the formatted)144 376.8 R F2(ar)2.872 E(guments)-.37 E F0 .372 (to the standard output under the control of the)2.872 F F2(format)2.872 E F0 5.372(.T)C(he)-5.372 E F2(format)2.872 E F0 1.804(is a character s\ tring which contains three types of objects: plain characters, which ar\ -e simply)144 302.4 R .159 +e simply)144 388.8 R .159 (copied to standard output, character escape sequences, which are con) -144 314.4 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\ +144 400.8 R -.15(ve)-.4 G .158(rted and copied to the stan-).15 F .499(\ dard output, and format speci\214cations, each of which causes printing\ - of the ne)144 326.4 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E -(gu-)-.37 E(ment)144 338.4 Q F0 5.424(.I)C 2.924(na)-5.424 G .424 + of the ne)144 412.8 R .5(xt successi)-.15 F -.15(ve)-.25 G F2(ar)3.15 E +(gu-)-.37 E(ment)144 424.8 Q F0 5.424(.I)C 2.924(na)-5.424 G .424 (ddition to the standard)-2.924 F F2(printf)2.924 E F0 .424 (\(1\) formats,)B F1(%b)2.924 E F0(causes)2.923 E F1(printf)2.923 E F0 .423(to e)2.923 F .423(xpand backslash escape)-.15 F .976 -(sequences in the corresponding)144 350.4 R F2(ar)3.476 E(gument)-.37 E +(sequences in the corresponding)144 436.8 R F2(ar)3.476 E(gument)-.37 E F0(\(e)3.476 E .976(xcept that)-.15 F F1(\\c)3.476 E F0 .976 (terminates output, backslashes in)3.476 F F1<5c08>3.477 E F0(,)A F1 -(\\")3.477 E F0(,)A(and)144 362.4 Q F1(\\?)3.422 E F0 .922(are not remo) +(\\")3.477 E F0(,)A(and)144 448.8 Q F1(\\?)3.422 E F0 .922(are not remo) 3.422 F -.15(ve)-.15 G .922(d, and octal escapes be).15 F .922 (ginning with)-.15 F F1(\\0)3.422 E F0 .921 -(may contain up to four digits\), and)3.422 F F1(%q)144 374.4 Q F0 +(may contain up to four digits\), and)3.422 F F1(%q)144 460.8 Q F0 (causes)3.63 E F1(printf)3.63 E F0 1.13(to output the corresponding)3.63 F F2(ar)3.631 E(gument)-.37 E F0 1.131 -(in a format that can be reused as shell)3.631 F(input.)144 386.4 Q(The) -144 410.4 Q F12.904 E F0 .404 +(in a format that can be reused as shell)3.631 F(input.)144 472.8 Q(The) +144 496.8 Q F12.904 E F0 .404 (option causes the output to be assigned to the v)2.904 F(ariable)-.25 E F2(var)2.904 E F0 .404(rather than being printed to the)2.904 F -(standard output.)144 422.4 Q(The)144 446.4 Q F2(format)3.423 E F0 .923 +(standard output.)144 508.8 Q(The)144 532.8 Q F2(format)3.423 E F0 .923 (is reused as necessary to consume all of the)3.423 F F2(ar)3.423 E (guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format) -3.423 E F0 .924(requires more)3.424 F F2(ar)144 458.4 Q(guments)-.37 E +3.423 E F0 .924(requires more)3.424 F F2(ar)144 544.8 Q(guments)-.37 E F0 .033(than are supplied, the e)2.534 F .033 (xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si) .15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,) --.25 F(as appropriate, had been supplied.)144 470.4 Q(The return v)5 E +-.25 F(as appropriate, had been supplied.)144 556.8 Q(The return v)5 E (alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd) -108 487.2 Q F0([)2.5 E F1A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C --2.5 E F2(n)A F0(])A F1(pushd)108 499.2 Q F0([)2.5 E F1A F0 +108 573.6 Q F0([)2.5 E F1A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C +-2.5 E F2(n)A F0(])A F1(pushd)108 585.6 Q F0([)2.5 E F1A F0 2.5(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\ -irectory stack, or rotates the stack, making the ne)144 511.2 R 3.14(wt) --.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 523.2 R 1.316 +irectory stack, or rotates the stack, making the ne)144 597.6 R 3.14(wt) +-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 609.6 R 1.316 (orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315 (guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315 (irectories and)-3.815 F .871 -(returns 0, unless the directory stack is empty)144 535.2 R 5.871(.A) +(returns 0, unless the directory stack is empty)144 621.6 R 5.871(.A) -.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15 -(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 547.2 Q -F1144 559.2 Q F0 .902(Suppresses the normal change of directory w\ +(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 633.6 Q +F1144 645.6 Q F0 .902(Suppresses the normal change of directory w\ hen adding directories to the stack, so that)24.74 F -(only the stack is manipulated.)180 571.2 Q F1(+)144 583.2 Q F2(n)A F0 +(only the stack is manipulated.)180 657.6 Q F1(+)144 669.6 Q F2(n)A F0 1.267(Rotates the stack so that the)25.3 F F2(n)3.767 E F0 1.268 (th directory \(counting from the left of the list sho)B 1.268(wn by) --.25 F F1(dirs)180 595.2 Q F0 2.5(,s)C -(tarting with zero\) is at the top.)-2.5 E F1144 607.2 Q F2(n)A F0 +-.25 F F1(dirs)180 681.6 Q F0 2.5(,s)C +(tarting with zero\) is at the top.)-2.5 E F1144 693.6 Q F2(n)A F0 .92(Rotates the stack so that the)25.3 F F2(n)3.42 E F0 .92 (th directory \(counting from the right of the list sho)B .92(wn by)-.25 -F F1(dirs)180 619.2 Q F0 2.5(,s)C(tarting with zero\) is at the top.) --2.5 E F2(dir)144.35 631.2 Q F0(Adds)23.98 E F2(dir)2.85 E F0 +F F1(dirs)180 705.6 Q F0 2.5(,s)C(tarting with zero\) is at the top.) +-2.5 E F2(dir)144.35 717.6 Q F0(Adds)23.98 E F2(dir)2.85 E F0 (to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25 -G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 648 R -F1(pushd)2.988 E F0 .488(command is successful, a)2.988 F F1(dirs)2.988 -E F0 .488(is performed as well.)2.988 F .489 -(If the \214rst form is used,)5.488 F F1(pushd)2.989 E F0 1.04 -(returns 0 unless the cd to)144 660 R F2(dir)3.89 E F0 -.1(fa)4.27 G -3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F1(pushd)3.539 E F0 -1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144 672 -R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack element i\ -s speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144 -684 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F1(pwd)108 -700.8 Q F0([)2.5 E F1(\255LP)A F0(])A .845 -(Print the absolute pathname of the current w)144 712.8 R .845 -(orking directory)-.1 F 5.844(.T)-.65 G .844 -(he pathname printed contains no)-5.844 F .181(symbolic links if the)144 -724.8 R F12.681 E F0 .181(option is supplied or the)2.681 F F1 -.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1 -(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F(GNU Bash-4.0) -72 768 Q(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP +G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E(GNU Bash-4.0)72 768 Q +(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 3.264 -(enabled. If)144 84 R(the)3.264 E/F1 10/Times-Bold@0 SF3.264 E F0 -.763(option is used, the pathname printed may contain symbolic links.) -3.264 F .763(The return)5.763 F 1.36(status is 0 unless an error occurs\ - while reading the name of the current directory or an in)144 96 R -.25 -(va)-.4 G(lid).25 E(option is supplied.)144 108 Q F1 -.18(re)108 124.8 S -(ad).18 E F0([)2.5 E F1(\255ers)A F0 2.5(][)C F1-2.5 E/F2 10 -/Times-Italic@0 SF(aname)2.5 E F0 2.5(][)C F1-2.5 E F2(delim)2.5 E -F0 2.5(][)C F1-2.5 E F2(te)2.5 E(xt)-.2 E F0 2.5(][)C F1-2.5 E -F2(nc)2.5 E(har)-.15 E(s)-.1 E F0 2.5(][)C F1-2.5 E F2(pr)2.5 E -(ompt)-.45 E F0 2.5(][)C F1-2.5 E F2(timeout)2.5 E F0 2.5(][)C F1 --2.5 E F2(fd)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .516(\ -One line is read from the standard input, or from the \214le descriptor) -144 136.8 R F2(fd)3.016 E F0 .516(supplied as an ar)3.016 F .516 -(gument to)-.18 F(the)144 148.8 Q F12.538 E F0 .038 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .488(If the) +144 84 R/F1 10/Times-Bold@0 SF(pushd)2.988 E F0 .488 +(command is successful, a)2.988 F F1(dirs)2.988 E F0 .488 +(is performed as well.)2.988 F .489(If the \214rst form is used,)5.488 F +F1(pushd)2.989 E F0 1.04(returns 0 unless the cd to)144 96 R/F2 10 +/Times-Italic@0 SF(dir)3.89 E F0 -.1(fa)4.27 G 3.539(ils. W).1 F 1.039 +(ith the second form,)-.4 F F1(pushd)3.539 E F0 1.039 +(returns 0 unless the directory)3.539 F .846(stack is empty)144 108 R +3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack element is \ +speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144 +120 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F1(pwd)108 +136.8 Q F0([)2.5 E F1(\255LP)A F0(])A .845 +(Print the absolute pathname of the current w)144 148.8 R .845 +(orking directory)-.1 F 5.844(.T)-.65 G .844 +(he pathname printed contains no)-5.844 F .181(symbolic links if the)144 +160.8 R F12.681 E F0 .181(option is supplied or the)2.681 F F1 +.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1 +(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264 +(enabled. If)144 172.8 R(the)3.264 E F13.264 E F0 .763 +(option is used, the pathname printed may contain symbolic links.)3.264 +F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\ + reading the name of the current directory or an in)144 184.8 R -.25(va) +-.4 G(lid).25 E(option is supplied.)144 196.8 Q F1 -.18(re)108 213.6 S +(ad).18 E F0([)3.817 E F1(\255ers)A F0 3.817(][)C F1-3.817 E F2 +(aname)3.817 E F0 3.817(][)C F1-3.817 E F2(delim)3.817 E F0 3.817 +(][)C F1-3.817 E F2(te)3.817 E(xt)-.2 E F0 3.817(][)C F1 +-3.817 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1-3.816 E +F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F1-3.816 E F2(pr) +3.816 E(ompt)-.45 E F0 3.816(][)C F1-3.816 E F2(timeout)3.816 E F0 +3.816(][)C F1-3.816 E F2(fd)3.816 E F0(])A([)108 225.6 Q F2(name)A +F0(...])2.5 E .516(One line is read from the standard input, or from th\ +e \214le descriptor)144 237.6 R F2(fd)3.016 E F0 .516(supplied as an ar) +3.016 F .516(gument to)-.18 F(the)144 249.6 Q F12.538 E F0 .038 (option, and the \214rst w)2.538 F .038(ord is assigned to the \214rst) -.1 F F2(name)2.539 E F0 2.539(,t).18 G .039(he second w)-2.539 F .039 (ord to the second)-.1 F F2(name)2.539 E F0(,).18 E .42 -(and so on, with lefto)144 160.8 R -.15(ve)-.15 G 2.92(rw).15 G .42 +(and so on, with lefto)144 261.6 R -.15(ve)-.15 G 2.92(rw).15 G .42 (ords and their interv)-3.02 F .42 (ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I) -.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 172.8 R .54(wer w)-.25 +.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 273.6 R .54(wer w)-.25 F .541(ords read from the input stream than names, the remaining names \ -are assigned empty)-.1 F -.25(va)144 184.8 S 2.511(lues. The).25 F .011 +are assigned empty)-.1 F -.25(va)144 285.6 S 2.511(lues. The).25 F .011 (characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011 (are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011 (backslash character \()2.511 F F1(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89 -(be used to remo)144 196.8 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H +(be used to remo)144 297.6 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H 1.891(pecial meaning for the ne).15 F 1.891 (xt character read and for line continuation.)-.15 F -(Options, if supplied, ha)144 208.8 Q .3 -.15(ve t)-.2 H(he follo).15 E -(wing meanings:)-.25 E F1144 220.8 Q F2(aname)2.5 E F0 1.05(The w) -180 232.8 R 1.049 +(Options, if supplied, ha)144 309.6 Q .3 -.15(ve t)-.2 H(he follo).15 E +(wing meanings:)-.25 E F1144 321.6 Q F2(aname)2.5 E F0 1.05(The w) +180 333.6 R 1.049 (ords are assigned to sequential indices of the array v)-.1 F(ariable) -.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F -F2(aname)180.33 244.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 +F2(aname)180.33 345.6 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0 -(ar)2.5 E(guments are ignored.)-.18 E F1144 256.8 Q F2(delim)2.5 E -F0(The \214rst character of)180 268.8 Q F2(delim)2.5 E F0 +(ar)2.5 E(guments are ignored.)-.18 E F1144 357.6 Q F2(delim)2.5 E +F0(The \214rst character of)180 369.6 Q F2(delim)2.5 E F0 (is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E -F1144 280.8 Q F0 .372 +F1144 381.6 Q F0 .372 (If the standard input is coming from a terminal,)25.86 F F1 -.18(re) 2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E -.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218 -(to obtain the line.)180 292.8 R .218 +(to obtain the line.)180 393.6 R .218 (Readline uses the current \(or def)5.218 F .218 (ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E -(acti)180 304.8 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E -F1144 316.8 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715 +(acti)180 405.6 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E +F1144 417.6 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715 G(adline).18 E F0 .216(is being used to read the line,)2.715 F F2(te) 2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E -.216(fer before edit-)-.25 F(ing be)180 328.8 Q(gins.)-.15 E F1144 -340.8 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 352.8 S(ad).18 E +.216(fer before edit-)-.25 F(ing be)180 429.6 Q(gins.)-.15 E F1144 +441.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 453.6 S(ad).18 E F0 1.395(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E F0 1.395(characters rather than w)3.895 F 1.394 -(aiting for a complete line of)-.1 F(input.)180 364.8 Q F1144 -376.8 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 388.8 Q F2(pr)3.66 E -(ompt)-.45 E F0 1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161 +(aiting for a complete line of)-.1 F(input, b)180 465.6 Q +(ut honor a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15 E +(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1 +144 477.6 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 489.6 S +(ad).18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc) +3.769 E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F +1.27(aiting for a complete)-.1 F .275 +(line of input, unless EOF is encountered or)180 501.6 R F1 -.18(re) +2.775 G(ad).18 E F0 .274(times out.)2.774 F .274 +(Delimiter characters encoun-)5.274 F 1.002 +(tered in the input are not treated specially and do not cause)180 513.6 +R F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc) +3.503 E(har)-.15 E(s)-.1 E F0(characters are read.)180 525.6 Q F1 +144 537.6 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 549.6 Q F2(pr)3.661 E +(ompt)-.45 E F0 1.161(on standard error)3.661 F 3.661(,w)-.4 G 1.161 (ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read) --.25 F(an)180 400.8 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F +-.25 F(an)180 561.6 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F (prompt is displayed only if input is coming from a terminal.)2.5 E F1 -144 412.8 Q F0 .544(Backslash does not act as an escape character) -25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of) --5.543 F(the line.)180 424.8 Q(In particular)5 E 2.5(,ab)-.4 G +144 573.6 Q F0 .543(Backslash does not act as an escape character) +25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of) +-5.543 F(the line.)180 585.6 Q(In particular)5 E 2.5(,ab)-.4 G (ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.) --.25 E F1144 436.8 Q F0(Silent mode.)26.41 E +-.25 E F1144 597.6 Q F0(Silent mode.)26.41 E (If input is coming from a terminal, characters are not echoed.)5 E F1 -144 448.8 Q F2(timeout)2.5 E F0(Cause)180 460.8 Q F1 -.18(re)3.548 -G(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048 +144 609.6 Q F2(timeout)2.5 E F0(Cause)180 621.6 Q F1 -.18(re)3.549 +G(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048 (ailure if a complete line of input is not read within)-.1 F F2(timeout) -180 472.8 Q F0(seconds.)3.497 E F2(timeout)5.997 E F0 .997 -(may be a decimal number with a fractional portion follo)3.497 F(wing) --.25 E .576(the decimal point.)180 484.8 R .576(This option is only ef) +180 633.6 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997 +(may be a decimal number with a fractional portion follo)3.496 F(wing) +-.25 E .576(the decimal point.)180 645.6 R .576(This option is only ef) 5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G -(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142 -(pipe, or other special \214le; it has no ef)180 496.8 R .142 -(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E -F2(timeout)2.641 E F0 .141(is 0,)2.641 F F1 -.18(re)180 508.8 S(ad).18 E -F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113 -(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114 -(ailure otherwise.)-2.713 F(The e)180 520.8 Q +(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .141 +(pipe, or other special \214le; it has no ef)180 657.6 R .142 +(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E +F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 669.6 S(ad).18 E +F0 .113(returns success if input is a)2.614 F -.25(va)-.2 G .113 +(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .113 +(ailure otherwise.)-2.713 F(The e)180 681.6 Q (xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15 -E F1144 532.8 Q F2(fd)2.5 E F0(Read input from \214le descriptor) -14.46 E F2(fd)2.5 E F0(.)A .192(If no)144 549.6 R F2(names)3.052 E F0 -.192(are supplied, the line read is assigned to the v)2.962 F(ariable) --.25 E F3(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191 -(The return code is zero,)4.691 F 1.343 -(unless end-of-\214le is encountered,)144 561.6 R F1 -.18(re)3.843 G(ad) +E F1144 693.6 Q F2(fd)2.5 E F0(Read input from \214le descriptor) +14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 710.4 R F2(names)3.051 E F0 +.191(are supplied, the line read is assigned to the v)2.961 F(ariable) +-.25 E F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192 +(The return code is zero,)4.692 F 1.344 +(unless end-of-\214le is encountered,)144 722.4 R F1 -.18(re)3.844 G(ad) .18 E F0 1.343 -(times out \(in which case the return code is greater than)3.843 F -(128\), or an in)144 573.6 Q -.25(va)-.4 G -(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1 -2.5 E F0(.)A F1 -.18(re)108 590.4 S(adonly).18 E F0([)2.5 E F1 -(\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E -F0 2.5(].)C(..])-2.5 E .77(The gi)144 602.4 R -.15(ve)-.25 G(n).15 E F2 -(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77 -(alues of these)-.25 F F2(names)3.63 E F0 .77 -(may not be changed by subse-)3.54 F 1.096(quent assignment.)144 614.4 R -1.096(If the)6.096 F F13.596 E F0 1.097 -(option is supplied, the functions corresponding to the)3.596 F F2 -(names)3.597 E F0 1.097(are so)3.597 F(mark)144 626.4 Q 3.334(ed. The) +(times out \(in which case the return code is greater than)3.844 F +(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP +%%Page: 13 13 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E +(128\), or an in)144 84 Q -.25(va)-.4 G +(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E/F1 +10/Times-Bold@0 SF2.5 E F0(.)A F1 -.18(re)108 100.8 S(adonly).18 E +F0([)2.5 E F1(\255aA)A(pf)-.25 E F0 2.5(][)C/F2 10/Times-Italic@0 SF +(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77 +(The gi)144 112.8 R -.15(ve)-.25 G(n).15 E F2(names)3.27 E F0 .77 +(are mark)3.27 F .77(ed readonly; the v)-.1 F .77(alues of these)-.25 F +F2(names)3.63 E F0 .77(may not be changed by subse-)3.54 F 1.097 +(quent assignment.)144 124.8 R 1.097(If the)6.097 F F13.597 E F0 +1.097(option is supplied, the functions corresponding to the)3.597 F F2 +(names)3.596 E F0 1.096(are so)3.596 F(mark)144 136.8 Q 3.334(ed. The) -.1 F F13.334 E F0 .834(option restricts the v)3.334 F .834 (ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the) -3.334 F F13.334 E F0 .834(option restricts the v)3.334 F(ari-) --.25 E .537(ables to associati)144 638.4 R .837 -.15(ve a)-.25 H 3.037 +-.25 E .538(ables to associati)144 148.8 R .838 -.15(ve a)-.25 H 3.038 (rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538 (guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1 -3.038 E F0 .538(option is supplied, a list)3.038 F .081 -(of all readonly names is printed.)144 650.4 R(The)5.081 E F12.581 -E F0 .08(option causes output to be displayed in a format that may)2.581 -F 1.176(be reused as input.)144 662.4 R 1.176(If a v)6.176 F 1.176 +3.038 E F0 .537(option is supplied, a list)3.038 F .08 +(of all readonly names is printed.)144 160.8 R(The)5.08 E F12.58 E +F0 .081(option causes output to be displayed in a format that may)2.58 F +1.177(be reused as input.)144 172.8 R 1.177(If a v)6.177 F 1.176 (ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0 -3.676(,t)C 1.176(he v)-3.676 F 1.177(alue of the v)-.25 F 1.177 -(ariable is set to)-.25 F F2(wor)144 674.4 Q(d)-.37 E F0 6.206(.T)C -1.206(he return status is 0 unless an in)-6.206 F -.25(va)-.4 G 1.205 -(lid option is encountered, one of the).25 F F2(names)4.065 E F0 1.205 -(is not a)3.975 F -.25(va)144 686.4 S(lid shell v).25 E +3.676(,t)C 1.176(he v)-3.676 F 1.176(alue of the v)-.25 F 1.176 +(ariable is set to)-.25 F F2(wor)144 184.8 Q(d)-.37 E F0 6.205(.T)C +1.205(he return status is 0 unless an in)-6.205 F -.25(va)-.4 G 1.206 +(lid option is encountered, one of the).25 F F2(names)4.066 E F0 1.206 +(is not a)3.976 F -.25(va)144 196.8 S(lid shell v).25 E (ariable name, or)-.25 E F12.5 E F0(is supplied with a)2.5 E F2 -(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 703.2 S -(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .586 -(Causes a function to e)144 715.2 R .587(xit with the return v)-.15 F +(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 213.6 S +(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .587 +(Causes a function to e)144 225.6 R .587(xit with the return v)-.15 F .587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587 -E F2(n)3.447 E F0 .587(is omitted, the return status is)3.327 F 1.335 -(that of the last command e)144 727.2 R -.15(xe)-.15 G 1.335 +E F2(n)3.447 E F0 .586(is omitted, the return status is)3.327 F 1.335 +(that of the last command e)144 237.6 R -.15(xe)-.15 G 1.335 (cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G -1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(exe)144 -84 S .794(cution of a script by the).15 F/F1 10/Times-Bold@0 SF(.)3.294 -E F0(\()5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794 -(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795 -(cuting that script).15 F .246(and return either)144 96 R/F2 10 -/Times-Italic@0 SF(n)3.106 E F0 .246(or the e)2.986 F .246 -(xit status of the last command e)-.15 F -.15(xe)-.15 G .246 -(cuted within the script as the e).15 F .245(xit sta-)-.15 F .081 -(tus of the script.)144 108 R .082 +1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe) +144 249.6 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\() +5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794 +(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .794 +(cuting that script).15 F .245(and return either)144 261.6 R F2(n)3.105 +E F0 .246(or the e)2.985 F .246(xit status of the last command e)-.15 F +-.15(xe)-.15 G .246(cuted within the script as the e).15 F .246 +(xit sta-)-.15 F .082(tus of the script.)144 273.6 R .082 (If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082 -(cution of a script by).15 F F1(.)2.582 E F0 2.582(,t).833 G .082 -(he return sta-)-2.582 F 2.306(tus is f)144 120 R 4.806(alse. An)-.1 F -4.806(yc)-.15 G 2.305(ommand associated with the)-4.806 F F1(RETURN) -4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305(cuted before e) +(cution of a script by).15 F F1(.)2.582 E F0 2.581(,t).833 G .081 +(he return sta-)-2.581 F 2.305(tus is f)144 285.6 R 4.805(alse. An)-.1 F +4.805(yc)-.15 G 2.305(ommand associated with the)-4.805 F F1(RETURN) +4.805 E F0 2.306(trap is e)4.806 F -.15(xe)-.15 G 2.306(cuted before e) .15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.) -144 132 Q F1(set)108 148.8 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A -F0 2.5(][)C F1-2.5 E F2(option)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g) --.37 E F0(...])2.5 E F1(set)108 160.8 Q F0([)2.5 E F1 -(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5 -(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 172.8 S .835 -(thout options, the name and v).4 F .835(alue of each shell v)-.25 F -.836(ariable are displayed in a format that can be)-.25 F .784 -(reused as input for setting or resetting the currently-set v)144 184.8 -R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783 -(riables cannot be).25 F 2.946(reset. In)144 196.8 R F2 .447(posix mode) -2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 +144 297.6 Q F1(set)108 314.4 Q F0([)2.5 E F1 +(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1-2.5 E F2(option)2.5 +E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 326.4 Q F0 +([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option) +2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 338.4 S +.836(thout options, the name and v).4 F .835(alue of each shell v)-.25 F +.835(ariable are displayed in a format that can be)-.25 F .784 +(reused as input for setting or resetting the currently-set v)144 350.4 +R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784 +(riables cannot be).25 F 2.947(reset. In)144 362.4 R F2 .447(posix mode) +2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447 (ariables are listed.)-.25 F .447 -(The output is sorted according to the current)5.447 F 3.531 -(locale. When)144 208.8 R 1.031(options are speci\214ed, the)3.531 F -3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An) --.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623 -(after option processing are treated as v)144 220.8 R 1.624 +(The output is sorted according to the current)5.447 F 3.53 +(locale. When)144 374.4 R 1.031(options are speci\214ed, the)3.53 F +3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An) +-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F +1.624(after option processing are treated as v)144 386.4 R 1.623 (alues for the positional parameters and are assigned, in)-.25 F(order) -144 232.8 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A +144 398.4 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3 --.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1144 244.8 Q -F0 .54(Automatically mark v)29.3 F .539 -(ariables and functions which are modi\214ed or created for e)-.25 F -.539(xport to)-.15 F(the en)184 256.8 Q -(vironment of subsequent commands.)-.4 E F1144 268.8 Q F0 .131 +-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1144 410.4 Q +F0 .539(Automatically mark v)29.3 F .539 +(ariables and functions which are modi\214ed or created for e)-.25 F .54 +(xport to)-.15 F(the en)184 422.4 Q(vironment of subsequent commands.) +-.4 E F1144 434.4 Q F0 .132 (Report the status of terminated background jobs immediately)28.74 F -2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E -(primary prompt.)184 280.8 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o) --.25 H(nly when job control is enabled.).15 E F1144 292.8 Q F0 -1.694(Exit immediately if a)29.86 F F2 1.693(simple command)4.193 F F0 -(\(see)4.193 E/F3 9/Times-Bold@0 SF 1.693(SHELL GRAMMAR)4.193 F F0(abo) -3.943 E -.15(ve)-.15 G 4.193(\)e).15 G 1.693(xits with a)-4.343 F .011 -(non-zero status.)184 304.8 R .011(The shell does not e)5.011 F .011 -(xit if the command that f)-.15 F .012(ails is part of the command)-.1 F -.719(list immediately follo)184 316.8 R .719(wing a)-.25 F F1(while) -3.219 E F0(or)3.219 E F1(until)3.219 E F0 -.1(ke)3.219 G(yw)-.05 E .719 -(ord, part of the test in an)-.1 F F1(if)3.218 E F0(statement,)3.218 E -.378(part of a command e)184 328.8 R -.15(xe)-.15 G .379(cuted in a).15 -F F1(&&)2.879 E F0(or)2.879 E/F4 10/Symbol SF2.879 E F0 .379 -(list, an)2.879 F 2.879(yc)-.15 G .379(ommand in a pipeline b)-2.879 F -.379(ut the last,)-.2 F .578(or if the command')184 340.8 R 3.078(sr) --.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve)-.4 G -.578(rted via).15 F F1(!)3.078 E F0 5.578(.F)C .577 -(ailing simple commands that)-5.728 F .402(are part of shell functions \ -or command lists enclosed in braces or parentheses satisfying)184 352.8 -R .841(the abo)184 364.8 R 1.141 -.15(ve c)-.15 H .841 -(onditions do not cause the shell to e).15 F 3.341(xit. A)-.15 F .84 -(trap on)3.34 F F1(ERR)3.34 E F0 3.34(,i)C 3.34(fs)-3.34 G .84(et, is e) --3.34 F -.15(xe)-.15 G(cuted).15 E(before the shell e)184 376.8 Q(xits.) --.15 E F1144 388.8 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 -E F1144 400.8 Q F0 2.238(Remember the location of commands as the) -28.74 F 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F --.15(xe)-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184 -412.8 Q(ault.)-.1 E F1144 424.8 Q F0 .514(All ar)28.74 F .514 +2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E +(primary prompt.)184 446.4 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o) +-.25 H(nly when job control is enabled.).15 E F1144 458.4 Q F0 .51 +(Exit immediately if a)29.86 F F2(pipeline)3.01 E F0 .511 +(\(which may consist of a single)3.011 F F2 .511(simple command)3.011 F +F0 3.011(\), a)B F2(sub-)3.011 E(shell)184 470.4 Q F0 .872 +(command enclosed in parentheses, or one of the commands e)3.373 F -.15 +(xe)-.15 G .872(cuted as part of a).15 F .399 +(command list enclosed by braces \(see)184 482.4 R/F3 9/Times-Bold@0 SF +.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G +.399(xits with a non-zero)-3.049 F 3.969(status. The)184 494.4 R 1.468 +(shell does not e)3.969 F 1.468(xit if the command that f)-.15 F 1.468 +(ails is part of the command list)-.1 F .569(immediately follo)184 506.4 +R .569(wing a)-.25 F F1(while)3.069 E F0(or)3.069 E F1(until)3.069 E F0 +-.1(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .57 +(wing the)-.25 F F1(if)3.07 E F0(or)3.07 E F1(elif)3.07 E F0(reserv)184 +518.4 Q .544(ed w)-.15 F .544(ords, part of an)-.1 F 3.044(yc)-.15 G +.544(ommand e)-3.044 F -.15(xe)-.15 G .544(cuted in a).15 F F1(&&)3.044 +E F0(or)3.044 E/F4 10/Symbol SF3.044 E F0 .544(list e)3.044 F .544 +(xcept the command)-.15 F(follo)184 530.4 Q 1.23(wing the \214nal)-.25 F +F1(&&)3.73 E F0(or)3.73 E F43.73 E F0 3.73(,a)C 1.53 -.15(ny c) +-3.73 H 1.231(ommand in a pipeline b).15 F 1.231 +(ut the last, or if the com-)-.2 F(mand')184 542.4 Q 3.191(sr)-.55 G +.691(eturn v)-3.191 F .691(alue is being in)-.25 F -.15(ve)-.4 G .691 +(rted with).15 F F1(!)3.191 E F0 5.691(.A)C .691(trap on)-2.5 F F1(ERR) +3.19 E F0 3.19(,i)C 3.19(fs)-3.19 G .69(et, is e)-3.19 F -.15(xe)-.15 G +.69(cuted before).15 F .686(the shell e)184 554.4 R 3.186(xits. This) +-.15 F .686(option applies to the shell en)3.186 F .686 +(vironment and each subshell en)-.4 F(viron-)-.4 E .068 +(ment separately \(see)184 566.4 R F3 .068(COMMAND EXECUTION ENVIR)2.568 +F(ONMENT)-.27 E F0(abo)2.318 E -.15(ve)-.15 G .068(\), and may cause).15 +F(subshells to e)184 578.4 Q(xit before e)-.15 E -.15(xe)-.15 G +(cuting all the commands in the subshell.).15 E F1144 590.4 Q F0 +(Disable pathname e)30.97 E(xpansion.)-.15 E F1144 602.4 Q F0 +2.238(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G +2.239(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)-.15 G 4.739 +(cution. This).15 F(is)4.739 E(enabled by def)184 614.4 Q(ault.)-.1 E F1 +144 626.4 Q F0 .514(All ar)28.74 F .514 (guments in the form of assignment statements are placed in the en)-.18 F .513(vironment for a)-.4 F -(command, not just those that precede the command name.)184 436.8 Q F1 -144 448.8 Q F0 .148(Monitor mode.)25.97 F .148 +(command, not just those that precede the command name.)184 638.4 Q F1 +144 650.4 Q F0 .148(Monitor mode.)25.97 F .148 (Job control is enabled.)5.148 F .149(This option is on by def)5.148 F .149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637 -(on systems that support it \(see)184 460.8 R F3 .636(JOB CONTR)3.136 F +(on systems that support it \(see)184 662.4 R F3 .636(JOB CONTR)3.136 F (OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636 (processes run in a)3.136 F .641 -(separate process group and a line containing their e)184 472.8 R .642 -(xit status is printed upon their com-)-.15 F(pletion.)184 484.8 Q F1 -144 496.8 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F +(separate process group and a line containing their e)184 674.4 R .642 +(xit status is printed upon their com-)-.15 F(pletion.)184 686.4 Q F1 +144 698.4 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F -.15(xe)-.15 G .653(cute them.).15 F .652 (This may be used to check a shell script for)5.653 F(syntax errors.)184 -508.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 -E F1144 520.8 Q F2(option\255name)2.5 E F0(The)184 532.8 Q F2 -(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1 -(allexport)184 544.8 Q F0(Same as)224 556.8 Q F12.5 E F0(.)A F1 -(braceexpand)184 568.8 Q F0(Same as)224 580.8 Q F12.5 E F0(.)A F1 -(emacs)184 592.8 Q F0 .089 -(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This) --.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95 -(when the shell is interacti)224 604.8 R -.15(ve)-.25 G 3.45(,u).15 G -.95(nless the shell is started with the)-3.45 F F1(\255\255noediting) -3.45 E F0 2.5(option. This)224 616.8 R(also af)2.5 E -(fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G -(ad \255e).18 E F0(.)A F1(errtrace)184 628.8 Q F0(Same as)5.03 E F1 -2.5 E F0(.)A F1(functrace)184 640.8 Q F0(Same as)224 652.8 Q F1 -2.5 E F0(.)A F1(err)184 664.8 Q(exit)-.18 E F0(Same as)11.31 E F1 -2.5 E F0(.)A F1(hashall)184 676.8 Q F0(Same as)9.43 E F12.5 -E F0(.)A F1(histexpand)184 688.8 Q F0(Same as)224 700.8 Q F12.5 E -F0(.)A F1(history)184 712.8 Q F0 .586(Enable command history)10 F 3.087 -(,a)-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u) --.15 H(nder).15 E F3(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F5 9 -/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F(on by def)224 724.8 -Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.0) -72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP +710.4 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 +E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP %%Page: 14 14 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 (TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(ignor)184 84 Q(eeof)-.18 E F0 1.657(The ef)224 96 R -1.657(fect is as if the shell command)-.25 F/F2 10/Courier@0 SF -(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted) -.15 E(\(see)224 108 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15 -(ve)-.15 G(\).).15 E F1 -.1(ke)184 120 S(yw).1 E(ord)-.1 E F0(Same as) -224 132 Q F12.5 E F0(.)A F1(monitor)184 144 Q F0(Same as)5.56 E F1 -2.5 E F0(.)A F1(noclob)184 156 Q(ber)-.1 E F0(Same as)224 168 Q F1 -2.5 E F0(.)A F1(noexec)184 180 Q F0(Same as)11.12 E F12.5 E -F0(.)A F1(noglob)184 192 Q F0(Same as)11.1 E F12.5 E F0(.)A F1 -(nolog)184 204 Q F0(Currently ignored.)16.66 E F1(notify)184 216 Q F0 -(Same as)15 E F12.5 E F0(.)A F1(nounset)184 228 Q F0(Same as)6.66 -E F12.5 E F0(.)A F1(onecmd)184 240 Q F0(Same as)6.67 E F12.5 -E F0(.)A F1(ph)184 252 Q(ysical)-.15 E F0(Same as)5.14 E F12.5 E -F0(.)A F1(pipefail)184 264 Q F0 1.029(If set, the return v)7.77 F 1.029 +/Times-Bold@0 SF144 84 Q/F2 10/Times-Italic@0 SF(option\255name) +2.5 E F0(The)184 96 Q F2(option\255name)2.5 E F0 +(can be one of the follo)2.5 E(wing:)-.25 E F1(allexport)184 108 Q F0 +(Same as)224 120 Q F12.5 E F0(.)A F1(braceexpand)184 132 Q F0 +(Same as)224 144 Q F12.5 E F0(.)A F1(emacs)184 156 Q F0 .089 +(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This) +-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95 +(when the shell is interacti)224 168 R -.15(ve)-.25 G 3.45(,u).15 G .95 +(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E +F0 2.5(option. This)224 180 R(also af)2.5 E(fects the editing interf) +-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err) +184 192 Q(exit)-.18 E F0(Same as)11.31 E F12.5 E F0(.)A F1 +(errtrace)184 204 Q F0(Same as)5.03 E F12.5 E F0(.)A F1(functrace) +184 216 Q F0(Same as)224 228 Q F12.5 E F0(.)A F1(hashall)184 240 Q +F0(Same as)9.43 E F12.5 E F0(.)A F1(histexpand)184 252 Q F0 +(Same as)224 264 Q F12.5 E F0(.)A F1(history)184 276 Q F0 .586 +(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587 +(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E/F3 9 +/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF +(.)A F0 .587(This option is)5.087 F(on by def)224 288 Q +(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184 +300 Q(eeof)-.18 E F0 1.657(The ef)224 312 R 1.657 +(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF(IGNOREEOF=10) +4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224 +324 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).) +.15 E F1 -.1(ke)184 336 S(yw).1 E(ord)-.1 E F0(Same as)224 348 Q F1 +2.5 E F0(.)A F1(monitor)184 360 Q F0(Same as)5.56 E F12.5 E +F0(.)A F1(noclob)184 372 Q(ber)-.1 E F0(Same as)224 384 Q F12.5 E +F0(.)A F1(noexec)184 396 Q F0(Same as)11.12 E F12.5 E F0(.)A F1 +(noglob)184 408 Q F0(Same as)11.1 E F12.5 E F0(.)A F1(nolog)184 +420 Q F0(Currently ignored.)16.66 E F1(notify)184 432 Q F0(Same as)15 E +F12.5 E F0(.)A F1(nounset)184 444 Q F0(Same as)6.66 E F12.5 +E F0(.)A F1(onecmd)184 456 Q F0(Same as)6.67 E F12.5 E F0(.)A F1 +(ph)184 468 Q(ysical)-.15 E F0(Same as)5.14 E F12.5 E F0(.)A F1 +(pipefail)184 480 Q F0 1.029(If set, the return v)7.77 F 1.029 (alue of a pipeline is the v)-.25 F 1.03 -(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 276 R +(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 492 R 1.136 (xit with a non-zero status, or zero if all commands in the pipeline) --.15 F -.15(ex)224 288 S(it successfully).15 E 5(.T)-.65 G -(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 300 Q F0 +-.15 F -.15(ex)224 504 S(it successfully).15 E 5(.T)-.65 G +(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 516 Q F0 2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0 2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091 -(fers from the)-.25 F(POSIX standard to match the standard \()224 312 Q -/F3 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 324 Q(vileged) --.1 E F0(Same as)224 336 Q F12.5 E F0(.)A F1 -.1(ve)184 348 S -(rbose).1 E F0(Same as)7.33 E F12.5 E F0(.)A F1(vi)184 360 Q F0 -1.466(Use a vi-style command line editing interf)32.22 F 3.965 -(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F -(interf)224 372 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0 -(.)A F1(xtrace)184 384 Q F0(Same as)13.35 E F12.5 E F0(.)A(If)184 -402 Q F13.052 E F0 .552(is supplied with no)3.052 F F3 -(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553 -(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184 -414 Q F0 1.072(is supplied with no)3.572 F F3(option\255name)3.572 E F0 -3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071 -(commands to recreate the current)3.571 F -(option settings is displayed on the standard output.)184 426 Q F1 -144 438 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F3(privile)4.821 E -.1 +(fers from the)-.25 F(POSIX standard to match the standard \()224 528 Q +F2(posix mode)A F0(\).)A F1(pri)184 540 Q(vileged)-.1 E F0(Same as)224 +552 Q F12.5 E F0(.)A F1 -.1(ve)184 564 S(rbose).1 E F0(Same as) +7.33 E F12.5 E F0(.)A F1(vi)184 576 Q F0 1.466 +(Use a vi-style command line editing interf)32.22 F 3.965(ace. This)-.1 +F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F(interf)224 588 Q +(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(xtrace)184 +600 Q F0(Same as)13.35 E F12.5 E F0(.)A(If)184 618 Q F13.052 +E F0 .552(is supplied with no)3.052 F F2(option\255name)3.053 E F0 3.053 +(,t)C .553(he v)-3.053 F .553(alues of the current options are printed.) +-.25 F(If)5.553 E F1(+o)184 630 Q F0 1.072(is supplied with no)3.572 F +F2(option\255name)3.572 E F0 3.572(,a)C 1.071(series of)-.001 F F1(set) +3.571 E F0 1.071(commands to recreate the current)3.571 F +(option settings is displayed on the standard output.)184 642 Q F1 +144 654 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1 (ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F -/F4 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F4($B)3.572 E(ASH_ENV) --.27 E F0 1.072(\214les are not pro-)3.322 F 1.501 -(cessed, shell functions are not inherited from the en)184 450 R 1.5 -(vironment, and the)-.4 F F4(SHELLOPTS)4 E/F5 9/Times-Roman@0 SF(,)A F1 -(CDP)184 462 Q -.95(AT)-.74 G(H).95 E F0 5.603(,a)C(nd)-5.603 E F1 -(GLOBIGNORE)5.603 E F0 -.25(va)5.603 G 3.103(riables, if the).25 F 5.603 -(ya)-.15 G 3.103(ppear in the en)-5.603 F 3.103(vironment, are)-.4 F -2.618(ignored. If)184 474 R .118(the shell is started with the ef)2.618 -F(fecti)-.25 E .418 -.15(ve u)-.25 H .117 -(ser \(group\) id not equal to the real user).15 F 1.018 -(\(group\) id, and the)184 486 R F13.518 E F0 1.018 -(option is not supplied, these actions are tak)3.518 F 1.018 -(en and the ef)-.1 F(fecti)-.25 E -.15(ve)-.25 G .287 -(user id is set to the real user id.)184 498 R .286(If the)5.286 F F1 -2.786 E F0 .286(option is supplied at startup, the ef)2.786 F -(fecti)-.25 E .586 -.15(ve u)-.25 H(ser).15 E .102(id is not reset.)184 -510 R -.45(Tu)5.102 G .102(rning this option of).45 F 2.602(fc)-.25 G -.102(auses the ef)-2.602 F(fecti)-.25 E .402 -.15(ve u)-.25 H .103 -(ser and group ids to be set to).15 F(the real user and group ids.)184 -522 Q F1144 534 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 -G(cuting one command.).15 E F1144 546 Q F0 -.35(Tr)28.74 G .445 -(eat unset v).35 F .444 -(ariables as an error when performing parameter e)-.25 F 2.944 -(xpansion. If)-.15 F -.15(ex)2.944 G .444(pansion is).15 F .519 -(attempted on an unset v)184 558 R .519 -(ariable, the shell prints an error message, and, if not interacti)-.25 -F -.15(ve)-.25 G(,).15 E -.15(ex)184 570 S(its with a non-zero status.) -.15 E F1144 582 Q F0(Print shell input lines as the)29.3 E 2.5(ya) --.15 G(re read.)-2.5 E F1144 594 Q F0 .315(After e)29.3 F .315 -(xpanding each)-.15 F F3 .315(simple command)2.815 F F0(,)A F1 -.25(fo) -2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E -F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 606 R F1 --.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236 -(xpanded v)-.15 F 1.236(alue of)-.25 F F4(PS4)3.736 E F5(,)A F0(follo) -3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 618 Q -(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1 -144 630 Q F0 2.579(The shell performs brace e)27.63 F 2.578 -(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E --.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 642 Q -(ault.)-.1 E F1144 654 Q F0 .213(If set,)27.08 F F1(bash)2.713 E -F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214 -(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0 -2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F -3.054(tors. This)184 666 R .553(may be o)3.053 F -.15(ve)-.15 G .553 -(rridden when creating output \214les by using the redirection opera-) -.15 F(tor)184 678 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 -144 690 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on) --2.603 F F1(ERR)2.603 E F0 .104 -(is inherited by shell functions, command substitutions, and com-)2.603 -F .839(mands e)184 702 R -.15(xe)-.15 G .839(cuted in a subshell en).15 -F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838 -(trap is normally not inherited in)3.338 F(such cases.)184 714 Q +F3($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)-.27 E F0 1.072 +(\214les are not pro-)3.322 F 1.501 +(cessed, shell functions are not inherited from the en)184 666 R 1.5 +(vironment, and the)-.4 F F3(SHELLOPTS)4 E F4(,)A F3 -.27(BA)184 678 S +(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H).855 E F4(,)A F0 +(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G .524 +(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F +(vironment,)-.4 E .38(are ignored.)184 690 R .38 +(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u) +-.25 H .379(ser \(group\) id not equal to the real).15 F .461 +(user \(group\) id, and the)184 702 R F12.961 E F0 .461 +(option is not supplied, these actions are tak)2.961 F .462 +(en and the ef)-.1 F(fec-)-.25 E(ti)184 714 Q .695 -.15(ve u)-.25 H .395 +(ser id is set to the real user id.).15 F .395(If the)5.395 F F1 +2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25 +E -.15(ve)-.25 G .386(user id is not reset.)184 726 R -.45(Tu)5.386 G +.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886 +F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F (GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)198.725 E 0 Cg EP %%Page: 15 15 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF144 84 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531 -(style history substitution.)5.531 F .531(This option is on by def)5.531 -F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 96 Q -.15(ve) --.25 G(.).15 E F1144 108 Q F0 1.165 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E +(set to the real user and group ids.)184 84 Q/F1 10/Times-Bold@0 SF +144 96 Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G +(cuting one command.).15 E F1144 108 Q F0 -.35(Tr)28.74 G .044 +(eat unset v).35 F .044(ariables and parameters other than the special \ +parameters "@" and "*" as an)-.25 F .182 +(error when performing parameter e)184 120 R 2.682(xpansion. If)-.15 F +-.15(ex)2.682 G .183(pansion is attempted on an unset v).15 F(ari-)-.25 +E .746(able or parameter)184 132 R 3.246(,t)-.4 G .746 +(he shell prints an error message, and, if not interacti)-3.246 F -.15 +(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184 +144 Q F1144 156 Q F0(Print shell input lines as the)29.3 E 2.5(ya) +-.15 G(re read.)-2.5 E F1144 168 Q F0 .315(After e)29.3 F .315 +(xpanding each)-.15 F/F2 10/Times-Italic@0 SF .315(simple command)2.815 +F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E +F0(command,)2.815 E F1(select)2.815 E F0(command,)2.815 E 1.236 +(or arithmetic)184 180 R F1 -.25(fo)3.736 G(r).25 E F0 1.236 +(command, display the e)3.736 F 1.236(xpanded v)-.15 F 1.236(alue of) +-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0 SF(,)A F0 +(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 192 Q +(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1 +144 204 Q F0 2.578(The shell performs brace e)27.63 F 2.578 +(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E +-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 216 Q +(ault.)-.1 E F1144 228 Q F0 .214(If set,)27.08 F F1(bash)2.714 E +F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214 +(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0 +2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F +3.053(tors. This)184 240 R .553(may be o)3.053 F -.15(ve)-.15 G .553 +(rridden when creating output \214les by using the redirection opera-) +.15 F(tor)184 252 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1 +144 264 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on) +-2.604 F F1(ERR)2.604 E F0 .103 +(is inherited by shell functions, command substitutions, and com-)2.604 +F .838(mands e)184 276 R -.15(xe)-.15 G .838(cuted in a subshell en).15 +F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839 +(trap is normally not inherited in)3.339 F(such cases.)184 288 Q F1 +144 300 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532 +(style history substitution.)5.532 F .531(This option is on by def)5.532 +F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 312 Q -.15 +(ve)-.25 G(.).15 E F1144 324 Q F0 1.164 (If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164 -(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164 -(cuting commands such as).15 F F1(cd)3.664 E F0 2.821 -(that change the current w)184 120 R 2.822(orking directory)-.1 F 7.822 -(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822 -(ysical directory structure)-.05 F 2.686(instead. By)184 132 R(def)2.686 +(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165 +(cuting commands such as).15 F F1(cd)3.665 E F0 2.822 +(that change the current w)184 336 R 2.822(orking directory)-.1 F 7.822 +(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821 +(ysical directory structure)-.05 F 2.685(instead. By)184 348 R(def)2.685 E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186 (ws the logical chain of directories when performing com-)-.25 F -(mands which change the current directory)184 144 Q(.)-.65 E F1144 -156 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1 +(mands which change the current directory)184 360 Q(.)-.65 E F1144 +372 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1 (DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89 (are inherited by shell functions, command)3.39 F 1.932 -(substitutions, and commands e)184 168 R -.15(xe)-.15 G 1.932 +(substitutions, and commands e)184 384 R -.15(xe)-.15 G 1.932 (cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E -(UG)-.1 E F0(and)4.432 E F1(RETURN)184 180 Q F0 -(traps are normally not inherited in such cases.)2.5 E F1144 192 Q -F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401 +(UG)-.1 E F0(and)4.432 E F1(RETURN)184 396 Q F0 +(traps are normally not inherited in such cases.)2.5 E F1144 408 Q +F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401 (his option, then the positional parameters are unset.)-2.901 F -(Otherwise,)5.401 E(the positional parameters are set to the)184 204 Q -/F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5 -(ni).15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1 -2.5 E F0(.)A F1144 216 Q F0 1.945 -(Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g) --.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G 1.944 -(ssigned to the positional)-4.444 F 3.445(parameters. The)184 228 R F1 -3.445 E F0(and)3.445 E F13.445 E F0 .945 -(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no) -3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B -(parameters remain unchanged.)184 240 Q .425(The options are of)144 -256.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425 +(Otherwise,)5.4 E(the positional parameters are set to the)184 420 Q F2 +(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G +(ome of them be)-2.5 E(gin with a)-.15 E F12.5 E F0(.)A F1144 +432 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2 +(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G +1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 444 R +F13.446 E F0(and)3.446 E F13.446 E F0 .945 +(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no) +3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B +(parameters remain unchanged.)184 456 Q .425(The options are of)144 +472.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425 (ault unless otherwise noted.)-.1 F .425 -(Using + rather than \255 causes these options)5.425 F .177 -(to be turned of)144 268.8 R 2.677(f. The)-.25 F .178 +(Using + rather than \255 causes these options)5.425 F .178 +(to be turned of)144 484.8 R 2.678(f. The)-.25 F .178 (options can also be speci\214ed as ar)2.678 F .178(guments to an in) --.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066 -(current set of options may be found in)144 280.8 R F1<24ad>2.566 E F0 +-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066 +(current set of options may be found in)144 496.8 R F1<24ad>2.566 E F0 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066 -(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F -(is encountered.)144 292.8 Q F1(shift)108 309.6 Q F0([)2.5 E F2(n)A F0 -(])A .428(The positional parameters from)144 321.6 R F2(n)2.928 E F0 -.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G -.429(rameters represented by the num-).15 F(bers)144 333.6 Q F1($#)2.583 -E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0A F2(n)A F0 .083 -(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga) --.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to) -.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06 -(is 0, no parameters are changed.)144 345.6 R(If)5.06 E F2(n)2.92 E F0 +(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F +(is encountered.)144 508.8 Q F1(shift)108 525.6 Q F0([)2.5 E F2(n)A F0 +(])A .429(The positional parameters from)144 537.6 R F2(n)2.929 E F0 +.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G +.428(rameters represented by the num-).15 F(bers)144 549.6 Q F1($#)2.582 +E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0A F2(n)A F0 .082 +(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga) +-.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to) +.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06 +(is 0, no parameters are changed.)144 561.6 R(If)5.06 E F2(n)2.92 E F0 .06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F (If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56 -(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 357.6 R -.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0 -.143(is greater than)2.883 F F1($#)2.643 E F0 -(or less than zero; otherwise 0.)144 369.6 Q F1(shopt)108 386.4 Q F0([) +(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 573.6 R +.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0 +.144(is greater than)2.884 F F1($#)2.644 E F0 +(or less than zero; otherwise 0.)144 585.6 Q F1(shopt)108 602.4 Q F0([) 2.5 E F1(\255pqsu)A F0 2.5(][)C F1-2.5 E F0 2.5(][)C F2(optname) --2.5 E F0(...])2.5 E -.8(To)144 398.4 S .222(ggle the v).8 F .222 +-2.5 E F0(...])2.5 E -.8(To)144 614.4 S .222(ggle the v).8 F .222 (alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F (vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1 2.722 E F0 .721(option, a list of all settable options is display\ -ed, with an indication of whether or not each is set.)144 410.4 R(The) -144 422.4 Q F12.827 E F0 .327(option causes output to be displaye\ -d in a form that may be reused as input.)2.827 F .328(Other options) -5.328 F(ha)144 434.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:) --.25 E F1144 446.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 -E F0(.)A F1144 458.4 Q F0(Disable \(unset\) each)24.74 E F2 -(optname)2.5 E F0(.)A F1144 470.4 Q F0 .003(Suppresses normal out\ +ed, with an indication of whether or not each is set.)144 626.4 R(The) +144 638.4 Q F12.828 E F0 .327(option causes output to be displaye\ +d in a form that may be reused as input.)2.828 F .327(Other options) +5.327 F(ha)144 650.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:) +-.25 E F1144 662.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5 +E F0(.)A F1144 674.4 Q F0(Disable \(unset\) each)24.74 E F2 +(optname)2.5 E F0(.)A F1144 686.4 Q F0 .003(Suppresses normal out\ put \(quiet mode\); the return status indicates whether the)24.74 F F2 -(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 482.4 R .255 -(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256 +(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 698.4 R .256 +(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256 (guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1 -2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F -(all)180 494.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.) -2.5 E F1144 506.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2 -(optname)2.5 E F0(to be those de\214ned for the)2.5 E F12.5 E F0 -(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128 -(If either)144 523.2 R F12.628 E F0(or)2.628 E F12.628 E F0 -.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127 -(guments, the display is limited to those options which)-.18 F 1.023 -(are set or unset, respecti)144 535.2 R -.15(ve)-.25 G(ly).15 E 6.023 -(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0 -1.024(options are disabled \(unset\) by)3.524 F(def)144 547.2 Q(ault.) --.1 E 1.544(The return status when listing options is zero if all)144 -564 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.) -4.044 F .696 +2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F +(all)180 710.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.) +2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP +%%Page: 16 16 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF144 84 Q F0(Restricts the v)25.3 E(alues of)-.25 E +/F2 10/Times-Italic@0 SF(optname)2.5 E F0(to be those de\214ned for the) +2.5 E F12.5 E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G +(iltin.).2 E .127(If either)144 100.8 R F12.627 E F0(or)2.627 E F1 +2.627 E F0 .127(is used with no)2.627 F F2(optname)2.627 E F0(ar) +2.627 E .127(guments, the display is limited to those options which)-.18 +F 1.024(are set or unset, respecti)144 112.8 R -.15(ve)-.25 G(ly).15 E +6.024(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 +E F0 1.023(options are disabled \(unset\) by)3.523 F(def)144 124.8 Q +(ault.)-.1 E 1.544 +(The return status when listing options is zero if all)144 141.6 R F2 +(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)4.045 F .696 (When setting or unsetting options, the return status is zero unless an) -144 576 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell) --.25 F(option.)144 588 Q(The list of)144 604.8 Q F1(shopt)2.5 E F0 -(options is:)2.5 E F1(autocd)144 622.8 Q F0 .2 +144 153.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695 +(alid shell)-.25 F(option.)144 165.6 Q(The list of)144 182.4 Q F1(shopt) +2.5 E F0(options is:)2.5 E F1(autocd)144 200.4 Q F0 .199 (If set, a command name that is the name of a directory is e)11.11 F --.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E -(ment to the)184 634.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F +-.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E +(ment to the)184 212.4 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F (option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E -F1(cdable_v)144 646.8 Q(ars)-.1 E F0 .155(If set, an ar)184 658.8 R .155 -(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156 +F1(cdable_v)144 224.4 Q(ars)-.1 E F0 .156(If set, an ar)184 236.4 R .156 +(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155 (iltin command that is not a directory is assumed to be the).2 F -(name of a v)184 670.8 Q(ariable whose v)-.25 E -(alue is the directory to change to.)-.25 E F1(cdspell)144 682.8 Q F0 +(name of a v)184 248.4 Q(ariable whose v)-.25 E +(alue is the directory to change to.)-.25 E F1(cdspell)144 260.4 Q F0 1.055 (If set, minor errors in the spelling of a directory component in a) -10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987 -(corrected. The)184 694.8 R 1.487(errors check)3.987 F 1.487 -(ed for are transposed characters, a missing character)-.1 F 3.988(,a) --.4 G(nd)-3.988 E .552(one character too man)184 706.8 R 4.352 -.65 +10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988 +(corrected. The)184 272.4 R 1.488(errors check)3.988 F 1.487 +(ed for are transposed characters, a missing character)-.1 F 3.987(,a) +-.4 G(nd)-3.987 E .552(one character too man)184 284.4 R 4.352 -.65 (y. I)-.15 H 3.052(fac).65 G .552 (orrection is found, the corrected \214le name is printed, and)-3.052 F -(the command proceeds.)184 718.8 Q +(the command proceeds.)184 296.4 Q (This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.) -.15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(checkhash)144 84 Q F0 2.079(If set,)184 96 R F1(bash) -4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F -2.08(xists before trying to)-.15 F -.15(exe)184 108 S(cute it.).15 E +.15 E F1(checkhash)144 308.4 Q F0 2.08(If set,)184 320.4 R F1(bash)4.58 +E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079 +(xists before trying to)-.15 F -.15(exe)184 332.4 S(cute it.).15 E (If a hashed command no longer e)5 E -(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 120 Q -F0 .449(If set,)184 132 R F1(bash)2.949 E F0 .449 -(lists the status of an)2.949 F 2.949(ys)-.15 G .448 -(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15 -F -.15(ve)-.25 G 3.438(shell. If)184 144 R(an)3.438 E 3.438(yj)-.15 G -.938(obs are running, this causes the e)-3.438 F .938 -(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 1.456 -(attempted without an interv)184 156 R 1.456(ening command \(see)-.15 F -F1 1.456(JOB CONTR)3.956 F(OL)-.3 E F0(abo)3.956 E -.15(ve)-.15 G 3.956 -(\). The).15 F(shell)3.956 E(al)184 168 Q -.1(wa)-.1 G(ys postpones e).1 -E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)-2.5 E F1 -(checkwinsize)144 180 Q F0 .796(If set,)184 192 R F1(bash)3.296 E F0 -.796(checks the windo)3.296 F 3.296(ws)-.25 G .797 -(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G .797 -(pdates the)-3.297 F -.25(va)184 204 S(lues of).25 E/F2 9/Times-Bold@0 -SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A -F1(cmdhist)144 216 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202 +(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 344.4 +Q F0 .448(If set,)184 356.4 R F1(bash)2.948 E F0 .448 +(lists the status of an)2.948 F 2.949(ys)-.15 G .449 +(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15 +F -.15(ve)-.25 G 3.439(shell. If)184 368.4 R(an)3.439 E 3.439(yj)-.15 G +.938(obs are running, this causes the e)-3.439 F .938 +(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 2.203 +(attempted without an interv)184 380.4 R 2.203(ening command \(see)-.15 +F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E +-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 392.4 Q -.1(wa) +-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G +(obs are stopped.)-2.5 E F1(checkwinsize)144 404.4 Q F0 .797(If set,)184 +416.4 R F1(bash)3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G +.796(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G +.796(pdates the)-3.296 F -.25(va)184 428.4 S(lues of).25 E F3(LINES)2.5 +E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist) +144 440.4 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202 (attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202 (ll lines of a multiple-line command in the same history).15 F(entry)184 -228 Q 5(.T)-.65 G(his allo)-5 E -(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 240 Q -F0 .419(If set,)184 252 R F1(bash)2.919 E F0 .419(changes its beha)2.919 -F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar) --.15 F(guments)-.18 E(to the conditional command')184 264 Q 2.5(s=)-.55 -G 2.5(~o)-2.5 G(perator)-2.5 E(.)-.55 E F1(dirspell)144 276 Q F0 .859 -(If set,)7.77 F F1(bash)3.359 E F0 .858 +452.4 Q 5(.T)-.65 G(his allo)-5 E +(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 464.4 +Q F0 .42(If set,)184 476.4 R F1(bash)2.92 E F0 .42(changes its beha)2.92 +F .419(vior to that of v)-.2 F .419 +(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E +(to the conditional command')184 488.4 Q 2.5(s=)-.55 G 2.5(~o)-2.5 G +(perator)-2.5 E(.)-.55 E F1(compat32)144 500.4 Q F0 1.409(If set,)184 +512.4 R F1(bash)3.909 E F0 1.409(changes its beha)3.909 F 1.409 +(vior to that of v)-.2 F 1.41 +(ersion 3.2 with respect to locale-speci\214c)-.15 F +(string comparison when using the conditional command')184 524.4 Q 2.5 +(s operators.)-2.5 E F1(compat40)144 536.4 Q F0 1.41 +(If set,)184 548.4 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F +1.409(vior to that of v)-.2 F 1.409 +(ersion 4.0 with respect to locale-speci\214c)-.15 F 1.692 +(string comparison when using the conditional command')184 560.4 R 4.193 +(s operators and the)-4.193 F(ef)184 572.4 Q +(fect of interrupting a command list.)-.25 E F1(dirspell)144 584.4 Q F0 +.859(If set,)7.77 F F1(bash)3.359 E F0 .858 (attempts spelling correction on directory names during w)3.359 F .858 (ord completion if)-.1 F -(the directory name initially supplied does not e)184 288 Q(xist.)-.15 E -F1(dotglob)144 300 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165 +(the directory name initially supplied does not e)184 596.4 Q(xist.)-.15 +E F1(dotglob)144 608.4 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165 (includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i) -.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F -(xpansion.)-.15 E F1(execfail)144 312 Q F0 1.387 +(xpansion.)-.15 E F1(execfail)144 620.4 Q F0 1.387 (If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386 (hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G -1.386(cute the \214le speci\214ed as an).15 F(ar)184 324 Q +1.386(cute the \214le speci\214ed as an).15 F(ar)184 632.4 Q (gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E (An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 -E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 336 Q F0 -.716(If set, aliases are e)184 348 R .717(xpanded as described abo)-.15 -F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .717 -(This option is enabled)5.217 F(by def)184 360 Q(ault for interacti)-.1 -E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 372 Q(ug)-.2 E F0 -(If set, beha)184 384 Q(vior intended for use by deb)-.2 E -(uggers is enabled:)-.2 E F1(1.)184 396 Q F0(The)28.5 E F14.251 E -F0 1.751(option to the)4.251 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu) -4.251 G 1.751(iltin displays the source \214le name and line).2 F -(number corresponding to each function name supplied as an ar)220 408 Q -(gument.)-.18 E F1(2.)184 420 Q F0 1.667(If the command run by the)28.5 -F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F -1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 432 -Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 444 Q F0 .841 +E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 644.4 Q +F0 .716(If set, aliases are e)184 656.4 R .717(xpanded as described abo) +-.15 F 1.017 -.15(ve u)-.15 H(nder).15 E F3(ALIASES)3.217 E F4(.)A F0 +.717(This option is enabled)5.217 F(by def)184 668.4 Q +(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 +680.4 Q(ug)-.2 E F0(If set, beha)184 692.4 Q +(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184 +704.4 Q F0(The)28.5 E F14.251 E F0 1.751(option to the)4.251 F F1 +(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751 +(iltin displays the source \214le name and line).2 F +(number corresponding to each function name supplied as an ar)220 716.4 +Q(gument.)-.18 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 +E 0 Cg EP +%%Page: 17 17 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF(2.)184 84 Q F0 1.667(If the command run by the)28.5 F +F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F 1.667 +(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 96 Q +-.15(xe)-.15 G(cuted.).15 E F1(3.)184 108 Q F0 .841 (If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841 (trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15 -(exe)220 456 S .488 +(exe)220 120 S .488 (cuting in a subroutine \(a shell function or a shell script e).15 F -.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1 -(sour)220 468 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1 --.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1 26(4. B)184 -480 R(ASH_ARGC)-.3 E F0(and)3.776 E F1 -.3(BA)3.776 G(SH_ARGV).3 E F0 -1.275(are updated as described in their descrip-)3.776 F(tions abo)220 -492 Q -.15(ve)-.15 G(.).15 E F1(5.)184 504 Q F0 1.359 +(sour)220 132 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1 +-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 144 Q +/F2 9/Times-Bold@0 SF -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.154 E F2 +-.27(BA)3.404 G(SH_ARGV).27 E F0 .904 +(are updated as described in their descriptions)3.154 F(abo)220 156 Q +-.15(ve)-.15 G(.).15 E F1(5.)184 168 Q F0 1.359 (Function tracing is enabled:)28.5 F 1.359 (command substitution, shell functions, and sub-)6.359 F(shells in)220 -516 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10 +180 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F3 10 /Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1 (DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.) -184 528 Q F0 .805(Error tracing is enabled:)28.5 F .804 -(command substitution, shell functions, and subshells)5.805 F(in)220 540 -Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4 +184 192 Q F0 .805(Error tracing is enabled:)28.5 F .804 +(command substitution, shell functions, and subshells)5.805 F(in)220 204 +Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F3 (command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E(OR)-.3 E F0 -(trap.)2.5 E F1(extglob)144 552 Q F0 .4(If set, the e)8.89 F .4 +(trap.)2.5 E F1(extglob)144 216 Q F0 .4(If set, the e)8.89 F .4 (xtended pattern matching features described abo)-.15 F .7 -.15(ve u) --.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 564 Q -F0(are enabled.)2.5 E F1(extquote)144 576 Q F0 2.473(If set,)184 588 R -F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973 -E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within) --4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G -(pansions).15 E(enclosed in double quotes.)184 600 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 612 Q F0 +-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 228 Q +F0(are enabled.)2.5 E F1(extquote)144 240 Q F0 2.473(If set,)184 252 R +F1($)4.973 E F0<08>A F3(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973 +E F0(")A F3(string)A F0 4.973("q)C 2.473(uoting is performed within) +-4.973 F F1(${)4.973 E F3(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G +(pansions).15 E(enclosed in double quotes.)184 264 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 276 Q F0 1.424(If set, patterns which f)7.77 F 1.425 (ail to match \214lenames during pathname e)-.1 F 1.425 -(xpansion result in an)-.15 F -.15(ex)184 624 S(pansion error).15 E(.) --.55 E F1 -.25(fo)144 636 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 -.585(If set, the suf)184 648 R<8c78>-.25 E .585(es speci\214ed by the) --.15 F F1(FIGNORE)3.085 E F0 .585(shell v)3.085 F .585(ariable cause w) --.25 F .585(ords to be ignored)-.1 F .32(when performing w)184 660 R .32 +(xpansion result in an)-.15 F -.15(ex)184 288 S(pansion error).15 E(.) +-.55 E F1 -.25(fo)144 300 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0 +.937(If set, the suf)184 312 R<8c78>-.25 E .936(es speci\214ed by the) +-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w) +-.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 324 R .32 (ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32 -(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 3.33 -(pletions. See)184 672 R F2 .83(SHELL V)3.33 F(ARIABLES)-1.215 E F0(abo) -3.08 E 1.13 -.15(ve f)-.15 H .829(or a description of).15 F F1(FIGNORE) -3.329 E F0 5.829(.T)C .829(his option)-5.829 F(is enabled by def)184 684 -Q(ault.)-.1 E F1(globstar)144 696 Q F0 .439(If set, the pattern)5 F F1 -(**)2.939 E F0 .439(used in a \214lename e)2.939 F .439(xpansion conte) --.15 F .44(xt will match a \214les and zero or)-.15 F 1.298 -(more directories and subdirectories.)184 708 R 1.298 +(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948 +(pletions. See)184 336 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0 +(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2 +(FIGNORE)2.947 E/F4 9/Times-Roman@0 SF(.)A F0 .447(This option is)4.947 +F(enabled by def)184 348 Q(ault.)-.1 E F1(globstar)144 360 Q F0 .178 +(If set, the pattern)5 F F1(**)2.678 E F0 .178(used in a pathname e) +2.678 F .178(xpansion conte)-.15 F .179 +(xt will match a \214les and zero or)-.15 F 1.298 +(more directories and subdirectories.)184 372 R 1.298 (If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0 3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184 -720 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP -%%Page: 17 17 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(gnu_errfmt)144 84 Q F0(If set, shell error messages ar\ -e written in the standard GNU error message format.)184 96 Q F1 -(histappend)144 108 Q F0 .383 +384 Q F1(gnu_errfmt)144 396 Q F0(If set, shell error messages are writt\ +en in the standard GNU error message format.)184 408 Q F1(histappend)144 +420 Q F0 .676 (If set, the history list is appended to the \214le named by the v)184 -120 R .384(alue of the)-.25 F F1(HISTFILE)2.884 E F0 -.25(va)2.884 G -(ri-).25 E(able when the shell e)184 132 Q(xits, rather than o)-.15 E --.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 144 Q(eedit)-.18 -E F0 .576(If set, and)184 156 R F1 -.18(re)3.076 G(adline).18 E F0 .575 +432 R .676(alue of the)-.25 F F2(HISTFILE)3.177 E F0 -.25(va)2.927 G +(ri-).25 E(able when the shell e)184 444 Q(xits, rather than o)-.15 E +-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 456 Q(eedit)-.18 +E F0 .576(If set, and)184 468 R F1 -.18(re)3.076 G(adline).18 E F0 .575 (is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575 (he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F -(tory substitution.)184 168 Q F1(histv)144 180 Q(erify)-.1 E F0 .402 -(If set, and)184 192 R F1 -.18(re)2.903 G(adline).18 E F0 .403 +(tory substitution.)184 480 Q F1(histv)144 492 Q(erify)-.1 E F0 .402 +(If set, and)184 504 R F1 -.18(re)2.903 G(adline).18 E F0 .403 (is being used, the results of history substitution are not immediately) -2.903 F .662(passed to the shell parser)184 204 R 5.662(.I)-.55 G .661 +2.903 F .662(passed to the shell parser)184 516 R 5.662(.I)-.55 G .661 (nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161 -G(adline).18 E F0(editing)3.161 E -.2(bu)184 216 S -.25(ff).2 G(er).25 E +G(adline).18 E F0(editing)3.161 E -.2(bu)184 528 S -.25(ff).2 G(er).25 E 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1 -(hostcomplete)144 228 Q F0 1.181(If set, and)184 240 R F1 -.18(re)3.681 +(hostcomplete)144 540 Q F0 1.181(If set, and)184 552 R F1 -.18(re)3.681 G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182 (will attempt to perform hostname completion)3.682 F 1.381(when a w)184 -252 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381 +564 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381 (is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E -/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 264 Q -.15(ve)-.15 G -2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 -276 Q F0(If set,)184 288 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP) -2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H -(ogin shell e).15 E(xits.)-.15 E F1(interacti)144 300 Q -.1(ve)-.1 G -(_comments).1 E F0 .33(If set, allo)184 312 R 2.83(waw)-.25 G .33 -(ord be)-2.93 F .33(ginning with)-.15 F F1(#)2.83 E F0 .33 -(to cause that w)2.83 F .33(ord and all remaining characters on)-.1 F -.967(that line to be ignored in an interacti)184 324 R 1.267 -.15(ve s) --.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve) --.15 G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 -336 Q(ault.)-.1 E F1(lithist)144 348 Q F0 .654(If set, and the)15.55 F -F1(cmdhist)3.154 E F0 .654 -(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G -3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F -(with embedded ne)184 360 Q +F2(READLINE)3.88 E F0(abo)184 576 Q -.15(ve)-.15 G 2.5(\). This).15 F +(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 588 Q F0(If set,) +184 600 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0 +(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e) +.15 E(xits.)-.15 E F1(interacti)144 612 Q -.1(ve)-.1 G(_comments).1 E F0 +.33(If set, allo)184 624 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33 +(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33 +(ord and all remaining characters on)-.1 F .967 +(that line to be ignored in an interacti)184 636 R 1.267 -.15(ve s)-.25 +H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15 +G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 648 Q +(ault.)-.1 E F1(lithist)144 660 Q F0 .654(If set, and the)15.55 F F1 +(cmdhist)3.154 E F0 .654(option is enabled, multi-line commands are sa) +3.154 F -.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history) +-3.155 F(with embedded ne)184 672 Q (wlines rather than using semicolon separators where possible.)-.25 E F1 -(login_shell)144 372 Q F0 .486 +(login_shell)144 684 Q F0 .486 (The shell sets this option if it is started as a login shell \(see)184 -384 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve) --.15 G 2.986(\). The).15 F -.25(va)184 396 S(lue may not be changed.).25 -E F1(mailwar)144 408 Q(n)-.15 E F0 .814(If set, and a \214le that)184 -420 R F1(bash)3.314 E F0 .815 +696 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve) +-.15 G 2.986(\). The).15 F -.25(va)184 708 S(lue may not be changed.).25 +E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP +%%Page: 18 18 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF(mailwar)144 84 Q(n)-.15 E F0 .814 +(If set, and a \214le that)184 96 R F1(bash)3.314 E F0 .815 (is checking for mail has been accessed since the last time it)3.314 F --.1(wa)184 432 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E -(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0 +-.1(wa)184 108 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E +(`The mail in)-.74 E/F2 10/Times-Italic@0 SF(mail\214le)2.5 E F0 (has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1 -(no_empty_cmd_completion)144 444 Q F0 .146(If set, and)184 456 R F1 -.18 -(re)2.646 G(adline).18 E F0 .146(is being used,)2.646 F F1(bash)2.646 E -F0 .145(will not attempt to search the)2.646 F F1 -.74(PA)2.645 G(TH) --.21 E F0 .145(for possible)2.645 F -(completions when completion is attempted on an empty line.)184 468 Q F1 -(nocaseglob)144 480 Q F0 .436(If set,)184 492 R F1(bash)2.936 E F0 .436 +(no_empty_cmd_completion)144 120 Q F0 .325(If set, and)184 132 R F1 -.18 +(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E +F0 .324(will not attempt to search the)2.824 F/F3 9/Times-Bold@0 SF +-.666(PA)2.824 G(TH)-.189 E F0 .324(for possible)2.574 F +(completions when completion is attempted on an empty line.)184 144 Q F1 +(nocaseglob)144 156 Q F0 .436(If set,)184 168 R F1(bash)2.936 E F0 .436 (matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25 -H .437(ashion when performing pathname).05 F -.15(ex)184 504 S +H .437(ashion when performing pathname).05 F -.15(ex)184 180 S (pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E --.15(ve)-.15 G(\).).15 E F1(nocasematch)144 516 Q F0 1.194(If set,)184 -528 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti) +-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 192 Q F0 1.194(If set,)184 +204 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti) 3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05 -F(while e)184 540 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5 -E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 552 Q F0 -.854(If set,)184 564 R F1(bash)3.354 E F0(allo)3.354 E .855 +F(while e)184 216 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5 +E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 228 Q F0 +.854(If set,)184 240 R F1(bash)3.354 E F0(allo)3.354 E .855 (ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855 (thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o) --3.355 E -.15(ex)184 576 S(pand to a null string, rather than themselv) -.15 E(es.)-.15 E F1(pr)144 588 Q(ogcomp)-.18 E F0 .677 -(If set, the programmable completion f)184 600 R .677(acilities \(see) +-3.355 E -.15(ex)184 252 S(pand to a null string, rather than themselv) +.15 E(es.)-.15 E F1(pr)144 264 Q(ogcomp)-.18 E F0 .677 +(If set, the programmable completion f)184 276 R .677(acilities \(see) -.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E --.15(ve)-.15 G(\)).15 E(are enabled.)184 612 Q -(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 624 Q(omptv) --.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 636 R 1.448 +-.15(ve)-.15 G(\)).15 E(are enabled.)184 288 Q +(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 300 Q(omptv) +-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 312 R 1.448 (go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic) --.15 F -.15(ex)184 648 S .171(pansion, and quote remo).15 F -.25(va)-.15 +-.15 F -.15(ex)184 324 S .171(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in) --.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E -(This option is enabled by def)184 660 Q(ault.)-.1 E F1 -.18(re)144 672 +-.15 F F3(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E +(This option is enabled by def)184 336 Q(ault.)-.1 E F1 -.18(re)144 348 S(stricted_shell).18 E F0 1.069 (The shell sets this option if it is started in restricted mode \(see) -184 684 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 696 Q 4.178 +184 360 R F3 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 372 Q 4.178 (w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F 1.678(This is not reset when the startup \214les are)6.678 F -.15(exe) -184 708 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E +184 384 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E -(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP -%%Page: 18 18 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(shift_v)144 84 Q(erbose)-.1 E F0 .501(If set, the)184 -96 R F1(shift)3.001 E F0 -.2(bu)3.001 G .501 +F1(shift_v)144 396 Q(erbose)-.1 E F0 .501(If set, the)184 408 R F1 +(shift)3.001 E F0 -.2(bu)3.001 G .501 (iltin prints an error message when the shift count e).2 F .502 -(xceeds the number)-.15 F(of positional parameters.)184 108 Q F1(sour) -144 120 Q(cepath)-.18 E F0 .771(If set, the)184 132 R F1(sour)3.271 E +(xceeds the number)-.15 F(of positional parameters.)184 420 Q F1(sour) +144 432 Q(cepath)-.18 E F0 .771(If set, the)184 444 R F1(sour)3.271 E (ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v) --3.471 F .771(alue of)-.25 F/F2 9/Times-Bold@0 SF -.666(PA)3.27 G(TH) --.189 E F0 .77(to \214nd the directory containing the)3.02 F -(\214le supplied as an ar)184 144 Q 2.5(gument. This)-.18 F -(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 156 Q F0 -(If set, the)184 168 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E -(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend) -108 180 Q F0([)2.5 E F1A F0(])A 1.001(Suspend the e)144 192 R -.15 -(xe)-.15 G 1.001(cution of this shell until it recei).15 F -.15(ve)-.25 -G 3.501(sa).15 G F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002 -(login shell cannot be)3.502 F .023(suspended; the)144 204 R F1 -2.523 E F0 .023(option can be used to o)2.523 F -.15(ve)-.15 G .022 +-3.471 F .771(alue of)-.25 F F3 -.666(PA)3.27 G(TH)-.189 E F0 .77 +(to \214nd the directory containing the)3.02 F(\214le supplied as an ar) +184 456 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.) +-.1 E F1(xpg_echo)144 468 Q F0(If set, the)184 480 Q F1(echo)2.5 E F0 +-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15 +E(ault.)-.1 E F1(suspend)108 492 Q F0([)2.5 E F1A F0(])A 1.001 +(Suspend the e)144 504 R -.15(xe)-.15 G 1.001 +(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G +F3(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be) +3.502 F .023(suspended; the)144 516 R F12.523 E F0 .023 +(option can be used to o)2.523 F -.15(ve)-.15 G .022 (rride this and force the suspension.).15 F .022(The return status is) -5.022 F 2.5(0u)144 216 S(nless the shell is a login shell and)-2.5 E F1 +5.022 F 2.5(0u)144 528 S(nless the shell is a login shell and)-2.5 E F1 2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E -F1(test)108 228 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108 -240 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15 +F1(test)108 540 Q F2 -.2(ex)2.5 G(pr).2 E F1([)108 552 Q F2 -.2(ex)2.5 G +(pr).2 E F1(])2.5 E F0 1.15 (Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15 -(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G +(luation of the conditional e).25 F(xpression)-.15 E F2 -.2(ex)3.65 G (pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188 -(operator and operand must be a separate ar)144 252 R 3.688 +(operator and operand must be a separate ar)144 564 R 3.688 (gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F -1.889(described abo)144 264 R 2.189 -.15(ve u)-.15 H(nder).15 E F2 +1.889(described abo)144 576 R 2.189 -.15(ve u)-.15 H(nder).15 E F3 (CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89 -(ptions, nor)-4.39 F(does it accept and ignore an ar)144 276 Q +(ptions, nor)-4.39 F(does it accept and ignore an ar)144 588 Q (gument of)-.18 E F12.5 E F0(as signifying the end of options.)2.5 -E .786(Expressions may be combined using the follo)144 294 R .785 +E .786(Expressions may be combined using the follo)144 606 R .785 (wing operators, listed in decreasing order of prece-)-.25 F 2.5 -(dence. The)144 306 R -.25(eva)2.5 G +(dence. The)144 618 R -.25(eva)2.5 G (luation depends on the number of ar).25 E(guments; see belo)-.18 E -.65 -(w.)-.25 G F1(!)144 318 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G -(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\() -144 330 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77 -F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26 +(w.)-.25 G F1(!)144 630 Q F2 -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)12.6 G +(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\() +144 642 Q F2 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)6.77 +F .26(alue of)-.25 F F2 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26 (his may be used to o)-5.26 F -.15(ve)-.15 G .26 -(rride the normal precedence of opera-).15 F(tors.)180 342 Q F3 -.2(ex) -144 354 S(pr1).2 E F02.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35 -(Tr)180 366 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3 --.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 378 S(pr1).2 E -F02.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 390 S -(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G -(pr2).2 E F0(is true.)2.52 E F1(test)144 406.8 Q F0(and)2.5 E F1([)2.5 E +(rride the normal precedence of opera-).15 F(tors.)180 654 Q F2 -.2(ex) +144 666 S(pr1).2 E F02.5 E F1(a)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35 +(Tr)180 678 S(ue if both).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F2 +-.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F2 -.2(ex)144 690 S(pr1).2 E +F02.5 E F1(o)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 702 S +(ue if either).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F2 -.2(ex)2.5 G +(pr2).2 E F0(is true.)2.52 E F1(test)144 718.8 Q F0(and)2.5 E F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E (xpressions using a set of rules based on the number of ar)-.15 E -(guments.)-.18 E 2.5(0a)144 424.8 S -.18(rg)-2.5 G(uments).18 E(The e) -180 436.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 448.8 S -.18 -(rg)-2.5 G(ument).18 E(The e)180 460.8 Q +(guments.)-.18 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(18)198.725 +E 0 Cg EP +%%Page: 19 19 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(0a)144 +84 S -.18(rg)-2.5 G(uments).18 E(The e)180 96 Q(xpression is f)-.15 E +(alse.)-.1 E 2.5(1a)144 108 S -.18(rg)-2.5 G(ument).18 E(The e)180 120 Q (xpression is true if and only if the ar)-.15 E(gument is not null.)-.18 -E 2.5(2a)144 472.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar) -180 484.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87 -F .37(xpression is true if and only if the second ar)-.15 F .37 -(gument is null.)-.18 F .379(If the \214rst ar)180 496.8 R .38 +E 2.5(2a)144 132 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)180 +144 R .37(gument is)-.18 F/F1 10/Times-Bold@0 SF(!)2.87 E F0 2.87(,t)C +.37(he e)-2.87 F .37(xpression is true if and only if the second ar)-.15 +F .37(gument is null.)-.18 F .379(If the \214rst ar)180 156 R .38 (gument is one of the unary conditional operators listed abo)-.18 F .68 --.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 508.8 Q .553 -(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552 -(xpression is true if the unary test is true.)-.15 F .552 -(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 520.8 Q +-.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180 +168 Q .553(AL EXPRESSIONS)-.18 F/F3 9/Times-Roman@0 SF(,)A F0 .552 +(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F +.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 180 Q (alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E -(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 532.8 S -.18(rg)-2.5 G -(uments).18 E .023(If the second ar)180 544.8 R .023 +(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 192 S -.18(rg)-2.5 G +(uments).18 E .023(If the second ar)180 204 R .023 (gument is one of the binary conditional operators listed abo)-.18 F -.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 556.8 Q -1.478(AL EXPRESSIONS)-.18 F F4(,)A F0 1.477(the result of the e)3.727 F -1.477(xpression is the result of the binary test)-.15 F .513 -(using the \214rst and third ar)180 568.8 R .513(guments as operands.) --.18 F(The)5.513 E F13.013 E F0(and)3.013 E F13.013 E F0 -.513(operators are considered)3.013 F .972 -(binary operators when there are three ar)180 580.8 R 3.472(guments. If) +.324 -.15(ve u)-.15 H(nder).15 E F2(CON-)2.524 E(DITION)180 216 Q 1.478 +(AL EXPRESSIONS)-.18 F F3(,)A F0 1.477(the result of the e)3.727 F 1.477 +(xpression is the result of the binary test)-.15 F .513 +(using the \214rst and third ar)180 228 R .513(guments as operands.)-.18 +F(The)5.513 E F13.013 E F0(and)3.013 E F13.013 E F0 .513 +(operators are considered)3.013 F .972 +(binary operators when there are three ar)180 240 R 3.472(guments. If) -.18 F .972(the \214rst ar)3.472 F .972(gument is)-.18 F F1(!)3.472 E F0 -3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 592.8 -R -.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884 +3.472(,t)C .972(he v)-3.472 F .972(alue is)-.25 F .883(the ne)180 252 R +-.05(ga)-.15 G .883(tion of the tw).05 F(o-ar)-.1 E .884 (gument test using the second and third ar)-.18 F 3.384(guments. If)-.18 -F .884(the \214rst)3.384 F(ar)180 604.8 Q .875(gument is e)-.18 F -(xactly)-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875 -(gument is e)-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874 +F .884(the \214rst)3.384 F(ar)180 264 Q .875(gument is e)-.18 F(xactly) +-.15 E F1(\()3.375 E F0 .875(and the third ar)3.375 F .875(gument is e) +-.18 F(xactly)-.15 E F1(\))3.375 E F0 3.374(,t)C .874 (he result is the one-ar)-3.374 F(gument)-.18 E(test of the second ar) -180 616.8 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f) --.15 E(alse.)-.1 E 2.5(4a)144 628.8 S -.18(rg)-2.5 G(uments).18 E .384 -(If the \214rst ar)180 640.8 R .384(gument is)-.18 F F1(!)2.884 E F0 -2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385 +180 276 Q 2.5(gument. Otherwise,)-.18 F(the e)2.5 E(xpression is f)-.15 +E(alse.)-.1 E 2.5(4a)144 288 S -.18(rg)-2.5 G(uments).18 E .384 +(If the \214rst ar)180 300 R .384(gument is)-.18 F F1(!)2.884 E F0 2.885 +(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15 G .385 (tion of the three-ar).05 F .385(gument e)-.18 F .385(xpression com-) --.15 F 1.648(posed of the remaining ar)180 652.8 R 4.147 +-.15 F 1.648(posed of the remaining ar)180 312 R 4.147 (guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647 (xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E -(according to precedence using the rules listed abo)180 664.8 Q -.15(ve) --.15 G(.).15 E 2.5(5o)144 676.8 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments) --.18 E 1.635(The e)180 688.8 R 1.635(xpression is parsed and e)-.15 F --.25(va)-.25 G 1.635 -(luated according to precedence using the rules listed).25 F(abo)180 -700.8 Q -.15(ve)-.15 G(.).15 E F1(times)108 717.6 Q F0 1.229(Print the \ -accumulated user and system times for the shell and for processes run f\ -rom the shell.)13.23 F(The return status is 0.)144 729.6 Q(GNU Bash-4.0) -72 768 Q(2004 Apr 20)148.735 E(18)198.725 E 0 Cg EP -%%Page: 19 19 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF(trap)108 84 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 -E/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...]) -2.5 E .702(The command)144 96 R F2(ar)3.532 E(g)-.37 E F0 .702 +(according to precedence using the rules listed abo)180 324 Q -.15(ve) +-.15 G(.).15 E 2.5(5o)144 336 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18 +E 1.635(The e)180 348 R 1.635(xpression is parsed and e)-.15 F -.25(va) +-.25 G 1.635(luated according to precedence using the rules listed).25 F +(abo)180 360 Q -.15(ve)-.15 G(.).15 E F1(times)108 376.8 Q F0 1.229(Pri\ +nt the accumulated user and system times for the shell and for processe\ +s run from the shell.)13.23 F(The return status is 0.)144 388.8 Q F1 +(trap)108 405.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F4 10 +/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F4(sigspec)2.5 E F0(...])2.5 E +.702(The command)144 417.6 R F4(ar)3.532 E(g)-.37 E F0 .702 (is to be read and e)3.422 F -.15(xe)-.15 G .702 (cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G -(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2 +(ignal\(s\))-3.203 E F4(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F4 (ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single) -144 108 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F13.108 E F0 -3.108(,e)C .608 +144 429.6 R F4(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F13.108 E +F0 3.108(,e)C .608 (ach speci\214ed signal is reset to its original disposition)-3.108 F -.658(\(the v)144 120 R .658(alue it had upon entrance to the shell\).) --.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659 -(is the null string the signal speci\214ed by each)3.378 F F2(sigspec) -144.34 132 Q F0 .581(is ignored by the shell and by the commands it in) -3.391 F -.2(vo)-.4 G -.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E -F0 .58(is not present and)3.3 F F13.08 E F0(has)3.08 E 1.214 -(been supplied, then the trap commands associated with each)144 144 R F2 -(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215 F -(gu-)-.18 E .86(ments are supplied or if only)144 156 R F13.36 E -F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86 +.658(\(the v)144 441.6 R .658(alue it had upon entrance to the shell\).) +-.25 F(If)5.658 E F4(ar)3.488 E(g)-.37 E F0 .659 +(is the null string the signal speci\214ed by each)3.378 F F4(sigspec) +144.34 453.6 Q F0 .581 +(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G +-.1(ke).2 G 3.08(s. If).1 F F4(ar)3.41 E(g)-.37 E F0 .58 +(is not present and)3.3 F F13.08 E F0(has)3.08 E 1.214 +(been supplied, then the trap commands associated with each)144 465.6 R +F4(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215 +F(gu-)-.18 E .86(ments are supplied or if only)144 477.6 R F13.36 +E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86 (prints the list of commands associated with each)3.36 F 2.83 -(signal. The)144 168 R F12.83 E F0 .33(option causes the shell to\ - print a list of signal names and their corresponding num-)2.83 F 4.311 -(bers. Each)144 180 R F2(sigspec)4.651 E F0 1.811 -(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81 -(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E .745 -(names are case insensiti)144 192 R 1.045 -.15(ve a)-.25 H .745 -(nd the SIG pre\214x is optional.).15 F .745(If a)5.745 F F2(sigspec) -3.585 E F0(is)3.555 E/F3 9/Times-Bold@0 SF(EXIT)3.245 E F0 .745 -(\(0\) the command)2.995 F F2(ar)144.33 204 Q(g)-.37 E F0 1.63(is e)4.35 -F -.15(xe)-.15 G 1.63(cuted on e).15 F 1.63(xit from the shell.)-.15 F -1.63(If a)6.63 F F2(sigspec)4.47 E F0(is)4.44 E F3(DEB)4.13 E(UG)-.09 E -/F4 9/Times-Roman@0 SF(,)A F0 1.629(the command)3.88 F F2(ar)4.459 E(g) --.37 E F0 1.629(is e)4.349 F -.15(xe)-.15 G(cuted).15 E 1.206(before e) -144 216 R -.15(ve)-.25 G(ry).15 E F2 1.206(simple command)3.706 F F0(,)A -F2(for)3.706 E F0(command,)3.706 E F2(case)3.706 E F0(command,)3.706 E -F2(select)3.707 E F0 1.207(command, e)3.707 F -.15(ve)-.25 G 1.207 -(ry arithmetic).15 F F2(for)144 228 Q F0 .412 -(command, and before the \214rst command e)2.913 F -.15(xe)-.15 G .412 -(cutes in a shell function \(see).15 F F3 .412(SHELL GRAMMAR)2.912 F F0 -(abo)144 240 Q -.15(ve)-.15 G 2.665(\). Refer).15 F .166 -(to the description of the)2.665 F F1(extdeb)2.666 E(ug)-.2 E F0 .166 -(option to the)2.666 F F1(shopt)2.666 E F0 -.2(bu)2.666 G .166 -(iltin for details of its ef).2 F(fect)-.25 E .509(on the)144 252 R F1 -(DEB)3.009 E(UG)-.1 E F0 3.009(trap. If)3.009 F(a)3.009 E F2(sigspec) -3.348 E F0(is)3.318 E F3(ERR)3.008 E F4(,)A F0 .508(the command)2.758 F -F2(ar)3.338 E(g)-.37 E F0 .508(is e)3.228 F -.15(xe)-.15 G .508 -(cuted whene).15 F -.15(ve)-.25 G 3.008(ras).15 G .508(imple com-)-3.008 -F 2.506(mand has a non\255zero e)144 264 R 2.506 -(xit status, subject to the follo)-.15 F 2.506(wing conditions.)-.25 F -(The)7.506 E F3(ERR)5.006 E F0 2.506(trap is not)4.756 F -.15(exe)144 -276 S .105(cuted if the f).15 F .105 -(ailed command is part of the command list immediately follo)-.1 F .105 -(wing a)-.25 F F1(while)2.605 E F0(or)2.605 E F1(until)2.605 E F0 -.1 -(ke)144 288 S(yw)-.05 E .549(ord, part of the test in an)-.1 F F2(if) -3.059 E F0 .549(statement, part of a command e)5.009 F -.15(xe)-.15 G -.549(cuted in a).15 F F1(&&)3.049 E F0(or)3.049 E/F5 10/Symbol SF -3.049 E F0 .549(list, or if)3.049 F .578(the command')144 300 R 3.078 -(sr)-.55 G .578(eturn v)-3.078 F .578(alue is being in)-.25 F -.15(ve) --.4 G .578(rted via).15 F F1(!)3.078 E F0 5.577(.T)C .577 -(hese are the same conditions obe)-5.577 F .577(yed by the)-.15 F F1 -(err)144 312 Q(exit)-.18 E F0 3.03(option. If)3.03 F(a)3.03 E F2 -(sigspec)3.37 E F0(is)3.341 E F3(RETURN)3.031 E F4(,)A F0 .531 -(the command)2.781 F F2(ar)3.361 E(g)-.37 E F0 .531(is e)3.251 F -.15 -(xe)-.15 G .531(cuted each time a shell function).15 F .317 -(or a script e)144 324 R -.15(xe)-.15 G .317(cuted with the).15 F F1(.) -2.817 E F0(or)2.817 E F1(sour)2.817 E(ce)-.18 E F0 -.2(bu)2.817 G .317 -(iltins \214nishes e).2 F -.15(xe)-.15 G 2.817(cuting. Signals).15 F -.316(ignored upon entry to)2.817 F .787 -(the shell cannot be trapped or reset.)144 336 R -.35(Tr)5.787 G .787 -(apped signals that are not being ignored are reset to their).35 F 1.1 -(original v)144 348 R 1.1(alues in a child process when it is created.) --.25 F 1.1(The return status is f)6.1 F 1.1(alse if an)-.1 F(y)-.15 E F2 -(sigspec)3.94 E F0(is)3.91 E(in)144 360 Q -.25(va)-.4 G(lid; otherwise) -.25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108 376.8 Q F0([)2.5 -E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E --.4(Wi)144 388.8 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G -(ach)-2.673 E F2(name)3.033 E F0 -.1(wo)2.853 G .174 +(signal. The)144 489.6 R F12.83 E F0 .33(option causes the shell \ +to print a list of signal names and their corresponding num-)2.83 F +4.311(bers. Each)144 501.6 R F4(sigspec)4.651 E F0 1.811 +(is either a signal name de\214ned in <)4.621 F F4(signal.h)A F0 1.81 +(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E +(names are case insensiti)144 513.6 Q .3 -.15(ve a)-.25 H +(nd the SIG pre\214x is optional.).15 E 1.648(If a)144 531.6 R F4 +(sigspec)4.488 E F0(is)4.458 E F2(EXIT)4.148 E F0 1.648 +(\(0\) the command)3.898 F F4(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F +-.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)-.15 F +1.649(If a)6.649 F F4(sigspec)4.489 E F0(is)4.459 E F2(DEB)144 543.6 Q +(UG)-.09 E F3(,)A F0 1.168(the command)3.418 F F4(ar)3.998 E(g)-.37 E F0 +1.168(is e)3.888 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve) +-.25 G(ry).15 E F4 1.167(simple command)3.667 F F0(,)A F4(for)3.667 E F0 +(command,)3.667 E F4(case)3.667 E F0(com-)3.667 E(mand,)144 555.6 Q F4 +(select)2.646 E F0 .146(command, e)2.646 F -.15(ve)-.25 G .146 +(ry arithmetic).15 F F4(for)2.646 E F0 .147 +(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147 +(cutes in a).15 F .146(shell function \(see)144 567.6 R F2 .146 +(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15 +F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0 +.145(option to)2.645 F(the)144 579.6 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7 +(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG) +-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F4(sigspec)3.54 E F0(is)3.51 E F2 +(RETURN)3.2 E F3(,)A F0 .701(the com-)2.951 F(mand)144 591.6 Q F4(ar) +3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643 +(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G +.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce) +-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 603.6 Q -.15(xe) +-.15 G(cuting.).15 E .928(If a)144 621.6 R F4(sigspec)3.768 E F0(is) +3.738 E F2(ERR)3.429 E F3(,)A F0 .929(the command)3.179 F F4(ar)3.759 E +(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F +-.15(ve)-.25 G 3.429(ras).15 G .929(imple command has a non\255zero) +-3.429 F -.15(ex)144 633.6 S 1.009(it status, subject to the follo).15 F +1.009(wing conditions.)-.25 F(The)6.009 E F2(ERR)3.509 E F0 1.009 +(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008 +(ailed com-)-.1 F .324 +(mand is part of the command list immediately follo)144 645.6 R .324 +(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1 +(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F 1.129(in an)144 +657.6 R F4(if)3.639 E F0 1.129(statement, part of a command e)5.589 F +-.15(xe)-.15 G 1.129(cuted in a).15 F F1(&&)3.629 E F0(or)3.629 E/F5 10 +/Symbol SF3.629 E F0 1.129(list, or if the command')3.629 F 3.628 +(sr)-.55 G(eturn)-3.628 E -.25(va)144 669.6 S(lue is being in).25 E -.15 +(ve)-.4 G(rted via).15 E F1(!)2.5 E F0 5(.T)C +(hese are the same conditions obe)-5 E(yed by the)-.15 E F1(err)2.5 E +(exit)-.18 E F0(option.)2.5 E 1.095 +(Signals ignored upon entry to the shell cannot be trapped or reset.)144 +687.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662 +(being ignored are reset to their original v)144 699.6 R .662 +(alues in a subshell or subshell en)-.25 F .661(vironment when one is) +-.4 F 2.5(created. The)144 711.6 R(return status is f)2.5 E(alse if an) +-.1 E(y)-.15 E F4(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G +(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E(GNU Bash-4.0) +72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP +%%Page: 20 20 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Bold@0 SF(type)108 84 Q F0([)2.5 E F1(\255aftpP)A F0(])A/F2 10 +/Times-Italic@0 SF(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E -.4(Wi) +144 96 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 +E F2(name)3.033 E F0 -.1(wo)2.853 G .174 (uld be interpreted if used as a command name.).1 F .174(If the)5.174 F -F1144 400.8 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0 +F1144 108 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0 .843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0 (,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2 -(\214le)5.252 E F0(if)3.522 E F2(name)144.36 412.8 Q F0 .086 +(\214le)5.252 E F0(if)3.522 E F2(name)144.36 120 Q F0 .086 (is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086 (ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15 (ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2 (name)2.947 E F0 .087(is not)2.767 F .119 -(found, then nothing is printed, and an e)144 424.8 R .118 +(found, then nothing is printed, and an e)144 132 R .118 (xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F F12.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855 -(either returns the name of the disk \214le that w)144 436.8 R .855 +(either returns the name of the disk \214le that w)144 144 R .855 (ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0 .855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if) -144 448.8 R/F6 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141 -G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E -F13.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189 -E F0 .112(search for each)144 460.8 R F2(name)2.612 E F0 2.612(,e)C -.15 -(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F6 .113(type -t name)2.613 F F0 --.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I) -.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F12.613 E -F0(and)144 472.8 Q F12.945 E F0 .445(print the hashed v)2.945 F -.444(alue, not necessarily the \214le that appears \214rst in)-.25 F F3 --.666(PA)2.944 G(TH)-.189 E F4(.)A F0 .444(If the)4.944 F F12.944 -E F0(option)2.944 E .265(is used,)144 484.8 R F1(type)2.765 E F0 .265 -(prints all of the places that contain an e)2.765 F -.15(xe)-.15 G .265 -(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265 -(his includes aliases)-5.265 F .427(and functions, if and only if the) -144 496.8 R F12.926 E F0 .426(option is not also used.)2.926 F -.426(The table of hashed commands is not)5.426 F .548 -(consulted when using)144 508.8 R F13.048 E F0 5.548(.T)C(he) --5.548 E F13.048 E F0 .549 -(option suppresses shell function lookup, as with the)3.048 F F1 -(command)3.049 E F0 -.2(bu)144 520.8 S(iltin.).2 E F1(type)5 E F0 +144 156 R/F3 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141 G +.641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E F1 +3.14 E F0 .64(option forces a)3.14 F/F4 9/Times-Bold@0 SF -.666 +(PA)3.14 G(TH)-.189 E F0 .112(search for each)144 168 R F2(name)2.612 E +F0 2.612(,e)C -.15(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F3 .113 +(type -t name)2.613 F F0 -.1(wo)2.613 G .113(uld not return).1 F F2 +(\214le)2.613 E F0 5.113(.I).18 G 2.613(fac)-5.113 G .113 +(ommand is hashed,)-2.613 F F12.613 E F0(and)144 180 Q F1 +2.945 E F0 .445(print the hashed v)2.945 F .444 +(alue, not necessarily the \214le that appears \214rst in)-.25 F F4 +-.666(PA)2.944 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .444(If the) +4.944 F F12.944 E F0(option)2.944 E .265(is used,)144 192 R F1 +(type)2.765 E F0 .265(prints all of the places that contain an e)2.765 F +-.15(xe)-.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 +G .265(his includes aliases)-5.265 F .427 +(and functions, if and only if the)144 204 R F12.926 E F0 .426 +(option is not also used.)2.926 F .426 +(The table of hashed commands is not)5.426 F .548(consulted when using) +144 216 R F13.048 E F0 5.548(.T)C(he)-5.548 E F13.048 E F0 +.549(option suppresses shell function lookup, as with the)3.048 F F1 +(command)3.049 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0 (returns true if all of the ar)2.5 E(guments are found, f)-.18 E -(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 537.6 +(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 244.8 Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2 -(limit)A F0(]])A(Pro)144 549.6 Q .244(vides control o)-.15 F -.15(ve) +(limit)A F0(]])A(Pro)144 256.8 Q .244(vides control o)-.15 F -.15(ve) -.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244 (ilable to the shell and to processes started by it, on systems).25 F -.943(that allo)144 561.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F +.943(that allo)144 268.8 R 3.443(ws)-.25 G .943(uch control.)-3.443 F (The)5.943 E F13.443 E F0(and)3.443 E F13.444 E F0 .944 (options specify that the hard or soft limit is set for the)3.444 F(gi) -144 573.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208 +144 280.8 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208 (hard limit cannot be increased by a non-root user once it is set; a so\ -ft limit may)2.709 F .425(be increased up to the v)144 585.6 R .425 +ft limit may)2.709 F .425(be increased up to the v)144 292.8 R .425 (alue of the hard limit.)-.25 F .426(If neither)5.425 F F12.926 E F0(nor)2.926 E F12.926 E F0 .426 (is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144 -597.6 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139 +304.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139 (can be a number in the unit speci\214ed for the resource or one)3.319 F -.741(of the special v)144 609.6 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1 +.741(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1 (soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w) C .741(hich stand for the current hard limit, the current)-3.241 F .78 -(soft limit, and no limit, respecti)144 621.6 R -.15(ve)-.25 G(ly).15 E +(soft limit, and no limit, respecti)144 328.8 R -.15(ve)-.25 G(ly).15 E 5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78 (is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25 -F .498(resource is printed, unless the)144 633.6 R F12.999 E F0 +F .498(resource is printed, unless the)144 340.8 R F12.999 E F0 .499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499 (more than one resource is speci\214ed, the)2.999 F -(limit name and unit are printed before the v)144 645.6 Q 2.5 +(limit name and unit are printed before the v)144 352.8 Q 2.5 (alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1 -144 657.6 Q F0(All current limits are reported)25.3 E F1144 -669.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E -F1144 681.6 Q F0(The maximum size of core \214les created)25.86 E -F1144 693.6 Q F0(The maximum size of a process')24.74 E 2.5(sd) --.55 G(ata se)-2.5 E(gment)-.15 E F1144 705.6 Q F0 -(The maximum scheduling priority \("nice"\))25.86 E F1144 717.6 Q +144 364.8 Q F0(All current limits are reported)25.3 E F1144 +376.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E +F1144 388.8 Q F0(The maximum size of core \214les created)25.86 E +F1144 400.8 Q F0(The maximum size of a process')24.74 E 2.5(sd) +-.55 G(ata se)-2.5 E(gment)-.15 E F1144 412.8 Q F0 +(The maximum scheduling priority \("nice"\))25.86 E F1144 424.8 Q F0(The maximum size of \214les written by the shell and its children) -26.97 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(19)198.725 E 0 Cg EP -%%Page: 20 20 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 -(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 -/Times-Bold@0 SF144 84 Q F0(The maximum number of pending signals) -27.52 E F1144 96 Q F0(The maximum size that may be lock)27.52 E -(ed into memory)-.1 E F1144 108 Q F0 -(The maximum resident set size)21.97 E F1144 120 Q F0 .791(The ma\ -ximum number of open \214le descriptors \(most systems do not allo)24.74 -F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180 132 Q -F1144 144 Q F0 +26.97 E F1144 436.8 Q F0(The maximum number of pending signals) +27.52 E F1144 448.8 Q F0(The maximum size that may be lock)27.52 E +(ed into memory)-.1 E F1144 460.8 Q F0 +(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G +(ystems do not honor this limit\))-2.5 E F1144 472.8 Q F0 .791(Th\ +e maximum number of open \214le descriptors \(most systems do not allo) +24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180 +484.8 Q F1144 496.8 Q F0 (The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1 -144 156 Q F0(The maximum number of bytes in POSIX message queues) -24.74 E F1144 168 Q F0(The maximum real-time scheduling priority) -25.86 E F1144 180 Q F0(The maximum stack size)26.41 E F1144 -192 Q F0(The maximum amount of cpu time in seconds)26.97 E F1144 -204 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G -(ilable to a single user).25 E F1144 216 Q F0 +144 508.8 Q F0 +(The maximum number of bytes in POSIX message queues)24.74 E F1144 +520.8 Q F0(The maximum real-time scheduling priority)25.86 E F1144 +532.8 Q F0(The maximum stack size)26.41 E F1144 544.8 Q F0 +(The maximum amount of cpu time in seconds)26.97 E F1144 556.8 Q +F0(The maximum number of processes a)24.74 E -.25(va)-.2 G +(ilable to a single user).25 E F1144 568.8 Q F0 (The maximum amount of virtual memory a)25.3 E -.25(va)-.2 G -(ilable to the shell).25 E F1144 228 Q F0 -(The maximum number of \214le locks)25.3 E F1144 240 Q F0 -(The maximum number of threads)23.63 E(If)144 256.8 Q/F2 10 -/Times-Italic@0 SF(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G -.343(n, it is the ne).15 F 2.843(wv)-.25 G .343 -(alue of the speci\214ed resource \(the)-3.093 F F12.843 E F0 .343 -(option is display only\).)2.843 F .343(If no)5.343 F .176(option is gi) -144 268.8 R -.15(ve)-.25 G .176(n, then).15 F F12.676 E F0 .175 -(is assumed.)2.676 F -1.11(Va)5.175 G .175 +(ilable to the shell).25 E F1144 580.8 Q F0 +(The maximum number of \214le locks)25.3 E F1144 592.8 Q F0 +(The maximum number of threads)23.63 E(If)144 609.6 Q F2(limit)2.933 E +F0 .343(is gi)3.523 F -.15(ve)-.25 G .343(n, it is the ne).15 F 2.843 +(wv)-.25 G .343(alue of the speci\214ed resource \(the)-3.093 F F1 +2.843 E F0 .343(option is display only\).)2.843 F .343(If no)5.343 F +.176(option is gi)144 621.6 R -.15(ve)-.25 G .176(n, then).15 F F1 +2.676 E F0 .175(is assumed.)2.676 F -1.11(Va)5.175 G .175 (lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F1 -2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 280.8 +2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 633.6 Q F12.515 E F0 2.515(,w)C .015 (hich is in units of 512-byte blocks, and)-2.515 F F12.516 E F0(,) A F12.516 E F0(,)A F12.516 E F0 2.516(,a)C(nd)-2.516 E F1 2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E -3.788(ues. The)144 292.8 R 1.287(return status is 0 unless an in)3.787 F +3.788(ues. The)144 645.6 R 1.287(return status is 0 unless an in)3.787 F -.25(va)-.4 G 1.287(lid option or ar).25 F 1.287 (gument is supplied, or an error occurs)-.18 F(while setting a ne)144 -304.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 321.6 Q F0([)2.5 E F1 +657.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 674.4 Q F0([)2.5 E F1 A F0 2.5(][)C F1-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2 -(The user \214le-creation mask is set to)144 333.6 R F2(mode)2.7 E F0 +(The user \214le-creation mask is set to)144 686.4 R F2(mode)2.7 E F0 5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2 (gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\ therwise it is interpreted as a symbolic mode mask similar to that acce\ -pted by)144 345.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 -357.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382 +pted by)144 698.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144 +710.4 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382 (alue of the mask is printed.)-.25 F(The)5.382 E F12.882 E F0 .382 (option causes the mask to be)2.882 F .547 -(printed in symbolic form; the def)144 369.6 R .547 +(printed in symbolic form; the def)144 722.4 R .547 (ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G -(he)-3.047 E F13.047 E F0 .547(option is supplied, and)3.047 F F2 -(mode)144.38 381.6 Q F0 .551 +(he)-3.047 E F13.047 E F0 .547(option is supplied, and)3.047 F +(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP +%%Page: 21 21 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48 +(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10 +/Times-Italic@0 SF(mode)144.38 84 Q F0 .551 (is omitted, the output is in a form that may be reused as input.)3.231 -F .552(The return status is 0 if the)5.552 F(mode w)144 393.6 Q -(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E -(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1 -(unalias)108 410.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0 -(...])2.5 E(Remo)144 422.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name) -4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E -F14.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155 -F(remo)144 434.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E -(alue is true unless a supplied)-.25 E F2(name)2.86 E F0 -(is not a de\214ned alias.)2.68 E F1(unset)108 451.2 Q F0<5bad>2.5 E F1 -(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 463.2 S 3.106 -(re).15 G(ach)-3.106 E F2(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E +F .552(The return status is 0 if the)5.552 F(mode w)144 96 Q +(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E +(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E/F2 10 +/Times-Bold@0 SF(unalias)108 112.8 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1 +(name)-2.5 E F0(...])2.5 E(Remo)144 124.8 Q 1.955 -.15(ve e)-.15 H(ach) +.15 E F1(name)4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 +F(If)6.655 E F24.155 E F0 1.655 +(is supplied, all alias de\214nitions are)4.155 F(remo)144 136.8 Q -.15 +(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E +(alue is true unless a supplied)-.25 E F1(name)2.86 E F0 +(is not a de\214ned alias.)2.68 E F2(unset)108 153.6 Q F0<5bad>2.5 E F2 +(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 165.6 S 3.106 +(re).15 G(ach)-3.106 E F1(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E .906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607 (ariable or function.)-.25 F .607(If no options are supplied, or the) -5.607 F F1144 475.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G -.305(n, each).15 F F2(name)3.165 E F0 .305(refers to a shell v)2.985 F +5.607 F F2144 177.6 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G +.305(n, each).15 F F1(name)3.165 E F0 .305(refers to a shell v)2.985 F 2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304 -(riables may not be unset.).25 F(If)5.304 E F1144 487.2 Q F0 .459 -(is speci\214ed, each)2.959 F F2(name)3.319 E F0 .459 +(riables may not be unset.).25 F(If)5.304 E F2144 189.6 Q F0 .459 +(is speci\214ed, each)2.959 F F1(name)3.319 E F0 .459 (refers to a shell function, and the function de\214nition is remo)3.139 -F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 499.2 R .903 +F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 201.6 R .903 (ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902 (rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F -(If)5.902 E(an)144 511.2 Q 4.284(yo)-.15 G(f)-4.284 E/F3 9/Times-Bold@0 -SF(RANDOM)4.284 E/F4 9/Times-Roman@0 SF(,)A F3(SECONDS)4.035 E F4(,)A F3 -(LINENO)4.035 E F4(,)A F3(HISTCMD)4.035 E F4(,)A F3(FUNCN)4.035 E(AME) --.18 E F4(,)A F3(GR)4.035 E(OUPS)-.27 E F4(,)A F0(or)4.035 E F3(DIRST) -4.285 E -.495(AC)-.81 G(K).495 E F0(are)4.035 E .329(unset, the)144 -523.2 R 2.829(yl)-.15 G .328(ose their special properties, e)-2.829 F --.15(ve)-.25 G 2.828(ni).15 G 2.828(ft)-2.828 G(he)-2.828 E 2.828(ya) --.15 G .328(re subsequently reset.)-2.828 F .328(The e)5.328 F .328 -(xit status is true)-.15 F(unless a)144 535.2 Q F2(name)2.86 E F0 -(is readonly)2.68 E(.)-.65 E F1(wait)108 552 Q F0([)2.5 E F2 2.5(n.)C -(..)-2.5 E F0(])A -.8(Wa)144 564 S .288 +(If)5.902 E(an)144 213.6 Q 6.915(yo)-.15 G(f)-6.915 E/F3 9/Times-Bold@0 +SF(COMP_W)6.915 E(ORDBREAKS)-.09 E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM) +6.665 E F4(,)A F3(SECONDS)6.665 E F4(,)A F3(LINENO)6.665 E F4(,)A F3 +(HISTCMD)6.666 E F4(,)A F3(FUNCN)6.666 E(AME)-.18 E F4(,)A F3(GR)144 +225.6 Q(OUPS)-.27 E F4(,)A F0(or)2.523 E F3(DIRST)2.773 E -.495(AC)-.81 +G(K).495 E F0 .272(are unset, the)2.522 F 2.772(yl)-.15 G .272 +(ose their special properties, e)-2.772 F -.15(ve)-.25 G 2.772(ni).15 G +2.772(ft)-2.772 G(he)-2.772 E 2.772(ya)-.15 G .272(re subsequently) +-2.772 F 2.5(reset. The)144 237.6 R -.15(ex)2.5 G +(it status is true unless a).15 E F1(name)2.86 E F0(is readonly)2.68 E +(.)-.65 E F2(wait)108 254.4 Q F0([)2.5 E F1 2.5(n.)C(..)-2.5 E F0(])A +-.8(Wa)144 266.4 S .288 (it for each speci\214ed process and return its termination status.).8 F -(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722 -(job speci\214cation; if a job spec is gi)144 576 R -.15(ve)-.25 G .722 -(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w) --3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0 -(is)3.462 E 1.265(not gi)144 588 R -.15(ve)-.25 G 1.265 +(Each)5.288 E F1(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722 +(job speci\214cation; if a job spec is gi)144 278.4 R -.15(ve)-.25 G +.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722 +(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E +F1(n)3.582 E F0(is)3.462 E 1.265(not gi)144 290.4 R -.15(ve)-.25 G 1.265 (n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265 (hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266 -(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457 -(speci\214es a non-e)144 600 R .457 +(nd the return status is zero.)-3.765 F(If)6.266 E F1(n)4.126 E F0 .457 +(speci\214es a non-e)144 302.4 R .457 (xistent process or job, the return status is 127.)-.15 F .457 -(Otherwise, the return status is the)5.457 F -.15(ex)144 612 S +(Otherwise, the return status is the)5.457 F -.15(ex)144 314.4 S (it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E -/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 628.8 Q F0(bash\(1\), sh\(1\))108 -640.8 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP +/F5 10.95/Times-Bold@0 SF(SEE ALSO)72 331.2 Q F0(bash\(1\), sh\(1\))108 +343.2 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(21)198.725 E 0 Cg EP %%Trailer end %%EOF diff --git a/doc/fdl.texi b/doc/fdl.texi index 96ce74e..8805f1a 100644 --- a/doc/fdl.texi +++ b/doc/fdl.texi @@ -1,12 +1,12 @@ @c The GNU Free Documentation License. -@center Version 1.2, November 2002 +@center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. -51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. +@uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -111,6 +111,9 @@ formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. +The ``publisher'' means any person or entity that distributes copies +of the Document to the public. + A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a @@ -379,13 +382,30 @@ title. @item TERMINATION -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE @@ -403,7 +423,42 @@ following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +@item +RELICENSING + +``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the +site means any set of copyrightable works thus published on the MMC +site. + +``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +``Incorporate'' means to publish or republish a Document, in whole or +in part, as part of another Document. + +An MMC is ``eligible for relicensing'' if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole +or in part into the MMC, (1) had no cover texts or invariant sections, +and (2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + @end enumerate @page @@ -417,7 +472,7 @@ license notices just after the title page: @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.2 + under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU diff --git a/doc/fdl.txt b/doc/fdl.txt index daa2dd4..2f7e03c 100644 --- a/doc/fdl.txt +++ b/doc/fdl.txt @@ -1,13 +1,13 @@ - GNU Free Documentation License - Version 1.2, November 2002 + GNU Free Documentation License + Version 1.3, 3 November 2008 - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other @@ -50,11 +50,11 @@ modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (Thus, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. @@ -103,6 +103,9 @@ formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. +The "publisher" means any person or entity that distributes copies of +the Document to the public. + A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a @@ -118,14 +121,13 @@ License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. - 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough @@ -169,8 +171,9 @@ Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. 4. MODIFICATIONS @@ -285,16 +288,18 @@ Entitled "Endorsements". 6. COLLECTIONS OF DOCUMENTS -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. 7. AGGREGATION WITH INDEPENDENT WORKS @@ -304,7 +309,7 @@ and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. -When the Document is included an aggregate, this License does not +When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. @@ -340,21 +345,38 @@ title. 9. TERMINATION -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. @@ -364,7 +386,39 @@ following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +11. RELICENSING + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the site +means any set of copyrightable works thus published on the MMC site. + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +"Incorporate" means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents @@ -375,7 +429,7 @@ license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.2 + under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU diff --git a/doc/rbash.ps b/doc/rbash.ps index 38d31e1..518087d 100644 --- a/doc/rbash.ps +++ b/doc/rbash.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.19.2 -%%CreationDate: Thu Feb 5 08:05:28 2009 +%%CreationDate: Wed Dec 30 13:07:37 2009 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%DocumentSuppliedResources: procset grops 1.19 2 @@ -240,9 +240,10 @@ E F0(\(1\))A F1(RESTRICTED SHELL)72 112.8 Q F0(If)108 124.8 Q F2(bash) (bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E (wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 165.6 S(hanging directories with)-32.5 E F2(cd)2.5 E F0 32.5<8373>108 -182.4 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F2(SHELL)2.5 E -F0(,)A F2 -.74(PA)2.5 G(TH)-.21 E F0(,)A F2(ENV)2.5 E F0 2.5(,o)C(r)-2.5 -E F2 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 199.2 S +182.4 S(etting or unsetting the v)-32.5 E(alues of)-.25 E/F3 9 +/Times-Bold@0 SF(SHELL)2.5 E/F4 9/Times-Roman@0 SF(,)A F3 -.666(PA)2.25 +G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or)2.25 E F3 -.27(BA)2.5 G +(SH_ENV).27 E F0 32.5<8373>108 199.2 S (pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108 216 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0 (as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G @@ -252,7 +253,7 @@ E F2 -.3(BA)2.5 G(SH_ENV).3 E F0 32.5<8373>108 199.2 S (hash)2.851 E F0 -.2(bu)2.851 G .351(iltin com-).2 F(mand)144 244.8 Q 32.5<8369>108 261.6 S(mporting function de\214nitions from the shell en) -32.5 E(vironment at startup)-.4 E 32.5<8370>108 278.4 S(arsing the v) --32.5 E(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.5 E +-32.5 E(alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E (vironment at startup)-.4 E 32.5<8372>108 295.2 S(edirecting output usi\ ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5 <8375>108 312 S(sing the)-32.5 E F2(exec)2.5 E F0 -.2(bu)2.5 G diff --git a/doc/texinfo.tex b/doc/texinfo.tex index 555a077..03c2998 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex @@ -3,15 +3,16 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2003-02-03.16} +\def\texinfoversion{2009-01-18.17} % -% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +% 2007, 2008, 2009 Free Software Foundation, Inc. % -% This texinfo.tex file is free software; you can redistribute it and/or +% This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as -% published by the Free Software Foundation; either version 2, or (at -% your option) any later version. +% published by the Free Software Foundation, either version 3 of the +% License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty @@ -19,27 +20,20 @@ % General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with this texinfo.tex file; see the file COPYING. If not, write -% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. +% along with this program. If not, see . % -% In other words, you are welcome to use, share and improve this program. -% You are forbidden to forbid anyone else to use, share and improve -% what you give them. Help stamp out software-hoarding! +% As a special exception, when this file is read by TeX when processing +% a Texinfo source document, you may use the result without +% restriction. (This has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: -% ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex -% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) +% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or % ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org), -% and /home/gd/gnu/doc/texinfo.tex on the GNU machines. -% -% The GNU Texinfo home page is http://www.gnu.org/software/texinfo. -% -% The texinfo.tex in any given Texinfo distribution could well be out +% (and all CTAN mirrors, see http://www.ctan.org). +% The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. -% +% % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. @@ -55,10 +49,13 @@ % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. -% +% % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. +% +% The GNU Texinfo home page is http://www.gnu.org/software/texinfo. + \message{Loading texinfo [version \texinfoversion]:} @@ -68,14 +65,14 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} -\message{Basics,} + \chardef\other=12 -% We never want plain's outer \+ definition in Texinfo. +% We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax -% Save some parts of plain tex whose names we will redefine. +% Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c @@ -85,20 +82,39 @@ \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! +\let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i +\let\ptexindent=\indent +\let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< +\let\ptexnewwrite\newwrite +\let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexrbrace=\} +\let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t +\let\ptextop=\top +{\catcode`\'=\active +\global\let\ptexquoteright'}% Math-mode def from plain.tex. +\let\ptexraggedright=\raggedright % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J +% Use TeX 3.0's \inputlineno to get the line number, for better error +% messages, but if we're using an old version of TeX, don't do anything. +% +\ifx\inputlineno\thisisundefined + \let\linenumber = \empty % Pre-3.0. +\else + \def\linenumber{l.\the\inputlineno:\space} +\fi + % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi @@ -137,42 +153,83 @@ \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi -\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi -% In some macros, we cannot use the `\? notation---the left quote is -% in some cases the escape char. +% Since the category of space is not known, we have to be careful. +\chardef\spacecat = 10 +\def\spaceisspace{\catcode`\ =\spacecat} + +% sometimes characters are active, so we need control sequences. \chardef\colonChar = `\: \chardef\commaChar = `\, +\chardef\dashChar = `\- \chardef\dotChar = `\. -\chardef\equalChar = `\= \chardef\exclamChar= `\! +\chardef\lquoteChar= `\` \chardef\questChar = `\? +\chardef\rquoteChar= `\' \chardef\semiChar = `\; -\chardef\spaceChar = `\ % \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} -% True if #1 is the empty string, i.e., called like `\ifempty{}'. -% -\def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}% -\def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}% +% The following is used inside several \edef's. +\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. -\hyphenation{ap-pen-dix} -\hyphenation{mini-buf-fer mini-buf-fers} -\hyphenation{eshell} -\hyphenation{white-space} +\hyphenation{ + Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script + ap-pen-dix bit-map bit-maps + data-base data-bases eshell fall-ing half-way long-est man-u-script + man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm + par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces + spell-ing spell-ings + stand-alone strong-est time-stamp time-stamps which-ever white-space + wide-spread wrap-around +} % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight +% For a final copy, take out the rectangles +% that mark overfull boxes (in case you have decided +% that the text looks ok even though it passes the margin). +% +\def\finalout{\overfullrule=0pt} + +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} + % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make @@ -197,12 +254,12 @@ \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex - \errorcontextlines\maxdimen + \errorcontextlines16 }% % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. -% +% \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount @@ -224,6 +281,50 @@ \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in +% Output a mark which sets \thischapter, \thissection and \thiscolor. +% We dump everything together because we only have one kind of mark. +% This works because we only use \botmark / \topmark, not \firstmark. +% +% A mark contains a subexpression of the \ifcase ... \fi construct. +% \get*marks macros below extract the needed part using \ifcase. +% +% Another complication is to let the user choose whether \thischapter +% (\thissection) refers to the chapter (section) in effect at the top +% of a page, or that at the bottom of a page. The solution is +% described on page 260 of The TeXbook. It involves outputting two +% marks for the sectioning macros, one before the section break, and +% one after. I won't pretend I can describe this better than DEK... +\def\domark{% + \toks0=\expandafter{\lastchapterdefs}% + \toks2=\expandafter{\lastsectiondefs}% + \toks4=\expandafter{\prevchapterdefs}% + \toks6=\expandafter{\prevsectiondefs}% + \toks8=\expandafter{\lastcolordefs}% + \mark{% + \the\toks0 \the\toks2 + \noexpand\or \the\toks4 \the\toks6 + \noexpand\else \the\toks8 + }% +} +% \topmark doesn't work for the very first chapter (after the title +% page or the contents), so we use \firstmark there -- this gets us +% the mark with the chapter defs, unless the user sneaks in, e.g., +% @setcolor (or @url, or @link, etc.) between @contents and the very +% first @chapter. +\def\gettopheadingmarks{% + \ifcase0\topmark\fi + \ifx\thischapter\empty \ifcase0\firstmark\fi \fi +} +\def\getbottomheadingmarks{\ifcase1\botmark\fi} +\def\getcolormarks{\ifcase2\topmark\fi} + +% Avoid "undefined control sequence" errors. +\def\lastchapterdefs{} +\def\lastsectiondefs{} +\def\prevchapterdefs{} +\def\prevsectiondefs{} +\def\lastcolordefs{} + % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} @@ -241,7 +342,9 @@ % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). + \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% + \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% @@ -249,13 +352,17 @@ % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % - \escapechar = `\\ % use backslash in output files. \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if - % the page break happens to be in the middle of an example. + % the page break happens to be in the middle of an example. + % We don't want .vr (or whatever) entries like this: + % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} + % "\acronym" won't work when it's read back in; + % it needs to be + % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. - \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi + \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize @@ -280,9 +387,9 @@ \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingxxx.) + % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 2\baselineskip + \vskip 24pt \unvbox\footlinebox \fi % @@ -303,7 +410,7 @@ \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox - }% end of group with \normalturnoffactive + }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } @@ -316,7 +423,7 @@ % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 +\dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } @@ -336,132 +443,161 @@ % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % -\def\parsearg#1{% - \let\next = #1% +\def\parsearg{\parseargusing{}} +\def\parseargusing#1#2{% + \def\argtorun{#2}% \begingroup \obeylines - \futurelet\temp\parseargx -} - -% If the next token is an obeyed space (from an @example environment or -% the like), remove it and recurse. Otherwise, we're done. -\def\parseargx{% - % \obeyedspace is defined far below, after the definition of \sepspaces. - \ifx\obeyedspace\temp - \expandafter\parseargdiscardspace - \else - \expandafter\parseargline - \fi + \spaceisspace + #1% + \parseargline\empty% Insert the \empty token, see \finishparsearg below. } -% Remove a single space (as the delimiter token to the macro call). -{\obeyspaces % - \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} - {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. - % - % First remove any @c comment, then any @comment. - % Result of each macro is put in \toks0. - \argremovec #1\c\relax % - \expandafter\argremovecomment \the\toks0 \comment\relax % - % - % Call the caller's macro, saved as \next in \parsearg. - \expandafter\next\expandafter{\the\toks0}% + \argremovecomment #1\comment\ArgTerm% }% } -% Since all \c{,omment} does is throw away the argument, we can let TeX -% do that for us. The \relax here is matched by the \relax in the call -% in \parseargline; it could be more or less anything, its purpose is -% just to delimit the argument to the \c. -\def\argremovec#1\c#2\relax{\toks0 = {#1}} -\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} +% First remove any @comment, then any @c comment. +\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} +\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} -% \argremovec{,omment} might leave us with trailing spaces, though; e.g., +% Each occurrence of `\^^M' or `\^^M' is replaced by a single space. +% +% \argremovec might leave us with trailing space, e.g., % @end itemize @c foo -% will have two active spaces as part of the argument with the -% `itemize'. Here we remove all active spaces from #1, and assign the -% result to \toks0. -% -% This loses if there are any *other* active characters besides spaces -% in the argument -- _ ^ +, for example -- since they get expanded. -% Fortunately, Texinfo does not define any such commands. (If it ever -% does, the catcode of the characters in questionwill have to be changed -% here.) But this means we cannot call \removeactivespaces as part of -% \argremovec{,omment}, since @c uses \parsearg, and thus the argument -% that \parsearg gets might well have any character at all in it. -% -\def\removeactivespaces#1{% - \begingroup - \ignoreactivespaces - \edef\temp{#1}% - \global\toks0 = \expandafter{\temp}% - \endgroup +% This space token undergoes the same procedure and is eventually removed +% by \finishparsearg. +% +\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} +\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} +\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% + \def\temp{#3}% + \ifx\temp\empty + % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: + \let\temp\finishparsearg + \else + \let\temp\argcheckspaces + \fi + % Put the space token in: + \temp#1 #3\ArgTerm } -% Change the active space to expand to nothing. +% If a _delimited_ argument is enclosed in braces, they get stripped; so +% to get _exactly_ the rest of the line, we had to prevent such situation. +% We prepended an \empty token at the very beginning and we expand it now, +% just before passing the control to \argtorun. +% (Similarly, we have to think about #3 of \argcheckspacesY above: it is +% either the null string, or it ends with \^^M---thus there is no danger +% that a pair of braces would be stripped. % -\begingroup +% But first, we have to remove the trailing space token. +% +\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} + +% \parseargdef\foo{...} +% is roughly equivalent to +% \def\foo{\parsearg\Xfoo} +% \def\Xfoo#1{...} +% +% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my +% favourite TeX trick. --kasal, 16nov03 + +\def\parseargdef#1{% + \expandafter \doparseargdef \csname\string#1\endcsname #1% +} +\def\doparseargdef#1#2{% + \def#2{\parsearg#1}% + \def#1##1% +} + +% Several utility definitions with active space: +{ \obeyspaces - \gdef\ignoreactivespaces{\obeyspaces\let =\empty} -\endgroup + \gdef\obeyedspace{ } + + % Make each space character in the input produce a normal interword + % space in the output. Don't allow a line break at this space, as this + % is used only in environments like @example, where each line of input + % should produce a line of output anyway. + % + \gdef\sepspaces{\obeyspaces\let =\tie} + + % If an index command is used in an @example environment, any spaces + % therein should become regular spaces in the raw index file, not the + % expansion of \tie (\leavevmode \penalty \@M \ ). + \gdef\unsepspaces{\let =\space} +} \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} -%% These are used to keep @begin/@end levels from running away -%% Call \inENV within environments (after a \begingroup) -\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} -\def\ENVcheck{% -\ifENV\errmessage{Still within an environment; press RETURN to continue} -\endgroup\fi} % This is not perfect, but it should reduce lossage +% Define the framework for environments in texinfo.tex. It's used like this: +% +% \envdef\foo{...} +% \def\Efoo{...} +% +% It's the responsibility of \envdef to insert \begingroup before the +% actual body; @end closes the group after calling \Efoo. \envdef also +% defines \thisenv, so the current environment is known; @end checks +% whether the environment name matches. The \checkenv macro can also be +% used to check whether the current environment is the one expected. +% +% Non-false conditionals (@iftex, @ifset) don't fit into this, so they +% are not treated as environments; they don't open a group. (The +% implementation of @end takes care not to call \endgroup in this +% special case.) -% @begin foo is the same as @foo, for now. -\newhelp\EMsimple{Press RETURN to continue.} -\outer\def\begin{\parsearg\beginxxx} +% At run-time, environments start with this: +\def\startenvironment#1{\begingroup\def\thisenv{#1}} +% initialize +\let\thisenv\empty -\def\beginxxx #1{% -\expandafter\ifx\csname #1\endcsname\relax -{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else -\csname #1\endcsname\fi} +% ... but they get defined via ``\envdef\foo{...}'': +\long\def\envdef#1#2{\def#1{\startenvironment#1#2}} +\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} -% @end foo executes the definition of \Efoo. -% -\def\end{\parsearg\endxxx} -\def\endxxx #1{% - \removeactivespaces{#1}% - \edef\endthing{\the\toks0}% - % - \expandafter\ifx\csname E\endthing\endcsname\relax - \expandafter\ifx\csname \endthing\endcsname\relax - % There's no \foo, i.e., no ``environment'' foo. - \errhelp = \EMsimple - \errmessage{Undefined command `@end \endthing'}% - \else - \unmatchedenderror\endthing - \fi +% Check whether we're in the right environment: +\def\checkenv#1{% + \def\temp{#1}% + \ifx\thisenv\temp \else - % Everything's ok; the right environment has been started. - \csname E\endthing\endcsname + \badenverr \fi } -% There is an environment #1, but it hasn't been started. Give an error. -% -\def\unmatchedenderror#1{% +% Environment mismatch, #1 expected: +\def\badenverr{% \errhelp = \EMsimple - \errmessage{This `@end #1' doesn't have a matching `@#1'}% + \errmessage{This command can appear only \inenvironment\temp, + not \inenvironment\thisenv}% +} +\def\inenvironment#1{% + \ifx#1\empty + out of any environment% + \else + in environment \expandafter\string#1% + \fi } -% Define the control sequence \E#1 to give an unmatched @end error. +% @end foo executes the definition of \Efoo. +% But first, it executes a specialized version of \checkenv % -\def\defineunmatchedend#1{% - \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% +\parseargdef\end{% + \if 1\csname iscond.#1\endcsname + \else + % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 + \expandafter\checkenv\csname#1\endcsname + \csname E#1\endcsname + \endgroup + \fi } +\newhelp\EMsimple{Press RETURN to continue.} + %% Simple single-character @ commands @@ -483,7 +619,7 @@ \let\}=\myrbrace \begingroup % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux file. + % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other @@ -493,6 +629,9 @@ !gdef!rbraceatcmd[@}]% !endgroup +% @comma{} to avoid , parsing problems. +\let\comma = , + % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \c @@ -502,22 +641,43 @@ \let\ubaraccent = \b \let\udotaccent = \d -% Other special characters: @questiondown @exclamdown +% Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% - \ifx\temp\imacro \ptexi - \else\ifx\temp\jmacro \j + \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi + \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) +% +\edef\TeX{\TeX \spacefactor=1000 } + +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). +% +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% + \kern-.15em + \TeX +} + % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -536,14 +696,32 @@ % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} +% @/ allows a line break. +\let\/=\allowbreak + % @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } +\def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. -\def\!{!\spacefactor=3000 } +\def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. -\def\?{?\spacefactor=3000 } +\def\?{?\spacefactor=\endofsentencespacefactor\space} + +% @frenchspacing on|off says whether to put extra space after punctuation. +% +\def\onword{on} +\def\offword{off} +% +\parseargdef\frenchspacing{% + \def\temp{#1}% + \ifx\temp\onword \plainfrenchspacing + \else\ifx\temp\offword \plainnonfrenchspacing + \else + \errhelp = \EMsimple + \errmessage{Unknown @frenchspacing option `\temp', must be on/off}% + \fi\fi +} % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would @@ -564,63 +742,18 @@ % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). -% +% \newbox\groupbox \def\vfilllimit{0.7} % -\def\group{\begingroup - \ifnum\catcode13=\active \else +\envdef\group{% + \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi - % - % The \vtop we start below produces a box with normal height and large - % depth; thus, TeX puts \baselineskip glue before it, and (when the - % next line of text is done) \lineskip glue after it. (See p.82 of - % the TeXbook.) Thus, space below is not quite equal to space - % above. But it's pretty close. - \def\Egroup{% - \egroup % End the \vtop. - % \dimen0 is the vertical size of the group's box. - \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox - % \dimen2 is how much space is left on the page (more or less). - \dimen2 = \pageheight \advance\dimen2 by -\pagetotal - % if the group doesn't fit on the current page, and it's a big big - % group, force a page break. - \ifdim \dimen0 > \dimen2 - \ifdim \pagetotal < \vfilllimit\pageheight - \page - \fi - \fi - \copy\groupbox - \endgroup % End the \group. - }% + \startsavinginserts % \setbox\groupbox = \vtop\bgroup - % We have to put a strut on the last line in case the @group is in - % the midst of an example, rather than completely enclosing it. - % Otherwise, the interline space between the last line of the group - % and the first line afterwards is too small. But we can't put the - % strut in \Egroup, since there it would be on a line by itself. - % Hence this just inserts a strut at the beginning of each line. - \everypar = {\strut}% - % - % Since we have a strut on every line, we don't need any of TeX's - % normal interline spacing. - \offinterlineskip - % - % OK, but now we have to do something about blank - % lines in the input in @example-like environments, which normally - % just turn into \lisppar, which will insert no space now that we've - % turned off the interline space. Simplest is to make them be an - % empty paragraph. - \ifx\par\lisppar - \edef\par{\leavevmode \par}% - % - % Reset ^^M's definition to new definition of \par. - \obeylines - \fi - % % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after @@ -630,6 +763,32 @@ \comment } % +% The \vtop produces a box with normal height and large depth; thus, TeX puts +% \baselineskip glue before it, and (when the next line of text is done) +% \lineskip glue after it. Thus, space below is not quite equal to space +% above. But it's pretty close. +\def\Egroup{% + % To get correct interline space between the last line of the group + % and the first line afterwards, we have to propagate \prevdepth. + \endgraf % Not \par, as it may have been set to \lisppar. + \global\dimen1 = \prevdepth + \egroup % End the \vtop. + % \dimen0 is the vertical size of the group's box. + \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox + % \dimen2 is how much space is left on the page (more or less). + \dimen2 = \pageheight \advance\dimen2 by -\pagetotal + % if the group doesn't fit on the current page, and it's a big big + % group, force a page break. + \ifdim \dimen0 > \dimen2 + \ifdim \pagetotal < \vfilllimit\pageheight + \page + \fi + \fi + \box\groupbox + \prevdepth = \dimen1 + \checkinserts +} +% % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % @@ -642,10 +801,8 @@ where each line of input produces a line of output.} \newdimen\mil \mil=0.001in -\def\need{\parsearg\needx} - % Old definition--didn't work. -%\def\needx #1{\par % +%\parseargdef\need{\par % %% This method tries to make TeX break the page naturally %% if the depth of the box does not fit. %{\baselineskip=0pt% @@ -653,7 +810,7 @@ where each line of input produces a line of output.} %\prevdepth=-1000pt %}} -\def\needx#1{% +\parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par @@ -692,37 +849,11 @@ where each line of input produces a line of output.} \fi } -% @br forces paragraph break +% @br forces paragraph break (and is undocumented). \let\br = \par -% @dots{} output an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. -% -\def\dots{% - \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \leavevmode - \hbox to 2em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% - \spacefactor=3000 -} - - -% @page forces the start of a new page +% @page forces the start of a new page. % \def\page{\par\vfill\supereject} @@ -734,13 +865,11 @@ where each line of input produces a line of output.} \newskip\exdentamount % This defn is used inside fill environments such as @defun. -\def\exdent{\parsearg\exdentyyy} -\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} +\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. -\def\nofillexdent{\parsearg\nofillexdentyyy} -\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount -\leftline{\hskip\leftskip{\rm#1}}}} +\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount + \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion @@ -771,10 +900,10 @@ where each line of input produces a line of output.} % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). -% +% \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% + \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% @@ -791,9 +920,25 @@ where each line of input produces a line of output.} \temp } -% @include file insert text of that file as input. -% Allow normal characters that we make active in the argument (a file name). -\def\include{\begingroup +% @include FILE -- \input text of FILE. +% +\def\include{\parseargusing\filenamecatcodes\includezzz} +\def\includezzz#1{% + \pushthisfilestack + \def\thisfile{#1}% + {% + \makevalueexpandable % we want to expand any @value in FILE. + \turnoffactive % and allow special characters in the expansion + \indexnofonts % Allow `@@' and other weird things in file names. + \edef\temp{\noexpand\input #1 }% + % + % This trickery is to read FILE outside of a group, in case it makes + % definitions, etc. + \expandafter + }\temp + \popthisfilestack +} +\def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other @@ -802,33 +947,52 @@ where each line of input produces a line of output.} \catcode`<=\other \catcode`>=\other \catcode`+=\other - \parsearg\includezzz} -% Restore active chars for included file. -\def\includezzz#1{\endgroup\begingroup - % Read the included file in a group so nested @include's work. - \def\thisfile{#1}% - \let\value=\expandablevalue - \input\thisfile -\endgroup} + \catcode`-=\other + \catcode`\`=\other + \catcode`\'=\other +} + +\def\pushthisfilestack{% + \expandafter\pushthisfilestackX\popthisfilestack\StackTerm +} +\def\pushthisfilestackX{% + \expandafter\pushthisfilestackY\thisfile\StackTerm +} +\def\pushthisfilestackY #1\StackTerm #2\StackTerm {% + \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% +} + +\def\popthisfilestack{\errthisfilestackempty} +\def\errthisfilestackempty{\errmessage{Internal error: + the stack of filenames is empty.}} \def\thisfile{} % @center line % outputs that line, centered. % -\def\center{\parsearg\docenter} -\def\docenter#1{{% - \ifhmode \hfil\break \fi - \advance\hsize by -\leftskip - \advance\hsize by -\rightskip - \line{\hfil \ignorespaces#1\unskip \hfil}% - \ifhmode \break \fi -}} +\parseargdef\center{% + \ifhmode + \let\next\centerH + \else + \let\next\centerV + \fi + \next{\hfil \ignorespaces#1\unskip \hfil}% +} +\def\centerH#1{% + {% + \hfil\break + \advance\hsize by -\leftskip + \advance\hsize by -\rightskip + \line{#1}% + \break + }% +} +\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} % @sp n outputs n lines of vertical space -\def\sp{\parsearg\spxxx} -\def\spxxx #1{\vskip #1\baselineskip} +\parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment @@ -843,13 +1007,13 @@ where each line of input produces a line of output.} % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. -% We cannot implement @paragraphindent asis, though. -% +% NCHARS can also be the word `asis' or `none'. +% We cannot feasibly implement @paragraphindent asis, though. +% \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % -\def\paragraphindent{\parsearg\doparagraphindent} -\def\doparagraphindent#1{% +\parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else @@ -866,8 +1030,7 @@ where each line of input produces a line of output.} % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. -\def\exampleindent{\parsearg\doexampleindent} -\def\doexampleindent#1{% +\parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else @@ -879,64 +1042,161 @@ where each line of input produces a line of output.} \fi } +% @firstparagraphindent WORD +% If WORD is `none', then suppress indentation of the first paragraph +% after a section heading. If WORD is `insert', then do indent at such +% paragraphs. +% +% The paragraph indentation is suppressed or not by calling +% \suppressfirstparagraphindent, which the sectioning commands do. +% We switch the definition of this back and forth according to WORD. +% By default, we suppress indentation. +% +\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} +\def\insertword{insert} +% +\parseargdef\firstparagraphindent{% + \def\temp{#1}% + \ifx\temp\noneword + \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent + \else\ifx\temp\insertword + \let\suppressfirstparagraphindent = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @firstparagraphindent option `\temp'}% + \fi\fi +} + +% Here is how we actually suppress indentation. Redefine \everypar to +% \kern backwards by \parindent, and then reset itself to empty. +% +% We also make \indent itself not actually do anything until the next +% paragraph. +% +\gdef\dosuppressfirstparagraphindent{% + \gdef\indent{% + \restorefirstparagraphindent + \indent + }% + \gdef\noindent{% + \restorefirstparagraphindent + \noindent + }% + \global\everypar = {% + \kern -\parindent + \restorefirstparagraphindent + }% +} + +\gdef\restorefirstparagraphindent{% + \global \let \indent = \ptexindent + \global \let \noindent = \ptexnoindent + \global \everypar = {}% +} + + % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. -% We don't use $'s directly in the definition of \math because we need -% to set catcodes according to plain TeX first, to allow for subscripts, -% superscripts, special math chars, etc. -% -\let\implicitmath = $%$ font-lock fix % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ within @math be active (mathcode "8000), and distinguish by seeing -% if the current family is \slfam, which is what @var uses. -% -{\catcode\underChar = \active -\gdef\mathunderscore{% - \catcode\underChar=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% -}} -% +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode`\_ = \active + \gdef\mathunderscore{% + \catcode`\_=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} % Another complication: we want \\ (and @\) to output a \ character. % FYI, plain.tex uses \\ as a temporary control sequence (why?), but % this is not advertised and we don't care. Texinfo does not % otherwise define @\. -% +% % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex - \mathcode`\_="8000 \mathunderscore + \mathunderscore \let\\ = \mathbackslash \mathactive - \implicitmath\finishmath} -\def\finishmath#1{#1\implicitmath\Etex} + % make the texinfo accent commands work in math mode + \let\"=\ddot + \let\'=\acute + \let\==\bar + \let\^=\hat + \let\`=\grave + \let\u=\breve + \let\v=\check + \let\~=\tilde + \let\dotaccent=\dot + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. -% We have to reset their definitions in case the @math was an -% argument to a command which set the catcodes (such as @item or @section). -% +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active + \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus + \let' = \ptexquoteright } } -% @bullet and @minus need the same treatment as @math, just above. -\def\bullet{\implicitmath\ptexbullet\implicitmath} -\def\minus{\implicitmath-\implicitmath} +% Some math mode symbols. +\def\bullet{$\ptexbullet$} +\def\geq{\ifmmode \ge\else $\ge$\fi} +\def\leq{\ifmmode \le\else $\le$\fi} +\def\minus{\ifmmode -\else $-$\fi} + +% @dots{} outputs an ellipsis using the current font. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. +% +\def\dots{% + \leavevmode + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em + \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil + }% +} + +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=\endofsentencespacefactor +} + +% @comma{} is so commas can be inserted into text without messing up +% Texinfo's parsing. +% +\let\comma = , % @refill is a no-op. \let\refill=\relax @@ -952,20 +1212,20 @@ where each line of input produces a line of output.} % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% + \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks - \readauxfile + \tryauxfile + % Open the new aux file. TeX will close it automatically at exit. + \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \global\let\setfilename=\comment % Ignore extra @setfilename cmds. + \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. - % Just to be on the safe side, close the input stream before the \input. \openin 1 texinfo.cnf - \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi - \closein1 - \temp + \ifeof 1 \else \input texinfo.cnf \fi + \closein 1 % \comment % Ignore the actual filename. } @@ -1001,119 +1261,297 @@ where each line of input produces a line of output.} \newif\ifpdf \newif\ifpdfmakepagedest +% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 +% can be set). So we test for \relax and 0 as well as \undefined, +% borrowed from ifpdf.sty. \ifx\pdfoutput\undefined - \pdffalse - \let\pdfmkdest = \gobble - \let\pdfurl = \gobble - \let\endlink = \relax - \let\linkcolor = \relax - \let\pdfmakeoutlines = \relax \else - \pdftrue - \pdfoutput = 1 - \input pdfcolor - \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}% - \def\imageheight{#3}% - % without \immediate, pdftex seg faults when the same image is - % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) - \ifnum\pdftexversion < 14 - \immediate\pdfimage + \ifx\pdfoutput\relax + \else + \ifcase\pdfoutput \else - \immediate\pdfximage + \pdftrue \fi - \ifx\empty\imagewidth\else width \imagewidth \fi - \ifx\empty\imageheight\else height \imageheight \fi - \ifnum\pdftexversion<13 - #1.pdf% - \else - {#1.pdf}% - \fi - \ifnum\pdftexversion < 14 \else - \pdfrefximage \pdflastximage - \fi} - \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}} - \def\pdfmkpgn#1{#1} - \let\linkcolor = \Blue % was Cyan, but that seems light? - \def\endlink{\Black\pdfendlink} - % Adding outlines to PDF; macros for calculating structure of outlines - % come from Petr Olsak - \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% - \else \csname#1\endcsname \fi} - \def\advancenumber#1{\tempnum=\expnumber{#1}\relax - \advance\tempnum by1 - \expandafter\xdef\csname#1\endcsname{\the\tempnum}} - \def\pdfmakeoutlines{{% - \openin 1 \jobname.toc - \ifeof 1\else\begingroup - \closein 1 - % Thanh's hack / proper braces in bookmarks - \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace - \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace - % - \def\chapentry ##1##2##3{} - \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} - \let\appendixentry = \chapentry - \let\unnumbchapentry = \chapentry - \let\unnumbsecentry = \secentry - \let\unnumbsubsecentry = \subsecentry - \let\unnumbsubsubsecentry = \subsubsecentry - \input \jobname.toc - \def\chapentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \def\secentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\subsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\subsubsecentry ##1##2##3##4##5##6{% - \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} - \let\appendixentry = \chapentry - \let\unnumbchapentry = \chapentry - \let\unnumbsecentry = \secentry - \let\unnumbsubsecentry = \subsecentry - \let\unnumbsubsubsecentry = \subsubsecentry - % - % Make special characters normal for writing to the pdf file. - % - \indexnofonts - \let\tt=\relax - \turnoffactive - \input \jobname.toc - \endgroup\fi - }} - \def\makelinks #1,{% - \def\params{#1}\def\E{END}% - \ifx\params\E - \let\nextmakelinks=\relax + \fi +\fi + +% PDF uses PostScript string constants for the names of xref targets, +% for display in the outlines, and in other places. Thus, we have to +% double any backslashes. Otherwise, a name like "\node" will be +% interpreted as a newline (\n), followed by o, d, e. Not good. +% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html +% (and related messages, the final outcome is that it is up to the TeX +% user to double the backslashes and otherwise make the string valid, so +% that's what we do). + +% double active backslashes. +% +{\catcode`\@=0 \catcode`\\=\active + @gdef@activebackslashdouble{% + @catcode`@\=@active + @let\=@doublebackslash} +} + +% To handle parens, we must adopt a different approach, since parens are +% not active characters. hyperref.dtx (which has the same problem as +% us) handles it with this amazing macro to replace tokens, with minor +% changes for Texinfo. It is included here under the GPL by permission +% from the author, Heiko Oberdiek. +% +% #1 is the tokens to replace. +% #2 is the replacement. +% #3 is the control sequence with the string. +% +\def\HyPsdSubst#1#2#3{% + \def\HyPsdReplace##1#1##2\END{% + ##1% + \ifx\\##2\\% \else - \let\nextmakelinks=\makelinks - \ifnum\lnkcount>0,\fi - \picknum{#1}% - \startlink attr{/Border [0 0 0]} - goto name{\pdfmkpgn{\the\pgn}}% - \linkcolor #1% - \advance\lnkcount by 1% - \endlink + #2% + \HyReturnAfterFi{% + \HyPsdReplace##2\END + }% \fi - \nextmakelinks + }% + \xdef#3{\expandafter\HyPsdReplace#3#1\END}% +} +\long\def\HyReturnAfterFi#1\fi{\fi#1} + +% #1 is a control sequence in which to do the replacements. +\def\backslashparens#1{% + \xdef#1{#1}% redefine it as its expansion; the definition is simply + % \lastnode when called from \setref -> \pdfmkdest. + \HyPsdSubst{(}{\realbackslash(}{#1}% + \HyPsdSubst{)}{\realbackslash)}{#1}% +} + +\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images +with PDF output, and none of those formats could be found. (.eps cannot +be supported due to the design of the PDF format; use regular TeX (DVI +output) for that.)} + +\ifpdf + % + % Color manipulation macros based on pdfcolor.tex. + \def\cmykDarkRed{0.28 1 1 0.35} + \def\cmykBlack{0 0 0 1} + % + % k sets the color for filling (usual text, etc.); + % K sets the color for stroking (thin rules, e.g., normal _'s). + \def\pdfsetcolor#1{\pdfliteral{#1 k #1 K}} + % + % Set color, and create a mark which defines \thiscolor accordingly, + % so that \makeheadline knows which color to restore. + \def\setcolor#1{% + \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% + \domark + \pdfsetcolor{#1}% + } + % + \def\maincolor{\cmykBlack} + \pdfsetcolor{\maincolor} + \edef\thiscolor{\maincolor} + \def\lastcolordefs{} + % + \def\makefootline{% + \baselineskip24pt + \line{\pdfsetcolor{\maincolor}\the\footline}% } - \def\picknum#1{\expandafter\pn#1} - \def\pn#1{% - \def\p{#1}% - \ifx\p\lbrace - \let\nextpn=\ppn + % + \def\makeheadline{% + \vbox to 0pt{% + \vskip-22.5pt + \line{% + \vbox to8.5pt{}% + % Extract \thiscolor definition from the marks. + \getcolormarks + % Typeset the headline with \maincolor, then restore the color. + \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% + }% + \vss + }% + \nointerlineskip + } + % + % + \pdfcatalog{/PageMode /UseOutlines} + % + % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). + \def\dopdfimage#1#2#3{% + \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% + % + % pdftex (and the PDF format) support .png, .jpg, .pdf (among + % others). Let's try in that order. + \let\pdfimgext=\empty + \begingroup + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 + \errhelp = \nopdfimagehelp + \errmessage{Could not find image file #1 for pdf}% + \else \gdef\pdfimgext{PDF}% + \fi + \else \gdef\pdfimgext{pdf}% + \fi + \else \gdef\pdfimgext{JPG}% + \fi + \else \gdef\pdfimgext{jpeg}% + \fi + \else \gdef\pdfimgext{jpg}% + \fi + \else \gdef\pdfimgext{png}% + \fi + \closein 1 + \endgroup + % + % without \immediate, ancient pdftex seg faults when the same image is + % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) + \ifnum\pdftexversion < 14 + \immediate\pdfimage \else - \let\nextpn=\ppnn - \def\first{#1} + \immediate\pdfximage \fi - \nextpn + \ifdim \wd0 >0pt width \imagewidth \fi + \ifdim \wd2 >0pt height \imageheight \fi + \ifnum\pdftexversion<13 + #1.\pdfimgext + \else + {#1.\pdfimgext}% + \fi + \ifnum\pdftexversion < 14 \else + \pdfrefximage \pdflastximage + \fi} + % + \def\pdfmkdest#1{{% + % We have to set dummies so commands such as @code, and characters + % such as \, aren't expanded when present in a section title. + \indexnofonts + \turnoffactive + \activebackslashdouble + \makevalueexpandable + \def\pdfdestname{#1}% + \backslashparens\pdfdestname + \safewhatsit{\pdfdest name{\pdfdestname} xyz}% + }} + % + % used to mark target names; must be expandable. + \def\pdfmkpgn#1{#1} + % + % by default, use a color that is dark enough to print on paper as + % nearly black, but still distinguishable for online viewing. + \def\urlcolor{\cmykDarkRed} + \def\linkcolor{\cmykDarkRed} + \def\endlink{\setcolor{\maincolor}\pdfendlink} + % + % Adding outlines to PDF; macros for calculating structure of outlines + % come from Petr Olsak + \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% + \else \csname#1\endcsname \fi} + \def\advancenumber#1{\tempnum=\expnumber{#1}\relax + \advance\tempnum by 1 + \expandafter\xdef\csname#1\endcsname{\the\tempnum}} + % + % #1 is the section text, which is what will be displayed in the + % outline by the pdf viewer. #2 is the pdf expression for the number + % of subentries (or empty, for subsubsections). #3 is the node text, + % which might be empty if this toc entry had no corresponding node. + % #4 is the page number + % + \def\dopdfoutline#1#2#3#4{% + % Generate a link to the node text if that exists; else, use the + % page number. We could generate a destination for the section + % text in the case where a section has no node, but it doesn't + % seem worth the trouble, since most documents are normally structured. + \def\pdfoutlinedest{#3}% + \ifx\pdfoutlinedest\empty + \def\pdfoutlinedest{#4}% + \else + % Doubled backslashes in the name. + {\activebackslashdouble \xdef\pdfoutlinedest{#3}% + \backslashparens\pdfoutlinedest}% + \fi + % + % Also double the backslashes in the display string. + {\activebackslashdouble \xdef\pdfoutlinetext{#1}% + \backslashparens\pdfoutlinetext}% + % + \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } - \def\ppn#1{\pgn=#1\gobble} - \def\ppnn{\pgn=\first} - \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} - \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} + % + \def\pdfmakeoutlines{% + \begingroup + % Thanh's hack / proper braces in bookmarks + \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace + \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace + % + % Read toc silently, to get counts of subentries for \pdfoutline. + \def\numchapentry##1##2##3##4{% + \def\thischapnum{##2}% + \def\thissecnum{0}% + \def\thissubsecnum{0}% + }% + \def\numsecentry##1##2##3##4{% + \advancenumber{chap\thischapnum}% + \def\thissecnum{##2}% + \def\thissubsecnum{0}% + }% + \def\numsubsecentry##1##2##3##4{% + \advancenumber{sec\thissecnum}% + \def\thissubsecnum{##2}% + }% + \def\numsubsubsecentry##1##2##3##4{% + \advancenumber{subsec\thissubsecnum}% + }% + \def\thischapnum{0}% + \def\thissecnum{0}% + \def\thissubsecnum{0}% + % + % use \def rather than \let here because we redefine \chapentry et + % al. a second time, below. + \def\appentry{\numchapentry}% + \def\appsecentry{\numsecentry}% + \def\appsubsecentry{\numsubsecentry}% + \def\appsubsubsecentry{\numsubsubsecentry}% + \def\unnchapentry{\numchapentry}% + \def\unnsecentry{\numsecentry}% + \def\unnsubsecentry{\numsubsecentry}% + \def\unnsubsubsecentry{\numsubsubsecentry}% + \readdatafile{toc}% + % + % Read toc second time, this time actually producing the outlines. + % The `-' means take the \expnumber as the absolute number of + % subentries, which we calculated on our first read of the .toc above. + % + % We use the node names as the destinations. + \def\numchapentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% + \def\numsecentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% + \def\numsubsecentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% + \def\numsubsubsecentry##1##2##3##4{% count is always zero + \dopdfoutline{##1}{}{##3}{##4}}% + % + % PDF outlines are displayed using system fonts, instead of + % document fonts. Therefore we cannot use special characters, + % since the encoding is unknown. For example, the eogonek from + % Latin 2 (0xea) gets translated to a | character. Info from + % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. + % + % xx to do this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Right + % now, I guess we'll just let the pdf reader have its way. + \indexnofonts + \setupdatafile + \catcode`\\=\active \otherbackslash + \input \tocreadfilename + \endgroup + } + % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces @@ -1128,25 +1566,36 @@ where each line of input produces a line of output.} \else \let \startlink \pdfstartlink \fi + % make a live url in pdf output. \def\pdfurl#1{% \begingroup - \normalturnoffactive\def\@{@}% - \let\value=\expandablevalue - \leavevmode\Red + % it seems we really need yet another set of dummies; have not + % tried to figure out what each command should do in the context + % of @url. for now, just make @/ a no-op, that's the only one + % people have actually reported a problem with. + % + \normalturnoffactive + \def\@{@}% + \let\/=\empty + \makevalueexpandable + % do we want to go so far as to use \indexnofonts instead of just + % special-casing \var here? + \def\var##1{##1}% + % + \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% - % #1 \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% - \expandafter\poptoks\the\toksA|ENDTOKS| + \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 + \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else @@ -1160,22 +1609,53 @@ where each line of input produces a line of output.} {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \linkcolor #1\endlink} + \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} -\fi % \ifx\pdfoutput +\else + % non-pdf mode + \let\pdfmkdest = \gobble + \let\pdfurl = \gobble + \let\endlink = \relax + \let\setcolor = \gobble + \let\pdfsetcolor = \gobble + \let\pdfmakeoutlines = \relax +\fi % \ifx\pdfoutput \message{fonts,} -% Font-change commands. + +% Change the current font style to #1, remembering it in \curfontstyle. +% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in +% italics, not bold italics. +% +\def\setfontstyle#1{% + \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. + \csname ten#1\endcsname % change the current font +} + +% Select #1 fonts with the current style. +% +\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} + +\def\rm{\fam=0 \setfontstyle{rm}} +\def\it{\fam=\itfam \setfontstyle{it}} +\def\sl{\fam=\slfam \setfontstyle{sl}} +\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} +\def\tt{\fam=\ttfam \setfontstyle{tt}} + +% Unfortunately, we have to override this for titles and the like, since +% in those cases "rm" is bold. Sigh. +\def\rmisbold{\rm\def\curfontstyle{bf}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. -% So we set up a \sf analogous to plain's \rm, etc. +% So we set up a \sf. \newfam\sffam -\def\sf{\fam=\sffam \tensf} +\def\sf{\fam=\sffam \setfontstyle{sf}} \let\li = \sf % Sometimes we call it \li, not \sf. -% We don't need math for this one. -\def\ttsl{\tenttsl} +% We don't need math for this font style. +\def\ttsl{\setfontstyle{ttsl}} + % Default leading. \newdimen\textleading \textleading = 13.2pt @@ -1188,8 +1668,12 @@ where each line of input produces a line of output.} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % +% can get a sort of poor man's double spacing by redefining this. +\def\baselinefactor{1} +% \def\setleading#1{% - \normalbaselineskip = #1\relax + \dimen0 = #1\relax + \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% @@ -1198,10 +1682,279 @@ where each line of input produces a line of output.} }% } +% PDF CMaps. See also LaTeX's t1.cmap. +% +% do nothing with this by default. +\expandafter\let\csname cmapOT1\endcsname\gobble +\expandafter\let\csname cmapOT1IT\endcsname\gobble +\expandafter\let\csname cmapOT1TT\endcsname\gobble + +% if we are producing pdf, and we have \pdffontattr, then define cmaps. +% (\pdffontattr was introduced many years ago, but people still run +% older pdftex's; it's easy to conditionalize, so we do.) +\ifpdf \ifx\pdffontattr\undefined \else + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1-0) +%%Title: (TeX-OT1-0 TeX OT1 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1) +/Supplement 0 +>> def +/CMapName /TeX-OT1-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<23> <26> <0023> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +40 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1IT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1IT-0) +%%Title: (TeX-OT1IT-0 TeX OT1IT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1IT) +/Supplement 0 +>> def +/CMapName /TeX-OT1IT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<25> <26> <0025> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +42 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<23> <0023> +<24> <00A3> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1IT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1TT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1TT-0) +%%Title: (TeX-OT1TT-0 TeX OT1TT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1TT) +/Supplement 0 +>> def +/CMapName /TeX-OT1TT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +5 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<21> <26> <0021> +<28> <5F> <0028> +<61> <7E> <0061> +endbfrange +32 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <2191> +<0C> <2193> +<0D> <0027> +<0E> <00A1> +<0F> <00BF> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<20> <2423> +<27> <2019> +<60> <2018> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1TT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +\fi\fi + + % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). -% #3 is the font's design size, #4 is a scale factor -\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} +% #3 is the font's design size, #4 is a scale factor, #5 is the CMap +% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass +% empty to omit). +\def\setfont#1#2#3#4#5{% + \font#1=\fontprefix#2#3 scaled #4 + \csname cmap#5\endcsname#1% +} +% This is what gets called when #5 of \setfont is empty. +\let\cmap\gobble +% emacs-page end of cmaps % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -1226,110 +1979,293 @@ where each line of input produces a line of output.} \def\scshape{csc} \def\scbshape{csc} -\newcount\mainmagstep -\ifx\bigger\relax - % not really supported. - \mainmagstep=\magstep1 - \setfont\textrm\rmshape{12}{1000} - \setfont\texttt\ttshape{12}{1000} -\else - \mainmagstep=\magstephalf - \setfont\textrm\rmshape{10}{\mainmagstep} - \setfont\texttt\ttshape{10}{\mainmagstep} -\fi -% Instead of cmb10, you may want to use cmbx10. -% cmbx10 is a prettier font on its own, but cmb10 -% looks better when embedded in a line with cmr10 -% (in Bob's opinion). -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} +% Definitions for a main text size of 11pt. This is the default in +% Texinfo. +% +\def\definetextfontsizexi{% +% Text fonts (11.2pt, magstep1). +\def\textnominalsize{11pt} +\edef\mainmagstep{\magstephalf} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1095} -% A few fonts for @defun, etc. -\setfont\defbf\bxshape{10}{\magstep1} %was 1314 -\setfont\deftt\ttshape{10}{\magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstep1}{OT1} +\setfont\deftt\ttshape{10}{\magstep1}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 +\def\smallecsize{0900} % Fonts for small examples (8pt). -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 - -% Fonts for title page: -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} +\def\smallerecsize{0800} + +% Fonts for title page (20.4pt): +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 -\def\authorrm{\secrm} -\def\authortt{\sectt} +\def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). -\setfont\chaprm\rmbshape{12}{\magstep2} -\setfont\chapit\itbshape{10}{\magstep3} -\setfont\chapsl\slbshape{10}{\magstep3} -\setfont\chaptt\ttbshape{12}{\magstep2} -\setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{17}{1000} +\def\chapnominalsize{17pt} +\setfont\chaprm\rmbshape{12}{\magstep2}{OT1} +\setfont\chapit\itbshape{10}{\magstep3}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep3}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} +\setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm -\setfont\chapsc\scbshape{10}{\magstep3} +\setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 +\def\chapecsize{1728} % Section fonts (14.4pt). -\setfont\secrm\rmbshape{12}{\magstep1} -\setfont\secit\itbshape{10}{\magstep2} -\setfont\secsl\slbshape{10}{\magstep2} -\setfont\sectt\ttbshape{12}{\magstep1} -\setfont\secttsl\ttslshape{10}{\magstep2} -\setfont\secsf\sfbshape{12}{\magstep1} +\def\secnominalsize{14pt} +\setfont\secrm\rmbshape{12}{\magstep1}{OT1} +\setfont\secit\itbshape{10}{\magstep2}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep2}{OT1} +\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep2} +\setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 +\def\sececsize{1440} % Subsection fonts (13.15pt). -\setfont\ssecrm\rmbshape{12}{\magstephalf} -\setfont\ssecit\itbshape{10}{1315} -\setfont\ssecsl\slbshape{10}{1315} -\setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{1315} -\setfont\ssecsf\sfbshape{12}{\magstephalf} +\def\ssecnominalsize{13pt} +\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} +\setfont\ssecit\itbshape{10}{1315}{OT1IT} +\setfont\ssecsl\slbshape{10}{1315}{OT1} +\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} +\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{\magstep1} +\setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 -% The smallcaps and symbol fonts should actually be scaled \magstep1.5, -% but that is not a standard magnification. +\def\ssececsize{1200} + +% Reduced fonts for @acro in text (10pt). +\def\reducednominalsize{10pt} +\setfont\reducedrm\rmshape{10}{1000}{OT1} +\setfont\reducedtt\ttshape{10}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{1000}{OT1} +\setfont\reducedit\itshape{10}{1000}{OT1IT} +\setfont\reducedsl\slshape{10}{1000}{OT1} +\setfont\reducedsf\sfshape{10}{1000}{OT1} +\setfont\reducedsc\scshape{10}{1000}{OT1} +\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} +\font\reducedi=cmmi10 +\font\reducedsy=cmsy10 +\def\reducedecsize{1000} + +% reset the current fonts +\textfonts +\rm +} % end of 11pt text font size definitions + + +% Definitions to make the main text be 10pt Computer Modern, with +% section, chapter, etc., sizes following suit. This is for the GNU +% Press printing of the Emacs 22 manual. Maybe other manuals in the +% future. Used with @smallbook, which sets the leading to 12pt. +% +\def\definetextfontsizex{% +% Text fonts (10pt). +\def\textnominalsize{10pt} +\edef\mainmagstep{1000} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} +\font\texti=cmmi10 scaled \mainmagstep +\font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1000} + +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstephalf}{OT1} +\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} + +% Fonts for indices, footnotes, small examples (9pt). +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} +\font\smalli=cmmi9 +\font\smallsy=cmsy9 +\def\smallecsize{0900} + +% Fonts for small examples (8pt). +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} +\font\smalleri=cmmi8 +\font\smallersy=cmsy8 +\def\smallerecsize{0800} + +% Fonts for title page (20.4pt): +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} +\let\titlebf=\titlerm +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} +\font\titlei=cmmi12 scaled \magstep3 +\font\titlesy=cmsy10 scaled \magstep4 +\def\titleecsize{2074} + +% Chapter fonts (14.4pt). +\def\chapnominalsize{14pt} +\setfont\chaprm\rmbshape{12}{\magstep1}{OT1} +\setfont\chapit\itbshape{10}{\magstep2}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep2}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\chapsf\sfbshape{12}{\magstep1}{OT1} +\let\chapbf\chaprm +\setfont\chapsc\scbshape{10}{\magstep2}{OT1} +\font\chapi=cmmi12 scaled \magstep1 +\font\chapsy=cmsy10 scaled \magstep2 +\def\chapecsize{1440} + +% Section fonts (12pt). +\def\secnominalsize{12pt} +\setfont\secrm\rmbshape{12}{1000}{OT1} +\setfont\secit\itbshape{10}{\magstep1}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep1}{OT1} +\setfont\sectt\ttbshape{12}{1000}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} +\setfont\secsf\sfbshape{12}{1000}{OT1} +\let\secbf\secrm +\setfont\secsc\scbshape{10}{\magstep1}{OT1} +\font\seci=cmmi12 +\font\secsy=cmsy10 scaled \magstep1 +\def\sececsize{1200} + +% Subsection fonts (10pt). +\def\ssecnominalsize{10pt} +\setfont\ssecrm\rmbshape{10}{1000}{OT1} +\setfont\ssecit\itbshape{10}{1000}{OT1IT} +\setfont\ssecsl\slbshape{10}{1000}{OT1} +\setfont\ssectt\ttbshape{10}{1000}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} +\setfont\ssecsf\sfbshape{10}{1000}{OT1} +\let\ssecbf\ssecrm +\setfont\ssecsc\scbshape{10}{1000}{OT1} +\font\sseci=cmmi10 +\font\ssecsy=cmsy10 +\def\ssececsize{1000} + +% Reduced fonts for @acro in text (9pt). +\def\reducednominalsize{9pt} +\setfont\reducedrm\rmshape{9}{1000}{OT1} +\setfont\reducedtt\ttshape{9}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{900}{OT1} +\setfont\reducedit\itshape{9}{1000}{OT1IT} +\setfont\reducedsl\slshape{9}{1000}{OT1} +\setfont\reducedsf\sfshape{9}{1000}{OT1} +\setfont\reducedsc\scshape{10}{900}{OT1} +\setfont\reducedttsl\ttslshape{10}{900}{OT1TT} +\font\reducedi=cmmi9 +\font\reducedsy=cmsy9 +\def\reducedecsize{0900} + +% reduce space between paragraphs +\divide\parskip by 2 + +% reset the current fonts +\textfonts +\rm +} % end of 10pt text font size definitions + + +% We provide the user-level command +% @fonttextsize 10 +% (or 11) to redefine the text font size. pt is assumed. +% +\def\xword{10} +\def\xiword{11} +% +\parseargdef\fonttextsize{% + \def\textsizearg{#1}% + \wlog{doing @fonttextsize \textsizearg}% + % + % Set \globaldefs so that documents can use this inside @tex, since + % makeinfo 4.8 does not support it, but we need it nonetheless. + % + \begingroup \globaldefs=1 + \ifx\textsizearg\xword \definetextfontsizex + \else \ifx\textsizearg\xiword \definetextfontsizexi + \else + \errhelp=\EMsimple + \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} + \fi\fi + \endgroup +} + % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since @@ -1344,106 +2280,264 @@ where each line of input produces a line of output.} } % The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this so that font changes will continue to work -% in math mode, where it is the current \fam that is relevant in most -% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam -% \tenbf}, for example. By redefining \tenbf, we obviate the need to -% redefine \bf itself. +% of just \STYLE. We do this because \STYLE needs to also set the +% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire +% \tenSTYLE to set the current font. +% +% Each font-changing command also sets the names \lsize (one size lower) +% and \lllsize (three sizes lower). These relative commands are used in +% the LaTeX logo and acronyms. +% +% This all needs generalizing, badly. +% \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl + \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy + \let\tenttsl=\textttsl + \def\curfontsize{text}% + \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl + \def\curfontsize{title}% + \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{25pt}} -\def\titlefont#1{{\titlefonts\rm #1}} +\def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc - \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl + \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy + \let\tenttsl=\chapttsl + \def\curfontsize{chap}% + \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl + \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy + \let\tenttsl=\secttsl + \def\curfontsize{sec}% + \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl + \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy + \let\tenttsl=\ssecttsl + \def\curfontsize{ssec}% + \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} -\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf? +\let\subsubsecfonts = \subsecfonts +\def\reducedfonts{% + \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl + \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc + \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy + \let\tenttsl=\reducedttsl + \def\curfontsize{reduced}% + \def\lsize{small}\def\lllsize{smaller}% + \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl + \def\curfontsize{small}% + \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl + \def\curfontsize{smaller}% + \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} +% Fonts for short table of contents. +\setfont\shortcontrm\rmshape{12}{1000}{OT1} +\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 +\setfont\shortcontsl\slshape{12}{1000}{OT1} +\setfont\shortconttt\ttshape{12}{1000}{OT1TT} + +% Define these just so they can be easily changed for other fonts. +\def\angleleft{$\langle$} +\def\angleright{$\rangle$} + % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 -% If we use \smallerfonts (8pt), then we can fit this many characters: +% If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. -% +% % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 -% -% I wish we used A4 paper on this side of the Atlantic. -% % --karl, 24jan03. - % Set up the default fonts, so we can use them for creating boxes. % -\textfonts +\definetextfontsizexi -% Define these so they can be easily changed for other fonts. -\def\angleleft{$\langle$} -\def\angleright{$\rangle$} + +\message{markup,} + +% Check if we are currently using a typewriter font. Since all the +% Computer Modern typewriter fonts have zero interword stretch (and +% shrink), and it is reasonable to expect all typewriter fonts to have +% this property, we can check that font parameter. +% +\def\ifmonospace{\ifdim\fontdimen3\font=0pt } + +% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will +% define and register \INITMACRO to be called on markup style changes. +% \INITMACRO can check \currentmarkupstyle for the innermost +% style and the set of \ifmarkupSTYLE switches for all styles +% currently in effect. +\newif\ifmarkupvar +\newif\ifmarkupsamp +\newif\ifmarkupkey +%\newif\ifmarkupfile % @file == @samp. +%\newif\ifmarkupoption % @option == @samp. +\newif\ifmarkupcode +\newif\ifmarkupkbd +%\newif\ifmarkupenv % @env == @code. +%\newif\ifmarkupcommand % @command == @code. +\newif\ifmarkuptex % @tex (and part of @math, for now). +\newif\ifmarkupexample +\newif\ifmarkupverb +\newif\ifmarkupverbatim + +\let\currentmarkupstyle\empty + +\def\setupmarkupstyle#1{% + \csname markup#1true\endcsname + \def\currentmarkupstyle{#1}% + \markupstylesetup +} + +\let\markupstylesetup\empty + +\def\defmarkupstylesetup#1{% + \expandafter\def\expandafter\markupstylesetup + \expandafter{\markupstylesetup #1}% + \def#1% +} + +% Markup style setup for left and right quotes. +\defmarkupstylesetup\markupsetuplq{% + \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname + \ifx\temp\relax \markupsetuplqdefault \else \temp \fi +} + +\defmarkupstylesetup\markupsetuprq{% + \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname + \ifx\temp\relax \markupsetuprqdefault \else \temp \fi +} + +{ +\catcode`\'=\active +\catcode`\`=\active + +\gdef\markupsetuplqdefault{\let`\lq} +\gdef\markupsetuprqdefault{\let'\rq} + +\gdef\markupsetcodequoteleft{\let`\codequoteleft} +\gdef\markupsetcodequoteright{\let'\codequoteright} + +\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} +} + +\let\markupsetuplqcode \markupsetcodequoteleft +\let\markupsetuprqcode \markupsetcodequoteright +\let\markupsetuplqexample \markupsetcodequoteleft +\let\markupsetuprqexample \markupsetcodequoteright +\let\markupsetuplqverb \markupsetcodequoteleft +\let\markupsetuprqverb \markupsetcodequoteright +\let\markupsetuplqverbatim \markupsetcodequoteleft +\let\markupsetuprqverbatim \markupsetcodequoteright + +\let\markupsetuplqsamp \markupsetnoligaturesquoteleft +\let\markupsetuplqkbd \markupsetnoligaturesquoteleft + +% Allow an option to not replace quotes with a regular directed right +% quote/apostrophe (char 0x27), but instead use the undirected quote +% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it +% the default, but it works for pasting with more pdf viewers (at least +% evince), the lilypond developers report. xpdf does work with the +% regular 0x27. +% +\def\codequoteright{% + \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax + \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax + '% + \else \char'15 \fi + \else \char'15 \fi +} +% +% and a similar option for the left quote char vs. a grave accent. +% Modern fonts display ASCII 0x60 as a grave accent, so some people like +% the code environments to do likewise. +% +\def\codequoteleft{% + \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax + \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax + % [Knuth] pp. 380,381,391 + % \relax disables Spanish ligatures ?` and !` of \tt font. + \relax`% + \else \char'22 \fi + \else \char'22 \fi +} + +% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. +\def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 -% Fonts for short table of contents. -\setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bxshape{12}{1000} -\setfont\shortcontsl\slshape{12}{1000} -\setfont\shortconttt\ttshape{12}{1000} - %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} +\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else + \ptexslash\fi\fi\fi} \def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} \def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} +% like \smartslanted except unconditionally uses \ttsl. +% @var is set to this for defun arguments. +\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} + +% @cite is like \smartslanted except unconditionally use \sl. We never want +% ttsl for book titles, do we? +\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} + \let\i=\smartitalic -\let\var=\smartslanted +\let\slanted=\smartslanted +\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} \let\dfn=\smartslanted \let\emph=\smartitalic -\let\cite=\smartslanted +% Explicit font changes: @r, @sc, undocumented @ii. +\def\r#1{{\rm #1}} % roman font +\def\sc#1{{\smallcaps#1}} % smallcaps font +\def\ii#1{{\it #1}} % italic font + +% @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b +% @sansserif, explicit sans. +\def\sansserif#1{{\sf #1}} + % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. @@ -1454,30 +2548,50 @@ where each line of input produces a line of output.} % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. -% +% \catcode`@=11 - \def\frenchspacing{% + \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + \def\endofsentencespacefactor{1000}% for @. and friends + } + \def\plainnonfrenchspacing{% + \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 + \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 + \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other +\def\endofsentencespacefactor{3000}% default +% @t, explicit typewriter. \def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% + {\tt \rawbackslash \plainfrenchspacing #1}% \null } -\let\ttfont=\t -\def\samp#1{`\tclose{#1}'\null} -\setfont\keyrm\rmshape{8}{1000} -\font\keysy=cmsy9 -\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% - \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% - \vbox{\hrule\kern-0.4pt - \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% - \kern-0.4pt\hrule}% - \kern-.06em\raise0.4pt\hbox{\angleright}}}} -% The old definition, with no lozenge: -%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} + +% @samp. +\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} + +% definition of @key that produces a lozenge. Doesn't adjust to text size. +%\setfont\keyrm\rmshape{8}{1000}{OT1} +%\font\keysy=cmsy9 +%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% +% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% +% \vbox{\hrule\kern-0.4pt +% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% +% \kern-0.4pt\hrule}% +% \kern-.06em\raise0.4pt\hbox{\angleright}}}} + +% definition of @key with no lozenge. If the current font is already +% monospace, don't change it; that way, we respect @kbdinputstyle. But +% if it isn't monospace, then use \tt. +% +\def\key#1{{\setupmarkupstyle{key}% + \nohyphenation + \ifmonospace\else\tt\fi + #1}\null} + +% ctrl is no longer a Texinfo command. \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. @@ -1501,13 +2615,13 @@ where each line of input produces a line of output.} \nohyphenation % \rawbackslash - \frenchspacing + \plainfrenchspacing #1% }% \null } -% We *must* turn on hyphenation at `-' and `_' in \code. +% We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. @@ -1517,18 +2631,23 @@ where each line of input produces a line of output.} % and arrange explicitly to hyphenate at a dash. % -- rms. { - \catcode`\-=\active - \catcode`\_=\active + \catcode`\-=\active \catcode`\_=\active + \catcode`\'=\active \catcode`\`=\active + \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup - \catcode`\-=\active \let-\codedash - \catcode`\_=\active \let_\codeunder + \setupmarkupstyle{code}% + % The following should really be moved into \setupmarkupstyle handlers. + \catcode\dashChar=\active \catcode\underChar=\active + \ifallowcodebreaks + \let-\codedash + \let_\codeunder + \else + \let-\realdash + \let_\realunder + \fi \codex } - % - % If we end up with any active - characters when handling the index, - % just treat them as a normal -. - \global\def\indexbreaks{\catcode`\-=\active \let-\realdash} } \def\realdash{-} @@ -1546,44 +2665,73 @@ where each line of input produces a line of output.} } \def\codex #1{\tclose{#1}\endgroup} +% An additional complication: the above will allow breaks after, e.g., +% each of the four underscores in __typeof__. This is undesirable in +% some manuals, especially if they don't have long identifiers in +% general. @allowcodebreaks provides a way to control this. +% +\newif\ifallowcodebreaks \allowcodebreakstrue + +\def\keywordtrue{true} +\def\keywordfalse{false} + +\parseargdef\allowcodebreaks{% + \def\txiarg{#1}% + \ifx\txiarg\keywordtrue + \allowcodebreakstrue + \else\ifx\txiarg\keywordfalse + \allowcodebreaksfalse + \else + \errhelp = \EMsimple + \errmessage{Unknown @allowcodebreaks option `\txiarg'}% + \fi\fi +} + % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. +\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). -\def\kbdinputstyle{\parsearg\kbdinputstylexxx} -\def\kbdinputstylexxx#1{% - \def\arg{#1}% - \ifx\arg\worddistinct +\parseargdef\kbdinputstyle{% + \def\txiarg{#1}% + \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% - \else\ifx\arg\wordexample + \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% - \else\ifx\arg\wordcode + \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle `\arg'}% + \errmessage{Unknown @kbdinputstyle option `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} -% Default is `distinct.' +% Default is `distinct'. \kbdinputstyle distinct \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% -\else{\tclose{\kbdfont\look}}\fi -\else{\tclose{\kbdfont\look}}\fi} +\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi +\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} -% For @url, @env, @command quotes seem unnecessary, so use \code. -\let\url=\code +% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. +\let\indicateurl=\code \let\env=\code \let\command=\code +% @clicksequence{File @click{} Open ...} +\def\clicksequence#1{\begingroup #1\endgroup} + +% @clickstyle @arrow (by default) +\parseargdef\clickstyle{\def\click{#1}} +\def\click{\arrow} + % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url @@ -1598,66 +2746,249 @@ where each line of input produces a line of output.} \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \ifpdf - \unhbox0 % PDF: 2nd arg given, show only it - \else - \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url - \fi - \else - \code{#1}% only url given, so show it + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0 > 0pt + \ifpdf + \unhbox0 % PDF: 2nd arg given, show only it + \else + \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url + \fi + \else + \code{#1}% only url given, so show it + \fi + \fi + \endlink +\endgroup} + +% @url synonym for @uref, since that's how everyone uses it. +% +\let\url=\uref + +% rms does not like angle brackets --karl, 17may97. +% So now @email is just like @uref, unless we are pdf. +% +%\def\email#1{\angleleft{\tt #1}\angleright} +\ifpdf + \def\email#1{\doemail#1,,\finish} + \def\doemail#1,#2,#3\finish{\begingroup + \unsepspaces + \pdfurl{mailto:#1}% + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi + \endlink + \endgroup} +\else + \let\email=\uref +\fi + +% Typeset a dimension, e.g., `in' or `pt'. The only reason for the +% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. +% +\def\dmn#1{\thinspace #1} + +% @l was never documented to mean ``switch to the Lisp font'', +% and it is not used as such in any manual I can find. We need it for +% Polish suppressed-l. --karl, 22sep96. +%\def\l#1{{\li #1}\null} + +% @acronym for "FBI", "NATO", and the like. +% We print this one point size smaller, since it's intended for +% all-uppercase. +% +\def\acronym#1{\doacronym #1,,\finish} +\def\doacronym#1,#2,#3\finish{% + {\selectfonts\lsize #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi +} + +% @abbr for "Comput. J." and the like. +% No font change, but don't do end-of-sentence spacing. +% +\def\abbr#1{\doabbr #1,,\finish} +\def\doabbr#1,#2,#3\finish{% + {\plainfrenchspacing #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi +} + + +\message{glyphs,} + +% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. +% +% Since these characters are used in examples, they should be an even number of +% \tt widths. Each \tt character is 1en, so two makes it 1em. +% +\def\point{$\star$} +\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} +\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} +\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} +\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} +\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} + +% The @error{} command. +% Adapted from the TeXbook's \boxit. +% +\newbox\errorbox +% +{\tentt \global\dimen0 = 3em}% Width of the box. +\dimen2 = .55pt % Thickness of rules +% The text. (`r' is open on the right, `e' somewhat less so on the left.) +\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} +% +\setbox\errorbox=\hbox to \dimen0{\hfil + \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. + \advance\hsize by -2\dimen2 % Rules. + \vbox{% + \hrule height\dimen2 + \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. + \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. + \kern3pt\vrule width\dimen2}% Space to right. + \hrule height\dimen2} + \hfil} +% +\def\error{\leavevmode\lower.7ex\copy\errorbox} + +% @pounds{} is a sterling sign, which Knuth put in the CM italic font. +% +\def\pounds{{\it\$}} + +% @euro{} comes from a separate font, depending on the current style. +% We use the free feym* fonts from the eurosym package by Henrik +% Theiling, which support regular, slanted, bold and bold slanted (and +% "outlined" (blackboard board, sort of) versions, which we don't need). +% It is available from http://www.ctan.org/tex-archive/fonts/eurosym. +% +% Although only regular is the truly official Euro symbol, we ignore +% that. The Euro is designed to be slightly taller than the regular +% font height. +% +% feymr - regular +% feymo - slanted +% feybr - bold +% feybo - bold slanted +% +% There is no good (free) typewriter version, to my knowledge. +% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. +% Hmm. +% +% Also doesn't work in math. Do we need to do math with euro symbols? +% Hope not. +% +% +\def\euro{{\eurofont e}} +\def\eurofont{% + % We set the font at each command, rather than predefining it in + % \textfonts and the other font-switching commands, so that + % installations which never need the symbol don't have to have the + % font installed. + % + % There is only one designed size (nominal 10pt), so we always scale + % that to the current nominal size. + % + % By the way, simply using "at 1em" works for cmr10 and the like, but + % does not work for cmbx10 and other extended/shrunken fonts. + % + \def\eurosize{\csname\curfontsize nominalsize\endcsname}% + % + \ifx\curfontstyle\bfstylename + % bold: + \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize + \else + % regular: + \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize + \fi + \thiseurofont +} + +% Hacks for glyphs from the EC fonts similar to \euro. We don't +% use \let for the aliases, because sometimes we redefine the original +% macro, and the alias should reflect the redefinition. +\def\guillemetleft{{\ecfont \char"13}} +\def\guillemotleft{\guillemetleft} +\def\guillemetright{{\ecfont \char"14}} +\def\guillemotright{\guillemetright} +\def\guilsinglleft{{\ecfont \char"0E}} +\def\guilsinglright{{\ecfont \char"0F}} +\def\quotedblbase{{\ecfont \char"12}} +\def\quotesinglbase{{\ecfont \char"0D}} +% +% This positioning is not perfect (see the ogonek LaTeX package), but +% we have the precomposed glyphs for the most common cases. We put the +% tests to use those glyphs in the single \ogonek macro so we have fewer +% dummy definitions to worry about for index entries, etc. +% +% ogonek is also used with other letters in Lithuanian (IOU), but using +% the precomposed glyphs for those is not so easy since they aren't in +% the same EC font. +\def\ogonek#1{{% + \def\temp{#1}% + \ifx\temp\macrocharA\Aogonek + \else\ifx\temp\macrochara\aogonek + \else\ifx\temp\macrocharE\Eogonek + \else\ifx\temp\macrochare\eogonek + \else + \ecfont \setbox0=\hbox{#1}% + \ifdim\ht0=1ex\accent"0C #1% + \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi + \fi\fi\fi\fi + }% +} +\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} +\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} +\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} +\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} +% +\def\ecfont{% + % We can't distinguish serif/sans and italic/slanted, but this + % is used for crude hacks anyway (like adding French and German + % quotes to documents typeset with CM, where we lose kerning), so + % hopefully nobody will notice/care. + \edef\ecsize{\csname\curfontsize ecsize\endcsname}% + \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% + \ifx\curfontstyle\bfstylename + % bold: + \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize + \else + % regular: + \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi - \endlink -\endgroup} - -% rms does not like angle brackets --karl, 17may97. -% So now @email is just like @uref, unless we are pdf. -% -%\def\email#1{\angleleft{\tt #1}\angleright} -\ifpdf - \def\email#1{\doemail#1,,\finish} - \def\doemail#1,#2,#3\finish{\begingroup - \unsepspaces - \pdfurl{mailto:#1}% - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi - \endlink - \endgroup} -\else - \let\email=\uref -\fi + \thisecfont +} -% Check if we are currently using a typewriter font. Since all the -% Computer Modern typewriter fonts have zero interword stretch (and -% shrink), and it is reasonable to expect all typewriter fonts to have -% this property, we can check that font parameter. +% @registeredsymbol - R in a circle. The font for the R should really +% be smaller yet, but lllsize is the best we can do for now. +% Adapted from the plain.tex definition of \copyright. % -\def\ifmonospace{\ifdim\fontdimen3\font=0pt } +\def\registeredsymbol{% + $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% + \hfil\crcr\Orb}}% + }$% +} -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. +% @textdegree - the normal degrees sign. % -\def\dmn#1{\thinspace #1} - -\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} - -% @l was never documented to mean ``switch to the Lisp font'', -% and it is not used as such in any manual I can find. We need it for -% Polish suppressed-l. --karl, 22sep96. -%\def\l#1{{\li #1}\null} - -% Explicit font changes: @r, @sc, undocumented @ii. -\def\r#1{{\rm #1}} % roman font -\def\sc#1{{\smallcaps#1}} % smallcaps font -\def\ii#1{{\it #1}} % italic font +\def\textdegree{$^\circ$} -% @acronym downcases the argument and prints in smallcaps. -\def\acronym#1{{\smallcaps \lowercase{#1}}} +% Laurent Siebenmann reports \Orb undefined with: +% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 +% so we'll define it if necessary. +% +\ifx\Orb\undefined +\def\Orb{\mathhexbox20D} +\fi -% @pounds{} is a sterling sign. -\def\pounds{{\it\$}} +% Quotes. +\chardef\quotedblleft="5C +\chardef\quotedblright=`\" +\chardef\quoteleft=`\` +\chardef\quoteright=`\' \message{page headings,} @@ -1677,87 +3008,100 @@ where each line of input produces a line of output.} \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue -\def\shorttitlepage{\parsearg\shorttitlepagezzz} -\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% +\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} -\def\titlepage{\begingroup \parindent=0pt \textfonts - \let\subtitlerm=\tenrm - \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% - % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines - \let\tt=\authortt}% - % - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % - % Now you can print the title using @title. - \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefonts\rm ##1} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Now you can put text using @subtitle. - \def\subtitle{\parsearg\subtitlezzz}% - \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% - % - % @author should come last, but may come many times. - \def\author{\parsearg\authorzzz}% - \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi - {\authorfont \leftline{##1}}}% - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% +\envdef\titlepage{% + % Open one extra group, as we want to close it in the middle of \Etitlepage. + \begingroup + \parindent=0pt \textfonts + % Leave some space at the very top of the page. + \vglue\titlepagetopglue + % No rule at page bottom unless we print one at the top with @title. + \finishedtitlepagetrue + % + % Most title ``pages'' are actually two pages long, with space + % at the top of the second. We don't want the ragged left on the second. + \let\oldpage = \page + \def\page{% \iffinishedtitlepage\else - \finishtitlepage + \finishtitlepage \fi - \oldpage \let\page = \oldpage - \hbox{}}% -% \def\page{\oldpage \hbox{}} + \page + \null + }% } \def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon - % - % If they want short, they certainly want long too. - \ifsetshortcontentsaftertitlepage - \shortcontents - \contents - \global\let\shortcontents = \relax - \global\let\contents = \relax - \fi - % - \ifsetcontentsaftertitlepage - \contents - \global\let\contents = \relax - \global\let\shortcontents = \relax - \fi + \iffinishedtitlepage\else + \finishtitlepage + \fi + % It is important to do the page break before ending the group, + % because the headline and footline are only empty inside the group. + % If we use the new definition of \page, we always get a blank page + % after the title page, which we certainly don't want. + \oldpage + \endgroup + % + % Need this before the \...aftertitlepage checks so that if they are + % in effect the toc pages will come out with page numbers. + \HEADINGSon + % + % If they want short, they certainly want long too. + \ifsetshortcontentsaftertitlepage + \shortcontents + \contents + \global\let\shortcontents = \relax + \global\let\contents = \relax + \fi + % + \ifsetcontentsaftertitlepage + \contents + \global\let\contents = \relax + \global\let\shortcontents = \relax + \fi } \def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue + \vskip4pt \hrule height 2pt width \hsize + \vskip\titlepagebottomglue + \finishedtitlepagetrue +} + +%%% Macros to be used within @titlepage: + +\let\subtitlerm=\tenrm +\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} + +\parseargdef\title{% + \checkenv\titlepage + \leftline{\titlefonts\rmisbold #1} + % print a rule at the page bottom also. + \finishedtitlepagefalse + \vskip4pt \hrule height 4pt width \hsize \vskip4pt +} + +\parseargdef\subtitle{% + \checkenv\titlepage + {\subtitlefont \rightline{#1}}% +} + +% @author should come last, but may come many times. +% It can also be used inside @quotation. +% +\parseargdef\author{% + \def\temp{\quotation}% + \ifx\thisenv\temp + \def\quotationauthor{#1}% printed in \Equotation. + \else + \checkenv\titlepage + \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi + {\secfonts\rmisbold \leftline{#1}}% + \fi } + %%% Set up page headings and footings. \let\thispage=\folio @@ -1767,7 +3111,7 @@ where each line of input produces a line of output.} \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages -% Now make Tex use those variables +% Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline @@ -1781,43 +3125,64 @@ where each line of input produces a line of output.} % @evenfooting @thisfile|| % @oddfooting ||@thisfile -\def\evenheading{\parsearg\evenheadingxxx} -\def\oddheading{\parsearg\oddheadingxxx} -\def\everyheading{\parsearg\everyheadingxxx} - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\oddfooting{\parsearg\oddfootingxxx} -\def\everyfooting{\parsearg\everyfootingxxx} - -{\catcode`\@=0 % -\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} -\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% +\def\evenheading{\parsearg\evenheadingxxx} +\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} +\def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} -\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% +\def\oddheading{\parsearg\oddheadingxxx} +\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} +\def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% +\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% -\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} -\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% +\def\evenfooting{\parsearg\evenfootingxxx} +\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} +\def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} -\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% +\def\oddfooting{\parsearg\oddfootingxxx} +\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} +\def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. - \global\advance\pageheight by -\baselineskip - \global\advance\vsize by -\baselineskip + \global\advance\pageheight by -12pt + \global\advance\vsize by -12pt } -\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} +\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} + +% @evenheadingmarks top \thischapter <- chapter at the top of a page +% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page +% +% The same set of arguments for: % -}% unbind the catcode of @. +% @oddheadingmarks +% @evenfootingmarks +% @oddfootingmarks +% @everyheadingmarks +% @everyfootingmarks + +\def\evenheadingmarks{\headingmarks{even}{heading}} +\def\oddheadingmarks{\headingmarks{odd}{heading}} +\def\evenfootingmarks{\headingmarks{even}{footing}} +\def\oddfootingmarks{\headingmarks{odd}{footing}} +\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} + \headingmarks{odd}{heading}{#1} } +\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} + \headingmarks{odd}{footing}{#1} } +% #1 = even/odd, #2 = heading/footing, #3 = top/bottom. +\def\headingmarks#1#2#3 {% + \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname + \global\expandafter\let\csname get#1#2marks\endcsname \temp +} + +\everyheadingmarks bottom +\everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. @@ -1831,7 +3196,7 @@ where each line of input produces a line of output.} \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\HEADINGSoff{ +\def\HEADINGSoff{% \global\evenheadline={\hfil} \global\evenfootline={\hfil} \global\oddheadline={\hfil} \global\oddfootline={\hfil}} \HEADINGSoff @@ -1840,7 +3205,7 @@ where each line of input produces a line of output.} % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. -\def\HEADINGSdouble{ +\def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} @@ -1852,7 +3217,7 @@ where each line of input produces a line of output.} % For single-sided printing, chapter title goes across top left of page, % page number on top right. -\def\HEADINGSsingle{ +\def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} @@ -1899,12 +3264,11 @@ where each line of input produces a line of output.} % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} -\def\settitle{\parsearg\settitlezzz} -\def\settitlezzz #1{\gdef\thistitle{#1}} +\def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} -% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). +% Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in @@ -1916,7 +3280,7 @@ where each line of input produces a line of output.} % used internally for \itemindent minus \itemmargin \newdimen\itemmax -% Note @table, @vtable, and @vtable define @item, @itemx, etc., with +% Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). @@ -1928,22 +3292,10 @@ where each line of input produces a line of output.} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} -\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} -\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} - -\def\internalBkitem{\smallbreak \parsearg\kitemzzz} -\def\internalBkitemx{\itemxpar \parsearg\kitemzzz} - -\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% - \itemzzz {#1}} - -\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% - \itemzzz {#1}} - \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent - \setbox0=\hbox{\itemfont{#1}}% + \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % @@ -1967,17 +3319,13 @@ where each line of input produces a line of output.} % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % - % Stop a page break at the \parskip glue coming up. (Unfortunately - % we can't prevent a possible page break at the following - % \baselineskip glue.) However, if what follows is an environment - % such as @example, there will be no \parskip glue; then - % the negative vskip we just would cause the example and the item to - % crash together. So we use this bizarre value of 10001 as a signal - % to \aboveenvbreak to insert \parskip glue after all. - % (Possibly there are other commands that could be followed by - % @example which need the same treatment, but not section titles; or - % maybe section titles are the only special case and they should be - % penalty 10001...) + % Stop a page break at the \parskip glue coming up. However, if + % what follows is an environment such as @example, there will be no + % \parskip glue; then the negative vskip we just inserted would + % cause the example and the item to crash together. So we use this + % bizarre value of 10001 as a signal to \aboveenvbreak to insert + % \parskip glue after all. Section titles are handled this way also. + % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse @@ -1997,92 +3345,116 @@ where each line of input produces a line of output.} \fi } -\def\item{\errmessage{@item while not in a table}} -\def\itemx{\errmessage{@itemx while not in a table}} -\def\kitem{\errmessage{@kitem while not in a table}} -\def\kitemx{\errmessage{@kitemx while not in a table}} -\def\xitem{\errmessage{@xitem while not in a table}} -\def\xitemx{\errmessage{@xitemx while not in a table}} - -% Contains a kludge to get @end[description] to work. -\def\description{\tablez{\dontindex}{1}{}{}{}{}} +\def\item{\errmessage{@item while not in a list environment}} +\def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. -\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} -{\obeylines\obeyspaces% -\gdef\tablex #1^^M{% -\tabley\dontindex#1 \endtabley}} - -\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} -{\obeylines\obeyspaces% -\gdef\ftablex #1^^M{% -\tabley\fnitemindex#1 \endtabley -\def\Eftable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} -{\obeylines\obeyspaces% -\gdef\vtablex #1^^M{% -\tabley\vritemindex#1 \endtabley -\def\Evtable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\dontindex #1{} -\def\fnitemindex #1{\doind {fn}{\code{#1}}}% -\def\vritemindex #1{\doind {vr}{\code{#1}}}% - -{\obeyspaces % -\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% -\tablez{#1}{#2}{#3}{#4}{#5}{#6}}} - -\def\tablez #1#2#3#4#5#6{% -\aboveenvbreak % -\begingroup % -\def\Edescription{\Etable}% Necessary kludge. -\let\itemindex=#1% -\ifnum 0#3>0 \advance \leftskip by #3\mil \fi % -\ifnum 0#4>0 \tableindent=#4\mil \fi % -\ifnum 0#5>0 \advance \rightskip by #5\mil \fi % -\def\itemfont{#2}% -\itemmax=\tableindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \tableindent % -\exdentamount=\tableindent -\parindent = 0pt -\parskip = \smallskipamount -\ifdim \parskip=0pt \parskip=2pt \fi% -\def\Etable{\endgraf\afterenvbreak\endgroup}% -\let\item = \internalBitem % -\let\itemx = \internalBitemx % -\let\kitem = \internalBkitem % -\let\kitemx = \internalBkitemx % -\let\xitem = \internalBxitem % -\let\xitemx = \internalBxitemx % +\envdef\table{% + \let\itemindex\gobble + \tablecheck{table}% +} +\envdef\ftable{% + \def\itemindex ##1{\doind {fn}{\code{##1}}}% + \tablecheck{ftable}% +} +\envdef\vtable{% + \def\itemindex ##1{\doind {vr}{\code{##1}}}% + \tablecheck{vtable}% } +\def\tablecheck#1{% + \ifnum \the\catcode`\^^M=\active + \endgroup + \errmessage{This command won't work in this context; perhaps the problem is + that we are \inenvironment\thisenv}% + \def\next{\doignore{#1}}% + \else + \let\next\tablex + \fi + \next +} +\def\tablex#1{% + \def\itemindicate{#1}% + \parsearg\tabley +} +\def\tabley#1{% + {% + \makevalueexpandable + \edef\temp{\noexpand\tablez #1\space\space\space}% + \expandafter + }\temp \endtablez +} +\def\tablez #1 #2 #3 #4\endtablez{% + \aboveenvbreak + \ifnum 0#1>0 \advance \leftskip by #1\mil \fi + \ifnum 0#2>0 \tableindent=#2\mil \fi + \ifnum 0#3>0 \advance \rightskip by #3\mil \fi + \itemmax=\tableindent + \advance \itemmax by -\itemmargin + \advance \leftskip by \tableindent + \exdentamount=\tableindent + \parindent = 0pt + \parskip = \smallskipamount + \ifdim \parskip=0pt \parskip=2pt \fi + \let\item = \internalBitem + \let\itemx = \internalBitemx +} +\def\Etable{\endgraf\afterenvbreak} +\let\Eftable\Etable +\let\Evtable\Etable +\let\Eitemize\Etable +\let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno -\def\itemize{\parsearg\itemizezzz} +\envdef\itemize{\parsearg\doitemize} -\def\itemizezzz #1{% - \begingroup % ended by the @end itemize - \itemizey {#1}{\Eitemize} +\def\doitemize#1{% + \aboveenvbreak + \itemmax=\itemindent + \advance\itemmax by -\itemmargin + \advance\leftskip by \itemindent + \exdentamount=\itemindent + \parindent=0pt + \parskip=\smallskipamount + \ifdim\parskip=0pt \parskip=2pt \fi + % + % Try typesetting the item mark that if the document erroneously says + % something like @itemize @samp (intending @table), there's an error + % right away at the @itemize. It's not the best error message in the + % world, but it's better than leaving it to the @item. This means if + % the user wants an empty mark, they have to say @w{} not just @w. + \def\itemcontents{#1}% + \setbox0 = \hbox{\itemcontents}% + % + % @itemize with no arg is equivalent to @itemize @bullet. + \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi + % + \let\item=\itemizeitem } -\def\itemizey #1#2{% -\aboveenvbreak % -\itemmax=\itemindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \itemindent % -\exdentamount=\itemindent -\parindent = 0pt % -\parskip = \smallskipamount % -\ifdim \parskip=0pt \parskip=2pt \fi% -\def#2{\endgraf\afterenvbreak\endgroup}% -\def\itemcontents{#1}% -\let\item=\itemizeitem} +% Definition of @item while inside @itemize and @enumerate. +% +\def\itemizeitem{% + \advance\itemno by 1 % for enumerations + {\let\par=\endgraf \smallbreak}% reasonable place to break + {% + % If the document has an @itemize directly after a section title, a + % \nobreak will be last on the list, and \sectionheading will have + % done a \vskip-\parskip. In that case, we don't want to zero + % parskip, or the item text will crash with the heading. On the + % other hand, when there is normal text preceding the item (as there + % usually is), we do want to zero parskip, or there would be too much + % space. In that case, we won't have a \nobreak before. At least + % that's the theory. + \ifnum\lastpenalty<10000 \parskip=0in \fi + \noindent + \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% + % + \vadjust{\penalty 1200}}% not good to break after first line of item. + \flushcr +} % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. @@ -2093,11 +3465,8 @@ where each line of input produces a line of output.} % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % -\def\enumerate{\parsearg\enumeratezzz} -\def\enumeratezzz #1{\enumeratey #1 \endenumeratey} +\envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% - \begingroup % ended by the @end enumerate - % % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi @@ -2168,13 +3537,13 @@ where each line of input produces a line of output.} }% } -% Call itemizey, adding a period to the first argument and supplying the +% Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 - \itemizey{#1.}\Eenumerate\flushcr + \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg @@ -2185,16 +3554,6 @@ where each line of input produces a line of output.} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} -% Definition of @item while inside @itemize. - -\def\itemizeitem{% -\advance\itemno by 1 -{\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{In hmode at itemizeitem}\fi -{\parskip=0in \hskip 0pt -\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% -\vadjust{\penalty 1200}}% -\flushcr} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 @@ -2221,24 +3580,14 @@ where each line of input produces a line of output.} % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. -% -% For those who want to use more than one line's worth of words in -% the preamble, break the line within one argument and it -% will parse correctly, i.e., -% -% @multitable {Column 1 template} {Column 2 template} {Column 3 -% template} -% Not: -% @multitable {Column 1 template} {Column 2 template} -% {Column 3 template} % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. -% @item, @tab, @multitable or @end multitable do not need to be on their -% own lines, but it will not hurt if they are. +% @item, @tab do not need to be on their own lines, but it will not hurt +% if they are. % Sample multitable: @@ -2282,13 +3631,12 @@ where each line of input produces a line of output.} \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent -% #1 is the part of the @columnfraction before the decimal point, which -% is presumably either 0 or the empty string (but we don't check, we -% just throw it away). #2 is the decimal part, which we use as the -% percent of \hsize for this column. -\def\pickupwholefraction#1.#2 {% +% #1 is the @columnfraction, usually a decimal number like .5, but might +% be just 1. We just use it, whatever it is. +% +\def\pickupwholefraction#1 {% \global\advance\colcount by 1 - \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}% + \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } @@ -2321,18 +3669,40 @@ where each line of input produces a line of output.} \go } +% multitable-only commands. +% +% @headitem starts a heading row, which we typeset in bold. +% Assignments have to be global since we are inside the implicit group +% of an alignment entry. \everycr resets \everytab so we don't have to +% undo it ourselves. +\def\headitemfont{\b}% for people to use in the template row; not changeable +\def\headitem{% + \checkenv\multitable + \crcr + \global\everytab={\bf}% can't use \headitemfont since the parsing differs + \the\everytab % for the first item +}% +% +% A \tab used to include \hskip1sp. But then the space in a template +% line is not enough. That is bad. So let's go back to just `&' until +% we again encounter the problem the 1sp was intended to solve. +% --karl, nathan@acm.org, 20apr99. +\def\tab{\checkenv\multitable &\the\everytab}% + % @multitable ... @end multitable definitions: % -\def\multitable{\parsearg\dotable} -\def\dotable#1{\bgroup +\newtoks\everytab % insert after every tab. +% +\envdef\multitable{% \vskip\parskip - \let\item=\crcrwithfootnotes - % A \tab used to include \hskip1sp. But then the space in a template - % line is not enough. That is bad. So let's go back to just & until - % we encounter the problem it was intended to solve again. --karl, - % nathan@acm.org, 20apr99. - \let\tab=&% - \let\startfootins=\startsavedfootnote + \startsavinginserts + % + % @item within a multitable starts a normal row. + % We use \def instead of \let so that if one of the multitable entries + % contains an @itemize, we don't choke on the \item (seen as \crcr aka + % \endtemplate) expanding \doitemize. + \def\item{\crcr}% + % \tolerance=9500 \hbadness=9500 \setmultitablespacing @@ -2340,85 +3710,93 @@ where each line of input produces a line of output.} \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 - \def\Emultitable{% - \global\setpercentfalse - \crcrwithfootnotes\crcr - \egroup\egroup + % + \everycr = {% + \noalign{% + \global\everytab={}% + \global\colcount=0 % Reset the column counter. + % Check for saved footnotes, etc. + \checkinserts + % Keeps underfull box messages off when table breaks over pages. + %\filbreak + % Maybe so, but it also creates really weird page breaks when the + % table breaks over pages. Wouldn't \vfil be better? Wait until the + % problem manifests itself, so it can be fixed for real --karl. + }% }% % + \parsearg\domultitable +} +\def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % - % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. - % The table preamble - % looks at the current \colcount to find the correct column width. - \everycr{\noalign{% - % - % \filbreak%% keeps underfull box messages off when table breaks over pages. - % Maybe so, but it also creates really weird page breaks when the table - % breaks over pages. Wouldn't \vfil be better? Wait until the problem - % manifests itself, so it can be fixed for real --karl. - \global\colcount=0\relax}}% - % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. - \halign\bgroup&\global\advance\colcount by 1\relax - \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname - % - % In order to keep entries from bumping into each other - % we will add a \leftskip of \multitablecolspace to all columns after - % the first one. - % - % If a template has been used, we will add \multitablecolspace - % to the width of each template entry. - % - % If the user has set preamble in terms of percent of \hsize we will - % use that dimension as the width of the column, and the \leftskip - % will keep entries from bumping into each other. Table will start at - % left margin and final column will justify at right margin. - % - % Make sure we don't inherit \rightskip from the outer environment. - \rightskip=0pt - \ifnum\colcount=1 - % The first column will be indented with the surrounding text. - \advance\hsize by\leftskip - \else - \ifsetpercent \else - % If user has not set preamble in terms of percent of \hsize - % we will advance \hsize by \multitablecolspace. - \advance\hsize by \multitablecolspace - \fi - % In either case we will make \leftskip=\multitablecolspace: - \leftskip=\multitablecolspace - \fi - % Ignoring space at the beginning and end avoids an occasional spurious - % blank line, when TeX decides to break the line at the space before the - % box from the multistrut, so the strut ends up on a line by itself. - % For example: - % @multitable @columnfractions .11 .89 - % @item @code{#} - % @tab Legal holiday which is valid in major parts of the whole country. - % Is automatically provided with highlighting sequences respectively marking - % characters. - \noindent\ignorespaces##\unskip\multistrut}\cr -} - -\def\setmultitablespacing{% test to see if user has set \multitablelinespace. -% If so, do nothing. If not, give it an appropriate dimension based on -% current baselineskip. + \halign\bgroup &% + \global\advance\colcount by 1 + \multistrut + \vtop{% + % Use the current \colcount to find the correct column width: + \hsize=\expandafter\csname col\the\colcount\endcsname + % + % In order to keep entries from bumping into each other + % we will add a \leftskip of \multitablecolspace to all columns after + % the first one. + % + % If a template has been used, we will add \multitablecolspace + % to the width of each template entry. + % + % If the user has set preamble in terms of percent of \hsize we will + % use that dimension as the width of the column, and the \leftskip + % will keep entries from bumping into each other. Table will start at + % left margin and final column will justify at right margin. + % + % Make sure we don't inherit \rightskip from the outer environment. + \rightskip=0pt + \ifnum\colcount=1 + % The first column will be indented with the surrounding text. + \advance\hsize by\leftskip + \else + \ifsetpercent \else + % If user has not set preamble in terms of percent of \hsize + % we will advance \hsize by \multitablecolspace. + \advance\hsize by \multitablecolspace + \fi + % In either case we will make \leftskip=\multitablecolspace: + \leftskip=\multitablecolspace + \fi + % Ignoring space at the beginning and end avoids an occasional spurious + % blank line, when TeX decides to break the line at the space before the + % box from the multistrut, so the strut ends up on a line by itself. + % For example: + % @multitable @columnfractions .11 .89 + % @item @code{#} + % @tab Legal holiday which is valid in major parts of the whole country. + % Is automatically provided with highlighting sequences respectively + % marking characters. + \noindent\ignorespaces##\unskip\multistrut + }\cr +} +\def\Emultitable{% + \crcr + \egroup % end the \halign + \global\setpercentfalse +} + +\def\setmultitablespacing{% + \def\multistrut{\strut}% just use the standard line spacing + % + % Compute \multitablelinespace (if not defined by user) for use in + % \multitableparskip calculation. We used define \multistrut based on + % this, but (ironically) that caused the spacing to be off. + % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 -%% strut to put in table in case some entry doesn't have descenders, -%% to keep lines equally spaced -\let\multistrut = \strut -\else -%% FIXME: what is \box0 supposed to be? -\gdef\multistrut{\vrule height\multitablelinespace depth\dp0 -width0pt\relax} \fi +\fi %% Test to see if parskip is larger than space between lines of %% table. If not, do nothing. %% If so, set to same dimension as multitablelinespace. @@ -2433,163 +3811,33 @@ width0pt\relax} \fi %% than skip between lines in the table. \fi} -% In case a @footnote appears inside an alignment, save the footnote -% text to a box and make the \insert when a row of the table is -% finished. Otherwise, the insertion is lost, it never migrates to the -% main vertical list. --kasal, 22jan03. -% -\newbox\savedfootnotes -% -% \dotable \let's \startfootins to this, so that \dofootnote will call -% it instead of starting the insertion right away. -\def\startsavedfootnote{% - \global\setbox\savedfootnotes = \vbox\bgroup - \unvbox\savedfootnotes -} -\def\crcrwithfootnotes{% - \crcr - \ifvoid\savedfootnotes \else - \noalign{\insert\footins{\box\savedfootnotes}}% - \fi -} \message{conditionals,} -% Prevent errors for section commands. -% Used in @ignore and in failing conditionals. -\def\ignoresections{% - \let\chapter=\relax - \let\unnumbered=\relax - \let\top=\relax - \let\unnumberedsec=\relax - \let\unnumberedsection=\relax - \let\unnumberedsubsec=\relax - \let\unnumberedsubsection=\relax - \let\unnumberedsubsubsec=\relax - \let\unnumberedsubsubsection=\relax - \let\section=\relax - \let\subsec=\relax - \let\subsubsec=\relax - \let\subsection=\relax - \let\subsubsection=\relax - \let\appendix=\relax - \let\appendixsec=\relax - \let\appendixsection=\relax - \let\appendixsubsec=\relax - \let\appendixsubsection=\relax - \let\appendixsubsubsec=\relax - \let\appendixsubsubsection=\relax - \let\contents=\relax - \let\smallbook=\relax - \let\titlepage=\relax -} - -% Used in nested conditionals, where we have to parse the Texinfo source -% and so want to turn off most commands, in case they are used -% incorrectly. -% -% We use \empty instead of \relax for the @def... commands, so that \end -% doesn't throw an error. For instance: -% @ignore -% @deffn ... -% @end deffn -% @end ignore -% -% The @end deffn is going to get expanded, because we're trying to allow -% nested conditionals. But we don't want to expand the actual @deffn, -% since it might be syntactically correct and intended to be ignored. -% Since \end checks for \relax, using \empty does not cause an error. -% -\def\ignoremorecommands{% - \let\defcodeindex = \relax - \let\defcv = \empty - \let\defcvx = \empty - \let\Edefcv = \empty - \let\deffn = \empty - \let\deffnx = \empty - \let\Edeffn = \empty - \let\defindex = \relax - \let\defivar = \empty - \let\defivarx = \empty - \let\Edefivar = \empty - \let\defmac = \empty - \let\defmacx = \empty - \let\Edefmac = \empty - \let\defmethod = \empty - \let\defmethodx = \empty - \let\Edefmethod = \empty - \let\defop = \empty - \let\defopx = \empty - \let\Edefop = \empty - \let\defopt = \empty - \let\defoptx = \empty - \let\Edefopt = \empty - \let\defspec = \empty - \let\defspecx = \empty - \let\Edefspec = \empty - \let\deftp = \empty - \let\deftpx = \empty - \let\Edeftp = \empty - \let\deftypefn = \empty - \let\deftypefnx = \empty - \let\Edeftypefn = \empty - \let\deftypefun = \empty - \let\deftypefunx = \empty - \let\Edeftypefun = \empty - \let\deftypeivar = \empty - \let\deftypeivarx = \empty - \let\Edeftypeivar = \empty - \let\deftypemethod = \empty - \let\deftypemethodx = \empty - \let\Edeftypemethod = \empty - \let\deftypeop = \empty - \let\deftypeopx = \empty - \let\Edeftypeop = \empty - \let\deftypevar = \empty - \let\deftypevarx = \empty - \let\Edeftypevar = \empty - \let\deftypevr = \empty - \let\deftypevrx = \empty - \let\Edeftypevr = \empty - \let\defun = \empty - \let\defunx = \empty - \let\Edefun = \empty - \let\defvar = \empty - \let\defvarx = \empty - \let\Edefvar = \empty - \let\defvr = \empty - \let\defvrx = \empty - \let\Edefvr = \empty - \let\clear = \relax - \let\down = \relax - \let\evenfooting = \relax - \let\evenheading = \relax - \let\everyfooting = \relax - \let\everyheading = \relax - \let\headings = \relax - \let\include = \relax - \let\item = \relax - \let\lowersections = \relax - \let\oddfooting = \relax - \let\oddheading = \relax - \let\printindex = \relax - \let\pxref = \relax - \let\raisesections = \relax - \let\ref = \relax - \let\set = \relax - \let\setchapternewpage = \relax - \let\setchapterstyle = \relax - \let\settitle = \relax - \let\up = \relax - \let\verbatiminclude = \relax - \let\xref = \relax + +% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, +% @ifnotxml always succeed. They currently do nothing; we don't +% attempt to check whether the conditionals are properly nested. But we +% have to remember that they are conditionals, so that @end doesn't +% attempt to close an environment group. +% +\def\makecond#1{% + \expandafter\let\csname #1\endcsname = \relax + \expandafter\let\csname iscond.#1\endcsname = 1 } +\makecond{iftex} +\makecond{ifnotdocbook} +\makecond{ifnothtml} +\makecond{ifnotinfo} +\makecond{ifnotplaintext} +\makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} -\def\documentdescriptionword{documentdescription} \def\documentdescription{\doignore{documentdescription}} +\def\docbook{\doignore{docbook}} \def\html{\doignore{html}} +\def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} @@ -2599,198 +3847,139 @@ width0pt\relax} \fi \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} -% @dircategory CATEGORY -- specify a category of the dir file -% which this file should belong to. Ignore this in TeX. -\let\dircategory = \comment - -% Ignore text until a line `@end #1'. +% Ignore text until a line `@end #1', keeping track of nested conditionals. % +% A count to remember the depth of nesting. +\newcount\doignorecount + \def\doignore#1{\begingroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define a command to swallow text until we reach `@end #1'. - % This @ is a catcode 12 token (that is the normal catcode of @ in - % this texinfo.tex file). We change the catcode of @ below to match. - \long\def\doignoretext##1@end #1{\enddoignore}% + % Scan in ``verbatim'' mode: + \obeylines + \catcode`\@ = \other + \catcode`\{ = \other + \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. - \catcode\spaceChar = 10 - % - % Ignore braces, too, so mismatched braces don't cause trouble. - \catcode`\{ = 9 - \catcode`\} = 9 - % - % We must not have @c interpreted as a control sequence. - \catcode`\@ = 12 + \spaceisspace % - \def\ignoreword{#1}% - \ifx\ignoreword\documentdescriptionword - % The c kludge breaks documentdescription, since - % `documentdescription' contains a `c'. Means not everything will - % be ignored inside @documentdescription, but oh well... - \else - % Make the letter c a comment character so that the rest of the line - % will be ignored. This way, the document can have (for example) - % @c @end ifinfo - % and the @end ifinfo will be properly ignored. - % (We've just changed @ to catcode 12.) - \catcode`\c = 14 - \fi + % Count number of #1's that we've seen. + \doignorecount = 0 % - % And now expand the command defined above. - \doignoretext -} - -% What we do to finish off ignored text. -% -\def\enddoignore{\endgroup\ignorespaces}% - -\newif\ifwarnedobs\warnedobsfalse -\def\obstexwarn{% - \ifwarnedobs\relax\else - % We need to warn folks that they may have trouble with TeX 3.0. - % This uses \immediate\write16 rather than \message to get newlines. - \immediate\write16{} - \immediate\write16{WARNING: for users of Unix TeX 3.0!} - \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} - \immediate\write16{If you are running another version of TeX, relax.} - \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} - \immediate\write16{ Then upgrade your TeX installation if you can.} - \immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)} - \immediate\write16{If you are stuck with version 3.0, run the} - \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} - \immediate\write16{ to use a workaround.} - \immediate\write16{} - \global\warnedobstrue - \fi + % Swallow text until we reach the matching `@end #1'. + \dodoignore{#1}% } -% **In TeX 3.0, setting text in \nullfont hangs tex. For a -% workaround (which requires the file ``dummy.tfm'' to be installed), -% uncomment the following line: -%%%%%\font\nullfont=dummy\let\obstexwarn=\relax - -% Ignore text, except that we keep track of conditional commands for -% purposes of nesting, up to an `@end #1' command. -% -\def\nestedignore#1{% - \obstexwarn - % We must actually expand the ignored text to look for the @end - % command, so that nested ignore constructs work. Thus, we put the - % text into a \vbox and then do nothing with the result. To minimize - % the chance of memory overflow, we follow the approach outlined on - % page 401 of the TeXbook. +{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. + \obeylines % % - \setbox0 = \vbox\bgroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define `@end #1' to end the box, which will in turn undefine the - % @end command again. - \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% - % - % We are going to be parsing Texinfo commands. Most cause no - % trouble when they are used incorrectly, but some commands do - % complicated argument parsing or otherwise get confused, so we - % undefine them. + \gdef\dodoignore#1{% + % #1 contains the command name as a string, e.g., `ifinfo'. % - % We can't do anything about stray @-signs, unfortunately; - % they'll produce `undefined control sequence' errors. - \ignoremorecommands + % Define a command to find the next `@end #1'. + \long\def\doignoretext##1^^M@end #1{% + \doignoretextyyy##1^^M@#1\_STOP_}% % - % Set the current font to be \nullfont, a TeX primitive, and define - % all the font commands to also use \nullfont. We don't use - % dummy.tfm, as suggested in the TeXbook, because some sites - % might not have that installed. Therefore, math mode will still - % produce output, but that should be an extremely small amount of - % stuff compared to the main input. + % And this command to find another #1 command, at the beginning of a + % line. (Otherwise, we would consider a line `@c @ifset', for + % example, to count as an @ifset for nesting.) + \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % - \nullfont - \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont - \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont - \let\tensf=\nullfont - % Similarly for index fonts. - \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont - \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont - \let\smallsf=\nullfont - % Similarly for smallexample fonts. - \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont - \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont - \let\smallersf=\nullfont - % - % Don't complain when characters are missing from the fonts. - \tracinglostchars = 0 - % - % Don't bother to do space factor calculations. - \frenchspacing - % - % Don't report underfull hboxes. - \hbadness = 10000 - % - % Do minimal line-breaking. - \pretolerance = 10000 - % - % Do not execute instructions in @tex. - \def\tex{\doignore{tex}}% - % Do not execute macro definitions. - % `c' is a comment character, so the word `macro' will get cut off. - \def\macro{\doignore{ma}}% + % And now expand that command. + \doignoretext ^^M% + }% +} + +\def\doignoreyyy#1{% + \def\temp{#1}% + \ifx\temp\empty % Nothing found. + \let\next\doignoretextzzz + \else % Found a nested condition, ... + \advance\doignorecount by 1 + \let\next\doignoretextyyy % ..., look for another. + % If we're here, #1 ends with ^^M\ifinfo (for example). + \fi + \next #1% the token \_STOP_ is present just after this macro. +} + +% We have to swallow the remaining "\_STOP_". +% +\def\doignoretextzzz#1{% + \ifnum\doignorecount = 0 % We have just found the outermost @end. + \let\next\enddoignore + \else % Still inside a nested condition. + \advance\doignorecount by -1 + \let\next\doignoretext % Look for the next @end. + \fi + \next +} + +% Finish off ignored text. +{ \obeylines% + % Ignore anything after the last `@end #1'; this matters in verbatim + % environments, where otherwise the newline after an ignored conditional + % would result in a blank line in the output. + \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } + % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we -% didn't need it. Make sure the catcode of space is correct to avoid -% losing inside @example, for instance. +% didn't need it. +% We rely on the fact that \parsearg sets \catcode`\ =10. % -\def\set{\begingroup\catcode` =10 - \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. - \parsearg\setxxx} -\def\setxxx#1{\setyyy#1 \endsetyyy} +\parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% - \def\temp{#2}% - \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty - \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. - \fi - \endgroup + {% + \makevalueexpandable + \def\temp{#2}% + \edef\next{\gdef\makecsname{SET#1}}% + \ifx\temp\empty + \next{}% + \else + \setzzz#2\endsetzzz + \fi + }% } -% Can't use \xdef to pre-expand #2 and save some time, since \temp or -% \next or other control sequences that we've defined might get us into -% an infinite loop. Consider `@set foo @cite{bar}'. -\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} +% Remove the trailing space \setxxx inserted. +\def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % -\def\clear{\parsearg\clearxxx} -\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} +\parseargdef\clear{% + {% + \makevalueexpandable + \global\expandafter\let\csname SET#1\endcsname=\relax + }% +} % @value{foo} gets the text saved in variable foo. +\def\value{\begingroup\makevalueexpandable\valuexxx} +\def\valuexxx#1{\expandablevalue{#1}\endgroup} { - \catcode`\_ = \active + \catcode`\- = \active \catcode`\_ = \active % - % We might end up with active _ or - characters in the argument if - % we're called from @code, as @code{@value{foo-bar_}}. So \let any - % such active characters to their normal equivalents. - \gdef\value{\begingroup + \gdef\makevalueexpandable{% + \let\value = \expandablevalue + % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other - \indexbreaks \let_\normalunderscore - \valuexxx} + % ..., but we might end up with active ones in the argument if + % we're called from @code, as @code{@value{foo-bar_}}, though. + % So \let them to their normal equivalents. + \let-\realdash \let_\normalunderscore + } } -\def\valuexxx#1{\expandablevalue{#1}\endgroup} % We have this subroutine so that we can handle at least some @value's -% properly in indexes (we \let\value to this in \indexdummies). Ones -% whose names contain - or _ still won't work, but we can't do anything -% about that. The command has to be fully expandable (if the variable -% is set), since the result winds up in the index file. This means that -% if the variable's value contains other Texinfo commands, it's almost -% certain it will fail (although perhaps we could fix that with -% sufficient work to do a one-level expansion on the result, instead of -% complete). +% properly in indexes (we call \makevalueexpandable in \indexdummies). +% The command has to be fully expandable (if the variable is set), since +% the result winds up in the index file. This means that if the +% variable's value contains other Texinfo commands, it's almost certain +% it will fail (although perhaps we could fix that with sufficient work +% to do a one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax @@ -2804,55 +3993,36 @@ width0pt\relax} \fi % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % -\def\ifset{\parsearg\doifset} -\def\doifset#1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \let\next=\ifsetfail - \else - \let\next=\ifsetsucceed - \fi - \next +% To get special treatment of `@end ifset,' call \makeond and the redefine. +% +\makecond{ifset} +\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} +\def\doifset#1#2{% + {% + \makevalueexpandable + \let\next=\empty + \expandafter\ifx\csname SET#2\endcsname\relax + #1% If not set, redefine \next. + \fi + \expandafter + }\next } -\def\ifsetsucceed{\conditionalsucceed{ifset}} -\def\ifsetfail{\nestedignore{ifset}} -\defineunmatchedend{ifset} +\def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % -\def\ifclear{\parsearg\doifclear} -\def\doifclear#1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \let\next=\ifclearsucceed - \else - \let\next=\ifclearfail - \fi - \next -} -\def\ifclearsucceed{\conditionalsucceed{ifclear}} -\def\ifclearfail{\nestedignore{ifclear}} -\defineunmatchedend{ifclear} - -% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we -% read the text following, through the first @end iftex (etc.). Make -% `@end iftex' (etc.) valid only after an @iftex. +% The `\else' inside the `\doifset' parameter is a trick to reuse the +% above code: if the variable is not set, do nothing, if it is set, +% then redefine \next to \ifclearfail. % -\def\iftex{\conditionalsucceed{iftex}} -\def\ifnothtml{\conditionalsucceed{ifnothtml}} -\def\ifnotinfo{\conditionalsucceed{ifnotinfo}} -\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} -\defineunmatchedend{iftex} -\defineunmatchedend{ifnothtml} -\defineunmatchedend{ifnotinfo} -\defineunmatchedend{ifnotplaintext} +\makecond{ifclear} +\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} +\def\ifclearfail{\doignore{ifclear}} -% True conditional. Since \set globally defines its variables, we can -% just start and end a group (to keep the @end definition undefined at -% the outer level). -% -\def\conditionalsucceed#1{\begingroup - \expandafter\def\csname E#1\endcsname{\endgroup}% -} +% @dircategory CATEGORY -- specify a category of the dir file +% which this file should belong to. Ignore this in TeX. +\let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment @@ -2862,9 +4032,8 @@ width0pt\relax} \fi % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite -% except not \outer, so it can be used within \newindex. -{\catcode`\@=11 -\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} +% except not \outer, so it can be used within macros and \if's. +\edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that @@ -2903,10 +4072,10 @@ width0pt\relax} \fi % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. -% +% % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. -% +% \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} @@ -2915,11 +4084,11 @@ width0pt\relax} \fi \def\dosynindex#1#2#3{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. - \expandafter \ifx\csname donesynindex#2\endcsname \undefined + \expandafter \ifx\csname donesynindex#2\endcsname \relax % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname - \expandafter\let\csname\donesynindex#2\endcsname = 1 + \expandafter\let\csname donesynindex#2\endcsname = 1 \fi % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname @@ -2948,204 +4117,245 @@ width0pt\relax} \fi % Take care of Texinfo commands that can appear in an index entry. % Since there are some commands we want to expand, and others we don't, % we have to laboriously prevent expansion for those that we don't. -% +% \def\indexdummies{% + \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% + % % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes - % braces and backslashes are used only as delimiters. + % braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace % - % \definedummyword defines \#1 as \realbackslash #1\space, thus - % effectively preventing its expansion. This is used only for control - % words, not control letters, because the \space would be incorrect - % for control characters, but is needed to separate the control word - % from whatever follows. + % I don't entirely understand this, but when an index entry is + % generated from a macro call, the \endinput which \scanmacro inserts + % causes processing to be prematurely terminated. This is, + % apparently, because \indexsorttmp is fully expanded, and \endinput + % is an expandable command. The redefinition below makes \endinput + % disappear altogether for that purpose -- although logging shows that + % processing continues to some further point. On the other hand, it + % seems \endinput does not hurt in the printed index arg, since that + % is still getting written without apparent harm. % - % For control letters, we have \definedummyletter, which omits the - % space. + % Sample source (mac-idx3.tex, reported by Graham Percival to + % help-texinfo, 22may06): + % @macro funindex {WORD} + % @findex xyz + % @end macro + % ... + % @funindex commtest % - % These can be used both for control words that take an argument and - % those that do not. If it is followed by {arg} in the input, then - % that will dutifully get written to the index (or wherever). + % The above is not enough to reproduce the bug, but it gives the flavor. + % + % Sample whatsit resulting: + % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} % - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% - }% + % So: + \let\endinput = \empty % % Do the redefinitions. \commondummies } -% For the aux file, @ is the escape character. So we want to redefine -% everything using @ instead of \realbackslash. When everything uses -% @, this will be simpler. -% +% For the aux and toc files, @ is the escape character. So we want to +% redefine everything using @ as the escape character (instead of +% \realbackslash, still used for index files). When everything uses @, +% this will be simpler. +% \def\atdummies{% \def\@{@@}% \def\ {@ }% \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % - % (See comments in \indexdummies.) - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{@##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{@##1}% - }% - % % Do the redefinitions. \commondummies + \otherbackslash } -% Called from \indexdummies and \atdummies. \definedummyword and -% \definedummyletter must be defined first. -% +% Called from \indexdummies and \atdummies. +% \def\commondummies{% % - \normalturnoffactive + % \definedummyword defines \#1 as \string\#1\space, thus effectively + % preventing its expansion. This is used only for control% words, + % not control letters, because the \space would be incorrect for + % control characters, but is needed to separate the control word + % from whatever follows. % - % Control letters and accents. - \definedummyletter{_}% - \definedummyletter{,}% - \definedummyletter{"}% - \definedummyletter{`}% - \definedummyletter{'}% - \definedummyletter{^}% - \definedummyletter{~}% - \definedummyletter{=}% - \definedummyword{u}% - \definedummyword{v}% - \definedummyword{H}% - \definedummyword{dotaccent}% - \definedummyword{ringaccent}% - \definedummyword{tieaccent}% - \definedummyword{ubaraccent}% - \definedummyword{udotaccent}% - \definedummyword{dotless}% - % - % Other non-English letters. - \definedummyword{AA}% - \definedummyword{AE}% - \definedummyword{L}% - \definedummyword{OE}% - \definedummyword{O}% - \definedummyword{aa}% - \definedummyword{ae}% - \definedummyword{l}% - \definedummyword{oe}% - \definedummyword{o}% - \definedummyword{ss}% + % For control letters, we have \definedummyletter, which omits the + % space. % - % Although these internal commands shouldn't show up, sometimes they do. - \definedummyword{bf}% - \definedummyword{gtr}% - \definedummyword{hat}% - \definedummyword{less}% - \definedummyword{sf}% - \definedummyword{sl}% - \definedummyword{tclose}% - \definedummyword{tt}% + % These can be used both for control words that take an argument and + % those that do not. If it is followed by {arg} in the input, then + % that will dutifully get written to the index (or wherever). % - % Texinfo font commands. - \definedummyword{b}% - \definedummyword{i}% - \definedummyword{r}% - \definedummyword{sc}% - \definedummyword{t}% - % - \definedummyword{TeX}% - \definedummyword{acronym}% - \definedummyword{cite}% - \definedummyword{code}% - \definedummyword{command}% - \definedummyword{dfn}% - \definedummyword{dots}% - \definedummyword{emph}% - \definedummyword{env}% - \definedummyword{file}% - \definedummyword{kbd}% - \definedummyword{key}% - \definedummyword{math}% - \definedummyword{option}% - \definedummyword{samp}% - \definedummyword{strong}% - \definedummyword{uref}% - \definedummyword{url}% - \definedummyword{var}% - \definedummyword{w}% + \def\definedummyword ##1{\def##1{\string##1\space}}% + \def\definedummyletter##1{\def##1{\string##1}}% + \let\definedummyaccent\definedummyletter + % + \commondummiesnofonts + % + \definedummyletter\_% + % + % Non-English letters. + \definedummyword\AA + \definedummyword\AE + \definedummyword\L + \definedummyword\OE + \definedummyword\O + \definedummyword\aa + \definedummyword\ae + \definedummyword\l + \definedummyword\oe + \definedummyword\o + \definedummyword\ss + \definedummyword\exclamdown + \definedummyword\questiondown + \definedummyword\ordf + \definedummyword\ordm + % + % Although these internal commands shouldn't show up, sometimes they do. + \definedummyword\bf + \definedummyword\gtr + \definedummyword\hat + \definedummyword\less + \definedummyword\sf + \definedummyword\sl + \definedummyword\tclose + \definedummyword\tt + % + \definedummyword\LaTeX + \definedummyword\TeX % % Assorted special characters. - \definedummyword{bullet}% - \definedummyword{copyright}% - \definedummyword{dots}% - \definedummyword{enddots}% - \definedummyword{equiv}% - \definedummyword{error}% - \definedummyword{expansion}% - \definedummyword{minus}% - \definedummyword{pounds}% - \definedummyword{point}% - \definedummyword{print}% - \definedummyword{result}% - % - % Handle some cases of @value -- where the variable name does not - % contain - or _, and the value does not contain any - % (non-fully-expandable) commands. - \let\value = \expandablevalue + \definedummyword\bullet + \definedummyword\comma + \definedummyword\copyright + \definedummyword\registeredsymbol + \definedummyword\dots + \definedummyword\enddots + \definedummyword\equiv + \definedummyword\error + \definedummyword\euro + \definedummyword\guillemetleft + \definedummyword\guillemetright + \definedummyword\guilsinglleft + \definedummyword\guilsinglright + \definedummyword\expansion + \definedummyword\minus + \definedummyword\ogonek + \definedummyword\pounds + \definedummyword\point + \definedummyword\print + \definedummyword\quotedblbase + \definedummyword\quotedblleft + \definedummyword\quotedblright + \definedummyword\quoteleft + \definedummyword\quoteright + \definedummyword\quotesinglbase + \definedummyword\result + \definedummyword\textdegree + % + % We want to disable all macros so that they are not expanded by \write. + \macrolist % - % Normal spaces, not active ones. - \unsepspaces + \normalturnoffactive % - % No macro expansion. - \turnoffmacros + % Handle some cases of @value -- where it does not contain any + % (non-fully-expandable) commands. + \makevalueexpandable } -% If an index command is used in an @example environment, any spaces -% therein should become regular spaces in the raw index file, not the -% expansion of \tie (\leavevmode \penalty \@M \ ). -{\obeyspaces - \gdef\unsepspaces{\obeyspaces\let =\space}} - +% \commondummiesnofonts: common to \commondummies and \indexnofonts. +% +\def\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter\!% + \definedummyaccent\"% + \definedummyaccent\'% + \definedummyletter\*% + \definedummyaccent\,% + \definedummyletter\.% + \definedummyletter\/% + \definedummyletter\:% + \definedummyaccent\=% + \definedummyletter\?% + \definedummyaccent\^% + \definedummyaccent\`% + \definedummyaccent\~% + \definedummyword\u + \definedummyword\v + \definedummyword\H + \definedummyword\dotaccent + \definedummyword\ogonek + \definedummyword\ringaccent + \definedummyword\tieaccent + \definedummyword\ubaraccent + \definedummyword\udotaccent + \definedummyword\dotless + % + % Texinfo font commands. + \definedummyword\b + \definedummyword\i + \definedummyword\r + \definedummyword\sc + \definedummyword\t + % + % Commands that take arguments. + \definedummyword\acronym + \definedummyword\cite + \definedummyword\code + \definedummyword\command + \definedummyword\dfn + \definedummyword\emph + \definedummyword\env + \definedummyword\file + \definedummyword\kbd + \definedummyword\key + \definedummyword\math + \definedummyword\option + \definedummyword\pxref + \definedummyword\ref + \definedummyword\samp + \definedummyword\strong + \definedummyword\tie + \definedummyword\uref + \definedummyword\url + \definedummyword\var + \definedummyword\verb + \definedummyword\w + \definedummyword\xref +} % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % -\def\indexdummytex{TeX} -\def\indexdummydots{...} -% \def\indexnofonts{% + % Accent commands should become @asis. + \def\definedummyaccent##1{\let##1\asis}% + % We can just ignore other control letters. + \def\definedummyletter##1{\let##1\empty}% + % Hopefully, all control words can become @asis. + \let\definedummyword\definedummyaccent + % + \commondummiesnofonts + % + % Don't no-op \tt, since it isn't a user-level command + % and is used in the definitions of the active chars like <, >, |, etc. + % Likewise with the other plain tex font commands. + %\let\tt=\asis + % \def\ { }% \def\@{@}% % how to handle braces? \def\_{\normalunderscore}% % - \let\,=\asis - \let\"=\asis - \let\`=\asis - \let\'=\asis - \let\^=\asis - \let\~=\asis - \let\==\asis - \let\u=\asis - \let\v=\asis - \let\H=\asis - \let\dotaccent=\asis - \let\ringaccent=\asis - \let\tieaccent=\asis - \let\ubaraccent=\asis - \let\udotaccent=\asis - \let\dotless=\asis - % - % Other non-English letters. + % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\L{L}% @@ -3159,130 +4369,192 @@ width0pt\relax} \fi \def\ss{ss}% \def\exclamdown{!}% \def\questiondown{?}% + \def\ordf{a}% + \def\ordm{o}% % - % Don't no-op \tt, since it isn't a user-level command - % and is used in the definitions of the active chars like <, >, |, etc. - % Likewise with the other plain tex font commands. - %\let\tt=\asis + \def\LaTeX{LaTeX}% + \def\TeX{TeX}% % - % Texinfo font commands. - \let\b=\asis - \let\i=\asis - \let\r=\asis - \let\sc=\asis - \let\t=\asis - % - \let\TeX=\indexdummytex - \let\acronym=\asis - \let\cite=\asis - \let\code=\asis - \let\command=\asis - \let\dfn=\asis - \let\dots=\indexdummydots - \let\emph=\asis - \let\env=\asis - \let\file=\asis - \let\kbd=\asis - \let\key=\asis - \let\math=\asis - \let\option=\asis - \let\samp=\asis - \let\strong=\asis - \let\uref=\asis - \let\url=\asis - \let\var=\asis - \let\w=\asis + % Assorted special characters. + % (The following {} will end up in the sort string, but that's ok.) + \def\bullet{bullet}% + \def\comma{,}% + \def\copyright{copyright}% + \def\registeredsymbol{R}% + \def\dots{...}% + \def\enddots{...}% + \def\equiv{==}% + \def\error{error}% + \def\euro{euro}% + \def\guillemetleft{<<}% + \def\guillemetright{>>}% + \def\guilsinglleft{<}% + \def\guilsinglright{>}% + \def\expansion{==>}% + \def\minus{-}% + \def\pounds{pounds}% + \def\point{.}% + \def\print{-|}% + \def\quotedblbase{"}% + \def\quotedblleft{"}% + \def\quotedblright{"}% + \def\quoteleft{`}% + \def\quoteright{'}% + \def\quotesinglbase{,}% + \def\result{=>}% + \def\textdegree{degrees}% + % + % We need to get rid of all macros, leaving only the arguments (if present). + % Of course this is not nearly correct, but it is the best we can do for now. + % makeinfo does not expand macros in the argument to @deffn, which ends up + % writing an index entry, and texindex isn't prepared for an index sort entry + % that starts with \. + % + % Since macro invocations are followed by braces, we can just redefine them + % to take a single TeX argument. The case of a macro invocation that + % goes to end-of-line is not handled. + % + \macrolist } \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? -% For \ifx comparisons. -\def\emptymacro{\empty} - % Most index entries go through here, but \dosubind is the general case. -% -\def\doind#1#2{\dosubind{#1}{#2}\empty} +% #1 is the index name, #2 is the entry text. +\def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- -% \empty if called from \doind, as we usually are. The main exception -% is with defuns, which call us directly. +% empty if called from \doind, as we usually are (the main exception +% is with most defuns, which call us directly). % \def\dosubind#1#2#3{% + \iflinks + {% + % Store the main index entry text (including the third arg). + \toks0 = {#2}% + % If third arg is present, precede it with a space. + \def\thirdarg{#3}% + \ifx\thirdarg\empty \else + \toks0 = \expandafter{\the\toks0 \space #3}% + \fi + % + \edef\writeto{\csname#1indfile\endcsname}% + % + \safewhatsit\dosubindwrite + }% + \fi +} + +% Write the entry in \toks0 to the index file: +% +\def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else - \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% + \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi - {% - \count255=\lastpenalty - {% - \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ - {% - \let\folio = 0% We will expand all macros now EXCEPT \folio. - \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now - % so it will be output as is; and it will print as backslash. - % - % The main index entry text. - \toks0 = {#2}% - % - % If third arg is present, precede it with space in sort key. - \def\thirdarg{#3}% - \ifx\thirdarg\emptymacro \else - % If the third (subentry) arg is present, add it to the index - % line to write. - \toks0 = \expandafter{\the\toks0 \space #3}% - \fi - % - % Process the index entry with all font commands turned off, to - % get the string to sort by. - {\indexnofonts - \edef\temp{\the\toks0}% need full expansion - \xdef\indexsorttmp{\temp}% - }% - % - % Set up the complete index entry, with both the sort key and - % the original text, including any font commands. We write - % three arguments to \entry to the .?? file (four in the - % subentry case), texindex reduces to two when writing the .??s - % sorted result. - \edef\temp{% - \write\csname#1indfile\endcsname{% - \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% - }% - % - % If a skip is the last thing on the list now, preserve it - % by backing up by \lastskip, doing the \write, then inserting - % the skip again. Otherwise, the whatsit generated by the - % \write will make \lastskip zero. The result is that sequences - % like this: - % @end defun - % @tindex whatever - % @defun ... - % will have extra space inserted, because the \medbreak in the - % start of the @defun won't see the skip inserted by the @end of - % the previous defun. - % - % But don't do any of this if we're not in vertical mode. We - % don't want to do a \vskip and prematurely end a paragraph. - % - % Avoid page breaks due to these extra skips, too. - % - \iflinks - \ifvmode - \skip0 = \lastskip - \ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi - \fi - % - \temp % do the write - % - \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi - \fi - }% - }% - \penalty\count255 + % + % Remember, we are within a group. + \indexdummies % Must do this here, since \bf, etc expand at this stage + \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now + % so it will be output as is; and it will print as backslash. + % + % Process the index entry with all font commands turned off, to + % get the string to sort by. + {\indexnofonts + \edef\temp{\the\toks0}% need full expansion + \xdef\indexsorttmp{\temp}% }% + % + % Set up the complete index entry, with both the sort key and + % the original text, including any font commands. We write + % three arguments to \entry to the .?? file (four in the + % subentry case), texindex reduces to two when writing the .??s + % sorted result. + \edef\temp{% + \write\writeto{% + \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% + }% + \temp +} + +% Take care of unwanted page breaks/skips around a whatsit: +% +% If a skip is the last thing on the list now, preserve it +% by backing up by \lastskip, doing the \write, then inserting +% the skip again. Otherwise, the whatsit generated by the +% \write or \pdfdest will make \lastskip zero. The result is that +% sequences like this: +% @end defun +% @tindex whatever +% @defun ... +% will have extra space inserted, because the \medbreak in the +% start of the @defun won't see the skip inserted by the @end of +% the previous defun. +% +% But don't do any of this if we're not in vertical mode. We +% don't want to do a \vskip and prematurely end a paragraph. +% +% Avoid page breaks due to these extra skips, too. +% +% But wait, there is a catch there: +% We'll have to check whether \lastskip is zero skip. \ifdim is not +% sufficient for this purpose, as it ignores stretch and shrink parts +% of the skip. The only way seems to be to check the textual +% representation of the skip. +% +% The following is almost like \def\zeroskipmacro{0.0pt} except that +% the ``p'' and ``t'' characters have catcode \other, not 11 (letter). +% +\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} +% +\newskip\whatsitskip +\newcount\whatsitpenalty +% +% ..., ready, GO: +% +\def\safewhatsit#1{% +\ifhmode + #1% +\else + % \lastskip and \lastpenalty cannot both be nonzero simultaneously. + \whatsitskip = \lastskip + \edef\lastskipmacro{\the\lastskip}% + \whatsitpenalty = \lastpenalty + % + % If \lastskip is nonzero, that means the last item was a + % skip. And since a skip is discardable, that means this + % -\whatsitskip glue we're inserting is preceded by a + % non-discardable item, therefore it is not a potential + % breakpoint, therefore no \nobreak needed. + \ifx\lastskipmacro\zeroskipmacro + \else + \vskip-\whatsitskip + \fi + % + #1% + % + \ifx\lastskipmacro\zeroskipmacro + % If \lastskip was zero, perhaps the last item was a penalty, and + % perhaps it was >=10000, e.g., a \nobreak. In that case, we want + % to re-insert the same penalty (values >10000 are used for various + % signals); since we just inserted a non-discardable item, any + % following glue (such as a \parskip) would be a breakpoint. For example: + % + % @deffn deffn-whatever + % @vindex index-whatever + % Description. + % would allow a break between the index-whatever whatsit + % and the "Description." paragraph. + \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi + \else + % On the other hand, if we had a nonzero \lastskip, + % this make-up glue would be preceded by a non-discardable item + % (the whatsit from the \write), so we must insert a \nobreak. + \nobreak\vskip\whatsitskip + \fi +\fi } % The index entry written in the file actually looks like @@ -3320,13 +4592,13 @@ width0pt\relax} \fi % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % -\def\printindex{\parsearg\doprintindex} -\def\doprintindex#1{\begingroup +\parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 - \indexbreaks + \plainfrenchspacing + \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains @@ -3353,7 +4625,7 @@ width0pt\relax} \fi % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. - \def\indexbackslash{\rawbackslashxx}% + \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns @@ -3375,7 +4647,10 @@ width0pt\relax} \fi \removelastskip % % We like breaks before the index initials, so insert a bonus. - \penalty -300 + \nobreak + \vskip 0pt plus 3\baselineskip + \penalty 0 + \vskip 0pt plus -3\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column @@ -3385,84 +4660,101 @@ width0pt\relax} \fi % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% - \vskip .33\baselineskip plus .1\baselineskip - % % Do our best not to break after the initial. \nobreak + \vskip .33\baselineskip plus .1\baselineskip }} -% This typesets a paragraph consisting of #1, dot leaders, and then #2 -% flush to the right margin. It is used for index and table of contents -% entries. The paragraph is indented by \leftskip. +% \entry typesets a paragraph consisting of the text (#1), dot leaders, and +% then page number (#2) flushed to the right margin. It is used for index +% and table of contents entries. The paragraph is indented by \leftskip. % -\def\entry#1#2{\begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent = 2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % A bit of stretch before each entry for the benefit of balancing columns. - \vskip 0pt plus1pt - % - % Start a ``paragraph'' for the index entry so the line breaking - % parameters we've set above will have an effect. - \noindent - % - % Insert the text of the index entry. TeX will do line-breaking on it. - #1% - % The following is kludged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#2}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd\ \else% +% A straightforward implementation would start like this: +% \def\entry#1#2{... +% But this freezes the catcodes in the argument, and can cause problems to +% @code, which sets - active. This problem was fixed by a kludge--- +% ``-'' was active throughout whole index, but this isn't really right. +% +% The right solution is to prevent \entry from swallowing the whole text. +% --kasal, 21nov03 +\def\entry{% + \begingroup + % + % Start a new paragraph if necessary, so our assignments below can't + % affect previous text. + \par + % + % Do not fill out the last line with white space. + \parfillskip = 0in + % + % No extra space above this paragraph. + \parskip = 0in + % + % Do not prefer a separate line ending with a hyphen to fewer lines. + \finalhyphendemerits = 0 + % + % \hangindent is only relevant when the entry text and page number + % don't both fit on one line. In that case, bob suggests starting the + % dots pretty far over on the line. Unfortunately, a large + % indentation looks wrong when the entry text itself is broken across + % lines. So we use a small indentation and put up with long leaders. % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. + % \hangafter is reset to 1 (which is the value we want) at the start + % of each paragraph, so we need not do anything with that. + \hangindent = 2em % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ifpdf - \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. + % When the entry text needs to be broken, just fill out the first line + % with blank space. + \rightskip = 0pt plus1fil + % + % A bit of stretch before each entry for the benefit of balancing + % columns. + \vskip 0pt plus1pt + % + % Swallow the left brace of the text (first parameter): + \afterassignment\doentry + \let\temp = +} +\def\doentry{% + \bgroup % Instead of the swallowed brace. + \noindent + \aftergroup\finishentry + % And now comes the text of the entry. +} +\def\finishentry#1{% + % #1 is the page number. + % + % The following is kludged to not output a line of dots in the index if + % there are no page numbers. The next person who breaks this will be + % cursed by a Unix daemon. + \setbox\boxA = \hbox{#1}% + \ifdim\wd\boxA = 0pt + \ % \else - \ #2% The page number ends the paragraph. + % + % If we must, put the page number on a line of its own, and fill out + % this line with blank space. (The \hfil is overwhelmed with the + % fill leaders glue in \indexdotfill if the page number does fit.) + \hfil\penalty50 + \null\nobreak\indexdotfill % Have leaders before the page number. + % + % The `\ ' here is removed by the implicit \unskip that TeX does as + % part of (the primitive) \par. Without it, a spurious underfull + % \hbox ensues. + \ifpdf + \pdfgettoks#1.% + \ \the\toksA + \else + \ #1% + \fi \fi - \fi% - \par -\endgroup} + \par + \endgroup +} -% Like \dotfill except takes at least 1 em. +% Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} + \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} @@ -3569,9 +4861,37 @@ width0pt\relax} \fi \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } -% +% % All done with double columns. \def\enddoublecolumns{% + % The following penalty ensures that the page builder is exercised + % _before_ we change the output routine. This is necessary in the + % following situation: + % + % The last section of the index consists only of a single entry. + % Before this section, \pagetotal is less than \pagegoal, so no + % break occurs before the last section starts. However, the last + % section, consisting of \initial and the single \entry, does not + % fit on the page and has to be broken off. Without the following + % penalty the page builder will not be exercised until \eject + % below, and by that time we'll already have changed the output + % routine to the \balancecolumns version, so the next-to-last + % double-column page will be processed with \balancecolumns, which + % is wrong: The two columns will go to the main vertical list, with + % the broken-off section in the recent contributions. As soon as + % the output routine finishes, TeX starts reconsidering the page + % break. The two columns and the broken-off section both fit on the + % page, because the two columns now take up only half of the page + % goal. When TeX sees \eject from below which follows the final + % section, it invokes the new output routine that we've set after + % \balancecolumns below; \onepageout will try to fit the two columns + % and the final section into the vbox of \pageheight (see + % \pagebody), causing an overfull box. + % + % Note that glue won't work here, because glue does not exercise the + % page builder, unlike penalties (see The TeXbook, pp. 280-281). + \penalty0 + % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. @@ -3627,6 +4947,12 @@ width0pt\relax} \fi \message{sectioning,} % Chapters, sections, etc. +% \unnumberedno is an oxymoron, of course. But we count the unnumbered +% sections so that we can refer to them unambiguously in the pdf +% outlines by their "section number". We avoid collisions with chapter +% numbers by starting them at 10000. (If a document ever has 10000 +% chapters, we're in trouble anyway, I'm sure.) +\newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 @@ -3634,9 +4960,12 @@ width0pt\relax} \fi % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ +% % \def\appendixletter{\char\the\appendixno} -% We do the following for the sake of pdftex, which needs the actual +% We do the following ugly conditional instead of the above simple +% construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. +% \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% @@ -3672,13 +5001,18 @@ width0pt\relax} \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise. +% Each @chapter defines these (using marks) as the number+name, number +% and name of the chapter. Page headings and footings can use +% these. @section does likewise. \def\thischapter{} +\def\thischapternum{} +\def\thischaptername{} \def\thissection{} +\def\thissectionnum{} +\def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raise/lowersections modify this count +\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} @@ -3688,118 +5022,142 @@ width0pt\relax} \fi \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name -% Choose a numbered-heading macro -% #1 is heading level if unmodified by @raisesections or @lowersections -% #2 is text for heading -\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \chapterzzz{#2} -\or - \seczzz{#2} -\or - \numberedsubseczzz{#2} -\or - \numberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \chapterzzz{#2} +% we only have subsub. +\chardef\maxseclevel = 3 +% +% A numbered section within an unnumbered changes to unnumbered too. +% To achive this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unmlevel = \maxseclevel +% +% Trace whether the current chapter is an appendix or not: +% \chapheadtype is "N" or "A", unnumbered chapters are ignored. +\def\chapheadtype{N} + +% Choose a heading macro +% #1 is heading type +% #2 is heading level +% #3 is text for heading +\def\genhead#1#2#3{% + % Compute the abs. sec. level: + \absseclevel=#2 + \advance\absseclevel by \secbase + % Make sure \absseclevel doesn't fall outside the range: + \ifnum \absseclevel < 0 + \absseclevel = 0 \else - \numberedsubsubseczzz{#2} + \ifnum \absseclevel > 3 + \absseclevel = 3 + \fi \fi -\fi -} - -% like \numhead, but chooses appendix heading levels -\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \appendixzzz{#2} -\or - \appendixsectionzzz{#2} -\or - \appendixsubseczzz{#2} -\or - \appendixsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \appendixzzz{#2} + % The heading type: + \def\headtype{#1}% + \if \headtype U% + \ifnum \absseclevel < \unmlevel + \chardef\unmlevel = \absseclevel + \fi \else - \appendixsubsubseczzz{#2} + % Check for appendix sections: + \ifnum \absseclevel = 0 + \edef\chapheadtype{\headtype}% + \else + \if \headtype A\if \chapheadtype N% + \errmessage{@appendix... within a non-appendix chapter}% + \fi\fi + \fi + % Check for numbered within unnumbered: + \ifnum \absseclevel > \unmlevel + \def\headtype{U}% + \else + \chardef\unmlevel = 3 + \fi \fi -\fi -} - -% like \numhead, but chooses numberless heading levels -\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \unnumberedzzz{#2} -\or - \unnumberedseczzz{#2} -\or - \unnumberedsubseczzz{#2} -\or - \unnumberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \unnumberedzzz{#2} + % Now print the heading: + \if \headtype U% + \ifcase\absseclevel + \unnumberedzzz{#3}% + \or \unnumberedseczzz{#3}% + \or \unnumberedsubseczzz{#3}% + \or \unnumberedsubsubseczzz{#3}% + \fi \else - \unnumberedsubsubseczzz{#2} + \if \headtype A% + \ifcase\absseclevel + \appendixzzz{#3}% + \or \appendixsectionzzz{#3}% + \or \appendixsubseczzz{#3}% + \or \appendixsubsubseczzz{#3}% + \fi + \else + \ifcase\absseclevel + \chapterzzz{#3}% + \or \seczzz{#3}% + \or \numberedsubseczzz{#3}% + \or \numberedsubsubseczzz{#3}% + \fi + \fi \fi -\fi + \suppressfirstparagraphindent } -% @chapter, @appendix, @unnumbered. -\def\thischaptername{No Chapter Title} -\outer\def\chapter{\parsearg\chapteryyy} -\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz #1{% - \secno=0 \subsecno=0 \subsubsecno=0 - \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% - \chapmacro {#1}{\the\chapno}% - \gdef\thissection{#1}% - \gdef\thischaptername{#1}% - % We don't substitute the actual chapter name into \thischapter - % because we don't want its macros evaluated now. - \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% - \writetocentry{chap}{#1}{{\the\chapno}} - \donoderef +% an interface: +\def\numhead{\genhead N} +\def\apphead{\genhead A} +\def\unnmhead{\genhead U} + +% @chapter, @appendix, @unnumbered. Increment top-level counter, reset +% all lower-level sectioning counters to zero. +% +% Also set \chaplevelprefix, which we prepend to @float sequence numbers +% (e.g., figures), q.v. By default (before any chapter), that is empty. +\let\chaplevelprefix = \empty +% +\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz +\def\chapterzzz#1{% + % section resetting is \global in case the chapter is in a group, such + % as an @include file. + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\chapno by 1 + % + % Used for \float. + \gdef\chaplevelprefix{\the\chapno.}% + \resetallfloatnos + % + \message{\putwordChapter\space \the\chapno}% + % + % Write the actual heading. + \chapmacro{#1}{Ynumbered}{\the\chapno}% + % + % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } -% we use \chapno to avoid indenting back -\def\appendixbox#1{% - \setbox0 = \hbox{\putwordAppendix{} \the\chapno}% - \hbox to \wd0{#1\hss}} - -\outer\def\appendix{\parsearg\appendixyyy} -\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz #1{% - \secno=0 \subsecno=0 \subsubsecno=0 - \global\advance \appendixno by 1 - \message{\putwordAppendix\space \appendixletter}% - \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}% - \gdef\thissection{#1}% - \gdef\thischaptername{#1}% - \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% - \writetocentry{appendix}{#1}{{\appendixletter}} - \appendixnoderef +\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz +\def\appendixzzz#1{% + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\appendixno by 1 + \gdef\chaplevelprefix{\appendixletter.}% + \resetallfloatnos + % + \def\appendixnum{\putwordAppendix\space \appendixletter}% + \message{\appendixnum}% + % + \chapmacro{#1}{Yappendix}{\appendixletter}% + % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } -% @centerchap is like @unnumbered, but the heading is centered. -\outer\def\centerchap{\parsearg\centerchapyyy} -\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}} - -% @top is like @unnumbered. -\outer\def\top{\parsearg\unnumberedyyy} - -\outer\def\unnumbered{\parsearg\unnumberedyyy} -\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz #1{% - \secno=0 \subsecno=0 \subsubsecno=0 +\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz +\def\unnumberedzzz#1{% + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\unnumberedno by 1 + % + % Since an unnumbered has no number, no prefix for figures. + \global\let\chaplevelprefix = \empty + \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX @@ -3812,134 +5170,98 @@ width0pt\relax} \fi % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) - \toks0 = {#1}\message{(\the\toks0)}% + \toks0 = {#1}% + \message{(\the\toks0)}% + % + \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % - \unnumbchapmacro {#1}% - \gdef\thischapter{#1}\gdef\thissection{#1}% - \writetocentry{unnumbchap}{#1}{{\the\chapno}} - \unnumbnoderef \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } +% @centerchap is like @unnumbered, but the heading is centered. +\outer\parseargdef\centerchap{% + % Well, we could do the following in a group, but that would break + % an assumption that \chapmacro is called at the outermost level. + % Thus we are safer this way: --kasal, 24feb04 + \let\centerparametersmaybe = \centerparameters + \unnmhead0{#1}% + \let\centerparametersmaybe = \relax +} + +% @top is like @unnumbered. +\let\top\unnumbered + % Sections. -\outer\def\numberedsec{\parsearg\secyyy} -\def\secyyy #1{\numhead1{#1}} % normally calls seczzz -\def\seczzz #1{% - \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % - \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% - \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}} - \donoderef - \nobreak +\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz +\def\seczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } -\outer\def\appendixsection{\parsearg\appendixsecyyy} -\outer\def\appendixsec{\parsearg\appendixsecyyy} -\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz #1{% - \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % - \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% - \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}} - \appendixnoderef - \nobreak +\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz +\def\appendixsectionzzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } +\let\appendixsec\appendixsection -\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} -\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz #1{% - \plainsecheading {#1}\gdef\thissection{#1}% - \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}} - \unnumbnoderef - \nobreak +\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz +\def\unnumberedseczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. -\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} -\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz #1{% - \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % - \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% - \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}} - \donoderef - \nobreak +\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz +\def\numberedsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } -\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} -\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz #1{% - \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % - \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% - \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}} - \appendixnoderef - \nobreak +\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz +\def\appendixsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Yappendix}% + {\appendixletter.\the\secno.\the\subsecno}% } -\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} -\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz #1{% - \plainsubsecheading {#1}\gdef\thissection{#1}% - \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}} - \unnumbnoderef - \nobreak +\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz +\def\unnumberedsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Ynothing}% + {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. -\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} -\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz #1{% - \gdef\thissection{#1}\global\advance \subsubsecno by 1 % - \subsubsecheading {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% - \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}} - \donoderef - \nobreak +\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz +\def\numberedsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Ynumbered}% + {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } -\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} -\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz #1{% - \gdef\thissection{#1}\global\advance \subsubsecno by 1 % - \subsubsecheading {#1} - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% - \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}} - \appendixnoderef - \nobreak +\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz +\def\appendixsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Yappendix}% + {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } -\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} -\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz #1{% - \plainsubsubsecheading {#1}\gdef\thissection{#1}% - \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}} - \unnumbnoderef - \nobreak +\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz +\def\unnumberedsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Ynothing}% + {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } -% These are variants which are not "outer", so they can appear in @ifinfo. -% Actually, they should now be obsolete; ordinary section commands should work. -\def\infotop{\parsearg\unnumberedzzz} -\def\infounnumbered{\parsearg\unnumberedzzz} -\def\infounnumberedsec{\parsearg\unnumberedseczzz} -\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} -\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} - -\def\infoappendix{\parsearg\appendixzzz} -\def\infoappendixsec{\parsearg\appendixseczzz} -\def\infoappendixsubsec{\parsearg\appendixsubseczzz} -\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} - -\def\infochapter{\parsearg\chapterzzz} -\def\infosection{\parsearg\sectionzzz} -\def\infosubsection{\parsearg\subsectionzzz} -\def\infosubsubsection{\parsearg\subsubsectionzzz} - % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec +\let\section = \numberedsec +\let\subsection = \numberedsubsec +\let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading @@ -3951,24 +5273,27 @@ width0pt\relax} \fi % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. - -\def\majorheading{\parsearg\majorheadingzzz} -\def\majorheadingzzz #1{% +\def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% - {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} + \parsearg\chapheadingzzz +} -\def\chapheading{\parsearg\chapheadingzzz} -\def\chapheadingzzz #1{\chapbreak % +\def\chapheading{\chapbreak \parsearg\chapheadingzzz} +\def\chapheadingzzz#1{% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} + \parindent=0pt\ptexraggedright + \rmisbold #1\hfill}}% + \bigskip \par\penalty 200\relax + \suppressfirstparagraphindent +} % @heading, @subheading, @subsubheading. -\def\heading{\parsearg\plainsecheading} -\def\subheading{\parsearg\plainsubsecheading} -\def\subsubheading{\parsearg\plainsubsubsecheading} +\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} +\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} +\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), @@ -3977,8 +5302,6 @@ width0pt\relax} \fi %%% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} - %%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) @@ -3986,7 +5309,20 @@ width0pt\relax} \fi \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} +% Because \domark is called before \chapoddpage, the filler page will +% get the headings for the next chapter, which is wrong. But we don't +% care -- we just disable all headings on the filler page. +\def\chapoddpage{% + \chappager + \ifodd\pageno \else + \begingroup + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% + \hbox to 0pt{}% + \chappager + \endgroup + \fi +} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} @@ -4001,7 +5337,7 @@ width0pt\relax} \fi \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} -\def\CHAPPAGodd{ +\def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage @@ -4009,116 +5345,280 @@ width0pt\relax} \fi \CHAPPAGon -\def\CHAPFplain{ -\global\let\chapmacro=\chfplain -\global\let\unnumbchapmacro=\unnchfplain -\global\let\centerchapmacro=\centerchfplain} - -% Plain chapter opening. -% #1 is the text, #2 the chapter number or empty if unnumbered. -\def\chfplain#1#2{% +% Chapter opening. +% +% #1 is the text, #2 is the section type (Ynumbered, Ynothing, +% Yappendix, Yomitfromtoc), #3 the chapter number. +% +% To test against our argument. +\def\Ynothingkeyword{Ynothing} +\def\Yomitfromtockeyword{Yomitfromtoc} +\def\Yappendixkeyword{Yappendix} +% +\def\chapmacro#1#2#3{% + % Insert the first mark before the heading break (see notes for \domark). + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% + \gdef\thissection{}}% + % + \def\temptype{#2}% + \ifx\temptype\Ynothingkeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{\thischaptername}}% + \else\ifx\temptype\Yomitfromtockeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{}}% + \else\ifx\temptype\Yappendixkeyword + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\appendixletter}% + \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \else + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\the\chapno}% + \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \fi\fi\fi + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % + % Insert the chapter heading break. \pchapsepmacro + % + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \domark + % {% - \chapfonts \rm - \def\chapnum{#2}% - \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}% - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 \centerparametersmaybe + \chapfonts \rmisbold + % + % Have to define \lastsection before calling \donoderef, because the + % xref code eventually uses it. On the other hand, it has to be called + % after \pchapsepmacro, or the headline will change too soon. + \gdef\lastsection{#1}% + % + % Only insert the separating space if we have a chapter/appendix + % number, and don't print the unnumbered ``number''. + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unnchap}% + \else\ifx\temptype\Yomitfromtockeyword + \setbox0 = \hbox{}% contents like unnumbered, but no toc entry + \def\toctype{omit}% + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% + \def\toctype{app}% + \else + \setbox0 = \hbox{#3\enspace}% + \def\toctype{numchap}% + \fi\fi\fi + % + % Write the toc entry for this chapter. Must come before the + % \donoderef, because we include the current node name in the toc + % entry, and \donoderef resets it to empty. + \writetocentry{\toctype}{#1}{#3}% + % + % For pdftex, we have to write out the node definition (aka, make + % the pdfdest) after any page break, but before the actual text has + % been typeset. If the destination for the pdf outline is after the + % text, then jumping from the outline may wind up with the text not + % being visible, for instance under high magnification. + \donoderef{#2}% + % + % Typeset the actual heading. + \nobreak % Avoid page breaks at the interline glue. + \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright + \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } -% Plain opening for unnumbered. -\def\unnchfplain#1{\chfplain{#1}{}} - % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax -\def\centerchfplain#1{{% - \def\centerparametersmaybe{% - \advance\rightskip by 3\rightskip - \leftskip = \rightskip - \parfillskip = 0pt - }% - \chfplain{#1}{}% -}} +\def\centerparameters{% + \advance\rightskip by 3\rightskip + \leftskip = \rightskip + \parfillskip = 0pt +} -\CHAPFplain % The default +% I don't think this chapter style is supported any more, so I'm not +% updating it with the new noderef stuff. We'll see. --karl, 11aug03. +% +\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} +% \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\nobreak + \parindent=0pt\ptexraggedright + \rmisbold #1\hfill}}\bigskip \par\nobreak } - \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } - \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt - \hfill {\rm #1}\hfill}}\bigskip \par\nobreak + \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak } +\def\CHAPFopen{% + \global\let\chapmacro=\chfopen + \global\let\centerchapmacro=\centerchfopen} -\def\CHAPFopen{ -\global\let\chapmacro=\chfopen -\global\let\unnumbchapmacro=\unnchfopen -\global\let\centerchapmacro=\centerchfopen} - -% Section titles. +% Section titles. These macros combine the section number parts and +% call the generic \sectionheading to do the printing. +% \newskip\secheadingskip -\def\secheadingbreak{\dobreak \secheadingskip {-1000}} -\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}} -\def\plainsecheading#1{\sectionheading{sec}{}{#1}} +\def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. -\newskip \subsecheadingskip -\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} -\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}} -\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}} +\newskip\subsecheadingskip +\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. -\let\subsubsecheadingskip = \subsecheadingskip -\let\subsubsecheadingbreak = \subsecheadingbreak -\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}} -\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}} +\def\subsubsecheadingskip{\subsecheadingskip} +\def\subsubsecheadingbreak{\subsecheadingbreak} -% Print any size section title. +% Print any size, any type, section title. % -% #1 is the section type (sec/subsec/subsubsec), #2 is the section -% number (maybe empty), #3 the text. -\def\sectionheading#1#2#3{% - {% - \expandafter\advance\csname #1headingskip\endcsname by \parskip - \csname #1headingbreak\endcsname - }% +% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is +% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the +% section number. +% +\def\seckeyword{sec} +% +\def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. - \csname #1fonts\endcsname \rm + \csname #2fonts\endcsname \rmisbold + % + \def\sectionlevel{#2}% + \def\temptype{#3}% + % + % Insert first mark before the heading break (see notes for \domark). + \let\prevsectiondefs=\lastsectiondefs + \ifx\temptype\Ynothingkeyword + \ifx\sectionlevel\seckeyword + \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% + \gdef\thissection{\thissectionname}}% + \fi + \else\ifx\temptype\Yomitfromtockeyword + % Don't redefine \thissection. + \else\ifx\temptype\Yappendixkeyword + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \else + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \fi\fi\fi + % + % Go into vertical mode. Usually we'll already be there, but we + % don't want the following whatsit to end up in a preceding paragraph + % if the document didn't happen to have a blank line. + \par + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % + % Insert space above the heading. + \csname #2headingbreak\endcsname + % + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevsectiondefs=\lastsectiondefs + \domark + % + % Only insert the space after the number if we have a section number. + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unn}% + \gdef\lastsection{#1}% + \else\ifx\temptype\Yomitfromtockeyword + % for @headings -- no section number, don't include in toc, + % and don't redefine \lastsection. + \setbox0 = \hbox{}% + \def\toctype{omit}% + \let\sectionlevel=\empty + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{#4\enspace}% + \def\toctype{app}% + \gdef\lastsection{#1}% + \else + \setbox0 = \hbox{#4\enspace}% + \def\toctype{num}% + \gdef\lastsection{#1}% + \fi\fi\fi + % + % Write the toc entry (before \donoderef). See comments in \chapmacro. + \writetocentry{\toctype\sectionlevel}{#1}{#4}% + % + % Write the node reference (= pdf destination for pdftex). + % Again, see comments in \chapmacro. + \donoderef{#3}% % - % Only insert the separating space if we have a section number. - \def\secnum{#2}% - \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}% + % Interline glue will be inserted when the vbox is completed. + % That glue will be a valid breakpoint for the page, since it'll be + % preceded by a whatsit (usually from the \donoderef, or from the + % \writetocentry if there was no node). We don't want to allow that + % break, since then the whatsits could end up on page n while the + % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. + \nobreak % - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 % zero if no section number - \unhbox0 #3}% + % Output the actual section heading. + \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright + \hangindent=\wd0 % zero if no section number + \unhbox0 #1}% }% - % Add extra space after the heading -- either a line space or a - % paragraph space, whichever is more. (Some people like to set - % \parskip to large values for some reason.) Don't allow stretch, though. - \nobreak - \ifdim\parskip>\normalbaselineskip - \kern\parskip - \else - \kern\normalbaselineskip - \fi + % Add extra space after the heading -- half of whatever came above it. + % Don't allow stretch, though. + \kern .5 \csname #2headingskip\endcsname + % + % Do not let the kern be a potential breakpoint, as it would be if it + % was followed by glue. \nobreak + % + % We'll almost certainly start a paragraph next, so don't let that + % glue accumulate. (Not a breakpoint because it's preceded by a + % discardable item.) + \vskip-\parskip + % + % This is purely so the last item on the list is a known \penalty > + % 10000. This is so \startdefun can avoid allowing breakpoints after + % section headings. Otherwise, it would insert a valid breakpoint between: + % + % @section sec-whatever + % @deffn def-whatever + \penalty 10001 } @@ -4127,119 +5627,177 @@ width0pt\relax} \fi \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. -% Called from @chapter, etc. We supply {\folio} at the end of the -% argument, which will end up as the last argument to the \...entry macro. +% Called from @chapter, etc. +% +% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} +% We append the current node name (if any) and page number as additional +% arguments for the \{chap,sec,...}entry macros which will eventually +% read this. The node name is used in the pdf outlines as the +% destination to jump to. % -% Usage: \writetocentry{chap}{The Name of The Game}{{\the\chapno}} % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. +% But if #1 is `omit', then we don't do anything. This is used for the +% table of contents chapter openings themselves. % \newif\iftocfileopened +\def\omitkeyword{omit}% +% \def\writetocentry#1#2#3{% - \iftocfileopened\else - \immediate\openout\tocfile = \jobname.toc - \global\tocfileopenedtrue - \fi - % - \iflinks - \toks0 = {#2}% - \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}}% - \temp + \edef\writetoctype{#1}% + \ifx\writetoctype\omitkeyword \else + \iftocfileopened\else + \immediate\openout\tocfile = \jobname.toc + \global\tocfileopenedtrue + \fi + % + \iflinks + {\atdummies + \edef\temp{% + \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% + \temp + }% + \fi \fi % - % Tell \shipout to create a page destination if we're doing pdf, which - % will be the target of the links in the table of contents. We can't - % just do it on every page because the title pages are numbered 1 and - % 2 (the page numbers aren't printed), and so are the first two pages - % of the document. Thus, we'd have two destinations named `1', and - % two named `2'. - \ifpdf \pdfmakepagedesttrue \fi + % Tell \shipout to create a pdf destination on each page, if we're + % writing pdf. These are used in the table of contents. We can't + % just write one on every page because the title pages are numbered + % 1 and 2 (the page numbers aren't printed), and so are the first + % two pages of the document. Thus, we'd have two destinations named + % `1', and two named `2'. + \ifpdf \global\pdfmakepagedesttrue \fi +} + + +% These characters do not print properly in the Computer Modern roman +% fonts, so we must take special care. This is more or less redundant +% with the Texinfo input format setup at the end of this file. +% +\def\activecatcodes{% + \catcode`\"=\active + \catcode`\$=\active + \catcode`\<=\active + \catcode`\>=\active + \catcode`\\=\active + \catcode`\^=\active + \catcode`\_=\active + \catcode`\|=\active + \catcode`\~=\active +} + + +% Read the toc file, which is essentially Texinfo input. +\def\readtocfile{% + \setupdatafile + \activecatcodes + \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 -% Finish up the main text and prepare to read what we've written -% to \tocfile. +% Prepare to read what we've written to \tocfile. % \def\startcontents#1{% - % If @setchapternewpage on, and @headings double, the contents should - % start on an odd page, unlike chapters. Thus, we maintain - % \contentsalignmacro in parallel with \pagealignmacro. - % From: Torbjorn Granlund - \contentsalignmacro - \immediate\closeout\tocfile - % - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \unnumbchapmacro{#1}\def\thischapter{}% - \savepageno = \pageno - \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. - % - % Roman numerals for page numbers. - \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi + % If @setchapternewpage on, and @headings double, the contents should + % start on an odd page, unlike chapters. Thus, we maintain + % \contentsalignmacro in parallel with \pagealignmacro. + % From: Torbjorn Granlund + \contentsalignmacro + \immediate\closeout\tocfile + % + % Don't need to put `Contents' or `Short Contents' in the headline. + % It is abundantly clear what they are. + \chapmacro{#1}{Yomitfromtoc}{}% + % + \savepageno = \pageno + \begingroup % Set up to handle contents files properly. + \raggedbottom % Worry more about breakpoints than the bottom. + \advance\hsize by -\contentsrightmargin % Don't use the full line length. + % + % Roman numerals for page numbers. + \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } +% redefined for the two-volume lispref. We always output on +% \jobname.toc even if this is redefined. +% +\def\tocreadfilename{\jobname.toc} % Normal (long) toc. +% \def\contents{% - \startcontents{\putwordTOC}% - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \pdfmakeoutlines - \endgroup - \lastnegativepageno = \pageno - \global\pageno = \savepageno + \startcontents{\putwordTOC}% + \openin 1 \tocreadfilename\space + \ifeof 1 \else + \readtocfile + \fi + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \ifeof 1 \else + \pdfmakeoutlines + \fi + \closein 1 + \endgroup + \lastnegativepageno = \pageno + \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% - \startcontents{\putwordShortTOC}% - % - \let\chapentry = \shortchapentry - \let\appendixentry = \shortappendixentry - \let\unnumbchapentry = \shortunnumberedentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf - \let\sl=\shortcontsl \let\tt=\shortconttt - \rm - \hyphenpenalty = 10000 - \advance\baselineskip by 1pt % Open it up a little. - \def\secentry ##1##2##3##4{} - \def\subsecentry ##1##2##3##4##5{} - \def\subsubsecentry ##1##2##3##4##5##6{} - \let\unnumbsecentry = \secentry - \let\unnumbsubsecentry = \subsecentry - \let\unnumbsubsubsecentry = \subsubsecentry - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \endgroup - \lastnegativepageno = \pageno - \global\pageno = \savepageno + \startcontents{\putwordShortTOC}% + % + \let\numchapentry = \shortchapentry + \let\appentry = \shortchapentry + \let\unnchapentry = \shortunnchapentry + % We want a true roman here for the page numbers. + \secfonts + \let\rm=\shortcontrm \let\bf=\shortcontbf + \let\sl=\shortcontsl \let\tt=\shortconttt + \rm + \hyphenpenalty = 10000 + \advance\baselineskip by 1pt % Open it up a little. + \def\numsecentry##1##2##3##4{} + \let\appsecentry = \numsecentry + \let\unnsecentry = \numsecentry + \let\numsubsecentry = \numsecentry + \let\appsubsecentry = \numsecentry + \let\unnsubsecentry = \numsecentry + \let\numsubsubsecentry = \numsecentry + \let\appsubsubsecentry = \numsecentry + \let\unnsubsubsecentry = \numsecentry + \openin 1 \tocreadfilename\space + \ifeof 1 \else + \readtocfile + \fi + \closein 1 + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \endgroup + \lastnegativepageno = \pageno + \global\pageno = \savepageno } \let\shortcontents = \summarycontents -\ifpdf - \pdfcatalog{/PageMode /UseOutlines}% -\fi +% Typeset the label for a chapter or appendix for the short contents. +% The arg is, e.g., `A' for an appendix, or `3' for a chapter. +% +\def\shortchaplabel#1{% + % This space should be enough, since a single number is .5em, and the + % widest letter (M) is 1em, at least in the Computer Modern fonts. + % But use \hss just in case. + % (This space doesn't include the extra space that gets added after + % the label; that gets put in by \shortchapentry above.) + % + % We'd like to right-justify chapter numbers, but that looks strange + % with appendix letters. And right-justifying numbers and + % left-justifying letters looks strange when there is less than 10 + % chapters. Have to read the whole toc once to know how many chapters + % there are before deciding ... + \hbox to 1em{#1\hss}% +} % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. @@ -4247,58 +5805,46 @@ width0pt\relax} \fi % The arguments in between are the chapter number, section number, ... % Chapters, in the main contents. -\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} +\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. -\def\shortchapentry#1#2#3{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% +\def\shortchapentry#1#2#3#4{% + \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. -\def\appendixentry#1#2#3{% - \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}} -% -% Appendices, in the short toc. -\let\shortappendixentry = \shortchapentry - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter. -% We could simplify the code here by writing out an \appendixentry -% command in the toc file for appendices, instead of using \chapentry -% for both, but it doesn't seem worth it. +% Need the word Appendix, and a fixed-size box. % -\newdimen\shortappendixwidth +\def\appendixbox#1{% + % We use M since it's probably the widest letter. + \setbox0 = \hbox{\putwordAppendix{} M}% + \hbox to \wd0{\putwordAppendix{} #1\hss}} % -\def\shortchaplabel#1{% - % This space should be enough, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % But use \hss just in case. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in by \shortchapentry above.) - \dimen0 = 1em - \hbox to \dimen0{#1\hss}% -} +\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} % Unnumbered chapters. -\def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}} -\def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}} +\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} +\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. -\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}} +\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} +\let\appsecentry=\numsecentry +\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. -\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}} +\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} +\let\appsubsecentry=\numsubsecentry +\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. -\def\subsubsecentry#1#2#3#4#5#6{% - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}} +\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} +\let\appsubsubsecentry=\numsubsubsecentry +\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. -\newdimen\tocindent \tocindent = 3pc +% Same as \defaultparindent. +\newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. @@ -4329,17 +5875,8 @@ width0pt\relax} \fi \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} -% Final typesetting of a toc entry; we use the same \entry macro as for -% the index entries, but we want to suppress hyphenation here. (We -% can't do that in the \entry macro, since index entries might consist -% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) -\def\tocentry#1#2{\begingroup - \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks - % Do not use \turnoffactive in these arguments. Since the toc is - % typeset in cmr, characters such as _ would come out wrong; we - % have to do the usual translation tricks. - \entry{#1}{#2}% -\endgroup} +% We use the same \entry macro as for the index entries. +\let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} @@ -4349,62 +5886,30 @@ width0pt\relax} \fi \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} -\let\subsecentryfonts = \textfonts -\let\subsubsecentryfonts = \textfonts +\def\subsecentryfonts{\textfonts} +\def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. -% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% -% Since these characters are used in examples, it should be an even number of -% \tt widths. Each \tt character is 1en, so two makes it 1em. -% -\def\point{$\star$} -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} -\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} - -% The @error{} command. -% Adapted from the TeXbook's \boxit. -% -\newbox\errorbox -% -{\tentt \global\dimen0 = 3em}% Width of the box. -\dimen2 = .55pt % Thickness of rules -% The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} -% -\global\setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{ - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} -% -\def\error{\leavevmode\lower.7ex\copy\errorbox} - % @tex ... @end tex escapes into raw Tex temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain tex @ character. -\def\tex{\begingroup +\envdef\tex{% + \setupmarkupstyle{tex}% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other - \catcode `\==\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other + \catcode`\`=\other + \catcode`\'=\other \escapechar=`\\ % \let\b=\ptexb @@ -4416,19 +5921,25 @@ width0pt\relax} \fi \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi + \let\indent=\ptexindent + \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace + \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext + \expandafter \let\csname top\endcsname=\ptextop % outer + \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% -\let\Etex=\endgroup} +} +% There is no need to define \Etex. % Define @lisp ... @end lisp. -% @lisp does a \begingroup so it can rebind things, +% @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. @@ -4439,19 +5950,6 @@ width0pt\relax} \fi % have any width. \def\lisppar{\null\endgraf} -% Make each space character in the input produce a normal interword -% space in the output. Don't allow a line break at this space, as this -% is used only in environments like @example, where each line of input -% should produce a line of output anyway. -% -{\obeyspaces % -\gdef\sepspaces{\obeyspaces\let =\tie}} - -% Define \obeyedspace to be our active space, whatever it is. This is -% for use in \parsearg. -{\sepspaces% -\global\let\obeyedspace= } - % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt @@ -4461,7 +5959,8 @@ width0pt\relax} \fi % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% - % =10000 instead of <10000 because of a special case in \itemzzz, q.v. + % =10000 instead of <10000 because of a special case in \itemzzz and + % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf @@ -4469,7 +5968,7 @@ width0pt\relax} \fi \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... - \ifnum\lastpenalty>10000 \else \penalty-50 \fi + \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi @@ -4477,7 +5976,8 @@ width0pt\relax} \fi \let\afterenvbreak = \aboveenvbreak -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. +% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will +% also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around @@ -4501,174 +6001,256 @@ width0pt\relax} \fi % \newskip\lskip\newskip\rskip -\def\cartouche{% -\par % can't be in the midst of a paragraph. -\begingroup - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt %we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18.4pt % allow for 3pt kerns on either -% side, and for 6pt waste from -% each corner char, and rule thickness - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \hsize=\cartinner - \kern3pt - \begingroup - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip +\envdef\cartouche{% + \ifhmode\par\fi % can't be in the midst of a paragraph. + \startsavinginserts + \lskip=\leftskip \rskip=\rightskip + \leftskip=0pt\rightskip=0pt % we want these *outside*. + \cartinner=\hsize \advance\cartinner by-\lskip + \advance\cartinner by-\rskip + \cartouter=\hsize + \advance\cartouter by 18.4pt % allow for 3pt kerns on either + % side, and for 6pt waste from + % each corner char, and rule thickness + \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip + % Flag to tell @lisp, etc., not to narrow margin. + \let\nonarrowing = t% + \vbox\bgroup + \baselineskip=0pt\parskip=0pt\lineskip=0pt + \carttop + \hbox\bgroup + \hskip\lskip + \vrule\kern3pt + \vbox\bgroup + \kern3pt + \hsize=\cartinner + \baselineskip=\normbskip + \lineskip=\normlskip + \parskip=\normpskip + \vskip -\parskip + \comment % For explanation, see the end of \def\group. +} \def\Ecartouche{% - \endgroup - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup -\endgroup -}} + \ifhmode\par\fi + \kern3pt + \egroup + \kern3pt\vrule + \hskip\rskip + \egroup + \cartbot + \egroup + \checkinserts +} % This macro is called at the beginning of all the @example variants, % inside a group. +\newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak - \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt + % Turn off paragraph indentation but redefine \indent to emulate + % the normal \indent. + \nonfillparindent=\parindent \parindent = 0pt + \let\indent\nonfillindent + % \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing - \let\exdent=\nofillexdent - \let\nonarrowing=\relax + \else + \let\nonarrowing = \relax \fi + \let\exdent=\nofillexdent } -% Define the \E... control sequence only if we are inside the particular -% environment, so the error checking in \end will work. -% -% To end an @example-like environment, we first end the paragraph (via -% \afterenvbreak's vertical glue), and then the group. That way we keep -% the zero \parskip that the environments set -- \parskip glue will be -% inserted at the beginning of the next paragraph in the document, after -% the environment. -% -\def\nonfillfinish{\afterenvbreak\endgroup} +\begingroup +\obeyspaces +% We want to swallow spaces (but not other tokens) after the fake +% @indent in our nonfill-environments, where spaces are normally +% active and set to @tie, resulting in them not being ignored after +% @indent. +\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% +\gdef\nonfillindentcheck{% +\ifx\temp % +\expandafter\nonfillindentgobble% +\else% +\leavevmode\nonfillindentbox% +\fi% +}% +\endgroup +\def\nonfillindentgobble#1{\nonfillindent} +\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} + +% If you want all examples etc. small: @set dispenvsize small. +% If you want even small examples the full size: @set dispenvsize nosmall. +% This affects the following displayed environments: +% @example, @display, @format, @lisp +% +\def\smallword{small} +\def\nosmallword{nosmall} +\let\SETdispenvsize\relax +\def\setnormaldispenv{% + \ifx\SETdispenvsize\smallword + % end paragraph for sake of leading, in case document has no blank + % line. This is redundant with what happens in \aboveenvbreak, but + % we need to do it before changing the fonts, and it's inconvenient + % to change the fonts afterward. + \ifnum \lastpenalty=10000 \else \endgraf \fi + \smallexamplefonts \rm + \fi +} +\def\setsmalldispenv{% + \ifx\SETdispenvsize\nosmallword + \else + \ifnum \lastpenalty=10000 \else \endgraf \fi + \smallexamplefonts \rm + \fi +} -% @lisp: indented, narrowed, typewriter font. -\def\lisp{\begingroup - \nonfillstart - \let\Elisp = \nonfillfinish - \tt - \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return +% We often define two environments, @foo and @smallfoo. +% Let's do it by one command: +\def\makedispenv #1#2{ + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} + \expandafter\let\csname E#1\endcsname \afterenvbreak + \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } -% @example: Same as @lisp. -\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} +% Define two synonyms: +\def\maketwodispenvs #1#2#3{ + \makedispenv{#1}{#3} + \makedispenv{#2}{#3} +} +% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. +% % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. -\def\smalllisp{\begingroup - \def\Esmalllisp{\nonfillfinish\endgroup}% - \def\Esmallexample{\nonfillfinish\endgroup}% - \smallexamplefonts - \lisp -} -\let\smallexample = \smalllisp - - -% @display: same as @lisp except keep current font. % -\def\display{\begingroup +\maketwodispenvs {lisp}{example}{% \nonfillstart - \let\Edisplay = \nonfillfinish - \gobble + \tt\setupmarkupstyle{example}% + \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. + \gobble % eat return } +% @display/@smalldisplay: same as @lisp except keep current font. % -% @smalldisplay: @display plus smaller fonts. -% -\def\smalldisplay{\begingroup - \def\Esmalldisplay{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \display +\makedispenv {display}{% + \nonfillstart + \gobble } -% @format: same as @display except don't narrow margins. +% @format/@smallformat: same as @display except don't narrow margins. % -\def\format{\begingroup - \let\nonarrowing = t +\makedispenv{format}{% + \let\nonarrowing = t% \nonfillstart - \let\Eformat = \nonfillfinish \gobble } -% -% @smallformat: @format plus smaller fonts. -% -\def\smallformat{\begingroup - \def\Esmallformat{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \format -} -% @flushleft (same as @format). -% -\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format} +% @flushleft: same as @format, but doesn't obey \SETdispenvsize. +\envdef\flushleft{% + \let\nonarrowing = t% + \nonfillstart + \gobble +} +\let\Eflushleft = \afterenvbreak % @flushright. % -\def\flushright{\begingroup - \let\nonarrowing = t +\envdef\flushright{% + \let\nonarrowing = t% \nonfillstart - \let\Eflushright = \nonfillfinish \advance\leftskip by 0pt plus 1fill \gobble } +\let\Eflushright = \afterenvbreak + + +% @raggedright does more-or-less normal line breaking but no right +% justification. From plain.tex. +\envdef\raggedright{% + \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax +} +\let\Eraggedright\par + +\envdef\raggedleft{% + \parindent=0pt \leftskip0pt plus2em + \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt + \hbadness=10000 % Last line will usually be underfull, so turn off + % badness reporting. +} +\let\Eraggedleft\par + +\envdef\raggedcenter{% + \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em + \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt + \hbadness=10000 % Last line will usually be underfull, so turn off + % badness reporting. +} +\let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. +% and narrows the margins. We keep \parskip nonzero in general, since +% we're doing normal filling. So, when using \aboveenvbreak and +% \afterenvbreak, temporarily make \parskip 0. % -\def\quotation{% - \begingroup\inENV %This group ends at the end of the @quotation body +\def\quotationstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt - % We have retained a nonzero parskip for the environment, since we're - % doing normal filling. So to avoid extra space below the environment... - \def\Equotation{\parskip = 0pt \nonfillfinish}% % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing + \else \let\nonarrowing = \relax \fi + \parsearg\quotationlabel +} + +\envdef\quotation{% + \setnormaldispenv + \quotationstart +} + +\envdef\smallquotation{% + \setsmalldispenv + \quotationstart +} +\let\Esmallquotation = \Equotation + +% We have retained a nonzero parskip for the environment, since we're +% doing normal filling. +% +\def\Equotation{% + \par + \ifx\quotationauthor\undefined\else + % indent a bit. + \leftline{\kern 2\leftskip \sl ---\quotationauthor}% + \fi + {\parskip=0pt \afterenvbreak}% +} + +% If we're given an argument, typeset it in bold with a colon after. +\def\quotationlabel#1{% + \def\temp{#1}% + \ifx\temp\empty \else + {\bf #1: }% + \fi } % LaTeX-like @verbatim...@end verbatim and @verb{...} -% If we want to allow any as delimiter, +% If we want to allow any as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % @@ -4681,17 +6263,15 @@ width0pt\relax} \fi \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% + % Don't do the quotes -- if we do, @set txicodequoteundirected and + % @set txicodequotebacktick will not have effect on @verb and + % @verbatim, and ?` and !` ligatures won't get disabled. + %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% - \def\do##1{\catcode`##1=12}\dospecials} -% -% [Knuth] pp. 380,381,391 -% Disable Spanish ligatures ?` and !` of \tt font -\begingroup - \catcode`\`=\active\gdef`{\relax\lq} -\endgroup + \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % @@ -4704,7 +6284,7 @@ width0pt\relax} \fi \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% - \catcode`\`=\active + \setupmarkupstyle{verb}% \tabeightspaces % Respect line breaks, % print special symbols as themselves, and @@ -4719,6 +6299,7 @@ width0pt\relax} \fi \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % \def\starttabbox{\setbox0=\hbox\bgroup} +% \begingroup \catcode`\^^I=\active \gdef\tabexpand{% @@ -4732,12 +6313,16 @@ width0pt\relax} \fi }% } \endgroup + +% start the verbatim environment. \def\setupverbatim{% + \let\nonarrowing = t% + \nonfillstart % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% - \catcode`\`=\active \tabexpand + \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and % make each space count @@ -4746,15 +6331,15 @@ width0pt\relax} \fi \everypar{\starttabbox}% } -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a +% Do the @verb magic: verbatim text is quoted by unique +% delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup - \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12 + \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % @@ -4766,18 +6351,11 @@ width0pt\relax} \fi % % \def\doverbatim#1@end verbatim{#1} % -% For Texinfo it's a lot easier than for LaTeX, +% For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] -%% Include LaTeX hack for completeness -- never know -%% \begingroup -%% \catcode`|=0 \catcode`[=1 -%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active -%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ -%% #1|endgroup|def|Everbatim[]|end[verbatim]] -%% |endgroup % \begingroup \catcode`\ =\active @@ -4785,697 +6363,394 @@ width0pt\relax} \fi % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. - \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}% + \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% + % We really want {...\end verbatim} in the body of the macro, but + % without the active space; thus we have to use \xdef and \gobble. \endgroup % -\def\verbatim{% - \def\Everbatim{\nonfillfinish\endgroup}% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim\doverbatim +\envdef\verbatim{% + \setupverbatim\doverbatim } +\let\Everbatim = \afterenvbreak + % @verbatiminclude FILE - insert text of file in verbatim environment. % -% Allow normal characters that we make active in the argument (a file name). -\def\verbatiminclude{% - \begingroup - \catcode`\\=\other - \catcode`~=\other - \catcode`^=\other - \catcode`_=\other - \catcode`|=\other - \catcode`<=\other - \catcode`>=\other - \catcode`+=\other - \parsearg\doverbatiminclude -} -\def\setupverbatiminclude{% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim -} +\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% - % Restore active chars for included file. - \endgroup - \begingroup - \let\value=\expandablevalue - \def\thisfile{#1}% - \expandafter\expandafter\setupverbatiminclude\input\thisfile - \endgroup - \nonfillfinish - \endgroup + {% + \makevalueexpandable + \setupverbatim + \indexnofonts % Allow `@@' and other weird things in file names. + \input #1 + \afterenvbreak + }% } % @copying ... @end copying. -% Save the text away for @insertcopying later. Many commands won't be -% allowed in this context, but that's ok. -% +% Save the text away for @insertcopying later. +% % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is very desirable. -% -\def\copying{\begingroup - % Define a command to swallow text until we reach `@end copying'. - % \ is the escape char in this texinfo.tex file, so it is the - % delimiter for the command; @ will be the escape char when we read - % it, but that doesn't matter. - \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}% - % - % We must preserve ^^M's in the input file; see \insertcopying below. - \catcode`\^^M = \active - \docopying -} - -% What we do to finish off the copying text. % -\def\enddocopying{\endgroup\ignorespaces} - -% @insertcopying. Here we must play games with ^^M's. On the one hand, -% we need them to delimit commands such as `@end quotation', so they -% must be active. On the other hand, we certainly don't want every -% end-of-line to be a \par, as would happen with the normal active -% definition of ^^M. On the third hand, two ^^M's in a row should still -% generate a \par. -% -% Our approach is to make ^^M insert a space and a penalty1 normally; -% then it can also check if \lastpenalty=1. If it does, then manually -% do \par. -% -% This messes up the normal definitions of @c[omment], so we redefine -% it. Similarly for @ignore. (These commands are used in the gcc -% manual for man page generation.) -% -% Seems pretty fragile, most line-oriented commands will presumably -% fail, but for the limited use of getting the copying text (which -% should be quite simple) inserted, we can hope it's ok. -% -{\catcode`\^^M=\active % -\gdef\insertcopying{\begingroup % - \parindent = 0pt % looks wrong on title page - \def^^M{% - \ifnum \lastpenalty=1 % - \par % - \else % - \space \penalty 1 % - \fi % - }% - % - % Fix @c[omment] for catcode 13 ^^M's. - \def\c##1^^M{\ignorespaces}% - \let\comment = \c % - % - % Don't bother jumping through all the hoops that \doignore does, it - % would be very hard since the catcodes are already set. - \long\def\ignore##1\end ignore{\ignorespaces}% - % - \copyingtext % -\endgroup}% +\def\copying{\checkenv{}\begingroup\scanargctxt\docopying} +\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} +% +\def\insertcopying{% + \begingroup + \parindent = 0pt % paragraph indentation looks wrong on title page + \scanexp\copyingtext + \endgroup } + \message{defuns,} % @defun etc. -% Allow user to change definition object font (\df) internally -\def\setdeffont#1 {\csname DEF#1\endcsname} - \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt - -\newcount\parencount - -% We want ()&[] to print specially on the defun line. -% -\def\activeparens{% - \catcode`\(=\active \catcode`\)=\active - \catcode`\&=\active - \catcode`\[=\active \catcode`\]=\active -} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -{\activeparens % Now, smart parens don't turn on until &foo (see \amprm) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -\global\let(=\lparen \global\let)=\rparen -\global\let[=\lbrack \global\let]=\rbrack - -\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } -\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} -% This is used to turn on special parens -% but make & act ordinary (given that it's active). -\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} - -% Definitions of (, ) and & used in args for functions. -% This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested - \global\advance\parencount by 1 -} -% -% This is the definition of ( when already inside a level of parens. -\gdef\opnested{\char`\(\global\advance\parencount by 1 } -% -\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. - % also in that case restore the outer-level definition of (. - \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi - \global\advance \parencount by -1 } -% If we encounter &foo, then turn on ()-hacking afterwards -\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } -% -\gdef\normalparens{\boldbrax\let&=\ampnr} -} % End of definition inside \activeparens -%% These parens (in \boldbrax) actually are a little bolder than the -%% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } -\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } -\let\ampnr = \& -\def\lbrb{{\bf\char`\[}} -\def\rbrb{{\bf\char`\]}} - -% Active &'s sneak into the index arguments, so make sure it's defined. -{ - \catcode`& = \active - \global\let& = \ampnr -} - -% \defname, which formats the name of the @def (not the args). -% #1 is the function name. -% #2 is the type of definition, such as "Function". -% -\def\defname#1#2{% - % How we'll output the type name. Putting it in brackets helps - % distinguish it from the body text that may end up on the next line - % just below it. - \ifempty{#2}% - \def\defnametype{}% +\newcount\defunpenalty + +% Start the processing of @deffn: +\def\startdefun{% + \ifnum\lastpenalty<10000 + \medbreak + \defunpenalty=10003 % Will keep this @deffn together with the + % following @def command, see below. \else - \def\defnametype{[\rm #2]}% + % If there are two @def commands in a row, we'll have a \nobreak, + % which is there to keep the function description together with its + % header. But if there's nothing but headers, we need to allow a + % break somewhere. Check specifically for penalty 10002, inserted + % by \printdefunline, instead of 10000, since the sectioning + % commands also insert a nobreak penalty, and we don't want to allow + % a break between a section heading and a defun. + % + % As a minor refinement, we avoid "club" headers by signalling + % with penalty of 10003 after the very first @deffn in the + % sequence (see above), and penalty of 10002 after any following + % @def command. + \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi + % + % Similarly, after a section heading, do not allow a break. + % But do insert the glue. + \medskip % preceded by discardable penalty, so not a breakpoint \fi % - % Get the values of \leftskip and \rightskip as they were outside the @def... - \dimen2=\leftskip - \advance\dimen2 by -\defbodyindent - % - % Figure out values for the paragraph shape. - \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}% - \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line - \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations - \parshape 2 0in \dimen0 \defargsindent \dimen1 - % - % Output arg 2 ("Function" or some such) but stuck inside a box of - % width 0 so it does not interfere with linebreaking. - \noindent - % - {% Adjust \hsize to exclude the ambient margins, - % so that \rightline will obey them. - \advance \hsize by -\dimen2 - \dimen3 = 0pt % was -1.25pc - \rlap{\rightline{\defnametype\kern\dimen3}}% - }% - % - % Allow all lines to be underfull without complaint: - \tolerance=10000 \hbadness=10000 - \advance\leftskip by -\defbodyindent - \exdentamount=\defbodyindent - {\df #1}\enskip % output function name - % \defunargs will be called next to output the arguments, if any. -} - -% Common pieces to start any @def... -% #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence (which our caller defines). -% #3 is the control sequence to process the header, such as \defunheader. -% -\def\parsebodycommon#1#2#3{% - \begingroup\inENV - % If there are two @def commands in a row, we'll have a \nobreak, - % which is there to keep the function description together with its - % header. But if there's nothing but headers, we want to allow a - % break after all. Check for penalty 10002 (inserted by - % \defargscommonending) instead of 10000, since the sectioning - % commands insert a \penalty10000, and we don't want to allow a break - % between a section heading and a defun. - \ifnum\lastpenalty=10002 \penalty0 \fi - \medbreak - % - % Define the \E... end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - % - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent -} - -% Common part of the \...x definitions. -% -\def\defxbodycommon{% - % As with \parsebodycommon above, allow line break if we have multiple - % x headers in a row. It's not a great place, though. - \ifnum\lastpenalty=10000 \penalty1000 \fi - % - \begingroup\obeylines -} - -% Process body of @defun, @deffn, @defmac, etc. -% -\def\defparsebody#1#2#3{% - \parsebodycommon{#1}{#2}{#3}% - \def#2{\defxbodycommon \activeparens \spacesplit#3}% - \catcode\equalChar=\active - \begingroup\obeylines\activeparens - \spacesplit#3% + \parindent=0in + \advance\leftskip by \defbodyindent + \exdentamount=\defbodyindent } -% #1, #2, #3 are the common arguments (see \parsebodycommon above). -% #4, delimited by the space, is the class name. -% -\def\defmethparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}% - \begingroup\obeylines\activeparens - % The \empty here prevents misinterpretation of a construct such as - % @deffn {whatever} {Enharmonic comma} - % See comments at \deftpparsebody, although in our case we don't have - % to remove the \empty afterwards, since it is empty. - \spacesplit{#3{#4}}\empty +\def\dodefunx#1{% + % First, check whether we are in the right environment: + \checkenv#1% + % + % As above, allow line break if we have multiple x headers in a row. + % It's not a great place, though. + \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi + % + % And now, it's time to reuse the body of the original defun: + \expandafter\gobbledefun#1% } +\def\gobbledefun#1\startdefun{} -% Used for @deftypemethod and @deftypeivar. -% #1, #2, #3 are the common arguments (see \defparsebody). -% #4, delimited by a space, is the class name. -% #5 is the method's return type. +% \printdefunline \deffnheader{text} % -\def\deftypemethparsebody#1#2#3#4 #5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#4}{#5}}% -} - -% Used for @deftypeop. The change from \deftypemethparsebody is an -% extra argument at the beginning which is the `category', instead of it -% being the hardwired string `Method' or `Instance Variable'. We have -% to account for this both in the \...x definition and in parsing the -% input at hand. Thus also need a control sequence (passed as #5) for -% the \E... definition to assign the category name to. -% -\def\deftypeopparsebody#1#2#3#4#5 #6 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 ##3 {\def#4{##1}% - \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#5}{#6}}% +\def\printdefunline#1#2{% + \begingroup + % call \deffnheader: + #1#2 \endheader + % common ending: + \interlinepenalty = 10000 + \advance\rightskip by 0pt plus 1fil + \endgraf + \nobreak\vskip -\parskip + \penalty\defunpenalty % signal to \startdefun and \dodefunx + % Some of the @defun-type tags do not enable magic parentheses, + % rendering the following check redundant. But we don't optimize. + \checkparencounts + \endgroup } -% For @defop. -\def\defopparsebody #1#2#3#4#5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\def#4{##1}% - \defxbodycommon \activeparens \spacesplit{#3{##2}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#5}}% -} +\def\Edefun{\endgraf\medbreak} -% These parsing functions are similar to the preceding ones -% except that they do not make parens into active characters. -% These are used for "variables" since they have no arguments. +% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; +% the only thing remaining is to define \deffnheader. % -\def\defvarparsebody #1#2#3{% - \parsebodycommon{#1}{#2}{#3}% - \def#2{\defxbodycommon \spacesplit#3}% - \catcode\equalChar=\active - \begingroup\obeylines - \spacesplit#3% -} - -% @defopvar. -\def\defopvarparsebody #1#2#3#4#5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\def#4{##1}% - \defxbodycommon \spacesplit{#3{##2}}}% - \begingroup\obeylines - \spacesplit{#3{#5}}% -} - -\def\defvrparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% - \begingroup\obeylines - \spacesplit{#3{#4}}% +\def\makedefun#1{% + \expandafter\let\csname E#1\endcsname = \Edefun + \edef\temp{\noexpand\domakedefun + \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% + \temp } -% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the -% type is just `struct', because we lose the braces in `{struct -% termios}' when \spacesplit reads its undelimited argument. Sigh. -% \let\deftpparsebody=\defvrparsebody +% \domakedefun \deffn \deffnx \deffnheader % -% So, to get around this, we put \empty in with the type name. That -% way, TeX won't find exactly `{...}' as an undelimited argument, and -% won't strip off the braces. +% Define \deffn and \deffnx, without parameters. +% \deffnheader has to be defined explicitly. % -\def\deftpparsebody #1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% - \begingroup\obeylines - \spacesplit{\parsetpheaderline{#3{#4}}}\empty +\def\domakedefun#1#2#3{% + \envdef#1{% + \startdefun + \parseargusing\activeparens{\printdefunline#3}% + }% + \def#2{\dodefunx#1}% + \def#3% } -% Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does. -% -\def\removeemptybraces\empty#1\relax{#1} +%%% Untyped functions: -% After \spacesplit has done its work, this is called -- #1 is the final -% thing to call, #2 the type name (which starts with \empty), and #3 -% (which might be empty) the arguments. -% -\def\parsetpheaderline#1#2#3{% - #1{\removeemptybraces#2\relax}{#3}% -}% +% @deffn category name args +\makedefun{deffn}{\deffngeneral{}} -% Split up #2 (the rest of the input line) at the first space token. -% call #1 with two arguments: -% the first is all of #2 before the space token, -% the second is all of #2 after that space token. -% If #2 contains no space token, all of it is passed as the first arg -% and the second is passed as empty. -% -{\obeylines % - \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}% - \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{% - \ifx\relax #3% - #1{#2}{}% - \else % - #1{#2}{#3#4}% - \fi}% -} +% @deffn category class name args +\makedefun{defop}#1 {\defopon{#1\ \putwordon}} -% Define @defun. +% \defopon {category on}class name args +\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } -% This is called to end the arguments processing for all the @def... commands. +% \deffngeneral {subind}category name args % -\def\defargscommonending{% - \interlinepenalty = 10000 - \advance\rightskip by 0pt plus 1fil - \endgraf - \nobreak\vskip -\parskip - \penalty 10002 % signal to \parsebodycommon. -} - -% This expands the args and terminates the paragraph they comprise. -% -\def\defunargs#1{\functionparens \sl -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Set the font temporarily and use \font in case \setfont made \tensl a macro. -{\tensl\hyphenchar\font=0}% -#1% -{\tensl\hyphenchar\font=45}% -\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% - \defargscommonending +\def\deffngeneral#1#2 #3 #4\endheader{% + % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. + \dosubind{fn}{\code{#3}}{#1}% + \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } -\def\deftypefunargs #1{% -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Use \boldbraxnoamp, not \functionparens, so that & is not special. -\boldbraxnoamp -\tclose{#1}% avoid \code because of side effects on active chars - \defargscommonending -} +%%% Typed functions: -% Do complete processing of one @defun or @defunx line already parsed. +% @deftypefn category type name args +\makedefun{deftypefn}{\deftypefngeneral{}} -% @deffn Command forward-char nchars +% @deftypeop category class type name args +\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} -\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} +% \deftypeopon {category on}class type name args +\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } -\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% -\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % -\catcode\equalChar=\other % Turn off change made in \defparsebody +% \deftypefngeneral {subind}category type name args +% +\def\deftypefngeneral#1#2 #3 #4 #5\endheader{% + \dosubind{fn}{\code{#4}}{#1}% + \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -% @defun == @deffn Function +%%% Typed variables: -\def\defun{\defparsebody\Edefun\defunx\defunheader} - -\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDeffunc}% -\defunargs {#2}\endgroup % -\catcode\equalChar=\other % Turn off change made in \defparsebody -} +% @deftypevr category type var args +\makedefun{deftypevr}{\deftypecvgeneral{}} -% @deftypefun int foobar (int @var{foo}, float @var{bar}) +% @deftypecv category class type var args +\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} -\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} +% \deftypecvof {category of}class type var args +\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } -% #1 is the data type. #2 is the name and args. -\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} -% #1 is the data type, #2 the name, #3 the args. -\def\deftypefunheaderx #1#2 #3\relax{% -\doind {fn}{\code{#2}}% Make entry in function index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% -\deftypefunargs {#3}\endgroup % -\catcode\equalChar=\other % Turn off change made in \defparsebody +% \deftypecvgeneral {subind}category type var args +% +\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% + \dosubind{vr}{\code{#4}}{#1}% + \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} +%%% Untyped variables: -% \defheaderxcond#1\relax$.$ -% puts #1 in @code, followed by a space, but does nothing if #1 is null. -\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi} - -% #1 is the classification. #2 is the data type. #3 is the name and args. -\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} -% #1 is the classification, #2 the data type, #3 the name, #4 the args. -\def\deftypefnheaderx #1#2#3 #4\relax{% -\doind {fn}{\code{#3}}% Make entry in function index -\begingroup -\normalparens % notably, turn off `&' magic, which prevents -% at least some C++ text from working -\defname {\defheaderxcond#2\relax$.$#3}{#1}% -\deftypefunargs {#4}\endgroup % -\catcode\equalChar=\other % Turn off change made in \defparsebody -} +% @defvr category var args +\makedefun{defvr}#1 {\deftypevrheader{#1} {} } -% @defmac == @deffn Macro +% @defcv category class var args +\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} -\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} +% \defcvof {category of}class var args +\def\defcvof#1#2 {\deftypecvof{#1}#2 {} } -\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefmac}% -\defunargs {#2}\endgroup % -\catcode\equalChar=\other % Turn off change made in \defparsebody +%%% Type: +% @deftp category name args +\makedefun{deftp}#1 #2 #3\endheader{% + \doind{tp}{\code{#2}}% + \defname{#1}{}{#2}\defunargs{#3\unskip}% } -% @defspec == @deffn Special Form - -\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} - -\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefspec}% -\defunargs {#2}\endgroup % -\catcode\equalChar=\other % Turn off change made in \defparsebody -} +% Remaining @defun-like shortcuts: +\makedefun{defun}{\deffnheader{\putwordDeffunc} } +\makedefun{defmac}{\deffnheader{\putwordDefmac} } +\makedefun{defspec}{\deffnheader{\putwordDefspec} } +\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } +\makedefun{defvar}{\defvrheader{\putwordDefvar} } +\makedefun{defopt}{\defvrheader{\putwordDefopt} } +\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } +\makedefun{defmethod}{\defopon\putwordMethodon} +\makedefun{deftypemethod}{\deftypeopon\putwordMethodon} +\makedefun{defivar}{\defcvof\putwordInstanceVariableof} +\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} -% @defop CATEGORY CLASS OPERATION ARG... +% \defname, which formats the name of the @def (not the args). +% #1 is the category, such as "Function". +% #2 is the return type, if any. +% #3 is the function name. % -\def\defop #1 {\def\defoptype{#1}% -\defopparsebody\Edefop\defopx\defopheader\defoptype} +% We are followed by (but not passed) the arguments, if any. % -\def\defopheader#1#2#3{% - \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% function index entry - \begingroup - \defname{#2}{\defoptype\ \putwordon\ #1}% - \defunargs{#3}% - \endgroup +\def\defname#1#2#3{% + % Get the values of \leftskip and \rightskip as they were outside the @def... + \advance\leftskip by -\defbodyindent + % + % How we'll format the type name. Putting it in brackets helps + % distinguish it from the body text that may end up on the next line + % just below it. + \def\temp{#1}% + \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} + % + % Figure out line sizes for the paragraph shape. + % The first line needs space for \box0; but if \rightskip is nonzero, + % we need only space for the part of \box0 which exceeds it: + \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip + % The continuations: + \dimen2=\hsize \advance\dimen2 by -\defargsindent + % (plain.tex says that \dimen1 should be used only as global.) + \parshape 2 0in \dimen0 \defargsindent \dimen2 + % + % Put the type name to the right margin. + \noindent + \hbox to 0pt{% + \hfil\box0 \kern-\hsize + % \hsize has to be shortened this way: + \kern\leftskip + % Intentionally do not respect \rightskip, since we need the space. + }% + % + % Allow all lines to be underfull without complaint: + \tolerance=10000 \hbadness=10000 + \exdentamount=\defbodyindent + {% + % defun fonts. We use typewriter by default (used to be bold) because: + % . we're printing identifiers, they should be in tt in principle. + % . in languages with many accents, such as Czech or French, it's + % common to leave accents off identifiers. The result looks ok in + % tt, but exceedingly strange in rm. + % . we don't want -- and --- to be treated as ligatures. + % . this still does not fix the ?` and !` ligatures, but so far no + % one has made identifiers using them :). + \df \tt + \def\temp{#2}% return value type + \ifx\temp\empty\else \tclose{\temp} \fi + #3% output function name + }% + {\rm\enskip}% hskip 0.5 em of \tenrm + % + \boldbrax + % arguments will be output next, if any. } -% @deftypeop CATEGORY CLASS TYPE OPERATION ARG... +% Print arguments in slanted roman (not ttsl), inconsistently with using +% tt for the name. This is because literal text is sometimes needed in +% the argument list (groff manual), and ttsl and tt are not very +% distinguishable. Prevent hyphenation at `-' chars. % -\def\deftypeop #1 {\def\deftypeopcategory{#1}% - \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader - \deftypeopcategory} -% -% #1 is the class name, #2 the data type, #3 the operation name, #4 the args. -\def\deftypeopheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\deftypeopcategory\ \putwordon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup +\def\defunargs#1{% + % use sl by default (not ttsl), + % tt for the names. + \df \sl \hyphenchar\font=0 + % + % On the other hand, if an argument has two dashes (for instance), we + % want a way to get ttsl. Let's try @var for that. + \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% + #1% + \sl\hyphenchar\font=45 } -% @deftypemethod CLASS TYPE METHOD ARG... -% -\def\deftypemethod{% - \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} +% We want ()&[] to print specially on the defun line. % -% #1 is the class name, #2 the data type, #3 the method name, #4 the args. -\def\deftypemethodheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup +\def\activeparens{% + \catcode`\(=\active \catcode`\)=\active + \catcode`\[=\active \catcode`\]=\active + \catcode`\&=\active } -% @deftypeivar CLASS TYPE VARNAME -% -\def\deftypeivar{% - \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader} -% -% #1 is the class name, #2 the data type, #3 the variable name. -\def\deftypeivarheader#1#2#3{% - \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\putwordInstanceVariableof\ \code{#1}}% - \defvarargs{#3}% - \endgroup -} +% Make control sequences which act like normal parenthesis chars. +\let\lparen = ( \let\rparen = ) -% @defmethod == @defop Method -% -\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} -% -% #1 is the class name, #2 the method name, #3 the args. -\def\defmethodheader#1#2#3{% - \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{#2}{\putwordMethodon\ \code{#1}}% - \defunargs{#3}% - \endgroup -} +% Be sure that we always have a definition for `(', etc. For example, +% if the fn name has parens in it, \boldbrax will not be in effect yet, +% so TeX would otherwise complain about undefined control sequence. +{ + \activeparens + \global\let(=\lparen \global\let)=\rparen + \global\let[=\lbrack \global\let]=\rbrack + \global\let& = \& -% @defcv {Class Option} foo-class foo-flag + \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} + \gdef\magicamp{\let&=\amprm} +} -\def\defcv #1 {\def\defcvtype{#1}% -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} +\newcount\parencount -\def\defcvarheader #1#2#3{% - \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% variable index entry - \begingroup - \defname{#2}{\defcvtype\ \putwordof\ #1}% - \defvarargs{#3}% - \endgroup +% If we encounter &foo, then turn on ()-hacking afterwards +\newif\ifampseen +\def\amprm#1 {\ampseentrue{\bf\ }} + +\def\parenfont{% + \ifampseen + % At the first level, print parens in roman, + % otherwise use the default font. + \ifnum \parencount=1 \rm \fi + \else + % The \sf parens (in \boldbrax) actually are a little bolder than + % the contained text. This is especially needed for [ and ] . + \sf + \fi } - -% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME -% -\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} -% -\def\defivarheader#1#2#3{% - \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% entry in var index - \begingroup - \defname{#2}{\putwordInstanceVariableof\ #1}% - \defvarargs{#3}% - \endgroup +\def\infirstlevel#1{% + \ifampseen + \ifnum\parencount=1 + #1% + \fi + \fi } +\def\bfafterword#1 {#1 \bf} -% @defvar -% First, define the processing that is wanted for arguments of @defvar. -% This is actually simple: just print them in roman. -% This must expand the args and terminate the paragraph they make up -\def\defvarargs #1{\normalparens #1% - \defargscommonending +\def\opnr{% + \global\advance\parencount by 1 + {\parenfont(}% + \infirstlevel \bfafterword } - -% @defvr Counter foo-count - -\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} - -\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% -\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} - -% @defvar == @defvr Variable - -\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} - -\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefvar}% -\defvarargs {#2}\endgroup % +\def\clnr{% + {\parenfont)}% + \infirstlevel \sl + \global\advance\parencount by -1 } -% @defopt == @defvr {User Option} - -\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} - -\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefopt}% -\defvarargs {#2}\endgroup % +\newcount\brackcount +\def\lbrb{% + \global\advance\brackcount by 1 + {\bf[}% +} +\def\rbrb{% + {\bf]}% + \global\advance\brackcount by -1 } -% @deftypevar int foobar - -\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} - -% #1 is the data type. #2 is the name, perhaps followed by text that -% is actually part of the data type, which should not be put into the index. -\def\deftypevarheader #1#2{% -\dovarind#2 \relax% Make entry in variables index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% - \defargscommonending -\endgroup} -\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} - -% @deftypevr {Global Flag} int enable - -\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} - -\def\deftypevrheader #1#2#3{\dovarind#3 \relax% -\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} - \defargscommonending -\endgroup} - -% Now define @deftp -% Args are printed in bold, a slight difference from @defvar. - -\def\deftpargs #1{\bf \defvarargs{#1}} - -% @deftp Class window height width ... - -\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} - -\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% -\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} - -% These definitions are used if you use @defunx (etc.) -% anywhere other than immediately after a @defun or @defunx. -% -\def\defcvx#1 {\errmessage{@defcvx in invalid context}} -\def\deffnx#1 {\errmessage{@deffnx in invalid context}} -\def\defivarx#1 {\errmessage{@defivarx in invalid context}} -\def\defmacx#1 {\errmessage{@defmacx in invalid context}} -\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}} -\def\defoptx #1 {\errmessage{@defoptx in invalid context}} -\def\defopx#1 {\errmessage{@defopx in invalid context}} -\def\defspecx#1 {\errmessage{@defspecx in invalid context}} -\def\deftpx#1 {\errmessage{@deftpx in invalid context}} -\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}} -\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}} -\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}} -\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}} -\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}} -\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}} -\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}} -\def\defunx#1 {\errmessage{@defunx in invalid context}} -\def\defvarx#1 {\errmessage{@defvarx in invalid context}} -\def\defvrx#1 {\errmessage{@defvrx in invalid context}} +\def\checkparencounts{% + \ifnum\parencount=0 \else \badparencount \fi + \ifnum\brackcount=0 \else \badbrackcount \fi +} +% these should not use \errmessage; the glibc manual, at least, actually +% has such constructs (when documenting function pointers). +\def\badparencount{% + \message{Warning: unbalanced parentheses in @def...}% + \global\parencount=0 +} +\def\badbrackcount{% + \message{Warning: unbalanced square brackets in @def...}% + \global\brackcount=0 +} \message{macros,} @@ -5484,42 +6759,68 @@ width0pt\relax} \fi % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\undefined - \newwrite\macscribble - \def\scanmacro#1{% - \begingroup \newlinechar`\^^M - % Undo catcode changes of \startcontents and \doprintindex - \catcode`\@=0 \catcode`\\=\other \escapechar=`\@ - % Append \endinput to make sure that TeX does not see the ending newline. - \toks0={#1\endinput}% - \immediate\openout\macscribble=\jobname.tmp - \immediate\write\macscribble{\the\toks0}% - \immediate\closeout\macscribble - \let\xeatspaces\eatspaces - \input \jobname.tmp - \endgroup -} -\else -\def\scanmacro#1{% -\begingroup \newlinechar`\^^M -% Undo catcode changes of \startcontents and \doprintindex -\catcode`\@=0 \catcode`\\=\other \escapechar=`\@ -\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} + \newwrite\macscribble + \def\scantokens#1{% + \toks0={#1}% + \immediate\openout\macscribble=\jobname.tmp + \immediate\write\macscribble{\the\toks0}% + \immediate\closeout\macscribble + \input \jobname.tmp + } \fi +\def\scanmacro#1{% + \begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % ... and \example + \spaceisspace + % + % Append \endinput to make sure that TeX does not see the ending newline. + % I've verified that it is necessary both for e-TeX and for ordinary TeX + % --kasal, 29nov03 + \scantokens{#1\endinput}% + \endgroup +} + +\def\scanexp#1{% + \edef\temp{\noexpand\scanmacro{#1}}% + \temp +} + \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? -\def\macrolist{} % List of all defined macros in the form - % \do\macro1\do\macro2... + +% List of all defined macros in the form +% \definedummyword\macro1\definedummyword\macro2... +% Currently is also contains all @aliases; the list can be split +% if there is a need. +\def\macrolist{} + +% Add the macro to \macrolist +\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} +\def\addtomacrolistxxx#1{% + \toks0 = \expandafter{\macrolist\definedummyword#1}% + \xdef\macrolist{\the\toks0}% +} % Utility routines. -% Thisdoes \let #1 = #2, except with \csnames. +% This does \let #1 = #2, with \csnames; that is, +% \let \csname#1\endcsname = \csname#2\endcsname +% (except of course we have to play expansion games). +% \def\cslet#1#2{% -\expandafter\expandafter -\expandafter\let -\expandafter\expandafter -\csname#1\endcsname -\csname#2\endcsname} + \expandafter\let + \csname#1\expandafter\endcsname + \csname#2\endcsname +} % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). @@ -5542,34 +6843,45 @@ width0pt\relax} \fi % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \. +% Non-ASCII encodings make 8-bit characters active, so un-activate +% them to avoid their expansion. Must do this non-globally, to +% confine the change to the current group. + % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. -\def\macrobodyctxt{% - \catcode`\~=\other +\def\scanctxt{% + \catcode`\"=\other + \catcode`\+=\other + \catcode`\<=\other + \catcode`\>=\other + \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other - \catcode`\<=\other - \catcode`\>=\other - \catcode`\+=\other + \catcode`\~=\other + \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi +} + +\def\scanargctxt{% + \scanctxt + \catcode`\\=\other + \catcode`\^^M=\other +} + +\def\macrobodyctxt{% + \scanctxt \catcode`\{=\other \catcode`\}=\other - \catcode`\@=\other \catcode`\^^M=\other - \usembodybackslash} + \usembodybackslash +} \def\macroargctxt{% - \catcode`\~=\other - \catcode`\^=\other - \catcode`\_=\other - \catcode`\|=\other - \catcode`\<=\other - \catcode`\>=\other - \catcode`\+=\other - \catcode`\@=\other - \catcode`\\=\other} + \scanctxt + \catcode`\\=\other +} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N @@ -5600,25 +6912,21 @@ width0pt\relax} \fi \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% - % Add the macroname to \macrolist - \toks0 = \expandafter{\macrolist\do}% - \xdef\macrolist{\the\toks0 - \expandafter\noexpand\csname\the\macname\endcsname}% + \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} -\def\unmacro{\parsearg\dounmacro} -\def\dounmacro#1{% +\parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax - \let\do\unmacrodo + \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else @@ -5628,12 +6936,12 @@ width0pt\relax} \fi % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. -% +% \def\unmacrodo#1{% - \ifx#1\relax + \ifx #1\relax % remove this \else - \noexpand\do \noexpand #1% + \noexpand\definedummyword \noexpand#1% \fi } @@ -5746,34 +7054,31 @@ width0pt\relax} \fi % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} +\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg - \fi \next} - -% We mant to disable all macros during \shipout so that they are not -% expanded by \write. -\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% - \edef\next{\macrolist}\expandafter\endgroup\next} + \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Just make them active and then expand them all to nothing. -\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx} +\def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} -\def\aliasyyy #1=#2\relax{\ignoreactivespaces -\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=% - \expandafter\noexpand\csname#2\endcsname}% -\expandafter\endgroup\next} +\def\aliasyyy #1=#2\relax{% + {% + \expandafter\let\obeyedspace=\empty + \addtomacrolist{#1}% + \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% + }% + \next +} \message{cross references,} -% @xref etc. \newwrite\auxfile - \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. @@ -5782,64 +7087,68 @@ width0pt\relax} \fi \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} -% @node's job is to define \lastnode. -\def\node{\ENVcheck\parsearg\nodezzz} -\def\nodezzz#1{\nodexxx [#1,]} -\def\nodexxx[#1,#2]{\gdef\lastnode{#1}} +% @node's only job in TeX is to define \lastnode, which is used in +% cross-references. The @node line might or might not have commas, and +% might or might not have spaces before the first comma, like: +% @node foo , bar , ... +% We don't want such trailing spaces in the node name. +% +\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} +% +% also remove a trailing comma, in case of something like this: +% @node Help-Cross, , , Cross-refs +\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} +\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} + \let\nwnode=\node -\let\lastnode=\relax - -% The sectioning commands (@chapter, etc.) call these. -\def\donoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Ysectionnumberandtype}% - \global\let\lastnode=\relax - \fi -} -\def\unnumbnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}% - \global\let\lastnode=\relax - \fi -} -\def\appendixnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Yappendixletterandtype}% - \global\let\lastnode=\relax +\let\lastnode=\empty + +% Write a cross-reference definition for the current node. #1 is the +% type (Ynumbered, Yappendix, Ynothing). +% +\def\donoderef#1{% + \ifx\lastnode\empty\else + \setref{\lastnode}{#1}% + \global\let\lastnode=\empty \fi } - % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister -\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} -\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} -\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} +% +\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} +\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} +\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an -% anchor), namely NAME-title (the corresponding @chapter/etc. name), -% NAME-pg (the page number), and NAME-snt (section number and type). -% Called from \foonoderef. -% -% We have to set \indexdummies so commands such as @code in a section -% title aren't expanded. It would be nicer not to expand the titles in -% the first place, but there's so many layers that that is hard to do. -% -% Likewise, use \turnoffactive so that punctuation chars such as underscore -% and backslash work in node names. -% -\def\setref#1#2{{% - \atdummies +% anchor), which consists of three parts: +% 1) NAME-title - the current sectioning name taken from \lastsection, +% or the anchor name. +% 2) NAME-snt - section number and type, passed as the SNT arg, or +% empty for anchors. +% 3) NAME-pg - the page number. +% +% This is called from \donoderef, \anchor, and \dofloat. In the case of +% floats, there is an additional part, which is not written here: +% 4) NAME-lof - the text as it should appear in a @listoffloats. +% +\def\setref#1#2{% \pdfmkdest{#1}% - % - \turnoffactive - \dosetq{#1-title}{Ytitle}% - \dosetq{#1-pg}{Ypagenumber}% - \dosetq{#1-snt}{#2}% -}} + \iflinks + {% + \atdummies % preserve commands, but don't expand them + \edef\writexrdef##1##2{% + \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef + ##1}{##2}}% these are parameters of \writexrdef + }% + \toks0 = \expandafter{\lastsection}% + \immediate \writexrdef{title}{\the\toks0 }% + \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout + }% + \fi +} % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed @@ -5852,94 +7161,128 @@ width0pt\relax} \fi \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces \def\printedmanual{\ignorespaces #5}% - \def\printednodename{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual}% - \setbox0=\hbox{\printednodename}% + \def\printedrefname{\ignorespaces #3}% + \setbox1=\hbox{\printedmanual\unskip}% + \setbox0=\hbox{\printedrefname\unskip}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1 > 0pt % It is in another manual, so we don't have it. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}{}}% + \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. + % Make link in pdf output. \ifpdf - \leavevmode - \getfilename{#4}% - {\turnoffactive \otherbackslash + {\indexnofonts + \turnoffactive + % This expands tokens, so do it after making catcode changes, so _ + % etc. don't get their TeX definitions. + \getfilename{#4}% + % + % See comments at \activebackslashdouble. + {\activebackslashdouble \xdef\pdfxrefdest{#1}% + \backslashparens\pdfxrefdest}% + % + \leavevmode + \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 - \startlink attr{/Border [0 0 0]}% - goto file{\the\filename.pdf} name{#1}% + goto file{\the\filename.pdf} name{\pdfxrefdest}% \else - \startlink attr{/Border [0 0 0]}% - goto name{#1}% + goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% - \linkcolor + \setcolor{\linkcolor}% \fi % - \ifdim \wd1 > 0pt - \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}% + % Float references are printed completely differently: "Figure 1.2" + % instead of "[somenode], p.3". We distinguish them by the + % LABEL-title being set to a magic string. + {% + % Have to otherify everything special to allow the \csname to + % include an _ in the xref name, etc. + \indexnofonts + \turnoffactive + \expandafter\global\expandafter\let\expandafter\Xthisreftitle + \csname XR#1-title\endcsname + }% + \iffloat\Xthisreftitle + % If the user specified the print name (third arg) to the ref, + % print it instead of our usual "Figure 1.2". + \ifdim\wd0 = 0pt + \refx{#1-snt}{}% + \else + \printedrefname + \fi + % + % if the user also gave the printed manual name (fifth arg), append + % "in MANUALNAME". + \ifdim \wd1 > 0pt + \space \putwordin{} \cite{\printedmanual}% + \fi \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\turnoffactive \otherbackslash - % Only output a following space if the -snt ref is nonempty; for - % @unnumbered and @anchor, it won't be. - \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% - \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi - }% - % [mynode], - [\printednodename],\space - % page 3 - \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% + % node/anchor (non-float) references. + % + % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not + % insert empty discretionaries after hyphens, which means that it will + % not find a line break at a hyphen in a node names. Since some manuals + % are best written with fairly long node names, containing hyphens, this + % is a loss. Therefore, we give the text of the node name again, so it + % is as if TeX is seeing it for the first time. + \ifdim \wd1 > 0pt + \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% + \else + % _ (for example) has to be the character _ for the purposes of the + % control sequence corresponding to the node, but it has to expand + % into the usual \leavevmode...\vrule stuff for purposes of + % printing. So we \turnoffactive for the \refx-snt, back on for the + % printing, back off for the \refx-pg. + {\turnoffactive + % Only output a following space if the -snt ref is nonempty; for + % @unnumbered and @anchor, it won't be. + \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% + \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi + }% + % output the `[mynode]' via a macro so it can be overridden. + \xrefprintnodename\printedrefname + % + % But we always want a comma and a space: + ,\space + % + % output the `page 3'. + \turnoffactive \putwordpage\tie\refx{#1-pg}{}% + \fi \fi \endlink \endgroup} -% \dosetq is called from \setref to do the actual \write (\iflinks). +% This macro is called from \xrefX for the `[nodename]' part of xref +% output. It's a separate macro only so it can be changed more easily, +% since square brackets don't work well in some documents. Particularly +% one that Bob is working on :). % -\def\dosetq#1#2{% - {\let\folio=0% - \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% - \iflinks \next \fi - }% -} - -% \internalsetq{foo}{page} expands into -% CHARACTERS @xrdef{foo}{...expansion of \page...} -\def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}} +\def\xrefprintnodename#1{[#1]} -% Things to be expanded by \internalsetq. -% -\def\Ypagenumber{\folio} -\def\Ytitle{\thissection} +% Things referred to by \setref. +% \def\Ynothing{} -\def\Ysectionnumberandtype{% +\def\Yomitfromtoc{} +\def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 @@ -5950,8 +7293,7 @@ width0pt\relax} \fi \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } - -\def\Yappendixletterandtype{% +\def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 @@ -5964,15 +7306,6 @@ width0pt\relax} \fi \fi\fi\fi } -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. -% -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Pre-3.0. -\else - \def\linenumber{\the\inputlineno:\space} -\fi - % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. % @@ -5981,7 +7314,7 @@ width0pt\relax} \fi \indexnofonts \otherbackslash \expandafter\global\expandafter\let\expandafter\thisrefX - \csname X#1\endcsname + \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. @@ -6000,15 +7333,57 @@ width0pt\relax} \fi % It's defined, so just use it. \thisrefX \fi - #2% Output the suffix in any case. + #2% Output the suffix in any case. +} + +% This is the macro invoked by entries in the aux file. Usually it's +% just a \def (we prepend XR to the control sequence name to avoid +% collisions). But if this is a float type, we have more work to do. +% +\def\xrdef#1#2{% + {% The node name might contain 8-bit characters, which in our current + % implementation are changed to commands like @'e. Don't let these + % mess up the control sequence name. + \indexnofonts + \turnoffactive + \xdef\safexrefname{#1}% + }% + % + \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref + % + % Was that xref control sequence that we just defined for a float? + \expandafter\iffloat\csname XR\safexrefname\endcsname + % it was a float, and we have the (safe) float type in \iffloattype. + \expandafter\let\expandafter\floatlist + \csname floatlist\iffloattype\endcsname + % + % Is this the first time we've seen this float type? + \expandafter\ifx\floatlist\relax + \toks0 = {\do}% yes, so just \do + \else + % had it before, so preserve previous elements in list. + \toks0 = \expandafter{\floatlist\do}% + \fi + % + % Remember this xref in the control sequence \floatlistFLOATTYPE, + % for later use in \listoffloats. + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 + {\safexrefname}}% + \fi +} + +% Read the last existing aux file, if any. No error if none exists. +% +\def\tryauxfile{% + \openin 1 \jobname.aux + \ifeof 1 \else + \readdatafile{aux}% + \global\havexrefstrue + \fi + \closein 1 } -% This is the macro invoked by entries in the aux file. -% -\def\xrdef#1{\expandafter\gdef\csname X#1\endcsname} - -% Read the last existing aux file, if any. No error if none exists. -\def\readauxfile{\begingroup +\def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other @@ -6066,41 +7441,40 @@ width0pt\relax} \fi \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % - % Make the characters 128-255 be printing characters + % This is to support \ in node names and titles, since the \ + % characters end up in a \csname. It's easier than + % leaving it active and making its active definition an actual \ + % character. What I don't understand is why it works in the *value* + % of the xrdef. Seems like it should be a catcode12 \, and that + % should not typeset properly. But it works, so I'm moving on for + % now. --karl, 15jan04. + \catcode`\\=\other + % + % Make the characters 128-255 be printing characters. {% - \count 1=128 + \count1=128 \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi + \catcode\count1=\other + \advance\count1 by 1 + \ifnum \count1<256 \loop \fi }% }% % - % Turn off \ as an escape so we do not lose on - % entries which were dumped with control sequences in their names. - % For example, @xrdef{$\leq $-fun}{page ...} made by @defun ^^ - % Reference to such entries still does not work the way one would wish, - % but at least they do not bomb out when the aux file is read in. - \catcode`\\=\other - % - % @ is our escape character in .aux files. + % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 - % - \openin 1 \jobname.aux - \ifeof 1 \else - \closein 1 - \input \jobname.aux - \global\havexrefstrue - \global\warnedobstrue - \fi - % Open the new aux file. TeX will close it automatically at exit. - \openout\auxfile=\jobname.aux +} + +\def\readdatafile#1{% +\begingroup + \setupdatafile + \input\jobname.#1 \endgroup} -% Footnotes. +\message{insertions,} +% including footnotes. \newcount \footnoteno @@ -6114,19 +7488,19 @@ width0pt\relax} \fi % @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment -\let\ptexfootnote=\footnote - {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% + \let\indent=\ptexindent + \let\noindent=\ptexnoindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi + \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip @@ -6137,17 +7511,12 @@ width0pt\relax} \fi % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % -% Oh yes, they do; otherwise, @ifset and anything else that uses -% \parseargline fail inside footnotes because the tokens are fixed when +% Oh yes, they do; otherwise, @ifset (and anything else that uses +% \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % -% The start of the footnote looks usually like this: -\gdef\startfootins{\insert\footins\bgroup} -% -% ... but this macro is redefined inside @multitable. -% \gdef\dofootnote{% - \startfootins + \insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. @@ -6183,40 +7552,66 @@ width0pt\relax} \fi } }%end \catcode `\@=11 -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). +% In case a @footnote appears in a vbox, save the footnote text and create +% the real \insert just after the vbox finished. Otherwise, the insertion +% would be lost. +% Similarly, if a @footnote appears inside an alignment, save the footnote +% text to a box and make the \insert when a row of the table is finished. +% And the same can be done for other insert classes. --kasal, 16nov03. + +% Replace the \insert primitive by a cheating macro. +% Deeper inside, just make sure that the saved insertions are not spilled +% out prematurely. % -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% +\def\startsavinginserts{% + \ifx \insert\ptexinsert + \let\insert\saveinsert + \else + \let\checkinserts\relax + \fi } -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). +% This \insert replacement works for both \insert\footins{foo} and +% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % -\def\finalout{\overfullrule=0pt} +\def\saveinsert#1{% + \edef\next{\noexpand\savetobox \makeSAVEname#1}% + \afterassignment\next + % swallow the left brace + \let\temp = +} +\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} +\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} + +\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} + +\def\placesaveins#1{% + \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname + {\box#1}% +} + +% eat @SAVE -- beware, all of them have catcode \other: +{ + \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) + \gdef\gobblesave @SAVE{} +} + +% initialization: +\def\newsaveins #1{% + \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% + \next +} +\def\newsaveinsX #1{% + \csname newbox\endcsname #1% + \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts + \checksaveins #1}% +} + +% initialize: +\let\checkinserts\empty +\newsaveins\footins +\newsaveins\margin + % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. @@ -6226,12 +7621,12 @@ width0pt\relax} \fi % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else - \closein 1 % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi +\closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf @@ -6264,15 +7659,19 @@ width0pt\relax} \fi % If the image is by itself, center it. \ifvmode \imagevmodetrue - \nobreak\bigskip + \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space - % above and below. + % above and below. \nobreak\vskip\parskip \nobreak - \line\bgroup\hss \fi % + % Leave vertical mode so that indentation from an enclosing + % environment such as @quotation is respected. On the other hand, if + % it's at the top level, we don't want the normal paragraph indentation. + \noindent + % % Output the image. \ifpdf \dopdfimage{#1}{#2}{#3}% @@ -6283,45 +7682,1173 @@ width0pt\relax} \fi \epsfbox{#1.eps}% \fi % - \ifimagevmode \hss \egroup \bigbreak \fi % space after the image + \ifimagevmode \medskip \fi % space after the standalone image \endgroup} +% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, +% etc. We don't actually implement floating yet, we always include the +% float "here". But it seemed the best name for the future. +% +\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} + +% There may be a space before second and/or third parameter; delete it. +\def\eatcommaspace#1, {#1,} + +% #1 is the optional FLOATTYPE, the text label for this float, typically +% "Figure", "Table", "Example", etc. Can't contain commas. If omitted, +% this float will not be numbered and cannot be referred to. +% +% #2 is the optional xref label. Also must be present for the float to +% be referable. +% +% #3 is the optional positioning argument; for now, it is ignored. It +% will somehow specify the positions allowed to float to (here, top, bottom). +% +% We keep a separate counter for each FLOATTYPE, which we reset at each +% chapter-level command. +\let\resetallfloatnos=\empty +% +\def\dofloat#1,#2,#3,#4\finish{% + \let\thiscaption=\empty + \let\thisshortcaption=\empty + % + % don't lose footnotes inside @float. + % + % BEWARE: when the floats start float, we have to issue warning whenever an + % insert appears inside a float which could possibly float. --kasal, 26may04 + % + \startsavinginserts + % + % We can't be used inside a paragraph. + \par + % + \vtop\bgroup + \def\floattype{#1}% + \def\floatlabel{#2}% + \def\floatloc{#3}% we do nothing with this yet. + % + \ifx\floattype\empty + \let\safefloattype=\empty + \else + {% + % the floattype might have accents or other special characters, + % but we need to use it in a control sequence name. + \indexnofonts + \turnoffactive + \xdef\safefloattype{\floattype}% + }% + \fi + % + % If label is given but no type, we handle that as the empty type. + \ifx\floatlabel\empty \else + % We want each FLOATTYPE to be numbered separately (Figure 1, + % Table 1, Figure 2, ...). (And if no label, no number.) + % + \expandafter\getfloatno\csname\safefloattype floatno\endcsname + \global\advance\floatno by 1 + % + {% + % This magic value for \lastsection is output by \setref as the + % XREFLABEL-title value. \xrefX uses it to distinguish float + % labels (which have a completely different output format) from + % node and anchor labels. And \xrdef uses it to construct the + % lists of floats. + % + \edef\lastsection{\floatmagic=\safefloattype}% + \setref{\floatlabel}{Yfloat}% + }% + \fi + % + % start with \parskip glue, I guess. + \vskip\parskip + % + % Don't suppress indentation if a float happens to start a section. + \restorefirstparagraphindent +} + +% we have these possibilities: +% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap +% @float Foo,lbl & no caption: Foo 1.1 +% @float Foo & @caption{Cap}: Foo: Cap +% @float Foo & no caption: Foo +% @float ,lbl & Caption{Cap}: 1.1: Cap +% @float ,lbl & no caption: 1.1 +% @float & @caption{Cap}: Cap +% @float & no caption: +% +\def\Efloat{% + \let\floatident = \empty + % + % In all cases, if we have a float type, it comes first. + \ifx\floattype\empty \else \def\floatident{\floattype}\fi + % + % If we have an xref label, the number comes next. + \ifx\floatlabel\empty \else + \ifx\floattype\empty \else % if also had float type, need tie first. + \appendtomacro\floatident{\tie}% + \fi + % the number. + \appendtomacro\floatident{\chaplevelprefix\the\floatno}% + \fi + % + % Start the printed caption with what we've constructed in + % \floatident, but keep it separate; we need \floatident again. + \let\captionline = \floatident + % + \ifx\thiscaption\empty \else + \ifx\floatident\empty \else + \appendtomacro\captionline{: }% had ident, so need a colon between + \fi + % + % caption text. + \appendtomacro\captionline{\scanexp\thiscaption}% + \fi + % + % If we have anything to print, print it, with space before. + % Eventually this needs to become an \insert. + \ifx\captionline\empty \else + \vskip.5\parskip + \captionline + % + % Space below caption. + \vskip\parskip + \fi + % + % If have an xref label, write the list of floats info. Do this + % after the caption, to avoid chance of it being a breakpoint. + \ifx\floatlabel\empty \else + % Write the text that goes in the lof to the aux file as + % \floatlabel-lof. Besides \floatident, we include the short + % caption if specified, else the full caption if specified, else nothing. + {% + \atdummies + % + % since we read the caption text in the macro world, where ^^M + % is turned into a normal character, we have to scan it back, so + % we don't write the literal three characters "^^M" into the aux file. + \scanexp{% + \xdef\noexpand\gtemp{% + \ifx\thisshortcaption\empty + \thiscaption + \else + \thisshortcaption + \fi + }% + }% + \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident + \ifx\gtemp\empty \else : \gtemp \fi}}% + }% + \fi + \egroup % end of \vtop + % + % place the captured inserts + % + % BEWARE: when the floats start floating, we have to issue warning + % whenever an insert appears inside a float which could possibly + % float. --kasal, 26may04 + % + \checkinserts +} + +% Append the tokens #2 to the definition of macro #1, not expanding either. +% +\def\appendtomacro#1#2{% + \expandafter\def\expandafter#1\expandafter{#1#2}% +} + +% @caption, @shortcaption +% +\def\caption{\docaption\thiscaption} +\def\shortcaption{\docaption\thisshortcaption} +\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} +\def\defcaption#1#2{\egroup \def#1{#2}} + +% The parameter is the control sequence identifying the counter we are +% going to use. Create it if it doesn't exist and assign it to \floatno. +\def\getfloatno#1{% + \ifx#1\relax + % Haven't seen this figure type before. + \csname newcount\endcsname #1% + % + % Remember to reset this floatno at the next chap. + \expandafter\gdef\expandafter\resetallfloatnos + \expandafter{\resetallfloatnos #1=0 }% + \fi + \let\floatno#1% +} + +% \setref calls this to get the XREFLABEL-snt value. We want an @xref +% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we +% first read the @float command. +% +\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% + +% Magic string used for the XREFLABEL-title value, so \xrefX can +% distinguish floats from other xref types. +\def\floatmagic{!!float!!} + +% #1 is the control sequence we are passed; we expand into a conditional +% which is true if #1 represents a float ref. That is, the magic +% \lastsection value which we \setref above. +% +\def\iffloat#1{\expandafter\doiffloat#1==\finish} +% +% #1 is (maybe) the \floatmagic string. If so, #2 will be the +% (safe) float type for this float. We set \iffloattype to #2. +% +\def\doiffloat#1=#2=#3\finish{% + \def\temp{#1}% + \def\iffloattype{#2}% + \ifx\temp\floatmagic +} + +% @listoffloats FLOATTYPE - print a list of floats like a table of contents. +% +\parseargdef\listoffloats{% + \def\floattype{#1}% floattype + {% + % the floattype might have accents or other special characters, + % but we need to use it in a control sequence name. + \indexnofonts + \turnoffactive + \xdef\safefloattype{\floattype}% + }% + % + % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. + \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax + \ifhavexrefs + % if the user said @listoffloats foo but never @float foo. + \message{\linenumber No `\safefloattype' floats to list.}% + \fi + \else + \begingroup + \leftskip=\tocindent % indent these entries like a toc + \let\do=\listoffloatsdo + \csname floatlist\safefloattype\endcsname + \endgroup + \fi +} + +% This is called on each entry in a list of floats. We're passed the +% xref label, in the form LABEL-title, which is how we save it in the +% aux file. We strip off the -title and look up \XRLABEL-lof, which +% has the text we're supposed to typeset here. +% +% Figures without xref labels will not be included in the list (since +% they won't appear in the aux file). +% +\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} +\def\listoffloatsdoentry#1-title\finish{{% + % Can't fully expand XR#1-lof because it can contain anything. Just + % pass the control sequence. On the other hand, XR#1-pg is just the + % page number, and we want to fully expand that so we can get a link + % in pdf output. + \toksA = \expandafter{\csname XR#1-lof\endcsname}% + % + % use the same \entry macro we use to generate the TOC and index. + \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% + \writeentry +}} + + \message{localization,} -% and i18n. -% @documentlanguage is usually given very early, just after -% @setfilename. If done too late, it may not override everything -% properly. Single argument is the language abbreviation. -% It would be nice if we could set up a hyphenation file here. +% For single-language documents, @documentlanguage is usually given very +% early, just after @documentencoding. Single argument is the language +% (de) or locale (de_DE) abbreviation. % -\def\documentlanguage{\parsearg\dodocumentlanguage} -\def\dodocumentlanguage#1{% +{ + \catcode`\_ = \active + \globaldefs=1 +\parseargdef\documentlanguage{\begingroup + \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. + % Read the file by the name they passed if it exists. + \openin 1 txi-#1.tex + \ifeof 1 + \documentlanguagetrywithoutunderscore{#1_\finish}% + \else + \globaldefs = 1 % everything in the txi-LL files needs to persist + \input txi-#1.tex + \fi + \closein 1 + \endgroup % end raw TeX +\endgroup} +} +% +% If they passed de_DE, and txi-de_DE.tex doesn't exist, +% try txi-de.tex. +% +\def\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex - \ifeof1 + \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% - \let\temp = \relax \else - \def\temp{\input txi-#1.tex }% + \input txi-#1.tex \fi - \temp - \endgroup + \closein 1 } +% \newhelp\nolanghelp{The given language definition file cannot be found or -is empty. Maybe you need to install it? In the current directory -should work if nowhere else does.} +is empty. Maybe you need to install it? Putting it in the current +directory should work if nowhere else does.} + +% This macro is called from txi-??.tex files; the first argument is the +% \language name to set (without the "\lang@" prefix), the second and +% third args are \{left,right}hyphenmin. +% +% The language names to pass are determined when the format is built. +% See the etex.log file created at that time, e.g., +% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. +% +% With TeX Live 2008, etex now includes hyphenation patterns for all +% available languages. This means we can support hyphenation in +% Texinfo, at least to some extent. (This still doesn't solve the +% accented characters problem.) +% +\catcode`@=11 +\def\txisetlanguage#1#2#3{% + % do not set the language if the name is undefined in the current TeX. + \expandafter\ifx\csname lang@#1\endcsname \relax + \message{no patterns for #1}% + \else + \global\language = \csname lang@#1\endcsname + \fi + % but there is no harm in adjusting the hyphenmin values regardless. + \global\lefthyphenmin = #2\relax + \global\righthyphenmin = #3\relax +} + +% Helpers for encodings. +% Set the catcode of characters 128 through 255 to the specified number. +% +\def\setnonasciicharscatcode#1{% + \count255=128 + \loop\ifnum\count255<256 + \global\catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} +\def\setnonasciicharscatcodenonglobal#1{% + \count255=128 + \loop\ifnum\count255<256 + \catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} -% @documentencoding should change something in TeX eventually, most -% likely, but for now just recognize it. -\let\documentencoding = \comment +% @documentencoding sets the definition of non-ASCII characters +% according to the specified encoding. +% +\parseargdef\documentencoding{% + % Encoding being declared for the document. + \def\declaredencoding{\csname #1.enc\endcsname}% + % + % Supported encodings: names converted to tokens in order to be able + % to compare them with \ifx. + \def\ascii{\csname US-ASCII.enc\endcsname}% + \def\latnine{\csname ISO-8859-15.enc\endcsname}% + \def\latone{\csname ISO-8859-1.enc\endcsname}% + \def\lattwo{\csname ISO-8859-2.enc\endcsname}% + \def\utfeight{\csname UTF-8.enc\endcsname}% + % + \ifx \declaredencoding \ascii + \asciichardefs + % + \else \ifx \declaredencoding \lattwo + \setnonasciicharscatcode\active + \lattwochardefs + % + \else \ifx \declaredencoding \latone + \setnonasciicharscatcode\active + \latonechardefs + % + \else \ifx \declaredencoding \latnine + \setnonasciicharscatcode\active + \latninechardefs + % + \else \ifx \declaredencoding \utfeight + \setnonasciicharscatcode\active + \utfeightchardefs + % + \else + \message{Unknown document encoding #1, ignoring.}% + % + \fi % utfeight + \fi % latnine + \fi % latone + \fi % lattwo + \fi % ascii +} +% A message to be logged when using a character that isn't available +% the default font encoding (OT1). +% +\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} + +% Take account of \c (plain) vs. \, (Texinfo) difference. +\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} + +% First, make active non-ASCII characters in order for them to be +% correctly categorized when TeX reads the replacement text of +% macros containing the character definitions. +\setnonasciicharscatcode\active +% +% Latin1 (ISO-8859-1) character definitions. +\def\latonechardefs{% + \gdef^^a0{~} + \gdef^^a1{\exclamdown} + \gdef^^a2{\missingcharmsg{CENT SIGN}} + \gdef^^a3{{\pounds}} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\missingcharmsg{YEN SIGN}} + \gdef^^a6{\missingcharmsg{BROKEN BAR}} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\copyright} + \gdef^^aa{\ordf} + \gdef^^ab{\guillemetleft} + \gdef^^ac{$\lnot$} + \gdef^^ad{\-} + \gdef^^ae{\registeredsymbol} + \gdef^^af{\={}} + % + \gdef^^b0{\textdegree} + \gdef^^b1{$\pm$} + \gdef^^b2{$^2$} + \gdef^^b3{$^3$} + \gdef^^b4{\'{}} + \gdef^^b5{$\mu$} + \gdef^^b6{\P} + % + \gdef^^b7{$^.$} + \gdef^^b8{\cedilla\ } + \gdef^^b9{$^1$} + \gdef^^ba{\ordm} + % + \gdef^^bb{\guilletright} + \gdef^^bc{$1\over4$} + \gdef^^bd{$1\over2$} + \gdef^^be{$3\over4$} + \gdef^^bf{\questiondown} + % + \gdef^^c0{\`A} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\~A} + \gdef^^c4{\"A} + \gdef^^c5{\ringaccent A} + \gdef^^c6{\AE} + \gdef^^c7{\cedilla C} + \gdef^^c8{\`E} + \gdef^^c9{\'E} + \gdef^^ca{\^E} + \gdef^^cb{\"E} + \gdef^^cc{\`I} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\"I} + % + \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} + \gdef^^d1{\~N} + \gdef^^d2{\`O} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\~O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\O} + \gdef^^d9{\`U} + \gdef^^da{\'U} + \gdef^^db{\^U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} + \gdef^^df{\ss} + % + \gdef^^e0{\`a} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\~a} + \gdef^^e4{\"a} + \gdef^^e5{\ringaccent a} + \gdef^^e6{\ae} + \gdef^^e7{\cedilla c} + \gdef^^e8{\`e} + \gdef^^e9{\'e} + \gdef^^ea{\^e} + \gdef^^eb{\"e} + \gdef^^ec{\`{\dotless i}} + \gdef^^ed{\'{\dotless i}} + \gdef^^ee{\^{\dotless i}} + \gdef^^ef{\"{\dotless i}} + % + \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} + \gdef^^f1{\~n} + \gdef^^f2{\`o} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\~o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\o} + \gdef^^f9{\`u} + \gdef^^fa{\'u} + \gdef^^fb{\^u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} + \gdef^^ff{\"y} +} + +% Latin9 (ISO-8859-15) encoding character definitions. +\def\latninechardefs{% + % Encoding is almost identical to Latin1. + \latonechardefs + % + \gdef^^a4{\euro} + \gdef^^a6{\v S} + \gdef^^a8{\v s} + \gdef^^b4{\v Z} + \gdef^^b8{\v z} + \gdef^^bc{\OE} + \gdef^^bd{\oe} + \gdef^^be{\"Y} +} + +% Latin2 (ISO-8859-2) character definitions. +\def\lattwochardefs{% + \gdef^^a0{~} + \gdef^^a1{\ogonek{A}} + \gdef^^a2{\u{}} + \gdef^^a3{\L} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\v L} + \gdef^^a6{\'S} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\v S} + \gdef^^aa{\cedilla S} + \gdef^^ab{\v T} + \gdef^^ac{\'Z} + \gdef^^ad{\-} + \gdef^^ae{\v Z} + \gdef^^af{\dotaccent Z} + % + \gdef^^b0{\textdegree} + \gdef^^b1{\ogonek{a}} + \gdef^^b2{\ogonek{ }} + \gdef^^b3{\l} + \gdef^^b4{\'{}} + \gdef^^b5{\v l} + \gdef^^b6{\'s} + \gdef^^b7{\v{}} + \gdef^^b8{\cedilla\ } + \gdef^^b9{\v s} + \gdef^^ba{\cedilla s} + \gdef^^bb{\v t} + \gdef^^bc{\'z} + \gdef^^bd{\H{}} + \gdef^^be{\v z} + \gdef^^bf{\dotaccent z} + % + \gdef^^c0{\'R} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\u A} + \gdef^^c4{\"A} + \gdef^^c5{\'L} + \gdef^^c6{\'C} + \gdef^^c7{\cedilla C} + \gdef^^c8{\v C} + \gdef^^c9{\'E} + \gdef^^ca{\ogonek{E}} + \gdef^^cb{\"E} + \gdef^^cc{\v E} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\v D} + % + \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} + \gdef^^d1{\'N} + \gdef^^d2{\v N} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\H O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\v R} + \gdef^^d9{\ringaccent U} + \gdef^^da{\'U} + \gdef^^db{\H U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\cedilla T} + \gdef^^df{\ss} + % + \gdef^^e0{\'r} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\u a} + \gdef^^e4{\"a} + \gdef^^e5{\'l} + \gdef^^e6{\'c} + \gdef^^e7{\cedilla c} + \gdef^^e8{\v c} + \gdef^^e9{\'e} + \gdef^^ea{\ogonek{e}} + \gdef^^eb{\"e} + \gdef^^ec{\v e} + \gdef^^ed{\'\i} + \gdef^^ee{\^\i} + \gdef^^ef{\v d} + % + \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} + \gdef^^f1{\'n} + \gdef^^f2{\v n} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\H o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\v r} + \gdef^^f9{\ringaccent u} + \gdef^^fa{\'u} + \gdef^^fb{\H u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\cedilla t} + \gdef^^ff{\dotaccent{}} +} + +% UTF-8 character definitions. +% +% This code to support UTF-8 is based on LaTeX's utf8.def, with some +% changes for Texinfo conventions. It is included here under the GPL by +% permission from Frank Mittelbach and the LaTeX team. +% +\newcount\countUTFx +\newcount\countUTFy +\newcount\countUTFz -% Page size parameters. +\gdef\UTFviiiTwoOctets#1#2{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\endcsname} +% +\gdef\UTFviiiThreeOctets#1#2#3{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % +\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} + +\gdef\UTFviiiDefined#1{% + \ifx #1\relax + \message{\linenumber Unicode char \string #1 not defined for Texinfo}% + \else + \expandafter #1% + \fi +} + +\begingroup + \catcode`\~13 + \catcode`\"12 + + \def\UTFviiiLoop{% + \global\catcode\countUTFx\active + \uccode`\~\countUTFx + \uppercase\expandafter{\UTFviiiTmp}% + \advance\countUTFx by 1 + \ifnum\countUTFx < \countUTFy + \expandafter\UTFviiiLoop + \fi} + + \countUTFx = "C2 + \countUTFy = "E0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiTwoOctets\string~}} + \UTFviiiLoop + + \countUTFx = "E0 + \countUTFy = "F0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiThreeOctets\string~}} + \UTFviiiLoop + + \countUTFx = "F0 + \countUTFy = "F4 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiFourOctets\string~}} + \UTFviiiLoop +\endgroup + +\begingroup + \catcode`\"=12 + \catcode`\<=12 + \catcode`\.=12 + \catcode`\,=12 + \catcode`\;=12 + \catcode`\!=12 + \catcode`\~=13 + + \gdef\DeclareUnicodeCharacter#1#2{% + \countUTFz = "#1\relax + \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% + \begingroup + \parseXMLCharref + \def\UTFviiiTwoOctets##1##2{% + \csname u8:##1\string ##2\endcsname}% + \def\UTFviiiThreeOctets##1##2##3{% + \csname u8:##1\string ##2\string ##3\endcsname}% + \def\UTFviiiFourOctets##1##2##3##4{% + \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \gdef\UTFviiiTmp{#2}% + \endgroup} + + \gdef\parseXMLCharref{% + \ifnum\countUTFz < "A0\relax + \errhelp = \EMsimple + \errmessage{Cannot define Unicode char value < 00A0}% + \else\ifnum\countUTFz < "800\relax + \parseUTFviiiA,% + \parseUTFviiiB C\UTFviiiTwoOctets.,% + \else\ifnum\countUTFz < "10000\relax + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% + \else + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiA!% + \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% + \fi\fi\fi + } + + \gdef\parseUTFviiiA#1{% + \countUTFx = \countUTFz + \divide\countUTFz by 64 + \countUTFy = \countUTFz + \multiply\countUTFz by 64 + \advance\countUTFx by -\countUTFz + \advance\countUTFx by 128 + \uccode `#1\countUTFx + \countUTFz = \countUTFy} + + \gdef\parseUTFviiiB#1#2#3#4{% + \advance\countUTFz by "#10\relax + \uccode `#3\countUTFz + \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} +\endgroup + +\def\utfeightchardefs{% + \DeclareUnicodeCharacter{00A0}{\tie} + \DeclareUnicodeCharacter{00A1}{\exclamdown} + \DeclareUnicodeCharacter{00A3}{\pounds} + \DeclareUnicodeCharacter{00A8}{\"{ }} + \DeclareUnicodeCharacter{00A9}{\copyright} + \DeclareUnicodeCharacter{00AA}{\ordf} + \DeclareUnicodeCharacter{00AB}{\guillemetleft} + \DeclareUnicodeCharacter{00AD}{\-} + \DeclareUnicodeCharacter{00AE}{\registeredsymbol} + \DeclareUnicodeCharacter{00AF}{\={ }} + + \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} + \DeclareUnicodeCharacter{00B4}{\'{ }} + \DeclareUnicodeCharacter{00B8}{\cedilla{ }} + \DeclareUnicodeCharacter{00BA}{\ordm} + \DeclareUnicodeCharacter{00BB}{\guillemetright} + \DeclareUnicodeCharacter{00BF}{\questiondown} + + \DeclareUnicodeCharacter{00C0}{\`A} + \DeclareUnicodeCharacter{00C1}{\'A} + \DeclareUnicodeCharacter{00C2}{\^A} + \DeclareUnicodeCharacter{00C3}{\~A} + \DeclareUnicodeCharacter{00C4}{\"A} + \DeclareUnicodeCharacter{00C5}{\AA} + \DeclareUnicodeCharacter{00C6}{\AE} + \DeclareUnicodeCharacter{00C7}{\cedilla{C}} + \DeclareUnicodeCharacter{00C8}{\`E} + \DeclareUnicodeCharacter{00C9}{\'E} + \DeclareUnicodeCharacter{00CA}{\^E} + \DeclareUnicodeCharacter{00CB}{\"E} + \DeclareUnicodeCharacter{00CC}{\`I} + \DeclareUnicodeCharacter{00CD}{\'I} + \DeclareUnicodeCharacter{00CE}{\^I} + \DeclareUnicodeCharacter{00CF}{\"I} + + \DeclareUnicodeCharacter{00D1}{\~N} + \DeclareUnicodeCharacter{00D2}{\`O} + \DeclareUnicodeCharacter{00D3}{\'O} + \DeclareUnicodeCharacter{00D4}{\^O} + \DeclareUnicodeCharacter{00D5}{\~O} + \DeclareUnicodeCharacter{00D6}{\"O} + \DeclareUnicodeCharacter{00D8}{\O} + \DeclareUnicodeCharacter{00D9}{\`U} + \DeclareUnicodeCharacter{00DA}{\'U} + \DeclareUnicodeCharacter{00DB}{\^U} + \DeclareUnicodeCharacter{00DC}{\"U} + \DeclareUnicodeCharacter{00DD}{\'Y} + \DeclareUnicodeCharacter{00DF}{\ss} + + \DeclareUnicodeCharacter{00E0}{\`a} + \DeclareUnicodeCharacter{00E1}{\'a} + \DeclareUnicodeCharacter{00E2}{\^a} + \DeclareUnicodeCharacter{00E3}{\~a} + \DeclareUnicodeCharacter{00E4}{\"a} + \DeclareUnicodeCharacter{00E5}{\aa} + \DeclareUnicodeCharacter{00E6}{\ae} + \DeclareUnicodeCharacter{00E7}{\cedilla{c}} + \DeclareUnicodeCharacter{00E8}{\`e} + \DeclareUnicodeCharacter{00E9}{\'e} + \DeclareUnicodeCharacter{00EA}{\^e} + \DeclareUnicodeCharacter{00EB}{\"e} + \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} + \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} + \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} + \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} + + \DeclareUnicodeCharacter{00F1}{\~n} + \DeclareUnicodeCharacter{00F2}{\`o} + \DeclareUnicodeCharacter{00F3}{\'o} + \DeclareUnicodeCharacter{00F4}{\^o} + \DeclareUnicodeCharacter{00F5}{\~o} + \DeclareUnicodeCharacter{00F6}{\"o} + \DeclareUnicodeCharacter{00F8}{\o} + \DeclareUnicodeCharacter{00F9}{\`u} + \DeclareUnicodeCharacter{00FA}{\'u} + \DeclareUnicodeCharacter{00FB}{\^u} + \DeclareUnicodeCharacter{00FC}{\"u} + \DeclareUnicodeCharacter{00FD}{\'y} + \DeclareUnicodeCharacter{00FF}{\"y} + + \DeclareUnicodeCharacter{0100}{\=A} + \DeclareUnicodeCharacter{0101}{\=a} + \DeclareUnicodeCharacter{0102}{\u{A}} + \DeclareUnicodeCharacter{0103}{\u{a}} + \DeclareUnicodeCharacter{0104}{\ogonek{A}} + \DeclareUnicodeCharacter{0105}{\ogonek{a}} + \DeclareUnicodeCharacter{0106}{\'C} + \DeclareUnicodeCharacter{0107}{\'c} + \DeclareUnicodeCharacter{0108}{\^C} + \DeclareUnicodeCharacter{0109}{\^c} + \DeclareUnicodeCharacter{0118}{\ogonek{E}} + \DeclareUnicodeCharacter{0119}{\ogonek{e}} + \DeclareUnicodeCharacter{010A}{\dotaccent{C}} + \DeclareUnicodeCharacter{010B}{\dotaccent{c}} + \DeclareUnicodeCharacter{010C}{\v{C}} + \DeclareUnicodeCharacter{010D}{\v{c}} + \DeclareUnicodeCharacter{010E}{\v{D}} + + \DeclareUnicodeCharacter{0112}{\=E} + \DeclareUnicodeCharacter{0113}{\=e} + \DeclareUnicodeCharacter{0114}{\u{E}} + \DeclareUnicodeCharacter{0115}{\u{e}} + \DeclareUnicodeCharacter{0116}{\dotaccent{E}} + \DeclareUnicodeCharacter{0117}{\dotaccent{e}} + \DeclareUnicodeCharacter{011A}{\v{E}} + \DeclareUnicodeCharacter{011B}{\v{e}} + \DeclareUnicodeCharacter{011C}{\^G} + \DeclareUnicodeCharacter{011D}{\^g} + \DeclareUnicodeCharacter{011E}{\u{G}} + \DeclareUnicodeCharacter{011F}{\u{g}} + + \DeclareUnicodeCharacter{0120}{\dotaccent{G}} + \DeclareUnicodeCharacter{0121}{\dotaccent{g}} + \DeclareUnicodeCharacter{0124}{\^H} + \DeclareUnicodeCharacter{0125}{\^h} + \DeclareUnicodeCharacter{0128}{\~I} + \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} + \DeclareUnicodeCharacter{012A}{\=I} + \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} + \DeclareUnicodeCharacter{012C}{\u{I}} + \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} + + \DeclareUnicodeCharacter{0130}{\dotaccent{I}} + \DeclareUnicodeCharacter{0131}{\dotless{i}} + \DeclareUnicodeCharacter{0132}{IJ} + \DeclareUnicodeCharacter{0133}{ij} + \DeclareUnicodeCharacter{0134}{\^J} + \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} + \DeclareUnicodeCharacter{0139}{\'L} + \DeclareUnicodeCharacter{013A}{\'l} + + \DeclareUnicodeCharacter{0141}{\L} + \DeclareUnicodeCharacter{0142}{\l} + \DeclareUnicodeCharacter{0143}{\'N} + \DeclareUnicodeCharacter{0144}{\'n} + \DeclareUnicodeCharacter{0147}{\v{N}} + \DeclareUnicodeCharacter{0148}{\v{n}} + \DeclareUnicodeCharacter{014C}{\=O} + \DeclareUnicodeCharacter{014D}{\=o} + \DeclareUnicodeCharacter{014E}{\u{O}} + \DeclareUnicodeCharacter{014F}{\u{o}} + + \DeclareUnicodeCharacter{0150}{\H{O}} + \DeclareUnicodeCharacter{0151}{\H{o}} + \DeclareUnicodeCharacter{0152}{\OE} + \DeclareUnicodeCharacter{0153}{\oe} + \DeclareUnicodeCharacter{0154}{\'R} + \DeclareUnicodeCharacter{0155}{\'r} + \DeclareUnicodeCharacter{0158}{\v{R}} + \DeclareUnicodeCharacter{0159}{\v{r}} + \DeclareUnicodeCharacter{015A}{\'S} + \DeclareUnicodeCharacter{015B}{\'s} + \DeclareUnicodeCharacter{015C}{\^S} + \DeclareUnicodeCharacter{015D}{\^s} + \DeclareUnicodeCharacter{015E}{\cedilla{S}} + \DeclareUnicodeCharacter{015F}{\cedilla{s}} + + \DeclareUnicodeCharacter{0160}{\v{S}} + \DeclareUnicodeCharacter{0161}{\v{s}} + \DeclareUnicodeCharacter{0162}{\cedilla{t}} + \DeclareUnicodeCharacter{0163}{\cedilla{T}} + \DeclareUnicodeCharacter{0164}{\v{T}} + + \DeclareUnicodeCharacter{0168}{\~U} + \DeclareUnicodeCharacter{0169}{\~u} + \DeclareUnicodeCharacter{016A}{\=U} + \DeclareUnicodeCharacter{016B}{\=u} + \DeclareUnicodeCharacter{016C}{\u{U}} + \DeclareUnicodeCharacter{016D}{\u{u}} + \DeclareUnicodeCharacter{016E}{\ringaccent{U}} + \DeclareUnicodeCharacter{016F}{\ringaccent{u}} + + \DeclareUnicodeCharacter{0170}{\H{U}} + \DeclareUnicodeCharacter{0171}{\H{u}} + \DeclareUnicodeCharacter{0174}{\^W} + \DeclareUnicodeCharacter{0175}{\^w} + \DeclareUnicodeCharacter{0176}{\^Y} + \DeclareUnicodeCharacter{0177}{\^y} + \DeclareUnicodeCharacter{0178}{\"Y} + \DeclareUnicodeCharacter{0179}{\'Z} + \DeclareUnicodeCharacter{017A}{\'z} + \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} + \DeclareUnicodeCharacter{017C}{\dotaccent{z}} + \DeclareUnicodeCharacter{017D}{\v{Z}} + \DeclareUnicodeCharacter{017E}{\v{z}} + + \DeclareUnicodeCharacter{01C4}{D\v{Z}} + \DeclareUnicodeCharacter{01C5}{D\v{z}} + \DeclareUnicodeCharacter{01C6}{d\v{z}} + \DeclareUnicodeCharacter{01C7}{LJ} + \DeclareUnicodeCharacter{01C8}{Lj} + \DeclareUnicodeCharacter{01C9}{lj} + \DeclareUnicodeCharacter{01CA}{NJ} + \DeclareUnicodeCharacter{01CB}{Nj} + \DeclareUnicodeCharacter{01CC}{nj} + \DeclareUnicodeCharacter{01CD}{\v{A}} + \DeclareUnicodeCharacter{01CE}{\v{a}} + \DeclareUnicodeCharacter{01CF}{\v{I}} + + \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} + \DeclareUnicodeCharacter{01D1}{\v{O}} + \DeclareUnicodeCharacter{01D2}{\v{o}} + \DeclareUnicodeCharacter{01D3}{\v{U}} + \DeclareUnicodeCharacter{01D4}{\v{u}} + + \DeclareUnicodeCharacter{01E2}{\={\AE}} + \DeclareUnicodeCharacter{01E3}{\={\ae}} + \DeclareUnicodeCharacter{01E6}{\v{G}} + \DeclareUnicodeCharacter{01E7}{\v{g}} + \DeclareUnicodeCharacter{01E8}{\v{K}} + \DeclareUnicodeCharacter{01E9}{\v{k}} + + \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} + \DeclareUnicodeCharacter{01F1}{DZ} + \DeclareUnicodeCharacter{01F2}{Dz} + \DeclareUnicodeCharacter{01F3}{dz} + \DeclareUnicodeCharacter{01F4}{\'G} + \DeclareUnicodeCharacter{01F5}{\'g} + \DeclareUnicodeCharacter{01F8}{\`N} + \DeclareUnicodeCharacter{01F9}{\`n} + \DeclareUnicodeCharacter{01FC}{\'{\AE}} + \DeclareUnicodeCharacter{01FD}{\'{\ae}} + \DeclareUnicodeCharacter{01FE}{\'{\O}} + \DeclareUnicodeCharacter{01FF}{\'{\o}} + + \DeclareUnicodeCharacter{021E}{\v{H}} + \DeclareUnicodeCharacter{021F}{\v{h}} + + \DeclareUnicodeCharacter{0226}{\dotaccent{A}} + \DeclareUnicodeCharacter{0227}{\dotaccent{a}} + \DeclareUnicodeCharacter{0228}{\cedilla{E}} + \DeclareUnicodeCharacter{0229}{\cedilla{e}} + \DeclareUnicodeCharacter{022E}{\dotaccent{O}} + \DeclareUnicodeCharacter{022F}{\dotaccent{o}} + + \DeclareUnicodeCharacter{0232}{\=Y} + \DeclareUnicodeCharacter{0233}{\=y} + \DeclareUnicodeCharacter{0237}{\dotless{j}} + + \DeclareUnicodeCharacter{02DB}{\ogonek{ }} + + \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} + \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} + \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} + \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} + \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} + \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} + \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} + \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} + \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} + \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} + \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} + \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} + + \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} + \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} + + \DeclareUnicodeCharacter{1E20}{\=G} + \DeclareUnicodeCharacter{1E21}{\=g} + \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} + \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} + \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} + \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} + \DeclareUnicodeCharacter{1E26}{\"H} + \DeclareUnicodeCharacter{1E27}{\"h} + + \DeclareUnicodeCharacter{1E30}{\'K} + \DeclareUnicodeCharacter{1E31}{\'k} + \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} + \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} + \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} + \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} + \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} + \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} + \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} + \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} + \DeclareUnicodeCharacter{1E3E}{\'M} + \DeclareUnicodeCharacter{1E3F}{\'m} + + \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} + \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} + \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} + \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} + \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} + \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} + \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} + \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} + \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} + \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} + + \DeclareUnicodeCharacter{1E54}{\'P} + \DeclareUnicodeCharacter{1E55}{\'p} + \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} + \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} + \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} + \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} + \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} + \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} + \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} + \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} + + \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} + \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} + \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} + \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} + \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} + \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} + \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} + \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} + \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} + \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} + + \DeclareUnicodeCharacter{1E7C}{\~V} + \DeclareUnicodeCharacter{1E7D}{\~v} + \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} + \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} + + \DeclareUnicodeCharacter{1E80}{\`W} + \DeclareUnicodeCharacter{1E81}{\`w} + \DeclareUnicodeCharacter{1E82}{\'W} + \DeclareUnicodeCharacter{1E83}{\'w} + \DeclareUnicodeCharacter{1E84}{\"W} + \DeclareUnicodeCharacter{1E85}{\"w} + \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} + \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} + \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} + \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} + \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} + \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} + \DeclareUnicodeCharacter{1E8C}{\"X} + \DeclareUnicodeCharacter{1E8D}{\"x} + \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} + \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} + + \DeclareUnicodeCharacter{1E90}{\^Z} + \DeclareUnicodeCharacter{1E91}{\^z} + \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} + \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} + \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} + \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} + \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} + \DeclareUnicodeCharacter{1E97}{\"t} + \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} + \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} + + \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} + \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} + + \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} + \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} + \DeclareUnicodeCharacter{1EBC}{\~E} + \DeclareUnicodeCharacter{1EBD}{\~e} + + \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} + \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} + \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} + \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} + + \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} + \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} + + \DeclareUnicodeCharacter{1EF2}{\`Y} + \DeclareUnicodeCharacter{1EF3}{\`y} + \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} + + \DeclareUnicodeCharacter{1EF8}{\~Y} + \DeclareUnicodeCharacter{1EF9}{\~y} + + \DeclareUnicodeCharacter{2013}{--} + \DeclareUnicodeCharacter{2014}{---} + \DeclareUnicodeCharacter{2018}{\quoteleft} + \DeclareUnicodeCharacter{2019}{\quoteright} + \DeclareUnicodeCharacter{201A}{\quotesinglbase} + \DeclareUnicodeCharacter{201C}{\quotedblleft} + \DeclareUnicodeCharacter{201D}{\quotedblright} + \DeclareUnicodeCharacter{201E}{\quotedblbase} + \DeclareUnicodeCharacter{2022}{\bullet} + \DeclareUnicodeCharacter{2026}{\dots} + \DeclareUnicodeCharacter{2039}{\guilsinglleft} + \DeclareUnicodeCharacter{203A}{\guilsinglright} + \DeclareUnicodeCharacter{20AC}{\euro} + + \DeclareUnicodeCharacter{2192}{\expansion} + \DeclareUnicodeCharacter{21D2}{\result} + + \DeclareUnicodeCharacter{2212}{\minus} + \DeclareUnicodeCharacter{2217}{\point} + \DeclareUnicodeCharacter{2261}{\equiv} +}% end of \utfeightchardefs + + +% US-ASCII character definitions. +\def\asciichardefs{% nothing need be done + \relax +} + +% Make non-ASCII characters printable again for compatibility with +% existing Texinfo documents that may use them, even without declaring a +% document encoding. +% +\setnonasciicharscatcode \other + + +\message{formatting,} + \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt @@ -6334,7 +8861,7 @@ should work if nowhere else does.} % Don't be so finicky about underfull hboxes, either. \hbadness = 2000 -% Following George Bush, just get rid of widows and orphans. +% Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 @@ -6352,10 +8879,10 @@ should work if nowhere else does.} \fi } -% Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) -% physical page width. -% +% Parameters in order: 1) textheight; 2) textwidth; +% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; +% 7) physical page height; 8) physical page width. +% % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % @@ -6381,6 +8908,10 @@ should work if nowhere else does.} \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax + % if we don't reset these, they will remain at "1 true in" of + % whatever layout pdftex was dumped with. + \pdfhorigin = 1 true in + \pdfvorigin = 1 true in \fi % \setleading{\textleading} @@ -6395,19 +8926,19 @@ should work if nowhere else does.} \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}% + \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} -% Use @smallbook to reset parameters for 7x9.5 (or so) format. +% Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% - {\voffset}{.25in}% + {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % @@ -6418,12 +8949,30 @@ should work if nowhere else does.} \defbodyindent = .5cm }} +% Use @smallerbook to reset parameters for 6x9 trim size. +% (Just testing, parameters still in flux.) +\def\smallerbook{{\globaldefs = 1 + \parskip = 1.5pt plus 1pt + \textleading = 12pt + % + \internalpagesizes{7.4in}{4.8in}% + {-.2in}{-.4in}% + {0pt}{14pt}% + {9in}{6in}% + % + \lispnarrowing = 0.25in + \tolerance = 700 + \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = .4cm +}} + % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % - % Double-side printing via postscript on Laserjet 4050 + % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then @@ -6433,7 +8982,7 @@ should work if nowhere else does.} % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex - \internalpagesizes{51\baselineskip}{160mm} + \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% @@ -6464,7 +9013,7 @@ should work if nowhere else does.} \tableindent = 12mm }} -% A specific text layout, 24x15cm overall, intended for A4 paper. +% A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% @@ -6490,8 +9039,7 @@ should work if nowhere else does.} % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % -\def\pagesizes{\parsearg\pagesizesxxx} -\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish} +\parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 @@ -6499,7 +9047,7 @@ should work if nowhere else does.} \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \dimen0 = #1 + \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize @@ -6518,6 +9066,9 @@ should work if nowhere else does.} \message{and turning on texinfo input format.} +% DEL is a comment character, in case @c does not suffice. +\catcode`\^^? = 14 + % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \catcode`\~=\other @@ -6538,8 +9089,8 @@ should work if nowhere else does.} \def\normalplus{+} \def\normaldollar{$}%$ font-lock fix -% This macro is used to make a character print one way in ttfont -% where it can probably just be output, and another way in other fonts, +% This macro is used to make a character print one way in \tt +% (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print @@ -6571,6 +9122,7 @@ should work if nowhere else does.} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} +\let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } @@ -6587,46 +9139,49 @@ should work if nowhere else does.} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix -% Set up an active definition for =, but don't enable it most of the time. -{\catcode`\==\active -\global\def={{\tt \char 61}}} - -\catcode`+=\active -\catcode`\_=\active - % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} +% Used sometimes to turn off (effectively) the active characters even after +% parsing them. +\def\turnoffactive{% + \normalturnoffactive + \otherbackslash +} + \catcode`\@=0 -% \rawbackslashxx outputs one backslash character in current font, +% \backslashcurfont outputs one backslash character in current font, % as in \char`\\. -\global\chardef\rawbackslashxx=`\\ - -% \rawbackslash defines an active \ to do \rawbackslashxx. -% \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. -{\catcode`\\=\active - @gdef@rawbackslash{@let\=@rawbackslashxx} - @gdef@otherbackslash{@let\=@realbackslash} -} - -% \realbackslash is an actual character `\' with catcode other. -{\catcode`\\=\other @gdef@realbackslash{\}} +\global\chardef\backslashcurfont=`\\ +\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\rawbackslashxx}} +% \realbackslash is an actual character `\' with catcode other, and +% \doublebackslash is two of them (for the pdf outlines). +{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} +% In texinfo, backslash is an active character; it prints the backslash +% in fixed width font. \catcode`\\=\active +@def@normalbackslash{{@tt@backslashcurfont}} +% On startup, @fixbackslash assigns: +% @let \ = @normalbackslash -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{% +% \rawbackslash defines an active \ to do \backslashcurfont. +% \otherbackslash defines an active \ to be a literal `\' character with +% catcode other. +@gdef@rawbackslash{@let\=@backslashcurfont} +@gdef@otherbackslash{@let\=@realbackslash} + +% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of +% the literal character `\'. +% +@def@normalturnoffactive{% + @let\=@normalbackslash @let"=@normaldoublequote - @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @@ -6635,14 +9190,11 @@ should work if nowhere else does.} @let>=@normalgreater @let+=@normalplus @let$=@normaldollar %$ font-lock fix + @markupsetuplqdefault + @markupsetuprqdefault + @unsepspaces } -% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. (Thus, \ is not expandable when this is in -% effect.) -% -@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} - % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive @@ -6655,9 +9207,9 @@ should work if nowhere else does.} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix +% the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input +% Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @@ -6669,16 +9221,20 @@ should work if nowhere else does.} % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These look ok in all fonts, so just make them not special. +% These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other -@c Set initial fonts. -@textfonts -@rm - - +@c Finally, make ` and ' active, so that txicodequoteundirected and +@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we +@c don't make ` and ' active, @code will not get them as active chars. +@c Do this last of all since we use ` in the previous @catcode assignments. +@catcode`@'=@active +@catcode`@`=@active +@markupsetuplqdefault +@markupsetuprqdefault + @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" @@ -6686,3 +9242,9 @@ should work if nowhere else does.} @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: + +@c vim:sw=2: + +@ignore + arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 +@end ignore diff --git a/doc/version.texi b/doc/version.texi index 64d030c..80a2209 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -2,9 +2,9 @@ Copyright (C) 1988-2009 Free Software Foundation, Inc. @end ignore -@set LASTCHANGE Fri Feb 13 18:29:03 EST 2009 +@set LASTCHANGE Wed Dec 23 16:29:41 EST 2009 -@set EDITION 4.0 -@set VERSION 4.0 -@set UPDATED 13 February 2009 -@set UPDATED-MONTH February 2009 +@set EDITION 4.1 +@set VERSION 4.1 +@set UPDATED 23 December 2009 +@set UPDATED-MONTH December 2009 diff --git a/error.c b/error.c index 2ae4854..72da9f5 100644 --- a/error.c +++ b/error.c @@ -53,6 +53,7 @@ extern int errno; extern int executing_line_number __P((void)); +extern int last_command_exit_value; extern char *shell_name; #if defined (JOB_CONTROL) extern pid_t shell_pgrp; @@ -331,7 +332,7 @@ parser_error (lineno, format, va_alist) va_end (args); if (exit_immediately_on_error) - exit_shell (2); + exit_shell (last_command_exit_value = 2); } #ifdef DEBUG diff --git a/examples/functions/autoload.v3 b/examples/functions/autoload.v3 index a82ffe9..b1e5dfe 100644 --- a/examples/functions/autoload.v3 +++ b/examples/functions/autoload.v3 @@ -1,4 +1,4 @@ -#From: Mark Kennedy +#From: Mark Kennedy () #Message-ID: <35E2B899.63A02DF5@ny.ubs.com> #Date: Tue, 25 Aug 1998 09:14:01 -0400 #To: chet@nike.ins.cwru.edu diff --git a/examples/loadables/finfo.c b/examples/loadables/finfo.c index 778b02b..af7ffb6 100644 --- a/examples/loadables/finfo.c +++ b/examples/loadables/finfo.c @@ -357,7 +357,7 @@ int flags; else printf("%d\n", st->st_gid); } else if (flags & OPT_SIZE) - printf("%ld\n", st->st_size); + printf("%ld\n", (long) st->st_size); return (0); } diff --git a/examples/loadables/printenv.c b/examples/loadables/printenv.c index 17c4c02..8d3a05d 100644 --- a/examples/loadables/printenv.c +++ b/examples/loadables/printenv.c @@ -72,6 +72,7 @@ printenv_builtin (list) else print_var_value (var, 0); + printf("\n"); return (EXECUTION_SUCCESS); } diff --git a/examples/misc/aliasconv.bash b/examples/misc/aliasconv.bash index 2245f06..22a0447 100755 --- a/examples/misc/aliasconv.bash +++ b/examples/misc/aliasconv.bash @@ -7,11 +7,13 @@ # Chet Ramey # chet@po.cwru.edu # -trap 'rm -f /tmp/cb$$.?' 0 1 2 3 6 15 +trap 'rm -f $TMPFILE' 0 1 2 3 6 15 + +TMPFILE=$(mktemp -t cb.XXXXXX) || exit 1 T=$'\t' -cat << \EOF >/tmp/cb$$.1 +cat << \EOF >$TMPFILE mkalias () { case $2 in @@ -31,9 +33,9 @@ EOF # since they whole thing is going to be surrounded by single quotes when # passed to mkalias -sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>/tmp/cb$$.1 +sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>$TMPFILE -$BASH /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \ +$BASH $TMPFILE | sed -e 's/\$cwd/\$PWD/g' \ -e 's/\$term/\$TERM/g' \ -e 's/\$home/\$HOME/g' \ -e 's/\$user/\$USER/g' \ diff --git a/examples/misc/aliasconv.sh b/examples/misc/aliasconv.sh index 75db077..fe975d6 100755 --- a/examples/misc/aliasconv.sh +++ b/examples/misc/aliasconv.sh @@ -7,11 +7,11 @@ # Chet Ramey # chet@po.cwru.edu # -trap 'rm -f /tmp/cb$$.?' 0 1 2 3 6 15 - +trap 'rm -f $TMPFILE' 0 1 2 3 6 15 +TMPFILE=$(mktemp -t cb.XXXXXX) || exit 1 T=' ' -cat << \EOF >/tmp/cb$$.1 +cat << \EOF >$TMPFILE mkalias () { case $2 in @@ -31,9 +31,9 @@ EOF # since they whole thing is going to be surrounded by single quotes when # passed to mkalias -sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>/tmp/cb$$.1 +sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>$TMPFILE -sh /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \ +sh $TMPFILE | sed -e 's/\$cwd/\$PWD/g' \ -e 's/\$term/\$TERM/g' \ -e 's/\$home/\$HOME/g' \ -e 's/\$user/\$USER/g' \ diff --git a/examples/misc/cshtobash b/examples/misc/cshtobash index 8e2b05c..ce49bfc 100755 --- a/examples/misc/cshtobash +++ b/examples/misc/cshtobash @@ -15,25 +15,34 @@ # Chet Ramey # chet@po.cwru.edu # -trap 'rm -f /tmp/cb$$.? cshout cshin' 0 1 2 3 6 15 +trap 'rm -f $TMPFILE1 $TMPFILEa $TMPFILEe $TMPFILEv $TMPFILEco $TMPFILEci' 0 1 2 3 6 15 + +{ TMPFILE1=$(mktemp -t cb.1.XXXXXX) && + TMPFILEa=$(mktemp -t cb.a.XXXXXX) && + TMPFILEe=$(mktemp -t cb.e.XXXXXX) && + TMPFILEv=$(mktemp -t cb.v.XXXXXX) && + TMPFILEco=$(mktemp -t cshout.XXXXXX) && + TMPFILEci=$(mktemp -t cshin.XXXXXX) +} || exit 1 + T=$'\t' SOURCE="${1:+source $1}" -cat << EOF >cshin +cat << EOF >$TMPFILEci $SOURCE -alias >! /tmp/cb$$.a -setenv >! /tmp/cb$$.e -set >! /tmp/cb$$.v +alias >! $TMPFILEa +setenv >! $TMPFILEe +set >! $TMPFILEv EOF # give csh a minimal environment, similar to what login would provide -/usr/bin/env - USER=$USER HOME=$HOME PATH=/usr/bin:/bin:/usr/ucb:. TERM=$TERM SHELL=$SHELL /bin/csh -i < ./cshin > cshout 2>&1 +/usr/bin/env - USER=$USER HOME=$HOME PATH=/usr/bin:/bin:/usr/ucb:. TERM=$TERM SHELL=$SHELL /bin/csh -i < $TMPFILEci > $TMPFILEco 2>&1 # First convert aliases -cat << \EOF >/tmp/cb$$.1 +cat << \EOF >$TMPFILE1 mkalias () { case $2 in @@ -49,12 +58,12 @@ mkalias () } EOF -sed "s/^\([a-zA-Z0-9_]*\)$T\(.*\)$/mkalias \1 '\2'/" < /tmp/cb$$.a >>/tmp/cb$$.1 +sed "s/^\([a-zA-Z0-9_]*\)$T\(.*\)$/mkalias \1 '\2'/" < $TMPFILEa >>$TMPFILE1 echo '# csh aliases' echo -$BASH /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \ +$BASH $TMPFILE1 | sed -e 's/\$cwd/\$PWD/g' \ -e 's/\$term/\$TERM/g' \ -e 's/\$home/\$HOME/g' \ -e 's/\$user/\$USER/g' \ @@ -70,7 +79,7 @@ sed -e '/^SHLVL/d' \ -e '/^PWD/d' \ -e "s/'/'"\\\\"''"/g \ -e "s/^\([A-Za-z0-9_]*=\)/export \1'/" \ - -e "s/$/'/" < /tmp/cb$$.e + -e "s/$/'/" < $TMPFILEe # Finally, convert local variables echo @@ -82,7 +91,7 @@ sed -e 's/'"$T"'/=/' \ -e '/^[A-Za-z0-9_]*=[^(]/{ s/=/='"'/"' s/$/'"'/"' - }' < /tmp/cb$$.v | + }' < $TMPFILEv | sed -e '/^argv=/d' -e '/^cwd=/d' -e '/^filec=/d' -e '/^status=/d' \ -e '/^verbose=/d' \ -e '/^term=/d' \ @@ -110,7 +119,7 @@ echo echo '# special csh variables converted to bash equivalents' echo -sed -e 's/'"$T"'/=/' < /tmp/cb$$.v | +sed -e 's/'"$T"'/=/' < $TMPFILEv | grep "^cdpath=" | sed 's/(// s/ /:/g @@ -118,7 +127,7 @@ sed 's/(// s/cdpath=/CDPATH=/' -sed -e 's/'"$T"'/=/' < /tmp/cb$$.v | +sed -e 's/'"$T"'/=/' < $TMPFILEv | grep "^mail=" | sed 's/(// s/ /:/g diff --git a/examples/scripts/cat.sh b/examples/scripts/cat.sh index 78106b2..3e65b3f 100644 --- a/examples/scripts/cat.sh +++ b/examples/scripts/cat.sh @@ -1,7 +1,7 @@ shcat() { while read -r ; do - echo "$REPLY" + printf "%s\n" "$REPLY" done } diff --git a/execute_cmd.c b/execute_cmd.c index 9761125..e65a03f 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -57,6 +57,8 @@ extern int errno; #endif +#define NEED_FPURGE_DECL + #include "bashansi.h" #include "bashintl.h" @@ -100,7 +102,7 @@ extern int posixly_correct; extern int expand_aliases; extern int autocd; extern int breaking, continuing, loop_level; -extern int parse_and_execute_level, running_trap; +extern int parse_and_execute_level, running_trap, sourcelevel; extern int command_string_index, line_number; extern int dot_found_in_search; extern int already_making_children; @@ -267,6 +269,10 @@ static int showing_function_line; static int line_number_for_err_trap; +/* A sort of function nesting level counter */ +static int funcnest = 0; +int funcnest_max = 0; /* XXX - for bash-4.2 */ + struct fd_bitmap *current_fds_to_close = (struct fd_bitmap *)NULL; #define FD_BITMAP_DEFAULT_SIZE 32 @@ -607,7 +613,6 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, else exec_result = last_command_exit_value; - if (user_subshell && was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) { last_command_exit_value = exec_result; @@ -883,19 +888,58 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, #if defined (DPAREN_ARITHMETIC) case cm_arith: + was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0; if (ignore_return) command->value.Arith->flags |= CMD_IGNORE_RETURN; + line_number_for_err_trap = save_line_number = line_number; exec_result = execute_arith_command (command->value.Arith); + line_number = save_line_number; + + if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) + { + last_command_exit_value = exec_result; + save_line_number = line_number; + line_number = line_number_for_err_trap; + run_error_trap (); + line_number = save_line_number; + } + + if (ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS) + { + last_command_exit_value = exec_result; + run_pending_traps (); + jump_to_top_level (ERREXIT); + } + break; #endif #if defined (COND_COMMAND) case cm_cond: + was_error_trap = signal_is_trapped (ERROR_TRAP) && signal_is_ignored (ERROR_TRAP) == 0; if (ignore_return) command->value.Cond->flags |= CMD_IGNORE_RETURN; - save_line_number = line_number; + + line_number_for_err_trap = save_line_number = line_number; exec_result = execute_cond_command (command->value.Cond); line_number = save_line_number; + + if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) + { + last_command_exit_value = exec_result; + save_line_number = line_number; + line_number = line_number_for_err_trap; + run_error_trap (); + line_number = save_line_number; + } + + if (ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS) + { + last_command_exit_value = exec_result; + run_pending_traps (); + jump_to_top_level (ERREXIT); + } + break; #endif @@ -1248,6 +1292,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) { int user_subshell, return_code, function_value, should_redir_stdin, invert; int ois, user_coproc; + int result; COMMAND *tcom; USE_VAR(user_subshell); @@ -1414,13 +1459,21 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) invert = (tcom->flags & CMD_INVERT_RETURN) != 0; tcom->flags &= ~CMD_INVERT_RETURN; + result = setjmp (top_level); + /* If we're inside a function while executing this subshell, we need to handle a possible `return'. */ function_value = 0; if (return_catch_flag) function_value = setjmp (return_catch); - if (function_value) + /* If we're going to exit the shell, we don't want to invert the return + status. */ + if (result == EXITPROG) + invert = 0, return_code = last_command_exit_value; + else if (result) + return_code = EXECUTION_FAILURE; + else if (function_value) return_code = return_catch_value; else return_code = execute_command_internal (tcom, asynchronous, NO_PIPE, NO_PIPE, fds_to_close); @@ -1928,7 +1981,7 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close) int pipe_in, pipe_out; struct fd_bitmap *fds_to_close; { - int rpipe[2], wpipe[2]; + int rpipe[2], wpipe[2], estat; pid_t coproc_pid; Coproc *cp; char *tcmd; @@ -1957,7 +2010,12 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close) close (rpipe[0]); close (wpipe[1]); - exit (execute_in_subshell (command, 1, wpipe[0], rpipe[1], fds_to_close)); + estat = execute_in_subshell (command, 1, wpipe[0], rpipe[1], fds_to_close); + + fflush (stdout); + fflush (stderr); + + exit (estat); } close (rpipe[1]); @@ -3156,11 +3214,19 @@ static int execute_cond_node (cond) COND_COM *cond; { - int result, invert, patmatch, rmatch, mflags; + int result, invert, patmatch, rmatch, mflags, ignore; char *arg1, *arg2; invert = (cond->flags & CMD_INVERT_RETURN); - + ignore = (cond->flags & CMD_IGNORE_RETURN); + if (ignore) + { + if (cond->left) + cond->left->flags |= CMD_IGNORE_RETURN; + if (cond->right) + cond->right->flags |= CMD_IGNORE_RETURN; + } + if (cond->type == COND_EXPR) result = execute_cond_node (cond->left); else if (cond->type == COND_OR) @@ -3177,7 +3243,11 @@ execute_cond_node (cond) } else if (cond->type == COND_UNARY) { + if (ignore) + comsub_ignore_return++; arg1 = cond_expand_word (cond->left->op, 0); + if (ignore) + comsub_ignore_return--; if (arg1 == 0) arg1 = nullstr; if (echo_command_at_execute) @@ -3197,11 +3267,19 @@ execute_cond_node (cond) cond->op->word[2] == '\0'); #endif + if (ignore) + comsub_ignore_return++; arg1 = cond_expand_word (cond->left->op, 0); + if (ignore) + comsub_ignore_return--; if (arg1 == 0) arg1 = nullstr; + if (ignore) + comsub_ignore_return++; arg2 = cond_expand_word (cond->right->op, (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0)); + if (ignore) + comsub_ignore_return--; if (arg2 == 0) arg2 = nullstr; @@ -3224,7 +3302,7 @@ execute_cond_node (cond) int oe; oe = extended_glob; extended_glob = 1; - result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP) + result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP|TEST_LOCALE) ? EXECUTION_SUCCESS : EXECUTION_FAILURE; extended_glob = oe; @@ -3261,7 +3339,6 @@ execute_cond_command (cond_command) /* If we're in a function, update the line number information. */ if (variable_context && interactive_shell) line_number -= function_line_number; - command_string_index = 0; print_cond_command (cond_command); @@ -3315,8 +3392,13 @@ execute_null_command (redirects, pipe_in, pipe_out, async) int pipe_in, pipe_out, async; { int r; + int forcefork; + REDIRECT *rd; - if (pipe_in != NO_PIPE || pipe_out != NO_PIPE || async) + for (forcefork = 0, rd = redirects; rd; rd = rd->next) + forcefork += rd->rflags & REDIR_VARASSIGN; + + if (forcefork || pipe_in != NO_PIPE || pipe_out != NO_PIPE || async) { /* We have a null command, but we really want a subshell to take care of it. Just fork, do piping and redirections, and exit. */ @@ -3457,7 +3539,7 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) command_line = (char *)0; /* If we're in a function, update the line number information. */ - if (variable_context && interactive_shell) + if (variable_context && interactive_shell && sourcelevel == 0) line_number -= function_line_number; /* Remember what this command line looks like at invocation. */ @@ -3814,25 +3896,35 @@ execute_builtin (builtin, words, flags, subshell) { int old_e_flag, result, eval_unwind; int isbltinenv; + char *error_trap; #if 0 /* XXX -- added 12/11 */ terminate_immediately++; #endif + error_trap = 0; old_e_flag = exit_immediately_on_error; /* The eval builtin calls parse_and_execute, which does not know about the setting of flags, and always calls the execution functions with flags that will exit the shell on an error if -e is set. If the eval builtin is being called, and we're supposed to ignore the exit - value of the command, we turn the -e flag off ourselves, then - restore it when the command completes. This is also a problem (as - below) for the command and source/. builtins. */ + value of the command, we turn the -e flag off ourselves and disable + the ERR trap, then restore them when the command completes. This is + also a problem (as below) for the command and source/. builtins. */ if (subshell == 0 && (flags & CMD_IGNORE_RETURN) && (builtin == eval_builtin || builtin == command_builtin || builtin == source_builtin)) { begin_unwind_frame ("eval_builtin"); unwind_protect_int (exit_immediately_on_error); + error_trap = TRAP_STRING (ERROR_TRAP); + if (error_trap) + { + error_trap = savestring (error_trap); + add_unwind_protect (xfree, error_trap); + add_unwind_protect (set_error_trap, error_trap); + restore_default_signal (ERROR_TRAP); + } exit_immediately_on_error = 0; eval_unwind = 1; } @@ -3883,6 +3975,11 @@ execute_builtin (builtin, words, flags, subshell) if (eval_unwind) { exit_immediately_on_error += old_e_flag; + if (error_trap) + { + set_error_trap (error_trap); + xfree (error_trap); + } discard_unwind_frame ("eval_builtin"); } @@ -3911,10 +4008,17 @@ execute_function (var, words, flags, fds_to_close, async, subshell) #endif FUNCTION_DEF *shell_fn; char *sfile, *t; - static int funcnest = 0; USE_VAR(fc); +#if 0 /* for bash-4.2 */ + if (funcnest_max > 0 && funcnest >= funcnest_max) + { + internal_error ("%s: maximum function nesting level exceeded (%d)", var->name, funcnest); + jump_to_top_level (DISCARD); + } +#endif + #if defined (ARRAY_VARS) GET_ARRAY_FROM_VAR ("FUNCNAME", funcname_v, funcname_a); GET_ARRAY_FROM_VAR ("BASH_SOURCE", bash_source_v, bash_source_a); @@ -3936,6 +4040,7 @@ execute_function (var, words, flags, fds_to_close, async, subshell) add_unwind_protect (dispose_command, (char *)tc); unwind_protect_pointer (this_shell_function); unwind_protect_int (loop_level); + unwind_protect_int (funcnest); } else push_context (var->name, subshell, temporary_env); /* don't unwind-protect for subshells */ @@ -4077,7 +4182,6 @@ execute_function (var, words, flags, fds_to_close, async, subshell) if (subshell == 0) run_unwind_frame ("function_calling"); - funcnest--; #if defined (ARRAY_VARS) /* These two variables cannot be unset, and cannot be affected by the function. */ @@ -4092,8 +4196,13 @@ execute_function (var, words, flags, fds_to_close, async, subshell) #endif if (variable_context == 0 || this_shell_function == 0) - make_funcname_visible (0); - + { + make_funcname_visible (0); +#if defined (PROCESS_SUBSTITUTION) + unlink_fifo_list (); +#endif + } + return (result); } @@ -4369,7 +4478,7 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out, #if defined (RESTRICTED_SHELL) command = (char *)NULL; - if (restricted && xstrchr (pathname, '/')) + if (restricted && mbschr (pathname, '/')) { internal_error (_("%s: restricted: cannot specify `/' in command names"), pathname); @@ -4482,7 +4591,8 @@ parent_return: /* Make sure that the pipes are closed in the parent. */ close_pipes (pipe_in, pipe_out); #if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD) - unlink_fifo_list (); + if (variable_context == 0) + unlink_fifo_list (); #endif FREE (command); } @@ -4631,7 +4741,7 @@ initialize_subshell () parse_and_execute_level = 0; /* nothing left to restore it */ /* We're no longer inside a shell function. */ - variable_context = return_catch_flag = 0; + variable_context = return_catch_flag = funcnest = 0; executing_list = 0; /* XXX */ diff --git a/expr.c b/expr.c index c251600..446e678 100644 --- a/expr.c +++ b/expr.c @@ -202,7 +202,7 @@ static int expr_depth; /* Location in the stack. */ static int expr_stack_size; /* Number of slots already allocated. */ extern char *this_command_name; -extern int unbound_vars_is_error; +extern int unbound_vars_is_error, last_command_exit_value; #if defined (ARRAY_VARS) extern const char * const bash_badsub_errmsg; @@ -923,6 +923,7 @@ expr_streval (tok, e) value = tok; #endif + last_command_exit_value = EXECUTION_FAILURE; err_unboundvar (value); #if defined (ARRAY_VARS) @@ -1057,7 +1058,7 @@ readtok () #if defined (ARRAY_VARS) if (c == '[') { - e = skipsubscript (cp, 0); + e = skipsubscript (cp, 0, 0); if (cp[e] == ']') { cp += e + 1; diff --git a/externs.h b/externs.h index cafbd5f..c8aa862 100644 --- a/externs.h +++ b/externs.h @@ -54,6 +54,12 @@ extern void print_cond_command __P((COND_COM *)); #endif /* set -x support */ +extern void xtrace_init __P((void)); +#ifdef NEED_XTRACE_SET_DECL +extern void xtrace_set __P((int, FILE *)); +#endif +extern void xtrace_fdchk __P((int)); +extern void xtrace_reset __P((void)); extern char *indirection_level_string __P((void)); extern void xtrace_print_assignment __P((char *, char *, int, int)); extern void xtrace_print_word_list __P((WORD_LIST *, int)); @@ -135,7 +141,7 @@ extern int find_string_in_alist __P((char *, STRING_INT_ALIST *, int)); extern char *find_token_in_alist __P((int, STRING_INT_ALIST *, int)); extern int find_index_in_alist __P((char *, STRING_INT_ALIST *, int)); -extern char *substring __P((char *, int, int)); +extern char *substring __P((const char *, int, int)); extern char *strsub __P((char *, char *, char *, int)); extern char *strcreplace __P((char *, int, char *, int)); extern void strip_leading __P((char *)); @@ -191,6 +197,10 @@ extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int)); /* Declarations for functions defined in lib/sh/fmtumax.c */ extern char *fmtumax __P((uintmax_t, int, char *, size_t, int)); +/* Declarations for functions defined in lib/sh/fnxform.c */ +extern char *fnx_fromfs __P((char *, size_t)); +extern char *fnx_tofs __P((char *, size_t)); + /* Declarations for functions defined in lib/sh/fpurge.c */ #if defined NEED_FPURGE_DECL @@ -226,6 +236,21 @@ extern char *uitos __P((uintmax_t)); extern char *sh_makepath __P((const char *, const char *, int)); +/* declarations for functions defined in lib/sh/mbscasecmp.c */ +#if !defined (HAVE_MBSCASECMP) +extern char *mbscasecmp __P((const char *, const char *)); +#endif + +/* declarations for functions defined in lib/sh/mbschr.c */ +#if !defined (HAVE_MBSCHR) +extern char *mbschr __P((const char *, int)); +#endif + +/* declarations for functions defined in lib/sh/mbscmp.c */ +#if !defined (HAVE_MBSCMP) +extern char *mbscmp __P((const char *, const char *)); +#endif + /* declarations for functions defined in lib/sh/netconn.c */ extern int isnetconn __P((int)); @@ -295,6 +320,11 @@ extern int strncasecmp __P((const char *, const char *, int)); extern int strcasecmp __P((const char *, const char *)); #endif /* HAVE_STRCASECMP */ +/* declarations for functions defined in lib/sh/strcasestr.c */ +#if ! HAVE_STRCASESTR +extern char *strcasestr __P((const char *, const char *)); +#endif + /* declarations for functions defined in lib/sh/strerror.c */ #if !defined (HAVE_STRERROR) && !defined (strerror) extern char *strerror __P((int)); @@ -305,9 +335,6 @@ extern char *strerror __P((int)); extern size_t strftime __P((char *, size_t, const char *, const struct tm *)); #endif -/* declarations for functions defined in lib/sh/strindex.c */ -extern char *strindex __P((const char *, const char *)); - /* declarations for functions and structures defined in lib/sh/stringlist.c */ /* This is a general-purpose argv-style array struct. */ @@ -424,10 +451,6 @@ extern unsigned int fsleep __P((unsigned int, unsigned int)); /* declarations for functions defined in lib/sh/winsize.c */ extern void get_new_window_size __P((int, int *, int *)); -/* declarations for functions defined in lib/sh/xstrchr.c */ -#undef xstrchr -extern char *xstrchr __P((const char *, int)); - /* declarations for functions defined in lib/sh/zcatfd.c */ extern int zcatfd __P((int, int, char *)); diff --git a/findcmd.c b/findcmd.c index 1f05394..557f8b5 100644 --- a/findcmd.c +++ b/findcmd.c @@ -93,7 +93,18 @@ file_status (name) r = FS_EXISTS; -#if defined (AFS) +#if defined (HAVE_EACCESS) + /* Use eaccess(2) if we have it to take things like ACLs and other + file access mechanisms into account. eaccess uses the effective + user and group IDs, not the real ones. We could use sh_eaccess, + but we don't want any special treatment for /dev/fd. */ + if (eaccess (name, X_OK) == 0) + r |= FS_EXECABLE; + if (eaccess (name, R_OK) == 0) + r |= FS_READABLE; + + return r; +#elif defined (AFS) /* We have to use access(2) to determine access because AFS does not support Unix file system semantics. This may produce wrong answers for non-AFS files when ruid != euid. I hate AFS. */ @@ -103,7 +114,7 @@ file_status (name) r |= FS_READABLE; return r; -#else /* !AFS */ +#else /* !HAVE_EACCESS && !AFS */ /* Find out if the file is actually executable. By definition, the only other criteria is that the file has an execute bit set that diff --git a/general.c b/general.c index 4cf877f..26c7d3d 100644 --- a/general.c +++ b/general.c @@ -98,7 +98,7 @@ string_to_rlimtype (s) neg = 0; while (s && *s && whitespace (*s)) s++; - if (*s == '-' || *s == '+') + if (s && (*s == '-' || *s == '+')) { neg = *s == '-'; s++; @@ -285,7 +285,7 @@ assignment (string, flags) #if defined (ARRAY_VARS) if (c == '[') { - newi = skipsubscript (string, indx); + newi = skipsubscript (string, indx, 0); if (string[newi++] != ']') return (0); if (string[newi] == '+' && string[newi+1] == '=') @@ -577,7 +577,7 @@ int absolute_program (string) const char *string; { - return ((char *)xstrchr (string, '/') != (char *)NULL); + return ((char *)mbschr (string, '/') != (char *)NULL); } /* **************************************************************** */ @@ -717,7 +717,7 @@ trim_pathname (name, maxlen) for (ndirs = 0, ntail = nbeg; *ntail; ntail++) if (*ntail == '/') ndirs++; - if (ndirs <= nskip) + if (ndirs < nskip) return name; for (ntail = (*nend == '/') ? nend : nend - 1; ntail > nbeg; ntail--) diff --git a/general.h b/general.h index 5ea0d45..1ec0d39 100644 --- a/general.h +++ b/general.h @@ -70,7 +70,7 @@ extern char *strcpy __P((char *, const char *)); #endif #ifndef member -# define member(c, s) ((c) ? ((char *)xstrchr ((s), (c)) != (char *)NULL) : 0) +# define member(c, s) ((c) ? ((char *)mbschr ((s), (c)) != (char *)NULL) : 0) #endif #ifndef whitespace diff --git a/hashlib.c b/hashlib.c index ccde9b9..ea67dfc 100644 --- a/hashlib.c +++ b/hashlib.c @@ -177,7 +177,7 @@ hash_search (string, table, flags) bucket = HASH_BUCKET (string, table, hv); - for (list = table->bucket_array[bucket]; list; list = list->next) + for (list = table->bucket_array ? table->bucket_array[bucket] : 0; list; list = list->next) { if (hv == list->khash && STREQ (list->key, string)) { diff --git a/jobs.c b/jobs.c index d8bb7ae..df13ad9 100644 --- a/jobs.c +++ b/jobs.c @@ -701,8 +701,8 @@ bgp_delete (pid) for (prev = p = bgpids.list; p; prev = p, p = p->next) if (p->pid == pid) { - prev->next = p->next; /* remove from list */ - break; + prev->next = p->next; /* remove from list */ + break; } if (p == 0) @@ -1708,6 +1708,10 @@ make_child (command, async_p) /* Create the child, handle severe errors. Retry on EAGAIN. */ while ((pid = fork ()) < 0 && errno == EAGAIN && forksleep < FORKSLEEP_MAX) { +#if 0 /* for bash-4.2 */ + /* If we can't create any children, try to reap some dead ones. */ + waitchld (-1, 0); +#endif sys_error ("fork: retry"); if (sleep (forksleep) != 0) break; @@ -1725,6 +1729,7 @@ make_child (command, async_p) if (the_pipeline) kill_current_pipeline (); + last_command_exit_value = EX_NOEXEC; throw_to_top_level (); /* Reset signals, etc. */ } @@ -2371,6 +2376,8 @@ wait_for (pid) if (interactive && job_control == 0) QUIT; + /* Check for terminating signals and exit the shell if we receive one */ + CHECK_TERMSIG; /* If we say wait_for (), then we have a record of this child somewhere. If it and none of its peers are running, don't call waitchld(). */ @@ -2449,6 +2456,8 @@ wait_for (pid) old SIGINT signal handler. */ if (interactive && job_control == 0) QUIT; + /* Check for terminating signals and exit the shell if we receive one */ + CHECK_TERMSIG; } while (PRUNNING (child) || (job != NO_JOB && RUNNING (job))); @@ -3042,8 +3051,15 @@ waitchld (wpid, block) : 0; if (sigchld || block == 0) waitpid_flags |= WNOHANG; + /* Check for terminating signals and exit the shell if we receive one */ CHECK_TERMSIG; + if (block == 1 && queue_sigchld == 0 && (waitpid_flags & WNOHANG) == 0) + { + internal_warning (_("waitchld: turning on WNOHANG to avoid indefinite block")); + waitpid_flags |= WNOHANG; + } + pid = WAITPID (-1, &status, waitpid_flags); /* WCONTINUED may be rejected by waitpid as invalid even when defined */ @@ -3137,7 +3153,7 @@ waitchld (wpid, block) if (job_control && signal_is_trapped (SIGCHLD) && children_exited && trap_list[SIGCHLD] != (char *)IGNORE_SIG) { - if (this_shell_builtin && this_shell_builtin == wait_builtin) + if (posixly_correct && this_shell_builtin && this_shell_builtin == wait_builtin) { interrupt_immediately = 0; trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */ diff --git a/lib/glob/glob.c b/lib/glob/glob.c index 3542244..c77618f 100644 --- a/lib/glob/glob.c +++ b/lib/glob/glob.c @@ -246,7 +246,8 @@ udequote_pathname (pathname) if (pathname[i - 1] == 0) break; } - pathname[j] = '\0'; + if (pathname) + pathname[j] = '\0'; } #if HANDLE_MULTIBYTE @@ -279,7 +280,8 @@ wdequote_pathname (pathname) if (wpathname[i - 1] == L'\0') break; } - wpathname[j] = L'\0'; + if (wpathname) + wpathname[j] = L'\0'; /* Convert the wide character string into unibyte character set. */ memset (&ps, '\0', sizeof(mbstate_t)); @@ -307,9 +309,9 @@ dequote_pathname (pathname) # define GLOB_TESTNAME(name) (lstat (name, &finfo)) #else /* !HAVE_LSTAT */ # if !defined (AFS) -# define GLOB_TESTNAME(name) (sh_eaccess (nextname, F_OK)) +# define GLOB_TESTNAME(name) (sh_eaccess (name, F_OK)) # else /* AFS */ -# define GLOB_TESTNAME(name) (access (nextname, F_OK)) +# define GLOB_TESTNAME(name) (access (name, F_OK)) # endif /* AFS */ #endif /* !HAVE_LSTAT */ @@ -320,6 +322,7 @@ glob_testdir (dir) { struct stat finfo; +/*itrace("glob_testdir: testing %s", dir);*/ if (stat (dir, &finfo) < 0) return (-1); @@ -426,13 +429,14 @@ glob_vector (pat, dir, flags) register struct globval *nextlink; register char *nextname, *npat, *subdir; unsigned int count; - int lose, skip, ndirs, isdir, sdlen, add_current; + int lose, skip, ndirs, isdir, sdlen, add_current, patlen; register char **name_vector; register unsigned int i; int mflags; /* Flags passed to strmatch (). */ int pflags; /* flags passed to sh_makepath () */ int nalloca; struct globval *firstmalloc, *tmplink; + char *convfn; lastlink = 0; count = lose = skip = add_current = 0; @@ -466,6 +470,8 @@ glob_vector (pat, dir, flags) skip = 1; } + patlen = strlen (pat); + /* If the filename pattern (PAT) does not contain any globbing characters, we can dispense with reading the directory, and just see if there is a filename `DIR/PAT'. If there is, and we can access it, just make the @@ -479,8 +485,8 @@ glob_vector (pat, dir, flags) return ((char **) &glob_error_return); dirlen = strlen (dir); - nextname = (char *)malloc (dirlen + strlen (pat) + 2); - npat = (char *)malloc (strlen (pat) + 1); + nextname = (char *)malloc (dirlen + patlen + 2); + npat = (char *)malloc (patlen + 1); if (nextname == 0 || npat == 0) lose = 1; else @@ -633,8 +639,9 @@ glob_vector (pat, dir, flags) ++count; continue; } - - if (strmatch (pat, dp->d_name, mflags) != FNM_NOMATCH) + + convfn = fnx_fromfs (dp->d_name, D_NAMLEN (dp)); + if (strmatch (pat, convfn, mflags) != FNM_NOMATCH) { if (nalloca < ALLOCA_MAX) { @@ -1023,7 +1030,7 @@ glob_filename (pathname, flags) dflags |= GX_ALLDIRS|GX_ADDCURDIR; #if 0 /* If we want all directories (dflags & GX_ALLDIRS) and we're not - being called recursively as something like `echo **/*.o' + being called recursively as something like `echo [star][star]/[star].o' ((flags & GX_ALLDIRS) == 0), we want to prevent glob_vector from adding a null directory name to the front of the temp_results array. We turn off ADDCURDIR if not called recursively and diff --git a/lib/readline/bind.c b/lib/readline/bind.c index 836f837..fc8c2a2 100644 --- a/lib/readline/bind.c +++ b/lib/readline/bind.c @@ -418,6 +418,13 @@ rl_generic_bind (type, keyseq, data, map) { map = FUNCTION_TO_KEYMAP (map, ic); ic = ANYOTHERKEY; + /* If we're trying to override a keymap with a null function + (e.g., trying to unbind it), we can't use a null pointer + here because that's indistinguishable from having not been + overridden. We use a special bindable function that does + nothing. */ + if (type == ISFUNC && data == 0) + data = (char *)_rl_null_function; } map[ic].function = KEYMAP_TO_FUNCTION (data); @@ -1419,7 +1426,9 @@ static const struct { { "completion-ignore-case", &_rl_completion_case_fold, 0 }, { "convert-meta", &_rl_convert_meta_chars_to_ascii, 0 }, { "disable-completion", &rl_inhibit_completion, 0 }, + { "echo-control-characters", &_rl_echo_control_chars, 0 }, { "enable-keypad", &_rl_enable_keypad, 0 }, + { "enable-meta-key", &_rl_enable_meta, 0 }, { "expand-tilde", &rl_complete_with_tilde_expansion, 0 }, { "history-preserve-point", &_rl_history_preserve_point, 0 }, { "horizontal-scroll-mode", &_rl_horizontal_scroll_mode, 0 }, @@ -1436,6 +1445,7 @@ static const struct { { "revert-all-at-newline", &_rl_revert_all_at_newline, 0 }, { "show-all-if-ambiguous", &_rl_complete_show_all, 0 }, { "show-all-if-unmodified", &_rl_complete_show_unmodified, 0 }, + { "skip-completed-text", &_rl_skip_completed_text, 0 }, #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, #endif /* VISIBLE_STATS */ diff --git a/lib/readline/complete.c b/lib/readline/complete.c index 59b486a..ad9ca05 100644 --- a/lib/readline/complete.c +++ b/lib/readline/complete.c @@ -179,6 +179,12 @@ int _rl_completion_prefix_display_length = 0; int rl_visible_stats = 0; #endif /* VISIBLE_STATS */ +/* If non-zero, when completing in the middle of a word, don't insert + characters from the match that match characters following point in + the word. This means, for instance, completing when the cursor is + after the `e' in `Makefile' won't result in `Makefilefile'. */ +int _rl_skip_completed_text = 0; + /* If non-zero, then this is the address of a function to call when completing on a directory name. The function is called with the address of a string (the current directory name) as an arg. */ @@ -186,6 +192,17 @@ rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL; rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL; +/* If non-zero, this is the address of a function to call when reading + directory entries from the filesystem for completion and comparing + them to the partial word to be completed. The function should + either return its first argument (if no conversion takes place) or + newly-allocated memory. This can, for instance, convert filenames + between character sets for comparison against what's typed at the + keyboard. The returned value is what is added to the list of + matches. The second argument is the length of the filename to be + converted. */ +rl_dequote_func_t *rl_filename_rewrite_hook = (rl_dequote_func_t *)NULL; + /* Non-zero means readline completion functions perform tilde expansion. */ int rl_complete_with_tilde_expansion = 0; @@ -1021,7 +1038,8 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char) { _rl_interrupt_immediately++; matches = (*rl_attempted_completion_function) (text, start, end); - _rl_interrupt_immediately--; + if (_rl_interrupt_immediately > 0) + _rl_interrupt_immediately--; if (matches || rl_attempted_completion_over) { @@ -1551,8 +1569,9 @@ insert_match (match, start, mtype, qc) int start, mtype; char *qc; { - char *replacement; + char *replacement, *r; char oqc; + int end, rlen; oqc = qc ? *qc : '\0'; replacement = make_quoted_replacement (match, mtype, qc); @@ -1560,6 +1579,7 @@ insert_match (match, start, mtype, qc) /* Now insert the match. */ if (replacement) { + rlen = strlen (replacement); /* Don't double an opening quote character. */ if (qc && *qc && start && rl_line_buffer[start - 1] == *qc && replacement[0] == *qc) @@ -1569,7 +1589,24 @@ insert_match (match, start, mtype, qc) else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc && replacement[0] != oqc) start--; - _rl_replace_text (replacement, start, rl_point - 1); + end = rl_point - 1; + /* Don't double a closing quote character */ + if (qc && *qc && end && rl_line_buffer[rl_point] == *qc && replacement[rlen - 1] == *qc) + end++; + if (_rl_skip_completed_text) + { + r = replacement; + while (start < rl_end && *r && rl_line_buffer[start] == *r) + { + start++; + r++; + } + if (start <= end || *r) + _rl_replace_text (r, start, end); + rl_point = start + strlen (r); + } + else + _rl_replace_text (replacement, start, end); if (replacement != match) free (replacement); } @@ -1893,7 +1930,8 @@ rl_completion_matches (text, entry_function) match_list[++matches] = string; match_list[matches + 1] = (char *)NULL; } - _rl_interrupt_immediately--; + if (_rl_interrupt_immediately > 0) + _rl_interrupt_immediately--; /* If there were any matches, then look through them finding out the lowest common denominator. That then becomes match_list[0]. */ @@ -1981,8 +2019,8 @@ rl_filename_completion_function (text, state) static char *dirname = (char *)NULL; static char *users_dirname = (char *)NULL; static int filename_len; - char *temp; - int dirlen; + char *temp, *dentry, *convfn; + int dirlen, dentlen, convlen; struct dirent *entry; /* If we don't have any state, then do some initialization. */ @@ -2086,6 +2124,15 @@ rl_filename_completion_function (text, state) entry = (struct dirent *)NULL; while (directory && (entry = readdir (directory))) { + convfn = dentry = entry->d_name; + convlen = dentlen = D_NAMLEN (entry); + + if (rl_filename_rewrite_hook) + { + convfn = (*rl_filename_rewrite_hook) (dentry, dentlen); + convlen = (convfn == dentry) ? dentlen : strlen (convfn); + } + /* Special case for no filename. If the user has disabled the `match-hidden-files' variable, skip filenames beginning with `.'. All other entries except "." and ".." match. */ @@ -2094,9 +2141,8 @@ rl_filename_completion_function (text, state) if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name)) continue; - if (entry->d_name[0] != '.' || - (entry->d_name[1] && - (entry->d_name[1] != '.' || entry->d_name[2]))) + if (convfn[0] != '.' || + (convfn[1] && (convfn[1] != '.' || convfn[2]))) break; } else @@ -2105,16 +2151,16 @@ rl_filename_completion_function (text, state) it is a match. */ if (_rl_completion_case_fold) { - if ((_rl_to_lower (entry->d_name[0]) == _rl_to_lower (filename[0])) && - (((int)D_NAMLEN (entry)) >= filename_len) && - (_rl_strnicmp (filename, entry->d_name, filename_len) == 0)) + if ((_rl_to_lower (convfn[0]) == _rl_to_lower (filename[0])) && + (convlen >= filename_len) && + (_rl_strnicmp (filename, convfn, filename_len) == 0)) break; } else { - if ((entry->d_name[0] == filename[0]) && - (((int)D_NAMLEN (entry)) >= filename_len) && - (strncmp (filename, entry->d_name, filename_len) == 0)) + if ((convfn[0] == filename[0]) && + (convlen >= filename_len) && + (strncmp (filename, convfn, filename_len) == 0)) break; } } @@ -2176,19 +2222,22 @@ rl_filename_completion_function (text, state) strcpy (temp + dirlen, entry->d_name); } else - temp = savestring (entry->d_name); + temp = savestring (convfn); + + if (convfn != dentry) + free (convfn); return (temp); } } /* An initial implementation of a menu completion function a la tcsh. The - first time (if the last readline command was not rl_menu_complete), we + first time (if the last readline command was not rl_old_menu_complete), we generate the list of matches. This code is very similar to the code in rl_complete_internal -- there should be a way to combine the two. Then, for each item in the list of matches, we insert the match in an undoable fashion, with the appropriate character appended (this happens on the - second and subsequent consecutive calls to rl_menu_complete). When we + second and subsequent consecutive calls to rl_old_menu_complete). When we hit the end of the match list, we restore the original unmatched text, ring the bell, and reset the counter to zero. */ int @@ -2330,7 +2379,7 @@ rl_menu_complete (count, ignore) /* The first time through, we generate the list of matches and set things up to insert them. */ - if (rl_last_func != rl_menu_complete || full_completion) + if ((rl_last_func != rl_menu_complete && rl_last_func != rl_backward_menu_complete) || full_completion) { /* Clean up from previous call, if any. */ FREE (orig_text); @@ -2470,3 +2519,12 @@ rl_menu_complete (count, ignore) completion_changed_buffer = 1; return (0); } + +int +rl_backward_menu_complete (count, key) + int count, key; +{ + /* Positive arguments to backward-menu-complete translate into negative + arguments for menu-complete, and vice versa. */ + return (rl_menu_complete (-count, key)); +} diff --git a/lib/readline/display.c b/lib/readline/display.c index c58d4f7..e4105ee 100644 --- a/lib/readline/display.c +++ b/lib/readline/display.c @@ -94,9 +94,9 @@ static int line_structures_initialized = 0; #define invisible_line (line_state_invisible->line) #if defined (HANDLE_MULTIBYTE) -static int _rl_col_width PARAMS((const char *, int, int)); +static int _rl_col_width PARAMS((const char *, int, int, int)); #else -# define _rl_col_width(l, s, e) (((e) <= (s)) ? 0 : (e) - (s)) +# define _rl_col_width(l, s, e, f) (((e) <= (s)) ? 0 : (e) - (s)) #endif /* Heuristic used to decide whether it is faster to move from CUR to NEW @@ -312,7 +312,7 @@ expand_prompt (pmt, lp, lip, niflp, vlp) not be the same as the number of physical characters on the screen in the presence of multibyte characters */ rl += ind - pind; - physchars += _rl_col_width (pmt, pind, ind); + physchars += _rl_col_width (pmt, pind, ind, 0); } else ninvis += ind - pind; @@ -688,7 +688,7 @@ rl_redisplay () temp = local_prompt_len; while (num < temp) { - z = _rl_col_width (local_prompt, n0, num); + z = _rl_col_width (local_prompt, n0, num, 1); if (z > _rl_screenwidth) { num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY); @@ -714,7 +714,7 @@ rl_redisplay () inv_lbreaks[++newlines] = temp; #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0) - lpos -= _rl_col_width (local_prompt, n0, num); + lpos -= _rl_col_width (local_prompt, n0, num, 1); else #endif lpos -= _rl_screenwidth; @@ -733,6 +733,7 @@ rl_redisplay () if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { memset (&ps, 0, sizeof (mbstate_t)); + /* XXX - what if wc_bytes ends up <= 0? check for MB_INVALIDCH */ wc_bytes = mbrtowc (&wc, rl_line_buffer, rl_end, &ps); } else @@ -893,6 +894,7 @@ rl_redisplay () if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { in += wc_bytes; + /* XXX - what if wc_bytes ends up <= 0? check for MB_INVALIDCH */ wc_bytes = mbrtowc (&wc, rl_line_buffer + in, rl_end - in, &ps); } else @@ -958,6 +960,11 @@ rl_redisplay () #define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line) #define INV_LINE(line) (invisible_line + inv_lbreaks[line]) +#define OLD_CPOS_IN_PROMPT() (cpos_adjusted == 0 && \ + _rl_last_c_pos != o_cpos && \ + _rl_last_c_pos > wrap_offset && \ + o_cpos < prompt_last_invisible) + /* For each line in the buffer, do the updating display. */ for (linenum = 0; linenum <= inv_botlin; linenum++) { @@ -980,11 +987,7 @@ rl_redisplay () time update_line is called, then we can assume in our calculations that o_cpos does not need to be adjusted by wrap_offset. */ - if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && - cpos_adjusted == 0 && - _rl_last_c_pos != o_cpos && - _rl_last_c_pos > wrap_offset && - o_cpos < prompt_last_invisible) + if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && OLD_CPOS_IN_PROMPT()) _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && @@ -1084,7 +1087,7 @@ rl_redisplay () _rl_output_some_chars (local_prompt, nleft); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset + modmark; + _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft, 1) - wrap_offset + modmark; else _rl_last_c_pos = nleft + modmark; } @@ -1108,7 +1111,7 @@ rl_redisplay () { /* TX == new physical cursor position in multibyte locale. */ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - tx = _rl_col_width (&visible_line[pos], 0, nleft) - visible_wrap_offset; + tx = _rl_col_width (&visible_line[pos], 0, nleft, 1) - visible_wrap_offset; else tx = nleft; if (tx >= 0 && _rl_last_c_pos > tx) @@ -1201,12 +1204,8 @@ rl_redisplay () _rl_screenwidth + (lmargin ? 0 : wrap_offset), 0); - if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && - cpos_adjusted == 0 && - _rl_last_c_pos != o_cpos && - _rl_last_c_pos > wrap_offset && - o_cpos < prompt_last_invisible) - _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ + if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && OLD_CPOS_IN_PROMPT()) + _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ /* If the visible new line is shorter than the old, but the number of invisible characters is greater, and we are at the end of @@ -1320,7 +1319,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) if (tempwidth > 0) { - int count; + int count, i; bytes = ret; for (count = 0; count < bytes; count++) putc (new[count], rl_outstream); @@ -1331,10 +1330,13 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) if (ret != 0 && bytes != 0) { if (MB_INVALIDCH (ret)) - memmove (old+bytes, old+1, strlen (old+1)); - else - memmove (old+bytes, old+ret, strlen (old+ret)); + ret = 1; + memmove (old+bytes, old+ret, strlen (old+ret)); memcpy (old, new, bytes); + /* Fix up indices if we copy data from one line to another */ + omax += bytes - ret; + for (i = current_line+1; i < inv_botlin+1; i++) + vis_lbreaks[i] += bytes - ret; } } else @@ -1528,7 +1530,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) { /* We take wrap_offset into account here so we can pass correct information to _rl_move_cursor_relative. */ - _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset + modmark; + _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff, 1) - wrap_offset + modmark; cpos_adjusted = 1; } else @@ -1559,7 +1561,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) When not using multibyte characters, these are equal */ lendiff = (nls - nfd) - (ols - ofd); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - col_lendiff = _rl_col_width (new, nfd - new, nls - new) - _rl_col_width (old, ofd - old, ols - old); + col_lendiff = _rl_col_width (new, nfd - new, nls - new, 1) - _rl_col_width (old, ofd - old, ols - old, 1); else col_lendiff = lendiff; @@ -1584,7 +1586,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) /* Insert (diff (len (old), len (new)) ch. */ temp = ne - nfd; if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - col_temp = _rl_col_width (new, nfd - new, ne - new); + col_temp = _rl_col_width (new, nfd - new, ne - new, 1); else col_temp = temp; @@ -1601,7 +1603,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) if (lendiff < 0) { _rl_output_some_chars (nfd, temp); - _rl_last_c_pos += _rl_col_width (nfd, 0, temp); + _rl_last_c_pos += _rl_col_width (nfd, 0, temp, 1); /* If nfd begins before any invisible characters in the prompt, adjust _rl_last_c_pos to account for wrap_offset and set cpos_adjusted to let the caller know. */ @@ -1679,7 +1681,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) multibyte characters and prompt strings with invisible characters, but was previously disabled. */ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); + twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff, 1); else twidth = temp - lendiff; _rl_last_c_pos += twidth; @@ -1738,7 +1740,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) _rl_output_some_chars (nfd, temp); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - _rl_last_c_pos += _rl_col_width (nfd, 0, temp); + _rl_last_c_pos += _rl_col_width (nfd, 0, temp, 1); if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) { _rl_last_c_pos -= wrap_offset; @@ -1771,7 +1773,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) } lendiff = (oe - old) - (ne - new); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - col_lendiff = _rl_col_width (old, 0, oe - old) - _rl_col_width (new, 0, ne - new); + col_lendiff = _rl_col_width (old, 0, oe - old, 1) - _rl_col_width (new, 0, ne - new, 1); else col_lendiff = lendiff; @@ -1838,7 +1840,7 @@ rl_on_new_line_with_prompt () l = strlen (prompt_last_line); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l); /* XXX */ + _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l, 1); /* XXX */ else _rl_last_c_pos = l; @@ -1900,6 +1902,7 @@ _rl_move_cursor_relative (new, data) register int i; int woff; /* number of invisible chars on current line */ int cpos, dpos; /* current and desired cursor positions */ + int adjust; woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); cpos = _rl_last_c_pos; @@ -1915,15 +1918,34 @@ _rl_move_cursor_relative (new, data) as long as we are past them and they are counted by _rl_col_width. */ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - dpos = _rl_col_width (data, 0, new); + adjust = 1; + /* Try to short-circuit common cases and eliminate a bunch of multibyte + character function calls. */ + /* 1. prompt string */ + if (new == local_prompt_len && memcmp (data, local_prompt, new) == 0) + { + dpos = prompt_physical_chars; + cpos_adjusted = 1; + adjust = 0; + } + /* 2. prompt_string + line contents */ + else if (new > local_prompt_len && local_prompt && memcmp (data, local_prompt, local_prompt_len) == 0) + { + dpos = prompt_physical_chars + _rl_col_width (data, local_prompt_len, new, 1); + cpos_adjusted = 1; + adjust = 0; + } + else + dpos = _rl_col_width (data, 0, new, 1); + /* Use NEW when comparing against the last invisible character in the prompt string, since they're both buffer indices and DPOS is a desired display position. */ - if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ + if (adjust && ((new > prompt_last_invisible) || /* XXX - don't use woff here */ (prompt_physical_chars >= _rl_screenwidth && _rl_last_v_pos == prompt_last_screen_line && wrap_offset >= woff && dpos >= woff && - new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset))) + new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))) /* XXX last comparison might need to be >= */ { dpos -= woff; @@ -2566,9 +2588,9 @@ _rl_current_display_line () In the case of multibyte characters with stateful encoding, we have to scan from the beginning of the string to take the state into account. */ static int -_rl_col_width (str, start, end) +_rl_col_width (str, start, end, flags) const char *str; - int start, end; + int start, end, flags; { wchar_t wc; mbstate_t ps; @@ -2587,6 +2609,20 @@ _rl_ttymsg ("_rl_col_width: called with MB_CUR_MAX == 1"); point = 0; max = end; + /* Try to short-circuit common cases. The adjustment to remove wrap_offset + is done by the caller. */ + /* 1. prompt string */ + if (flags && start == 0 && end == local_prompt_len && memcmp (str, local_prompt, local_prompt_len) == 0) + return (prompt_physical_chars + wrap_offset); + /* 2. prompt string + line contents */ + else if (flags && start == 0 && local_prompt_len > 0 && end > local_prompt_len && local_prompt && memcmp (str, local_prompt, local_prompt_len) == 0) + { + tmp = prompt_physical_chars + wrap_offset; + /* XXX - try to call ourselves recursively with non-prompt portion */ + tmp += _rl_col_width (str, local_prompt_len, end, flags); + return (tmp); + } + while (point < start) { tmp = mbrlen (str + point, max, &ps); diff --git a/lib/readline/doc/fdl.texi b/lib/readline/doc/fdl.texi index 96ce74e..8805f1a 100644 --- a/lib/readline/doc/fdl.texi +++ b/lib/readline/doc/fdl.texi @@ -1,12 +1,12 @@ @c The GNU Free Documentation License. -@center Version 1.2, November 2002 +@center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. -51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. +@uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -111,6 +111,9 @@ formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. +The ``publisher'' means any person or entity that distributes copies +of the Document to the public. + A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a @@ -379,13 +382,30 @@ title. @item TERMINATION -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE @@ -403,7 +423,42 @@ following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +@item +RELICENSING + +``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the +site means any set of copyrightable works thus published on the MMC +site. + +``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +``Incorporate'' means to publish or republish a Document, in whole or +in part, as part of another Document. + +An MMC is ``eligible for relicensing'' if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole +or in part into the MMC, (1) had no cover texts or invariant sections, +and (2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + @end enumerate @page @@ -417,7 +472,7 @@ license notices just after the title page: @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.2 + under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU diff --git a/lib/readline/doc/history.texi b/lib/readline/doc/history.texi index 81ee8b1..afdb901 100644 --- a/lib/readline/doc/history.texi +++ b/lib/readline/doc/history.texi @@ -20,7 +20,7 @@ are preserved on all copies. @quotation Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 or +under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is diff --git a/lib/readline/doc/rlman.texi b/lib/readline/doc/rlman.texi index fa3dd77..be24709 100644 --- a/lib/readline/doc/rlman.texi +++ b/lib/readline/doc/rlman.texi @@ -21,7 +21,7 @@ are preserved on all copies. @quotation Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 or +under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is diff --git a/lib/readline/doc/rltech.texi b/lib/readline/doc/rltech.texi index c98d3b9..04c8489 100644 --- a/lib/readline/doc/rltech.texi +++ b/lib/readline/doc/rltech.texi @@ -622,7 +622,7 @@ Readline which keymap to use. @deftypefun Keymap rl_make_bare_keymap (void) Returns a new, empty keymap. The space for the keymap is allocated with @code{malloc()}; the caller should free it by calling -@code{rl_discard_keymap()} when done. +@code{rl_free_keymap()} when done. @end deftypefun @deftypefun Keymap rl_copy_keymap (Keymap map) @@ -636,7 +636,13 @@ the Meta digits bound to produce numeric arguments. @end deftypefun @deftypefun void rl_discard_keymap (Keymap keymap) -Free the storage associated with @var{keymap}. +Free the storage associated with the data in @var{keymap}. +The caller should free @var{keymap}. +@end deftypefun + +@deftypefun void rl_free_keymap (Keymap keymap) +Free all storage associated with @var{keymap}. This calls +@code{rl_discard_keymap} to free subordindate keymaps and macros. @end deftypefun Readline has several internal keymaps. These functions allow you to @@ -1722,6 +1728,35 @@ remove any quote characters from the directory name, because its result will be passed directly to @code{opendir()}. @end deftypevar +@ignore +@deftypevar extern rl_icppfunc_t *rl_directory_rewrite_hook; +If non-zero, this is the address of a function to call when completing +a directory name. This function takes the address of the directory name +to be modified as an argument. Unlike @code{rl_directory_completion_hook}, +it only modifies the directory name used in @code{opendir}, not what is +displayed when the possible completions are printed or inserted. It is +called before rl_directory_completion_hook. + +I'm not happy with how this worksyet, so it's undocumented. +@end deftypevar +@end ignore + +@deftypevar {rl_dequote_func_t *} rl_filename_rewrite_hook +If non-zero, this is the address of a function called when reading +directory entries from the filesystem for completion and comparing +them to the partial word to be completed. The function should +perform any necesary application or system-specific conversion on +the filename, such as converting between character sets or converting +from a filesystem format to a character input format. +The function takes two arguments: @var{fname}, the filename to be converted, +and @var{fnlen}, its length in bytes. +It must either return its first argument (if no conversion takes place) +or the converted filename in newly-allocated memory. The converted +form is used to compare against the word to be completed, and, if it +matches, is added to the list of matches. Readline will free the +allocated string. +@end deftypevar + @deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook If non-zero, then this is the address of a function to call when completing a word would normally display the list of possible matches. diff --git a/lib/readline/doc/rluser.texi b/lib/readline/doc/rluser.texi index 4a367ed..519c0de 100644 --- a/lib/readline/doc/rluser.texi +++ b/lib/readline/doc/rluser.texi @@ -474,12 +474,23 @@ key bindings is used. By default, Readline starts up in Emacs editing mode, where the keystrokes are most similar to Emacs. This variable can be set to either @samp{emacs} or @samp{vi}. +@item echo-control-characters +When set to @samp{on}, on operating systems that indicate they support it, +readline echoes a character corresponding to a signal generated from the +keyboard. The default is @samp{on}. + @item enable-keypad @vindex enable-keypad When set to @samp{on}, Readline will try to enable the application keypad when it is called. Some systems need this to enable the arrow keys. The default is @samp{off}. +@item enable-meta-key +When set to @samp{on}, Readline will try to enable any meta modifier +key the terminal claims to support when it is called. On many terminals, +the meta key is used to send eight-bit characters. +The default is @samp{on}. + @item expand-tilde @vindex expand-tilde If set to @samp{on}, tilde expansion is performed when Readline @@ -606,6 +617,20 @@ a common prefix) cause the matches to be listed immediately instead of ringing the bell. The default value is @samp{off}. +@item skip-completed-text +@vindex skip-completed-text +If set to @samp{on}, this alters the default completion behavior when +inserting a single match into the line. It's only active when +performing completion in the middle of a word. If enabled, readline +does not insert characters from the completion that match characters +after point in the word being completed, so portions of the word +following the cursor are not duplicated. +For instance, if this is enabled, attempting completion when the cursor +is after the @samp{e} in @samp{Makefile} will result in @samp{Makefile} +rather than @samp{Makefilefile}, assuming there is a single possible +completion. +The default value is @samp{off}. + @item visible-stats @vindex visible-stats If set to @samp{on}, a character denoting a file's type @@ -1292,6 +1317,11 @@ through the list. This command is intended to be bound to @key{TAB}, but is unbound by default. +@item menu-complete-backward () +Identical to @code{menu-complete}, but moves backward through the list +of possible completions, as if @code{menu-complete} had been given a +negative argument. + @item delete-char-or-list () Deletes the character under the cursor if not at the beginning or end of the line (like @code{delete-char}). @@ -1431,6 +1461,15 @@ A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent occurrences. +@item skip-csi-sequence () +Read enough characters to consume a multi-key sequence such as those +defined for keys like Home and End. Such sequences begin with a +Control Sequence Indicator (CSI), usually ESC-[. If this sequence is +bound to "\e[", keys producing such sequences will have no effect +unless explicitly bound to a readline command, instead of inserting +stray characters into the editing buffer. This is unbound by default, +but usually bound to ESC-[. + @item insert-comment (M-#) Without a numeric argument, the value of the @code{comment-begin} variable is inserted at the beginning of the current line. @@ -1574,10 +1613,15 @@ the programmable completion facilities are invoked. First, the command name is identified. If a compspec has been defined for that command, the compspec is used to generate the list of possible completions for the word. +If the command word is the empty string (completion attempted at the +beginning of an empty line), any compspec defined with +the @option{-E} option to @code{complete} is used. If the command word is a full pathname, a compspec for the full pathname is searched for first. If no compspec is found for the full pathname, an attempt is made to find a compspec for the portion following the final slash. +If those searches do not result in a compspec, any compspec defined with +the @option{-D} option to @code{complete} is used as the default. Once a compspec has been found, it is used to generate the list of matching words. @@ -1681,6 +1725,30 @@ to completed names which are symbolic links to directories, subject to the value of the @var{mark-directories} Readline variable, regardless of the setting of the @var{mark-symlinked-directories} Readline variable. +There is some support for dynamically modifying completions. This is +most useful when used in combination with a default completion specified +with @option{-D}. It's possible for shell functions executed as completion +handlers to indicate that completion should be retried by returning an +exit status of 124. If a shell function returns 124, and changes +the compspec associated with the command on which completion is being +attempted (supplied as the first argument when the function is executed), +programmable completion restarts from the beginning, with an +attempt to find a compspec for that command. This allows a set of +completions to be built dynamically as completion is attempted, rather than +being loaded all at once. + +For instance, assuming that there is a library of compspecs, each kept in a +file corresponding to the name of the command, the following default +completion function would load completions dynamically: + +@example +_completion_loader() +@{ + . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124 +@} +complete -D -F _completion_loader +@end example + @node Programmable Completion Builtins @section Programmable Completion Builtins @cindex completion builtins @@ -1716,10 +1784,10 @@ matches were generated. @item complete @btindex complete @example -@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-E] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] +@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DE] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] [-F @var{function}] [-C @var{command}] [-X @var{filterpat}] [-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]} -@code{complete -pr [-E] [@var{name} @dots{}]} +@code{complete -pr [-DE] [@var{name} @dots{}]} @end example Specify how arguments to each @var{name} should be completed. @@ -1729,12 +1797,16 @@ reused as input. The @option{-r} option removes a completion specification for each @var{name}, or, if no @var{name}s are supplied, all completion specifications. +The @option{-D} option indicates that the remaining options and actions should +apply to the ``default'' command completion; that is, completion attempted +on a command for which no completion has previously been defined. The @option{-E} option indicates that the remaining options and actions should apply to ``empty'' command completion; that is, completion attempted on a blank line. The process of applying these completion specifications when word completion -is attempted is described above (@pxref{Programmable Completion}). +is attempted is described above (@pxref{Programmable Completion}). The +@option{-D} option takes precedence over @option{-E}. Other options, if specified, have the following meanings. The arguments to the @option{-G}, @option{-W}, and @option{-X} options @@ -1908,7 +1980,7 @@ an error occurs adding a completion specification. @item compopt @btindex compopt @example -@code{compopt} [-o @var{option}] [+o @var{option}] [@var{name}] +@code{compopt} [-o @var{option}] [-DE] [+o @var{option}] [@var{name}] @end example Modify completion options for each @var{name} according to the @var{option}s, or for the currently-execution completion if no @var{name}s @@ -1917,6 +1989,14 @@ If no @var{option}s are given, display the completion options for each @var{name} or the current completion. The possible values of @var{option} are those valid for the @code{complete} builtin described above. +The @option{-D} option indicates that the remaining options should +apply to the ``default'' command completion; that is, completion attempted +on a command for which no completion has previously been defined. +The @option{-E} option indicates that the remaining options should +apply to ``empty'' command completion; that is, completion attempted on a +blank line. + +The @option{-D} option takes precedence over @option{-E}. The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a @var{name} for which no completion diff --git a/lib/readline/doc/rluserman.texi b/lib/readline/doc/rluserman.texi index a473aa2..49d9a2c 100644 --- a/lib/readline/doc/rluserman.texi +++ b/lib/readline/doc/rluserman.texi @@ -20,7 +20,7 @@ are preserved on all copies. @quotation Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 or +under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is diff --git a/lib/readline/doc/version.texi b/lib/readline/doc/version.texi index 913a62e..823b3ba 100644 --- a/lib/readline/doc/version.texi +++ b/lib/readline/doc/version.texi @@ -2,9 +2,9 @@ Copyright (C) 1988-2009 Free Software Foundation, Inc. @end ignore -@set EDITION 6.0 -@set VERSION 6.0 -@set UPDATED 28 October 2008 -@set UPDATED-MONTH October 2008 +@set EDITION 6.1 +@set VERSION 6.1 +@set UPDATED 9 October 2009 +@set UPDATED-MONTH October 2009 -@set LASTCHANGE Tue Oct 28 11:25:24 EDT 2008 +@set LASTCHANGE Fri Oct 9 12:57:58 EDT 2009 diff --git a/lib/readline/funmap.c b/lib/readline/funmap.c index 06d2b92..cccddb6 100644 --- a/lib/readline/funmap.c +++ b/lib/readline/funmap.c @@ -105,11 +105,13 @@ static const FUNMAP default_funmap[] = { { "kill-region", rl_kill_region }, { "kill-word", rl_kill_word }, { "menu-complete", rl_menu_complete }, + { "menu-complete-backward", rl_backward_menu_complete }, { "next-history", rl_get_next_history }, { "non-incremental-forward-search-history", rl_noninc_forward_search }, { "non-incremental-reverse-search-history", rl_noninc_reverse_search }, { "non-incremental-forward-search-history-again", rl_noninc_forward_search_again }, { "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again }, + { "old-menu-complete", rl_old_menu_complete }, { "overwrite-mode", rl_overwrite_mode }, #ifdef __CYGWIN__ { "paste-from-clipboard", rl_paste_from_clipboard }, @@ -123,6 +125,7 @@ static const FUNMAP default_funmap[] = { { "revert-line", rl_revert_line }, { "self-insert", rl_insert }, { "set-mark", rl_set_mark }, + { "skip-csi-sequence", rl_skip_csi_sequence }, { "start-kbd-macro", rl_start_kbd_macro }, { "tab-insert", rl_tab_insert }, { "tilde-expand", rl_tilde_expand }, diff --git a/lib/readline/histexpand.c b/lib/readline/histexpand.c index bf5ac0e..42498d2 100644 --- a/lib/readline/histexpand.c +++ b/lib/readline/histexpand.c @@ -305,16 +305,20 @@ get_history_event (string, caller_index, delimiting_quote) /* Extract the contents of STRING as if it is enclosed in single quotes. SINDEX, when passed in, is the offset of the character immediately following the opening single quote; on exit, SINDEX is left pointing - to the closing single quote. */ + to the closing single quote. FLAGS currently used to allow backslash + to escape a single quote (e.g., for bash $'...'). */ static void -hist_string_extract_single_quoted (string, sindex) +hist_string_extract_single_quoted (string, sindex, flags) char *string; - int *sindex; + int *sindex, flags; { register int i; for (i = *sindex; string[i] && string[i] != '\''; i++) - ; + { + if ((flags & 1) && string[i] == '\\' && string[i+1]) + i++; + } *sindex = i; } @@ -924,7 +928,7 @@ history_expand (hstring, output) char **output; { register int j; - int i, r, l, passc, cc, modified, eindex, only_printing, dquote; + int i, r, l, passc, cc, modified, eindex, only_printing, dquote, flag; char *string; /* The output string, and its length. */ @@ -1044,8 +1048,9 @@ history_expand (hstring, output) else if (dquote == 0 && history_quotes_inhibit_expansion && string[i] == '\'') { /* If this is bash, single quotes inhibit history expansion. */ + flag = (i > 0 && string[i - 1] == '$'); i++; - hist_string_extract_single_quoted (string, &i); + hist_string_extract_single_quoted (string, &i, flag); } else if (history_quotes_inhibit_expansion && string[i] == '\\') { @@ -1096,7 +1101,7 @@ history_expand (hstring, output) if (strlen (mb) > 1) { ADD_STRING (mb); - break; + continue; } } #endif /* HANDLE_MULTIBYTE */ @@ -1130,8 +1135,9 @@ history_expand (hstring, output) { int quote, slen; + flag = (i > 0 && string[i - 1] == '$'); quote = i++; - hist_string_extract_single_quoted (string, &i); + hist_string_extract_single_quoted (string, &i, flag); slen = i - quote + 2; temp = (char *)xmalloc (slen); @@ -1435,17 +1441,21 @@ history_tokenize_word (string, ind) i += 2; return i; } - else + else if ((peek == '&' && (string[i] == '>' || string[i] == '<')) || + (peek == '>' && string[i] == '&') || + (peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */ + (peek == '(' && string[i] == '$')) /* ) */ { - if ((peek == '&' && (string[i] == '>' || string[i] == '<')) || - (peek == '>' && string[i] == '&') || - (peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */ - (peek == '(' && string[i] == '$')) /* ) */ - { - i += 2; - return i; - } + i += 2; + return i; } +#if 0 + else if (peek == '\'' && string[i] == '$') + { + i += 2; /* XXX */ + return i; + } +#endif if (string[i] != '$') { diff --git a/lib/readline/input.c b/lib/readline/input.c index 320c4bc..b5876da 100644 --- a/lib/readline/input.c +++ b/lib/readline/input.c @@ -45,14 +45,7 @@ # include "ansi_stdlib.h" #endif /* HAVE_STDLIB_H */ -#if defined (HAVE_SELECT) -# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX) -# include -# endif -#endif /* HAVE_SELECT */ -#if defined (HAVE_SYS_SELECT_H) -# include -#endif +#include "posixselect.h" #if defined (FIONREAD_IN_SYS_IOCTL) # include @@ -190,8 +183,7 @@ rl_gather_tyi () FD_ZERO (&exceptfds); FD_SET (tty, &readfds); FD_SET (tty, &exceptfds); - timeout.tv_sec = 0; - timeout.tv_usec = _keyboard_input_timeout; + USEC_TO_TIMEVAL (_keyboard_input_timeout, timeout); result = select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout); if (result <= 0) return 0; /* Nothing to read. */ diff --git a/lib/readline/keymaps.c b/lib/readline/keymaps.c index a033d5e..9379dec 100644 --- a/lib/readline/keymaps.c +++ b/lib/readline/keymaps.c @@ -57,8 +57,9 @@ Keymap rl_make_bare_keymap () { register int i; - Keymap keymap = (Keymap)xmalloc (KEYMAP_SIZE * sizeof (KEYMAP_ENTRY)); + Keymap keymap; + keymap = (Keymap)xmalloc (KEYMAP_SIZE * sizeof (KEYMAP_ENTRY)); for (i = 0; i < KEYMAP_SIZE; i++) { keymap[i].type = ISFUNC; @@ -76,7 +77,8 @@ rl_make_bare_keymap () return (keymap); } -/* Return a new keymap which is a copy of MAP. */ +/* Return a new keymap which is a copy of MAP. Just copies pointers, does + not copy text of macros or descend into child keymaps. */ Keymap rl_copy_keymap (map) Keymap map; @@ -128,7 +130,7 @@ rl_discard_keymap (map) { int i; - if (!map) + if (map == 0) return; for (i = 0; i < KEYMAP_SIZE; i++) @@ -140,6 +142,7 @@ rl_discard_keymap (map) case ISKMAP: rl_discard_keymap ((Keymap)map[i].function); + free ((char *)map[i].function); break; case ISMACR: @@ -148,3 +151,12 @@ rl_discard_keymap (map) } } } + +/* Convenience function that discards, then frees, MAP. */ +void +rl_free_keymap (map) + Keymap map; +{ + rl_discard_keymap (map); + free ((char *)map); +} diff --git a/lib/readline/mbutil.c b/lib/readline/mbutil.c index 858842e..eeb7e55 100644 --- a/lib/readline/mbutil.c +++ b/lib/readline/mbutil.c @@ -77,7 +77,7 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) char *string; int seed, count, find_non_zero; { - size_t tmp; + size_t tmp, len; mbstate_t ps; int point; wchar_t wc; @@ -99,7 +99,10 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) while (count > 0) { - tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); + len = strlen (string + point); + if (len == 0) + break; + tmp = mbrtowc (&wc, string+point, len, &ps); if (MB_INVALIDCH ((size_t)tmp)) { /* invalid bytes. assume a byte represents a character */ diff --git a/lib/readline/parens.c b/lib/readline/parens.c index f15d26f..9c98488 100644 --- a/lib/readline/parens.c +++ b/lib/readline/parens.c @@ -38,16 +38,7 @@ # include #endif -#if defined (FD_SET) && !defined (HAVE_SELECT) -# define HAVE_SELECT -#endif - -#if defined (HAVE_SELECT) -# include -#endif /* HAVE_SELECT */ -#if defined (HAVE_SYS_SELECT_H) -# include -#endif +#include "posixselect.h" #if defined (HAVE_STRING_H) # include @@ -130,8 +121,7 @@ rl_insert_close (count, invoking_key) FD_ZERO (&readfds); FD_SET (fileno (rl_instream), &readfds); - timer.tv_sec = 0; - timer.tv_usec = _paren_blink_usec; + USEC_TO_TIMEVAL (_paren_blink_usec, timer); orig_point = rl_point; rl_point = match_point; diff --git a/lib/readline/readline.c b/lib/readline/readline.c index 3550b35..c0e78d4 100644 --- a/lib/readline/readline.c +++ b/lib/readline/readline.c @@ -275,6 +275,10 @@ int _rl_bind_stty_chars = 1; its initial state. */ int _rl_revert_all_at_newline = 0; +/* Non-zero means to honor the termios ECHOCTL bit and echo control + characters corresponding to keyboard-generated signals. */ +int _rl_echo_control_chars = 1; + /* **************************************************************** */ /* */ /* Top Level Functions */ @@ -686,7 +690,8 @@ _rl_dispatch_callback (cxt) r = cxt->childval; /* For now */ - r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ)); + if (r != -3) /* don't do this if we indicate there will be other matches */ + r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ)); RL_CHECK_SIGNALS (); if (r == 0) /* success! */ @@ -831,7 +836,7 @@ _rl_dispatch_subseq (key, map, got_subseq) { /* Return 0 only the first time, to indicate success to _rl_callback_read_char. The rest of the time, we're called - from _rl_dispatch_callback, so we return 3 to indicate + from _rl_dispatch_callback, so we return -3 to indicate special handling is necessary. */ r = RL_ISSTATE (RL_STATE_MULTIKEY) ? -3 : 0; cxt = _rl_keyseq_cxt_alloc (); @@ -895,7 +900,7 @@ _rl_subseq_result (r, map, key, got_subseq) Keymap m; int type, nt; rl_command_func_t *func, *nf; - + if (r == -2) /* We didn't match anything, and the keymap we're indexed into shadowed a function previously bound to that prefix. Call @@ -1169,6 +1174,10 @@ bind_arrow_keys () #if defined (VI_MODE) bind_arrow_keys_internal (vi_movement_keymap); + /* Unbind vi_movement_keymap[ESC] to allow users to repeatedly hit ESC + in vi command mode while still allowing the arrow keys to work. */ + if (vi_movement_keymap[ESC].type == ISKMAP) + rl_bind_keyseq_in_map ("\033", (rl_command_func_t *)NULL, vi_movement_keymap); bind_arrow_keys_internal (vi_insertion_keymap); #endif } diff --git a/lib/readline/readline.h b/lib/readline/readline.h index fa02dec..7a4ffaa 100644 --- a/lib/readline/readline.h +++ b/lib/readline/readline.h @@ -95,6 +95,7 @@ extern int rl_forward_word PARAMS((int, int)); extern int rl_backward_word PARAMS((int, int)); extern int rl_refresh_line PARAMS((int, int)); extern int rl_clear_screen PARAMS((int, int)); +extern int rl_skip_csi_sequence PARAMS((int, int)); extern int rl_arrow_keys PARAMS((int, int)); /* Bindable commands for inserting and deleting text. */ @@ -150,7 +151,9 @@ extern int rl_dump_variables PARAMS((int, int)); extern int rl_complete PARAMS((int, int)); extern int rl_possible_completions PARAMS((int, int)); extern int rl_insert_completions PARAMS((int, int)); +extern int rl_old_menu_complete PARAMS((int, int)); extern int rl_menu_complete PARAMS((int, int)); +extern int rl_backward_menu_complete PARAMS((int, int)); /* Bindable commands for killing and yanking text, and managing the kill ring. */ extern int rl_kill_word PARAMS((int, int)); @@ -675,6 +678,17 @@ extern rl_icppfunc_t *rl_directory_completion_hook; yet, so it's undocumented. */ extern rl_icppfunc_t *rl_directory_rewrite_hook; +/* If non-zero, this is the address of a function to call when reading + directory entries from the filesystem for completion and comparing + them to the partial word to be completed. The function should + either return its first argument (if no conversion takes place) or + newly-allocated memory. This can, for instance, convert filenames + between character sets for comparison against what's typed at the + keyboard. The returned value is what is added to the list of + matches. The second argument is the length of the filename to be + converted. */ +extern rl_dequote_func_t *rl_filename_rewrite_hook; + /* Backwards compatibility with previous versions of readline. */ #define rl_symbolic_link_hook rl_directory_completion_hook diff --git a/lib/readline/rlprivate.h b/lib/readline/rlprivate.h index f575c14..819f127 100644 --- a/lib/readline/rlprivate.h +++ b/lib/readline/rlprivate.h @@ -300,6 +300,8 @@ extern void _rl_signal_handler PARAMS((int)); extern void _rl_block_sigint PARAMS((void)); extern void _rl_release_sigint PARAMS((void)); +extern void _rl_block_sigwinch PARAMS((void)); +extern void _rl_release_sigwinch PARAMS((void)); /* terminal.c */ extern void _rl_get_screen_size PARAMS((int, int)); @@ -347,6 +349,7 @@ extern void _rl_trace (); extern int _rl_tropen PARAMS((void)); extern int _rl_abort_internal PARAMS((void)); +extern int _rl_null_function PARAMS((int, int)); extern char *_rl_strindex PARAMS((const char *, const char *)); extern int _rl_qsort_string_compare PARAMS((char **, char **)); extern int (_rl_uppercase_p) PARAMS((int)); @@ -386,6 +389,7 @@ extern int _rl_print_completions_horizontally; extern int _rl_completion_case_fold; extern int _rl_match_hidden_files; extern int _rl_page_completions; +extern int _rl_skip_completed_text; /* display.c */ extern int _rl_vis_botlin; @@ -417,6 +421,7 @@ extern int _rl_convert_meta_chars_to_ascii; extern int _rl_output_meta_chars; extern int _rl_bind_stty_chars; extern int _rl_revert_all_at_newline; +extern int _rl_echo_control_chars; extern char *_rl_comment_begin; extern unsigned char _rl_parsing_conditionalized_out; extern Keymap _rl_keymap; diff --git a/lib/readline/rltty.c b/lib/readline/rltty.c index 61f9103..0dd5d10 100644 --- a/lib/readline/rltty.c +++ b/lib/readline/rltty.c @@ -517,7 +517,9 @@ prepare_terminal_settings (meta_flag, oldtio, tiop) TIOTYPE oldtio, *tiop; { _rl_echoing_p = (oldtio.c_lflag & ECHO); +#if defined (ECHOCTL) _rl_echoctl = (oldtio.c_lflag & ECHOCTL); +#endif tiop->c_lflag &= ~(ICANON | ECHO); diff --git a/lib/readline/signals.c b/lib/readline/signals.c index 325ae8c..4fbc019 100644 --- a/lib/readline/signals.c +++ b/lib/readline/signals.c @@ -101,7 +101,8 @@ int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */ int _rl_interrupt_immediately = 0; int volatile _rl_caught_signal = 0; /* should be sig_atomic_t, but that requires including everywhere */ -/* If non-zero, print characters corresponding to received signals. */ +/* If non-zero, print characters corresponding to received signals as long as + the user has indicated his desire to do so (_rl_echo_control_chars). */ int _rl_echoctl = 0; int _rl_intr_char = 0; @@ -141,13 +142,14 @@ static RETSIGTYPE rl_signal_handler (sig) int sig; { - if (_rl_interrupt_immediately) + if (_rl_interrupt_immediately || RL_ISSTATE(RL_STATE_CALLBACK)) { _rl_interrupt_immediately = 0; _rl_handle_signal (sig); } + else + _rl_caught_signal = sig; - _rl_caught_signal = sig; SIGHANDLER_RETURN; } @@ -518,13 +520,16 @@ rl_free_line_state () #if defined (HAVE_POSIX_SIGNALS) static sigset_t sigint_set, sigint_oset; +static sigset_t sigwinch_set, sigwinch_oset; #else /* !HAVE_POSIX_SIGNALS */ # if defined (HAVE_BSD_SIGNALS) static int sigint_oldmask; +static int sigwinch_oldmask; # endif /* HAVE_BSD_SIGNALS */ #endif /* !HAVE_POSIX_SIGNALS */ static int sigint_blocked; +static int sigwinch_blocked; /* Cause SIGINT to not be delivered until the corresponding call to release_sigint(). */ @@ -574,6 +579,54 @@ _rl_release_sigint () sigint_blocked = 0; } +/* Cause SIGWINCH to not be delivered until the corresponding call to + release_sigwinch(). */ +void +_rl_block_sigwinch () +{ + if (sigwinch_blocked) + return; + +#if defined (HAVE_POSIX_SIGNALS) + sigemptyset (&sigwinch_set); + sigemptyset (&sigwinch_oset); + sigaddset (&sigwinch_set, SIGWINCH); + sigprocmask (SIG_BLOCK, &sigwinch_set, &sigwinch_oset); +#else /* !HAVE_POSIX_SIGNALS */ +# if defined (HAVE_BSD_SIGNALS) + sigwinch_oldmask = sigblock (sigmask (SIGWINCH)); +# else /* !HAVE_BSD_SIGNALS */ +# if defined (HAVE_USG_SIGHOLD) + sighold (SIGWINCH); +# endif /* HAVE_USG_SIGHOLD */ +# endif /* !HAVE_BSD_SIGNALS */ +#endif /* !HAVE_POSIX_SIGNALS */ + + sigwinch_blocked = 1; +} + +/* Allow SIGWINCH to be delivered. */ +void +_rl_release_sigwinch () +{ + if (sigwinch_blocked == 0) + return; + +#if defined (HAVE_POSIX_SIGNALS) + sigprocmask (SIG_SETMASK, &sigwinch_oset, (sigset_t *)NULL); +#else +# if defined (HAVE_BSD_SIGNALS) + sigsetmask (sigwinch_oldmask); +# else /* !HAVE_BSD_SIGNALS */ +# if defined (HAVE_USG_SIGHOLD) + sigrelse (SIGWINCH); +# endif /* HAVE_USG_SIGHOLD */ +# endif /* !HAVE_BSD_SIGNALS */ +#endif /* !HAVE_POSIX_SIGNALS */ + + sigwinch_blocked = 0; +} + /* **************************************************************** */ /* */ /* Echoing special control characters */ @@ -586,14 +639,18 @@ rl_echo_signal_char (sig) char cstr[3]; int cslen, c; - if (_rl_echoctl == 0) + if (_rl_echoctl == 0 || _rl_echo_control_chars == 0) return; switch (sig) { case SIGINT: c = _rl_intr_char; break; +#if defined (SIGQUIT) case SIGQUIT: c = _rl_quit_char; break; +#endif +#if defined (SIGTSTP) case SIGTSTP: c = _rl_susp_char; break; +#endif default: return; } diff --git a/lib/readline/terminal.c b/lib/readline/terminal.c index 768ec9b..ee13092 100644 --- a/lib/readline/terminal.c +++ b/lib/readline/terminal.c @@ -528,8 +528,8 @@ _rl_init_terminal_io (terminal_name) /* Check to see if this terminal has a meta key and clear the capability variables if there is none. */ - term_has_meta = (tgetflag ("km") || tgetflag ("MT")); - if (!term_has_meta) + term_has_meta = tgetflag ("km") != 0; + if (term_has_meta == 0) _rl_term_mm = _rl_term_mo = (char *)NULL; /* Attempt to find and bind the arrow keys. Do not override already diff --git a/lib/readline/text.c b/lib/readline/text.c index 652b306..fc39189 100644 --- a/lib/readline/text.c +++ b/lib/readline/text.c @@ -67,6 +67,10 @@ static int _rl_insert_next_callback PARAMS((_rl_callback_generic_arg *)); static int _rl_char_search_callback PARAMS((_rl_callback_generic_arg *)); #endif +/* The largest chunk of text that can be inserted in one call to + rl_insert_text. Text blocks larger than this are divided. */ +#define TEXT_COUNT_MAX 1024 + /* **************************************************************** */ /* */ /* Insert and Delete */ @@ -185,10 +189,13 @@ _rl_replace_text (text, start, end) { int n; + n = 0; rl_begin_undo_group (); - rl_delete_text (start, end + 1); + if (start <= end) + rl_delete_text (start, end + 1); rl_point = start; - n = rl_insert_text (text); + if (*text) + n = rl_insert_text (text); rl_end_undo_group (); return n; @@ -571,6 +578,21 @@ rl_clear_screen (count, key) } int +rl_skip_csi_sequence (count, key) + int count, key; +{ + int ch; + + RL_SETSTATE (RL_STATE_MOREINPUT); + do + ch = rl_read_key (); + while (ch >= 0x20 && ch < 0x40); + RL_UNSETSTATE (RL_STATE_MOREINPUT); + + return 0; +} + +int rl_arrow_keys (count, c) int count, c; { @@ -707,7 +729,7 @@ _rl_insert_char (count, c) /* If we can optimize, then do it. But don't let people crash readline because of extra large arguments. */ - if (count > 1 && count <= 1024) + if (count > 1 && count <= TEXT_COUNT_MAX) { #if defined (HANDLE_MULTIBYTE) string_size = count * incoming_length; @@ -735,11 +757,11 @@ _rl_insert_char (count, c) return 0; } - if (count > 1024) + if (count > TEXT_COUNT_MAX) { int decreaser; #if defined (HANDLE_MULTIBYTE) - string_size = incoming_length * 1024; + string_size = incoming_length * TEXT_COUNT_MAX; string = (char *)xmalloc (1 + string_size); i = 0; @@ -751,7 +773,7 @@ _rl_insert_char (count, c) while (count) { - decreaser = (count > 1024) ? 1024 : count; + decreaser = (count > TEXT_COUNT_MAX) ? TEXT_COUNT_MAX : count; string[decreaser*incoming_length] = '\0'; rl_insert_text (string); count -= decreaser; @@ -761,14 +783,14 @@ _rl_insert_char (count, c) incoming_length = 0; stored_count = 0; #else /* !HANDLE_MULTIBYTE */ - char str[1024+1]; + char str[TEXT_COUNT_MAX+1]; - for (i = 0; i < 1024; i++) + for (i = 0; i < TEXT_COUNT_MAX; i++) str[i] = c; while (count) { - decreaser = (count > 1024 ? 1024 : count); + decreaser = (count > TEXT_COUNT_MAX ? TEXT_COUNT_MAX : count); str[decreaser] = '\0'; rl_insert_text (str); count -= decreaser; @@ -1129,7 +1151,7 @@ int rl_delete_horizontal_space (count, ignore) int count, ignore; { - int start = rl_point; + int start; while (rl_point && whitespace (rl_line_buffer[rl_point - 1])) rl_point--; @@ -1247,6 +1269,7 @@ rl_change_case (count, op) wchar_t wc, nwc; char mb[MB_LEN_MAX+1]; int mlen; + size_t m; mbstate_t mps; #endif @@ -1299,7 +1322,11 @@ rl_change_case (count, op) #if defined (HANDLE_MULTIBYTE) else { - mbrtowc (&wc, rl_line_buffer + start, end - start, &mps); + m = mbrtowc (&wc, rl_line_buffer + start, end - start, &mps); + if (MB_INVALIDCH (m)) + wc = (wchar_t)rl_line_buffer[start]; + else if (MB_NULLWCH (m)) + wc = L'\0'; nwc = (nop == UpCase) ? _rl_to_wupper (wc) : _rl_to_wlower (wc); if (nwc != wc) /* just skip unchanged characters */ { diff --git a/lib/readline/undo.c b/lib/readline/undo.c index c0ba631..eb042b2 100644 --- a/lib/readline/undo.c +++ b/lib/readline/undo.c @@ -139,6 +139,9 @@ _rl_copy_undo_list (head) { UNDO_LIST *list, *new, *roving, *c; + if (head == 0) + return head; + list = head; new = 0; while (list) diff --git a/lib/readline/util.c b/lib/readline/util.c index 3a3e91e..6bb64c2 100644 --- a/lib/readline/util.c +++ b/lib/readline/util.c @@ -81,8 +81,7 @@ rl_alphabetic (c) #if defined (HANDLE_MULTIBYTE) int -_rl_walphabetic (wc) - wchar_t wc; +_rl_walphabetic (wchar_t wc) { int c; @@ -121,6 +120,13 @@ rl_abort (count, key) } int +_rl_null_function (count, key) + int count, key; +{ + return 0; +} + +int rl_tty_status (count, key) int count, key; { diff --git a/lib/readline/vi_keymap.c b/lib/readline/vi_keymap.c index 3663173..ba5a27b 100644 --- a/lib/readline/vi_keymap.c +++ b/lib/readline/vi_keymap.c @@ -326,9 +326,9 @@ KEYMAP_ENTRY_ARRAY vi_insertion_keymap = { { ISFUNC, rl_insert }, /* Control-k */ { ISFUNC, rl_insert }, /* Control-l */ { ISFUNC, rl_newline }, /* Control-m */ - { ISFUNC, rl_insert }, /* Control-n */ + { ISFUNC, rl_menu_complete}, /* Control-n */ { ISFUNC, rl_insert }, /* Control-o */ - { ISFUNC, rl_insert }, /* Control-p */ + { ISFUNC, rl_backward_menu_complete }, /* Control-p */ { ISFUNC, rl_insert }, /* Control-q */ { ISFUNC, rl_reverse_search_history }, /* Control-r */ { ISFUNC, rl_forward_search_history }, /* Control-s */ diff --git a/lib/readline/vi_mode.c b/lib/readline/vi_mode.c index 5f35cf0..2a120c0 100644 --- a/lib/readline/vi_mode.c +++ b/lib/readline/vi_mode.c @@ -131,9 +131,10 @@ static int _rl_vi_callback_char_search PARAMS((_rl_callback_generic_arg *)); void _rl_vi_initialize_line () { - register int i; + register int i, n; - for (i = 0; i < sizeof (vi_mark_chars) / sizeof (int); i++) + n = sizeof (vi_mark_chars) / sizeof (vi_mark_chars[0]); + for (i = 0; i < n; i++) vi_mark_chars[i] = -1; RL_UNSETSTATE(RL_STATE_VICMDONCE); @@ -768,6 +769,7 @@ _rl_vi_change_mbchar_case (count) wchar_t wc; char mb[MB_LEN_MAX+1]; int mlen, p; + size_t m; mbstate_t ps; memset (&ps, 0, sizeof (mbstate_t)); @@ -775,7 +777,11 @@ _rl_vi_change_mbchar_case (count) count--; while (count-- && rl_point < rl_end) { - mbrtowc (&wc, rl_line_buffer + rl_point, rl_end - rl_point, &ps); + m = mbrtowc (&wc, rl_line_buffer + rl_point, rl_end - rl_point, &ps); + if (MB_INVALIDCH (m)) + wc = (wchar_t)rl_line_buffer[rl_point]; + else if (MB_NULLWCH (m)) + wc = L'\0'; if (iswupper (wc)) wc = towlower (wc); else if (iswlower (wc)) diff --git a/lib/sh/Makefile.in b/lib/sh/Makefile.in index c8db3a5..80f6cc5 100644 --- a/lib/sh/Makefile.in +++ b/lib/sh/Makefile.in @@ -86,12 +86,12 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \ vprint.c itos.c rename.c zread.c zwrite.c shtty.c \ inet_aton.c netconn.c netopen.c strpbrk.c timeval.c makepath.c \ pathcanon.c pathphys.c tmpfile.c stringlist.c stringvec.c spell.c \ - shquote.c strtrans.c strindex.c snprintf.c mailstat.c \ + shquote.c strtrans.c strcasestr.c snprintf.c mailstat.c \ fmtulong.c fmtullong.c fmtumax.c shmatch.c strnlen.c \ strtoll.c strtoull.c strtoimax.c strtoumax.c memset.c strstr.c \ - mktime.c strftime.c xstrchr.c zcatfd.c zmapfd.c winsize.c eaccess.c \ + mktime.c strftime.c mbschr.c zcatfd.c zmapfd.c winsize.c eaccess.c \ wcsdup.c fpurge.c zgetline.c mbscmp.c uconvert.c ufuncs.c \ - casemod.c fdprintf.c input_avail.c + casemod.c fdprintf.c input_avail.c mbscasecmp.c fnxform.c # The header files for this library. HSOURCES = @@ -102,10 +102,10 @@ OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \ itos.o zread.o zwrite.o shtty.o shmatch.o eaccess.o \ netconn.o netopen.o timeval.o makepath.o pathcanon.o \ pathphys.o tmpfile.o stringlist.o stringvec.o spell.o shquote.o \ - strtrans.o strindex.o snprintf.o mailstat.o fmtulong.o \ - fmtullong.o fmtumax.o xstrchr.o zcatfd.o zmapfd.o winsize.o wcsdup.o \ + strtrans.o snprintf.o mailstat.o fmtulong.o \ + fmtullong.o fmtumax.o zcatfd.o zmapfd.o winsize.o wcsdup.o \ fpurge.o zgetline.o mbscmp.o uconvert.o ufuncs.o casemod.o \ - fdprintf.o input_avail.o ${LIBOBJS} + fdprintf.o input_avail.o mbscasecmp.o fnxform.o ${LIBOBJS} SUPPORT = Makefile @@ -136,6 +136,9 @@ mostlyclean: clean ${BUILD_DIR}/version.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} version.h ) +${BUILD_DIR}/pathnames.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile + -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} pathnames.h ) + # rules for losing makes, like SunOS casemod.o: casemod.c clktck.o: clktck.c @@ -145,6 +148,7 @@ fdprintf.o: fdprintf.c fmtullong.o: fmtullong.c fmtulong.o: fmtulong.c fmtumax.o: fmtumax.c +fnxform.o: fnxform.c fpurge.o: fpurge.c getcwd.o: getcwd.c getenv.o: getenv.c @@ -153,6 +157,7 @@ input_avail.o: input_avail.c itos.o: itos.c mailstat.o: mailstat.c makepath.o: makepath.c +mbscasecmp.o: mbscasecmp.c mbscmp.o: mbscmp.c memset.o: memset.c mktime.o: mktime.c @@ -170,7 +175,7 @@ spell.o: spell.c strcasecmp.o: strcasecmp.c strerror.o: strerror.c strftime.o: strftime.c -strindex.o: strindex.c +strcasestr.o: strcasestr.c stringlist.o: stringlist.c stringvec.o: stringvec.c strnlen.o: strnlen.c @@ -190,7 +195,7 @@ uconvert.o: uconvert.c ufuncs.o: ufuncs.c vprint.o: vprint.c wcsdup.o: wcsdup.c -xstrchr.o: xstrchr.c +mbschr.o: mbschr.c zcatfd.o: zcatfd.c zmapfd.o: zmapfd.c zgetline.o: zgetline.c @@ -213,6 +218,7 @@ fdprintf.o: ${BUILD_DIR}/config.h fmtullong.o: ${BUILD_DIR}/config.h fmtulong.o: ${BUILD_DIR}/config.h fmtumax.o: ${BUILD_DIR}/config.h +fnxform.o: ${BUILD_DIR}/config.h fpurge.o: ${BUILD_DIR}/config.h getcwd.o: ${BUILD_DIR}/config.h getenv.o: ${BUILD_DIR}/config.h @@ -221,6 +227,7 @@ input_avail.o: ${BUILD_DIR}/config.h itos.o: ${BUILD_DIR}/config.h mailstat.o: ${BUILD_DIR}/config.h makepath.o: ${BUILD_DIR}/config.h +mbscasecmp.o: ${BUILD_DIR}/config.h mbscmp.o: ${BUILD_DIR}/config.h memset.o: ${BUILD_DIR}/config.h mktime.o: ${BUILD_DIR}/config.h @@ -238,7 +245,7 @@ spell.o: ${BUILD_DIR}/config.h strcasecmp.o: ${BUILD_DIR}/config.h strerror.o: ${BUILD_DIR}/config.h strftime.o: ${BUILD_DIR}/config.h -strindex.o: ${BUILD_DIR}/config.h +strcasestr.o: ${BUILD_DIR}/config.h stringlist.o: ${BUILD_DIR}/config.h stringvec.o: ${BUILD_DIR}/config.h strnlen.o: ${BUILD_DIR}/config.h @@ -258,7 +265,7 @@ uconvert.o: ${BUILD_DIR}/config.h ufuncs.o: ${BUILD_DIR}/config.h vprint.o: ${BUILD_DIR}/config.h wcsdup.o: ${BUILD_DIR}/config.h -xstrchr.o: ${BUILD_DIR}/config.h +mbschr.o: ${BUILD_DIR}/config.h zcatfd.o: ${BUILD_DIR}/config.h zgetline.o: ${BUILD_DIR}/config.h zmapfd.o: ${BUILD_DIR}/config.h @@ -393,8 +400,8 @@ strerror.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h strerror.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h strerror.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h -strindex.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h -strindex.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h +strcasestr.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h +strcasestr.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h stringlist.o: ${topdir}/bashansi.h stringlist.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h @@ -498,15 +505,19 @@ wcsdup.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h wcsdup.o: ${BASHINCDIR}/stdc.h wcsdup.o: ${topdir}/xmalloc.h -xstrchr.o: ${topdir}/bashansi.h -xstrchr.o: ${BASHINCDIR}/ansi_stdlib.h -xstrchr.o: ${BASHINCDIR}/shmbutil.h +mbschr.o: ${topdir}/bashansi.h +mbschr.o: ${BASHINCDIR}/ansi_stdlib.h +mbschr.o: ${BASHINCDIR}/shmbutil.h zgetline.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h zgetline.o: ${BASHINCDIR}/stdc.h zgetline.o: ${topdir}/xmalloc.h zgetline.o: ${topdir}/bashtypes.h +mbscasecmp.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +mbscasecmp.o: ${BASHINCDIR}/stdc.h +mbscasecmp.o: ${topdir}/xmalloc.h + mbscmp.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h mbscmp.o: ${BASHINCDIR}/stdc.h mbscmp.o: ${topdir}/xmalloc.h @@ -522,5 +533,12 @@ fdprintf.o: ${BASHINCDIR}/stdc.h input_avail.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h input_avail.o: ${BASHINCDIR}/stdc.h -input_avail.o: ${topdir}/xmalloc.h +input_avail.o: ${topdir}/xmalloc.h ${BASHINCDIR}/posixselect.h + +mktime.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +mktime.o: ${BASHINCDIR}/stdc.h +fnxform.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +fnxform.o: ${BASHINCDIR}/stdc.h +fnxform.o: ${topdir}/bashtypes.h +fnxform.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h diff --git a/lib/sh/casemod.c b/lib/sh/casemod.c index b7e0850..d85549a 100644 --- a/lib/sh/casemod.c +++ b/lib/sh/casemod.c @@ -107,6 +107,7 @@ sh_modcase (string, pat, flags) wchar_t nwc; char mb[MB_LEN_MAX+1]; int mlen; + size_t m; mbstate_t state; #endif @@ -210,7 +211,11 @@ sh_modcase (string, pat, flags) #if defined (HANDLE_MULTIBYTE) else { - mbrtowc (&wc, string + start, end - start, &state); + m = mbrtowc (&wc, string + start, end - start, &state); + if (MB_INVALIDCH (m)) + wc = (wchar_t)string[start]; + else if (MB_NULLWCH (m)) + wc = L'\0'; switch (nop) { default: diff --git a/lib/sh/fpurge.c b/lib/sh/fpurge.c index fd093b8..f9e1b9d 100644 --- a/lib/sh/fpurge.c +++ b/lib/sh/fpurge.c @@ -31,7 +31,7 @@ #endif extern int fpurge __P((FILE *stream)); -#if HAVE___FPURGE /* glibc >= 2.2, Solaris >= 7 */ +#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */ # include #endif #include @@ -39,13 +39,13 @@ extern int fpurge __P((FILE *stream)); int fpurge (FILE *fp) { -#if HAVE___FPURGE /* glibc >= 2.2, Solaris >= 7 */ +#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */ __fpurge (fp); /* The __fpurge function does not have a return value. */ return 0; -#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, MacOS X */ +#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X */ /* Call the system's fpurge function. */ # undef fpurge @@ -53,7 +53,7 @@ fpurge (FILE *fp) extern int fpurge (FILE *); # endif int result = fpurge (fp); -# if defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, Cygwin */ +# if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ if (result == 0) /* Correct the invariants that fpurge broke. on BSD systems says: @@ -71,7 +71,7 @@ fpurge (FILE *fp) /* Most systems provide FILE as a struct and the necessary bitmask in , because they need it for implementing getc() and putc() as fast macros. */ -# if defined _IO_ferror_unlocked /* GNU libc, BeOS */ +# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_IO_read_end = fp->_IO_read_ptr; fp->_IO_write_ptr = fp->_IO_write_base; /* Avoid memory leak when there is an active ungetc buffer. */ @@ -81,28 +81,27 @@ fpurge (FILE *fp) fp->_IO_save_base = NULL; } return 0; -# elif defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, Cygwin */ - fp->_p = fp->_bf._base; - fp->_r = 0; - fp->_w = ((fp->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ - ? fp->_bf._size - : 0); +# elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ + fp_->_p = fp_->_bf._base; + fp_->_r = 0; + fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ + ? fp_->_bf._size + : 0); /* Avoid memory leak when there is an active ungetc buffer. */ -# if defined __NetBSD__ || defined __OpenBSD__ /* NetBSD, OpenBSD */ - /* See - and */ -# define fp_ub ((struct { struct __sbuf _ub; } *) fp->_ext._base)->_ub -# else /* FreeBSD, MacOS X, Cygwin */ -# define fp_ub fp->_ub -# endif if (fp_ub._base != NULL) { - if (fp_ub._base != fp->_ubuf) + if (fp_ub._base != fp_->_ubuf) free (fp_ub._base); fp_ub._base = NULL; } return 0; -# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, mingw */ +# elif defined __EMX__ /* emx+gcc */ + fp->_ptr = fp->_buffer; + fp->_rcount = 0; + fp->_wcount = 0; + fp->_ungetc_count = 0; + return 0; +# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ fp->_ptr = fp->_base; if (fp->_ptr != NULL) fp->_cnt = 0; @@ -115,8 +114,34 @@ fpurge (FILE *fp) fp->__bufpos = fp->__bufread; # endif return 0; +# elif defined __QNX__ /* QNX */ + fp->_Rback = fp->_Back + sizeof (fp->_Back); + fp->_Rsave = NULL; + if (fp->_Mode & 0x2000 /* _MWRITE */) + /* fp->_Buf <= fp->_Next <= fp->_Wend */ + fp->_Next = fp->_Buf; + else + /* fp->_Buf <= fp->_Next <= fp->_Rend */ + fp->_Rend = fp->_Next; + return 0; +# elif defined __MINT__ /* Atari FreeMiNT */ + if (fp->__pushed_back) + { + fp->__bufp = fp->__pushback_bufp; + fp->__pushed_back = 0; + } + /* Preserve the current file position. */ + if (fp->__target != -1) + fp->__target += fp->__bufp - fp->__buffer; + fp->__bufp = fp->__buffer; + /* Nothing in the buffer, next getc is nontrivial. */ + fp->__get_limit = fp->__bufp; + /* Nothing in the buffer, next putc is nontrivial. */ + fp->__put_limit = fp->__buffer; + return 0; # else - #error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." +# warning "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." + return 0; # endif #endif diff --git a/lib/sh/getcwd.c b/lib/sh/getcwd.c index 84799bb..07eb817 100644 --- a/lib/sh/getcwd.c +++ b/lib/sh/getcwd.c @@ -48,6 +48,12 @@ #include +#if defined (BROKEN_DIRENT_D_INO) +# include "command.h" +# include "general.h" +# include "externs.h" +#endif + #include #if !defined (errno) diff --git a/lib/sh/input_avail.c b/lib/sh/input_avail.c index 5e01f8f..ac157a9 100644 --- a/lib/sh/input_avail.c +++ b/lib/sh/input_avail.c @@ -39,14 +39,7 @@ #include "bashansi.h" -#if defined (HAVE_SELECT) -# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX) -# include -# endif -#endif /* HAVE_SELECT */ -#if defined (HAVE_SYS_SELECT_H) -# include -#endif +#include "posixselect.h" #if defined (FIONREAD_IN_SYS_IOCTL) # include diff --git a/lib/sh/mbscmp.c b/lib/sh/mbscmp.c index ea01c27..e0eae5d 100644 --- a/lib/sh/mbscmp.c +++ b/lib/sh/mbscmp.c @@ -24,6 +24,7 @@ #include #include +#include /* Compare MBS1 and MBS2. */ int @@ -40,16 +41,25 @@ mbscmp (mbs1, mbs2) do { - len1 = mbtowc ((wchar_t *) &c1, mbs1, MB_CUR_MAX); - len2 = mbtowc ((wchar_t *) &c2, mbs2, MB_CUR_MAX); + len1 = mbtowc (&c1, mbs1, MB_CUR_MAX); + len2 = mbtowc (&c2, mbs2, MB_CUR_MAX); if (len1 == 0) return len2 == 0 ? 0 : -1; - if (len2 == 0) + else if (len2 == 0) return 1; - if (len1 < 0 || len2 < 0) - /* FIXME: an illegal character appears. What to do? */ - return c1 - c2; + else if (len1 > 0 && len2 < 0) + return -1; + else if (len1 < 0 && len2 > 0) + return 1; + else if (len1 < 0 && len2 < 0) + { + len1 = strlen (mbs1); + len2 = strlen (mbs2); + return (len1 == len2 ? memcmp (mbs1, mbs2, len1) + : ((len1 < len2) ? (memcmp (mbs1, mbs2, len1) > 0 ? 1 : -1) + : (memcmp (mbs1, mbs2, len2) >= 0 ? 1 : -1))); + } mbs1 += len1; mbs2 += len2; diff --git a/lib/sh/snprintf.c b/lib/sh/snprintf.c index c406d4a..d681b16 100644 --- a/lib/sh/snprintf.c +++ b/lib/sh/snprintf.c @@ -61,9 +61,13 @@ # include #endif -#if defined(DEBUG) +/* GCC 4.2 on Snow Leopard doesn't like the snprintf prototype */ +#if defined(DEBUG) && !defined (MACOSX) # undef HAVE_SNPRINTF # undef HAVE_ASPRINTF + +# define HAVE_SNPRINTF 0 +# define HAVE_ASPRINTF 0 #endif #if defined(DRIVER) && !defined(HAVE_CONFIG_H) @@ -82,7 +86,7 @@ #define intmax_t long #endif -#if !defined (HAVE_SNPRINTF) || !defined (HAVE_ASPRINTF) +#if !HAVE_SNPRINTF || !HAVE_ASPRINTF #include @@ -299,6 +303,13 @@ static void dfallback __P((struct DATA *, const char *, const char *, double)); static char *groupnum __P((char *)); +#ifndef HAVE_ISINF_IN_LIBC +static int isinf __P((double)); +#endif +#ifndef HAVE_ISNAN_IN_LIBC +static int isnan __P((double)); +#endif + #ifdef DRIVER static void memory_error_and_abort (); static void *xmalloc __P((size_t)); @@ -1640,7 +1651,7 @@ dfallback (data, fs, fe, d) } #endif /* FLOATING_POINT */ -#ifndef HAVE_SNPRINTF +#if !HAVE_SNPRINTF int #if defined (__STDC__) @@ -1690,7 +1701,7 @@ snprintf(string, length, format, va_alist) #endif /* HAVE_SNPRINTF */ -#ifndef HAVE_ASPRINTF +#if !HAVE_ASPRINTF int #if defined (__STDC__) @@ -1735,9 +1746,9 @@ asprintf(stringp, format, va_alist) return rval; } -#endif +#endif /* !HAVE_ASPRINTF */ -#endif +#endif /* !HAVE_SNPRINTF || !HAVE_ASPRINTF */ #ifdef DRIVER diff --git a/lib/sh/strtoimax.c b/lib/sh/strtoimax.c index 373f66a..a4170f0 100644 --- a/lib/sh/strtoimax.c +++ b/lib/sh/strtoimax.c @@ -1,6 +1,6 @@ /* strtoimax - convert string representation of a number into an intmax_t value. */ -/* Copyright 1999-2005 Free Software Foundation, Inc. +/* Copyright 1999-2009 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -28,6 +28,10 @@ # include #endif +#if HAVE_STDINT_H +# include +#endif + #if HAVE_STDLIB_H # include #endif diff --git a/lib/sh/strtoumax.c b/lib/sh/strtoumax.c index 3652b1e..09423ad 100644 --- a/lib/sh/strtoumax.c +++ b/lib/sh/strtoumax.c @@ -1,6 +1,6 @@ /* strtoumax - convert string representation of a number into an uintmax_t value. */ -/* Copyright 1999-2005 Free Software Foundation, Inc. +/* Copyright 1999-2009 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -17,6 +17,7 @@ You should have received a copy of the GNU General Public License along with Bash. If not, see . */ + /* Written by Paul Eggert. Modified by Chet Ramey for Bash. */ #if HAVE_CONFIG_H @@ -27,6 +28,10 @@ # include #endif +#if HAVE_STDINT_H +# include +#endif + #if HAVE_STDLIB_H # include #endif diff --git a/lib/sh/uconvert.c b/lib/sh/uconvert.c index 1009565..3d656df 100644 --- a/lib/sh/uconvert.c +++ b/lib/sh/uconvert.c @@ -92,7 +92,7 @@ uconvert(s, ip, up) ipart = (ipart * 10) + (*p - '0'); } - if (*p == 0) + if (p == 0 || *p == 0) /* callers ensure p can never be 0; this is to shut up clang */ RETURN(1); if (*p == DECIMAL) diff --git a/mailcheck.c b/mailcheck.c index ed64bdf..bd95f0d 100644 --- a/mailcheck.c +++ b/mailcheck.c @@ -268,7 +268,7 @@ file_mod_date_changed (i) mtime = mailfiles[i]->mod_time; if ((mailstat (file, &finfo) == 0) && (finfo.st_size > 0)) - return (mtime != finfo.st_mtime); + return (mtime < finfo.st_mtime); if (finfo.st_size == 0 && mailfiles[i]->file_size > 0) UPDATE_MAIL_FILE (i, finfo); @@ -289,7 +289,7 @@ file_access_date_changed (i) atime = mailfiles[i]->access_time; if ((mailstat (file, &finfo) == 0) && (finfo.st_size > 0)) - return (atime != finfo.st_atime); + return (atime < finfo.st_atime); return (0); } diff --git a/make_cmd.c b/make_cmd.c index 58c4432..2eb4fda 100644 --- a/make_cmd.c +++ b/make_cmd.c @@ -34,6 +34,7 @@ #include "bashintl.h" +#include "parser.h" #include "syntax.h" #include "command.h" #include "general.h" @@ -53,7 +54,7 @@ #include "shmbutil.h" -extern int line_number, current_command_line_count; +extern int line_number, current_command_line_count, parser_state; extern int last_command_exit_value; /* Object caching */ @@ -528,11 +529,17 @@ make_simple_command (element, command) /* If we are starting from scratch, then make the initial command structure. Also note that we have to fill in all the slots, since malloc doesn't return zeroed space. */ - if (!command) - command = make_bare_simple_command (); + if (command == 0) + { + command = make_bare_simple_command (); + parser_state |= PST_REDIRLIST; + } if (element.word) - command->value.Simple->words = make_word_list (element.word, command->value.Simple->words); + { + command->value.Simple->words = make_word_list (element.word, command->value.Simple->words); + parser_state &= ~PST_REDIRLIST; + } else if (element.redirect) { REDIRECT *r = element.redirect; @@ -544,6 +551,7 @@ make_simple_command (element, command) r->next = command->value.Simple->redirects; command->value.Simple->redirects = element.redirect; } + return (command); } @@ -665,10 +673,11 @@ document_done: INSTRUCTION is the instruction type, SOURCE is a file descriptor, and DEST is a file descriptor or a WORD_DESC *. */ REDIRECT * -make_redirection (source, instruction, dest_and_filename) - int source; +make_redirection (source, instruction, dest_and_filename, flags) + REDIRECTEE source; enum r_instruction instruction; REDIRECTEE dest_and_filename; + int flags; { REDIRECT *temp; WORD_DESC *w; @@ -682,6 +691,7 @@ make_redirection (source, instruction, dest_and_filename) temp->redirectee = dest_and_filename; temp->instruction = instruction; temp->flags = 0; + temp->rflags = flags; temp->next = (REDIRECT *)NULL; switch (instruction) @@ -827,6 +837,7 @@ clean_simple_command (command) REVERSE_LIST (command->value.Simple->redirects, REDIRECT *); } + parser_state &= ~PST_REDIRLIST; return (command); } diff --git a/make_cmd.h b/make_cmd.h index 0a7456e..f17774d 100644 --- a/make_cmd.h +++ b/make_cmd.h @@ -47,7 +47,7 @@ extern COMMAND *make_until_command __P((COMMAND *, COMMAND *)); extern COMMAND *make_bare_simple_command __P((void)); extern COMMAND *make_simple_command __P((ELEMENT, COMMAND *)); extern void make_here_document __P((REDIRECT *, int)); -extern REDIRECT *make_redirection __P((int, enum r_instruction, REDIRECTEE)); +extern REDIRECT *make_redirection __P((REDIRECTEE, enum r_instruction, REDIRECTEE, int)); extern COMMAND *make_function_def __P((WORD_DESC *, COMMAND *, int, int)); extern COMMAND *clean_simple_command __P((COMMAND *)); diff --git a/parse.y b/parse.y index eebd549..2b47ff8 100644 --- a/parse.y +++ b/parse.y @@ -118,6 +118,7 @@ extern int current_command_number; extern int sourcelevel, parse_and_execute_level; extern int posixly_correct; extern int last_command_exit_value; +extern pid_t last_command_subst_pid; extern char *shell_name, *current_host_name; extern char *dist_version; extern int patch_level; @@ -246,10 +247,6 @@ int promptvars = 1; quotes. */ int extended_quote = 1; -/* The decoded prompt string. Used if READLINE is not defined or if - editing is turned off. Analogous to current_readline_prompt. */ -static char *current_decoded_prompt; - /* The number of lines read from input while creating the current command. */ int current_command_line_count; @@ -259,6 +256,9 @@ int shell_eof_token; /* The token currently being read. */ int current_token; +/* The current parser state. */ +int parser_state; + /* Variables to manage the task of reading here documents, because we need to defer the reading until after a complete command has been collected. */ static REDIRECT *redir_stack[10]; @@ -283,8 +283,9 @@ static int function_bstart; /* The line number in a script at which an arithmetic for command starts. */ static int arith_for_lineno; -/* The current parser state. */ -static int parser_state; +/* The decoded prompt string. Used if READLINE is not defined or if + editing is turned off. Analogous to current_readline_prompt. */ +static char *current_decoded_prompt; /* The last read token, or NULL. read_token () uses this for context checking. */ @@ -296,6 +297,8 @@ static int token_before_that; /* The token read prior to token_before_that. */ static int two_tokens_ago; +static int global_extglob; + /* The line number in a script where the word in a `case WORD', `select WORD' or `for WORD' begins. This is a nested command maximum, since the array index is decremented after a case, select, or for command is parsed. */ @@ -310,6 +313,7 @@ static int word_top = -1; static int token_to_read; static WORD_DESC *word_desc_to_read; +static REDIRECTEE source; static REDIRECTEE redir; %} @@ -332,7 +336,7 @@ static REDIRECTEE redir; %token IN BANG TIME TIMEOPT /* More general tokens. yylex () knows how to make these. */ -%token WORD ASSIGNMENT_WORD +%token WORD ASSIGNMENT_WORD REDIR_WORD %token NUMBER %token ARITH_CMD ARITH_FOR_EXPRS %token COND_CMD @@ -419,159 +423,273 @@ word_list: WORD redirection: '>' WORD { + source.dest = 1; redir.filename = $2; - $$ = make_redirection (1, r_output_direction, redir); + $$ = make_redirection (source, r_output_direction, redir, 0); } | '<' WORD { + source.dest = 0; redir.filename = $2; - $$ = make_redirection (0, r_input_direction, redir); + $$ = make_redirection (source, r_input_direction, redir, 0); } | NUMBER '>' WORD { + source.dest = $1; redir.filename = $3; - $$ = make_redirection ($1, r_output_direction, redir); + $$ = make_redirection (source, r_output_direction, redir, 0); } | NUMBER '<' WORD { + source.dest = $1; + redir.filename = $3; + $$ = make_redirection (source, r_input_direction, redir, 0); + } + | REDIR_WORD '>' WORD + { + source.filename = $1; redir.filename = $3; - $$ = make_redirection ($1, r_input_direction, redir); + $$ = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); + } + | REDIR_WORD '<' WORD + { + source.filename = $1; + redir.filename = $3; + $$ = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); } | GREATER_GREATER WORD { + source.dest = 1; redir.filename = $2; - $$ = make_redirection (1, r_appending_to, redir); + $$ = make_redirection (source, r_appending_to, redir, 0); } | NUMBER GREATER_GREATER WORD { + source.dest = $1; + redir.filename = $3; + $$ = make_redirection (source, r_appending_to, redir, 0); + } + | REDIR_WORD GREATER_GREATER WORD + { + source.filename = $1; + redir.filename = $3; + $$ = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); + } + | GREATER_BAR WORD + { + source.dest = 1; + redir.filename = $2; + $$ = make_redirection (source, r_output_force, redir, 0); + } + | NUMBER GREATER_BAR WORD + { + source.dest = $1; + redir.filename = $3; + $$ = make_redirection (source, r_output_force, redir, 0); + } + | REDIR_WORD GREATER_BAR WORD + { + source.filename = $1; + redir.filename = $3; + $$ = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); + } + | LESS_GREATER WORD + { + source.dest = 0; + redir.filename = $2; + $$ = make_redirection (source, r_input_output, redir, 0); + } + | NUMBER LESS_GREATER WORD + { + source.dest = $1; redir.filename = $3; - $$ = make_redirection ($1, r_appending_to, redir); + $$ = make_redirection (source, r_input_output, redir, 0); + } + | REDIR_WORD LESS_GREATER WORD + { + source.filename = $1; + redir.filename = $3; + $$ = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); } | LESS_LESS WORD { + source.dest = 0; redir.filename = $2; - $$ = make_redirection (0, r_reading_until, redir); + $$ = make_redirection (source, r_reading_until, redir, 0); redir_stack[need_here_doc++] = $$; } | NUMBER LESS_LESS WORD { + source.dest = $1; + redir.filename = $3; + $$ = make_redirection (source, r_reading_until, redir, 0); + redir_stack[need_here_doc++] = $$; + } + | REDIR_WORD LESS_LESS WORD + { + source.filename = $1; redir.filename = $3; - $$ = make_redirection ($1, r_reading_until, redir); + $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); + redir_stack[need_here_doc++] = $$; + } + | LESS_LESS_MINUS WORD + { + source.dest = 0; + redir.filename = $2; + $$ = make_redirection (source, r_deblank_reading_until, redir, 0); + redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS_MINUS WORD + { + source.dest = $1; + redir.filename = $3; + $$ = make_redirection (source, r_deblank_reading_until, redir, 0); + redir_stack[need_here_doc++] = $$; + } + | REDIR_WORD LESS_LESS_MINUS WORD + { + source.filename = $1; + redir.filename = $3; + $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); redir_stack[need_here_doc++] = $$; } | LESS_LESS_LESS WORD { + source.dest = 0; redir.filename = $2; - $$ = make_redirection (0, r_reading_string, redir); + $$ = make_redirection (source, r_reading_string, redir, 0); } | NUMBER LESS_LESS_LESS WORD { + source.dest = $1; redir.filename = $3; - $$ = make_redirection ($1, r_reading_string, redir); + $$ = make_redirection (source, r_reading_string, redir, 0); + } + | REDIR_WORD LESS_LESS_LESS WORD + { + source.filename = $1; + redir.filename = $3; + $$ = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); } | LESS_AND NUMBER { + source.dest = 0; redir.dest = $2; - $$ = make_redirection (0, r_duplicating_input, redir); + $$ = make_redirection (source, r_duplicating_input, redir, 0); } | NUMBER LESS_AND NUMBER { + source.dest = $1; + redir.dest = $3; + $$ = make_redirection (source, r_duplicating_input, redir, 0); + } + | REDIR_WORD LESS_AND NUMBER + { + source.filename = $1; redir.dest = $3; - $$ = make_redirection ($1, r_duplicating_input, redir); + $$ = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); } | GREATER_AND NUMBER { + source.dest = 1; redir.dest = $2; - $$ = make_redirection (1, r_duplicating_output, redir); + $$ = make_redirection (source, r_duplicating_output, redir, 0); } | NUMBER GREATER_AND NUMBER { + source.dest = $1; redir.dest = $3; - $$ = make_redirection ($1, r_duplicating_output, redir); + $$ = make_redirection (source, r_duplicating_output, redir, 0); + } + | REDIR_WORD GREATER_AND NUMBER + { + source.filename = $1; + redir.dest = $3; + $$ = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); } | LESS_AND WORD { + source.dest = 0; redir.filename = $2; - $$ = make_redirection (0, r_duplicating_input_word, redir); + $$ = make_redirection (source, r_duplicating_input_word, redir, 0); } | NUMBER LESS_AND WORD { + source.dest = $1; + redir.filename = $3; + $$ = make_redirection (source, r_duplicating_input_word, redir, 0); + } + | REDIR_WORD LESS_AND WORD + { + source.filename = $1; redir.filename = $3; - $$ = make_redirection ($1, r_duplicating_input_word, redir); + $$ = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); } | GREATER_AND WORD { + source.dest = 1; redir.filename = $2; - $$ = make_redirection (1, r_duplicating_output_word, redir); + $$ = make_redirection (source, r_duplicating_output_word, redir, 0); } | NUMBER GREATER_AND WORD { + source.dest = $1; redir.filename = $3; - $$ = make_redirection ($1, r_duplicating_output_word, redir); + $$ = make_redirection (source, r_duplicating_output_word, redir, 0); } - | LESS_LESS_MINUS WORD - { - redir.filename = $2; - $$ = make_redirection - (0, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS_MINUS WORD + | REDIR_WORD GREATER_AND WORD { + source.filename = $1; redir.filename = $3; - $$ = make_redirection - ($1, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = $$; + $$ = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); } | GREATER_AND '-' { + source.dest = 1; redir.dest = 0; - $$ = make_redirection (1, r_close_this, redir); + $$ = make_redirection (source, r_close_this, redir, 0); } | NUMBER GREATER_AND '-' { + source.dest = $1; redir.dest = 0; - $$ = make_redirection ($1, r_close_this, redir); + $$ = make_redirection (source, r_close_this, redir, 0); } - | LESS_AND '-' + | REDIR_WORD GREATER_AND '-' { + source.filename = $1; redir.dest = 0; - $$ = make_redirection (0, r_close_this, redir); + $$ = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); } - | NUMBER LESS_AND '-' + | LESS_AND '-' { + source.dest = 0; redir.dest = 0; - $$ = make_redirection ($1, r_close_this, redir); + $$ = make_redirection (source, r_close_this, redir, 0); } - | AND_GREATER WORD - { - redir.filename = $2; - $$ = make_redirection (1, r_err_and_out, redir); - } - | AND_GREATER_GREATER WORD + | NUMBER LESS_AND '-' { - redir.filename = $2; - $$ = make_redirection (1, r_append_err_and_out, redir); + source.dest = $1; + redir.dest = 0; + $$ = make_redirection (source, r_close_this, redir, 0); } - | NUMBER LESS_GREATER WORD + | REDIR_WORD LESS_AND '-' { - redir.filename = $3; - $$ = make_redirection ($1, r_input_output, redir); + source.filename = $1; + redir.dest = 0; + $$ = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); } - | LESS_GREATER WORD + | AND_GREATER WORD { + source.dest = 1; redir.filename = $2; - $$ = make_redirection (0, r_input_output, redir); + $$ = make_redirection (source, r_err_and_out, redir, 0); } - | GREATER_BAR WORD + | AND_GREATER_GREATER WORD { + source.dest = 1; redir.filename = $2; - $$ = make_redirection (1, r_output_force, redir); - } - | NUMBER GREATER_BAR WORD - { - redir.filename = $3; - $$ = make_redirection ($1, r_output_force, redir); + $$ = make_redirection (source, r_append_err_and_out, redir, 0); } ; @@ -1119,12 +1237,13 @@ pipeline: pipeline '|' newline_list pipeline { /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ COMMAND *tc; - REDIRECTEE rd; + REDIRECTEE rd, sd; REDIRECT *r; tc = $1->type == cm_simple ? (COMMAND *)$1->value.Simple : $1; + sd.dest = 2; rd.dest = 1; - r = make_redirection (2, r_duplicating_output, rd); + r = make_redirection (sd, r_duplicating_output, rd, 0); if (tc->redirects) { register REDIRECT *t; @@ -1786,7 +1905,7 @@ read_a_line (remove_quoted_newline) { static char *line_buffer = (char *)NULL; static int buffer_size = 0; - int indx = 0, c, peekc, pass_next; + int indx, c, peekc, pass_next; #if defined (READLINE) if (no_line_editing && SHOULD_PROMPT ()) @@ -1795,7 +1914,7 @@ read_a_line (remove_quoted_newline) #endif print_prompt (); - pass_next = 0; + pass_next = indx = 0; while (1) { /* Allow immediate exit if interrupted during input. */ @@ -2235,6 +2354,7 @@ shell_getc (remove_quoted_newline) because we have fully consumed the result of the last alias expansion. Do it transparently; just return the next character of the string popped to. */ +pop_alias: if (!uc && (pushed_string_list != (STRING_SAVER *)NULL)) { pop_string (); @@ -2249,6 +2369,17 @@ shell_getc (remove_quoted_newline) if (SHOULD_PROMPT ()) prompt_again (); line_number++; + /* XXX - what do we do here if we're expanding an alias whose definition + ends with a newline? Recall that we inhibit the appending of a + space in mk_alexpansion() if newline is the last character. */ +#if 0 /* XXX - bash-4.2 (jonathan@claggett.org) */ + if (expanding_alias () && shell_input_line[shell_input_line_index+1] == '\0') + { + uc = 0; + goto pop_alias; + } +#endif + goto restart_read; } @@ -2396,7 +2527,7 @@ gather_here_documents () static int open_brace_count; #define command_token_position(token) \ - (((token) == ASSIGNMENT_WORD) || \ + (((token) == ASSIGNMENT_WORD) || (parser_state&PST_REDIRLIST) || \ ((token) != SEMI_SEMI && (token) != SEMI_AND && (token) != SEMI_SEMI_AND && reserved_word_acceptable(token))) #define assignment_acceptable(token) \ @@ -2459,7 +2590,11 @@ mk_alexpansion (s) l = strlen (s); r = xmalloc (l + 2); strcpy (r, s); +#if 0 /* XXX - bash-4.2 */ + if (r[l -1] != ' ' && r[l -1] != '\n') +#else if (r[l -1] != ' ') +#endif r[l++] = ' '; r[l] = '\0'; return r; @@ -2653,6 +2788,12 @@ reset_parser () dstack.delimiter_depth = 0; /* No delimiters found so far. */ open_brace_count = 0; +#if defined (EXTENDED_GLOB) + /* Reset to global value of extended glob */ + if (parser_state & PST_EXTPAT) + extended_glob = global_extglob; +#endif + parser_state = 0; #if defined (ALIAS) || defined (DPAREN_ARITHMETIC) @@ -2967,7 +3108,7 @@ parse_matched_pair (qc, open, close, lenp, flags) char *ret, *nestret, *ttrans; int retind, retsize, rflags; -/* itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */ +/*itrace("parse_matched_pair[%d]: open = %c close = %c flags = %d", line_number, open, close, flags);*/ count = 1; tflags = 0; @@ -3176,6 +3317,7 @@ parse_dollar_word: ret[retind] = '\0'; if (lenp) *lenp = retind; +/*itrace("parse_matched_pair[%d]: returning %s", line_number, ret);*/ return ret; } @@ -3251,6 +3393,8 @@ eof_error: { tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC); /*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/ + free (heredelim); + heredelim = 0; lex_firstind = -1; } else @@ -3262,6 +3406,25 @@ eof_error: if (ch == '\n' && SHOULD_PROMPT ()) prompt_again (); + /* XXX -- possibly allow here doc to be delimited by ending right + paren. */ + if ((tflags & LEX_INHEREDOC) && ch == close && count == 1) + { + int tind; +/*itrace("parse_comsub: in here doc, ch == close, retind - firstind = %d hdlen = %d retind = %d", retind-lex_firstind, hdlen, retind);*/ + tind = lex_firstind; + while ((tflags & LEX_STRIPDOC) && ret[tind] == '\t') + tind++; + if (retind-tind == hdlen && STREQN (ret + tind, heredelim, hdlen)) + { + tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC); +/*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/ + free (heredelim); + heredelim = 0; + lex_firstind = -1; + } + } + /* Don't bother counting parens or doing anything else if in a comment */ if (tflags & (LEX_INCOMMENT|LEX_INHEREDOC)) { @@ -3270,7 +3433,10 @@ eof_error: ret[retind++] = ch; if ((tflags & LEX_INCOMMENT) && ch == '\n') +{ +/*itrace("parse_comsub:%d: lex_incomment -> 0 ch = `%c'", line_number, ch);*/ tflags &= ~LEX_INCOMMENT; +} continue; } @@ -3335,13 +3501,24 @@ eof_error: { if (lex_firstind == -1 && shellbreak (ch) == 0) lex_firstind = retind; +#if 0 + else if (heredelim && (tflags & LEX_PASSNEXT) == 0 && ch == '\n') + { + tflags |= LEX_INHEREDOC; + tflags &= ~LEX_HEREDELIM; + lex_firstind = retind + 1; + } +#endif else if (lex_firstind >= 0 && (tflags & LEX_PASSNEXT) == 0 && shellbreak (ch)) { - nestret = substring (ret, lex_firstind, retind); - heredelim = string_quote_removal (nestret, 0); - free (nestret); - hdlen = STRLEN(heredelim); + if (heredelim == 0) + { + nestret = substring (ret, lex_firstind, retind); + heredelim = string_quote_removal (nestret, 0); + free (nestret); + hdlen = STRLEN(heredelim); /*itrace("parse_comsub:%d: found here doc delimiter `%s' (%d)", line_number, heredelim, hdlen);*/ + } if (ch == '\n') { tflags |= LEX_INHEREDOC; @@ -3364,7 +3541,7 @@ eof_error: { RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); ret[retind++] = peekc; -/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch); */ +/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/ tflags |= LEX_RESWDOK; lex_rwlen = 0; continue; @@ -3372,8 +3549,8 @@ eof_error: else if (ch == '\n' || COMSUB_META(ch)) { shell_ungetc (peekc); - tflags |= LEX_RESWDOK; /*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/ + tflags |= LEX_RESWDOK; lex_rwlen = 0; continue; } @@ -3403,12 +3580,12 @@ eof_error: if (STREQN (ret + retind - 4, "case", 4)) { tflags |= LEX_INCASE; -/*itrace("parse_comsub:%d: found `case', lex_incase -> 1", line_number);*/ +/*itrace("parse_comsub:%d: found `case', lex_incase -> 1 lex_reswdok -> 0", line_number);*/ } else if (STREQN (ret + retind - 4, "esac", 4)) { tflags &= ~LEX_INCASE; -/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0", line_number);*/ +/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0 lex_reswdok -> 0", line_number);*/ } tflags &= ~LEX_RESWDOK; } @@ -3431,6 +3608,7 @@ eof_error: } } + /* Might be the start of a here-doc delimiter */ if MBTEST((tflags & LEX_INCOMMENT) == 0 && (tflags & LEX_CKCASE) && ch == '<') { /* Add this character. */ @@ -3487,7 +3665,10 @@ eof_error: /*itrace("parse_comsub:%d: found close: count = %d", line_number, count);*/ } else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && (tflags & LEX_INCASE) == 0 && ch == open) /* nested begin */ +{ count++; +/*itrace("parse_comsub:%d: found open: count = %d", line_number, count);*/ +} /* Add this character. */ RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); @@ -3903,7 +4084,13 @@ cond_term () /* binop */ tok = read_token (READ); if (tok == WORD && test_binop (yylval.word->word)) - op = yylval.word; + { + op = yylval.word; + if (op->word[0] == '=' && (op->word[1] == '\0' || (op->word[1] == '=' && op->word[2] == '\0'))) + parser_state |= PST_EXTPAT; + else if (op->word[0] == '!' && op->word[1] == '=' && op->word[2] == '\0') + parser_state |= PST_EXTPAT; + } #if defined (COND_REGEXP) else if (tok == WORD && STREQ (yylval.word->word, "=~")) { @@ -3939,8 +4126,13 @@ cond_term () } /* rhs */ + if (parser_state & PST_EXTPAT) + extended_glob = 1; tok = read_token (READ); - parser_state &= ~PST_REGEXP; + if (parser_state & PST_EXTPAT) + extended_glob = global_extglob; + parser_state &= ~(PST_REGEXP|PST_EXTPAT); + if (tok == WORD) { tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); @@ -3985,6 +4177,7 @@ parse_cond_command () { COND_COM *cexp; + global_extglob = extended_glob; cexp = cond_expr (); return (make_cond_command (cexp)); } @@ -4457,6 +4650,19 @@ got_token: yylval.word = the_word; + if (token[0] == '{' && token[token_index-1] == '}' && + (character == '<' || character == '>')) + { + /* can use token; already copied to the_word */ + token[token_index-1] = '\0'; + if (legal_identifier (token+1)) + { + strcpy (the_word->word, token+1); +/*itrace("read_token_word: returning REDIR_WORD for %s", the_word->word);*/ + return (REDIR_WORD); + } + } + result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT)) ? ASSIGNMENT_WORD : WORD; @@ -4647,7 +4853,7 @@ prompt_again () { char *temp_prompt; - if (interactive == 0 || expanding_alias()) /* XXX */ + if (interactive == 0 || expanding_alias ()) /* XXX */ return; ps1_prompt = get_string_value ("PS1"); @@ -4743,7 +4949,7 @@ decode_prompt_string (string) WORD_LIST *list; char *result, *t; struct dstack save_dstack; - int last_exit_value; + int last_exit_value, last_comsub_pid; #if defined (PROMPT_STRING_DECODE) int result_size, result_index; int c, n, i; @@ -4930,6 +5136,13 @@ decode_prompt_string (string) } t_string[tlen] = '\0'; +#if defined (MACOSX) + /* Convert from "fs" format to "input" format */ + temp = fnx_fromfs (t_string, strlen (t_string)); + if (temp != t_string) + strcpy (t_string, temp); +#endif + #define ROOT_PATH(x) ((x)[0] == '/' && (x)[1] == 0) #define DOUBLE_SLASH_ROOT(x) ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0) /* Abbreviate \W as ~ if $PWD == $HOME */ @@ -5084,11 +5297,13 @@ not_escape: if (promptvars || posixly_correct) { last_exit_value = last_command_exit_value; + last_comsub_pid = last_command_subst_pid; list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0); free (result); result = string_list (list); dispose_words (list); last_command_exit_value = last_exit_value; + last_command_subst_pid = last_comsub_pid; } else { @@ -5231,7 +5446,7 @@ report_syntax_error (message) parser_error (line_number, "%s", message); if (interactive && EOF_Reached) EOF_Reached = 0; - last_command_exit_value = EX_USAGE; + last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE; return; } @@ -5246,7 +5461,7 @@ report_syntax_error (message) if (interactive == 0) print_offending_line (); - last_command_exit_value = EX_USAGE; + last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE; return; } @@ -5277,7 +5492,7 @@ report_syntax_error (message) EOF_Reached = 0; } - last_command_exit_value = EX_USAGE; + last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE; } /* ??? Needed function. ??? We have to be able to discard the constructs diff --git a/parser-built b/parser-built index 552d7ad..13e8550 100644 --- a/parser-built +++ b/parser-built @@ -63,27 +63,28 @@ TIMEOPT = 279, WORD = 280, ASSIGNMENT_WORD = 281, - NUMBER = 282, - ARITH_CMD = 283, - ARITH_FOR_EXPRS = 284, - COND_CMD = 285, - AND_AND = 286, - OR_OR = 287, - GREATER_GREATER = 288, - LESS_LESS = 289, - LESS_AND = 290, - LESS_LESS_LESS = 291, - GREATER_AND = 292, - SEMI_SEMI = 293, - SEMI_AND = 294, - SEMI_SEMI_AND = 295, - LESS_LESS_MINUS = 296, - AND_GREATER = 297, - AND_GREATER_GREATER = 298, - LESS_GREATER = 299, - GREATER_BAR = 300, - BAR_AND = 301, - yacc_EOF = 302 + REDIR_WORD = 282, + NUMBER = 283, + ARITH_CMD = 284, + ARITH_FOR_EXPRS = 285, + COND_CMD = 286, + AND_AND = 287, + OR_OR = 288, + GREATER_GREATER = 289, + LESS_LESS = 290, + LESS_AND = 291, + LESS_LESS_LESS = 292, + GREATER_AND = 293, + SEMI_SEMI = 294, + SEMI_AND = 295, + SEMI_SEMI_AND = 296, + LESS_LESS_MINUS = 297, + AND_GREATER = 298, + AND_GREATER_GREATER = 299, + LESS_GREATER = 300, + GREATER_BAR = 301, + BAR_AND = 302, + yacc_EOF = 303 }; #endif /* Tokens. */ @@ -111,34 +112,35 @@ #define TIMEOPT 279 #define WORD 280 #define ASSIGNMENT_WORD 281 -#define NUMBER 282 -#define ARITH_CMD 283 -#define ARITH_FOR_EXPRS 284 -#define COND_CMD 285 -#define AND_AND 286 -#define OR_OR 287 -#define GREATER_GREATER 288 -#define LESS_LESS 289 -#define LESS_AND 290 -#define LESS_LESS_LESS 291 -#define GREATER_AND 292 -#define SEMI_SEMI 293 -#define SEMI_AND 294 -#define SEMI_SEMI_AND 295 -#define LESS_LESS_MINUS 296 -#define AND_GREATER 297 -#define AND_GREATER_GREATER 298 -#define LESS_GREATER 299 -#define GREATER_BAR 300 -#define BAR_AND 301 -#define yacc_EOF 302 +#define REDIR_WORD 282 +#define NUMBER 283 +#define ARITH_CMD 284 +#define ARITH_FOR_EXPRS 285 +#define COND_CMD 286 +#define AND_AND 287 +#define OR_OR 288 +#define GREATER_GREATER 289 +#define LESS_LESS 290 +#define LESS_AND 291 +#define LESS_LESS_LESS 292 +#define GREATER_AND 293 +#define SEMI_SEMI 294 +#define SEMI_AND 295 +#define SEMI_SEMI_AND 296 +#define LESS_LESS_MINUS 297 +#define AND_GREATER 298 +#define AND_GREATER_GREATER 299 +#define LESS_GREATER 300 +#define GREATER_BAR 301 +#define BAR_AND 302 +#define yacc_EOF 303 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 316 "/Users/chet/src/bash/src/parse.y" +#line 320 "/Users/chet/src/bash/src/parse.y" { WORD_DESC *word; /* the word that we read. */ int number; /* the number that we read. */ @@ -149,7 +151,7 @@ typedef union YYSTYPE PATTERN_LIST *pattern; } /* Line 1489 of yacc.c. */ -#line 153 "y.tab.h" +#line 155 "y.tab.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/parser.h b/parser.h index 3c47dc9..9ff6576 100644 --- a/parser.h +++ b/parser.h @@ -26,25 +26,27 @@ # include "input.h" /* Possible states for the parser that require it to do special things. */ -#define PST_CASEPAT 0x00001 /* in a case pattern list */ -#define PST_ALEXPNEXT 0x00002 /* expand next word for aliases */ -#define PST_ALLOWOPNBRC 0x00004 /* allow open brace for function def */ -#define PST_NEEDCLOSBRC 0x00008 /* need close brace */ -#define PST_DBLPAREN 0x00010 /* double-paren parsing */ -#define PST_SUBSHELL 0x00020 /* ( ... ) subshell */ -#define PST_CMDSUBST 0x00040 /* $( ... ) command substitution */ -#define PST_CASESTMT 0x00080 /* parsing a case statement */ -#define PST_CONDCMD 0x00100 /* parsing a [[...]] command */ -#define PST_CONDEXPR 0x00200 /* parsing the guts of [[...]] */ -#define PST_ARITHFOR 0x00400 /* parsing an arithmetic for command */ -#define PST_ALEXPAND 0x00800 /* OK to expand aliases - unused */ -#define PST_CMDTOKEN 0x01000 /* command token OK - unused */ -#define PST_COMPASSIGN 0x02000 /* parsing x=(...) compound assignment */ -#define PST_ASSIGNOK 0x04000 /* assignment statement ok in this context */ -#define PST_EOFTOKEN 0x08000 /* yylex checks against shell_eof_token */ -#define PST_REGEXP 0x10000 /* parsing an ERE/BRE as a single word */ -#define PST_HEREDOC 0x20000 /* reading body of here-document */ -#define PST_REPARSE 0x40000 /* re-parsing in parse_string_to_word_list */ +#define PST_CASEPAT 0x000001 /* in a case pattern list */ +#define PST_ALEXPNEXT 0x000002 /* expand next word for aliases */ +#define PST_ALLOWOPNBRC 0x000004 /* allow open brace for function def */ +#define PST_NEEDCLOSBRC 0x000008 /* need close brace */ +#define PST_DBLPAREN 0x000010 /* double-paren parsing */ +#define PST_SUBSHELL 0x000020 /* ( ... ) subshell */ +#define PST_CMDSUBST 0x000040 /* $( ... ) command substitution */ +#define PST_CASESTMT 0x000080 /* parsing a case statement */ +#define PST_CONDCMD 0x000100 /* parsing a [[...]] command */ +#define PST_CONDEXPR 0x000200 /* parsing the guts of [[...]] */ +#define PST_ARITHFOR 0x000400 /* parsing an arithmetic for command */ +#define PST_ALEXPAND 0x000800 /* OK to expand aliases - unused */ +#define PST_EXTPAT 0x001000 /* parsing an extended shell pattern */ +#define PST_COMPASSIGN 0x002000 /* parsing x=(...) compound assignment */ +#define PST_ASSIGNOK 0x004000 /* assignment statement ok in this context */ +#define PST_EOFTOKEN 0x008000 /* yylex checks against shell_eof_token */ +#define PST_REGEXP 0x010000 /* parsing an ERE/BRE as a single word */ +#define PST_HEREDOC 0x020000 /* reading body of here-document */ +#define PST_REPARSE 0x040000 /* re-parsing in parse_string_to_word_list */ +#define PST_REDIRLIST 0x080000 /* parsing a list of redirctions preceding a simple command name */ + /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */ struct dstack { diff --git a/patchlevel.h b/patchlevel.h index 233b2c1..2af2f56 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 38 +#define PATCHLEVEL 0 #endif /* _PATCHLEVEL_H_ */ diff --git a/pathexp.c b/pathexp.c index ece200d..851ab8f 100644 --- a/pathexp.c +++ b/pathexp.c @@ -52,7 +52,7 @@ typedef int posix_glob_errfunc_t __P((const char *, int)); int glob_dot_filenames; /* Control whether the extended globbing features are enabled. */ -int extended_glob = 0; +int extended_glob = EXTGLOB_DEFAULT; /* Control enabling special handling of `**' */ int glob_star = 0; diff --git a/pcomplete.c b/pcomplete.c index 40fcc34..e4f2059 100644 --- a/pcomplete.c +++ b/pcomplete.c @@ -66,6 +66,8 @@ #include #include +#define PCOMP_RETRYFAIL 256 + #ifdef STRDUP # undef STRDUP #endif @@ -118,10 +120,15 @@ static STRINGLIST *gen_globpat_matches __P((COMPSPEC *, const char *)); static STRINGLIST *gen_wordlist_matches __P((COMPSPEC *, const char *)); static STRINGLIST *gen_shell_function_matches __P((COMPSPEC *, const char *, char *, int, WORD_LIST *, - int, int)); + int, int, int *)); static STRINGLIST *gen_command_matches __P((COMPSPEC *, const char *, char *, int, WORD_LIST *, int, int)); +static STRINGLIST *gen_progcomp_completions __P((const char *, const char *, + const char *, + int, int, int *, int *, + COMPSPEC **)); + static char *pcomp_filename_completion_function __P((const char *, int)); #if defined (ARRAY_VARS) @@ -653,7 +660,7 @@ gen_matches_from_itemlist (itp, text) if ((itp->flags & (LIST_DIRTY|LIST_DYNAMIC)) || (itp->flags & LIST_INITIALIZED) == 0) { - if (itp->flags & (LIST_DIRTY | LIST_DYNAMIC)) + if (itp->flags & (LIST_DIRTY|LIST_DYNAMIC)) clean_itemlist (itp); if ((itp->flags & LIST_INITIALIZED) == 0) initialize_itemlist (itp); @@ -827,7 +834,7 @@ gen_wordlist_matches (cs, text) do -- there's no way to split a simple list into individual words that way, since the shell semantics say that word splitting is done only on the results of expansion. */ - l = split_at_delims (cs->words, strlen (cs->words), (char *)NULL, -1, (int *)NULL, (int *)NULL); + l = split_at_delims (cs->words, strlen (cs->words), (char *)NULL, -1, 0, (int *)NULL, (int *)NULL); if (l == 0) return ((STRINGLIST *)NULL); /* This will jump back to the top level if the expansion fails... */ @@ -992,25 +999,30 @@ build_arg_list (cmd, text, lwords, ind) variable, this does nothing if arrays are not compiled into the shell. */ static STRINGLIST * -gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw) +gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw, foundp) COMPSPEC *cs; const char *text; char *line; int ind; WORD_LIST *lwords; int nw, cw; + int *foundp; { char *funcname; STRINGLIST *sl; SHELL_VAR *f, *v; WORD_LIST *cmdlist; - int fval; + int fval, found; sh_parser_state_t ps; sh_parser_state_t * restrict pps; #if defined (ARRAY_VARS) ARRAY *a; #endif + found = 0; + if (foundp) + *foundp = found; + funcname = cs->funcname; f = find_function (funcname); if (f == 0) @@ -1043,6 +1055,12 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw) discard_unwind_frame ("gen-shell-function-matches"); restore_parser_state (pps); + found = fval != EX_NOTFOUND; + if (fval == EX_RETRYFAIL) + found |= PCOMP_RETRYFAIL; + if (foundp) + *foundp = found; + /* Now clean up and destroy everything. */ dispose_words (cmdlist); unbind_compfunc_variables (0); @@ -1057,7 +1075,7 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw) VUNSETATTR (v, att_invisible); a = array_cell (v); - if (a == 0 || array_empty (a)) + if (found == 0 || (found & PCOMP_RETRYFAIL) || a == 0 || array_empty (a)) sl = (STRINGLIST *)NULL; else { @@ -1175,33 +1193,34 @@ command_line_to_word_list (line, llen, sentinel, nwp, cwp) { WORD_LIST *ret; char *delims; - int i, j; - - delims = xmalloc (strlen (rl_completer_word_break_characters) + 1); - for (i = j = 0; rl_completer_word_break_characters[i]; i++) - if (rl_completer_word_break_characters[i] != '\'' && rl_completer_word_break_characters[i] != '"') - delims[j++] = rl_completer_word_break_characters[i]; - delims[j] = '\0'; - ret = split_at_delims (line, llen, delims, sentinel, nwp, cwp); - free (delims); + +#if 0 + delims = "()<>;&| \t\n"; /* shell metacharacters break words */ +#else + delims = rl_completer_word_break_characters; +#endif + ret = split_at_delims (line, llen, delims, sentinel, SD_NOQUOTEDELIM, nwp, cwp); return (ret); } /* Evaluate COMPSPEC *cs and return all matches for WORD. */ STRINGLIST * -gen_compspec_completions (cs, cmd, word, start, end) +gen_compspec_completions (cs, cmd, word, start, end, foundp) COMPSPEC *cs; const char *cmd; const char *word; int start, end; + int *foundp; { STRINGLIST *ret, *tmatches; char *line; - int llen, nw, cw; + int llen, nw, cw, found, foundf; WORD_LIST *lwords; COMPSPEC *tcs; + found = 1; + #ifdef DEBUG debug_printf ("gen_compspec_completions (%s, %s, %d, %d)", cmd, word, start, end); debug_printf ("gen_compspec_completions: %s -> %p", cmd, cs); @@ -1286,7 +1305,10 @@ gen_compspec_completions (cs, cmd, word, start, end) if (cs->funcname) { - tmatches = gen_shell_function_matches (cs, word, line, rl_point - start, lwords, nw, cw); + foundf = 0; + tmatches = gen_shell_function_matches (cs, word, line, rl_point - start, lwords, nw, cw, &foundf); + if (foundf != 0) + found = foundf; if (tmatches) { #ifdef DEBUG @@ -1327,6 +1349,15 @@ gen_compspec_completions (cs, cmd, word, start, end) FREE (line); } + if (foundp) + *foundp = found; + + if (found == 0 || (found & PCOMP_RETRYFAIL)) + { + strlist_dispose (ret); + return NULL; + } + if (cs->filterpat) { tmatches = filter_stringlist (ret, cs->filterpat, word); @@ -1401,35 +1432,28 @@ pcomp_set_compspec_options (cs, flags, set_or_unset) cs->options &= ~flags; } -/* The driver function for the programmable completion code. Returns a list - of matches for WORD, which is an argument to command CMD. START and END - bound the command currently being completed in rl_line_buffer. */ -char ** -programmable_completions (cmd, word, start, end, foundp) +static STRINGLIST * +gen_progcomp_completions (ocmd, cmd, word, start, end, foundp, retryp, lastcs) + const char *ocmd; const char *cmd; const char *word; - int start, end, *foundp; + int start, end; + int *foundp, *retryp; + COMPSPEC **lastcs; { COMPSPEC *cs, *oldcs; - STRINGLIST *ret; - char **rmatches, *t; const char *oldcmd; + STRINGLIST *ret; - /* We look at the basename of CMD if the full command does not have - an associated COMPSPEC. */ - cs = progcomp_search (cmd); - if (cs == 0) - { - t = strrchr (cmd, '/'); - if (t) - cs = progcomp_search (++t); - } - if (cs == 0) - { - if (foundp) - *foundp = 0; - return ((char **)NULL); - } + cs = progcomp_search (ocmd); + + if (cs == 0 || cs == *lastcs) + return (NULL); + + if (*lastcs) + compspec_dispose (*lastcs); + cs->refcount++; /* XXX */ + *lastcs = cs; cs = compspec_copy (cs); @@ -1439,17 +1463,68 @@ programmable_completions (cmd, word, start, end, foundp) pcomp_curcs = cs; pcomp_curcmd = cmd; - /* Signal the caller that we found a COMPSPEC for this command, and pass - back any meta-options associated with the compspec. */ - if (foundp) - *foundp = 1|cs->options; - - ret = gen_compspec_completions (cs, cmd, word, start, end); + ret = gen_compspec_completions (cs, cmd, word, start, end, foundp); pcomp_curcs = oldcs; pcomp_curcmd = oldcmd; + /* We need to conditionally handle setting *retryp here */ + if (retryp) + *retryp = foundp && (*foundp & PCOMP_RETRYFAIL); + + if (foundp) + { + *foundp &= ~PCOMP_RETRYFAIL; + *foundp |= cs->options; + } + compspec_dispose (cs); + return ret; +} + +/* The driver function for the programmable completion code. Returns a list + of matches for WORD, which is an argument to command CMD. START and END + bound the command currently being completed in rl_line_buffer. */ +char ** +programmable_completions (cmd, word, start, end, foundp) + const char *cmd; + const char *word; + int start, end, *foundp; +{ + COMPSPEC *cs, *lastcs; + STRINGLIST *ret; + char **rmatches, *t; + int found, retry, count; + + lastcs = 0; + found = count = 0; + + do + { + retry = 0; + + /* We look at the basename of CMD if the full command does not have + an associated COMPSPEC. */ + ret = gen_progcomp_completions (cmd, cmd, word, start, end, &found, &retry, &lastcs); + if (found == 0) + { + t = strrchr (cmd, '/'); + if (t && *(++t)) + ret = gen_progcomp_completions (t, cmd, word, start, end, &found, &retry, &lastcs); + } + + if (found == 0) + ret = gen_progcomp_completions (DEFAULTCMD, cmd, word, start, end, &found, &retry, &lastcs); + + count++; + + if (count > 32) + { + internal_warning ("programmable_completion: %s: possible retry loop", cmd); + break; + } + } + while (retry); if (ret) { @@ -1459,6 +1534,12 @@ programmable_completions (cmd, word, start, end, foundp) else rmatches = (char **)NULL; + if (foundp) + *foundp = found; + + if (lastcs) /* XXX - should be while? */ + compspec_dispose (lastcs); + return (rmatches); } diff --git a/pcomplete.h b/pcomplete.h index bc0541d..dacbcef 100644 --- a/pcomplete.h +++ b/pcomplete.h @@ -1,5 +1,5 @@ /* pcomplete.h - structure definitions and other stuff for programmable -n completion. */ + completion. */ /* Copyright (C) 1999-2009 Free Software Foundation, Inc. @@ -96,6 +96,9 @@ typedef struct _list_of_items { #define LIST_DONTFREE 0x010 #define LIST_DONTFREEMEMBERS 0x020 +#define EMPTYCMD "_EmptycmD_" +#define DEFAULTCMD "_DefaultCmD_" + extern HASH_TABLE *prog_completes; extern int prog_completion_enabled; @@ -150,7 +153,7 @@ extern void set_itemlist_dirty __P((ITEMLIST *)); extern STRINGLIST *completions_to_stringlist __P((char **)); -extern STRINGLIST *gen_compspec_completions __P((COMPSPEC *, const char *, const char *, int, int)); +extern STRINGLIST *gen_compspec_completions __P((COMPSPEC *, const char *, const char *, int, int, int *)); extern char **programmable_completions __P((const char *, const char *, int, int, int *)); extern void pcomp_set_readline_variables __P((int, int)); diff --git a/po/LINGUAS b/po/LINGUAS index e8036bb..9ab66f1 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,2 +1,2 @@ # Set of available languages. -en@quot en@boldquot af bg ca cs de eo es et fr hu id ja lt nl pl pt_BR ro ru sk sv tr vi zh_TW +en@quot en@boldquot af bg ca cs de eo es et fi fr ga hu id ja lt nl pl pt_BR ro ru sk sv tr vi zh_TW diff --git a/po/POTFILES.in b/po/POTFILES.in index 6d9afbf..2a8f369 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -5,6 +5,7 @@ arrayfunc.c bashhist.c bashline.c braces.c +builtins/alias.def builtins/bind.def builtins/break.def builtins/caller.def @@ -48,12 +49,14 @@ expr.c general.c input.c jobs.c +lib/intl/os2compat.c lib/malloc/malloc.c lib/malloc/stats.c lib/malloc/table.c lib/malloc/watch.c lib/sh/fmtulong.c lib/sh/netopen.c +locale.c mailcheck.c make_cmd.c nojobs.c @@ -70,6 +73,7 @@ test.c trap.c variables.c version.c +version2.c xmalloc.c # Apparently gettext's defaults cannot handle files that exist outside of the diff --git a/po/af.gmo b/po/af.gmo index 1b59cac12da920c6d86f081aa2b230675a74ebee..bf7d9560bb9819b32eb9a3740e084b12ee1ea9f3 100644 GIT binary patch delta 24 fcmX@ld7g8_0VZxkBVA(y1p^B!Bh$^NnOK+rVP6K& delta 24 fcmX@ld7g8_0VZw(BV9vF1w#`nQ{&C2nOK+rVUPyY diff --git a/po/af.po b/po/af.po index e60048f..1ae2aa3 100644 --- a/po/af.po +++ b/po/af.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: bash 2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" "PO-Revision-Date: 2004-03-17 13:48+0200\n" "Last-Translator: Petri Jooste \n" "Language-Team: Afrikaans \n" @@ -19,50 +19,55 @@ msgstr "" msgid "bad array subscript" msgstr "Os/2 Biskaart Skikking" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: illegal option -- %c\n" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: kan nie %s skep nie" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%s: illegal option -- %c\n" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -113,6 +118,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -126,7 +146,7 @@ msgstr "" msgid "line %d: " msgstr "3d modus" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "besig om te skryf" @@ -136,12 +156,12 @@ msgstr "besig om te skryf" msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 #, fuzzy msgid "too many arguments" msgstr "te veel parameters" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, fuzzy, c-format msgid "%s: option requires an argument" msgstr "%s: option `%s' requires an argument\n" @@ -156,7 +176,7 @@ msgstr "" msgid "%s: not found" msgstr "%s: bevel nie gevind nie" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, fuzzy, c-format msgid "%s: invalid option" msgstr "%s: illegal option -- %c\n" @@ -181,7 +201,7 @@ msgstr "Die sein nommer wat was gevang het" msgid "invalid hex number" msgstr "Die sein nommer wat was gevang het" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 #, fuzzy msgid "invalid number" msgstr "Die sein nommer wat was gevang het" @@ -196,7 +216,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, fuzzy, c-format msgid "%s: readonly variable" msgstr "Veranderlike boom" @@ -273,26 +293,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: dubbelsinnige herroetering" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -300,21 +320,21 @@ msgstr "" msgid "can only be used in a function" msgstr "" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: leesalleen-funksie" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, fuzzy, c-format msgid "%s: cannot destroy array variables in this way" msgstr "Kan nie soek 'n handtekening in hierdie boodskap!" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -343,8 +363,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: kan nie %s skep nie" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: is 'n gids" @@ -359,7 +379,8 @@ msgstr "%s: kan nie 'n bin msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: kan nie 'n binêre lêer uitvoer nie" @@ -388,16 +409,16 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 #, fuzzy msgid "no command found" msgstr "%s: bevel nie gevind nie" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, fuzzy, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: kan nie %s skep nie" @@ -487,12 +508,12 @@ msgstr "%s: heelgetal-uitdrukking is verwag\n" msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 #, fuzzy msgid "Unknown error" msgstr "Onbekende fout %d" @@ -502,56 +523,61 @@ msgstr "Onbekende fout %d" msgid "expression expected" msgstr "Bools uitdrukking verwag" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "Veranderlike boom" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: illegal option -- %c\n" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: illegal option -- %c\n" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "Die sein nommer wat was gevang het" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "Veranderlike boom" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -644,12 +670,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, fuzzy, c-format msgid "read error: %d: %s" msgstr "pypfout: %s" @@ -687,11 +713,11 @@ msgstr "%s: leesalleen-funksie" msgid "shift count" msgstr "Shift" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -784,81 +810,81 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, fuzzy, c-format msgid "last command: %s\n" msgstr "Bevelreël" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 #, fuzzy msgid "unknown command error" msgstr "Onbekende fout %d" -#: error.c:406 +#: error.c:407 #, fuzzy msgid "bad command type" msgstr "bevelnaam" -#: error.c:407 +#: error.c:408 #, fuzzy msgid "bad connector" msgstr "foutiewe verbinder`%d'" -#: error.c:408 +#: error.c:409 #, fuzzy msgid "bad jump" msgstr "Spring na:" -#: error.c:446 +#: error.c:447 #, fuzzy, c-format msgid "%s: unbound variable" msgstr "Veranderlike boom" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "pypfout: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: bevel nie gevind nie" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, fuzzy, c-format msgid "%s: %s: bad interpreter" msgstr "%s: is 'n gids" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, fuzzy, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "kan nie fd %d na fd 0 dupliseer nie: %s" @@ -908,31 +934,31 @@ msgstr "" msgid "missing `)'" msgstr "Ontbrekende '>'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 #, fuzzy msgid "syntax error: operand expected" msgstr "Onverwagte einde van lêer tydens inlees van hulpbron." -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, fuzzy, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" "Hierdie is die fout boodskap van %1:\n" "%2" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "waarde te groot vir basis" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: heelgetal-uitdrukking is verwag\n" @@ -942,7 +968,7 @@ msgstr "%s: heelgetal-uitdrukking is verwag\n" msgid "getcwd: cannot access parent directories" msgstr "Kan nie die program uitvoer nie:" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "kan nie fd %d na fd 0 dupliseer nie: %s" @@ -995,7 +1021,7 @@ msgstr "Sein kwaliteit:" msgid "Done" msgstr "Klaar" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 #, fuzzy msgid "Stopped" msgstr "Op gehou" @@ -1034,71 +1060,75 @@ msgstr "Kern Ontwikkelaar" msgid " (wd: %s)" msgstr "Aktiveer nou dadelik" -#: jobs.c:1771 +#: jobs.c:1776 #, fuzzy, c-format msgid "child setpgid (%ld to %ld)" msgstr "Fout in die skryf van %s" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, fuzzy, c-format msgid "%s: job has terminated" msgstr "Die bediener beëindig Die verbinding." -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "3d modus" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, fuzzy, c-format msgid " (core dumped)" msgstr "Kern Ontwikkelaar" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, fuzzy, c-format msgid "(wd now: %s)\n" msgstr "Aktiveer nou dadelik" -#: jobs.c:3563 +#: jobs.c:3579 #, fuzzy msgid "initialize_job_control: getpgrp failed" msgstr "Inisialisering van OpenGL het misluk." -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 #, fuzzy msgid "initialize_job_control: setpgid" msgstr "Inisialisering van OpenGL het misluk." -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "geen taakbeheer in hierdie dop nie" @@ -1189,6 +1219,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "" + #: mailcheck.c:433 #, fuzzy msgid "You have mail in $_" @@ -1204,137 +1254,137 @@ msgstr "Wanneer nuwe pos arriveer in" msgid "The mail in %s has been read\n" msgstr "" -#: make_cmd.c:322 +#: make_cmd.c:323 #, fuzzy msgid "syntax error: arithmetic expression required" msgstr "Sintaks fout in patroon" -#: make_cmd.c:324 +#: make_cmd.c:325 #, fuzzy msgid "syntax error: `;' unexpected" msgstr "Onverwagte einde van lêer tydens inlees van hulpbron." -#: make_cmd.c:325 +#: make_cmd.c:326 #, fuzzy, c-format msgid "syntax error: `((%s))'" msgstr "sintaksfout" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3731 +#: parse.y:3960 #, fuzzy msgid "syntax error in conditional expression" msgstr "Sintaks fout in patroon" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 #, fuzzy msgid "expected `)'" msgstr "')' is verwag\n" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, fuzzy, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "%s: binêre operator is verwag\n" -#: parse.y:3889 +#: parse.y:4124 #, fuzzy msgid "conditional binary operator expected" msgstr "%s: binêre operator is verwag\n" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, fuzzy, c-format msgid "unexpected token `%c' in conditional command" msgstr "Soek die lêer vir 'n uitdrukking" -#: parse.y:3924 +#: parse.y:4164 #, fuzzy, c-format msgid "unexpected token `%s' in conditional command" msgstr "Soek die lêer vir 'n uitdrukking" -#: parse.y:3928 +#: parse.y:4168 #, fuzzy, c-format msgid "unexpected token %d in conditional command" msgstr "Soek die lêer vir 'n uitdrukking" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:5213 +#: parse.y:5477 #, fuzzy, c-format msgid "syntax error near `%s'" msgstr "Sintaks fout in patroon" -#: parse.y:5223 +#: parse.y:5487 #, fuzzy msgid "syntax error: unexpected end of file" msgstr "Onverwagte einde van lêer tydens inlees van hulpbron." -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "sintaksfout" -#: parse.y:5285 +#: parse.y:5549 #, fuzzy, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Gebruik Kaart na Los Tronk" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1344,495 +1394,535 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, fuzzy, c-format msgid "%s: ambiguous redirect" msgstr "%s: dubbelsinnige herroetering" -#: redir.c:152 +#: redir.c:170 #, fuzzy, c-format msgid "%s: cannot overwrite existing file" msgstr "Jy het gespesifiseer 'n bestaande lêer" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "Kan nie soek 'n handtekening in hierdie boodskap!" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 #, fuzzy msgid "redirection error: cannot duplicate fd" msgstr "Pypfout.\n" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, fuzzy, c-format msgid "%c%c: invalid option" msgstr "%s: illegal option -- %c\n" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Ek het nie 'n naam nie!" -#: shell.c:1778 +#: shell.c:1793 #, fuzzy, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "bedryfstelselkernweergawe" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" msgstr "" -#: shell.c:1781 +#: shell.c:1796 #, fuzzy msgid "GNU long options:\n" msgstr "Gnu C Saamsteller Opsies" -#: shell.c:1785 +#: shell.c:1800 #, fuzzy msgid "Shell options:\n" msgstr "opneem opsies" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1801 +#: shell.c:1816 #, fuzzy, c-format msgid "\t-%s or -o option\n" msgstr "" "Gebruik so: %s LÊER \n" " of: %s OPSIE\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Foutiewe sein" -#: siglist.c:50 +#: siglist.c:51 #, fuzzy msgid "Hangup" msgstr "Ophang" -#: siglist.c:54 +#: siglist.c:55 #, fuzzy msgid "Interrupt" msgstr "Interrupt" -#: siglist.c:58 +#: siglist.c:59 #, fuzzy msgid "Quit" msgstr "Verlaat" -#: siglist.c:62 +#: siglist.c:63 #, fuzzy msgid "Illegal instruction" msgstr "Sigill (onwettige instruksie)" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 #, fuzzy msgid "ABORT instruction" msgstr "Verwerking Instruksie" -#: siglist.c:78 +#: siglist.c:79 #, fuzzy msgid "EMT instruction" msgstr "Verwerking Instruksie" -#: siglist.c:82 +#: siglist.c:83 #, fuzzy msgid "Floating point exception" msgstr "wisselpuntgetaluitsondering" -#: siglist.c:86 +#: siglist.c:87 #, fuzzy msgid "Killed" msgstr "Doodgemaak proses." -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "Pypfout.\n" -#: siglist.c:94 +#: siglist.c:95 #, fuzzy msgid "Segmentation fault" msgstr "Sigsegv (segmentasie oortreding)" -#: siglist.c:98 +#: siglist.c:99 #, fuzzy msgid "Bad system call" msgstr "fork-stelselroep het gefaal" -#: siglist.c:102 +#: siglist.c:103 #, fuzzy msgid "Broken pipe" msgstr "Sigpipe (gebroke pyp)" -#: siglist.c:106 +#: siglist.c:107 #, fuzzy msgid "Alarm clock" msgstr "wêreld horlosie" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "Gedruk: %s" -#: siglist.c:114 +#: siglist.c:115 #, fuzzy msgid "Urgent IO condition" msgstr "Ooreenstem enige kondisie" -#: siglist.c:118 +#: siglist.c:119 #, fuzzy msgid "Stopped (signal)" msgstr "Sein kwaliteit:" -#: siglist.c:126 +#: siglist.c:127 #, fuzzy msgid "Continue" msgstr "Gaan voort" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 #, fuzzy msgid "Stopped (tty input)" msgstr "Sigttin (tty invoer)" -#: siglist.c:142 +#: siglist.c:143 #, fuzzy msgid "Stopped (tty output)" msgstr "Sigttou (tty uitset)" -#: siglist.c:146 +#: siglist.c:147 #, fuzzy msgid "I/O ready" msgstr "Gereed." -#: siglist.c:150 +#: siglist.c:151 #, fuzzy msgid "CPU limit" msgstr "Filter beperk:" -#: siglist.c:154 +#: siglist.c:155 #, fuzzy msgid "File limit" msgstr "Filter beperk:" -#: siglist.c:158 +#: siglist.c:159 #, fuzzy msgid "Alarm (virtual)" msgstr "virtuele werkskerms" -#: siglist.c:162 +#: siglist.c:163 #, fuzzy msgid "Alarm (profile)" msgstr "Vee profiel uit..." -#: siglist.c:166 +#: siglist.c:167 #, fuzzy msgid "Window changed" msgstr "Lêer Het verander" -#: siglist.c:170 +#: siglist.c:171 #, fuzzy msgid "Record lock" msgstr "Sluit Lêers" -#: siglist.c:174 +#: siglist.c:175 #, fuzzy msgid "User signal 1" msgstr "Gebruiker Sein 1" -#: siglist.c:178 +#: siglist.c:179 #, fuzzy msgid "User signal 2" msgstr "Gebruiker Sein 1" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 #, fuzzy msgid "power failure imminent" msgstr "Vaaling na Uitpak" -#: siglist.c:190 +#: siglist.c:191 #, fuzzy msgid "system crash imminent" msgstr "Die Kde Omval Handteerder" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 #, fuzzy msgid "programming error" msgstr "Pypfout.\n" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 #, fuzzy msgid "Unknown Signal #" msgstr "Sein kwaliteit:" -#: siglist.c:224 +#: siglist.c:225 #, fuzzy, c-format msgid "Unknown Signal #%d" msgstr "Sein kwaliteit:" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, fuzzy, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "--Geen reëls in buffer--" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 #, fuzzy msgid "cannot make pipe for process substitution" msgstr "Woord Substitusie" -#: subst.c:4504 +#: subst.c:4802 #, fuzzy msgid "cannot make child for process substitution" msgstr "Woord Substitusie" -#: subst.c:4549 +#: subst.c:4847 #, fuzzy, c-format msgid "cannot open named pipe %s for reading" msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" -#: subst.c:4551 +#: subst.c:4849 #, fuzzy, c-format msgid "cannot open named pipe %s for writing" msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" -#: subst.c:4569 +#: subst.c:4867 #, fuzzy, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" -#: subst.c:4765 +#: subst.c:5063 #, fuzzy msgid "cannot make pipe for command substitution" msgstr "Woord Substitusie" -#: subst.c:4799 +#: subst.c:5097 #, fuzzy msgid "cannot make child for command substitution" msgstr "Woord Substitusie" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "" -#: subst.c:5608 +#: subst.c:5907 #, fuzzy, c-format msgid "%s: substring expression < 0" msgstr "ongeldige uitdrukking" -#: subst.c:6660 +#: subst.c:6965 #, fuzzy, c-format msgid "%s: bad substitution" msgstr "Woord Substitusie" -#: subst.c:6740 +#: subst.c:7045 #, fuzzy, c-format msgid "$%s: cannot assign in this way" msgstr "Kan nie soek 'n handtekening in hierdie boodskap!" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "--Geen reëls in buffer--" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 #, fuzzy msgid "argument expected" msgstr "argument verwag\n" -#: test.c:154 +#: test.c:155 #, fuzzy, c-format msgid "%s: integer expression expected" msgstr "%s: heelgetal-uitdrukking is verwag\n" -#: test.c:262 +#: test.c:263 #, fuzzy msgid "`)' expected" msgstr "')' is verwag\n" -#: test.c:264 +#: test.c:265 #, fuzzy, c-format msgid "`)' expected, found %s" msgstr "')' is verwag, maar %s gevind\n" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, fuzzy, c-format msgid "%s: unary operator expected" msgstr "%s: unitêre operator is verwag\n" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, fuzzy, c-format msgid "%s: binary operator expected" msgstr "%s: binêre operator is verwag\n" -#: test.c:806 +#: test.c:811 #, fuzzy msgid "missing `]'" msgstr "Ontbrekende '>'" -#: trap.c:201 +#: trap.c:203 #, fuzzy msgid "invalid signal number" msgstr "Die sein nommer wat was gevang het" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, c-format +msgid "%s has null exportstr" +msgstr "" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: kan nie %s skep nie" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1843,60 +1933,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, fuzzy, c-format msgid "GNU bash, version %s (%s)\n" msgstr "bedryfstelselkernweergawe" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" msgstr "" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "%s: kan nie %s skep nie" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "%s: kan nie %s skep nie" #: builtins.c:43 #, fuzzy @@ -2035,7 +2117,7 @@ msgstr "Teruglus l #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "enige patroon" #: builtins.c:121 @@ -2065,8 +2147,8 @@ msgstr "Kom ons begin!" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2250,9 +2332,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2263,7 +2345,7 @@ msgstr "" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "Tipe die naam van die %1 speler." #: builtins.c:240 @@ -2983,7 +3065,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3003,7 +3089,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3015,7 +3101,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3097,7 +3183,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3117,7 +3203,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3136,7 +3222,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3156,7 +3242,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3167,7 +3253,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3181,7 +3267,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3195,7 +3281,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3272,7 +3358,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3280,7 +3366,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3292,7 +3378,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3328,7 +3414,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3358,7 +3444,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3402,7 +3488,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3420,7 +3506,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3437,7 +3523,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3451,7 +3537,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3464,7 +3550,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3481,7 +3567,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3501,7 +3587,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3517,7 +3603,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3528,7 +3614,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3549,7 +3635,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3560,7 +3646,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3571,7 +3657,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3584,7 +3670,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3598,7 +3684,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3609,7 +3695,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3623,7 +3709,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3634,7 +3720,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3662,7 +3748,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3716,7 +3802,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3747,7 +3833,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3774,7 +3860,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3803,7 +3889,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3824,7 +3910,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3854,7 +3940,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3868,15 +3954,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3889,7 +3980,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3902,6 +3993,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3918,15 +4011,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3953,10 +4046,12 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/po/bash.pot b/po/bash.pot index 3f78e05..68d33f8 100644 --- a/po/bash.pot +++ b/po/bash.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,50 +21,55 @@ msgstr "" msgid "bad array subscript" msgstr "" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, c-format +msgid "`%s': invalid alias name" +msgstr "" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -114,6 +119,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -127,7 +147,7 @@ msgstr "" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "" @@ -137,11 +157,11 @@ msgstr "" msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "" @@ -156,7 +176,7 @@ msgstr "" msgid "%s: not found" msgstr "" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "" @@ -179,7 +199,7 @@ msgstr "" msgid "invalid hex number" msgstr "" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "" @@ -193,7 +213,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "" @@ -265,26 +285,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -292,21 +312,21 @@ msgstr "" msgid "can only be used in a function" msgstr "" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -335,8 +355,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "" @@ -351,7 +371,8 @@ msgstr "" msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "" @@ -380,15 +401,15 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "" @@ -478,12 +499,12 @@ msgstr "" msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "" @@ -491,55 +512,60 @@ msgstr "" msgid "expression expected" msgstr "" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 #, c-format -msgid "%s: invalid file descriptor specification" +msgid "%s: not an indexed array" msgstr "" #: builtins/mapfile.def:249 builtins/read.def:279 #, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:257 builtins/read.def:286 +#, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -629,12 +655,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "" @@ -671,11 +697,11 @@ msgstr "" msgid "shift count" msgstr "" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -765,76 +791,76 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" @@ -879,28 +905,28 @@ msgstr "" msgid "missing `)'" msgstr "" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "" @@ -909,7 +935,7 @@ msgstr "" msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "" @@ -962,7 +988,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -999,69 +1025,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "" @@ -1151,6 +1181,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "" @@ -1164,131 +1214,131 @@ msgstr "" msgid "The mail in %s has been read\n" msgstr "" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1298,450 +1348,490 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:517 +#: redir.c:184 +#, c-format +msgid "%s: cannot assign fd to variable" +msgstr "" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" msgstr "" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, c-format +msgid "%s has null exportstr" +msgstr "" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1752,59 +1842,51 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" msgstr "" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:152 +#: xmalloc.c:93 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: cannot allocate %lu bytes" msgstr "" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:176 +#: xmalloc.c:165 #, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "" #: builtins.c:43 @@ -1922,7 +2004,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -1951,8 +2033,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2111,9 +2193,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2123,7 +2205,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -2843,7 +2925,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2863,7 +2949,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2875,7 +2961,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -2957,7 +3043,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -2977,7 +3063,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -2996,7 +3082,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3016,7 +3102,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3027,7 +3113,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3041,7 +3127,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3055,7 +3141,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3132,7 +3218,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3140,7 +3226,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3152,7 +3238,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3188,7 +3274,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3218,7 +3304,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3262,7 +3348,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3280,7 +3366,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3297,7 +3383,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3311,7 +3397,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3324,7 +3410,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3341,7 +3427,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3361,7 +3447,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3377,7 +3463,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3388,7 +3474,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3409,7 +3495,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3420,7 +3506,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3431,7 +3517,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3444,7 +3530,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3458,7 +3544,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3469,7 +3555,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3483,7 +3569,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3494,7 +3580,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3522,7 +3608,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3576,7 +3662,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3607,7 +3693,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3634,7 +3720,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3663,7 +3749,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3684,7 +3770,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3714,7 +3800,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3728,15 +3814,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3749,7 +3840,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3762,6 +3853,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3778,15 +3871,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3813,10 +3906,12 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/po/bg.gmo b/po/bg.gmo index 0d0cae363906e7fe60ea09e7ba51ae03eb66fe0a..ecba6d25c70f159e1cf45c3de8680d15c9e2e720 100644 GIT binary patch delta 5601 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�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 !r$7@u>3Ic&0NHk~ZoJc5 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

  • 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\n" "Language-Team: Bulgarian \n" @@ -20,52 +20,57 @@ msgstr "" msgid "bad array subscript" msgstr "неправилен индекс на масив" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: грешно име на действие" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: не може да се присвоява на нецифров индекс" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: не може да се създаде: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "изпълнение на команда на Юникс от bash: не може да се открие подредбата на\n" "функциите на клавишите за командата" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: първият непразен знак не е „\"“" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "в %2$s липсва затварящ знак „%1$c“" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: разделителят двоеточие липсва" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "„%s“: грешно име на подредбата на функциите на клавишите" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -116,6 +121,21 @@ msgid "" " Without EXPR, returns " msgstr "Връща контекста на текущото извикване на подпрограма." +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "Променливата $HOME не зададена" @@ -129,7 +149,7 @@ msgstr "Променливата $OLDPWD не е зададена" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s: предупреждение: " @@ -139,11 +159,11 @@ msgstr "%s: предупреждение: " msgid "%s: usage: " msgstr "%s: предупреждение: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "прекалено много аргументи" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: опцията изисква аргумент" @@ -158,7 +178,7 @@ msgstr "%s: изисква се числов аргумент" msgid "%s: not found" msgstr "%s: не е открит" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: грешна опция" @@ -183,7 +203,7 @@ msgstr "неправилен номер на сигнал" msgid "invalid hex number" msgstr "грешно число" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "грешно число" @@ -197,7 +217,7 @@ msgstr "%s: грешно указване на сигнал" msgid "`%s': not a pid or valid job spec" msgstr "„%s“: неправилен идентификатор на процес или задача" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: променлива с права само за четене" @@ -269,26 +289,26 @@ msgstr "%s: грешка при получаването на текущата msgid "%s: ambiguous job spec" msgstr "%s: нееднозначно указана задача" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: грешно име на действие" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: не е указано дописване" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "предупреждение: опцията „-F“ може да не работи според очакванията ви" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "предупреждение: опцията „-C“ може да не работи според очакванията ви" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -296,21 +316,21 @@ msgstr "" msgid "can only be used in a function" msgstr "може да се използва само във функция" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "„-f“ не може да се използва за създаването на функции" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: функция с права само за четене" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: променливите за масиви не могат да се унищожават така" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -339,8 +359,8 @@ msgstr "%s: не е зареден динамично" msgid "%s: cannot delete: %s" msgstr "%s: не може да се изтрие: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: е директория" @@ -355,7 +375,8 @@ msgstr "%s: не е обикновен файл" msgid "%s: file is too large" msgstr "%s: файлът е прекалено голям" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: двоичният файл не може да бъде изпълнен" @@ -384,15 +405,15 @@ msgstr "Има спрени задачи.\n" msgid "There are running jobs.\n" msgstr "Има спрени задачи.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "не е открита команда" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "указване на историята" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: не може да се отвори временен файл: %s" @@ -493,12 +514,12 @@ msgstr "%s: неуспешно заместване чрез историята" msgid "no other options allowed with `-x'" msgstr "не е позволена друга опция с „-x“" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: аргументите трябва да са идентификатори на процеси или задачи" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Неизвестна грешка" @@ -506,56 +527,61 @@ msgstr "Неизвестна грешка" msgid "expression expected" msgstr "очаква се израз" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: не е променлива за масив" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: грешно указване на файловия дескриптор" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: грешен файлов дескриптор: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: грешна опция" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: грешна опция" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s: грешно име на действие" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: не е променлива за масив" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "„%s“: липсва форматиращ знак" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "„%c“: грешен форматиращ знак" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s: предупреждение: " -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "липсва шестнадесетична цифра за \\x" @@ -707,12 +733,12 @@ msgstr "" "\n" " Стекът с директориите се визуализира с командата „dirs“." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: грешно указване на изтичането на времето" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "грешка при четене: %d: %s" @@ -751,12 +777,12 @@ msgstr "%s: не е функция" msgid "shift count" msgstr "брой на преместванията" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" "не може едновременно да се задават и да се премахват опции на обвивката" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: грешно име на опция на обвивката" @@ -846,80 +872,80 @@ msgstr "„%c“: неправилен оператор за описателе msgid "`%c': invalid symbolic mode character" msgstr "„%c“: неправилен знак за описателен режим" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "последна команда: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Преустановяване…" -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "неизвестна грешка в команда" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "неправилен вид команда" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "лоша връзка" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "неправилен преход" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: променлива без стойност" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" "^Gвремето за изчакване на вход изтече: следва автоматично излизане от " "системата\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "стандартният вход от /dev/null не може да бъде пренасочен: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "в променливата $TIMEFORMAT: „%c“: грешен форматиращ знак" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "грешка при запис: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" "%s: ограничение: в имената на командите не може да присъства знакът „/“" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: командата не е открита" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: лош интерпретатор" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "файловият дескриптор %d не може да се дублира като дескриптор %d" @@ -964,29 +990,29 @@ msgstr "очаква се идентификатор след предварит msgid "missing `)'" msgstr "липсва „)“" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "синтактична грешка: очаква се оператор" -#: expr.c:1177 +#: expr.c:1178 #, fuzzy msgid "syntax error: invalid arithmetic operator" msgstr "синтактична грешка: изисква се аритметичен израз" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "грешна аритметична основа на бройна система" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "стойността е прекалено голяма за основата" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: очаква се целочислен израз" @@ -995,7 +1021,7 @@ msgstr "%s: очаква се целочислен израз" msgid "getcwd: cannot access parent directories" msgstr "getcwd: родителските директории не могат да бъдат достъпени" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "не може да се изчисти режимът без забавяне на файловия дескриптор %d" @@ -1052,7 +1078,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1089,69 +1115,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "изчакване: процесът с идентификатор %ld не е дъщерен на тази обвивка" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "изчакване: липсват данни за процес с идентификатор %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "изчакване на задача: задачата %d е спряна" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: задачата е приключила" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: задача %d вече е във фонов режим" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s: предупреждение: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "в тази обвивка няма управление на задачите" @@ -1252,6 +1282,26 @@ msgstr "%s: неправилно указан мрежов път" msgid "network operations not supported" msgstr "не се поддържат мрежови операции" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "презаделяне на памет: %s:%d: %lu байта не могат да се заделят" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "презаделяне на памет: %s:%d: %lu байта не могат да се заделят" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Имате поща в $_" @@ -1265,133 +1315,133 @@ msgstr "Имате нова поща в $_" msgid "The mail in %s has been read\n" msgstr "Пощата в %s вече е прочетена\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "синтактична грешка: изисква се аритметичен израз" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "синтактична грешка: неочакван знак „;“" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "синтактична грешка: „((%s))“" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "вътрешен документ с „<<“: неправилен вид инструкция %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" "пренасочване: инструкцията за пренасочване „%d“ е извън допустимия диапазон" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" "неочакван знак за край на файл „EOF“, а се очакваше съответстващ знак „%c“" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "неочакван знак за край на файл „EOF“, а се очакваше „]]“" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "синтактична грешка в условен израз: неочаквана лексема „%s“" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "синтактична грешка в условен израз" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "неочаквана лексема „%s“, а се очакваше знакът „)“" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "очакваше се „)“" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "неочакван аргумент „%s“ за унарен условен оператор" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "неочакван аргумент за унарен условен оператор" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "неочаквана лексема „%s“, очакваше се бинарен условен оператор" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "очакваше се бинарен условен оператор" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "неочакван аргумент „%s“ за бинарен условен оператор" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "неочакван аргумент за бинарен условен оператор" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "неочаквана лексема „%c“ в условна команда" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "неочаквана лексема „%s“ в условна команда" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "неочаквана лексема %d в условна команда" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "синтактична грешка в близост до неочакваната лексема „%s“" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "синтактична грешка в близост до „%s“" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "синтактична грешка: неочакван край на файл" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "синтактична грешка" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Използвайте „%s“, за да излезете от обвивката.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "неочакван знак за край на файл „EOF“, очакваше се знакът „)“" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "дописване: функцията „%s“ не е открита" @@ -1402,71 +1452,90 @@ msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" "вмъкване на завършване на команда: %s указване на команда, което е NULL" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "команда за печат: лош конектор „%d“" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: грешен файлов дескриптор: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "отпечатване: „%c“: неправилен форматиращ знак" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "файловият дескриптор е извън допустимия диапазон" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: двусмислено пренасочване" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: не може да се презапише съществуващ файл" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: поради ограничение изходът не може да се пренасочи" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "не може да се създаде временен файл за вътрешен документ с „<<“: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: на член от масив не може да се присвои списък" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port не се поддържа, ако няма поддръжка на мрежа" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "грешка при пренасочване: файловият дескриптор не може да бъде дублиран" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "не е открита директорията /tmp. Създайте я!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp трябва да е директория" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: неправилна опция" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Не може да се получи името на текущия потребител!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1475,338 +1544,344 @@ msgstr "" "Употреба: %s [дълга опция на GNU] [опция] …\n" " %s [дълга опция на GNU] [опция] файл-скрипт …\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Дълги опции на GNU:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Опции на обвивката:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" " -irsD или -c команда, или -O къса_опция (само при стартиране)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr " -%s или -o опция\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "За повече информация за опциите на обвивката въведете „%s -c \"help set\"“.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "За повече информация за вградените в обвивката команди въведете „%s -c " "help“.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "За да докладвате грешки използвайте командата „bashbug“.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "маска за обработката на сигнали: %d: невалидна операция" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "синтактична грешка" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "ограничена обвивка" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "лошо заместване: липсва затварящ знак „%s“ в %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: на член от масив не може да се присвои списък" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "не може да се създаде програмен канал за заместване на процеси" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "не може да се създаде дъщерен процес за заместване на процеси" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "именуваният програмен канал %s не може да се отвори за четене" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "именуваният програмен канал %s не може да се отвори за запис" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" "именуваният програмен канал %s не може да се\n" "дублира като файловия дескриптор %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "не може да се създаде програмен канал за заместване на команди" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "не може да се създаде дъщерен процес за заместване на команди" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "заместване на команди: каналът не може да се дублира като fd 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: аргументът е null или не е зададен" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: изразът от подниза е < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: лошо заместване" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: не може да се задава по този начин" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "лошо заместване: липсва затварящ знак „%s“ в %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "няма съвпадение: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "очаква се аргумент" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: очаква се целочислен израз" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "очаква се „)“" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "очаква се „)“, а е получено %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: очаква се унарен оператор" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: очаква се бинарен оператор" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "липсва „]“" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "неправилен номер на сигнал" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" "стартиране на предстоящите капани: неправилна стойност в trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1814,64 +1889,79 @@ msgstr "" "стартиране на предстоящите капани: обработката на сигнали е SIG_DFL.\n" "%d (%s) е преизпратено на текущата обвивка" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "обработка на капани: неправилен сигнал %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "грешка при внасянето на дефиницията на функция за „%s“" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "нивото на обвивката (%d) е прекалено голямо. Задава се да е 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" "създаване на локална променлива: липсва контекст на функция в текущата " "област\n" "на видимост" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" "всички локални променливи: липсва контекст на функция в текущата област на\n" "видимост" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: аргументът е null или не е зададен" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "неправилен знак на позиция %d в низа за изнасяне за %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "липсва „=“ в низа за изнасяне за %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" "изваждане на контекст на променливи: в началото на структурата за променливи " "на\n" "обвивката (shell_variables) е нещо, което не е контекст на функция" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" "изваждане на контекст на променливи: липсва контекст за глобални променливи\n" "(global_variables)" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "изваждане на област: последният елемент структурата за променливи на " "обвивката\n" "(shell_variables) не е временна област в обкръжението" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: не може да се отвори: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: грешен файлов дескриптор: %s" + #: version.c:46 #, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." @@ -1883,69 +1973,57 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" -"заделяне на памет: %lu байта не могат да се заделят (заделени са\n" -"%lu байта)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Авторски права (C) 2005 Free Software Foundation, Inc.\n" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "заделяне на памет: %lu байта не могат да се заделят" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -"презаделяне на памет: %lu байта не могат да се заделят наново (заделени са\n" +"заделяне на памет: %lu байта не могат да се заделят (заделени са\n" "%lu байта)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "презаделяне на памет: %lu байта не могат да се заделят" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "заделяне на памет: %lu байта не могат да се заделят" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" "заделяне на памет: %s:%d: %lu байта не могат да се заделят (заделени са\n" "%lu байта)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "заделяне на памет: %s:%d: %lu байта не могат да се заделят" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"презаделяне на памет: %s:%d: %lu байта не могат да се заделят (заделени са %" -"lu байта)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "презаделяне на памет: %s:%d: %lu байта не могат да се заделят" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "" @@ -2061,7 +2139,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -2090,8 +2168,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2255,9 +2333,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2267,7 +2345,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -3307,7 +3385,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3362,7 +3444,7 @@ msgstr "" " ИНТЕРВАЛът за въвеждане или е зададен неправилен файлов дескриптор като\n" " аргумент на „-u“." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3374,7 +3456,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 #, fuzzy msgid "" "Set or unset values of shell options and positional parameters.\n" @@ -3543,7 +3625,7 @@ msgstr "" " съответно на $1, $2,… $n. Ако не са зададени АРГументи, се извеждат\n" " всички променливи на средата." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3563,7 +3645,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3582,7 +3664,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3602,7 +3684,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3613,7 +3695,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 #, fuzzy msgid "" "Execute commands from a file in the current shell.\n" @@ -3634,7 +3716,7 @@ msgstr "" " са зададени АРГУМЕНТИ, те се превръщат в позиционни аргументи при\n" " изпълнението на ФАЙЛа." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3648,7 +3730,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3799,7 +3881,7 @@ msgstr "" " „-eq“ (=), „-ne“ (!=), „-lt“ (<),\n" " „-le“ (<=), „-gt“ (>) , „-ge“ (>=)." -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3811,7 +3893,7 @@ msgstr "" " задължително да е знакът „]“, който да съответства на отварящата скоба " "„[“." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3823,7 +3905,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 #, fuzzy msgid "" "Trap signals and other events.\n" @@ -3879,7 +3961,7 @@ msgstr "" "на\n" " обвивката с командата „kill -signal $$“." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3909,7 +3991,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 #, fuzzy msgid "" "Modify shell resource limits.\n" @@ -3988,7 +4070,7 @@ msgstr "" " - опцията „-t“, при която стойността е в секунди;\n" " - опцията „-u“, при която стойността е точният брой процеси." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4006,7 +4088,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4023,7 +4105,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 #, fuzzy msgid "" "Wait for process completion and return exit status.\n" @@ -4045,7 +4127,7 @@ msgstr "" "се\n" " всички процеси в програмния канал на задачата." -#: builtins.c:1478 +#: builtins.c:1481 #, fuzzy msgid "" "Execute commands for each member in a list.\n" @@ -4065,7 +4147,7 @@ msgstr "" " всеки елемент в ДУМИте, ИМЕто се задава да е елементът и се изпълняват\n" " КОМАНДИте." -#: builtins.c:1492 +#: builtins.c:1495 #, fuzzy msgid "" "Arithmetic for loop.\n" @@ -4092,7 +4174,7 @@ msgstr "" "се\n" " изчислява да е 1." -#: builtins.c:1510 +#: builtins.c:1513 #, fuzzy msgid "" "Select words from a list and execute commands.\n" @@ -4130,7 +4212,7 @@ msgstr "" " изпълняват след всеки избор до изпълняването на команда за прекъсване\n" " (break)." -#: builtins.c:1531 +#: builtins.c:1534 #, fuzzy msgid "" "Report time consumed by pipeline's execution.\n" @@ -4154,7 +4236,7 @@ msgstr "" "според\n" " стойността на променливата на средата $TIMEFORMAT." -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -4168,7 +4250,7 @@ msgstr "" " Избирателно се изпълняват КОМАНДИ на база ДУМА, която напасва на ШАБЛОН.\n" " Шаблоните се разделят със знака „|“." -#: builtins.c:1560 +#: builtins.c:1563 #, fuzzy msgid "" "Execute commands based on conditional.\n" @@ -4205,7 +4287,7 @@ msgstr "" "ако\n" " никое тестово условие, не се е оценило като истина." -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -4220,7 +4302,7 @@ msgstr "" "„while“\n" " е с изходен код, който е 0." -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -4235,7 +4317,7 @@ msgstr "" "„until“\n" " е с изходен код, който не е 0." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4248,7 +4330,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4262,7 +4344,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -4277,7 +4359,7 @@ msgstr "" "се\n" " цял набор от команди." -#: builtins.c:1641 +#: builtins.c:1644 #, fuzzy msgid "" "Resume job in foreground.\n" @@ -4297,7 +4379,7 @@ msgstr "" " се изпълнява във фонов режим, все едно е била подадена като аргумент\n" " на командата „bg“." -#: builtins.c:1656 +#: builtins.c:1659 #, fuzzy msgid "" "Evaluate arithmetic expression.\n" @@ -4311,7 +4393,7 @@ msgstr "" " ИЗРАЗът се изчислява според правилата на аритметичното оценяване.\n" " Еквивалентно на „let ИЗРАЗ“." -#: builtins.c:1668 +#: builtins.c:1671 #, fuzzy msgid "" "Execute conditional command.\n" @@ -4361,7 +4443,7 @@ msgstr "" " „&&“ и „||“ не оценят ИЗРАЗ2, ако ИЗРАЗ1 е достатъчен за определяне на\n" " стойността на израза." -#: builtins.c:1694 +#: builtins.c:1697 #, fuzzy msgid "" "Common shell variable names and usage.\n" @@ -4490,7 +4572,7 @@ msgstr "" "кои\n" " команди да не се запазват в историята.\n" -#: builtins.c:1751 +#: builtins.c:1754 #, fuzzy msgid "" "Add directories to stack.\n" @@ -4541,7 +4623,7 @@ msgstr "" " \n" " Можете да изведете стека на директорията с командата „dirs“." -#: builtins.c:1785 +#: builtins.c:1788 #, fuzzy msgid "" "Remove directories from stack.\n" @@ -4586,7 +4668,7 @@ msgstr "" "\n" " Стекът с директориите се визуализира с командата „dirs“." -#: builtins.c:1815 +#: builtins.c:1818 #, fuzzy msgid "" "Display directory stack.\n" @@ -4638,7 +4720,7 @@ msgstr "" " -N показва N-тия елемент отдясно в списъка показван от\n" " командата „dirs“, когато е стартирана без опции. Брои се от 0." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -4659,7 +4741,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 #, fuzzy msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" @@ -4706,7 +4788,7 @@ msgstr "" " вход за обвивката. Ако е включена опцията „-v“, изходът се поставя в\n" " променливата на обвивката VAR, вместо да се извежда на стандартния изход." -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -4720,15 +4802,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 #, fuzzy msgid "" "Display possible completions depending on the options.\n" @@ -4749,7 +4836,7 @@ msgstr "" "с\n" " него." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -4762,6 +4849,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -4778,15 +4867,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -4813,16 +4902,32 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "презаделяне на памет: %lu байта не могат да се заделят наново (заделени " +#~ "са\n" +#~ "%lu байта)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "презаделяне на памет: %lu байта не могат да се заделят" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "презаделяне на памет: %s:%d: %lu байта не могат да се заделят (заделени " +#~ "са %lu байта)" + #~ msgid " " #~ msgstr " " diff --git a/po/ca.gmo b/po/ca.gmo index b6dc10b4e9e8e56b472de6c5eb2aae68ea5e5106..c34b446772183086c4077b625b7167ad5fd31ac9 100644 GIT binary patch delta 2102 zcmXZcduY~G7{Kx8rFU&^?&?~)Ztrwkb|p5L&$VkmAJ0 zI2(_kl{|$e{HM>^KS~L|78@~#OYw4Chc37g4dgjAfGw%N3mvxy4P+mh*)STw`{;(F z=sMq}=RaZv{ogR}g8$I4l$DI~2paKjT!x+4hfWwn7d(bciF4?D|G5UL(fLmz$;GS5 z0d)KjI{sa}5|30+e@k?d2bTUUTAGV^JyvpnUY;fBS+3!u9v?>+>PIW{2G-#)cHq~T z!(yU!-6nM1b~Lb6==`-+)ZbhBG!JgVJ~Yy|(KG%e4g3=4(LaGMkY%=)u?io=h1iB$ zk-g(XY{IY51TLaSGlw#313JGYPs7Moq8U7jF3^WoW&m%-K{S)`5-2 z8BOQ`KHTUDEWl@x*y9Cs-Zpf<{C*nV&aw31G~SzGL89UmqML)t;d;CQd(rX3=mMXi zCI1;)aUTDq8LQF2HlZ8tLM!|hQj9o`R3IN0Xjr0(In(d;LNt>V=)zB-3+=}ojw8P@ zm7bTex<_&g5_c>^zhIUl_cJ!2i9Caj>qEAT9a!u8e}IOi{Tv!svmZe#JBqF|QI}^DjlXzc zrZ>)=KI1#k$nU{6d<0!!CwdnKu?xSzB{-V{CaLJg4(!1NIEqZ0EjGpbz^n4GR$v0@}kD?|19nH9ui*pw)M~|`(9XE&t_zqgh575kiNc{`w z7gTX2={Vr_#*x~h`I$^?@0{^(CPq4oPnB$cy{4$dW)AeozHN?QcO5VE`NX63ri+ODuj zdq!bw{eqMVrT$6h1QCTnwtv)0Tw#NLVaUu9gN4kDmLUDm-XHG??XMbl&+DA$p7VXa z=X=g`$JShWC^!?&ddv9h<-bJ#S!Vm?OmNBi@dacngN}GV{vtPWlbb zjd&~lZK&~kU4I1U(f#&;sv#10Ia1MTqO5hACu}RFw zDO^HWfU_}-voPwcK^|!hIFsjFv-@H_62p8qU^7mm-{;(hH`9L?Rh)xJv257&52GG5 zg1PuDQY8Bx3-LUvl2gf63yxqR&$lWX#kc}JOkfVahzi(`N@NErfnBbD2sQ2_R3e|E zRyK-C;1ueCXHju}bN9386wsf6fdbB@p;E?BTd)G_u^k(65H;ZfD&Q3)md)m-=6kpn zYf$rFM;2@QoWrQ`BdGBw@ishPK>bysDQuKVpN}d{F_vKrb$A{{KGwq}im#vo9Y9s) z6P%BuScezU!wRxh+|{VKYf*{$sQFvM)L)0~O>Qj2K~$#Sp!WEj8#sY?(AO*lh@uYT z5^TXHti?UZv+Xoi;?JlB6jNSpP2Aatn*VS>Lz$&eE7*z(Fo>$mFfPJlsFh4Qm9@@H zKB`jXsLC`WAKS!54}2A~@f~Ch_8w~9LDcht6Et)>FSr{yWV4ihIo^v2Toqy>vTZib z#(8)d%dv>bnqSXF0oS3nU<+2`hp4@tKqZ=0lu2MAQt`l6(x6I~MwO%wRk8updwvYH zvL8@^vq@ipmZ67FB41g*yT1#yMJJHF?G)+{2rAJHsI!tr?R9`06WfYfz)sZoeW)!uf{J?<1Fh&M8hq?B z7oKSm>QB;EjZa_`w&DkvJ{V_Dti@Gspx`C z;xW`2d0;`1DQyck6sQwp_!?@Zhf#a{H7fJdSc{iX0V>%@orO5A!N)O<`;o=lIM!h< zSyW*?s^Xo<3unCn4F!A~b@)CCm$R{TCL!!guW zmXMvs#W5QnL{+jGb*3s(?nWQ#7i*8}e}(tc{{GX4X zLC-UZjt;-A&TC7gQhwUI)=Q+5UTMcBul2cfvfC@a-u&m=_Pea7EBWu4uK$1LHh1|? zC)?6htJ=4RBlUTUmsG{#UaY3Bwt8rN33U4H$&{Dq?tW@RD$#W\n" "Language-Team: Catalan \n" @@ -19,50 +19,55 @@ msgstr "" msgid "bad array subscript" msgstr "la matriu est? mal composta" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%c%c: opci? inv?lida" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: no es pot assignar a un ?ndex que no ?s num?ric" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: no es pot crear: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%c%c: opci? inv?lida" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -113,6 +118,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -126,7 +146,7 @@ msgstr "" msgid "line %d: " msgstr "encaix %3d:" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "s'est? escrivint" @@ -136,11 +156,11 @@ msgstr "s'est? escrivint" msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "nombre excessiu de par?metres" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, fuzzy, c-format msgid "%s: option requires an argument" msgstr "cal un par?metre per a l'opci?: -" @@ -155,7 +175,7 @@ msgstr "" msgid "%s: not found" msgstr "%s: no s'ha trobat l'ordre" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, fuzzy, c-format msgid "%s: invalid option" msgstr "%c%c: opci? inv?lida" @@ -180,7 +200,7 @@ msgstr "n?mero inv?lid de senyal" msgid "invalid hex number" msgstr "n?mero inv?lid de senyal" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 #, fuzzy msgid "invalid number" msgstr "n?mero inv?lid de senyal" @@ -195,7 +215,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: ?s una variable nom?s de lectura" @@ -270,26 +290,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: Redirecci? ambigua" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -299,21 +319,21 @@ msgid "can only be used in a function" msgstr "" "servir LOCAL dins d'una funci?; a?? restringir? la magnitud visible de la" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funci? nom?s de lectura" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, fuzzy, c-format msgid "%s: cannot destroy array variables in this way" msgstr "$%s: no es pot assignar d'aquesta manera" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -342,8 +362,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: no es pot crear: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: ?s un directori" @@ -358,7 +378,8 @@ msgstr "%s: no es pot executar el fitxer binari" msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: no es pot executar el fitxer binari" @@ -387,16 +408,16 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 #, fuzzy msgid "no command found" msgstr "%s: no s'ha trobat l'ordre" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, fuzzy, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: no es pot crear: %s" @@ -486,12 +507,12 @@ msgstr "%s: s'esperava una expressi? de nombre enter" msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 #, fuzzy msgid "Unknown error" msgstr "Error desconegut %d" @@ -500,56 +521,61 @@ msgstr "Error desconegut %d" msgid "expression expected" msgstr "s'esperava una expressi?" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: variable sense vincle" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%c%c: opci? inv?lida" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%c%c: opci? inv?lida" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "n?mero inv?lid de senyal" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: variable sense vincle" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -642,12 +668,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, fuzzy, c-format msgid "read error: %d: %s" msgstr "error del conducte: %s" @@ -687,11 +713,11 @@ msgstr "%s: funci? nom?s de lectura" msgid "shift count" msgstr "shift [n]" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -784,82 +810,82 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, fuzzy, c-format msgid "last command: %s\n" msgstr "si s'escriu \"r\" s'executar? la darrera ordre." -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 #, fuzzy msgid "unknown command error" msgstr "Error desconegut %d" -#: error.c:406 +#: error.c:407 #, fuzzy msgid "bad command type" msgstr "un nom d'una ordre." -#: error.c:407 +#: error.c:408 #, fuzzy msgid "bad connector" msgstr "connector inv?lid '%d'" -#: error.c:408 +#: error.c:409 #, fuzzy msgid "bad jump" msgstr "Salt incorrecte %d" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: variable sense vincle" #: eval.c:181 #, fuzzy, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" "%c ha excedit el temps d'espera per una entrada: fi autom?tica de sessi?\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "error del conducte: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: no s'ha trobat l'ordre" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, fuzzy, c-format msgid "%s: %s: bad interpreter" msgstr "%s: ?s un directori" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, fuzzy, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" @@ -907,29 +933,29 @@ msgstr "" msgid "missing `)'" msgstr "falta algun ')'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 #, fuzzy msgid "syntax error: operand expected" msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, fuzzy, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s: %s: %s (la prova d'error ?s \"%s\")\n" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "valor massa gran per a la base de numeraci?" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: s'esperava una expressi? de nombre enter" @@ -939,7 +965,7 @@ msgstr "%s: s'esperava una expressi? de nombre enter" msgid "getcwd: cannot access parent directories" msgstr "getwd: no s'ha pogut accedir als directoris pares" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "" @@ -998,7 +1024,7 @@ msgstr "Senyal desconeguda #%d" msgid "Done" msgstr "Fet" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Aturat" @@ -1035,73 +1061,77 @@ msgstr "(la imatge del nucli ha estat bolcada) " msgid " (wd: %s)" msgstr "(wd ara: %s)\n" -#: jobs.c:1771 +#: jobs.c:1776 #, fuzzy, c-format msgid "child setpgid (%ld to %ld)" msgstr "error en l'execuci? de setpgid (%d a %d) en el proc?s fill %d: %s\n" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, fuzzy, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" "wait: l'identificador del proc?s (pid) %d no ?s un fill d'aquest int?rpret" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: s'ha finalitzat la tasca" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "encaix %3d:" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (bolcat de la imatge del nucli)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd ara: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 #, fuzzy msgid "initialize_job_control: getpgrp failed" msgstr "initialize_jobs: getpgrp ha fallat: %s" -#: jobs.c:3623 +#: jobs.c:3639 #, fuzzy msgid "initialize_job_control: line discipline" msgstr "initialize_jobs: disciplina de l?nia: %s" -#: jobs.c:3633 +#: jobs.c:3649 #, fuzzy msgid "initialize_job_control: setpgid" msgstr "initialize_jobs: getpgrp ha fallat: %s" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "no hi ha cap tasca de control dins d'aquest int?rpret" @@ -1192,6 +1222,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Teniu correu en $_" @@ -1205,144 +1255,144 @@ msgstr "Teniu correu nou en $_" msgid "The mail in %s has been read\n" msgstr "S'ha llegit el correu a %s\n" -#: make_cmd.c:322 +#: make_cmd.c:323 #, fuzzy msgid "syntax error: arithmetic expression required" msgstr "error de sintaxi a l'expressi?" -#: make_cmd.c:324 +#: make_cmd.c:325 #, fuzzy msgid "syntax error: `;' unexpected" msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer" -#: make_cmd.c:325 +#: make_cmd.c:326 #, fuzzy, c-format msgid "syntax error: `((%s))'" msgstr "error de sintaxi" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: el tipus d'instrucci? %d ?s incorrecte" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, fuzzy, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n" "es buscava per '%c'" -#: parse.y:3722 +#: parse.y:3951 #, fuzzy msgid "unexpected EOF while looking for `]]'" msgstr "" "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n" "es buscava per '%c'" -#: parse.y:3727 +#: parse.y:3956 #, fuzzy, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'" -#: parse.y:3731 +#: parse.y:3960 #, fuzzy msgid "syntax error in conditional expression" msgstr "error de sintaxi a l'expressi?" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 #, fuzzy msgid "expected `)'" msgstr "s'esperava ')'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, fuzzy, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "%s: s'esperava un operador binari" -#: parse.y:3889 +#: parse.y:4124 #, fuzzy msgid "conditional binary operator expected" msgstr "%s: s'esperava un operador binari" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, fuzzy, c-format msgid "unexpected token `%c' in conditional command" msgstr "s'esperava ':' per a l'expressi? condicional" -#: parse.y:3924 +#: parse.y:4164 #, fuzzy, c-format msgid "unexpected token `%s' in conditional command" msgstr "s'esperava ':' per a l'expressi? condicional" -#: parse.y:3928 +#: parse.y:4168 #, fuzzy, c-format msgid "unexpected token %d in conditional command" msgstr "s'esperava ':' per a l'expressi? condicional" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'" -#: parse.y:5213 +#: parse.y:5477 #, fuzzy, c-format msgid "syntax error near `%s'" msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "error de sintaxi" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Utilitzeu ?%s? per a eixir de l'int?rpret d'ordres.\n" -#: parse.y:5447 +#: parse.y:5711 #, fuzzy msgid "unexpected EOF while looking for matching `)'" msgstr "" "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n" "es buscava per '%c'" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1352,73 +1402,92 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: el connector '%d' ?s incorrecte" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, fuzzy, c-format msgid "%s: ambiguous redirect" msgstr "%s: Redirecci? ambigua" # No acabe d'entendre el significat de l'original "clobber" -#: redir.c:152 +#: redir.c:170 #, fuzzy, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: No s'ha pogut sobreescriure el fitxer existent" -#: redir.c:157 +#: redir.c:175 #, fuzzy, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "no es pot establir un conducte per a la substituci? del proc?s: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: no es pot assignar la llista a un element de la matriu" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 #, fuzzy msgid "redirection error: cannot duplicate fd" msgstr "error de redirecci?" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, fuzzy, c-format msgid "%c%c: invalid option" msgstr "%c%c: opci? inv?lida" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "No tinc cap nom d'usuari!" -#: shell.c:1778 +#: shell.c:1793 #, fuzzy, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU %s, versi? %s\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1427,109 +1496,109 @@ msgstr "" "Sintaxi:\t%s [opci?-format-llarg GNU] [opci?] ...\n" "\t%s [opci?-format-llarg GNU] [opci?] fitxer_de_seq??ncies ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "opcions de formes llargues de GNU:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Opcions de l'int?rpret d'ordres:\n" -#: shell.c:1786 +#: shell.c:1801 #, fuzzy msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD o -c ordre\t\t(nom?s per a invocar)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s o -o opci?\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Per a obtindre m?s informaci? sobre les opcions de l'int?rpret\n" "d'ordres, teclegeu ?%s -c \"help set\"?.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Per a obtindre m?s informaci? sobre les ordres integrades de l'int?rpret,\n" "teclegeu '%s -c help' .\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Senyal falsa" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Penjar" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Interrumpeix" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Eixir" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Instrucci? ilžlegal" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT rastrejament/captura" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Instrucci? d'avortament (ABORT)" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "Instrucci? per a emular una captura EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Excepci? en operaci? amb coma flotant" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Finalitzat" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Error de bus" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Violaci? de segment" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Crida inv?lida del sistema" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Conducte trencat" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Temporitzador" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "" @@ -1539,288 +1608,309 @@ msgstr "" "s'esborra la variable OPTARG, i s'imprimir? un missatge de\n" "diagn?stic." -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Condici? urgent d'Entrada/Eixida (En/Ei)" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Aturat (senyal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Continua" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "S'ha mort o s'ha aturat el proc?s fill" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Aturat (entrada per terminal)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Aturat (eixida per terminal)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "Entrada/Eixida preparades" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "L?mit de la UCP" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "L?mit de la grand?ria del fitxer" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarma (virtual)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarma (entorn)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "S'ha canviat la finestra" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Bloqueig de gravaci?" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Senyal 1 definida per l'usuari" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Senyal 2 definida per l'usuari" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "pendent de l'entrada de dades HFT" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "fallida imminent d'energia" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "fallida imminent del sistema" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "proc?s de migraci? cap a un altre UPC en curs" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "error de programaci?" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "S'ha concedit el mode de monitor HFT" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "S'ha rebutjat el mode de monitor HFT" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "S'ha completat la seq??ncia de so HFT" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Senyal desconeguda #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Senyal desconeguda #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, fuzzy, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "substituci? inv?lida: no existeix '%s' en %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: no es pot assignar la llista a un element de la matriu" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 #, fuzzy msgid "cannot make pipe for process substitution" msgstr "no es pot establir un conducte per a la substituci? del proc?s: %s" -#: subst.c:4504 +#: subst.c:4802 #, fuzzy msgid "cannot make child for process substitution" msgstr "no es pot establir un proc?s fill per a la substituci? del proc?s: %s" -#: subst.c:4549 +#: subst.c:4847 #, fuzzy, c-format msgid "cannot open named pipe %s for reading" msgstr "no es pot obrir el conducte anomenat %s per a %s: %s" -#: subst.c:4551 +#: subst.c:4849 #, fuzzy, c-format msgid "cannot open named pipe %s for writing" msgstr "no es pot obrir el conducte anomenat %s per a %s: %s" -#: subst.c:4569 +#: subst.c:4867 #, fuzzy, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" "no es pot duplicar el conducte anomenat %s\n" "com a descripci? de fitxer %d: %s" -#: subst.c:4765 +#: subst.c:5063 #, fuzzy msgid "cannot make pipe for command substitution" msgstr "no es poden establir conductes per a la substituci? de l'ordre: %s" -#: subst.c:4799 +#: subst.c:5097 #, fuzzy msgid "cannot make child for command substitution" msgstr "no es pot crear un proc?s fill per a la substituci? del proc?s: %s" -#: subst.c:4816 +#: subst.c:5114 #, fuzzy msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" "command_substitute(): el coducte no es pot duplicar\n" "com a descripci? de fitxer 1: %s" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: par?metre nul o no ajustat" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: la sub-cadena de l'expressi? ?s < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: substituci? inv?lida" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: no es pot assignar d'aquesta manera" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "substituci? inv?lida: no existeix '%s' en %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "s'esperava un par?metre" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: s'esperava una expressi? de nombre enter" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "s'esperava ')'" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "mentre es buscava ?)?, s'ha trobat %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: s'esperava un operador unari" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: s'esperava un operador binari" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "s'ha perdut algun ']'" -#: trap.c:201 +#: trap.c:203 #, fuzzy msgid "invalid signal number" msgstr "n?mero inv?lid de senyal" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, fuzzy, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: Senyal inv?lida %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "'%s': error en importar la definici? de la funci?" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: par?metre nul o no ajustat" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: no es pot crear: %s" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1831,60 +1921,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, fuzzy, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU %s, versi? %s\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" - -#: xmalloc.c:94 -#, fuzzy, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "" -#: xmalloc.c:114 +#: version2.c:87 #, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" - -#: xmalloc.c:116 -#, fuzzy, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" -#: xmalloc.c:152 +#: xmalloc.c:93 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: cannot allocate %lu bytes" msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" -#: xmalloc.c:174 +#: xmalloc.c:163 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" -#: xmalloc.c:176 +#: xmalloc.c:165 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -2021,7 +2103,7 @@ msgstr "hash [-r] [-p cam?] [nom ...]" #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "help [patr? ...]" #: builtins.c:121 @@ -2064,8 +2146,8 @@ msgstr "let par?metres [par?metres ...]" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2256,9 +2338,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2269,7 +2351,7 @@ msgstr "" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "type [-apt] nom [nom ...]" #: builtins.c:240 @@ -2996,7 +3078,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3016,7 +3102,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3028,7 +3114,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3110,7 +3196,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3130,7 +3216,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3149,7 +3235,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3169,7 +3255,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3180,7 +3266,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3194,7 +3280,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3208,7 +3294,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3285,7 +3371,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3296,7 +3382,7 @@ msgstr "" "par?metre ha de ser el signe \"]\" perqu? es puga tancar l'expressi? que\n" "comen?a pel signe \"[\"." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3308,7 +3394,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3344,7 +3430,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3374,7 +3460,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3418,7 +3504,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3436,7 +3522,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3453,7 +3539,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3467,7 +3553,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3480,7 +3566,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3497,7 +3583,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3517,7 +3603,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3533,7 +3619,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -3545,7 +3631,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Executa selectivament les ordres especificades en ORDRES seguint una " -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3566,7 +3652,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -3580,7 +3666,7 @@ msgstr "" "Expandeix i executa les ordres especificades en ORDRES i els executa\n" "de tal manera que la darrera ordre" -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -3594,7 +3680,7 @@ msgstr "" "Expandeix i executa les ordres especificades en ORDRES i els executa\n" "de tal manera que la darrera ordre" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3607,7 +3693,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3621,7 +3707,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -3633,7 +3719,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Executa un conjunt d'ordres en un grup. A?? ?s una manera de" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3647,7 +3733,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3658,7 +3744,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3686,7 +3772,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3740,7 +3826,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3771,7 +3857,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3798,7 +3884,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3827,7 +3913,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3848,7 +3934,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3878,7 +3964,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3892,15 +3978,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3913,7 +4004,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3926,6 +4017,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3942,15 +4035,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3977,16 +4070,32 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#, fuzzy +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "" +#~ "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#, fuzzy +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + #~ msgid "Display the list of currently remembered directories. Directories" #~ msgstr "" #~ "Mostra la llista dels directoris actualment recordats. Els directoris " diff --git a/po/cs.gmo b/po/cs.gmo index 42ae24650755ddde67db3d901417d4bf63a40585..5d92d8ff4444ad73d611d57abc133959a9d2e798 100644 GIT binary patch delta 13018 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 HcaixYAPmwz delta 13894 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 CwKmNF diff --git a/po/cs.po b/po/cs.po index 986c4ce..579ba71 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1,14 +1,19 @@ # Czech tranlation for bash. # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. -# Petr Pisar , 2008. +# Petr Pisar , 2008, 2009. # +# subscript → podskript +# subroutine → podprogram +# completition options → možnosti doplňování +# shell option → přepínač shellu (shopt) +# Názvy signálu a stavů procesu by měly souhlasit se signal(7). msgid "" msgstr "" -"Project-Id-Version: bash 4.0-pre1\n" +"Project-Id-Version: bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2008-09-07 13:09+0200\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-09-23 14:23+0200\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" @@ -20,55 +25,58 @@ msgstr "" msgid "bad array subscript" msgstr "chybný podskript pole" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: číslované pole nezle převést na pole asociativní" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: neplatný klíč asociativního pole" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: přes nečíselný indexu nelze dosadit" -# FIXME: subscript je klicove slovo bashe 4 nebo skutecne podprogram? -# přiřazuje se do pole nebo pole někam? -#: arrayfunc.c:517 -#, fuzzy, c-format +#: arrayfunc.c:518 +#, c-format msgid "%s: %s: must use subscript when assigning associative array" -msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podprogram" +msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podskript" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: nelze vytvořit: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: pro příkaz nelze nalézt klávesovou mapu " -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: první nebílý znak není „\"“" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "ne zavírající „%c“ v %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: chybí dvojtečkový oddělovač" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "„%s“: chybný název klávesové mapy" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "upravování řádku není povoleno" #: builtins/bind.def:206 #, c-format @@ -109,12 +117,29 @@ msgid "only meaningful in a `for', `while', or `until' loop" msgstr "má smysl jen ve smyčkách „for“, „while“ nebo „until“" #: builtins/caller.def:133 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" " Without EXPR, returns " -msgstr "Vrací kontext aktuálního volání podrutiny." +msgstr "" +"Vrátí kontext aktuálního volání podprogramu.\n" +" \n" +" Bez VÝRAZU vrátí " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -129,7 +154,7 @@ msgstr "není nastaveno OLDPWD" msgid "line %d: " msgstr "řádek %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "varování: " @@ -139,11 +164,11 @@ msgstr "varování: " msgid "%s: usage: " msgstr "%s: užití: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "příliÅ¡ mnoho argumentů" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: přepínač vyžaduje argument" @@ -158,7 +183,7 @@ msgstr "%s: vyžadován číselný argument" msgid "%s: not found" msgstr "%s: nenalezeno" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: chybný přepínač" @@ -181,7 +206,7 @@ msgstr "neplatné osmičkové číslo" msgid "invalid hex number" msgstr "chybné Å¡estnáctkové číslo" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "chybné číslo" @@ -195,7 +220,7 @@ msgstr "%s: chybné určení signálu" msgid "`%s': not a pid or valid job spec" msgstr "„%s“: není PID ani platným označením úlohy" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: proměnná pouze pro čtení" @@ -250,12 +275,12 @@ msgstr "chyba zápisu: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "chyba při nastavování vlastností terminálu: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "chyba při získávání vlastností terminálu: %s" #: builtins/common.c:563 #, c-format @@ -267,26 +292,26 @@ msgstr "%s: chyba při zjiÅ¡Å¥ování současného adresáře: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: nejednoznačné určení úlohy" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: neplatný název akce" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: žádné doplňování neurčeno" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "varování: přepínač -F možná nebude dělat, co jste čekali" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "varování: přepínač -C možná nebude dělat, co jste čekali" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "doplňovací funkce se právě nevykonává" @@ -294,21 +319,21 @@ msgstr "doplňovací funkce se právě nevykonává" msgid "can only be used in a function" msgstr "může být použito jen ve funkci" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "„-f“ nezle použít na výrobu funkce" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funkce jen pro čtení" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: takto nelze likvidovat pole" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: asociativní pole nelze převést na číslované pole" @@ -337,8 +362,8 @@ msgstr "%s: není dynamicky nahráno" msgid "%s: cannot delete: %s" msgstr "%s: nelze smazat: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: je adresářem" @@ -353,7 +378,8 @@ msgstr "%s: není obyčejný soubor" msgid "%s: file is too large" msgstr "%s: soubor je příliÅ¡ velký" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: binární soubor nelze spustit" @@ -363,12 +389,12 @@ msgstr "%s: binární soubor nelze spustit" msgid "%s: cannot execute: %s" msgstr "%s: nelze provést: %s" -# FIXME: Toto je literál, jedná se o syntaxi příkazu, který nemá žádné -# parametry? Nebo se jedná o zprávu shellu při odhlášení? +# XXX: Toto je zpráva interaktivního shellu při příkazu exit informující +# o odhlášení #: builtins/exit.def:65 -#, fuzzy, c-format +#, c-format msgid "logout\n" -msgstr "logout\n" +msgstr "odhlášení\n" #: builtins/exit.def:88 msgid "not login shell: use `exit'" @@ -384,15 +410,15 @@ msgstr "Jsou zde pozastavení úlohy.\n" msgid "There are running jobs.\n" msgstr "Jsou zde běžící úlohy.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "žádný příkaz nenalezen" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "určení historie" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: dočasný soubor nelze otevřít: %s" @@ -462,8 +488,7 @@ msgid "" "A star (*) next to a name means that the command is disabled.\n" "\n" msgstr "" -"Tyto příkazy shellu jsou vnitřně definovány. NapiÅ¡te „help“, aby ste " -"získali\n" +"Tyto příkazy shellu jsou vnitřně definovány. NapiÅ¡te „help“, abyste získali\n" "tento seznam. Podrobnosti o funkci „název“ získáte příkazem „help název“.\n" "Příkazem „info bash“ získáte obecné informace o tomto shellu.\n" "Použijte „man -k“ nebo „info“, chcete-li zjistit více o příkazech, které\n" @@ -494,12 +519,12 @@ msgstr "%s: inlib selhala" msgid "no other options allowed with `-x'" msgstr "s „-x“ nejsou dovoleny další přepínače" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argumenty musí být proces nebo identifikátor úlohy" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Neznámá chyba" @@ -507,55 +532,60 @@ msgstr "Neznámá chyba" msgid "expression expected" msgstr "očekáván výraz" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: není (proměnnou typu) pole" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: chybné určení deskriptoru souboru" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: neplatný deskriptor souboru: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: chybný počet řádků" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: chybný počátek pole" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: neplatné množství mezi voláními" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "prázdný název proměnné typu pole" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "je vyžadována podpora proměnných typu pole" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "„%s“: postrádám formátovací znak" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "„%c“: neplatný formátovací znak" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "varování: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "u \\x chybí Å¡estnáctková číslovka" @@ -701,12 +731,12 @@ msgstr "" " \n" " Zásobník adresářů si můžete prohlédnout příkazem „dirs“." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: chybné určení časového limitu" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "chyba čtení: %d: %s" @@ -743,11 +773,11 @@ msgstr "%s: není funkcí" msgid "shift count" msgstr "počet shiftů" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "přepínač shellu nelze zároveň nastavit a zruÅ¡it" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: chybný název přepínače shellu" @@ -837,76 +867,76 @@ msgstr "„%c“: chybný operátor symbolických práv" msgid "`%c': invalid symbolic mode character" msgstr "„%c“: chybný znak symbolický práv " -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " řádek " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "poslední příkaz: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Ukončuji…" -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "chyba neznámého příkazu" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "chybný druh příkazu" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "chybný konektor" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "chybný skok" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: nevázaná proměnná" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\ačasový limit pro čekání na vstup vyprÅ¡el: automatické odhlášení\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "časový limit pro čekání na vstup vyprÅ¡el: automatické odhlášení\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "standardní vstup nelze přesměrovat z /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: „%c“: chybný formátovací znak" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "chyba v rouře" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: omezeno: v názvu příkazu nesmí být „/“" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: příkaz nenalezen" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: chybný interpretr" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "deskriptor souboru %d nelze duplikovat na deskriptor %d" @@ -951,28 +981,28 @@ msgstr "po přednostním zvýšení nebo snížení očekáván identifikátor" msgid "missing `)'" msgstr "postrádám „)“" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "syntaktická chyba: očekáván operand" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "syntaktická chyba: chybný aritmetický operátor" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (chybný token je „%s“)" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "chybný aritmetický základ" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "hodnot je pro základ příliÅ¡ velká" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: chyba výrazu\n" @@ -981,7 +1011,7 @@ msgstr "%s: chyba výrazu\n" msgid "getcwd: cannot access parent directories" msgstr "getcwd: rodičovské adresáře nejsou přístupné" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "na deskriptoru %d nelze resetovat režim nodelay" @@ -1010,9 +1040,8 @@ msgstr "forknutý PID %d se objevil v běžící úloze %d" msgid "deleting stopped job %d with process group %ld" msgstr "mažu pozastavenou úlohu %d se skupinou procesů %ld" -# FIXME: in the_pipeline znamená do nebo v? #: jobs.c:1110 -#, fuzzy, c-format +#, c-format msgid "add_process: process %5ld (%s) in the_pipeline" msgstr "add_process: proces %5ld (%s) do the_pipeline" @@ -1031,19 +1060,20 @@ msgstr "describe_pid: %ld: žádný takový PID" msgid "Signal %d" msgstr "Signál %d" -# FIXME: rod a zkontrolovat následující +# XXX: (úloha) dokončna. Používat ženský rod i unásledujících. Jedná se +# o výpis úloh. #: jobs.c:1430 jobs.c:1455 msgid "Done" -msgstr "Dokonán" +msgstr "Dokončena" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" -msgstr "Pozastaven" +msgstr "Pozastavena" #: jobs.c:1439 #, c-format msgid "Stopped(%s)" -msgstr "Pozastaven (%s)" +msgstr "Pozastavena (%s)" #: jobs.c:1443 msgid "Running" @@ -1052,13 +1082,12 @@ msgstr "Běží" #: jobs.c:1457 #, c-format msgid "Done(%d)" -msgstr "Dokonán (%d)" +msgstr "Dokončena (%d)" -# FIXME: Jedná se o způsob ukončení zavoláním funkce exit(%d)? #: jobs.c:1459 -#, fuzzy, c-format +#, c-format msgid "Exit %d" -msgstr "Exit %d" +msgstr "Ukončena %d" #: jobs.c:1462 msgid "Unknown status" @@ -1074,69 +1103,73 @@ msgstr "(core dumped [obraz paměti uložen]) " msgid " (wd: %s)" msgstr " (cwd: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "setpgid na potomku (z %ld na %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: PID %ld není potomkem tohoto shellu" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Žádný záznam o procesu %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: úloha %d je pozastavena" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: úloha skončila" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: úloha %d je již na pozadí" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: řádek %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (core dumped [obraz paměti uložen])" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(cwd nyní: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: getpgrp selhalo" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: disciplína linky" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "nelze nastavit skupinu procesů terminálu (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "žádná správa úloh v tomto shellu" @@ -1155,7 +1188,6 @@ msgstr "" "malloc: %s:%d: zbabraný předpoklad\r\n" #: lib/malloc/malloc.c:313 -#, fuzzy msgid "unknown" msgstr "není známo" @@ -1229,6 +1261,26 @@ msgstr "%s: chybné určení síťové cesty" msgid "network operations not supported" msgstr "síťové operace nejsou podporovány" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: nelze alokovat %'lu bajtů" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: nelze alokovat %'lu bajtů" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "V $_ máte poÅ¡tu" @@ -1242,134 +1294,134 @@ msgstr "V $_ máte novou poÅ¡tu" msgid "The mail in %s has been read\n" msgstr "PoÅ¡ta v %s je přečtená\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "chyba syntaxe: vyžadován aritmetický výraz" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "chyba syntaxe: neočekávaný „;“" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "chyba syntaxe: „((%s))“" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: chybný druh instrukce %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "„here“ dokument na řádku %d ukončen koncem souboru (požadováno „%s“)" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: instrukce přesměrování „%d“ mimo rozsah" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "neočekávaný konec souboru při hledání znaku odpovídajícímu „%c“" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "neočekávaný konec souboru při hledání „]]“" # XXX: Condional means condition (adj.) probably. Can English distinguish # between the condition (podmínkový) and the code branch (podmíněný)? Check # for all "conditional" string occurences. -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "chyba syntaxe ve výrazu podmínky: neočekávaný token „%s“" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "chyba syntaxe ve výrazu podmínky" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "neočekávaný token „%s“, očekávána „)“" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "očekávána „)“" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "neočekávaný argument „%s“ u podmínkového unárního operátoru" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "neočekávaný argument u podmínkového unárního operátoru" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "neočekávaný token „%s“, očekáván podmínkový binární operátor" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "očekáván podmínkový binární operátor" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "neočekávaný argument „%s„ u podmínkového binárního operátoru" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "neočekávaný argument u podmínkového binárního operátoru" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "neočekávaný token „%c“ v podmínkovém příkazu" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "neočekávaný token „%s“ v podmínkovém příkazu" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "neočekávaný token %d v podmínkovém příkazu" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "chyba syntaxe poblíž neočekávaného tokenu „%s“" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "chyba syntaxe poblíž „%s“" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "chyba syntaxe: nenadálý konec souboru" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "chyba syntaxe" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Shell lze ukončit příkazem „%s“.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "nenadálý konec souboru při hledání odpovídající „)“" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "doplňování: funkce „%s“ nenalezena" @@ -1379,71 +1431,90 @@ msgstr "doplňování: funkce „%s“ nenalezena" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULLOVÝ COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: chybná propojka „%d“" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: neplatný deskriptor souboru: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: „%c“: chybný formátovací znak" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "deskriptor souboru mimo rozsah" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: nejednoznačné přesměrování" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: existující soubor nelze přepsat" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: omezeno: výstup nelze přesměrovat" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "pro „here“ dokument nelze vytvořit dočasný soubor: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: seznam nelze přiřadit do prvku pole" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port není bez síťování podporováno" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "chyba přesměrování: deskriptor souboru nelze duplikovat" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "nelze nalézt /tmp, vytvořte jej, prosím!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp musí být platným názvem pro adresář" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: chybný přepínač" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Nemám žádné jméno!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, verze %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1452,395 +1523,411 @@ msgstr "" "Použití:\t%s [Dlouhý GNU přepínač] [přepínač]…\n" "\t%s [Dlouhý GNU přepínač] [přepínač] skriptový_soubor…\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Dlouhé GNU přepínače:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Přepínače shellu:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD nebo -c příkaz nebo -O shopt_přepínač\t(pouze při vyvolání)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s nebo -o přepínač\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Podrobnosti o přepínačích shellu získáte tím, že napíšete „%s -c \"help set" "\"“.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Podrobnosti o příkazech vestavěných do shellu získáte tím, že\n" "napiÅ¡te „%s -c help“.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Chyby nahlásíte příkazem „bashbug“.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: neplatná operace" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "FaleÅ¡ný signál" # Překlady názvů signálů převzaty (s mírnými úpravami) z české překladu # manuálové stránky signal(7). -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Linka terminálu zavěšena" -# FIXME: rod a následující -#: siglist.c:54 -#, fuzzy +#: siglist.c:55 msgid "Interrupt" msgstr "PřeruÅ¡ení" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Ukončení" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" -msgstr "Neplatní instrukce" +msgstr "Neplatná instrukce" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "PřeruÅ¡ení při ladění" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Ukončení funkcí abort()" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "Instrukce EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Výjimka při práci s pohyblivou řádovou čárkou" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Zabit" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Chyba sběrnice" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Chyba segmentace" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Å patné volání systému" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Z roury nikdo nečte" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Signál časovače" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Ukončit" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Čekají urgentní I/O data" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Pozastaveno (signálem)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Pokračovat" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Potomek byl pozastaven nebo zemřel" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Pozastaveno (vstupem TTY)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Pozastaveno (výstupem na TTY)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O je připraveno" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "Dosažen limit procesorového času" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Dosažen limit velikosti souboru" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Časovač (virtuální)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Časovač (profilovací)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Změna okna" -# FIXME: WTF? -# „Zámek záznamu“ nebo „Zaznamenej zámek“ -#: siglist.c:170 -#, fuzzy +# XXX: SIGLOST +#: siglist.c:171 msgid "Record lock" msgstr "Zámek záznamu" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Uživatelský signal 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Uživatelský signál 2" # FIXME: HFT znamená High Frequency Timer? Zkontrolovat i další výskyty -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "vstupní data HFT čekají" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "hrozí selhání napájení" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "hrozí selhání systému" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "přesunout proces na jiný procesor" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "chyba programování" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "Režim HFT sledování přidělen" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "Režim HFT sledování odebrán" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFT zvuková posloupnost byla dokončena" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "Požadavek o informaci" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Neznámé číslo signálu" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Neznámý signál č. %d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "chybná substituce: v %2$s chybí uzavírací „%1$s“" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: seznam nelze přiřadit do prvku pole" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "nelze vyrobit rouru za účelem substituce procesu" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "nelze vytvořit potomka za účelem substituce procesu" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "pojmenovanou rouru %s nelze otevřít pro čtení" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "pojmenovanou rouru %s nelze otevřít pro zápis" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "pojmenovanou rouru %s nelze zdvojit jako deskriptor %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "nelze vytvořit rouru pro substituci příkazu" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "nelze vytvořit potomka pro substituci příkazu" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: rouru nelze zdvojit jako deskriptor 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parametr null nebo nenastaven" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: výraz podřetězce < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: chybná substituce" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: takto nelze přiřazovat" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "chybná substituce: v %s chybí uzavírací „`“" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "žádná shoda: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "očekáván argument" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: očekáván celočíselný výraz" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "očekávána „)“" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "očekávána „)“, nalezeno %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: očekáván unární operátor" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: očekáván binární operátor" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "postrádám „]“" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "neplatné číslo signálu" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "run_pending_traps: obsluha signálu je SIG_DFL, přeposílám %d (%s) sobě" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: chybný signál %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "chyba při importu definice „%s“" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "úroveň shellu (%d) příliÅ¡ vysoká, resetuji na 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: žádný kontext funkce v aktuálním rozsahu" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: žádný kontext funkce v aktuálním rozsahu" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parametr null nebo nenastaven" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "neplatný znak %d v exportstr pro %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "v exportstr pro %s chybí „=“" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: hlava shell_variables není kontextem funkce" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: chybí kontext global_variables" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "pop_scope: hlava shell_variables není dočasným rozsahem prostředí" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: nelze otevřít: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: neplatný deskriptor souboru: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Copyright © 2008 Free Software Foundation, Inc." +msgstr "Copyright © 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" @@ -1850,61 +1937,55 @@ msgstr "" "Licence GPLv3+: GNU GPL verze 3 nebo novější \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, verze %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "Toto je svobodné programové vybavení: máte právo jej měnit a šířit.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "VEÅ KERÉ ZÁRUKY chybí, jak jen zákon dovoluje.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nelze alokovat %'lu bajtů (%'lu bajtů alokováno)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright © 2009 Free Software Foundation, Inc." -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: nezle alokovat %'lu bajtů" +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" +"Licence GPLv3+: GNU GPL verze 3 nebo novější \n" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nelze alokovat %'lu bajtů (%'lu bajtů alokováno)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: nelze alokovat %'lu bajtů" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: nezle alokovat %'lu bajtů" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s:%d: nelze alokovat %'lu bajtů (%'lu bajtů alokováno)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: nelze alokovat %'lu bajtů" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s:%d: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: nelze alokovat %'lu bajtů" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [název[=hodnota] …]" @@ -2024,7 +2105,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p název_cesty] [-dt] [název…]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "help [-ds] [vzorek…]" #: builtins.c:121 @@ -2055,9 +2137,10 @@ msgid "let arg [arg ...]" msgstr "let argument [argument…]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a pole] [-d oddělovač] [-i text] [-n p_znaků] [-p výzva] [-t " "limit] [-u fd] [jméno…]" @@ -2172,7 +2255,7 @@ msgstr "until PŘÍKAZY; do PŘÍKAZY; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "command [NÁZEV] příkaz [přesměrování]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2220,10 +2303,11 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v proměnná] formát [argumenty]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" "complete [-abcdefgjksuv] [-pr] [-o přepínač] [-A akce] [-G globvzor] [-W " "seznam_slov] [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S " @@ -2239,8 +2323,9 @@ msgstr "" "přípona] [slovo]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" -msgstr "compopt [-o|+o přepínač] [název…]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" +msgstr "compopt [-o|+o možnost] [název…]" #: builtins.c:240 msgid "" @@ -2251,12 +2336,11 @@ msgstr "" "množství] [pole]" #: builtins.c:242 -#, fuzzy msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" -"mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c " +"readarray [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c " "množství] [pole]" #: builtins.c:254 @@ -3523,7 +3607,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3542,10 +3630,10 @@ msgid "" "out,\n" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -"Načte ze standardního vstupu jeden řádek a rozdělí jej na pole.\n" +"Načte ze standardního vstupu jeden řádek a rozdělí jej na položy.\n" " \n" " Ze standardního vstupu, nebo deskriptoru souboru FD, je-li zadán\n" -" přepínač -u, je načten jeden řádek. Řádek se rozdělí ba pole jako při\n" +" přepínač -u, je načten jeden řádek. Řádek se rozdělí na části jako při\n" " dělení na slova a první slovo je přiřazeno do prvního JMÉNA, druhé " "slovo\n" " do druhého JMÉNA a tak dále, přičemž přebývající slova se přiřadí do\n" @@ -3558,21 +3646,22 @@ msgstr "" " Přepínače:\n" " -a pole\tnačtená slova budou přiřazena do postupných prvků POLE\n" " \t\tpočínaje nulou\n" -" -d oddělovač\tpokračuje, dokud se není načten první znak ODDĚLOVAČE\n" +" -d oddělovač\tpokračuje, dokud není načten první znak ODDĚLOVAČE\n" " \t\tnamísto nového řádku\n" " -e\t\tv interaktivním shellu bude řádek načten pomocí Readline\n" " -i text\tpoužije TEXT jako prvotní text pro Readline\n" " -n p_znaků\tvrátí řízení po načtení P_ZNAKÅ® znaků, aniž by čekal na\n" " \t\tnový řádek\n" -" -p výzva\tvypíše řetězec VÝZVA bez závěrečného nového řádku,\n" -" \t\tdříve než se zahájí načítání\n" +" -p výzva\tvypíše řetězec VÝZVA bez závěrečného nového řádku dříve,\n" +" \t\tnež se zahájí načítání\n" " -r\t\tnepovolí zpětná lomítka pro escapování jakýchkoliv znaků\n" " -s\t\tvstup pocházející z terminálu nebude zobrazován\n" " -t limit\tumožní vyprÅ¡ení časového limitu a vrácení chyby, pokud\n" " \t\tnebude načten celý řádek do LIMIT sekund. Hodnota proměnné\n" -" \t\tTMOUT představuje implicitní limit. TIMEOUT smí být desetinné\n" -" \t\tčíslo. Návratový kód bude větší než 128, pokud časový limit\n" -" \t\tvyprší.\n" +" \t\tTIMOUT představuje implicitní limit. TIMEOUT smí být desetinné\n" +" \t\tčíslo. Je-li TIMEOUT 0, read vrátí úspěch, jen bude-li na zadaném\n" +" \t\tdeskriptoru souboru připraven vstup. Návratový kód bude větší než\n" +" \t\t128, pokud časový limit bude překročen.\n" " -u fd\t\tčte z deskriptoru souboru FD namísto standardního vstupu\n" " \n" " Návratový kód:\n" @@ -3580,7 +3669,7 @@ msgstr "" " pro čtení nevyprší nebo není poskytnut neplatný deskriptor souboru jako\n" " argument -u." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3602,7 +3691,7 @@ msgstr "" " Návratová hodnota:\n" " Vrátí N, nebo selže, pokud shell neprovádí funkci nebo skript." -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3748,7 +3837,7 @@ msgstr "" " při přesměrování výstupu.\n" " -E Je-li nastaveno, trap ERR (zachytávání chyb) bude děděn do\n" " funkcí shellu.\n" -" -H Zapne ! způsob nahrazování histore. Tento příznak je automaticky\n" +" -H Zapne ! způsob nahrazování historie. Tento příznak je automaticky\n" " zapnut při interaktivním shellu.\n" " -P Je-li nastaveno, nebudou následovány symbolické odkazy při\n" " provádění příkazů jako změna pracovního adresáře pomocí „cd“.\n" @@ -3768,7 +3857,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud nebyl zadán neplatný argument." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3805,7 +3894,7 @@ msgstr "" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač a JMÉNO není jen pro\n" " čtení." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3840,7 +3929,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3878,7 +3967,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3896,7 +3985,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud N není záporný a není větší než $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3920,7 +4009,7 @@ msgstr "" " Vrací návratový kód posledního provedeného příkazu z NÁZVU_SOUBORU.\n" " Selže, pokud NÁZEV_SOUBORU nelze načíst." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3944,7 +4033,7 @@ msgstr "" " Návratový kód:\n" " Vrací úspěch, pokud je správa úloh zapnuta a nevyskytla se chyba." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4102,7 +4191,7 @@ msgstr "" " Vrací úspěch, je-li VÝRAZ vyhodnocen jako pravdivý. Selže, je-li VÝRAZ\n" " vyhodnocen jako nepravdivý nebo je-li zadán neplatný argument." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4114,7 +4203,7 @@ msgstr "" " Toto je synonymum pro vestavěný příkaz „test“, až na to, že poslední\n" " argument musí být doslovně „]“, aby se shodoval s otevírající „[“." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4134,7 +4223,7 @@ msgstr "" " Návratový kód:\n" " Vždy uspěje." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4205,7 +4294,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud SIGSPEC a zadané přepínače jsou platné." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4261,7 +4350,7 @@ msgstr "" " Vrátí úspěch, pokud vÅ¡echny NÁZVY byly nalezeny. Selže, pokud některé\n" " nalezeny nebyly." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4317,7 +4406,7 @@ msgstr "" " -c\tmaximální velikost vytvářených core souborů (výpis paměti " "programu)\n" " -d\tmaximální velikost datového segmentu procesu\n" -" -e\tmaximální plánovací priorita („nice“)\n" +" -e\tmaximální plánovací priorita („nice“)\n" " -f\tmaximální velikost souborů zapsaných shellem a jeho potomky\n" " -i\tmaximální počet čekajících signálů\n" " -l\tmaximální velikost paměti, kterou může proces zamknout\n" @@ -4345,7 +4434,7 @@ msgstr "" " Návratová hodnota:\n" " Vrací úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4378,7 +4467,7 @@ msgstr "" " Návratový kód\n" " Vrátí úspěch, pokud nebyl zadán neplatný MÓD nebo přepínač." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4406,7 +4495,7 @@ msgstr "" " Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný " "přepínač." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4430,7 +4519,7 @@ msgstr "" " Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný " "přepínač." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4454,7 +4543,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy provedeného příkazu." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4483,7 +4572,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy vykonaného příkazu." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4525,7 +4614,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy prováděného příkazu." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4556,7 +4645,7 @@ msgstr "" " Návratový kód:\n" " Návratová hodnota je návratová hodnota KOLONY." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4574,7 +4663,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy provedeného příkazu." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4609,7 +4698,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy provedeného příkazu." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4628,7 +4717,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy provedeného příkazu." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4646,7 +4735,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy provedeného příkazu." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4658,8 +4747,17 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Vytvoří koproces pojmenovaný NÁZEV.\n" +" \n" +" Vykoná PŘÍKAZ asynchronně, přičemž jeho standardní výstup a standardní\n" +" vstup budou napojeny rourou na souborové deskriptory uvedené v poli " +"NÁZEV\n" +" tohoto shellu pod indexem 0 a 1. Implicitní NÁZEV je „COPROC“.\n" +" \n" +" Návratový kód:\n" +" Vrátí návratový kód PŘÍKAZU." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4684,7 +4782,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud NÁZEV není jen pro čtení." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4701,7 +4799,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód naposledy spuÅ¡těného příkazu." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4726,7 +4824,7 @@ msgstr "" " Návratový kód:\n" " Vrátí kód obnovené úlohy." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4748,7 +4846,7 @@ msgstr "" # příkaz, který by byl vykonán na základě splnění jiné podmínky. Tj. překlad # „podmíněný příkaz“ je chybný. # Toto je nápověda k vestavěnému příkazu „[“. -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4800,7 +4898,7 @@ msgstr "" " Návratový kód:\n" " 0 nebo 1 podle hodnoty VÝRAZU." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4905,7 +5003,7 @@ msgstr "" " \t\trozliÅ¡ení, které příkazy by měly být uloženy do seznamu\n" " \t\thistorie.\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4962,7 +5060,7 @@ msgstr "" " Vrátí úspěch, pokud nebyl zadán neplatný argument a změna adresáře\n" " neselhala." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -5012,7 +5110,7 @@ msgstr "" " Vrátí úspěch, pokud nebyl zadán neplatný argument nebo neselhala změna\n" " adresáře." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -5063,7 +5161,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5094,14 +5192,14 @@ msgstr "" " \ts „set -o“\n" " -p\tvypíše každou volbu shellu s určením jejího stavu\n" " -q\tpotlačí výstup\n" -" -s\tzapne (nastaví) každý NÁZEV_VOLBY\n" -" -u\tvypne (odnastaví) každý NÁZEV_VOLBY\n" +" -s\tzapne [set] každý NÁZEV_VOLBY\n" +" -u\tvypne [unset] každý NÁZEV_VOLBY\n" " \n" " Návratový kód:\n" " Vrátí úspěch, je-li NÁZEV_VOLBY zapnut. Selže, byl-li zadán neplatný\n" " přepínač nebo je-li NÁZEV_VOLBY vypnut." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5156,7 +5254,8 @@ msgstr "" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedoÅ¡lo k chybě\n" " zápisu nebo přiřazení." -#: builtins.c:1892 +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5170,9 +5269,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5195,7 +5299,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5216,14 +5320,7 @@ msgstr "" " Návratový kód:\n" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." -# FIXME: Příkaz compopt je ve verzi 4.0 zcela nový. Je třeba prozkoumat, co -# přesně dělá, aby bylo možné správně přeložit slovo „option“, tak aby se -# nepletlo s pomlčkovými přepínači příkazu. -# FIXME: Je třeba dohledat msgid pro řádek se syntaxí příkazu a patřičně ji -# opravit. -# TODO: Tento překlad je vemli kostrbatý a místy nedává smysl. Je třeba -# ujednotit pravidlo–pravidla doplnění–doplňování (completion specification). -#: builtins.c:1930 +#: builtins.c:1938 #, fuzzy msgid "" "Modify or display completion options.\n" @@ -5237,6 +5334,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5254,37 +5353,40 @@ msgid "" msgstr "" "Upraví nebo zobrazí možnosti doplňování.\n" " \n" -" Pozmění volby doplňování u každého NÁZVU, nebo, není-li zadán žádný\n" -" NÁZEV, právě probíhající doplnění. Nejsou-li zadány žádné VOLBY, vypíše\n" -" volby doplňování pro každý NÁZEV nebo pravidlo současného doplnění.\n" +" Pozmění možnosti doplňování každého NÁZVU, nebo, není-li zadán žádný\n" +" NÁZEV, právě prováděného doplňování. Nejsou-li zadány žádné MOŽNOSTI,\n" +" vypíše možnost doplňování každého NÁZVU nebo definic právě prováděného\n" +" doplňování.\n" " \n" " Přepínače:\n" -" \t-o volba\tNastaví volbu doplňování VOLBA u každého NÁZVU\n" +" \t-o možnost\tNastaví možnost doplňování MOŽNOST každému NÁZVU\n" " \n" -" Pomocí „+o“ namísto „-o“ zadanou volbu vypnete.\n" +" Pomocí „+o“ namísto „-o“ zadanou možnost vypnete.\n" " \n" " Argumenty:\n" -" Každý NÁZEV ukazuje na příkaz, pro který pravidlo doplnění musí být\n" -" předem definováno pomocí vestavěného příkazu „complete“. Nejsou-li " -"zadány\n" -" žádné NÁZVY, musí být compopt volán funkcí, která právě generuje " -"doplnění,\n" -" a změněny budou volby tohoto právě běžícího generátoru doplnění.\n" +" Každý NÁZEV odkazuje na příkaz, pro který musí být předem definováno\n" +" pravidlo (definice) doplňování pomocí vestavěného příkazu „complete“.\n" +" Nejsou-li zadány žádné NÁZVY, musí být compopt volán funkcí, která " +"právě\n" +" generuje doplňování. Změněny pak budou možnosti tohoto právě " +"prováděného\n" +" generátoru doplňování.\n" " \n" " Návratový kód:\n" -" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV již měl\n" -" definováno pravidlo pro doplnění." +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV měl " +"definováno\n" +" pravidlo doplňování." -#: builtins.c:1958 +#: builtins.c:1968 #, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5311,7 +5413,9 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" "Načte řádky ze souboru do proměnné typu pole.\n" " \n" @@ -5339,7 +5443,9 @@ msgstr "" " POLE\t\tNázev proměnné typu pole, do které budou přiřazena data\n" " \t\tze souboru.\n" " \n" -" Je-li uvedeno -C bez -c, implicitní množství bude 5000.\n" +" Je-li uvedeno -C bez -c, implicitní množství bude 5000. Vyhodnocovanému\n" +" VOLÁNÍ bude jako dodatečný argument předán index prvku pole, do kterého\n" +" se bude vzápětí přiřazovat.\n" " \n" " Nebude-li explicitně udán počátek, mapfile vyprázdní POLE před tím,\n" " než do něj začne přiřazovat.\n" @@ -5348,12 +5454,25 @@ msgstr "" " Vrátí úspěch, pokud nebyl zadán neplatný přepínač a POLE nebylo jen pro\n" " čtení." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Načte řádky ze souboru do proměnné typu pole.\n" +" \n" +" Synonymum pro „mapfile“." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: nelze alokovat %'lu bajtů" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s:%d: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)" #~ msgid " " #~ msgstr " " diff --git a/po/de.gmo b/po/de.gmo index e0340474c2d3d24c05e39d6d5634a538acecbcc6..eadb2647045682f6b777ad7aac0b55fb0b8f8321 100644 GIT binary patch literal 45438 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�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 diff --git a/po/de.po b/po/de.po index 2f39325..a532a09 100644 --- a/po/de.po +++ b/po/de.po @@ -1,75 +1,85 @@ # German language file for GNU Bash 4.0 # Copyright (C) 1996 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. -# Nils Naumann , 1996, 2008. +# Nils Naumann , 1996, 2009. msgid "" msgstr "" -"Project-Id-Version: bash 4.0-pre1\n" +"Project-Id-Version: bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2008-12-20 16:56+0100\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-09-14 20:37+0200\n" "Last-Translator: Nils Naumann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: arrayfunc.c:50 msgid "bad array subscript" msgstr "Falscher Feldbezeichner." -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: Kann nicht das indizierte in ein assoziatives Array umwandeln." -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" -msgstr "%s: Ungültiger Schlüssel für das assoziative Array." +msgstr "%s: Ungültiger Schlüssel für das assoziative Array." -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: Kann nicht auf einen nicht-numerischen Index zuweisen." -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" +"%s: %s: Ein Feldbezeicher wird zum Zuweisen eines assoziativen Arrays " +"benötigt." -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: Kann die Datei %s nicht erzeugen." -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" +"bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando " +"finden." -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" -msgstr "%s: Das erste nicht Leerzeichen ist nicht `\\'." +msgstr " %s: Das erste nicht Leerzeichen ist nicht `\\'." -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" -msgstr "fehlende schließende `%c' in %s." +msgstr "fehlende schließende `%c' in %s." -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: Fehlender Doppelpunkt." +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "`%s': Ungültiger KEYMAP Name." + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "Zeileneditierung ist nicht aktiviert." #: builtins/bind.def:206 #, c-format msgid "`%s': invalid keymap name" -msgstr "`%s': Ungültiger KEYMAP Name." +msgstr "`%s': Ungültiger KEYMAP Name." #: builtins/bind.def:245 #, c-format @@ -79,7 +89,7 @@ msgstr "%s: Nicht lesbar: %s" #: builtins/bind.def:260 #, c-format msgid "`%s': cannot unbind" -msgstr "`%s': Bindung kann nicht gelöst werden." +msgstr "`%s': Bindung kann nicht gelöst werden." #: builtins/bind.def:295 builtins/bind.def:325 #, c-format @@ -98,12 +108,13 @@ msgstr "%s kann aufgerufen werden durch " #: builtins/break.def:77 builtins/break.def:117 msgid "loop count" -msgstr "Schleifen Zähler" +msgstr "Schleifen Zähler" #: builtins/break.def:137 msgid "only meaningful in a `for', `while', or `until' loop" msgstr "nur in einer `for', `while' oder `until' Schleife sinnvoll." +# Problem mit Extraktion des Strings #: builtins/caller.def:133 msgid "" "Returns the context of the current subroutine call.\n" @@ -111,6 +122,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME ist nicht zugewiesen." @@ -125,7 +151,7 @@ msgstr "OLDPWD ist nicht zugewiesen." msgid "line %d: " msgstr "Zeile %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "Warnung: " @@ -135,11 +161,11 @@ msgstr "Warnung: " msgid "%s: usage: " msgstr "%s: Gebrauch: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "Zu viele Argumente." -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: Ein numerischer Paremeter ist erforderlich." @@ -154,52 +180,52 @@ msgstr "%s: Ein numerischer Parameter ist erforderlich." msgid "%s: not found" msgstr "%s: Nicht gefunden." -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" -msgstr "%s: Ungültige Option" +msgstr "%s: Ungültige Option" #: builtins/common.c:221 #, c-format msgid "%s: invalid option name" -msgstr "%s: Ungültiger Optionsname." +msgstr "%s: Ungültiger Optionsname." #: builtins/common.c:228 general.c:231 general.c:236 #, c-format msgid "`%s': not a valid identifier" -msgstr "`%s': Ist kein gültiger Bezeichner." +msgstr "`%s': Ist kein gültiger Bezeichner." #: builtins/common.c:238 msgid "invalid octal number" -msgstr "Ungültige Oktalzahl." +msgstr "Ungültige Oktalzahl." #: builtins/common.c:240 msgid "invalid hex number" -msgstr "Ungültige hexadezimale Zahl." +msgstr "Ungültige hexadezimale Zahl." -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" -msgstr "Ungültige Zahl." +msgstr "Ungültige Zahl." #: builtins/common.c:250 #, c-format msgid "%s: invalid signal specification" -msgstr "%s: Ungültige Signalbezeichnung." +msgstr "%s: Ungültige Signalbezeichnung." #: builtins/common.c:257 #, c-format msgid "`%s': not a pid or valid job spec" -msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung." +msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung." -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" -msgstr "%s: Schreibgeschützte Variable." +msgstr "%s: Schreibgeschützte Variable." #: builtins/common.c:272 #, c-format msgid "%s: %s out of range" -msgstr "%s: %s ist außerhalb des Gültigkeitsbereiches." +msgstr "%s: %s ist außerhalb des Gültigkeitsbereiches." #: builtins/common.c:272 builtins/common.c:274 msgid "argument" @@ -208,7 +234,7 @@ msgstr "Argument" #: builtins/common.c:274 #, c-format msgid "%s out of range" -msgstr "%s ist außerhalb des Gültigkeitsbereiches." +msgstr "%s ist außerhalb des Gültigkeitsbereiches." #: builtins/common.c:282 #, c-format @@ -246,12 +272,12 @@ msgstr "Schreibfehler: %s." #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "Fehler beim Setzen der Terminalattribute: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "Fehler beim Ermitteln der Terminalattribute: %s" #: builtins/common.c:563 #, c-format @@ -263,78 +289,79 @@ msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: Mehrdeutige Job Bezeichnung." -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" -msgstr "" +msgstr "%s: Ungültige Methode." -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" -msgstr "" +msgstr "%s: Keine Komplettierung angegeben." -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" -msgstr "Warnung: Die -F Option könnte unerwartete Ergebnisse liefern." +msgstr "Warnung: Die -F Option könnte unerwartete Ergebnisse liefern." -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" -msgstr "Warnung: Die -C Option könnte unerwartete Ergebnisse liefern." +msgstr "Warnung: Die -C Option könnte unerwartete Ergebnisse liefern." -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" -msgstr "" +msgstr "Gegenwärtig wird keine Komplettierungsfunktion ausgeführt." #: builtins/declare.def:122 msgid "can only be used in a function" msgstr "kann nur innerhalb einer Funktion benutzt werden." -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" -msgstr "Mit `-f' können keine Funktionen erzeugt werden." +msgstr "Mit `-f' können keine Funktionen erzeugt werden." -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" -msgstr "%s: Schreibgeschützte Funktion." +msgstr "%s: Schreibgeschützte Funktion." -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" -msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen." +msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen." -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" +"%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich." #: builtins/enable.def:137 builtins/enable.def:145 msgid "dynamic loading not available" -msgstr "" +msgstr "Dynamisches Laden ist nicht verfügbar." #: builtins/enable.def:312 #, c-format msgid "cannot open shared object %s: %s" -msgstr "" +msgstr "Kann die dynamische Bibiliothek nicht laden %s: %s" #: builtins/enable.def:335 #, c-format msgid "cannot find %s in shared object %s: %s" -msgstr "" +msgstr "Kann %s nicht in der dynamischen Bibiliothek finden %s: %s" #: builtins/enable.def:459 #, c-format msgid "%s: not dynamically loaded" -msgstr "" +msgstr "%s: Ist nicht dynamisch geladen." #: builtins/enable.def:474 #, c-format msgid "%s: cannot delete: %s" -msgstr "%s: Kann nicht löschen: %s" +msgstr "%s: Kann nicht löschen: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: ist ein Verzeichnis." @@ -347,17 +374,18 @@ msgstr "%s: Ist keine normale Datei." #: builtins/evalfile.c:147 #, c-format msgid "%s: file is too large" -msgstr "%s: Die Datei ist zu groß." +msgstr "%s: Die Datei ist zu groß." -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" -msgstr "%s: Kann die Datei nicht ausführen." +msgstr "%s: Kann die Datei nicht ausführen." #: builtins/exec.def:212 #, c-format msgid "%s: cannot execute: %s" -msgstr "%s: Kann nicht ausführen: %s" +msgstr "%s: Kann nicht ausführen: %s" #: builtins/exit.def:65 #, c-format @@ -378,22 +406,22 @@ msgstr "Es gibt noch angehaltene Prozesse.\n" msgid "There are running jobs.\n" msgstr "Es gibt noch laufende Prozesse.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "Kein Kommando gefunden." -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" -msgstr "%s: Kann die tempräre Datei nicht öffnen: %s" +msgstr "%s: Kann die tempräre Datei nicht öffnen: %s" #: builtins/fg_bg.def:149 builtins/jobs.def:282 msgid "current" -msgstr "" +msgstr "gegenwärtig" #: builtins/fg_bg.def:158 #, c-format @@ -403,7 +431,7 @@ msgstr "Job %d wurde ohne Jobsteuerung gestartet." #: builtins/getopt.c:110 #, c-format msgid "%s: illegal option -- %c\n" -msgstr "%s: Ungültige Option -- %c\n" +msgstr "%s: Ungültige Option -- %c\n" #: builtins/getopt.c:111 #, c-format @@ -412,35 +440,37 @@ msgstr "%s: Diese Option erfordert ein Argument -- %c\n" #: builtins/hash.def:92 msgid "hashing disabled" -msgstr "" +msgstr "Hashing deaktiviert." #: builtins/hash.def:138 #, c-format msgid "%s: hash table empty\n" -msgstr "" +msgstr "%s: Die Hashtabelle ist leer.\n" #: builtins/hash.def:244 #, c-format msgid "hits\tcommand\n" -msgstr "" +msgstr "Treffer\tBefehl\n" #: builtins/help.def:130 #, c-format msgid "Shell commands matching keyword `" msgid_plural "Shell commands matching keywords `" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Shell Kommandos auf die das Schlüsselwort zutrifft `" +msgstr[1] "Shell Kommandos auf die die Schlüsselwörter zutreffen `" #: builtins/help.def:168 #, c-format msgid "" "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." msgstr "" +"Auf `%s' trifft kein Hilfethema zu. Probieren Sie `help help', `man -k %s' " +"oder `info %s'." #: builtins/help.def:185 #, c-format msgid "%s: cannot open: %s" -msgstr "%s: Kann die Datei nicht öffnen: %s" +msgstr "%s: Kann die Datei nicht öffnen: %s" #: builtins/help.def:337 #, c-format @@ -464,16 +494,16 @@ msgstr "" #: builtins/history.def:154 msgid "cannot use more than one of -anrw" -msgstr "" +msgstr "Es darf nur eine Option aus -anrw angegeben werden." #: builtins/history.def:186 msgid "history position" -msgstr "" +msgstr "Kommandostapelposition." #: builtins/history.def:365 #, c-format msgid "%s: history expansion failed" -msgstr "%s: History Substitution gescheitert." +msgstr "%s: Kommandoersetzung gescheitert." #: builtins/inlib.def:71 #, c-format @@ -484,12 +514,12 @@ msgstr "%s: inlib gescheitert." msgid "no other options allowed with `-x'" msgstr "Keine weiteren Optionen mit `-x' erlaubt." -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" -msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein." +msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein." -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Unbekannter Fehler." @@ -497,57 +527,62 @@ msgstr "Unbekannter Fehler." msgid "expression expected" msgstr "Ausdruck erwartet." -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: Ist kein Array." + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" -msgstr "" +msgstr "%d: Ungültiger Dateibezeichner: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" -msgstr "" +msgstr "%s: Ungültige Zeilenanzahlangabe." -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" -msgstr "" +msgstr "%s: Ungültiger Zeilenindex für den Array Beginn." -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" -msgstr "" +msgstr "Fehlender Name für die Array Variable." -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" -msgstr "" +msgstr "Die Array Variablen Unterstützung ist in dieser Shell nicht vorhanden." -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" -msgstr "" +msgstr "`%s': Fehlendes Formatierungszeichen." -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" -msgstr "" +msgstr "`%c': Ungültiges Formatierungszeichen." -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "Warnung: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" -msgstr "" +msgstr "Fehlende hexadezimale Ziffer nach \\x." #: builtins/pushd.def:195 msgid "no other directory" @@ -559,13 +594,14 @@ msgstr "" #: builtins/pushd.def:506 msgid "directory stack empty" -msgstr "der Verzeichnisstapel ist leer" +msgstr "Der Verzeichnisstapel ist leer." #: builtins/pushd.def:508 msgid "directory stack index" msgstr "" #: builtins/pushd.def:683 +#, fuzzy msgid "" "Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" @@ -588,6 +624,14 @@ msgid "" "by\n" "\tdirs when invoked without options, starting with zero." msgstr "" +"Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an.\n" +" Gespeichert werden die Verzeichnisse durch das `popd' Kommando und\n" +" können durch das `pushd' Kommando wieder vom Stapel entfernt\n" +" werden.\n" +"\n" +" Optionen:\n" +" -c Verzeichnisstapel durch Löschen aller Einträge bereinigen.\n" +" -l " #: builtins/pushd.def:705 msgid "" @@ -615,20 +659,20 @@ msgid "" msgstr "" "Legt ein Verzeichniseintrag auf den Verzeichnisstapel ab oder rotiert\n" "den Stapel so, dass das aktuelle Verzeichnis oben liegt. Ohne Argumente\n" -"werden die beiden oberen Einträge vertauscht.\n" +"werden die beiden oberen Einträge vertauscht.\n" "\n" " Optionen: \n" " -n\tVermeidet das Wechseln des Verzeichnisses, so dass\n" -"\tnur der Verzeichnisstapel geändert wird.\n" +"\tnur der Verzeichnisstapel geändert wird.\n" "\n" " Argumente:\n" " +N\tRotiert den Verzeichnisstapel, dass das N-te Verzeichnis\n" -"\tvon links, das von `dirs' angezeigt wird, nach oben kommt. Die Zählung\n" +"\tvon links, das von `dirs' angezeigt wird, nach oben kommt. Die Zählung\n" "\tbeginnt dabei mit Null.\n" "\n" " -N\tRotiert den Verzeichnisstapel, dass das N-te Verzeichnis\n" "\tvon rechts, das von `dirs' angezeigt wird, nach oben kommt. Die \n" -"\tZählung beginnt dabei mit Null.\n" +"\tZählung beginnt dabei mit Null.\n" "\n" " dir\tLegt DIR auf den Verzeichnisstapel und wechselt in dieses\n" " Verzeichnis.\n" @@ -655,33 +699,33 @@ msgid "" " \n" " The `dirs' builtin displays the directory stack." msgstr "" -"Erntfernt Einträge vom Stapel. Ohne Argumente wird der oberste Eintrag\n" -" gelöscht und anschließend in das das neue oben liegede Verzeichnis\n" +"Erntfernt Einträge vom Stapel. Ohne Argumente wird der oberste Eintrag\n" +" gelöscht und anschließend in das das neue oben liegede Verzeichnis\n" " gewechselt.\n" " \n" " Optionen:\n" " -n\tVermeidet das Wechseln des Verzeichnisses, so dass\n" -"\tnur der Verzeichnisstapel geändert wird.\n" +"\tnur der Verzeichnisstapel geändert wird.\n" " \n" " Argumente:\n" " +N\tEntfernt den N-ten Eintrag von links, der von `dirs'\n" -"\tangezeigt wird. Dabei beginnt die Zählung von Null. So\n" +"\tangezeigt wird. Dabei beginnt die Zählung von Null. So\n" "\tentfernt z.B. `popd +0' den ersten und `popd +1' den zweiten\n" "\tEintrag.\n" " \n" " -N\tEntfernt den N-ten Eintrag von rechts, der von `dirs'\n" -"\tangezeigt wird. Dabei beginnt die Zählung von Null. So\n" +"\tangezeigt wird. Dabei beginnt die Zählung von Null. So\n" "\tentfernt z.B. `popd -0' den letzten und `popd +1' den vorletzten\n" "\tEintrag.\n" " \n" " Das `dirs' Kommando zeigt den Verzeichnisstapel an." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" -msgstr "" +msgstr "%s: Ungültige Wartezeitangebe." -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "Lesefehler: %d: %s" @@ -707,29 +751,29 @@ msgstr "" #: builtins/set.def:823 #, c-format msgid "%s: not an array variable" -msgstr "" +msgstr "%s: Ist kein Array." #: builtins/setattr.def:186 #, c-format msgid "%s: not a function" -msgstr "" +msgstr "%s: Ist keine Funktion." #: builtins/shift.def:71 builtins/shift.def:77 msgid "shift count" msgstr "" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" -msgstr "" +msgstr "Kann nicht Shell Optinen gleichzeitig aktivieren und deaktivieren." -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" #: builtins/source.def:128 msgid "filename argument required" -msgstr "" +msgstr "Ein Dateiname wird as Argument benötigt." #: builtins/source.def:153 #, c-format @@ -753,7 +797,7 @@ msgstr "" #: builtins/type.def:255 #, c-format msgid "%s is a shell keyword\n" -msgstr "" +msgstr "%s Ist ein reserviertes Schlüsselwort der Shell.\n" #: builtins/type.def:274 #, c-format @@ -768,7 +812,7 @@ msgstr "" #: builtins/type.def:317 builtins/type.def:391 #, c-format msgid "%s is %s\n" -msgstr "" +msgstr "%s ist %s\n" #: builtins/type.def:337 #, c-format @@ -788,7 +832,7 @@ msgstr "`%c': Falsches Kommando." #: builtins/ulimit.def:427 #, c-format msgid "%s: cannot get limit: %s" -msgstr "" +msgstr "%s: Kann die nicht Grenze setzen: %s" #: builtins/ulimit.def:453 msgid "limit" @@ -797,7 +841,7 @@ msgstr "Grenze" #: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format msgid "%s: cannot modify limit: %s" -msgstr "%s: Kann die Grenze nicht ändern: %s" +msgstr "%s: Kann die Grenze nicht ändern: %s" #: builtins/umask.def:118 msgid "octal number" @@ -813,88 +857,86 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " Zeile " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "Letztes Kommando: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Abbruch..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" -msgstr "" +msgstr "Unbekanntes Kommando" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "" # Programmierfehler -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "" -#: error.c:408 -#, fuzzy +#: error.c:409 msgid "bad jump" -msgstr "Falscher Sprung %d." +msgstr "Falscher Sprung" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s ist nicht gesetzt." #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "Zu lange keine Eingabe: Automatisch ausgeloggt.\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "Kann nicht die Standardeingabe von /dev/null umleiten: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" -msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen." +msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen." -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "Pipe-Fehler" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" -msgstr "%s: Verboten: `/' ist in Kommandonamen unzulässig." +msgstr "%s: Verboten: `/' ist in Kommandonamen unzulässig." -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: Kommando nicht gefunden." -#: execute_cmd.c:4708 -#, fuzzy, c-format +#: execute_cmd.c:4827 +#, c-format msgid "%s: %s: bad interpreter" -msgstr "%s: ist ein Verzeichnis." +msgstr "%s: %s: Defekter Interpreter" -#: execute_cmd.c:4857 -#, fuzzy, c-format +#: execute_cmd.c:4976 +#, c-format msgid "cannot duplicate fd %d to fd %d" -msgstr "Kann fd %d nicht auf fd 0 verdoppeln: %s" +msgstr "Kann fd %d nicht auf fd %d verdoppeln." #: expr.c:241 msgid "expression recursion level exceeded" msgstr "Zu viele Rekursionen in Ausdruck." #: expr.c:265 -#, fuzzy msgid "recursion stack underflow" msgstr "Rekursionsstapel leer." @@ -911,13 +953,12 @@ msgid "division by 0" msgstr "Division durch 0." #: expr.c:471 -#, fuzzy msgid "bug: bad expassign token" -msgstr "Fehler: Falsches Zuweisungszeichen %d." +msgstr "Fehler: Falscher Zuweisungsoperator." #: expr.c:513 msgid "`:' expected for conditional expression" -msgstr "`:' erwartet für ein bedingten Ausdruck." +msgstr "`:' erwartet für ein bedingten Ausdruck." #: expr.c:781 msgid "exponent less than 0" @@ -926,58 +967,57 @@ msgstr "Der Exponent ist kleiner als 0." #: expr.c:826 msgid "identifier expected after pre-increment or pre-decrement" msgstr "" -"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet." +"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet." #: expr.c:854 msgid "missing `)'" msgstr "Fehlende `)'" -#: expr.c:897 expr.c:1175 -#, fuzzy +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" -msgstr "Syntax Fehler: Unerwartetes Dateiende." +msgstr "Syntax Fehler: Operator erwartet." -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" -msgstr "Syntaxfehler: Ungültiger arithmetischer Operator." +msgstr "Syntaxfehler: Ungültiger arithmetischer Operator." -#: expr.c:1201 -#, fuzzy, c-format +#: expr.c:1202 +#, c-format msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "%s: %s: %s (Fehlerverursachendes Wort ist \\\"%s\\\").\n" +msgstr "%s%s%s: %s (Fehlerverursachendes Zeichen ist \\\"%s\\\")." -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" -msgstr "Ungültige Basis." +msgstr "Ungültige Basis." -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" -msgstr "Der Wert ist zu groß für die aktuelle Basis." +msgstr "Der Wert ist zu groß für die aktuelle Basis." -#: expr.c:1328 -#, fuzzy, c-format +#: expr.c:1329 +#, c-format msgid "%s: expression error\n" -msgstr "Umlenkfehler" +msgstr "%s: Fehler im Ausdruck.\n" #: general.c:61 msgid "getcwd: cannot access parent directories" -msgstr "getwd: Kann nicht auf das übergeordnete Verzeichnis zugreifen." +msgstr "getwd: Kann nicht auf das übergeordnete Verzeichnis zugreifen." -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" -msgstr "Konnte den No-Delay Modus für fd %d nicht wieder herstellen." +msgstr "Konnte den No-Delay Modus für fd %d nicht wieder herstellen." #: input.c:258 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "Kann keinen neuen Filedeskriptor für die Eingabe von fd %d zuweisen." +msgstr "Kann keinen neuen Filedeskriptor für die Eingabe von fd %d zuweisen." # Debug Ausgabe #: input.c:266 -#, fuzzy, c-format +#, c-format msgid "save_bash_input: buffer already exists for new fd %d" -msgstr "check_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: Es existiert bereits ein Puffer für den neuen fd %d." #: jobs.c:466 msgid "start_pipeline: pgrp pipe" @@ -1005,9 +1045,9 @@ msgstr "" # Programmierfehler #: jobs.c:1401 -#, fuzzy, c-format +#, c-format msgid "describe_pid: %ld: no such pid" -msgstr "describe_pid: Prozeß-Nummer existiert nicht (%d)!\n" +msgstr "describe_pid: %ld: Prozeßnummer existiert nicht." #: jobs.c:1416 #, c-format @@ -1018,7 +1058,7 @@ msgstr "Signal %d" msgid "Done" msgstr "Fertig" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Angehalten" @@ -1029,7 +1069,7 @@ msgstr "Angehalten(%s)" #: jobs.c:1443 msgid "Running" -msgstr "Läuft" +msgstr "Läuft" #: jobs.c:1457 #, c-format @@ -1056,80 +1096,84 @@ msgid " (wd: %s)" msgstr " (wd: %s)" # interner Fehler -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" -msgstr "wait: Prozeß %ld wurde nicht von dieser Shell gestartet." +msgstr "wait: Prozeß %ld wurde nicht von dieser Shell gestartet." -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: Programm ist beendet." -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + # Debug Ausgabe -#: jobs.c:3492 +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: Zeile %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (Speicherabzug geschrieben)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" -msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n" +msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n" # interner Fehler -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_jobs: getpgrp war nicht erfolgreich." # interner Fehler -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: line discipline" # interner Fehler -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" -msgstr "" +msgstr "Kann die Prozessgruppe des Terminals nicht setzen (%d)." -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "Keine Job Steuerung in dieser Shell." #: lib/malloc/malloc.c:296 -#, fuzzy, c-format +#, c-format msgid "malloc: failed assertion: %s\n" -msgstr "malloc: Fehler bei Speicherzuweisung: %s\n" +msgstr "malloc: Speicherzusicherung gescheitert: %s.\n" #: lib/malloc/malloc.c:312 #, c-format @@ -1137,6 +1181,8 @@ msgid "" "\r\n" "malloc: %s:%d: assertion botched\r\n" msgstr "" +"\\r\n" +"malloc: %s:%d: Speicherzusicherung verpfuscht\\r\n" #: lib/malloc/malloc.c:313 msgid "unknown" @@ -1145,73 +1191,100 @@ msgstr "Unbekannt" #: lib/malloc/malloc.c:797 msgid "malloc: block on free list clobbered" msgstr "" +"Malloc: Ein frei gekennzeichneter Speicherbereich wurde überschrieben." #: lib/malloc/malloc.c:874 msgid "free: called with already freed block argument" -msgstr "" +msgstr "free: Wurde für bereits freigegebenen Speicherbereich aufgerufen." #: lib/malloc/malloc.c:877 msgid "free: called with unallocated block argument" -msgstr "" +msgstr "free: Wurde für nicht zugeordneten Speicherbereich aufgerufen." #: lib/malloc/malloc.c:896 msgid "free: underflow detected; mh_nbytes out of range" -msgstr "" +msgstr "free: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs." #: lib/malloc/malloc.c:902 msgid "free: start and end chunk sizes differ" -msgstr "" +msgstr "free: Beginn und Ende Segmentgrößen sind unterschiedlich." #: lib/malloc/malloc.c:1001 msgid "realloc: called with unallocated block argument" -msgstr "" +msgstr "realloc: Mit nicht zugewiesenen Argument aufgerufen." #: lib/malloc/malloc.c:1016 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "" +"realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs." #: lib/malloc/malloc.c:1022 msgid "realloc: start and end chunk sizes differ" -msgstr "" +msgstr "realloc: Beginn und Ende Segmentgrößen sind unterschiedlich.<" #: lib/malloc/table.c:177 #, c-format msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" msgstr "" +"register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n" #: lib/malloc/table.c:184 #, c-format msgid "register_alloc: %p already in table as allocated?\n" msgstr "" +"register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt " +"gekennzeichnet?\n" #: lib/malloc/table.c:220 #, c-format msgid "register_free: %p already in table as free?\n" msgstr "" +"register_free: %p ist bereits in der Speicherzuordnungstabelle als frei " +"gekennzeichnet?\n" #: lib/sh/fmtulong.c:101 msgid "invalid base" -msgstr "" +msgstr "Ungültige Basis" #: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" -msgstr "" +msgstr "%s: Unbekannter Host." #: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" -msgstr "" +msgstr "%s: unbekannter Dienst." #: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" -msgstr "" +msgstr "%s: Fehlerhafte Netzwerkspfadangabe." #: lib/sh/netopen.c:346 msgid "network operations not supported" +msgstr "Der Netzwerkbetrieb ist nicht unterstützt." + +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" msgstr "" +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren." + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren." + # Du oder Sie? #: mailcheck.c:433 msgid "You have mail in $_" @@ -1226,138 +1299,133 @@ msgstr "Sie haben neue Post in $_." msgid "The mail in %s has been read\n" msgstr "Die Post in %s wurde bereits gelesen.\n" -#: make_cmd.c:322 -#, fuzzy +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" -msgstr "Syntaxfehler im Ausdruck." +msgstr "Syntaxfehler: Ein arithmetischer Ausdruck wird verlangt." -#: make_cmd.c:324 -#, fuzzy +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" -msgstr "Syntax Fehler: Unerwartetes Dateiende." +msgstr "Syntax Fehler: unerwartetes `;'." -#: make_cmd.c:325 -#, fuzzy, c-format +#: make_cmd.c:326 +#, c-format msgid "syntax error: `((%s))'" -msgstr "Syntax Fehler" +msgstr "Syntax Fehler: `((%s))'." # interner Fehler -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: Falscher Befehlstyp %d." -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 -#, fuzzy, c-format +#: parse.y:3133 parse.y:3369 +#, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "Dateiende beim Suchen nach `%c' erreicht." -#: parse.y:3722 -#, fuzzy +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" -msgstr "Dateiende beim Suchen nach `%c' erreicht." +msgstr "Dateiende beim Suchen nach `]]' erreicht." -#: parse.y:3727 -#, fuzzy, c-format +#: parse.y:3956 +#, c-format msgid "syntax error in conditional expression: unexpected token `%s'" -msgstr "Syntaxfehler beim unerwarteten Wort `%s'" +msgstr "Syntaxfehler im bedingten Ausdruck: Unerwartetes Zeichen `%s'." -#: parse.y:3731 -#, fuzzy +#: parse.y:3960 msgid "syntax error in conditional expression" -msgstr "Syntaxfehler im Ausdruck." +msgstr "Syntaxfehler im bedingen Ausdruck." -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" -msgstr "" +msgstr "Unerwartetes Zeichen: `%s' anstatt von `)'" -#: parse.y:3813 -#, fuzzy +#: parse.y:4042 msgid "expected `)'" msgstr "`)' erwartet." -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "Syntaxfehler beim unerwarteten Wort `%s'" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "Syntaxfehler beim unerwarteten Wort `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "Syntax Fehler: Unerwartetes Dateiende." -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "Syntax Fehler" # Du oder Sie? -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Benutze \"%s\" um die Shell zu verlassen.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "Dateiende beim Suchen nach passender `)' erreicht." -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1367,71 +1435,90 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: Falsches Verbindungszeichen `%d'." -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: Ungültiger Dateibezeichner: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: Mehrdeutige Umlenkung." -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" -msgstr "%s: Kann existierende Datei nicht überschreiben." +msgstr "%s: Kann existierende Datei nicht überschreiben." -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: Gesperrt: Die Ausgabe darf nicht umgeleitet werden." -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: Kann einem Feldelement keine Liste zuweisen." + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "" +msgstr "/dev/(tcp|udp)/host/port Wird ohne Netzwerk nicht unterstützt" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "Konnte das /tmp Verzeichnis nicht finden, bitte anlegen." -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" -msgstr "/tmp muß ein gültiger Verzeichnisname sein." +msgstr "/tmp muß ein gültiger Verzeichnisname sein." -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" -msgstr "%c%c: Ungültige Option" +msgstr "%c%c: Ungültige Option" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Ich habe keinen Benutzernamen!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, Version %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1440,454 +1527,465 @@ msgstr "" "Benutzung:\t%s [Lange GNU Option] [Option] ...\n" "\t\t%s [Lange GNU Option] [Option] Script-Datei ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Lange GNU Optionen:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Shell-Optionen:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD oder -c Kommando\t\t(Nur Aufruf)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s oder Option -o\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "`%s -c \"help set\"' für mehr Informationen über Shell-Optionen.\n" +msgstr "`%s -c \"help set\"' für mehr Informationen über Shell-Optionen.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "`%s -c help' für mehr Information über Shell-Kommandos.\n" +msgstr "`%s -c help' für mehr Information über Shell-Kommandos.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" -msgstr "Mit dem `bashbug' Kommando können Fehler gemeldet werden.\n" +msgstr "Mit dem `bashbug' Kommando können Fehler gemeldet werden.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" -msgstr "sigprocmask: %d: Ungültige Operation" +msgstr "sigprocmask: %d: Ungültige Operation" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Falsches Signal." -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Aufgelegt" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" -msgstr "Unterbrochen" +msgstr "Unterbrochen (Interrupt)" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Quit" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" -msgstr "Ungültige Anweisung." +msgstr "Ungültige Anweisung." -# Was heisst das? -#: siglist.c:66 -#, fuzzy +#: siglist.c:67 msgid "BPT trace/trap" -msgstr "BPT trace/trap" +msgstr "Verfolgen/anhalten abfangen (Trace/breakpoint trap)" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Abbruchkommando" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" -msgstr "EMT-Kommando" +msgstr "EMT abfangen (EMT trap)" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Gleitkommafehler" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" -msgstr "Gekillt" +msgstr "Abgebrochen (Killed)" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Bus-Fehler" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" -msgstr "Speicherzugriffsfehler" +msgstr "Adressierungsfehler" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Falscher Systemaufruf" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Unterbrochene Pipe" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Wecker" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" -msgstr "Beendet" +msgstr "Abgebrochen (Terminated)" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Dringende IO-Bedingung" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Angehalten (Signal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" -msgstr "Prozeßbearbeitung wieder aufgenommen." +msgstr "Prozeßbearbeitung wieder aufgenommen." -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" -msgstr "Kindprozeß abgebrochen oder gestoppt." +msgstr "Kindprozeß abgebrochen oder gestoppt." -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Angehalten (Terminaleingabe)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Angehalten (Terminalausgabe)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "E/A fertig" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "Rechenzeitgrenze" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" -msgstr "Grenze für Dateigröße" +msgstr "Grenze für Dateigröße" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarm (Virtuell)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarm (Profil)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" -msgstr "Fenster geändert." +msgstr "Fenster geändert." -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Datei blockiert." -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" -msgstr "Nutzer-Signal 1" +msgstr "Nutzersignal 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" -msgstr "Nutzer-Signal 2" +msgstr "Nutzersignal 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT Eingabedaten ausstehend." -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "Spannungsausfall steht bevor." -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "Systemausfall steht bevor." -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" -msgstr "Verlege den Prozeß auf einen anderen Prozessor." +msgstr "Verlege den Prozeß auf einen anderen Prozessor." -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "Programmierfehler" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HFT-Monitormodus erlaubt." -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT-Monitormodus abgeschaltet." -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFT-Tonfolge beendet." -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "Informationsanforderung" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Unbekannte Signalnummer." -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Unbekanntes Signal Nr.: %d." -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" -msgstr "Falsche Ersetzung: Keine schließende `%s' in `%s' enthalten." +msgstr "Falsche Ersetzung: Keine schließende `%s' in `%s' enthalten." -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: Kann einem Feldelement keine Liste zuweisen." -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" -msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen." +msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen." -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" -msgstr "" +msgstr "Kann den Kindsprozess für die Prozeßersetzung nicht erzeugen." -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" -msgstr "Kann nicht die benannte Pipe %s zum lesen öffnen." +msgstr "Kann nicht die benannte Pipe %s zum lesen öffnen." -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" -msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen." +msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen." -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "Kann die benannte Pipe %s nicht auf fd %d." -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" -msgstr "Kann keine Pipes für Kommandoersetzung erzeugen." +msgstr "Kann keine Pipes für Kommandoersetzung erzeugen." -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" -msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen." +msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen." # interner Fehler -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "Kommandoersetzung: Kann Pipe nicht als fd 1 duplizieren." -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: Parameter ist Null oder nicht gesetzt." # interner Fehler -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: Teilstring-Ausdruck < 0." -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: Falsche Variablenersetzung." -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: Kann so nicht zuweisen." -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" -msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s." +msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s." -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "Keine Entsprechung: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "Argument erwartet." -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: Ganzzahliger Ausdruck erwartet." -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "`)' erwartet." -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "`)' erwartet, %s gefunden." -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" -msgstr "%s: Einstelliger (unärer) Operator erwartet." +msgstr "%s: Einstelliger (unärer) Operator erwartet." -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" -msgstr "%s: Zweistelliger (binärer) Operator erwartet." +msgstr "%s: Zweistelliger (binärer) Operator erwartet." -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "Fehlende `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" -msgstr "Ungültige Signalnummer." +msgstr "Ungültige Signalnummer." -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" # Programmierfehler -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: Falsches Signal %d." -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" -msgstr "Fehler beim Importieren der Funktionsdefinition für `%s'." +msgstr "Fehler beim Importieren der Funktionsdefinition für `%s'." -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: Parameter ist Null oder nicht gesetzt." + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: Kann die Datei nicht öffnen: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: Ungültiger Dateibezeichner: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Copyright (C) 2008 Free Software Foundation, Inc." +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" "License GPLv3+: GNU GPL version 3 or later \n" msgstr "" -"Lizenz GPLv3+: GNU GPL Version 3 oder jünger \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, Version %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" -msgstr "Dies ist freie Software. Sie darf verändert und verteilt werden.\n" +msgstr "Dies ist freie Software. Sie darf verändert und verteilt werden.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" -msgstr "Für dieses Programm besteht keinerlei Garantie.\n" +msgstr "Für dieses Programm besteht keinerlei Garantie.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)." +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: Kann nicht %lu Bytes reservieren." +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" +"Lizenz GPLv3+: GNU GPL Version 3 oder jünger \n" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)." +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)." -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: Kann nicht %lu Bytes reservieren." +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: Kann nicht %lu Bytes reservieren." -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" "xmalloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)." -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: Kann nicht %lu Bytes reservieren." -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)." - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren." - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [Name[=Wert] ... ]" @@ -2008,7 +2106,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p Pfadname] [-dt] [Name ...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "help [-ds] [Muster ...]" #: builtins.c:121 @@ -2040,9 +2139,10 @@ msgid "let arg [arg ...]" msgstr "let Argument [Argument ...]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-p " "Prompt] [-t Zeitlimit] [-u fd] [Name ...]" @@ -2133,7 +2233,7 @@ msgstr "select Name [in Wortliste ... ;] do Kommandos; done" #: builtins.c:188 msgid "time [-p] pipeline" -msgstr "" +msgstr "time [-p] Pipeline" #: builtins.c:190 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" @@ -2144,8 +2244,8 @@ msgid "" "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " "COMMANDS; ] fi" msgstr "" -"if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... \n" -"\t[ else Kommandos; ] fi" +"if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else " +"Kommandos; ] fi" #: builtins.c:194 msgid "while COMMANDS; do COMMANDS; done" @@ -2157,7 +2257,7 @@ msgstr "until Kommandos; do Kommandos; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [Name] Kommando [Umleitungen]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2204,12 +2304,13 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v var] Format [Argumente]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" -"complete [-abcdefgjksuv] [-pr] [-o Option] [-A Aktion] [-G Suchmuster] [-W " +"complete [-abcdefgjksuv] [-pr] [-o Option] [-A Methode] [-G Suchmuster] [-W " "Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S " "Suffix] [Name ...]" @@ -2223,7 +2324,8 @@ msgstr "" "Suffix] [Wort]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "compopt [-o|+o Option] [Name ...]" #: builtins.c:240 @@ -2262,7 +2364,7 @@ msgstr "" " Ohne Argumente wird die Liste der Aliase (Synonyme) in der Form \n" " `alias Name=Wert' auf die Standardausgabe gedruckt.\n" "\n" -" Sonst wird ein Alias für jeden angegebenen Namen definiert, für den ein\n" +" Sonst wird ein Alias für jeden angegebenen Namen definiert, für den ein\n" " Wert angegeben wurde. \n" " A trailing space in VALUE causes the next word to be checked for\n" " alias substitution when the alias is expanded.\n" @@ -2270,8 +2372,8 @@ msgstr "" " Options:\n" " -p\tPrint all defined aliases in a reusable format\n" " \n" -" Rückgabewert:\n" -" Meldet Erfolg, außer wenn NAME nicht existiert." +" Rückgabewert:\n" +" Meldet Erfolg, außer wenn NAME nicht existiert." #: builtins.c:276 msgid "" @@ -2287,7 +2389,7 @@ msgstr "" " Optionen:\n" " -a\tEnferne alle Alias Definitionen.\n" " \n" -" Gibt immer Erfolg zurück, wenn der Name existiert." +" Gibt immer Erfolg zurück, wenn der Name existiert." #: builtins.c:289 msgid "" @@ -2344,8 +2446,8 @@ msgstr "" "ist, werden N geschachtelte\n" " Schleifen beendet.\n" " \n" -" Rückgabewert:\n" -" Der Rückgabewert ist 0, es sei den N ist größer oder gleich 1." +" Rückgabewert:\n" +" Der Rückgabewert ist 0, es sei den N ist größer oder gleich 1." #: builtins.c:338 msgid "" @@ -2362,10 +2464,10 @@ msgstr "" " Continoue springt zum Schleifenanfang der aktuellen FOR, WHILE oder " "UNTIL \n" " Schleife. Wenn N angegeben ist, werden N wird zum Beginn der N-ten\n" -" übergeordneten Schleife gesprungen.\n" +" übergeordneten Schleife gesprungen.\n" " \n" -" Rückgabewert:\n" -" Der Rückgabewert ist 0, außer wenn N größer oder gleich 1 ist." +" Rückgabewert:\n" +" Der Rückgabewert ist 0, außer wenn N größer oder gleich 1 ist." #: builtins.c:350 msgid "" @@ -2380,6 +2482,16 @@ msgid "" " Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" " not a shell builtin.." msgstr "" +"Führt eine eingebeute Shell Funktionen aus.\n" +" \n" +" Führt die eingebaute Shell Funktionen mit den angegebenen\n" +" Argumenten aus, ohne das Kommando nachzuschlagen. Diese Funktion\n" +" ist dann nützlich, wenn eine eingebaute Shell Funktion\n" +" überschrieben wurde, diese aber trotzdem ausgeführt werden soll.\n" +" \n" +" Rückgabewert: \n" +" Der Rückgabewert der eingebauten Schellfunkrion oder Falsch, wenn\n" +" diese nicht existiert." #: builtins.c:365 msgid "" @@ -2429,6 +2541,30 @@ msgid "" " Exit Status:\n" " Returns 0 if the directory is changed; non-zero otherwise." msgstr "" +"Wechselt das Arbeitsverzeichnis.\n" +" \n" +" Wechselt das aktuelle Abeitsverzeichnis zu DIR. Ohne Angabe eines\n" +" Verzeichnisses wird in das Heimatverzeichnis gewechselt. \n" +" \n" +" Die Variable CDPATH enthält den Suchpfad für das in DIR\n" +" spezifizierte Verzeichnis. Die Pfadnamen werden durch Doppelpunkte\n" +" (:) getrennt. Ein leerer Pfadname bezeichnet das aktuelle\n" +" Verzeichnis. Wenn DIR mit einem Schrägsrtich (/) beginnt, wird der\n" +" CDPATH nicht durchsucht.\n" +" \n" +" Wenn kein entsprechendes Verzeichnis gefunden wurde und die Shell\n" +" Option `cdable_vars' gesetzt ist, dann wird angenommen, dass DIR\n" +" einen Variablennamen enthält. Wenn dann noch diese Variable ein\n" +" Wert besitzt, wird dieser als Inhalt von DIR verwendet.\n" +" \n" +" Optionen:\n" +" -L\tErzwingt das Folgen symbolischer Verweise.\n" +" -P\tSymbolische Verweise werden ignoriert.\n" +" \n" +" Standardmäßig wird symbolischen Verweisen gefolgt.\n" +" \n" +" Rückgabewert:\n" +" Wenn das Verzeichnic gewechselt wurde 0; sonst ungleich Null." #: builtins.c:411 msgid "" @@ -2444,22 +2580,7 @@ msgid "" " Exit Status:\n" " Returns 0 unless an invalid option is given or the current directory\n" " cannot be read." -msgstr "" -"Gibt den Namen des aktuellen Arbeitsverzeichnis aus.\n" -" \n" -" Optionen:\n" -" -L\tGibt den Wert der $PWD Umgebungsvariable aus, wenn diese\n" -"\tauf das aktuelle Arbeitsverzeichnis verweist.\n" -"\n" -" -P\tGibt den wirklichen Verzeichnisnahen aus, ohne symbolische " -"Verweise.\n" -" \n" -" Standardmäßig wird die -L Option verwendet.\n" -" \n" -" Rückgabewert:\n" -" Der Rückgabewert ist 0, außer wenn eine ungültige Option angegeben oder " -"das aktuelle\n" -" Verzeichnis nicht gelesen werden kann." +msgstr " be a literal `]', to match the opening `['.<" # colon #: builtins.c:428 @@ -2475,7 +2596,7 @@ msgstr "" "\n" " Leeranweisung; das Kommando hat keine Wirkung.\n" "\n" -" Rückgabewert:\n" +" Rückgabewert:\n" " Das Kommando ist immer erfolgreich." #: builtins.c:439 @@ -2573,20 +2694,20 @@ msgid "" " Returns success unless an invalid option is supplied, an error occurs,\n" " or the shell is not executing a function." msgstr "" -"Definiert lokale Vatiablen.\n" +"Definiert lokale Variablen.\n" " \n" " Erzeugt eine Lokale Variable NAME und weist ihr den Wert VALUE zu. " "OPTION\n" " kann eine beliebige von `declare' akzeptierte Option sein.\n" "\n" -" Lokale Variablen können nur innerhalb einer Funktion benutzt werden. " +" Lokale Variablen können nur innerhalb einer Funktion benutzt werden. " "Sie\n" " sind nur in der sie erzeugenden Funktion und ihren Kindern " "sichtbar. \n" " \n" -" Rückgabewert:\n" -" Liefert \"Erfolg\" außer bei einer ungültigen Option, einem Fehler oder\n" -" die Shell führt keine Funktion aus." +" Rückgabewert:\n" +" Liefert \"Erfolg\" außer bei einer ungültigen Option, einem Fehler oder\n" +" die Shell führt keine Funktion aus." #: builtins.c:537 msgid "" @@ -2745,9 +2866,9 @@ msgid "" msgstr "" "Beendet die aktuelle Shell.\n" "\n" -" Beendt die die aktuelle Shell mit dem Rückgabewert N. Wenn N nicht " +" Beendt die die aktuelle Shell mit dem Rückgabewert N. Wenn N nicht " "angegeben ist,\n" -" wird der Rückgabewert des letzten ausgeführten Kommandos übernommen." +" wird der Rückgabewert des letzten ausgeführten Kommandos übernommen." #: builtins.c:698 msgid "" @@ -3026,7 +3147,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3046,7 +3171,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3058,7 +3183,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3140,7 +3265,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3160,7 +3285,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3179,7 +3304,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3199,7 +3324,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3210,7 +3335,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3224,7 +3349,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3238,7 +3363,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3315,15 +3440,19 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" " This is a synonym for the \"test\" builtin, but the last argument must\n" " be a literal `]', to match the opening `['." msgstr "" +"Wertet einen bedingen Ausdruck aus.\n" +" \n" +" Dieses Kommando entspricht dem \"test\" Kommando, aber das letzte " +"Argument muss ein `]' sein." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3335,7 +3464,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3371,7 +3500,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3401,7 +3530,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3445,7 +3574,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3463,7 +3592,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3480,7 +3609,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3494,7 +3623,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3507,7 +3636,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3524,7 +3653,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3544,7 +3673,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3560,7 +3689,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3571,7 +3700,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3592,7 +3721,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3603,7 +3732,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3614,7 +3743,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3627,7 +3756,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3641,7 +3770,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3652,7 +3781,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3666,7 +3795,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3677,7 +3806,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3705,7 +3834,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3759,7 +3888,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3790,7 +3919,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3817,7 +3946,8 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +# dirs +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3846,7 +3976,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3867,7 +3997,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3897,7 +4027,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3911,15 +4041,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3932,7 +4067,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3945,6 +4080,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3961,15 +4098,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3996,15 +4133,30 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Liest Zeilen einer Datei in eine Array Variable.\n" +"\n" +" Ist ein Synonym für `mapfile'." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)." + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: Kann nicht %lu Bytes reservieren." + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)." #~ msgid "Missing `}'" #~ msgstr "Fehlende `}'." @@ -4053,7 +4205,7 @@ msgstr "" #~ msgstr "%s: Das Umlenken der Ausgabe ist verboten." #~ msgid "Out of memory!" -#~ msgstr "Arbeitsspeicher erschöpft!" +#~ msgstr "Arbeitsspeicher erschöpft!" # Debug Ausgabe #~ msgid "You have already added item `%s'\n" @@ -4067,7 +4219,7 @@ msgstr "" #~ msgstr "" #~ msgid "%s: bg background job?" -#~ msgstr "%s: bg Hintergrundprozeß?" +#~ msgstr "%s: bg Hintergrundprozeß?" # Programmierfehler #~ msgid "" @@ -4075,7 +4227,7 @@ msgstr "" #~ "out of range in make_redirection ()." #~ msgstr "" #~ "Umlenkung von yyparse() `%d' in make_redirection\n" -#~ "ist außerhalb des zulässigen Bereichs." +#~ "ist außerhalb des zulässigen Bereichs." # Programmierfehler #~ msgid "clean_simple_command () got a command with type %d." @@ -4103,27 +4255,27 @@ msgstr "" #~ msgstr "`-c' erfordert ein Argument." #~ msgid "%s: cannot execute directories" -#~ msgstr "%s: Kann Verzeichnisse nicht ausführen." +#~ msgstr "%s: Kann Verzeichnisse nicht ausführen." # interner Fehler #~ msgid "Bad code in sig.c: sigprocmask" #~ msgstr "Falscher Code in sig.c: Sigprocmask." #~ msgid "can't make pipes for process substitution: %s" -#~ msgstr "Kann keine Pipes für die Prozeßersetzung erzeugen: %s." +#~ msgstr "Kann keine Pipes für die Prozeßersetzung erzeugen: %s." #~ msgid "reading" #~ msgstr "lese" #~ msgid "process substitution" -#~ msgstr "Prozeßersetzung" +#~ msgstr "Prozeßersetzung" #~ msgid "command substitution" #~ msgstr "Kommandoersetzung" # interner Fehler #~ msgid "Can't reopen pipe to command substitution (fd %d): %s" -#~ msgstr "Kann Pipe für Kommandoersetzung nicht wieder öffnen (fd %d): %s." +#~ msgstr "Kann Pipe für Kommandoersetzung nicht wieder öffnen (fd %d): %s." #~ msgid "$%c: unbound variable" #~ msgstr "$%c ist nicht gesetzt." @@ -4132,7 +4284,7 @@ msgstr "" #~ msgstr "%s: Falsche arithmetische Ersetzung." #~ msgid "-%s: binary operator expected" -#~ msgstr "-%s: Zweistelliger (binärer) Operator erwartet." +#~ msgstr "-%s: Zweistelliger (binärer) Operator erwartet." #~ msgid "%s[%s: bad subscript" #~ msgstr "%s[%s: Falscher Index." @@ -4140,7 +4292,7 @@ msgstr "" #~ msgid "[%s: bad subscript" #~ msgstr "[%s: Falscher Index." -# Testprogramm für sh_getopts +# Testprogramm für sh_getopts #~ msgid "digits occur in two different argv-elements.\n" #~ msgstr "Ziffer taucht in zwei verschiedenen Elementen von argv auf.\n" @@ -4156,11 +4308,11 @@ msgstr "" #~ msgid "option c with value `%s'\n" #~ msgstr "Option c mit Wert `%s'\n" -# Testprogramm für sh_getopts +# Testprogramm für sh_getopts #~ msgid "?? sh_getopt returned character code 0%o ??\n" -#~ msgstr "?? sh_getopt gab Code 0%o zurück??\n" +#~ msgstr "?? sh_getopt gab Code 0%o zurück??\n" -# Testprogramm für sh_getopts +# Testprogramm für sh_getopts #~ msgid "non-option ARGV-elements: " #~ msgstr "Elemente von ARGV, die keine Optionen sind: " @@ -4176,7 +4328,7 @@ msgstr "" #~ msgstr "%s erfordert ein Argument." #~ msgid "%s must be inside of a $BUILTIN block" -#~ msgstr "%s muß innerhalb eines $BUILTIN Blocks stehen." +#~ msgstr "%s muß innerhalb eines $BUILTIN Blocks stehen." #~ msgid "%s found before $END" #~ msgstr "%s vor $END gefunden." @@ -4196,7 +4348,7 @@ msgstr "" # mkbuildins Hilfsprogramm #~ msgid "mkbuiltins: Out of virtual memory!\n" -#~ msgstr "mkbuiltins: Virtueller Speicher erschöpft!\n" +#~ msgstr "mkbuiltins: Virtueller Speicher erschöpft!\n" #~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" #~ msgstr "" @@ -4217,20 +4369,20 @@ msgstr "" #~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." #~ msgstr "" -#~ "Sonst wird ein Synonym für jeden NAMEN definiert, dessen WERT angegeben " +#~ "Sonst wird ein Synonym für jeden NAMEN definiert, dessen WERT angegeben " #~ "wird." #~ msgid "A trailing space in VALUE causes the next word to be checked for" #~ msgstr "" -#~ "Ein Leerzeichen nach WERT bewirkt, daß das nächste WORT auf ein Synonym" +#~ "Ein Leerzeichen nach WERT bewirkt, daß das nächste WORT auf ein Synonym" #~ msgid "alias substitution when the alias is expanded. Alias returns" #~ msgstr "" -#~ "untersucht wird wenn SYNONYM ausgewertet wird. `Alias' gibt wahr zurück," +#~ "untersucht wird wenn SYNONYM ausgewertet wird. `Alias' gibt wahr zurück," #~ msgid "true unless a NAME is given for which no alias has been defined." #~ msgstr "" -#~ "außer wenn ein NAME angegeben wurde, für den kein SYNONYM vorhanden ist." +#~ "außer wenn ein NAME angegeben wurde, für den kein SYNONYM vorhanden ist." # unalias #~ msgid "" @@ -4238,7 +4390,7 @@ msgstr "" #~ msgstr "Entfernt NAMEn aus der Liste der Synonyme. Wenn die Option -a" #~ msgid "then remove all alias definitions." -#~ msgstr "angegeben ist, werden alle Synonyme gelöscht." +#~ msgstr "angegeben ist, werden alle Synonyme gelöscht." # readline #~ msgid "Bind a key sequence to a Readline function, or to a macro. The" @@ -4248,24 +4400,24 @@ msgstr "" #~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" #~ msgstr "" -#~ "Syntax entspricht der der Datei `~/.inputrc', sie muß jedoch als Argument" +#~ "Syntax entspricht der der Datei `~/.inputrc', sie muß jedoch als Argument" #~ msgid "" #~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." #~ msgstr "angegeben werden. Z.B.: bind '\"\\C-x\\C-r\": re-read-init-file'." #~ msgid "Arguments we accept:" -#~ msgstr "Gültige Argumente:" +#~ msgstr "Gültige Argumente:" #~ msgid "" #~ " -m keymap Use `keymap' as the keymap for the duration of this" #~ msgstr "" -#~ " -m Tastaturtabelle wählt die Tastaturtabelle für die Dauer dieses " +#~ " -m Tastaturtabelle wählt die Tastaturtabelle für die Dauer dieses " #~ "Kommandos." #~ msgid " command. Acceptable keymap names are emacs," #~ msgstr "" -#~ " Mögliche Namen für Tastaturtabellen sind: emacs" +#~ " Mögliche Namen für Tastaturtabellen sind: emacs" #~ msgid "" #~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," @@ -4291,10 +4443,10 @@ msgstr "" #~ msgid " reused as input." #~ msgstr "" -#~ " daß sie als Eingabe wiederverwendet werden können." +#~ " daß sie als Eingabe wiederverwendet werden können." #~ msgid " -r keyseq Remove the binding for KEYSEQ." -#~ msgstr " -r Tastenfolge Entfernt die Zuordnung für Tastenfolge." +#~ msgstr " -r Tastenfolge Entfernt die Zuordnung für Tastenfolge." #~ msgid " -f filename Read key bindings from FILENAME." #~ msgstr " -f Dateiname Liest die Tastenzuordnungen von Dateiname." @@ -4302,7 +4454,7 @@ msgstr "" #~ msgid "" #~ " -q function-name Query about which keys invoke the named function." #~ msgstr "" -#~ " -q Funktionsname Gibt die Tastenzuordnung für den Funktionsnamen aus." +#~ " -q Funktionsname Gibt die Tastenzuordnung für den Funktionsnamen aus." #~ msgid " -V List variable names and values" #~ msgstr " -V Gibt Variablennamen und deren Werte aus." @@ -4341,19 +4493,19 @@ msgstr "" # continue #~ msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." #~ msgstr "" -#~ "Springt zur nächsten Iteration der for, while oder until Schleife. Wenn N" +#~ "Springt zur nächsten Iteration der for, while oder until Schleife. Wenn N" #~ msgid "If N is specified, resume at the N-th enclosing loop." #~ msgstr "" -#~ "angegeben ist, wird mit der N-ten übergeordneten Schleife fortgefahren." +#~ "angegeben ist, wird mit der N-ten übergeordneten Schleife fortgefahren." # builtin #~ msgid "Run a shell builtin. This is useful when you wish to rename a" #~ msgstr "" -#~ "Führt eine Shellfunktion aus. Das ist nützlich, wenn eine Shellfunktion" +#~ "Führt eine Shellfunktion aus. Das ist nützlich, wenn eine Shellfunktion" #~ msgid "shell builtin to be a function, but need the functionality of the" -#~ msgstr "umbenannt wurde, aber das ursprüngliche Verhalten benötigt wird." +#~ msgstr "umbenannt wurde, aber das ursprüngliche Verhalten benötigt wird." #~ msgid "builtin within the function itself." #~ msgstr " " @@ -4386,11 +4538,11 @@ msgstr "" #~ "gesetzt ist, dann wird Verz. als ein Variablenname interpretiert. Ergibt" #~ msgid "shell option `cdable_vars' is set, then try the word as a variable" -#~ msgstr "dies einen Wert für die Variable, dann wird das aktuelle" +#~ msgstr "dies einen Wert für die Variable, dann wird das aktuelle" #~ msgid "name. If that variable has a value, then cd to the value of that" #~ msgstr "" -#~ "Verzeichnis auf diesen Wert gesetzt. Option -P veranlaßt cd symbolische" +#~ "Verzeichnis auf diesen Wert gesetzt. Option -P veranlaßt cd symbolische" #~ msgid "" #~ "variable. The -P option says to use the physical directory structure" @@ -4418,10 +4570,10 @@ msgstr "" #~ msgid "" #~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" #~ msgstr "" -#~ "Führt das Kommando mit den Argumenten aus, ohne die Shellfunktionen zu" +#~ "Führt das Kommando mit den Argumenten aus, ohne die Shellfunktionen zu" #~ msgid "function called `ls', and you wish to call the command `ls', you can" -#~ msgstr "berücksichtigen. Wenn eine Shellfunktion `ls' definiert ist, führt" +#~ msgstr "berücksichtigen. Wenn eine Shellfunktion `ls' definiert ist, führt" #~ msgid "" #~ "say \"command ls\". If the -p option is given, a default value is used" @@ -4429,11 +4581,11 @@ msgstr "" #~ msgid "" #~ "for PATH that is guaranteed to find all of the standard utilities. If" -#~ msgstr "Standardwert für PATH verwendet. -v gibt eine kurze Beschreibung" +#~ msgstr "Standardwert für PATH verwendet. -v gibt eine kurze Beschreibung" #~ msgid "" #~ "the -V or -v option is given, a string is printed describing COMMAND." -#~ msgstr "des Kommandos aus; -V eine ausführliche." +#~ msgstr "des Kommandos aus; -V eine ausführliche." #~ msgid "The -V option produces a more verbose description." #~ msgstr " " @@ -4454,7 +4606,7 @@ msgstr "" #~ msgstr "Die Schalter sind:" #~ msgid " -a\tto make NAMEs arrays (if supported)" -#~ msgstr " -a\tDeklariert Name als Feldvariable (wenn unterstützt)." +#~ msgstr " -a\tDeklariert Name als Feldvariable (wenn unterstützt)." #~ msgid " -f\tto select from among function names only" #~ msgstr " -f\tZeigt nur Funktionsnamen." @@ -4466,7 +4618,7 @@ msgstr "" #~ msgstr " -r\tSetzt Name auf `nur Lesen'-Status." #~ msgid " -x\tto make NAMEs export" -#~ msgstr " -x\tMarkiert Name für automatischen Export in alle Subshells." +#~ msgstr " -x\tMarkiert Name für automatischen Export in alle Subshells." #~ msgid " -i\tto make NAMEs have the `integer' attribute set" #~ msgstr " -i\tSetzt den Typ von Name auf Ganzzahl." @@ -4483,7 +4635,7 @@ msgstr "" #~ "Wenn Variablenwerte angezeigt werden, gibt die Option -f Funktionsnamen" #~ msgid "and definition. The -F option restricts the display to function" -#~ msgstr "und -definitionen aus. Die Option -F beschränkt die Ausgabe auf" +#~ msgstr "und -definitionen aus. Die Option -F beschränkt die Ausgabe auf" #~ msgid "name only." #~ msgstr "Funktionsnamen." @@ -4506,7 +4658,7 @@ msgstr "" #~ "kann" #~ msgid "have a visible scope restricted to that function and its children." -#~ msgstr "nur innerhalb dieser Funktion und allen Unterfunktionen zugänglich." +#~ msgstr "nur innerhalb dieser Funktion und allen Unterfunktionen zugänglich." # echo #~ msgid "Output the ARGs. If -n is specified, the trailing newline is" @@ -4515,7 +4667,7 @@ msgstr "" #~ msgid "suppressed. If the -e option is given, interpretation of the" #~ msgstr "" -#~ "angefügt. Die Option -e interpretiert folgende Sonderzeichen zur " +#~ "angefügt. Die Option -e interpretiert folgende Sonderzeichen zur " #~ "Formatierung" #~ msgid "following backslash-escaped characters is turned on:" @@ -4525,7 +4677,7 @@ msgstr "" #~ msgstr "\t\\a\tAlarm (Glocke)." #~ msgid "\t\\b\tbackspace" -#~ msgstr "\t\\b\tSchritt zurück." +#~ msgstr "\t\\b\tSchritt zurück." #~ msgid "\t\\c\tsuppress trailing newline" #~ msgstr "\t\\c\tKein Zeilenumbruch." @@ -4540,7 +4692,7 @@ msgstr "" #~ msgstr "\t\\n\tZeilenumbruch." #~ msgid "\t\\r\tcarriage return" -#~ msgstr "\t\\r\tWagenrücklauf." +#~ msgstr "\t\\r\tWagenrücklauf." #~ msgid "\t\\t\thorizontal tab" #~ msgstr "\t\\t\tHorizontaler Tabulator." @@ -4565,7 +4717,7 @@ msgstr "" #~ msgid "" #~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." #~ msgstr "" -#~ "Gibt ARGUMENTE aus. Die Option -n verhindert den abschließenden " +#~ "Gibt ARGUMENTE aus. Die Option -n verhindert den abschließenden " #~ "Zeilenumbruch." # enable @@ -4583,18 +4735,18 @@ msgstr "" #~ msgid "path instead of the shell builtin version, type `enable -n test'." #~ msgstr "" -#~ "muß `enable -n test' eingegeben werden. Auf Systemen, die Bibiliotheken" +#~ "muß `enable -n test' eingegeben werden. Auf Systemen, die Bibiliotheken" #~ msgid "On systems supporting dynamic loading, the -f option may be used" #~ msgstr "" -#~ "dynamisch nachladen können, kann die Option -f genutzt werden, um neue" +#~ "dynamisch nachladen können, kann die Option -f genutzt werden, um neue" #~ msgid "to load new builtins from the shared object FILENAME. The -d" #~ msgstr "" #~ "Shellfunktionen aus der dynamischen Bibiliothek Dateiname zu laden. -d" #~ msgid "option will delete a builtin previously loaded with -f. If no" -#~ msgstr "entlädt dynamisch geladene Shellfunktionen wieder. Wenn" +#~ msgstr "entlädt dynamisch geladene Shellfunktionen wieder. Wenn" #~ msgid "non-option names are given, or the -p option is supplied, a list" #~ msgstr "keine Option oder -p angegeben ist, wird eine Liste der" @@ -4607,7 +4759,7 @@ msgstr "" #~ "aus, in der ein- und ausgeschaltete Funktionen gekennzeichnet sind; -s" #~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" -#~ msgstr "beschränkt die Ausgabe auf Posix.2-Shellfunktionen. -n" +#~ msgstr "beschränkt die Ausgabe auf Posix.2-Shellfunktionen. -n" #~ msgid "option displays a list of all disabled builtins." #~ msgstr "zeigt eine Liste aller abgeschalteter Funktionen an." @@ -4615,7 +4767,7 @@ msgstr "" # eval #~ msgid "" #~ "Read ARGs as input to the shell and execute the resulting command(s)." -#~ msgstr "Verbindet die Argumente zu einer Kommandozeile und führt sie aus." +#~ msgstr "Verbindet die Argumente zu einer Kommandozeile und führt sie aus." # getopts #~ msgid "Getopts is used by shell procedures to parse positional parameters." @@ -4623,7 +4775,7 @@ msgstr "" #~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" #~ msgstr "" -#~ "Optstring enthält die zu erkennenden Buchstaben. Folgt einem Buchstaben " +#~ "Optstring enthält die zu erkennenden Buchstaben. Folgt einem Buchstaben " #~ "ein" #~ msgid "is followed by a colon, the option is expected to have an argument," @@ -4634,14 +4786,14 @@ msgstr "" #~ msgid "Each time it is invoked, getopts will place the next option in the" #~ msgstr "" -#~ "Bei jedem Aufruf weist getopt die nächste Option der Shell-Variablen " +#~ "Bei jedem Aufruf weist getopt die nächste Option der Shell-Variablen " #~ "$name zu," #~ msgid "shell variable $name, initializing name if it does not exist, and" #~ msgstr "erzeugt sie gegebenenfalls und setzt den Zeiger in der" #~ msgid "the index of the next argument to be processed into the shell" -#~ msgstr "Shellvariablen OPTIND auf die nächste abzuarbeitende Option." +#~ msgstr "Shellvariablen OPTIND auf die nächste abzuarbeitende Option." #~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" #~ msgstr "OPTIND wird beim Start der Shell mit 1 initialisiert." @@ -4650,11 +4802,11 @@ msgstr "" #~ msgstr "Erwartet eine Option ein Argument, wird dieses Argument in der" #~ msgid "getopts places that argument into the shell variable OPTARG." -#~ msgstr "Shellvariablen OPTARG zurückgegeben." +#~ msgstr "Shellvariablen OPTARG zurückgegeben." #~ msgid "getopts reports errors in one of two ways. If the first character" #~ msgstr "" -#~ "Es gibt zwei Möglichkeiten der Fehlerbehandlung. Wenn das erste Zeichen " +#~ "Es gibt zwei Möglichkeiten der Fehlerbehandlung. Wenn das erste Zeichen " #~ "von" #~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" @@ -4664,7 +4816,7 @@ msgstr "" #~ msgid "this mode, no error messages are printed. If an illegal option is" #~ msgstr "" -#~ "Fehlermeldung\") Wenn ein ungültiges Optionszeichen erkannt wird, dann " +#~ "Fehlermeldung\") Wenn ein ungültiges Optionszeichen erkannt wird, dann " #~ "wird" #~ msgid "seen, getopts places the option character found into OPTARG. If a" @@ -4676,20 +4828,20 @@ msgstr "" #~ msgid "sets OPTARG to the option character found. If getopts is not in" #~ msgstr "" -#~ "Optionszeichen übergeben. Wenn getopt sich nicht im \"stillen\" Modus" +#~ "Optionszeichen übergeben. Wenn getopt sich nicht im \"stillen\" Modus" #~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" #~ msgstr "" -#~ "befindet und ein ungültiges Optionszeichen erkannt wird, weist getopt der" +#~ "befindet und ein ungültiges Optionszeichen erkannt wird, weist getopt der" #~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" #~ msgstr "" -#~ "Variable Name '?' zu und löscht OPTARG. Wenn eine erforderliche Option " +#~ "Variable Name '?' zu und löscht OPTARG. Wenn eine erforderliche Option " #~ "nicht" #~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" #~ msgstr "" -#~ "gefunden wurde, wird `?` an NAME zugewiesen, OPTARG gelöscht und eine " +#~ "gefunden wurde, wird `?` an NAME zugewiesen, OPTARG gelöscht und eine " #~ "Fehler-" #~ msgid "printed." @@ -4697,7 +4849,7 @@ msgstr "" #~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" #~ msgstr "" -#~ "Wenn die Shellvariable OPTERR den Wert 0 besitzt, unterdrückt getopts die " +#~ "Wenn die Shellvariable OPTERR den Wert 0 besitzt, unterdrückt getopts die " #~ "Aus-" #~ msgid "printing of error messages, even if the first character of" @@ -4706,11 +4858,11 @@ msgstr "" #~ "kein" #~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." -#~ msgstr "Doppelpunkt ist. OPTERR hat standardmäßig den Wert 1." +#~ msgstr "Doppelpunkt ist. OPTERR hat standardmäßig den Wert 1." #~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" #~ msgstr "" -#~ "Getopts wertet normalerweise die übergebenen Parameter $0 - $9 aus, aber " +#~ "Getopts wertet normalerweise die übergebenen Parameter $0 - $9 aus, aber " #~ "wenn" #~ msgid "more arguments are given, they are parsed instead." @@ -4718,7 +4870,7 @@ msgstr "" # exec #~ msgid "Exec FILE, replacing this shell with the specified program." -#~ msgstr "Fürt Datei aus und ersetzt die Shell durch das angegebene Programm." +#~ msgstr "Fürt Datei aus und ersetzt die Shell durch das angegebene Programm." #~ msgid "If FILE is not specified, the redirections take effect in this" #~ msgstr "" @@ -4732,30 +4884,30 @@ msgstr "" #~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" #~ msgstr "" -#~ "als nulltes Argument an die Datei übergeben (wie login). Mit der -c " +#~ "als nulltes Argument an die Datei übergeben (wie login). Mit der -c " #~ "Option" #~ msgid "is supplied, FILE is executed with a null environment. The `-a'" #~ msgstr "" -#~ "wird die Datei ohne gesetzte Umgebungsvariablen ausgeführt. Die -a Option" +#~ "wird die Datei ohne gesetzte Umgebungsvariablen ausgeführt. Die -a Option" #~ msgid "option means to make set argv[0] of the executed process to NAME." -#~ msgstr "setzt argv[0] des ausgeführten Prozeßes auf Name." +#~ msgstr "setzt argv[0] des ausgeführten Prozeßes auf Name." #~ msgid "If the file cannot be executed and the shell is not interactive," #~ msgstr "" -#~ "Wenn die Datei nicht ausgeführt werden kann und die Shell nicht " +#~ "Wenn die Datei nicht ausgeführt werden kann und die Shell nicht " #~ "interaktiv ist," #~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" #~ msgstr "" -#~ "dann wird sie verlassen, außer die Variable \"no_exit_on_failed_exec\" ist" +#~ "dann wird sie verlassen, außer die Variable \"no_exit_on_failed_exec\" ist" #~ msgid "is set." #~ msgstr "gesetzt." #~ msgid "is that of the last command executed." -#~ msgstr "der Rückkehrstatus des zuletzt ausgeführten Kommandos verwendet." +#~ msgstr "der Rückkehrstatus des zuletzt ausgeführten Kommandos verwendet." # fc #~ msgid "" @@ -4773,13 +4925,13 @@ msgstr "" #~ msgid "" #~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," #~ msgstr "" -#~ " -e Editor ist der aufzurufende Texteditor. Standardmäßig wird FCEDIT, " +#~ " -e Editor ist der aufzurufende Texteditor. Standardmäßig wird FCEDIT, " #~ "dann" #~ msgid "" #~ " then the editor which corresponds to the current readline editing" #~ msgstr "" -#~ " EDITOR, anschließend der dem readline Modus entsprechende Editor" +#~ " EDITOR, anschließend der dem readline Modus entsprechende Editor" #~ msgid " mode, then vi." #~ msgstr " und sonst vi aufgerufen." @@ -4788,13 +4940,13 @@ msgstr "" #~ msgstr " -l zeigt nur die Zeilen an." #~ msgid " -n means no line numbers listed." -#~ msgstr " -n unterdrückt das Anzeigen von Zeilennummern." +#~ msgstr " -n unterdrückt das Anzeigen von Zeilennummern." #~ msgid "" #~ " -r means reverse the order of the lines (making it newest listed " #~ "first)." #~ msgstr "" -#~ " -r dreht die Sortierreihenfolge um (jüngster Eintrag wird zuerst " +#~ " -r dreht die Sortierreihenfolge um (jüngster Eintrag wird zuerst " #~ "angezeigt)." #~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" @@ -4802,11 +4954,11 @@ msgstr "" #~ "Mit `fc -s [Muster=Ersetzung ...] [command]' wird das Kommando wiederholt," #~ msgid "re-executed after the substitution OLD=NEW is performed." -#~ msgstr "nachdem die Substitution Alt=Neu durchgeführt wurde." +#~ msgstr "nachdem die Substitution Alt=Neu durchgeführt wurde." #~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" #~ msgstr "" -#~ "Eine nützliche Aliasersetzung kann r='fc -s' sein, mit der z.B. durch `r " +#~ "Eine nützliche Aliasersetzung kann r='fc -s' sein, mit der z.B. durch `r " #~ "cc`" #~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" @@ -4832,7 +4984,7 @@ msgstr "" #~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" #~ msgstr "" -#~ "gestartet worden wäre. Ist keine Jobbezeichnung angegeben, wird der " +#~ "gestartet worden wäre. Ist keine Jobbezeichnung angegeben, wird der " #~ "zuletzt" #~ msgid "job is used." @@ -4841,7 +4993,7 @@ msgstr "" # hash #~ msgid "For each NAME, the full pathname of the command is determined and" #~ msgstr "" -#~ "Für jeden angegebenen Namen wird der vollständige Pfadname des Kommandos" +#~ "Für jeden angegebenen Namen wird der vollständige Pfadname des Kommandos" #~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" #~ msgstr "" @@ -4849,7 +5001,7 @@ msgstr "" #~ msgid "full pathname of NAME, and no path search is performed. The -r" #~ msgstr "" -#~ "Pfadname verwendet und keine Suche durchgeführt. Die -r Option löscht die" +#~ "Pfadname verwendet und keine Suche durchgeführt. Die -r Option löscht die" #~ msgid "option causes the shell to forget all remembered locations. If no" #~ msgstr "" @@ -4862,7 +5014,7 @@ msgstr "" # help #~ msgid "Display helpful information about builtin commands. If PATTERN is" #~ msgstr "" -#~ "Gibt Hilfetexte für die eingebauten Kommandos aus. Wenn ein Muster " +#~ "Gibt Hilfetexte für die eingebauten Kommandos aus. Wenn ein Muster " #~ "angegeben" #~ msgid "specified, gives detailed help on all commands matching PATTERN," @@ -4881,7 +5033,7 @@ msgstr "" #~ msgid "with a `*' have been modified. Argument of N says to list only" #~ msgstr "" -#~ "Zeilen wurden verändert. Mit einer Zahl als Argument wird nur die " +#~ "Zeilen wurden verändert. Mit einer Zahl als Argument wird nur die " #~ "angegebene" #~ msgid "the last N lines. The -c option causes the history list to be" @@ -4892,12 +5044,12 @@ msgstr "" #~ msgid "" #~ "cleared by deleting all of the entries. The `-w' option writes out the" #~ msgstr "" -#~ "gelöscht werden. Ist die `-w' Option angegeben, wird der Kommandozeilen-" +#~ "gelöscht werden. Ist die `-w' Option angegeben, wird der Kommandozeilen-" #~ msgid "" #~ "current history to the history file; `-r' means to read the file and" #~ msgstr "" -#~ "speicher in die history Datei geschrieben. `-r' liest diese Datei und fügt" +#~ "speicher in die history Datei geschrieben. `-r' liest diese Datei und fügt" #~ msgid "append the contents to the history list instead. `-a' means" #~ msgstr "" @@ -4906,16 +5058,16 @@ msgstr "" #~ msgid "to append history lines from this session to the history file." #~ msgstr "" -#~ "Kommandozeilenspeicher der Sitzung an die history Datei angefügt werden." +#~ "Kommandozeilenspeicher der Sitzung an die history Datei angefügt werden." #~ msgid "Argument `-n' means to read all history lines not already read" #~ msgstr "" -#~ "Das Argument `-n' bewirkt, daß alle Zeilen die noch nicht aus der history " +#~ "Das Argument `-n' bewirkt, daß alle Zeilen die noch nicht aus der history " #~ "Datei" #~ msgid "from the history file and append them to the history list. If" #~ msgstr "" -#~ "gelesen wurden an den Kommandozeilenspeicher angefügt werden. Wenn ein " +#~ "gelesen wurden an den Kommandozeilenspeicher angefügt werden. Wenn ein " #~ "Datei-" #~ msgid "FILENAME is given, then that is used as the history file else" @@ -4925,23 +5077,23 @@ msgstr "" #~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." #~ msgstr "" -#~ "wird der Inhalt der Variablen $HISTFILE und anschließend ~/.bash_history " +#~ "wird der Inhalt der Variablen $HISTFILE und anschließend ~/.bash_history " #~ "verwendet." #~ msgid "If the -s option is supplied, the non-option ARGs are appended to" #~ msgstr "" -#~ "Durch die -s Option wird bewirkt, daß die Nicht-Options-Argumente als " +#~ "Durch die -s Option wird bewirkt, daß die Nicht-Options-Argumente als " #~ "eigene" #~ msgid "the history list as a single entry. The -p option means to perform" #~ msgstr "" -#~ "Zeile an den Kommandospeicher angefügt werden. Mit -p wird für jedes " +#~ "Zeile an den Kommandospeicher angefügt werden. Mit -p wird für jedes " #~ "Argument" #~ msgid "" #~ "history expansion on each ARG and display the result, without storing" #~ msgstr "" -#~ "die Kommandosubstitution durchgeführt und das Ergebnis angezeigt, ohne " +#~ "die Kommandosubstitution durchgeführt und das Ergebnis angezeigt, ohne " #~ "jedoch" #~ msgid "anything in the history list." @@ -4951,22 +5103,22 @@ msgstr "" #~ msgid "Lists the active jobs. The -l option lists process id's in addition" #~ msgstr "" #~ "Gibt eine Liste der aktiven Jobs aus. Mit der -l Option werden " -#~ "zusätzlich die" +#~ "zusätzlich die" #~ msgid "to the normal information; the -p option lists process id's only." #~ msgstr "" -#~ "Prozeßnummern und mit der -p Option nur die Prozeßnummern ausgsgegeben." +#~ "Prozeßnummern und mit der -p Option nur die Prozeßnummern ausgsgegeben." #~ msgid "" #~ "If -n is given, only processes that have changed status since the last" #~ msgstr "" -#~ "Die Option -n bewirkt, daß nur Jobs angezeigt werden, die ihren Status " +#~ "Die Option -n bewirkt, daß nur Jobs angezeigt werden, die ihren Status " #~ "seid dem" #~ msgid "" #~ "notification are printed. JOBSPEC restricts output to that job. The" #~ msgstr "" -#~ "letzten Aufruf geändert haben. Jobbez. beschränkt die Anzeige auf diesen " +#~ "letzten Aufruf geändert haben. Jobbez. beschränkt die Anzeige auf diesen " #~ "Job." #~ msgid "-r and -s options restrict output to running and stopped jobs only," @@ -4979,12 +5131,12 @@ msgstr "" #~ msgid "" #~ "printed. If -x is given, COMMAND is run after all job specifications" #~ msgstr "" -#~ "Wenn -x in der Kommandozeile angegeben ist, wird das Kommando ausgeführt " +#~ "Wenn -x in der Kommandozeile angegeben ist, wird das Kommando ausgeführt " #~ "und" #~ msgid "" #~ "that appear in ARGS have been replaced with the process ID of that job's" -#~ msgstr "vorher alle vorkommenden Jobspezifikationen durch ihre Prozeßnummer" +#~ msgstr "vorher alle vorkommenden Jobspezifikationen durch ihre Prozeßnummer" #~ msgid "process group leader." #~ msgstr "ersetzt." @@ -5007,7 +5159,7 @@ msgstr "" #~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" #~ msgstr "" -#~ "Liste der möglichen Signalnamen angezeigt werden. Wenn Zahlen nach der " +#~ "Liste der möglichen Signalnamen angezeigt werden. Wenn Zahlen nach der " #~ "Option" #~ msgid "be signal numbers for which names should be listed. Kill is a shell" @@ -5017,8 +5169,8 @@ msgstr "" #~ msgid "builtin for two reasons: it allows job IDs to be used instead of" #~ msgstr "" -#~ "Gründen eine Shellfunktion: es können Jobbezeichnungen anstatt " -#~ "Prozeßnummern" +#~ "Gründen eine Shellfunktion: es können Jobbezeichnungen anstatt " +#~ "Prozeßnummern" #~ msgid "process IDs, and, if you have reached the limit on processes that" #~ msgstr "" @@ -5028,7 +5180,7 @@ msgstr "" #~ msgid "" #~ "you can create, you don't have to start a process to kill another one." #~ msgstr "" -#~ "braucht kein weiterer Prozeß gestartet zu werden, um einen anderen zu " +#~ "braucht kein weiterer Prozeß gestartet zu werden, um einen anderen zu " #~ "beenden." # let @@ -5039,7 +5191,7 @@ msgstr "" #~ msgid "is done in long integers with no check for overflow, though division" #~ msgstr "" -#~ "integer Variablen verwendet. Ein Überlauftest wird nicht ausgeführt, " +#~ "integer Variablen verwendet. Ein Überlauftest wird nicht ausgeführt, " #~ "jedoch" #~ msgid "by 0 is trapped and flagged as an error. The following list of" @@ -5092,7 +5244,7 @@ msgstr "" #~ msgstr "\tAusdruck1 ? Ausdruck2 : Ausdruck3" #~ msgid "\t\t\tconditional expression" -#~ msgstr "\t\t\tBedingte Befehlsausführung." +#~ msgstr "\t\t\tBedingte Befehlsausführung." #~ msgid "\t=, *=, /=, %=," #~ msgstr "\t=, *=, /=, %=," @@ -5108,7 +5260,7 @@ msgstr "" #~ "Ausdruck durch ihren in long integer umgewandelten Wert ersetzt. Um " #~ msgid "an expression. The variable need not have its integer attribute" -#~ msgstr "die Variable in einem Ausdruck verwenden zu können, muß ihr " +#~ msgstr "die Variable in einem Ausdruck verwenden zu können, muß ihr " #~ msgid "turned on to be used in an expression." #~ msgstr "Integerattribut nicht aktiviert sein." @@ -5118,7 +5270,7 @@ msgstr "" #~ msgid "parentheses are evaluated first and may override the precedence" #~ msgstr "" -#~ "Geklammerte Teilausdrücke werden zuerst ausgewertet und können von den" +#~ "Geklammerte Teilausdrücke werden zuerst ausgewertet und können von den" #~ msgid "rules above." #~ msgstr "oben angegebenen Vorrangregeln abweichen." @@ -5127,7 +5279,7 @@ msgstr "" #~ msgstr "Wenn das zuletzt ausgewertete Argument 0 ergibt, liefert let " #~ msgid "otherwise." -#~ msgstr "1 als Rückgabewert, sonst 0." +#~ msgstr "1 als Rückgabewert, sonst 0." # read #~ msgid "One line is read from the standard input, and the first word is" @@ -5154,7 +5306,7 @@ msgstr "" #~ msgid "" #~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" #~ msgstr "" -#~ "aufgetreten ist, ist der Rückgabewert Null. Wenn kein NAME angegeben " +#~ "aufgetreten ist, ist der Rückgabewert Null. Wenn kein NAME angegeben " #~ "wurde," #~ msgid "" @@ -5165,12 +5317,12 @@ msgstr "" #~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" #~ msgstr "" -#~ "mit `\\' markierten Sonderzeichen unterdrückt. Wenn die Option -r " +#~ "mit `\\' markierten Sonderzeichen unterdrückt. Wenn die Option -r " #~ "angegeben" #~ msgid "the `-p' option is supplied, the string supplied as an argument is" #~ msgstr "" -#~ "ist, dann wird die Eingabeaufforderung ohne einen abschließenden " +#~ "ist, dann wird die Eingabeaufforderung ohne einen abschließenden " #~ "Zeilenumbruch" #~ msgid "" @@ -5181,12 +5333,12 @@ msgstr "" #~ msgid "" #~ "supplied, the words read are assigned to sequential indices of ARRAY," #~ msgstr "" -#~ "Feldvariable ARRAY übergeben und für jeden Eintrag der Index von Null " +#~ "Feldvariable ARRAY übergeben und für jeden Eintrag der Index von Null " #~ "beginnend" #~ msgid "starting at zero. If -e is supplied and the shell is interactive," #~ msgstr "" -#~ "um Eins erhöht wird. Mit der -e Option wird bei einer interaktiven Shell " +#~ "um Eins erhöht wird. Mit der -e Option wird bei einer interaktiven Shell " #~ "die" #~ msgid "readline is used to obtain the line." @@ -5197,18 +5349,18 @@ msgstr "" #~ msgid "" #~ "Causes a function to exit with the return value specified by N. If N" #~ msgstr "" -#~ "Beendet eine Shellfunktion und setzt den Rückgabewert auf N. Wenn kein " -#~ "Rückga-" +#~ "Beendet eine Shellfunktion und setzt den Rückgabewert auf N. Wenn kein " +#~ "Rückga-" #~ msgid "is omitted, the return status is that of the last command." #~ msgstr "" -#~ "bewert angegeben ist, wird der des zuletzt ausgeführten Kommandos " +#~ "bewert angegeben ist, wird der des zuletzt ausgeführten Kommandos " #~ "verwendet." # set #~ msgid " -a Mark variables which are modified or created for export." #~ msgstr "" -#~ " -a Markiert erzeugte oder veränderte Variablen als exportierbar." +#~ " -a Markiert erzeugte oder veränderte Variablen als exportierbar." #~ msgid " -b Notify of job termination immediately." #~ msgstr " -b Zeigt das Beenden von Prozessen sofort an." @@ -5216,10 +5368,10 @@ msgstr "" #~ msgid " -e Exit immediately if a command exits with a non-zero status." #~ msgstr "" #~ " -e Beendet die Shell sofort, wenn ein Kommando ein Fehler " -#~ "zurückliefert." +#~ "zurückliefert." #~ msgid " -f Disable file name generation (globbing)." -#~ msgstr " -f Unterdrückt das Erzeugen von Dateinamen." +#~ msgstr " -f Unterdrückt das Erzeugen von Dateinamen." #~ msgid " -h Remember the location of commands as they are looked up." #~ msgstr " -h Speichert die eingegebenen Kommandos sofort." @@ -5227,7 +5379,7 @@ msgstr "" #~ msgid "" #~ " -i Force the shell to be an \"interactive\" one. Interactive shells" #~ msgstr "" -#~ " -i Erzwingt, daß die Shell interaktiv arbeitet. Interaktive Shells" +#~ " -i Erzwingt, daß die Shell interaktiv arbeitet. Interaktive Shells" #~ msgid " always read `~/.bashrc' on startup." #~ msgstr "" @@ -5239,13 +5391,13 @@ msgstr "" #~ msgid " command, not just those that precede the command name." #~ msgstr "" -#~ " geschrieben, nicht bloß die Argumente nach dem Funktionsnamen." +#~ " geschrieben, nicht bloß die Argumente nach dem Funktionsnamen." #~ msgid " -m Job control is enabled." #~ msgstr " -m Jobsteuerung wird aktiviert." #~ msgid " -n Read commands but do not execute them." -#~ msgstr " -n Kommandos werden gelesen aber nicht ausgeführt." +#~ msgstr " -n Kommandos werden gelesen aber nicht ausgeführt." #~ msgid " -o option-name" #~ msgstr " -o Option" @@ -5317,7 +5469,7 @@ msgstr "" #~ msgid "" #~ " posix change the behavior of bash where the default" #~ msgstr "" -#~ " posix Ändert das Verhalten der Shell, wo sie vom," +#~ " posix Ändert das Verhalten der Shell, wo sie vom," #~ msgid "" #~ " operation differs from the 1003.2 standard to" @@ -5343,11 +5495,11 @@ msgstr "" #~ " -p Turned on whenever the real and effective user ids do not match." #~ msgstr "" #~ " -p Ist aktiviert, wenn die reale und effektive Nutzer ID nicht " -#~ "überein-" +#~ "überein-" #~ msgid " Disables processing of the $ENV file and importing of shell" #~ msgstr "" -#~ " stimmen. Die $ENV Datei wird nicht ausgeführt und keine " +#~ " stimmen. Die $ENV Datei wird nicht ausgeführt und keine " #~ "Shellfunk-" #~ msgid "" @@ -5361,7 +5513,7 @@ msgstr "" #~ msgid " -t Exit after reading and executing one command." #~ msgstr "" -#~ " -t Beendet die Shell sofort nach Ausfühern eines einzelnen Kommandos." +#~ " -t Beendet die Shell sofort nach Ausfühern eines einzelnen Kommandos." #~ msgid " -u Treat unset variables as an error when substituting." #~ msgstr "" @@ -5373,7 +5525,7 @@ msgstr "" #~ msgid " -x Print commands and their arguments as they are executed." #~ msgstr "" -#~ " -x Gibt die Kommandos mit ihren Argumenten aus wie es ausgeführt " +#~ " -x Gibt die Kommandos mit ihren Argumenten aus wie es ausgeführt " #~ "wird." #~ msgid " -B the shell will perform brace expansion" @@ -5384,22 +5536,22 @@ msgstr "" #~ " -H Schaltet den Zugriff auf den Kommandozeilenspeicher durch `!' ein." #~ msgid " by default." -#~ msgstr " Diese Option ist standardmäßig aktiviert." +#~ msgstr " Diese Option ist standardmäßig aktiviert." #~ msgid " -C If set, disallow existing regular files to be overwritten" #~ msgstr "" -#~ " -C Verhindert das Überschreiben von existierenden Dateien durch" +#~ " -C Verhindert das Überschreiben von existierenden Dateien durch" #~ msgid " by redirection of output." #~ msgstr " Umleiten der Ausgabe (wie noclobber)." #~ msgid " -P If set, do not follow symbolic links when executing commands" #~ msgstr "" -#~ " -P Symbolische Verweise werden beim Ausführen von Kommandos, wie z." +#~ " -P Symbolische Verweise werden beim Ausführen von Kommandos, wie z." #~ "B. cd" #~ msgid " such as cd which change the current directory." -#~ msgstr " welches das aktuelle Arbeitsverzeichnis ändert, ignoriert." +#~ msgstr " welches das aktuelle Arbeitsverzeichnis ändert, ignoriert." #~ msgid "Using + rather than - causes these flags to be turned off. The" #~ msgstr "" @@ -5408,7 +5560,7 @@ msgstr "" #~ msgid "flags can also be used upon invocation of the shell. The current" #~ msgstr "" -#~ "können auch beim Aufruf der Shell benutzt werden. Die gegenwärtig " +#~ "können auch beim Aufruf der Shell benutzt werden. Die gegenwärtig " #~ "aktivierten" #~ msgid "" @@ -5428,36 +5580,36 @@ msgstr "" # unset #~ msgid "For each NAME, remove the corresponding variable or function. Given" #~ msgstr "" -#~ "Für jeden angegebenen NAMEn wird die entsprechende Variable oder Funktion " +#~ "Für jeden angegebenen NAMEn wird die entsprechende Variable oder Funktion " #~ "ge-" #~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," #~ msgstr "" -#~ "löscht. Mit `-v' werden nur Variablen und mit `-f' nur Funktionen " -#~ "gelöscht." +#~ "löscht. Mit `-v' werden nur Variablen und mit `-f' nur Funktionen " +#~ "gelöscht." #~ msgid "unset will only act on functions. With neither flag, unset first" #~ msgstr "" -#~ "Wenn kein Schalter angegeben ist, wird zunächst eine Variable gesucht und " +#~ "Wenn kein Schalter angegeben ist, wird zunächst eine Variable gesucht und " #~ "wenn" #~ msgid "tries to unset a variable, and if that fails, then tries to unset a" #~ msgstr "" #~ "eine solche nicht gefunden wurde, dann wird versucht eine Funktion zu " -#~ "löschen." +#~ "löschen." #~ msgid "" #~ "function. Some variables (such as PATH and IFS) cannot be unset; also" #~ msgstr "" -#~ "Einige Variablen (z.B. PATH und IFS) können nicht gelöscht werden. Siehe" +#~ "Einige Variablen (z.B. PATH und IFS) können nicht gelöscht werden. Siehe" #~ msgid "see readonly." -#~ msgstr "diesbezüglich auch die Hilfe der Funktion readonly." +#~ msgstr "diesbezüglich auch die Hilfe der Funktion readonly." # export #~ msgid "NAMEs are marked for automatic export to the environment of" #~ msgstr "" -#~ "Die NAMEn werden für den automatischen Export in die Umgebung von der " +#~ "Die NAMEn werden für den automatischen Export in die Umgebung von der " #~ "Shell" #~ msgid "subsequently executed commands. If the -f option is given," @@ -5481,7 +5633,7 @@ msgstr "" #~ msgid "from subsequent NAMEs. An argument of `--' disables further option" #~ msgstr "" -#~ "gelöscht. Ein Argument `--' verhindert, daß nach diesem Zeichen weitere" +#~ "gelöscht. Ein Argument `--' verhindert, daß nach diesem Zeichen weitere" #~ msgid "processing." #~ msgstr "Optionen ausgewertet werden." @@ -5490,11 +5642,11 @@ msgstr "" #~ msgid "" #~ "The given NAMEs are marked readonly and the values of these NAMEs may" #~ msgstr "" -#~ "Die angegebenen NAMEn werden als Nur-Lesen markiert. Deren Inhalte können" +#~ "Die angegebenen NAMEn werden als Nur-Lesen markiert. Deren Inhalte können" #~ msgid "not be changed by subsequent assignment. If the -f option is given," #~ msgstr "" -#~ "nicht mehr geändert werden. Wenn die -f Option angegeben wird, dann " +#~ "nicht mehr geändert werden. Wenn die -f Option angegeben wird, dann " #~ "werden nur" #~ msgid "then functions corresponding to the NAMEs are so marked. If no" @@ -5510,15 +5662,15 @@ msgstr "" #~ msgid "" #~ "is printed. An argument of `-n' says to remove the readonly property" #~ msgstr "" -#~ "Eigenschaft für die angegebenen Namen entfernt werden. Der `-a' Schalter" +#~ "Eigenschaft für die angegebenen Namen entfernt werden. Der `-a' Schalter" #~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" #~ msgstr "" -#~ "bewirkt, daß jeder Name als Feldvariable behandelt wird. Das Argument " +#~ "bewirkt, daß jeder Name als Feldvariable behandelt wird. Das Argument " #~ "`--'" #~ msgid "an array variable. An argument of `--' disables further option" -#~ msgstr "unterdrückt das Auswerten weiterer Optionen." +#~ msgstr "unterdrückt das Auswerten weiterer Optionen." # shift #~ msgid "" @@ -5533,7 +5685,7 @@ msgstr "" # source #~ msgid "Read and execute commands from FILENAME and return. The pathnames" #~ msgstr "" -#~ "Liest und führt anschließend die Kommandos in DATEINAME aus. $PATH wird" +#~ "Liest und führt anschließend die Kommandos in DATEINAME aus. $PATH wird" #~ msgid "in $PATH are used to find the directory containing FILENAME." #~ msgstr "als Suchpfad benutzt, um DATEINAME zu finden." @@ -5541,46 +5693,46 @@ msgstr "" # suspend #~ msgid "Suspend the execution of this shell until it receives a SIGCONT" #~ msgstr "" -#~ "Hält das Ausführen der Shell solange an, bis sie das Signal SIGCONT " -#~ "empfängt." +#~ "Hält das Ausführen der Shell solange an, bis sie das Signal SIGCONT " +#~ "empfängt." #~ msgid "signal. The `-f' if specified says not to complain about this" #~ msgstr "" -#~ "Die `-f' Option unterdrückt eine Warnung, wenn es sich um eine Login Shell" +#~ "Die `-f' Option unterdrückt eine Warnung, wenn es sich um eine Login Shell" #~ msgid "being a login shell if it is; just suspend anyway." -#~ msgstr "handelt und hält auch deren Abarbeitung an." +#~ msgstr "handelt und hält auch deren Abarbeitung an." # test #~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" #~ msgstr "" -#~ "Liefert den Rückgabewert 0 (wahr) oder 1 (falsch), abhängig vom Ergebnis " +#~ "Liefert den Rückgabewert 0 (wahr) oder 1 (falsch), abhängig vom Ergebnis " #~ "des" #~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" #~ msgstr "" -#~ "Ausdruckes EXPR. Die Ausdrücke können ein- (unär) oder zweistellig " -#~ "(binär) sein." +#~ "Ausdruckes EXPR. Die Ausdrücke können ein- (unär) oder zweistellig " +#~ "(binär) sein." #~ msgid "expressions are often used to examine the status of a file. There" #~ msgstr "" -#~ "Einstellige Ausdrücke werden oft zum Ermitteln eines Dateizustandes " +#~ "Einstellige Ausdrücke werden oft zum Ermitteln eines Dateizustandes " #~ "verwendet." #~ msgid "are string operators as well, and numeric comparison operators." #~ msgstr "" -#~ "Es gibt außerden Zeichenketten- und numerische Vergleichsoperatoren." +#~ "Es gibt außerden Zeichenketten- und numerische Vergleichsoperatoren." #~ msgid "File operators:" #~ msgstr "Datei Operatoren:" #~ msgid " -b FILE True if file is block special." #~ msgstr "" -#~ " -b DATEI Wahr, wenn der Dateiname ein Blockgerät bezeichnet." +#~ " -b DATEI Wahr, wenn der Dateiname ein Blockgerät bezeichnet." #~ msgid " -c FILE True if file is character special." #~ msgstr "" -#~ " -c DATEI Wahr, wenn der Dateiname ein sequentielles Gerät " +#~ " -c DATEI Wahr, wenn der Dateiname ein sequentielles Gerät " #~ "bezeichnet." #~ msgid " -d FILE True if file is a directory." @@ -5591,7 +5743,7 @@ msgstr "" #~ msgid " -f FILE True if file exists and is a regular file." #~ msgstr "" -#~ " -f DATEI Wahr, wenn die Datei existiert und eine reguläre Datei " +#~ " -f DATEI Wahr, wenn die Datei existiert und eine reguläre Datei " #~ "ist." #~ msgid " -g FILE True if file is set-group-id." @@ -5607,7 +5759,7 @@ msgstr "" #~ msgid " -k FILE True if file has its \"sticky\" bit set." #~ msgstr "" -#~ " -k DATEI Wahr, wenn nur der Besitzer die Datei ändern darf " +#~ " -k DATEI Wahr, wenn nur der Besitzer die Datei ändern darf " #~ "(sticky)." #~ msgid " -p FILE True if file is a named pipe." @@ -5628,12 +5780,12 @@ msgstr "" #~ msgid " -t FD True if FD is opened on a terminal." #~ msgstr "" -#~ " -t FD Wahr, wenn die Dateinummer FD für ein Terminal " -#~ "geöffnet ist." +#~ " -t FD Wahr, wenn die Dateinummer FD für ein Terminal " +#~ "geöffnet ist." #~ msgid " -u FILE True if the file is set-user-id." #~ msgstr "" -#~ " -u DATEI Wahr, wenn für diese Datei das SUID Bit gesetzt ist." +#~ " -u DATEI Wahr, wenn für diese Datei das SUID Bit gesetzt ist." #~ msgid " -w FILE True if the file is writable by you." #~ msgstr "" @@ -5642,47 +5794,47 @@ msgstr "" #~ msgid " -x FILE True if the file is executable by you." #~ msgstr "" -#~ " -x DATEI Wahr, wenn die Datei vom aktuellen Benutzer ausführbar " +#~ " -x DATEI Wahr, wenn die Datei vom aktuellen Benutzer ausführbar " #~ "ist." #~ msgid " -O FILE True if the file is effectively owned by you." #~ msgstr "" -#~ " -O DATEI Wahr, wenn der aktuelle Benutzer Eigentümer der Datei " +#~ " -O DATEI Wahr, wenn der aktuelle Benutzer Eigentümer der Datei " #~ "ist." #~ msgid "" #~ " -G FILE True if the file is effectively owned by your group." #~ msgstr "" #~ " -G DATEI Wahr, wenn GID des Benutzers und der Datei " -#~ "übereinstimmen." +#~ "übereinstimmen." #~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" #~ msgstr "" -#~ " DATEI1 -nt DATEI2 Wahr, wenn der letzte Änderungszeitpunkt von DATEI1 " -#~ "jünger" +#~ " DATEI1 -nt DATEI2 Wahr, wenn der letzte Änderungszeitpunkt von DATEI1 " +#~ "jünger" #~ msgid " modification date) file2." #~ msgstr " ist als der von DATEI2." #~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." -#~ msgstr " DATEI1 -ot DATEI2 Wahr, wenn DATEI1 älter ist als DATEI2." +#~ msgstr " DATEI1 -ot DATEI2 Wahr, wenn DATEI1 älter ist als DATEI2." #~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." #~ msgstr "" -#~ " DATEI1 -ef DATEI2 Wahr, wenn beide Inodes übereinstimmen (hard link)." +#~ " DATEI1 -ef DATEI2 Wahr, wenn beide Inodes übereinstimmen (hard link)." #~ msgid "String operators:" -#~ msgstr "Operatoren für Zeichenketten (Strings):" +#~ msgstr "Operatoren für Zeichenketten (Strings):" #~ msgid " -z STRING True if string is empty." -#~ msgstr " -z STRING Wahr, wenn die Länge der Zeichenkette Null ist." +#~ msgstr " -z STRING Wahr, wenn die Länge der Zeichenkette Null ist." #~ msgid " -n STRING" #~ msgstr " -n STRING" #~ msgid " STRING True if string is not empty." #~ msgstr "" -#~ " STRING Wahr, wenn die Länge der Zeichenkette größer als Null " +#~ " STRING Wahr, wenn die Länge der Zeichenkette größer als Null " #~ "ist." #~ msgid " STRING1 = STRING2" @@ -5724,7 +5876,7 @@ msgstr "" #~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." #~ msgstr "" -#~ " EXPR1 -a EXPR2 Wahr, wenn die Ausdrücke EXPR1 und EXPR2 `wahr' " +#~ " EXPR1 -a EXPR2 Wahr, wenn die Ausdrücke EXPR1 und EXPR2 `wahr' " #~ "liefern." #~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." @@ -5741,12 +5893,12 @@ msgstr "" #~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," #~ msgstr "" -#~ "Diese binären arithmetischen Operatoren liefern Wahr, wenn ARG1 gleich," +#~ "Diese binären arithmetischen Operatoren liefern Wahr, wenn ARG1 gleich," #~ msgid "" #~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" #~ msgstr "" -#~ "ungleich, kleiner als, kleiner gleich, größer als oder größer gleich" +#~ "ungleich, kleiner als, kleiner gleich, größer als oder größer gleich" #~ msgid "than ARG2." #~ msgstr "ARG2 ist." @@ -5754,16 +5906,16 @@ msgstr "" # [ #~ msgid "This is a synonym for the \"test\" builtin, but the last" #~ msgstr "" -#~ "Dies ist ein Synonym für die Shellfunktion test. Das letzte Argument muß " +#~ "Dies ist ein Synonym für die Shellfunktion test. Das letzte Argument muß " #~ "ein" #~ msgid "argument must be a literal `]', to match the opening `['." -#~ msgstr "`]' sein, das mit dem öffnenden `[' korrespondiert." +#~ msgstr "`]' sein, das mit dem öffnenden `[' korrespondiert." # times #~ msgid "Print the accumulated user and system times for processes run from" #~ msgstr "" -#~ "Gibt die verbrauchte Benutzer- und Systemzeit für die Shell und der von" +#~ "Gibt die verbrauchte Benutzer- und Systemzeit für die Shell und der von" #~ msgid "the shell." #~ msgstr "ihr gestarteten Prozesse aus." @@ -5771,13 +5923,13 @@ msgstr "" # trap #~ msgid "The command ARG is to be read and executed when the shell receives" #~ msgstr "" -#~ "Die Shell fängt die in SIG_SPEC angegebenen Signale ab führt das Kommando " +#~ "Die Shell fängt die in SIG_SPEC angegebenen Signale ab führt das Kommando " #~ "ARG" #~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" #~ msgstr "" #~ "aus. Wenn kein ARG angegeben ist, werden alle bezeichneten Signale " -#~ "zurück-" +#~ "zurück-" #~ msgid "reset to their original values. If ARG is the null string each" #~ msgstr "" @@ -5795,21 +5947,21 @@ msgstr "" #~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" #~ msgstr "" -#~ "führt. Durch Abfangen des Signals DEBUG, wird ARG nach jedem Kommando" +#~ "führt. Durch Abfangen des Signals DEBUG, wird ARG nach jedem Kommando" #~ msgid "command. If ARG is `-p' then the trap commands associated with" #~ msgstr "" -#~ "aufgerufen. Mit `-p' werden Kommandos angezeigt, die für jedes " +#~ "aufgerufen. Mit `-p' werden Kommandos angezeigt, die für jedes " #~ "abgefangene" #~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" #~ msgstr "" -#~ "Signal ausgeführt werden. Wenn keine Argumente angegeben sind, oder wenn " +#~ "Signal ausgeführt werden. Wenn keine Argumente angegeben sind, oder wenn " #~ "das" #~ msgid "only `-p' is given, trap prints the list of commands associated with" #~ msgstr "" -#~ "Argument `-p' angegeben ist, wird eine Liste der Kommandos für jedes " +#~ "Argument `-p' angegeben ist, wird eine Liste der Kommandos für jedes " #~ "abgefan-" #~ msgid "" @@ -5835,11 +5987,11 @@ msgstr "" # type #~ msgid "For each NAME, indicate how it would be interpreted if used as a" #~ msgstr "" -#~ "Gibt aus, wie der angegebene NAME interpretiert würde, wenn er in der" +#~ "Gibt aus, wie der angegebene NAME interpretiert würde, wenn er in der" #~ msgid "If the -t option is used, returns a single word which is one of" #~ msgstr "" -#~ "Die Option -t bewirkt, daß eins der Worte: `alias', `keyword', `function'," +#~ "Die Option -t bewirkt, daß eins der Worte: `alias', `keyword', `function'," #~ msgid "" #~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" @@ -5866,12 +6018,12 @@ msgstr "" #~ msgid "If the -a flag is used, displays all of the places that contain an" #~ msgstr "" -#~ "Mit dem -a Schalter werden alle ausführbaren Dateien mit dem Namen `file'" +#~ "Mit dem -a Schalter werden alle ausführbaren Dateien mit dem Namen `file'" #~ msgid "" #~ "executable named `file'. This includes aliases and functions, if and" #~ msgstr "" -#~ "angezeigt. Dieses schließt Aliase und Funktionen ein, aber nur dann" +#~ "angezeigt. Dieses schließt Aliase und Funktionen ein, aber nur dann" #~ msgid "only if the -p flag is not also used." #~ msgstr "wenn nicht gleichzeitig der -p Schalter gesetzt ist." @@ -5891,7 +6043,7 @@ msgstr "" #~ msgid "started by the shell, on systems that allow such control. If an" #~ msgstr "" -#~ "zur Verfügung stehen, wenn das System Ressourcensteuerung unterstützt. " +#~ "zur Verfügung stehen, wenn das System Ressourcensteuerung unterstützt. " #~ "Wenn" #~ msgid "option is given, it is interpreted as follows:" @@ -5904,41 +6056,41 @@ msgstr "" #~ msgstr " -H\tNutze die `harte (hard)' Ressourceneinstellung." #~ msgid " -a\tall current limits are reported" -#~ msgstr " -a\tDie gegenwärtige Ressourceneinstellung wird ausgegeben." +#~ msgstr " -a\tDie gegenwärtige Ressourceneinstellung wird ausgegeben." #~ msgid " -c\tthe maximum size of core files created" -#~ msgstr " -c\tDie maximale Größe der erzeugten core-Dateien." +#~ msgstr " -c\tDie maximale Größe der erzeugten core-Dateien." -# für ein Prozeß oder für alle? +# für ein Prozeß oder für alle? #~ msgid " -d\tthe maximum size of a process's data segment" -#~ msgstr " -d\tDie maximale Größe des Datensegmentes eines Prozesses." +#~ msgstr " -d\tDie maximale Größe des Datensegmentes eines Prozesses." #~ msgid " -m\tthe maximum resident set size" #~ msgstr "" -#~ " -m\tMaximale Größe des nicht auszulagenden (residenten) " -#~ "Prozeßspeichers." +#~ " -m\tMaximale Größe des nicht auszulagenden (residenten) " +#~ "Prozeßspeichers." #~ msgid " -s\tthe maximum stack size" -#~ msgstr " -s\tDie maximale Größe des Stapelspeichers." +#~ msgstr " -s\tDie maximale Größe des Stapelspeichers." #~ msgid " -t\tthe maximum amount of cpu time in seconds" -#~ msgstr " -t\tDie maximal verfügbare CPU-Zeit (in Sekunden)." +#~ msgstr " -t\tDie maximal verfügbare CPU-Zeit (in Sekunden)." #~ msgid " -f\tthe maximum size of files created by the shell" #~ msgstr "" -#~ " -f\tDie maximal erlaubte Größe für von der Shell erzeugte Dateien." +#~ " -f\tDie maximal erlaubte Größe für von der Shell erzeugte Dateien." #~ msgid " -p\tthe pipe buffer size" -#~ msgstr " -p\tDie Größe des Pipeline-Puffers." +#~ msgstr " -p\tDie Größe des Pipeline-Puffers." #~ msgid " -n\tthe maximum number of open file descriptors" -#~ msgstr " -n\tDie maximale Anzahl gleichzeitig geöffneter Dateien." +#~ msgstr " -n\tDie maximale Anzahl gleichzeitig geöffneter Dateien." #~ msgid " -u\tthe maximum number of user processes" #~ msgstr " -u\tDie maximale Anzahl von Prozessen des Benutzers." #~ msgid " -v\tthe size of virtual memory" -#~ msgstr " -v\tDie Größe des virtuellen Arbeitsspeichers." +#~ msgstr " -v\tDie Größe des virtuellen Arbeitsspeichers." #~ msgid "If LIMIT is given, it is the new value of the specified resource." #~ msgstr "" @@ -5946,19 +6098,19 @@ msgstr "" #~ msgid "Otherwise, the current value of the specified resource is printed." #~ msgstr "" -#~ "Sonst wird der gegenwärtig eingestellte Wert ausgegeben. Wenn keine " +#~ "Sonst wird der gegenwärtig eingestellte Wert ausgegeben. Wenn keine " #~ "Option" #~ msgid "If no option is given, then -f is assumed. Values are in 1k" #~ msgstr "" -#~ "angegeben ist wird -f verwendet. Die Einheit ist 1k außer für -t, deren" +#~ "angegeben ist wird -f verwendet. Die Einheit ist 1k außer für -t, deren" #~ msgid "increments, except for -t, which is in seconds, -p, which is in" #~ msgstr "" #~ "Wert in Sekunden angegeben wird, -p, dessen Einheit 512 bytes ist und -u," #~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" -#~ msgstr "für das die Anzahl der Prozesse verwendet" +#~ msgstr "für das die Anzahl der Prozesse verwendet" #~ msgid "processes." #~ msgstr "wird." @@ -5977,7 +6129,7 @@ msgstr "" #~ msgid "" #~ "option makes the output symbolic; otherwise an octal number is output." #~ msgstr "" -#~ "Die `-S' Option bewirkt, daß die symbolische Entsprechung ausgegeben " +#~ "Die `-S' Option bewirkt, daß die symbolische Entsprechung ausgegeben " #~ "wird. " #~ msgid "If MODE begins with a digit, it is interpreted as an octal number," @@ -5995,18 +6147,18 @@ msgstr "" #~ "Wait for the specified process and report its termination status. If" #~ msgstr "" #~ "Wartet auf das Beenden der angegebenen Prozesse und gibt deren " -#~ "Rückgabewert" +#~ "Rückgabewert" #~ msgid "N is not given, all currently active child processes are waited for," #~ msgstr "aus. Wenn keine Prozesse angegeben sind, wird auf alle aktiven" #~ msgid "and the return code is zero. N may be a process ID or a job" #~ msgstr "" -#~ "Hintergrundprozesse gewartet und Null zurückgegeben. An wait können" +#~ "Hintergrundprozesse gewartet und Null zurückgegeben. An wait können" #~ msgid "specification; if a job spec is given, all processes in the job's" #~ msgstr "" -#~ "Prozeßnummern und Jobbezeichnungen übergeben werden. Wenn " +#~ "Prozeßnummern und Jobbezeichnungen übergeben werden. Wenn " #~ "Jobbezeichnungen" #~ msgid "pipeline are waited for." @@ -6015,7 +6167,7 @@ msgstr "" #~ "und" #~ msgid "and the return code is zero. N is a process ID; if it is not given," -#~ msgstr "Null zurückgegeben." +#~ msgstr "Null zurückgegeben." #~ msgid "all child processes of the shell are waited for." #~ msgstr " " @@ -6023,7 +6175,7 @@ msgstr "" # for #~ msgid "The `for' loop executes a sequence of commands for each member in a" #~ msgstr "" -#~ "`for' führt eine Reihe von Kommandos für jeden Eintrag einer Liste aus." +#~ "`for' führt eine Reihe von Kommandos für jeden Eintrag einer Liste aus." #~ msgid "" #~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" @@ -6034,7 +6186,7 @@ msgstr "" #~ msgstr "NAME wird nacheinander ein Element aus WORTLISTE zugewiesen" #~ msgid "the COMMANDS are executed." -#~ msgstr "und die KOMMANDOS ausgeführt." +#~ msgstr "und die KOMMANDOS ausgeführt." # select #~ msgid "The WORDS are expanded, generating a list of words. The" @@ -6055,7 +6207,7 @@ msgstr "" #~ msgid "from the standard input. If the line consists of the number" #~ msgstr "" -#~ "Wenn die gelesene Zeile eine Zeilennummer der angezeigten Liste enhält, " +#~ "Wenn die gelesene Zeile eine Zeilennummer der angezeigten Liste enhält, " #~ "dann" #~ msgid "corresponding to one of the displayed words, then NAME is set" @@ -6073,7 +6225,7 @@ msgstr "" #~ msgid "value read causes NAME to be set to null. The line read is saved" #~ msgstr "" -#~ "Zeichenkette bewirkt, daß NAME auf Null gesetzt wird. Die gelesene Zeile " +#~ "Zeichenkette bewirkt, daß NAME auf Null gesetzt wird. Die gelesene Zeile " #~ "wird" #~ msgid "in the variable REPLY. COMMANDS are executed after each selection" @@ -6086,7 +6238,7 @@ msgstr "" # case #~ msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" -#~ msgstr "Führt KOMMANDOS abhängig von einem WORT aus, das MUSTER entspricht." +#~ msgstr "Führt KOMMANDOS abhängig von einem WORT aus, das MUSTER entspricht." #~ msgid "`|' is used to separate multiple patterns." #~ msgstr "Das Zeichen `|' trennt mehrere Muster." @@ -6095,28 +6247,28 @@ msgstr "" #~ msgid "" #~ "The if COMMANDS are executed. If the exit status is zero, then the then" #~ msgstr "" -#~ "Die KOMMANDOS werden ausgewertet. Ist der Rückgabewert Null, dann werden " +#~ "Die KOMMANDOS werden ausgewertet. Ist der Rückgabewert Null, dann werden " #~ "die" #~ msgid "" #~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" #~ msgstr "" -#~ "then KOMMANDOS ausgeführt. Ansonsten werden die elif KOMMANDOS der Reihe " +#~ "then KOMMANDOS ausgeführt. Ansonsten werden die elif KOMMANDOS der Reihe " #~ "nach" #~ msgid "" #~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" #~ msgstr "" -#~ "ausgewertet und bei einem Rückgabewert Null die dazugehörigen KOMMANDOS" +#~ "ausgewertet und bei einem Rückgabewert Null die dazugehörigen KOMMANDOS" #~ msgid "" #~ "are executed and the if command completes. Otherwise, the else COMMANDS" -#~ msgstr "ausgeführt und if beendet. Sonst wird, wenn ein else Kommandozweig" +#~ msgstr "ausgeführt und if beendet. Sonst wird, wenn ein else Kommandozweig" #~ msgid "" #~ "are executed, if present. The exit status is the exit status of the last" #~ msgstr "" -#~ "existiert, dieser ausgeführt. Der Exitstatus ist der des letzten Kommandos" +#~ "existiert, dieser ausgeführt. Der Exitstatus ist der des letzten Kommandos" #~ msgid "command executed, or zero if no condition tested true." #~ msgstr "oder Null, wenn keine Bedingung wahr ergab." @@ -6124,30 +6276,30 @@ msgstr "" # while #~ msgid "Expand and execute COMMANDS as long as the final command in the" #~ msgstr "" -#~ "Wiederholt den Schleifenkörper `do KOMMANDOS done' so lange die letzte" +#~ "Wiederholt den Schleifenkörper `do KOMMANDOS done' so lange die letzte" #~ msgid "`while' COMMANDS has an exit status of zero." -#~ msgstr "Kommando `while KOMMANDOS' einen Rückkehrstatus Null liefert." +#~ msgstr "Kommando `while KOMMANDOS' einen Rückkehrstatus Null liefert." # until #~ msgid "`until' COMMANDS has an exit status which is not zero." #~ msgstr "" -#~ "Kommando in `until KOMMANDOS' einen Rückkehrstatus ungleich Null liefert." +#~ "Kommando in `until KOMMANDOS' einen Rückkehrstatus ungleich Null liefert." # function #~ msgid "Create a simple command invoked by NAME which runs COMMANDS." -#~ msgstr "Erzeugt eine neue Shellfunktion NAME, die KOMMANDOS ausführt. " +#~ msgstr "Erzeugt eine neue Shellfunktion NAME, die KOMMANDOS ausführt. " #~ msgid "Arguments on the command line along with NAME are passed to the" #~ msgstr "NAME und Kommandozeilenagumente werden an die Funktion als $0 .. $n" #~ msgid "function as $0 .. $n." -#~ msgstr "übergeben." +#~ msgstr "übergeben." # grouping_braces #~ msgid "Run a set of commands in a group. This is one way to redirect an" #~ msgstr "" -#~ "Führt Kommandos in einer Gruppe aus. Das ist eine Möglichkeit die " +#~ "Führt Kommandos in einer Gruppe aus. Das ist eine Möglichkeit die " #~ "Ausgabe von" #~ msgid "entire set of commands." @@ -6156,7 +6308,7 @@ msgstr "" # fg_percent #~ msgid "This is similar to the `fg' command. Resume a stopped or background" #~ msgstr "" -#~ "Ist ähnlich dem `fg' Kommando. Nimmt einen angehaltenen oder hintergrund " +#~ "Ist ähnlich dem `fg' Kommando. Nimmt einen angehaltenen oder hintergrund " #~ "Job" #~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" @@ -6190,7 +6342,7 @@ msgstr "" #~ msgid "" #~ "HISTFILE The name of the file where your command history is stored." -#~ msgstr "HISTFILE Datei, die den Kommandozeilenspeicher enthält. " +#~ msgstr "HISTFILE Datei, die den Kommandozeilenspeicher enthält. " #~ msgid "HISTFILESIZE The maximum number of lines this file can contain." #~ msgstr "" @@ -6201,7 +6353,7 @@ msgstr "" #~ "HISTSIZE Maximale Anzahl von Zeilen, auf die der Historymechanismus" #~ msgid "\t\tshell can access." -#~ msgstr "\t\tder Shell zurückgreifen kann." +#~ msgstr "\t\tder Shell zurückgreifen kann." #~ msgid "HOME The complete pathname to your login directory." #~ msgstr "HOME Heimatverzeichnis des aktuellen Benutzers." @@ -6209,7 +6361,7 @@ msgstr "" #~ msgid "" #~ "HOSTTYPE The type of CPU this version of Bash is running under." #~ msgstr "" -#~ "HOSTTYPE CPU-Typ des Rechners, auf dem die Bash gegenwärtig läuft." +#~ "HOSTTYPE CPU-Typ des Rechners, auf dem die Bash gegenwärtig läuft." #~ msgid "" #~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" @@ -6217,7 +6369,7 @@ msgstr "" #~ "IGNOREEOF Legt die Reaktion der Shell auf ein EOF-Zeichen fest." #~ msgid "\t\tcharacter as the sole input. If set, then the value" -#~ msgstr "\t\tWenn die Variable eine ganze Zahl enthält, wird diese Anzahl" +#~ msgstr "\t\tWenn die Variable eine ganze Zahl enthält, wird diese Anzahl" #~ msgid "\t\tof it is the number of EOF characters that can be seen" #~ msgstr "\t\tEOF Zeichen (Ctrl-D) abgewartet, bis die Shell verlassen wird." @@ -6241,7 +6393,7 @@ msgstr "" #~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." #~ msgstr "" -#~ "OSTYPE\t\tBetriebssystemversion, auf der die Bash gegenwärtig läuft." +#~ "OSTYPE\t\tBetriebssystemversion, auf der die Bash gegenwärtig läuft." #~ msgid "PATH A colon-separated list of directories to search when" #~ msgstr "PATH\t\tDurch Doppelpunkt getrennte Liste von Verzeichnissen, die " @@ -6251,49 +6403,49 @@ msgstr "" #~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" #~ msgstr "" -#~ "PROMPT_COMMAND Kommando, das vor der Anzeige einer primären " +#~ "PROMPT_COMMAND Kommando, das vor der Anzeige einer primären " #~ "Eingabeaufforderung" #~ msgid "\t\tprimary prompt." -#~ msgstr "\t\t(PS1) ausgeführt wird." +#~ msgstr "\t\t(PS1) ausgeführt wird." #~ msgid "PS1 The primary prompt string." #~ msgstr "" -#~ "PS1 Zeichenkette, die die primäre Eingabeaufforderung enthält." +#~ "PS1 Zeichenkette, die die primäre Eingabeaufforderung enthält." #~ msgid "PS2 The secondary prompt string." #~ msgstr "" -#~ "PS2 Zeichenkette, die die sekundäre Eingabeaufforderung " -#~ "enthält." +#~ "PS2 Zeichenkette, die die sekundäre Eingabeaufforderung " +#~ "enthält." #~ msgid "TERM The name of the current terminal type." #~ msgstr "TERM Name des aktuellen Terminaltyps." #~ msgid "auto_resume Non-null means a command word appearing on a line by" #~ msgstr "" -#~ "auto_resume Ein Wert ungleich Null bewirkt, daß ein einzelnes " +#~ "auto_resume Ein Wert ungleich Null bewirkt, daß ein einzelnes " #~ "Kommando auf" #~ msgid "\t\titself is first looked for in the list of currently" -#~ msgstr "\t\teiner Zeile zunächst in der Liste gegenwärtig gestoppter Jobs" +#~ msgstr "\t\teiner Zeile zunächst in der Liste gegenwärtig gestoppter Jobs" #~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." #~ msgstr "\t\tgesucht und dieser in den Vordergrund geholt wird. `exact'" #~ msgid "\t\tA value of `exact' means that the command word must" -#~ msgstr "\t\tbewirkt, daß das Kommando genau dem Kommando in der" +#~ msgstr "\t\tbewirkt, daß das Kommando genau dem Kommando in der" #~ msgid "\t\texactly match a command in the list of stopped jobs. A" -#~ msgstr "\t\tListe der gestoppten Jobs entsprechen muß. Wenn die Variable" +#~ msgstr "\t\tListe der gestoppten Jobs entsprechen muß. Wenn die Variable" #~ msgid "\t\tvalue of `substring' means that the command word must" -#~ msgstr "\t\tden Wert `substring' enthält, muß das Kommando einem Substring" +#~ msgstr "\t\tden Wert `substring' enthält, muß das Kommando einem Substring" #~ msgid "\t\tmatch a substring of the job. Any other value means that" -#~ msgstr "\t\tder Jobbezeichnung entsprechen. Bei einem anderen Wert müssen" +#~ msgstr "\t\tder Jobbezeichnung entsprechen. Bei einem anderen Wert müssen" #~ msgid "\t\tthe command must be a prefix of a stopped job." -#~ msgstr "\t\tdie ersten Zeichen übereinstimmen." +#~ msgstr "\t\tdie ersten Zeichen übereinstimmen." #~ msgid "command_oriented_history" #~ msgstr "command_oriented_history" @@ -6354,7 +6506,7 @@ msgstr "" # "Arbeit" impliziert .m.E. "aktuell" # ck #~ msgid "the stack, making the new top of the stack the current working" -#~ msgstr "daß das Arbeitsverzeichnis auf der Spitze des Stapels liegt. Ohne" +#~ msgstr "daß das Arbeitsverzeichnis auf der Spitze des Stapels liegt. Ohne" #~ msgid "directory. With no arguments, exchanges the top two directories." #~ msgstr "" @@ -6363,23 +6515,23 @@ msgstr "" #~ msgid "+N\tRotates the stack so that the Nth directory (counting" #~ msgstr "" -#~ "+N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs'," +#~ "+N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs'," #~ msgid "\tfrom the left of the list shown by `dirs') is at the top." -#~ msgstr "gezählt von links) sich an der Spitze des Stapels befindet." +#~ msgstr "gezählt von links) sich an der Spitze des Stapels befindet." #~ msgid "-N\tRotates the stack so that the Nth directory (counting" #~ msgstr "" -#~ "-N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs'," +#~ "-N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs'," #~ msgid "\tfrom the right) is at the top." -#~ msgstr "gezählt von rechts) sich an der Spitze des Stapels befindet." +#~ msgstr "gezählt von rechts) sich an der Spitze des Stapels befindet." #~ msgid "-n\tsuppress the normal change of directory when adding directories" -#~ msgstr "-n\tunterdrückt das Wechseln in das Verzeichnis beim Hinzufügen zum" +#~ msgstr "-n\tunterdrückt das Wechseln in das Verzeichnis beim Hinzufügen zum" #~ msgid "\tto the stack, so only the stack is manipulated." -#~ msgstr "\tStapel, so daß nur der Stapel verändert wird." +#~ msgstr "\tStapel, so daß nur der Stapel verändert wird." #~ msgid "dir\tadds DIR to the directory stack at the top, making it the" #~ msgstr "DIR\tLegt DIR auf die Spitze des Verzeichnisstapels und wechselt" @@ -6391,7 +6543,7 @@ msgstr "" # pushd #~ msgid "Removes entries from the directory stack. With no arguments," #~ msgstr "" -#~ "Entfernt Einträge vom Verzeichnisstapel. Ohne Argumente wird die Spitze " +#~ "Entfernt Einträge vom Verzeichnisstapel. Ohne Argumente wird die Spitze " #~ "des" #~ msgid "removes the top directory from the stack, and cd's to the new" @@ -6399,7 +6551,7 @@ msgstr "" #~ msgid "+N\tremoves the Nth entry counting from the left of the list" #~ msgstr "" -#~ "+N\tEntfernt den N'ten Eintrag vom Stapel, gezählt von Null von der " +#~ "+N\tEntfernt den N'ten Eintrag vom Stapel, gezählt von Null von der " #~ "Liste," #~ msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" @@ -6424,104 +6576,4 @@ msgstr "" #~ "-n\tVerhindert das Wechseln des Arbeitsverzeichnisses wenn Verzeichnisse" #~ msgid "\tfrom the stack, so only the stack is manipulated." -#~ msgstr "\tvom Stapel entfernt werden, so daß nur der Stapel verändert wird." - -# dirs -#~ msgid "Display the list of currently remembered directories. Directories" -#~ msgstr "" -#~ "Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an. " -#~ "Gespeichert" - -#~ msgid "find their way onto the list with the `pushd' command; you can get" -#~ msgstr "" -#~ "werden die Verzeichnisse durch das `popd' Kommando und können durch das " -#~ "`pushd'" - -#~ msgid "back up through the list with the `popd' command." -#~ msgstr "Kommando wieder vom Stapel entfernt werden." - -#~ msgid "" -#~ "The -l flag specifies that `dirs' should not print shorthand versions" -#~ msgstr "" -#~ "Wenn die -l Option angegeben ist, dann werden keine Kurzversionen der " -#~ "Verzeich-" - -#~ msgid "" -#~ "of directories which are relative to your home directory. This means" -#~ msgstr "" -#~ "nisse angezeigt, die relativ zum Heimatverzeichnis sind. Es wird also an" - -#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -#~ msgstr "" -#~ "Stelle von `~/bin' der absolute Pfad `/home/foo/bin' angezeigt. Mit der -" -#~ "v" - -#~ msgid "causes `dirs' to print the directory stack with one entry per line," -#~ msgstr "" -#~ "Option wird von `dirs' ein Eintrag pro Zeile ausgegeben. Die Position im" - -#~ msgid "" -#~ "prepending the directory name with its position in the stack. The -p" -#~ msgstr "" -#~ "Stapel wird vorangestellt. Die -p Option wirkt ähnlich, es wird " -#~ "allerdings" - -#~ msgid "flag does the same thing, but the stack position is not prepended." -#~ msgstr "" -#~ "nicht die Position im Stapel angezeigt. Wenn -c angegeben ist, damm " -#~ "werden" - -#~ msgid "" -#~ "The -c flag clears the directory stack by deleting all of the elements." -#~ msgstr "alle Einträge vom Verzeichnisstapel gelöscht." - -#~ msgid "" -#~ "+N\tdisplays the Nth entry counting from the left of the list shown by" -#~ msgstr "" -#~ "+N\tZeigt den N'ten Eintrag, gezählt von links begginnend bei Null, aus" - -#~ msgid "\tdirs when invoked without options, starting with zero." -#~ msgstr "\tder Liste, die von `dirs' ohne Optionen angezeigt wird." - -#~ msgid "" -#~ "-N\tdisplays the Nth entry counting from the right of the list shown by" -#~ msgstr "" -#~ "-N\tZeigt den N'ten Eintrag, gezählt von rechts begginnend bei Null, aus" - -# shopt_builtin -#~ msgid "Toggle the values of variables controlling optional behavior." -#~ msgstr "" -#~ "Ändert die Werte von Variablen die zusätzliche Eigenschaften der Shell " -#~ "steuern." - -#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" -#~ msgstr "" -#~ "Mit der -s Option wird jeder OPTIONSMAME gesetzt. Die -u Option setzt " -#~ "jeden" - -#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" -#~ msgstr "" -#~ "OPTIONSNAMEN zurück. Die -q Option unterdrückt Ausgaben. Der " -#~ "Rückgabewert" - -#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" -#~ msgstr "" -#~ "des Kommandos gibt an ob der OPTIONSNAME ein- oder ausgeschalten wurde. " -#~ "Die" - -#~ msgid "option restricts the OPTNAMEs to those defined for use with" -#~ msgstr "" -#~ "Option beschränkt die OPTIONSNAMEN auf jene die mit `set -o' benutzt " -#~ "werden" - -#~ msgid "`set -o'. With no options, or with the -p option, a list of all" -#~ msgstr "" -#~ "können. Ohne oder mit der -p Option wird eine Liste aller `settable' " -#~ "Optionen" - -#~ msgid "settable options is displayed, with an indication of whether or" -#~ msgstr "" -#~ "mit einer Markierung ob die angegebene Option gesetzt oder nicht gesetzt" - -#~ msgid "not each is set." -#~ msgstr "ist angezeigt." +#~ msgstr "\tvom Stapel entfernt werden, so daß nur der Stapel verändert wird." diff --git a/po/en@boldquot.gmo b/po/en@boldquot.gmo index e4dc9596b1c1b24577202e66929b954c44d12ca5..418ce9b8ed8b48ed28e2d5eab33c8a54258f3264 100644 GIT binary patch delta 15068 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 jqT!DbiqM`PxECs8Q3R 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 diff --git a/po/en@boldquot.po b/po/en@boldquot.po index 1bbd427..c5b1461 100644 --- a/po/en@boldquot.po +++ b/po/en@boldquot.po @@ -30,10 +30,10 @@ # msgid "" msgstr "" -"Project-Id-Version: GNU bash 4.0-release\n" +"Project-Id-Version: GNU bash 4.1-release\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2009-02-19 14:53-0500\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-12-30 08:25-0500\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "MIME-Version: 1.0\n" @@ -45,50 +45,55 @@ msgstr "" msgid "bad array subscript" msgstr "bad array subscript" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: cannot convert indexed to associative array" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: invalid associative array key" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: cannot assign to non-numeric index" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "%s: %s: must use subscript when assigning associative array" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: cannot create: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: cannot find keymap for command" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: first non-whitespace character is not ‘\"’" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "no closing ‘%c’ in %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: missing colon separator" +#: builtins/alias.def:132 +#, c-format +msgid "`%s': invalid alias name" +msgstr "‘%s’: invalid alias name" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "line editing not enabled" @@ -141,6 +146,28 @@ msgstr "" " \n" " Without EXPR, returns " +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" +". With EXPR, returns\n" +" " + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." + #: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME not set" @@ -154,7 +181,7 @@ msgstr "OLDPWD not set" msgid "line %d: " msgstr "line %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "warning: " @@ -164,11 +191,11 @@ msgstr "warning: " msgid "%s: usage: " msgstr "%s: usage: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "too many arguments" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: option requires an argument" @@ -183,7 +210,7 @@ msgstr "%s: numeric argument required" msgid "%s: not found" msgstr "%s: not found" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: invalid option" @@ -206,7 +233,7 @@ msgstr "invalid octal number" msgid "invalid hex number" msgstr "invalid hex number" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "invalid number" @@ -220,7 +247,7 @@ msgstr "%s: invalid signal specification" msgid "`%s': not a pid or valid job spec" msgstr "‘%s’: not a pid or valid job spec" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: readonly variable" @@ -292,26 +319,26 @@ msgstr "%s: error retrieving current directory: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: ambiguous job spec" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: invalid action name" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: no completion specification" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "warning: -F option may not work as you expect" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "warning: -C option may not work as you expect" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "not currently executing completion function" @@ -319,21 +346,21 @@ msgstr "not currently executing completion function" msgid "can only be used in a function" msgstr "can only be used in a function" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "cannot use ‘-f’ to make functions" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: readonly function" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: cannot destroy array variables in this way" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: cannot convert associative to indexed array" @@ -362,8 +389,8 @@ msgstr "%s: not dynamically loaded" msgid "%s: cannot delete: %s" msgstr "%s: cannot delete: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: is a directory" @@ -378,7 +405,8 @@ msgstr "%s: not a regular file" msgid "%s: file is too large" msgstr "%s: file is too large" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: cannot execute binary file" @@ -407,15 +435,15 @@ msgstr "There are stopped jobs.\n" msgid "There are running jobs.\n" msgstr "There are running jobs.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "no command found" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "history specification" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: cannot open temp file: %s" @@ -516,12 +544,12 @@ msgstr "%s: inlib failed" msgid "no other options allowed with `-x'" msgstr "no other options allowed with ‘-x’" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: arguments must be process or job IDs" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Unknown error" @@ -529,55 +557,60 @@ msgstr "Unknown error" msgid "expression expected" msgstr "expression expected" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, c-format +msgid "%s: not an indexed array" +msgstr "%s: not an indexed array" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: invalid file descriptor specification" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: invalid file descriptor: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: invalid line count" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: invalid array origin" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: invalid callback quantum" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "empty array variable name" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "array variable support required" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "‘%s’: missing format character" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "‘%c’: invalid format character" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "warning: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "missing hex digit for \\x" @@ -728,12 +761,12 @@ msgstr "" " \n" " The ‘dirs’ builtin displays the directory stack." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: invalid timeout specification" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "read error: %d: %s" @@ -770,11 +803,11 @@ msgstr "%s: not a function" msgid "shift count" msgstr "shift count" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "cannot set and unset shell options simultaneously" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: invalid shell option name" @@ -864,76 +897,76 @@ msgstr "‘%c’: invalid symbolic mode operator" msgid "`%c': invalid symbolic mode character" msgstr "‘%c’: invalid symbolic mode character" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " line " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "last command: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Aborting..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "unknown command error" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "bad command type" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "bad connector" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "bad jump" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: unbound variable" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "timed out waiting for input: auto-logout\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "cannot redirect standard input from /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: ‘%c’: invalid format character" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "pipe error" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restricted: cannot specify ‘/’ in command names" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: command not found" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: bad interpreter" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "cannot duplicate fd %d to fd %d" @@ -978,28 +1011,28 @@ msgstr "identifier expected after pre-increment or pre-decrement" msgid "missing `)'" msgstr "missing ‘)’" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "syntax error: operand expected" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "syntax error: invalid arithmetic operator" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (error token is “%s”)" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "invalid arithmetic base" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "value too great for base" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: expression error\n" @@ -1008,7 +1041,7 @@ msgstr "%s: expression error\n" msgid "getcwd: cannot access parent directories" msgstr "getcwd: cannot access parent directories" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "cannot reset nodelay mode for fd %d" @@ -1061,7 +1094,7 @@ msgstr "Signal %d" msgid "Done" msgstr "Done" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Stopped" @@ -1098,69 +1131,73 @@ msgstr "(core dumped) " msgid " (wd: %s)" msgstr " (wd: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "child setpgid (%ld to %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld is not a child of this shell" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: No record of process %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: job %d is stopped" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: job has terminated" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: job %d already in background" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "waitchld: turning on WNOHANG to avoid indefinite block" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: line %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (core dumped)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd now: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: getpgrp failed" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: line discipline" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "cannot set terminal process group (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "no job control in this shell" @@ -1252,6 +1289,26 @@ msgstr "%s: bad network path specification" msgid "network operations not supported" msgstr "network operations not supported" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "setlocale: LC_ALL: cannot change locale (%s)" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "setlocale: LC_ALL: cannot change locale (%s): %s" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "setlocale: %s: cannot change locale (%s)" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "setlocale: %s: cannot change locale (%s): %s" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "You have mail in $_" @@ -1265,131 +1322,131 @@ msgstr "You have new mail in $_" msgid "The mail in %s has been read\n" msgstr "The mail in %s has been read\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "syntax error: arithmetic expression required" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "syntax error: ‘;’ unexpected" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "syntax error: ‘((%s))’" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: bad instruction type %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "here-document at line %d delimited by end-of-file (wanted ‘%s’)" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: redirection instruction ‘%d’ out of range" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "unexpected EOF while looking for matching ‘%c’" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "unexpected EOF while looking for ‘]]’" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error in conditional expression: unexpected token ‘%s’" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "syntax error in conditional expression" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "unexpected token ‘%s’, expected ‘)’" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "expected ‘)’" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "unexpected argument ‘%s’ to conditional unary operator" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "unexpected argument to conditional unary operator" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "unexpected token ‘%s’, conditional binary operator expected" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "conditional binary operator expected" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "unexpected argument ‘%s’ to conditional binary operator" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "unexpected argument to conditional binary operator" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "unexpected token ‘%c’ in conditional command" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "unexpected token ‘%s’ in conditional command" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "unexpected token %d in conditional command" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntax error near unexpected token ‘%s’" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "syntax error near ‘%s’" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "syntax error: unexpected end of file" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "syntax error" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use “%s” to leave the shell.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "unexpected EOF while looking for matching ‘)’" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion: function ‘%s’ not found" @@ -1399,71 +1456,90 @@ msgstr "completion: function ‘%s’ not found" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: bad connector ‘%d’" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "xtrace_set: %d: invalid file descriptor" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "xtrace_set: NULL file pointer" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "xtrace fd (%d) != fileno xtrace fp (%d)" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: ‘%c’: invalid format character" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "file descriptor out of range" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: ambiguous redirect" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: cannot overwrite existing file" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restricted: cannot redirect output" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "cannot create temp file for here-document: %s" -#: redir.c:517 +#: redir.c:184 +#, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: cannot assign fd to variable" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port not supported without networking" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "redirection error: cannot duplicate fd" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "could not find /tmp, please create!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp must be a valid directory name" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: invalid option" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "I have no name!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, version %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1472,383 +1548,406 @@ msgstr "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU long options:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Shell options:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s or -o option\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Type ‘%s -c “help set”’ for more information about shell " "options.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Type ‘%s -c help’ for more information about shell builtin commands.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Use the ‘bashbug’ command to report bugs.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: invalid operation" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Bogus signal" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Hangup" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Interrupt" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Quit" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Illegal instruction" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT trace/trap" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "ABORT instruction" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "EMT instruction" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Floating point exception" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Killed" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Bus error" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Segmentation fault" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Bad system call" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Broken pipe" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Alarm clock" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Terminated" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Urgent IO condition" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Stopped (signal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Continue" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Child death or stop" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Stopped (tty input)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Stopped (tty output)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O ready" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "CPU limit" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "File limit" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarm (virtual)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarm (profile)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Window changed" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Record lock" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "User signal 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "User signal 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT input data pending" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "power failure imminent" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "system crash imminent" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "migrate process to another CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "programming error" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HFT monitor mode granted" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT monitor mode retracted" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFT sound sequence has completed" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "Information request" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Unknown Signal #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Unknown Signal #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "bad substitution: no closing ‘%s’ in %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: cannot assign list to array member" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "cannot make pipe for process substitution" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "cannot make child for process substitution" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "cannot open named pipe %s for reading" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "cannot open named pipe %s for writing" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "cannot duplicate named pipe %s as fd %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "cannot make pipe for command substitution" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "cannot make child for command substitution" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: cannot duplicate pipe as fd 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter null or not set" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: substring expression < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: bad substitution" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: cannot assign in this way" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "bad substitution: no closing “`” in %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "no match: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "argument expected" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: integer expression expected" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "‘)’ expected" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "‘)’ expected, found %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: unary operator expected" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: binary operator expected" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "missing ‘]’" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "invalid signal number" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: bad value in trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: bad signal %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "error importing function definition for ‘%s’" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shell level (%d) too high, resetting to 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no function context at current scope" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no function context at current scope" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, c-format +msgid "%s has null exportstr" +msgstr "%s has null exportstr" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "invalid character %d in exportstr for %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "no ‘=’ in exportstr for %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: head of shell_variables not a function context" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no global_variables context" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "pop_scope: head of shell_variables not a temporary environment scope" +#: variables.c:4678 +#, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: %s: cannot open as FILE" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%s: %s: invalid value for trace file descriptor" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "Copyright (C) 2009 Free Software Foundation, Inc." @@ -1861,60 +1960,54 @@ msgstr "" "License GPLv3+: GNU GPL version 3 or later \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, version %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "This is free software; you are free to change and redistribute it.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "There is NO WARRANTY, to the extent permitted by law.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" - -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: cannot allocate %lu bytes" - -#: xmalloc.c:114 +#: version2.c:86 #, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n" -#: xmalloc.c:116 +#: version2.c:87 #, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" +"License GPLv2+: GNU GPL version 2 or later \n" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "%s: cannot allocate %lu bytes (%lu bytes allocated)" -#: xmalloc.c:152 +#: xmalloc.c:93 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "xmalloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: cannot allocate %lu bytes" +msgstr "%s: cannot allocate %lu bytes" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" -#: xmalloc.c:176 +#: xmalloc.c:165 #, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "%s: %s:%d: cannot allocate %lu bytes" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -2033,8 +2126,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p pathname] [-dt] [name ...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" -msgstr "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" +msgstr "help [-dms] [pattern ...]" #: builtins.c:121 msgid "" @@ -2066,11 +2159,11 @@ msgstr "let arg [arg ...]" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" #: builtins.c:138 msgid "return [n]" @@ -2230,13 +2323,13 @@ msgstr "printf [-v var] format [arguments]" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" #: builtins.c:233 msgid "" @@ -2247,8 +2340,8 @@ msgstr "" "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" -msgstr "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" +msgstr "compopt [-o|+o option] [-DE] [name ...]" #: builtins.c:240 msgid "" @@ -3527,7 +3620,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3568,7 +3665,11 @@ msgstr "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3587,7 +3688,7 @@ msgstr "" "out,\n" " or an invalid file descriptor is supplied as the argument to -u." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3607,7 +3708,7 @@ msgstr "" " Exit Status:\n" " Returns N, or failure if the shell is not executing a function or script." -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3767,7 +3868,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is given." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3803,7 +3904,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is given or a NAME is read-only." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3837,7 +3938,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is given or NAME is invalid." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3873,7 +3974,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is given or NAME is invalid." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3891,7 +3992,7 @@ msgstr "" " Exit Status:\n" " Returns success unless N is negative or greater than $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3915,7 +4016,7 @@ msgstr "" " Returns the status of the last command executed in FILENAME; fails if\n" " FILENAME cannot be read." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3939,7 +4040,7 @@ msgstr "" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4089,7 +4190,7 @@ msgstr "" " Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" " false or an invalid argument is given." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4102,7 +4203,7 @@ msgstr "" "must\n" " be a literal ‘]’, to match the opening ‘[’." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4122,7 +4223,7 @@ msgstr "" " Exit Status:\n" " Always succeeds." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4191,7 +4292,7 @@ msgstr "" " Returns success unless a SIGSPEC is invalid or an invalid option is " "given." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4249,7 +4350,7 @@ msgstr "" " Returns success if all of the NAMEs are found; fails if any are not " "found." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4334,7 +4435,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4366,7 +4467,7 @@ msgstr "" " Exit Status:\n" " Returns success unless MODE is invalid or an invalid option is given." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4396,7 +4497,7 @@ msgstr "" "is\n" " given." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4420,7 +4521,7 @@ msgstr "" "is\n" " given." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4444,7 +4545,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4474,7 +4575,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4511,7 +4612,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4539,7 +4640,7 @@ msgstr "" " Exit Status:\n" " The return status is the return status of PIPELINE." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4557,7 +4658,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4595,7 +4696,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4613,7 +4714,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4631,7 +4732,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4653,7 +4754,7 @@ msgstr "" " Exit Status:\n" " Returns the exit status of COMMAND." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4677,7 +4778,7 @@ msgstr "" " Exit Status:\n" " Returns success unless NAME is readonly." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4695,7 +4796,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the last command executed." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4720,7 +4821,7 @@ msgstr "" " Exit Status:\n" " Returns the status of the resumed job." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4738,7 +4839,7 @@ msgstr "" " Exit Status:\n" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4792,7 +4893,7 @@ msgstr "" " Exit Status:\n" " 0 or 1 depending on value of EXPRESSION." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4896,7 +4997,7 @@ msgstr "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4954,7 +5055,7 @@ msgstr "" " Returns success unless an invalid argument is supplied or the directory\n" " change fails." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -5006,7 +5107,7 @@ msgstr "" " Returns success unless an invalid argument is supplied or the directory\n" " change fails." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -5061,7 +5162,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5099,7 +5200,7 @@ msgstr "" " Returns success if OPTNAME is enabled; fails if an invalid option is\n" " given or OPTNAME is disabled." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5155,7 +5256,7 @@ msgstr "" "assignment\n" " error occurs." -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5169,9 +5270,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5188,14 +5294,19 @@ msgstr "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to “empty” commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5217,7 +5328,7 @@ msgstr "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -5230,6 +5341,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5256,6 +5369,8 @@ msgstr "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the “default” command completion\n" +" \t-E\t\tChange options for the “empty” command completion\n" " \n" " Using ‘+o’ instead of ‘-o’ turns off the specified option.\n" " \n" @@ -5272,15 +5387,15 @@ msgstr "" " Returns success unless an invalid option is supplied or NAME does not\n" " have a completion specification defined." -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5307,15 +5422,17 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5342,9 +5459,11 @@ msgstr "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/po/en@quot.gmo b/po/en@quot.gmo index 64e513ecc80c3eba3a3b2bc38c6d15a1f65d943f..dfd93ebeda29bc80d83bf473e1ee31341664ff7d 100644 GIT binary patch delta 14954 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 X_~Bw^yUA&T2K5@8GSuzr{?7ahUS+_J delta 12312 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℘$;BN3Dh?vpaXiz_ituLi->uQ{> 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 HKk@$uv;3G6 delta 7804 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 diff --git a/po/eo.po b/po/eo.po index 9e898a9..736734d 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1,71 +1,91 @@ +# -*- eval: (po-consider-source-path "../builtins/"); -*- # Esperanto language file for GNU Bash. # Copyright (C) 1996 Free Software Foundation, Inc. -# Sergio Pokrovskij , 1998, 2006. +# This file is distributed under the same license as the bash package. +# Sergio Pokrovskij , 1998, 2006, 2009. # +# Stilaj notoj: +# Angulaj citiloj limigas «plurajn vortojn», +# 99-66 estas la citiloj de „unuvortaĵo‟ +# +# La mesaĝojn pri internaj eraroj (markitaj per XXX) probable malnecesas +# traduki. +# +# Glosaro: +# callback retrovoko +# to force ... pre superforto +# granted jesigita +# here-document tuj-dokumento (info "(bash)Redirections") msgid "" msgstr "" -"Project-Id-Version: GNU bash 3.2\n" +"Project-Id-Version: GNU bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2006-11-24 09:19+0600\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-06-01 00:31+0600\n" "Last-Translator: Sergio Pokrovskij \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: arrayfunc.c:50 msgid "bad array subscript" msgstr "Misa tabel-indico" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" -msgstr "" +msgstr "%s: Maleblas konverti pozician tabelon en asocitabelon" -#: arrayfunc.c:479 -#, fuzzy, c-format +#: arrayfunc.c:480 +#, c-format msgid "%s: invalid associative array key" -msgstr "%s: Misa nomo de ago" +msgstr "%s: Misa asocitabela ŝlosilo" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: Valorizato havu nombran indicon" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" -msgstr "" +msgstr "%s: %s: Valorizante per asocitabelo uzu indicon" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: Ne prosperis krei: %s" # XXX: internal_error -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: Mankas klavartabelo por komando" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: La unua ne-blankspaca signo ne estas „\"‟" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "Mankas ferma „%c‟ en %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: Mankas disiga dupunkto" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "„%s‟: Misa nomo por klavartabelo" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "liniredaktado ne estas ebligita" #: builtins/bind.def:206 #, c-format @@ -99,19 +119,36 @@ msgstr "%s vokeblas per " #: builtins/break.def:77 builtins/break.def:117 msgid "loop count" -msgstr "" +msgstr "iteracinombrilo" #: builtins/break.def:137 msgid "only meaningful in a `for', `while', or `until' loop" msgstr "Sencas nur en iteracio „for‟, „while‟ aÅ­ „until‟" #: builtins/caller.def:133 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" " Without EXPR, returns " -msgstr "Liveras la kuntekston de la kuranta procedurvoko." +msgstr "" +"Liveras la kuntekston de la kuranta procedurvoko.\n" +"\n" +" Sen ESPR liveras " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -124,23 +161,23 @@ msgstr "OLDPWD malhavas valoron" #: builtins/common.c:101 #, c-format msgid "line %d: " -msgstr "" +msgstr "linio %dª: " -#: builtins/common.c:139 error.c:260 -#, fuzzy, c-format +#: builtins/common.c:139 error.c:261 +#, c-format msgid "warning: " -msgstr "%s: Averto: " +msgstr "Averto: " #: builtins/common.c:153 -#, fuzzy, c-format +#, c-format msgid "%s: usage: " -msgstr "%s: Averto: " +msgstr "%s: Uzmaniero: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "Tro multe da argumentoj" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: La opcio bezonas argumenton" @@ -155,7 +192,7 @@ msgstr "%s: Necesas nombra argumento" msgid "%s: not found" msgstr "%s: Ne trovita" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: Misa opcio" @@ -171,16 +208,14 @@ msgid "`%s': not a valid identifier" msgstr "„%s‟ ne estas taÅ­ga nomo" #: builtins/common.c:238 -#, fuzzy msgid "invalid octal number" -msgstr "Misa signalnumero" +msgstr "Misa okuma nombro" #: builtins/common.c:240 -#, fuzzy msgid "invalid hex number" -msgstr "Misa nombro" +msgstr "Misa 16uma nombro" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "Misa nombro" @@ -194,7 +229,7 @@ msgstr "%s: Misa signalindiko" msgid "`%s': not a pid or valid job spec" msgstr "„%s‟: Nek proceznumero, nek taÅ­ga laborindiko" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: Nurlega variablo" @@ -249,12 +284,12 @@ msgstr "Eraro ĉe skribo: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "Eraro ĉe agordado de terminalaj atributoj: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "Eraro ĉe akiro de terminalaj atributoj: %s" #: builtins/common.c:563 #, c-format @@ -266,51 +301,51 @@ msgstr "%s: Eraro ĉe provo determini la kurantan dosierujon: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: Ambigua laborindiko" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: Misa nomo de ago" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: Kompletigo ne estas specifita" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "Averto: La opcio -F povas funkcii alie ol vi eble supozas" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "Averto: La opcio -C povas funkcii alie ol vi eble supozas" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" -msgstr "" +msgstr "Ni ne estas en plenumado de kompletiga funkcio" #: builtins/declare.def:122 msgid "can only be used in a function" msgstr "Uzeblas nur ene de funkcio" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "„-f‟ ne estas uzebla por fari funkciojn" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: Nurlega funkcio" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "$%s: ĉi tiel ne eblas neniigi variablojn" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" -msgstr "" +msgstr "%s: Ne eblas konverti asocitabelon en pozician tabelon" #: builtins/enable.def:137 builtins/enable.def:145 msgid "dynamic loading not available" @@ -336,8 +371,8 @@ msgstr "%s: Ne ŝargita dinamike" msgid "%s: cannot delete: %s" msgstr "%s: Ne eblas forigi: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s estas dosierujo" @@ -352,7 +387,8 @@ msgstr "%s: Ne ordinara dosiero" msgid "%s: file is too large" msgstr "%s: Tro granda dosiero" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: Neplenumebla duuma dosiero" @@ -365,7 +401,7 @@ msgstr "%s: Maleblas plenumi: %s" #: builtins/exit.def:65 #, c-format msgid "logout\n" -msgstr "" +msgstr "adiaÅ­\n" #: builtins/exit.def:88 msgid "not login shell: use `exit'" @@ -377,26 +413,26 @@ msgid "There are stopped jobs.\n" msgstr "Restas haltigitaj laboroj.\n" #: builtins/exit.def:122 -#, fuzzy, c-format +#, c-format msgid "There are running jobs.\n" -msgstr "Restas haltigitaj laboroj.\n" +msgstr "Restas rulataj laboroj.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "Komando ne trovita" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "Historia indiko" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: Ne malfermiĝis labordosiero: %s" #: builtins/fg_bg.def:149 builtins/jobs.def:282 msgid "current" -msgstr "" +msgstr "kuranta" #: builtins/fg_bg.def:158 #, c-format @@ -423,17 +459,17 @@ msgid "%s: hash table empty\n" msgstr "%s: Hakettabelo estas malplena\n" #: builtins/hash.def:244 -#, fuzzy, c-format +#, c-format msgid "hits\tcommand\n" -msgstr "La ĵusa komando: %s\n" +msgstr "Trafoj\tKomando\n" -# ZZZ: aĉaj citiloj +# ZZZ: aĉaj citiloj (fermita en la programo) #: builtins/help.def:130 -#, fuzzy, c-format +#, c-format msgid "Shell commands matching keyword `" msgid_plural "Shell commands matching keywords `" -msgstr[0] "Ŝelaj komandoj kongruaj kun la ŝlosilvorto `" -msgstr[1] "Ŝelaj komandoj kongruaj kun la ŝlosilvorto `" +msgstr[0] "Ŝelaj komandoj kongruaj kun la ŝlosilvorto '" +msgstr[1] "Ŝelaj komandoj kongruaj kun la ŝlosilvortoj '" #: builtins/help.def:168 #, c-format @@ -481,20 +517,20 @@ msgid "%s: history expansion failed" msgstr "%s: Historia malvolvo fiaskis" #: builtins/inlib.def:71 -#, fuzzy, c-format +#, c-format msgid "%s: inlib failed" -msgstr "%s: Historia malvolvo fiaskis" +msgstr "%s: inlib fiaskis" #: builtins/jobs.def:109 msgid "no other options allowed with `-x'" msgstr "La uzo de „-x‟ malebligas aliajn opciojn" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: Argumento estu proceznumero aÅ­ laborindiko" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Nekonata eraro" @@ -502,56 +538,61 @@ msgstr "Nekonata eraro" msgid "expression expected" msgstr "Mankas esprimo" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: Ne tabela variablo" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: Misa indiko de dosiernumero" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" -msgstr "„%d‟: Misa dosiernumero: %s" +msgstr "%d: Misa dosiernumero: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 -#, fuzzy, c-format +#: builtins/mapfile.def:266 builtins/mapfile.def:304 +#, c-format msgid "%s: invalid line count" -msgstr "%s: Misa opcio" +msgstr "%s: Misa lininombro" -#: builtins/mapfile.def:269 -#, fuzzy, c-format +#: builtins/mapfile.def:277 +#, c-format msgid "%s: invalid array origin" -msgstr "%s: Misa opcio" +msgstr "%s: Misa tabelbazo" -#: builtins/mapfile.def:286 -#, fuzzy, c-format +# Supozeble callback => retrovoko ?? +#: builtins/mapfile.def:294 +#, c-format msgid "%s: invalid callback quantum" -msgstr "%s: Misa nomo de ago" +msgstr "%s: Misa kvanto ĉe retrovoko" -#: builtins/mapfile.def:318 -#, fuzzy +#: builtins/mapfile.def:326 msgid "empty array variable name" -msgstr "%s: Ne tabela variablo" +msgstr "Mankas nomo de tabelvariablo" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" -msgstr "" +msgstr "necesas subteno de tabelvariabloj" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "„%s‟: Mankas formata signo" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "„%c‟: Misa signo formata" -#: builtins/printf.def:571 -#, fuzzy, c-format +#: builtins/printf.def:578 +#, c-format msgid "warning: %s: %s" -msgstr "%s: Averto: " +msgstr "Averto: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "Mankas 16uma cifero por \\x" @@ -565,16 +606,14 @@ msgstr "" #: builtins/pushd.def:506 msgid "directory stack empty" -msgstr "" +msgstr "Dosierujstako malplenas" #: builtins/pushd.def:508 -#, fuzzy msgid "directory stack index" -msgstr "Rekursistako elĉerpita" +msgstr "indico de dosierujstako" # dirs [-clpv] [+N] [-N] #: builtins/pushd.def:683 -#, fuzzy msgid "" "Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" @@ -601,14 +640,15 @@ msgstr "" " la stakon per la komando „pushd‟ kaj estas forigeblaj per la\n" " komando „popd‟.\n" "\n" -" La opcio -l indikas ke „dirs‟ ne eligu mallongajn formojn de\n" -" dosierujnomoj relative al via hejma dosierujo. T.e. anstataÅ­\n" -" «~/bin» aperos nomo kun absoluta vojo, ekz-e «/homes/bfox/bin».\n" -" La opcio -v igas komandon „dirs‟ eligi po unu eron de la dosierujstako\n" -" en linio, metante antaÅ­ la dosierujnomo ĝian numeron en la stako.\n" -" La opcio -p faras simile, tamen ne numeras la poziciojn.\n" -" La opcio -c malplenigas la dosierujstakon forigante el ĝi ĉiujn erojn.\n" +" Opcioj:\n" +" -c\tforviŝu la dosierujstakon (forigu ĉiujn erojn)\n" +" -l\tne uzu tildon en la dosierujnomoj bazitaj relative\n" +" \tal via hejma dosierujo\n" +" -p\teligu dosierujstakon lokante po unu eron sur linio\n" +" -v\teligu dosierujstakon lokante po unu eron sur linio,\n" +"\tprefiksante la dosierujnomon per ĝia numero en la stako\n" "\n" +" Argumentoj:\n" " +N\teligu la Nan eron nombrante de maldekstre en la listo eligebla\n" "\tper „dirs‟ sen opcioj, numerante ekde 0.\n" "\n" @@ -617,7 +657,6 @@ msgstr "" # pushd [dir | +N | -N] [-n] #: builtins/pushd.def:705 -#, fuzzy msgid "" "Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" @@ -645,17 +684,18 @@ msgstr "" " la stakon tiel, ke la nova stakpinto iĝu la kuranta dosierujo.\n" " Senargumente, permutu la du plej suprajn dosierujojn de la stako.\n" "\n" -" +N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" Opcioj:\n" +" -n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur\n" +" \tla stakon; do, nur la stakon ŝanĝu.\n" +"\n" +" +N\tCikle ŝovu la stakon tiel ke la Nª dosierujo (nombrante de\n" " \tmaldekstre en la listo eligebla per „dirs‟, numerante de 0)\n" " iĝu la pinta.\n" "\n" -" -N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" -N\tCikle ŝovu la stakon tiel ke la Nª dosierujo (nombrante de\n" " \tdekstre en la listo eligebla per „dirs‟, numerante de 0) iĝu\n" " la pinta.\n" "\n" -" -n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur\n" -" \tla stakon; do, nur la stakon ŝanĝu.\n" -"\n" " dir\tsurstakigu la dosierujon dir kaj faru ĝin la nova kuranta\n" " \tdosierujo labora.\n" "\n" @@ -663,7 +703,6 @@ msgstr "" # popd [+N | -N] [-n] #: builtins/pushd.def:730 -#, fuzzy msgid "" "Removes entries from the directory stack. With no arguments, removes\n" " the top directory from the stack, and changes to the new top directory.\n" @@ -686,6 +725,12 @@ msgstr "" "Elstakigu erojn el la stako de dosierujoj. Senargumente, forigu la\n" " pintan dosierujon kaj iru (cd) en la novan pintan dosierujon.\n" "\n" +"\n" +" Opcioj:\n" +" -n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon el la\n" +"\tstako; do, nur la stakon ŝanĝu.\n" +"\n" +" Argumentoj:\n" " +N\tforigu la Nan eron de maldekstre de la listo eligebla per\n" "\t„dirs‟, numerante ekde 0. Ekz-e: «popd +0» forigas la plej\n" "\tmaldekstran dosierujon; «popd +1», ĝian najbaron.\n" @@ -694,17 +739,14 @@ msgstr "" "\tnumerante ekde 0. Ekz-e: «popd -0» forigas la lastan\n" "\tdosierujon; «popd -1», la antaÅ­lastan.\n" "\n" -" -n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon el la\n" -"\tstako; do, nur la stakon ŝanĝu.\n" -"\n" " Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: Misa indiko de atendotempo" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "Lega (read) eraro: %d: %s" @@ -742,11 +784,11 @@ msgstr "%s: Ne funkcio" msgid "shift count" msgstr "Nombrilo de „shift‟" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "Maleblas samtempe ŝalti kaj malŝalti ŝelan opcion" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: Misa nomo de ŝela opcio" @@ -815,7 +857,7 @@ msgstr "%s: Fiaskis provo legi limon: %s" #: builtins/ulimit.def:453 msgid "limit" -msgstr "" +msgstr "limo" #: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format @@ -838,79 +880,78 @@ msgstr "„%c‟: MaltaÅ­ga simbolo por atingorajta modifilo" msgid "`%c': invalid symbolic mode character" msgstr "„%c‟: La signo ne estas simbolo de atingorajta kategorio" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " -msgstr "" +msgstr " linio " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "La ĵusa komando: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Ĉesigado ..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "Nekonata komand-eraro" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "Misa komandotipo" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "Misa stir-operacio" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "Misa salto" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: Neligita variablo" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\aTro longe sen enigo: AÅ­tomata seancofino\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "Tro longe sen enigo: AÅ­tomata seancofino\n" # XXX: internal error: -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "Fiaskis provo nomumi la disponaĵon «/dev/null» ĉefenigujo: %s" # XXX: internal error: -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: „%c‟: Misa formatsigno" -#: execute_cmd.c:2011 -#, fuzzy +#: execute_cmd.c:2075 msgid "pipe error" -msgstr "Eraro ĉe skribo: %s" +msgstr "Eraro en dukto" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: Malpermesitas uzi „/‟ en komandonomoj" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: Komando ne trovita" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: Misa interpretilo" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "Ne eblas kunnomumi al dosiernumero %d la dosiernumeron %d" @@ -955,40 +996,40 @@ msgstr "Post antaÅ­kremento aperu nomo de variablo" msgid "missing `)'" msgstr "Mankas „)‟" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "Sintaksa eraro: Mankas operando" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "Sintaksa eraro: Misa operacisimbolo aritmetika" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "" +msgstr "%s%s%s: %s (misa simbolo estas „%s‟)" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "MaltaÅ­ga bazo nombrosistema" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "Tro granda valoro por bazo de nombrosistemo" -#: expr.c:1328 -#, fuzzy, c-format +#: expr.c:1329 +#, c-format msgid "%s: expression error\n" -msgstr "%s: Mankas entjera esprimo" +msgstr "%s: Misa esprimo\n" #: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "getwd: Ne eblas atingi patrajn dosierujojn" -#: input.c:94 subst.c:4559 -#, fuzzy, c-format +#: input.c:94 subst.c:4857 +#, c-format msgid "cannot reset nodelay mode for fd %d" -msgstr "Ne eblas reŝalti senprokrastan reĝimon por dosiero n-ro %d" +msgstr "Ne eblas reŝalti senprokrastan reĝimon por dosiernumero %d" #: input.c:258 #, c-format @@ -1000,9 +1041,10 @@ msgstr "Maleblas disponigi novan dosiernumeron por Baŝa enigo el n-ro %d" msgid "save_bash_input: buffer already exists for new fd %d" msgstr "save_bash_input: La nova dosiernumero (fd %d) jam havas bufron" +# ZZZ: sys_error (_("start_pipeline: pgrp pipe")); #: jobs.c:466 msgid "start_pipeline: pgrp pipe" -msgstr "" +msgstr "start_pipeline: procezgrupo dukto" #: jobs.c:887 #, c-format @@ -1014,15 +1056,17 @@ msgstr "Forke farita proceznumero %d aperas en rulata laboro %d" msgid "deleting stopped job %d with process group %ld" msgstr "Haltigita laboro %d kun procezgrupo %ld estas forigata" +# ifdef DEBUG ... internal_warning(): #: jobs.c:1110 #, c-format msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "" +msgstr "add_process: process %5ld (%s) in the_pipeline" +# ifdef DEBUG ... internal_warning(): #: jobs.c:1113 #, c-format msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "" +msgstr "add_process: pid %5ld (%s) marked as still alive" #: jobs.c:1401 #, c-format @@ -1032,112 +1076,116 @@ msgstr "describe_pid: Ne estas tia proceznumero (%ld)!" #: jobs.c:1416 #, c-format msgid "Signal %d" -msgstr "" +msgstr "Signalo %d" #: jobs.c:1430 jobs.c:1455 msgid "Done" -msgstr "" +msgstr "Farite" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" -msgstr "" +msgstr "Haltigita" #: jobs.c:1439 #, c-format msgid "Stopped(%s)" -msgstr "" +msgstr "Haltigita(%s)" #: jobs.c:1443 msgid "Running" -msgstr "" +msgstr "Rulata" #: jobs.c:1457 #, c-format msgid "Done(%d)" -msgstr "" +msgstr "Farite(%d)" #: jobs.c:1459 #, c-format msgid "Exit %d" -msgstr "" +msgstr "Eliro %d" #: jobs.c:1462 msgid "Unknown status" -msgstr "" +msgstr "Nekonata stato" #: jobs.c:1549 #, c-format msgid "(core dumped) " -msgstr "" +msgstr "(nekropsio elŝutita)" #: jobs.c:1568 #, c-format msgid " (wd: %s)" -msgstr "" +msgstr " (labordosierujo: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" -msgstr "" +msgstr "provo atribui (setpgid) procezgrupon %2$ld de la procezido %1$ld" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: La procezo %ld ne estas ido de ĉi tiu ŝelo" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Malestas informoj pri procezo %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: La laboro %d estas haltigita" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: La laboro finiĝis" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: La laboro %d jam estas fona" -#: jobs.c:3492 -#, fuzzy, c-format +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 +#, c-format msgid "%s: line %d: " -msgstr "%s: Averto: " +msgstr "%s: linio %dª: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" -msgstr "" +msgstr "(nekropsio elŝutita)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" -msgstr "" +msgstr "(nun labordosierujo estas: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" -msgstr "" +msgstr "initialize_job_control: getpgrp fiaskis" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" -msgstr "" +msgstr "initialize_job_control: liniaranĝo" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" -msgstr "" +msgstr "initialize_job_control: setpgid()" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" -msgstr "" +msgstr "ne prosperis atribui grupon (%d) de terminala procezo" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "Ĉi tiu ŝelo ne disponigas laborregadon" @@ -1158,9 +1206,8 @@ msgstr "" # XXX: internal error #: lib/malloc/malloc.c:313 -#, fuzzy msgid "unknown" -msgstr "%s: Nekonata retnodo" +msgstr "nekonata" # XXX: debug? #: lib/malloc/malloc.c:797 @@ -1247,6 +1294,28 @@ msgstr "%s: Misa retvojo-indiko" msgid "network operations not supported" msgstr "Reta funkciado ne disponeblas" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +# XXX: fatal_error +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: ne eblas reokupi %lu bajtojn" + +# XXX: fatal_error +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: ne eblas reokupi %lu bajtojn" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Vi havas poŝton en $_" @@ -1260,133 +1329,134 @@ msgstr "Nova poŝto en $_" msgid "The mail in %s has been read\n" msgstr "La poŝto en %s estas jam legita\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "Sintaksa eraro: Necesas aritmetika esprimo" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "Sintaksa eraro: Neatendita „;‟" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "Sintaksa eraro: „((%s))‟" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: Misa ordontipo %d" -#: make_cmd.c:651 +# internal_warning(): +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" -msgstr "" +msgstr "Tuj-dokumenton de linio %d limigas dosierfino (mankas „%s‟)" # XXX: programming_error -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: Alidirektada komando „%d‟ ekster sia variejo" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "Neatendita dosierfino dum serĉo de responda „%c‟" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "Neatendita dosierfino dum serĉo de „]]‟" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "Sintaksa eraro en kondiĉa esprimo: Neatendita simbolo „%s‟" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "Sintaksa eraro en kondiĉa esprimo" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "Nekonvena simbolo „%s‟ anstataÅ­ „)‟" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "Mankas „)‟" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "La argumento „%s‟ ne konvenas por unuloka kondiĉa operacisimbolo" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "MaltaÅ­ga argumento por unuloka kondiĉa operacisimbolo" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "Misa simbolo „%s‟ anstataÅ­ duloka kondiĉa operacisigno" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "ĉi tie devas esti duloka kondiĉa operacisigno" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "La argumento „%s‟ ne konvenas por duloka kondiĉa operacisimbolo" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr " +# caller [ESPRIMO] #: builtins.c:365 -#, fuzzy msgid "" "Return the context of the current subroutine call.\n" " \n" @@ -2435,17 +2645,21 @@ msgid "" " Returns 0 unless the shell is not executing a shell function or EXPR\n" " is invalid." msgstr "" -"Liveras la kuntekston de la kuranta procedurvoko.\n" +"Liveru la kuntekston de la kuranta procedurvoko\n" "\n" -" Se EXPR malestas, liveriĝas «$line $filename». Se EXPR ĉeestas,\n" -" liveriĝas «$line $subroutine $filename»; ĉi tiu krominformo\n" +" Se ESPRIMO malestas, liveru «$line $filename». Se ESPRIMO\n" +" ĉeestas, liveru «$line $subroutine $filename»; ĉi tiu krominformo\n" " uzeblas por vidigi la vok-stakon.\n" "\n" -" La valoro de EXPR indikas, kiom da vokkadroj retroiri disde la\n" -" kuranta; la pinta kadro havas la numeron 0." +" La valoro de ESPRIMO indikas, kiom da vokkadroj retroiri disde la\n" +" kuranta; la pinta kadro havas la numeron 0.\n" +"\n" +" Elirstato:\n" +" Ĝi estas 0, kondiĉe ke la ŝelo plenumas ŝelfunkcion kaj la ESPRIMO\n" +" estas valida." +# cd: #: builtins.c:383 -#, fuzzy msgid "" "Change the shell working directory.\n" " \n" @@ -2477,19 +2691,31 @@ msgid "" " Exit Status:\n" " Returns 0 if the directory is changed; non-zero otherwise." msgstr "" -"La kuranta dosierujo estu dir aÅ­, se dir malestas, la valoro\n" -" de la variablo $HOME. La variablo $CDPATH difinas la serĉvojon\n" -" por la dosierujo entenanta dir-on. En $CDPATH, dupunkto „:‟\n" -" apartigas alternativajn dosierujojn, vakua dosiernomo egalas la\n" -" kurantan (t.e. „.‟). Se dir komenciĝas per „/‟, la variablo\n" -" $CDPATH ne estas uzata. Se la dosierujo ne troviĝas, kaj la\n" -" ŝela opcio „cdable_vars‟ estas ŝaltita, la vorto estas\n" -" interpretata kiel variablo. Se la variablo havas valoron,\n" -" plenumiĝas „cd‟ al tiu valoro.\n" -" La opcio -P igas uzi la fizikan strukturon de dosierujoj\n" -" anstataÅ­ iri laÅ­ simbolaj ligiloj; la opcio -L igas sekvi\n" -" simbolajn ligilojn." +"Ŝanĝu la kurantan laboran dosierujon de la ŝelo.\n" +"\n" +" La kuranta dosierujo iĝu dir aÅ­, se dir malestas, la valoro\n" +" de la variablo $HOME.\n" +"\n" +" La variablo $CDPATH difinas la serĉvojon por la dosierujo\n" +" entenanta dir-on. En $CDPATH, dupunkto „:‟ apartigas alternativajn\n" +" dosierujojn, vakua dosiernomo egalas la kurantan (t.e. „.‟). Se dir\n" +" komenciĝas per „/‟, la variablo $CDPATH ne estas uzata.\n" +"\n" +" Se la dosierujo ne troviĝas, kaj la ŝela opcio „cdable_vars‟ estas\n" +" ŝaltita, la vorto estas interpretata kiel variablo. Se la\n" +" variablo havas valoron, plenumiĝas „cd‟ al tiu valoro.\n" +"\n" +" Opcioj:\n" +" -L\tsekvu simbolajn ligilojn.\n" +" -P\tuzu la fizikan strukturon de dosierujoj sen iri laÅ­\n" +"\tsimbolaj ligiloj\n" +"\n" +" DefaÅ­lte la simbolaj ligiloj estas sekvataj, kvazaÅ­ „-L‟ ĉeestus.\n" +"\n" +" Elirstato:\n" +" Ĝi estas 0, se la dosierujŝanĝo sukcesis; nenulo aliokaze." +# pwd [-LP] #: builtins.c:411 msgid "" "Print the name of the current working directory.\n" @@ -2505,9 +2731,21 @@ msgid "" " Returns 0 unless an invalid option is given or the current directory\n" " cannot be read." msgstr "" +"Eligu la nomon de kuranta labora dosierujo\n" +"\n" +" Opcioj:\n" +" -L eligu la valoron de $PWD, se ĝi indikas la kurantan laboran\n" +" dosierujon\n" +" -P eligu la nomon de la fizika dosierujo, sen eventualaj simbolaj\n" +" ligiloj\n" +"\n" +" DefaÅ­lte „pwd‟ kondutas tiel, kiel kun la opcio „-L‟.\n" +"\n" +" Elirstato:\n" +" 0, krom se aperas misa opcio aÅ­ la kuranta dosierujo estas\n" +" nelegebla." #: builtins.c:428 -#, fuzzy msgid "" "Null command.\n" " \n" @@ -2515,8 +2753,15 @@ msgid "" " \n" " Exit Status:\n" " Always succeeds." -msgstr "Senefika: La komando nenion faras. Elirstato 0 estas liverata." +msgstr "" +"Malplena ordono\n" +"\n" +" Senefika: La komando nenion faras.\n" +"\n" +" Elirstato:\n" +" Ĉiam sukcesa." +# true #: builtins.c:439 msgid "" "Return a successful result.\n" @@ -2524,16 +2769,26 @@ msgid "" " Exit Status:\n" " Always succeeds." msgstr "" +"Liveru sukcesan rezulton\n" +"\n" +" Elirstato:\n" +" Ĉiam sukcesa." +# false: #: builtins.c:448 -#, fuzzy msgid "" "Return an unsuccessful result.\n" " \n" " Exit Status:\n" " Always fails." -msgstr "Liveru malsukcesan rezulton." +msgstr "" +"Liveru fiaskon.\n" +"\n" +" Elirstato:\n" +" Ĉiam malsukcesa." +# command [-pVv] command [arg ...] +# command [-pVv] KOMANDO [ARG ...] #: builtins.c:457 msgid "" "Execute a simple command or display information about commands.\n" @@ -2552,10 +2807,25 @@ msgid "" " Exit Status:\n" " Returns exit status of COMMAND, or failure if COMMAND is not found." msgstr "" +"Plenumu simplan komandon aÅ­ vidigu informojn pri komandoj\n" +"\n" +" Plenumu KOMANDOn kun ARGoj sen atenti eventualajn ŝelfunkciojn\n" +" samnomajn; aÅ­ vidigu informojn pri indikitaj KOMANDOj. Uzeblas\n" +" por voki komandojn de disko malgraÅ­ la ekzisto de samnomaj\n" +" funkcioj.\n" +"\n" +" Opcioj:\n" +" -p Uzu la defaÅ­ltan valoron de la de la variablo $PATH (tio\n" +"\tebligas trovi ĉiujn normajn utilaĵojn)\n" +" -v\tEligu komandopriskribon laÅ­ la maniero de la primitivaĵo „type‟\n" +" -V\tEligu pli detalan priskribon de KOMANDO\n" +"\n" +" Elirstato:\n" +" Tiu de KOMANDO; aÅ­ malsukceso, se KOMANDO ne troveblas." # declare [-afFirtx] [-p] [name[=value] ...] +# declare [-aAfFilrtux] [-p] [NOMO[=VALORO] ...] #: builtins.c:476 -#, fuzzy msgid "" "Set variable values and attributes.\n" " \n" @@ -2590,38 +2860,50 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Deklaru variablojn aÅ­ valorizu ilin per atributoj. Se nomoj name\n" -" mankas, anstataÅ­e eligu la valoron de la variabloj. La opcio -p\n" -" eligas la atributojn kaj la valorojn de ĉiu nomo name.\n" +"Difinu valorojn aÅ­ atributojn de variabloj\n" "\n" -" La opcioj estas:\n" +" Deklaru variablojn aÅ­ valorizu ilin per atributoj.\tSe NOMOj\n" +" mankas, anstataÅ­e eligu la valoron de ĉiuj variabloj.\n" "\n" -" -a faru la nomojn tabeloj (se realigite)\n" -" -f elektu nur inter funkcinomoj\n" -" -F eligu funkcinomojn (ĉe erarserĉo, ankaÅ­ lininumeron kaj\n" -" fontodosieran nomon) sen difinoj\n" -" -i havigu al la variabloj name la atributon „integer‟ (entjera)\n" -" -r faru la variablojn name nurlegaj\n" -" -t havigu al la nomoj name la atributon „trace‟ (spurata)\n" -" -x eksportu la variablojn name\n" +" Opcioj:\n" +" -f\tla ago aÅ­ eligo koncernu nur la funkciajn NOMOjn kaj difinojn\n" +" -F\teligu nur funkcinomojn (ĉe erarserĉo, ankaÅ­ lininumeron kaj\n" +"\tfontodosieran nomon) sen difinoj\n" +" -p\teligu la atributojn kaj la valorojn de ĉiu NOMO\n" +"\n" +" Opcioj atributdonaj:\n" +" -a\tfaru la NOMOjn poziciaj tabeloj (se realigite)\n" +" -A\tfaru la NOMOjn asocitabeloj (se realigite)\n" +" -i\thavigu al la variabloj NOMOj la atributon „integer‟ (entjera)\n" +" -l\tminuskligu la NOMOjn ĉe valorizo\n" +" -r\tfaru la variablojn NOMOj nurlegaj\n" +" -t\thavigu al la NOMOj la atributon „trace‟ (spurata)\n" +" -u\tmajuskligu la NOMOjn ĉe valorizo\n" +" -x\teksportu la variablojn NOMOj\n" +"\n" +" La uzo de „+‟ anstataÅ­ „-‟ malŝaltas la koncernan attributon.\n" +" Uzite en funkcio, „declare‟ faras la NOMOjn lokaj, samkiel la\n" +" komando „local‟.\n" "\n" " Ĉe valorizo de variablo havanta atributon „integer‟ (entjera)\n" " okazas aritmetika komputado (vd „let‟).\n" "\n" -" Ĉe eligo de variablovaloroj, la opcio -f igas eligi funkcinomon\n" -" funkcidifinon. La opcio -F reduktas la eligon al nuraj funkcinomoj.\n" -"\n" -" La uzo de „+‟ anstataÅ­ „-‟ malŝaltas la koncernan attributon.\n" -" Uzite en funkcio, „declare‟ faras la nomojn name lokaj, samkiel la\n" -" komando „local‟." +" Eliistato:\n" +" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro." +# typeset [-aAfFilrtux] [-p] name[=value] ... #: builtins.c:512 msgid "" "Set variable values and attributes.\n" " \n" " Obsolete. See `help declare'." msgstr "" +"Difinu atributojn kaj valorojn de variabloj\n" +"\n" +" Arkaika. Vd «help declare»." +# local [option] name[=value] ... +# local [OPCIO] NOMO[=VALORO] ... #: builtins.c:520 msgid "" "Define local variables.\n" @@ -2636,9 +2918,20 @@ msgid "" " Returns success unless an invalid option is supplied, an error occurs,\n" " or the shell is not executing a function." msgstr "" +"Difinu lokajn variablojn\n" +"\n" +" Kreu lokan variablon NOMO kaj ĝin valorizu per VALORO. OPCIO\n" +" povas esti ajna el la opcioj de „declare‟.\n" +"\n" +" Lokaj variabloj uzeblas nur ene de funkcio; ili estas videblaj nur\n" +" en la funkcio kie ili estas difinitaj kaj en ĝiaj idoj.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa opcio, okazas eraro, aÅ­ la ŝelo ne\n" +" estas plenumanta funkcion." +# echo: #: builtins.c:537 -#, fuzzy msgid "" "Write arguments to the standard output.\n" " \n" @@ -2668,13 +2961,21 @@ msgid "" " Exit Status:\n" " Returns success unless a write error occurs." msgstr "" -"Eligu la ARGojn. Se ĉeestas la opcio -n, la fina linirompo\n" -" ne okazas.\tLa opcio -e aktivigas interpretadon de la sekvaj\n" -" deklivaĵoj:\n" +"Eligu la argumentojn en la ĉefeligujon\n" +"\n" +" Eligu la ARGojn en la ĉefeligujon, postmetu linirompon.\n" +"\n" +" Opcioj:\n" +" -n\tne aldonu la finan linirompon\n" +" -e\taktivigu interpretadon de la ĉi-subaj deklivaĵoj\n" +" -E\tmalaktivigu interpretadon de la ĉi-subaj deklivaĵoj\n" +"\n" +" „echo‟ povas interpreti la sekvajn literojn prefiksitajn per\n" +" deklivo (per la signo „\\‟):\n" "\t\\a\tpepo (sonsignalo)\n" "\t\\b\tretropaŝo\n" -"\t\\c\tsen la fina linirompo\n" -"\t\\E\teskapsigno\n" +"\t\\c\tĉesigu pluan eligon\n" +"\t\\e\teskapsigno\n" "\t\\f\tpaĝ-avanco\n" "\t\\n\tlinifino\n" "\t\\r\tĉaretreveno\n" @@ -2682,10 +2983,14 @@ msgstr "" "\t\\v\tvertikala tabo\n" "\t\\\\\tdeklivo „\\‟\n" "\t\\0CCC\tla signo kies Askia kodono estas CCC (okume). CCC\n" -"\t\tpovas enteni de 0 ĝis 3 okumajn ciferojn.\n" -" La opcio -E abolas la supre indikitan signifon de ĉi tiuj specialaj\n" -" signoj." +"\t\tpovas enteni 0, 1, 2 aÅ­ 3 okumajn ciferojn\n" +"\t\\0xHH\tla signo kies 8-bita kodono estas HH (16-ume). HH\n" +"\t\tpovas enteni unu aÅ­ du 16-umajn ciferojn\n" +"\n" +" Elirstato:\n" +" Sukcesa, krom se okazas elig-eraro." +# echo [-n] [ARG ...] #: builtins.c:571 msgid "" "Write arguments to the standard output.\n" @@ -2698,7 +3003,18 @@ msgid "" " Exit Status:\n" " Returns success unless a write error occurs." msgstr "" +"Skribu argumentojn en la ĉefeligujon\n" +"\n" +" Eligu la ARGojn en la ĉefeligujon, aldonu linifinilon.\n" +"\n" +" Opcio:\n" +" -n Ne aldonu postan linifinilon\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se okazas skriberaro." +# enable [-a] [-dnps] [-f filename] [name ...] +# enable [-a] [-dnps] [-f DOSIERNOMO] [NOMO ...] #: builtins.c:586 msgid "" "Enable and disable shell builtins.\n" @@ -2725,7 +3041,32 @@ msgid "" " Exit Status:\n" " Returns success unless NAME is not a shell builtin or an error occurs." msgstr "" +"Aktivigu aÅ­ malaktivigu primitivajn komandojn\n" +"\n" +" Aktivigu aÅ­ malaktivigu primitivajn ŝelkomandojn. Tio ebligas\n" +" uzi eksteran komandon, samnoman kun primitivaĵo, sen indiki\n" +" ĝian plenan vojon.\n" +"\n" +" Opcioj:\n" +" -a\tListigu la primitivaĵojn indikante, ĉu ili estas aktivaj\n" +" -n Malaktivigu la NOMOjn, aÅ­ listigu la malaktivajn primitivaĵojn\n" +" -p\tListigu primitivaĵojn en formo taÅ­ga por reuzo\n" +" -s Eligu nur la «specialajn» ŝelfunkciojn de Posix\n" +"\n" +" Opcioj regantaj dinamikan ŝargadon:\n" +" -f\tŜargu primitivaĵon NOMO el la dinamika biblioteko DOSIERNOMO\n" +" -d Forigu ŝelkomandon dinamike ŝargitan per -f\n" +"\n" +" Senopcie: Aktivigu ĉiujn NOMOjn\n" +"\n" +" Ekz-e por uzi la „test‟on troveblan en $PATH anstataÅ­ la\n" +" samnoman primitivan ŝelkomandon, diru: «enable -n test».\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se NOMO ne estas primitiva ŝelkomando aÅ­ okazis\n" +" eraro." +# eval [ARG ...] #: builtins.c:614 msgid "" "Execute arguments as a shell command.\n" @@ -2737,10 +3078,17 @@ msgid "" " Exit Status:\n" " Returns exit status of command or success if command is null." msgstr "" +"Plenumu argumentojn kiel ŝelkomandon\n" +"\n" +" Kunmetu la ARGojn en unu ĉenon, uzu la rezulton kiel enigaĵon por\n" +" la ŝelo kaj plenumu la legita(j)n komando(j)n.\n" +"\n" +" Elirstato:\n" +" Tiu de la komandoĉeno; sukceso, se la komando estas vakua." -# getopts optstring name [arg] +# getopts optstring name [arg] => +# getopts OPCIĈENO NOMO [ARG] #: builtins.c:626 -#, fuzzy msgid "" "Parse option arguments.\n" " \n" @@ -2780,38 +3128,46 @@ msgid "" " Returns success if an option is found; fails if the end of options is\n" " encountered or an error occurs." msgstr "" -"La funkcion „getopts‟ uzas ŝelproceduroj por analizi poziciajn\n" -" parametrojn.\n" +"Analizu opciajn argumentojn\n" "\n" -" La argumento optstring entenas la rekonendajn opciliterojn; se\n" -" literon sekvas dupunkto, la opcio postulas argumenton, de ĝi\n" -" apartigendan per spaceto.\n" +" La funkcion „getopts‟ uzas ŝelproceduroj por analizi opciformajn\n" +" numerparametrojn.\n" +"\n" +" La argumento OPCIĈENO entenas la rekonendajn opciliterojn; se\n" +" literon sekvas dupunkto, la opcio postulas argumenton, disde ĝi\n" +" apartigendan per blanka spaco.\n" "\n" " Ĉe ĉiu voko „getopts‟ liveros la vican opcion en la ŝelvariablon\n" -" $name, valorizante la variablon se ĝi ne ekzistas, kaj la indicon\n" +" $NOMO (estigante la variablon se ĝi ne ekzistas); kaj la indicon\n" " de la sekve traktota argumento en la ŝelvariablon OPTIND. OPTIND\n" -" ricevas la komencan valoron 1 ĉe ĉiu voko de la ŝelo aÅ­ ŝela skripto.\n" -" Kiam opcio bezonas argumenton, „getopts‟ liveras tiun argumenton\n" -" en la ŝelvariablon OPTARG.\n" -"\n" -" La funkcio „getopts‟ raportas pri eraroj dumaniere. Se la unua signo\n" -" de optstring estas dupunkto, „getopts‟ prisilentas erarojn. En\n" -" tiu reĝimo, nenia erarmesaĝo estas eligata. Se troviĝas misa opcio,\n" -" „getopts‟ metas la trovitan opciliteron en OPTARG. Se mankas\n" -" bezonata argumento, la ŝelvariablo NOMO ricevas la valoron ':',\n" -" la variablo OPTARG, la trovitan opcion. Se „getopts‟ ne estas\n" -" en silenta reĝimo kaj trovas misan opcion, tiam name ricevas la\n" -" valoron '?' kaj OPTARG senvaloriĝas. Se mankas bezonata opcio,\n" -" NOMO ricevas la valoron '?', OPTARG senvaloriĝas kaj erarmesaĝo\n" -" estas eligata.\n" +" ricevas la komencan valoron 1 ĉe ĉiu voko de la ŝelo aÅ­ ŝela\n" +" skripto. Kiam opcio bezonas argumenton, „getopts‟ liveras tiun\n" +" argumenton en la ŝelvariablon OPTARG.\n" +"\n" +" La funkcio „getopts‟ raportas pri eraroj dumaniere. Se la unua\n" +" signo de OPCIĈENO estas dupunkto, „getopts‟ prisilentas\n" +" erarojn. En tiu reĝimo, nenia erarmesaĝo estas eligata.\n" +" Renkontinte misan opcion, „getopts‟ metas la trovitan opciliteron\n" +" en OPTARG. Se mankas bezonata argumento, la ŝelvariablo NOMO\n" +" ricevas la valoron ':', kaj la variablo OPTARG, la trovitan\n" +" opcion. Se „getopts‟ ne estas en silenta reĝimo kaj trovas\n" +" misan opcion, tiam NOMO ricevas la valoron '?' kaj OPTARG\n" +" senvaloriĝas. Se mankas bezonata opcio, NOMO ricevas la\n" +" valoron '?', OPTARG senvaloriĝas kaj erarmesaĝo estas eligata.\n" "\n" " Se la ŝelvariablo OPTERR havas la valoron 0, „getopts‟\n" " malaktivigas la eligon de erarmesaĝoj, eĉ se la unua signo de\n" -" optstring ne estas dupunkto. La apriora valoro de OPTERR estas 1.\n" +" OPCIĈENO ne estas dupunkto. La apriora valoro de OPTERR estas 1.\n" "\n" -" Normale „getopts‟ analizas la poziciajn parametrojn ($0 - $9), sed\n" -" se estas pli da argumentoj, „getopts‟ anstataÅ­e analizas ilin." +" Normale „getopts‟ analizas la numerparametrojn ($0 - $9), sed se\n" +" estas pli da argumentoj, „getopts‟ anstataÅ­e analizas ilin.\n" +"\n" +" Elirstato:\n" +" Sukceso, se opcio estas trovita; malsukceso, se renkontiĝis\n" +" la fino de la opcioj aÅ­ okazis eraro." +# exec [-cl] [-a name] [command [arguments ...]] [redirection ...] +# exec [-cl] [-a NOMO] [KOMANDO [ARGUMENTOJ ...]] [ALIDIREKTADO ...] #: builtins.c:668 msgid "" "Replace the shell with the given command.\n" @@ -2834,18 +3190,39 @@ msgid "" " Returns success unless COMMAND is not found or a redirection error " "occurs." msgstr "" +"AnstataÅ­igu la ŝelon je la donita komando\n" +"\n" +" Plenumu la KOMANDOn, anstataÅ­igante la ŝelon je la donita\n" +" programo. La ARGUMENTOj servas kiel argumentoj por KOMANDO.\n" +" Se KOMANDO ne estas indikita, la alidirektadoj okazu en \n" +" la kuranta ŝelo.\n" +"\n" +" Opcioj:\n" +" -a NOMO Pasigu NOMOn al KOMANDO kiel la argumenton argv[0]\n" +" -c\tLa plenumo de KOMANDO okazu en vakua medio\n" +" -l\tMetu minuson en la nulan argumenton pasigatan al KOMANDO\n" +"\n" +" Se la komandon ne eblas plenumi kaj la ŝelo ne estas dialoga, tiam\n" +" la ŝelo finiĝas, krom se la opcio „execfail‟ estas aktiva.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se KOMANDO ne estas trovita aÅ­ okazis eraro pri\n" +" alirektado." +# exit [n] #: builtins.c:689 -#, fuzzy msgid "" "Exit the shell.\n" " \n" " Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -"Forlasu la ŝelon kun elirstato N. Se N mankas, la elirstato estas\n" -" tiu de la plej ĵuse plenumita komando." +"Forlasu la ŝelon\n" +"\n" +" Forlasu la ŝelon kun elirstato N. Se N mankas, la elirstato\n" +" estas tiu de la plej ĵuse plenumita komando." +# logout [N] #: builtins.c:698 msgid "" "Exit a login shell.\n" @@ -2854,11 +3231,16 @@ msgid "" "executed\n" " in a login shell." msgstr "" +"AdiaÅ­, saluta ŝelo!\n" +"\n" +" Eliru el saluta ŝelo kun la elirstato N. Liveru malsukceson, se\n" +" plenumate ne en saluta ŝelo." # ZZZ: fc [-e ename] [-nlr] [first] [last] or -# fc -s [pat=rep] [cmd] +# fc -s [pat=rep] [command] => +# fc [-e REDAKTILO] [-lnr] [UNUA] [LASTA] aÅ­ +# fc -s [ŜABLONO=ANST] [KOMANDO] #: builtins.c:708 -#, fuzzy msgid "" "Display or execute commands from the history list.\n" " \n" @@ -2887,27 +3269,33 @@ msgid "" " Returns success or status of executed command; non-zero if an error " "occurs." msgstr "" -"„fc‟ servas por listigi aÅ­ redakti kaj replenumi komandojn el la\n" -" historilisto. first kaj last povas esti numeroj, indikantaj\n" -" intervalon da numeroj; aÅ­, se first estas signoĉeno, ĝi indikas\n" +"Eligu aÅ­ plenumu komandojn el la historilisto\n" +"\n" +" „fc‟ servas por listigi aÅ­ redakti kaj replenumi komandojn el la\n" +" historilisto. UNUA kaj LASTA povas esti numeroj, indikantaj\n" +" intervalon da numeroj; aÅ­, se UNUA estas signoĉeno, ĝi indikas\n" " la plej ĵusan komandon komenciĝantan per tiu signoĉeno.\n" "\n" +" Opcioj:\n" " -e REDAKTILO\tla uzota redaktilo. DefaÅ­lte FCEDIT, poste\n" -"\tEDITOR, poste „vi‟.\n" -" -l\tnur eligu la liniojn sen redakti ilin.\n" -" -n\teligu nur la liniojn (sennumere).\n" +"\tEDITOR, poste „vi‟\n" +" -l\tnur eligu la liniojn sen redakti ilin\n" +" -n\teligu sennumere (nur la liniojn)\n" " -r\tinversigu la ordon de la linioj (komencu per la plej ĵusaj).\n" "\n" -" Per «fc -s [ŜABLONO=ANSTATAŬAÄ´O ...] [KOMANDO]» la komando estas\n" -" replenumota post la anstataÅ­igo de ĉiu apero de ŜABLONO je ANSTATAŬAÄ´O.\n" +" «fc -s [ŜABLONO=ANST ...] [KOMANDO]» plenumas la KOMANDOn en kiu\n" +" ĉiu apero de ŜABLONO estas la anstataÅ­igita je ANST.\n" "\n" " Oportuna alinomo por tio estas «alias r='fc -s'», tiel ke ekz-e per\n" -" «r cc» oni rulos la lastan komandon komenciĝantan per «cc», kaj per\n" -" «r» replenumigas la ĵusan komandon." +" «r cc» oni rulos la plej ĵusan komandon komenciĝantan per «cc», kaj\n" +" per «r» replenumigas la ĵusan komandon.\n" +"\n" +" Elisrstato:\n" +" Sukceso, aÅ­ la elirstato de la plenumita KOMANDO; nenulo, se okazis\n" +" eraro." -# fg [job_spec] +# fg [job_spec] => fg [LABORINDIKO] #: builtins.c:738 -#, fuzzy msgid "" "Move job to the foreground.\n" " \n" @@ -2918,12 +3306,17 @@ msgid "" " Exit Status:\n" " Status of command placed in foreground, or failure if an error occurs." msgstr "" -"Faru la laboron job_spec dialoga kaj la kuranta. Se job_spec\n" -" malestas, apliku la ŝelan koncepton pri la kuranta laboro." +"Movu laboron en la dialogon\n" +"\n" +" Faru la laboron LABORINDIKO dialoga kaj la kuranta. Se\n" +" LABORINDIKO malestas, apliku la ŝelan koncepton pri la kuranta\n" +" laboro.\n" +"\n" +" Elirstato:\n" +" Tiu de la dialogigita komando; aÅ­ malsukceso, se okazis eraro." -# bg [job_spec] +# bg [job_spec] => bg [LABORINDIKO] #: builtins.c:753 -#, fuzzy msgid "" "Move jobs to the background.\n" " \n" @@ -2936,10 +3329,17 @@ msgid "" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." msgstr "" -"Forŝovu la laboron job_spec en la fonon, faru ĝin kvazaÅ­ lanĉita\n" -" kun „&‟. Se nenia laboro estas indikita, apliku la ŝelan koncepton\n" -" pri la kuranta laboro." +"Forŝovu laboron fonen\n" +"\n" +" Forŝovu la laboron LABORINDIKO en la fonon, faru ĝin kvazaÅ­\n" +" lanĉita kun „&‟. Se nenia laboro estas indikita, apliku la\n" +" ŝelan koncepton pri la kuranta laboro.\n" +"\n" +" Elirstato:\\n\"\n" +" Sukceso, kondiĉe ke laborregadon estas ŝaltita kaj ne okazis\n" +" eraro." +# hash [-lr] [-p VOJNOMO] [-dt] [NOMO ...] #: builtins.c:767 msgid "" "Remember or display program locations.\n" @@ -2963,7 +3363,29 @@ msgid "" " Exit Status:\n" " Returns success unless NAME is not found or an invalid option is given." msgstr "" +"Registru aÅ­ vidigu vojnomojn de programoj\n" +"\n" +" Por ĉiu komando NOMO, trovu kaj registru en hakettabelo la\n" +" kompletan vojon al ties programo. Se nenia argumento estas\n" +" donita, eligu la informojn pri la memorataj komandoj.\n" +"\n" +" Opcioj:\n" +" -d Forgesu la registritajn vojojn por ĉiu NOMO\n" +" -l Eligu en formo reuzeblan por enigo\n" +" -p VOJNOMO\tuzu VOJNOMOn kiel kompletan vojon por la NOMO\n" +" -r Forgesu ĉiujn registritajn vojojn\n" +" -t Eligu la registritajn vojojn por ĉiu NOMO, mentante la NOMOn\n" +" titole antaÅ­ ĝia vojo se estas pluraj NOMOj\n" +"\n" +" Argumentoj:\n" +" NOMO Ĉiu NOMO estas serĉota en $PATH kaj registrota en la\n" +"\thakettabelo de registritaj komandoj\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas netrovebla NOMO aÅ­ misa opcio." +# help [-ds] [pattern ...] +# help [-ds] [ŜABLONO ...] #: builtins.c:792 msgid "" "Display information about builtin commands.\n" @@ -2985,12 +3407,31 @@ msgid "" " Returns success unless PATTERN is not found or an invalid option is " "given." msgstr "" +"Vidigu informon pri prmitivaj komandoj\n" +"\n" +" Eligu mallongan resummon pri la primitivaj komandoj. Se ĉeestas\n" +" ŜABLONO, eligu detalan helpon pri ĉiuj komandoj kongruaj kun la\n" +" ŝablono; alie eligu nur liston da temoj.\n" +"\n" +" Opcioj:\n" +" -d\tEligu mallongajn priskribojn de ĉiuj temoj\n" +" -m\tVidigu uzmanieron en la „manpaĝa‟ stilo (kiel la komando „man‟)\n" +" -s\tEligu nur mallongan resumon pri ĉiu trovita kongruaĵo\n" +"\n" +" Argumentoj:\n" +" ŜABLONO Komenca signoĉeno de temtitolo\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se mankas kongruaĵoj por ŜABLONO, aÅ­ aperis\n" +" misa opcio." # ZZZ history [-c] [-d offset] [n] or -# history -awrn [filename] or -# history -ps arg [arg...] +# history -awr [filename] or +# history -ps arg [arg...] => +# history [-c] [-d DEŜOVO] [n] aÅ­ +# history -awr [DOSIERNOMO] aÅ­ +# history -ps ARG [ARG...] #: builtins.c:816 -#, fuzzy msgid "" "Display or manipulate the history list.\n" " \n" @@ -3023,37 +3464,47 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or an error occurs." msgstr "" -"Eligu la liston de enigitaj komandoj kun lininumeroj. La ŝanĝitajn\n" +"Eligu aÅ­ redaktu la historiliston\n" +"\n" +" Eligu la liston de enigitaj komandoj kun lininumeroj. La ŝanĝitajn\n" " liniojn marku per „*‟. Kun argumento n, eligu nur la ĵusajn\n" " n liniojn.\n" "\n" -" La opcio -c forviŝas la tutan historion. La opcio -d forviŝas\n" -" la linion kies numero estas offset. La opcio -w ebligas konservi\n" -" la kurantan historion en la historidosiero; inverse, la opcio\n" -" -r igas legi la dosieron kaj aldoni ĝian enhavon al la kuranta\n" -" historio. La opcio -a aldonigas la historiajn liniojn de la\n" -" kuranta seanco al la historidosiero. La opcio -n igas legi\n" -" ĉiujn ankoraÅ­ ne legitajn liniojn el la historidosiero kaj aldoni\n" -" ilin en la liston de la historio.\n" +" Opcioj:\n" +" -c\tforviŝu la tutan historion (forigu ĉiujn eroj el la listo)\n" +" -d forviŝu la linion kies numero estas DEŜOVO\n" +"\n" +" -a\taldonu la historiliniojn de la kuranta seanco al la\n" +" historidosiero\n" +" -n\tlegu ĉiujn ankoraÅ­ ne legitajn liniojn el la historidosiero\n" +" kaj aldonu ilin en la historiliston\n" +" -r legu la dosieron kaj aldonu ĝian enhavon al la kuranta\n" +" historilisto\n" +" -w konservu la kurantan historion en la historidosiero\n" "\n" -" Se dosiernomo filename ĉeestas, ĝi estas uzata kiel nomo de\n" -" historidosiero; alie, se la variablo $HISTFILE havas valoron,\n" -" ĉi tiu estas uzata; alie uziĝas «~/.bash_history».\n" +" -p plenumu historian anstataÅ­igon por ĉiu el la argumentoj ARG\n" +" kaj eligu la rezulton sen konservi ion en la historilisto\n" "\n" -" La opcio -s enŝovigas la neopciajn argumentojn arg en la\n" -" historion kiel unu apartan linion. La opcio -p igas la ŝelon\n" -" plenumi historian anstataÅ­igon por ĉiu el la argumentoj arg kaj\n" -" eligi la rezulton sen konservi ion en la historio.\n" +" -s enŝovu la neopciajn argumentojn ARG en la historiliston\n" +" kiel unu apartan linion\n" +"\n" +" Se ĉeestas DOSIERNOMO, uzu ĝin kiel nomon de historidosiero;\n" +" alie, se la variablo $HISTFILE havas valoron, uzu ĉi tiun;\n" +" alie uzu «~/.bash_history».\n" "\n" " Se la variablo $HISTTIMEFORMAT havas valoron kaj se ĉi tiu ne\n" -" estas null, tiam ĝi servas kiel formata ĉeno en strftime(3) por\n" +" estas null, tiam ĝi servu kiel formata ĉeno en strftime(3) por\n" " tempostampi ĉiun linion en eligaĵoj de historio. Aliokaze nenia\n" -" tempostampo estas eligata." +" tempostampo estu eligata.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se renkontiĝas mis opcio aÅ­ okazis eraro." # ZZZ jobs [-lnprs] [jobspec ...] or -# jobs -x command [args] +# jobs -x command [args] => +# jobs [-lnprs] [LABORINDIKO ...] aÅ­ +# jobs -x KOMANDO [ARGS] #: builtins.c:852 -#, fuzzy msgid "" "Display status of jobs.\n" " \n" @@ -3076,20 +3527,29 @@ msgid "" " Returns success unless an invalid option is given or an error occurs.\n" " If -x is used, returns the exit status of COMMAND." msgstr "" -"Eligu la liston da aktivaj laboroj. Ĉe la opcio -l eligu, krome,\n" -" la proceznumerojn; ĉe la opcio -p eligu nur la proceznumerojn.\n" -" La opcio -n indikas, ke nur la procezoj kies stato ŝanĝiĝis post\n" -" la lasta informmendo estu listigitaj. Se laborindiko jobspec\n" -" estas donita, nur pri tiu laboro informu.\n" +"Montru la staton de laboroj\n" +"\n" +" Eligu liston da aktivaj laboroj. Se LABORINDIKO estas donita,\n" +" nur pri tiu laboro informu. Senopcie, montru la staton de ĉiuj\n" +" aktivaj laboroj.\n" "\n" -" Ĉe la opcioj -r kaj -s informu, resp., nur pri la laboroj\n" -" aktivaj (rulataj) kaj haltigitaj. Senopcie, eligu la staton de\n" -" la aktivaj laboroj.\n" +" Opcioj:\n" +" -l eligu, krom la normalajn informojn, ankaÅ­ la proceznumerojn\n" +" -n listigu nur la procezojn kies stato ŝanĝiĝis post la lasta\n" +" informmendo\n" +" -p eligu nur la proceznumerojn\n" +" -r informu nur pri la laboroj aktivaj (rulataj)\n" +" -s informu nur pri la laboroj haltigitaj\n" "\n" -" La opcio -x lanĉas la komandon command, antaÅ­e ŝanĝinte ĉiujn\n" -" laborindikojn aperantajn en la argumentoj args je la proceznumero\n" -" de la ĉefprocezo de la grupo." +" La opcio -x lanĉas la KOMANDOn, antaÅ­e ŝanĝinte ĉiujn\n" +" laborindikojn aperantajn en la argumentoj ARGS je la\n" +" proceznumero de la ĉefprocezo de la grupo.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se enestas misa opcio aÅ­ okazis eraro.\n" +" Ĉe „-x‟, la elirstato de la KOMANDO." +# disown [-h] [-ar] [jobspec ...] #: builtins.c:879 msgid "" "Remove jobs from current shell.\n" @@ -3106,11 +3566,27 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option or JOBSPEC is given." msgstr "" +"Forigu laborojn el la kuranta ŝelo\n" +"\n" +" Forigu ĉiun laboron indikitan per argumento LABORINDIKO el\n" +" la tabelo de aktivaj laboroj. Se nenia laboro estas indikita,\n" +" apliku la ŝelan koncepton pri la kuranta laboro.\n" +"\n" +" Opcioj:\n" +" -a forigu ĉiujn laborojn el la labortabelo\n" +" -h anstataÅ­ forigi laboron el la tabelo, marku ĝin tiel, ke la\n" +" signalo SIGHUP ne estu plusendita al la laboro(j) kiam tian\n" +" signalon ricevas la ŝelo\n" +" -r forigu nur rulatajn laborojn\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se enestas misa opcio aÅ­ LABORINDIKO." -# ZZZ: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or -# kill -l [sigspec] +# ZZZ: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or +# kill -l [sigspec] => +# kill [-s SIGSNOM | -n SIGNUM | -SIGNOM] PN | LABORINDIKO ... aÅ­ +# kill -l [SIGNOM] #: builtins.c:898 -#, fuzzy msgid "" "Send a signal to a job.\n" " \n" @@ -3131,22 +3607,29 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or an error occurs." msgstr "" -"Sendu al la procezoj, indikitaj per sia proceznumero pid (aÅ­\n" -" per la laborindiko job) la signalon sigspec. Se sigspec\n" -" malestas, sendu SIGTERM.\n" +"Sendu signalon al laboro\n" +"\n" +" Sendu al la procezoj, indikitaj per sia proceznumero PN (aÅ­\n" +" per la LABORINDIKO) la signalon SIGNOM aÅ­ SIGNUM. Se nek\n" +" SIGNUM nek SIGNOM enestas, sendu SIGTERM.\n" "\n" -" La opcio -l servas por listigi signalnomojn; ĝin povas sekvi\n" -" entjeraj argumentoj, signalnumeroj, ĉeeste de kiuj nur la al\n" -" ili respondaj signalnomoj estas eligataj.\n" +" Opcioj:\n" +" -s\tSIGNOM estas nomo de signalo\n" +" -n\tSIGNUM estas numero de signalo\n" +" -l listigu signalnomojn; la eventuale sekvantaj entjeraj\n" +" argumentoj estas signalnumeroj, ĉeeste de kiuj nur la al\n" +" ili respondaj signalnomoj estu eligataj.\n" "\n" -" kill estas primitiva ŝelkomando pro du kaÅ­zoj: unue, ĝi ebligas\n" -" uzi laborindikojn anstataÅ­ proceznumerojn; kaj due, se la\n" -" maksimuma nombro de kreeblaj estas atingita, ne necesas lanĉi\n" -" kroman procezon por ĉesigi iun alian." +" „kill‟ estas primitiva ŝelkomando pro du kaÅ­zoj:\n" +" unue, ĝi ebligas uzi laborindikojn anstataÅ­ proceznumerojn;\n" +" kaj due, se la maksimuma nombro de kreeblaj procezoj estas\n" +" atingita, ne necesas lanĉi kroman procezon por ĉesigi iun alian.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se enestas misa opcio aÅ­ okazis eraro." # let arg [arg ...] #: builtins.c:921 -#, fuzzy msgid "" "Evaluate arithmetic expressions.\n" " \n" @@ -3190,15 +3673,19 @@ msgid "" " Exit Status:\n" " If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." msgstr "" -"Ĉiu arg estas komputenda aritmetika esprimo. La komputado uzas\n" -" longajn entjerojn sen kontrolo pri trooj; tamen divido per 0\n" +"Komputu aritmetikan esprimon\n" +"\n" +" Ĉiu arg estas komputenda aritmetika esprimo. La komputado uzas\n" +" fikslongajn entjerojn sen kontrolo pri trooj; tamen divido per 0\n" " estas kaptata kaj raportata kiel eraro. En la sekvanta listo\n" " da operacioj la samprioritataj operacisimboloj aperas kune.\n" -" La grupoj estas aranĝitaj laÅ­ malkresko de prioritato.\n" +" La grupoj estas aranĝitaj laÅ­ malkresko de ligforto.\n" "\n" "\tnomo++, nomo--\tpostkrementoj de variablo\n" +"\t++nomo, --nomo\tantaÅ­krementoj de variablo\n" "\t-, +\t\tunulokaj minus, plus\n" "\t!, ~\t\tlogika kaj laÅ­bita negoj\n" +" ** potencigo\n" "\t*, /, %\t\tmultipliko, divido, resto\n" "\t+, -\t\tadicio, subtraho\n" "\t<<, >>\t\tlaÅ­bitaj ŝovoj maldekstren kaj dekstren\n" @@ -3213,22 +3700,25 @@ msgstr "" "\t\t\tkondiĉa esprimo\n" "\t=, *=, /=, %=,\n" "\t+=, -=, <<=, >>=,\n" -"\t&=, ^=, |=\tvalorizo\n" +"\t&=, ^=, |=\tvalorizoj\n" "\n" -" La ŝelvariabloj uzeblas kiel operandoj. En esprimo la nomon de\n" -" variablo anstataÅ­as ĝia valoro (altipigita al longa entjero).\n" +" Ŝelvariabloj uzeblas kiel operandoj. En esprimo la nomon de\n" +" variablo anstataÅ­as ĝia valoro (altipigita al fikslonga entjero).\n" " Por tia uzo en esprimo variablo ne bezonas havi ŝaltita sian\n" -" atributon integer (entjera).\n" +" atributon „integer‟ (entjera).\n" "\n" -" La operacioj plenumiĝas laÅ­ siaj prioritatoj. La enkrampigitaj\n" -" subesprimoj plenumiĝas unue, kaj tio ebligas ĉirkaÅ­iri la supre\n" -" priskribitajn regulojn pri la prioritatoj.\n" +" La operacioj plenumiĝas laÅ­ la ligforto de siaj operacisignoj. La\n" +" enkrampigitaj subesprimoj plenumiĝas unue, kaj tio ebligas\n" +" ĉirkaÅ­iri la supre priskribitajn regulojn pri la ligfortoj.\n" "\n" +" Elirstato:\n" " Se la komputo de la lasta arg donas 0, la komando „let‟\n" " liveras 1; alie ĝi liveras 0." -# read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] -# [-d delim] [name ...] +# read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] +# [-t timeout] [-u fd] [name ...] +# read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO] [-n NSIGN] [-p INVIT] +# [-t TLIM] [-u DN] [NOMO ...] #: builtins.c:966 #, fuzzy msgid "" @@ -3254,7 +3744,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3273,36 +3767,48 @@ msgid "" "out,\n" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -"Legu unu linion el la ĉefenigujo, aÅ­ el la dosiero indikita\n" -" per dosiernumero fd, se la opcio -u estas donita; la unuan\n" -" vorton ricevu la unua argumento name; la duan, la dua name ktp;\n" -" la lasta name ricevu ĉiujn restantajn vortojn. Nur la signoj\n" -" troveblaj en la variablo $IFS rolas kiel vortodisigiloj. Se\n" -" nenia name estas donita, konservu la legitan linion en la\n" +"Legu linion el la ĉefenigujo kaj disigu ĝin en kampojn\n" +"\n" +" Legu unu linion el la ĉefenigujo, aÅ­ el la dosiero indikita\n" +" per dosiernumero DN, se la opcio -u estas donita. La linion\n" +" disigu en kampojn, kiel ĉe vortodisigo, kaj la unuan vorton ricevu\n" +" la unua argumento NOMO; la duan, la dua NOMO ktp; la lasta NOMO\n" +" ricevu ĉiujn restantajn vortojn. Nur la signoj troveblaj en la\n" +" variablo $IFS rolas kiel vortodisigiloj.\n" +"\n" +" Se nenia NOMO estas donita, konservu la legitan linion en la\n" " variablo REPLY.\n" "\n" -" La opcio -r indikas «krudan legadon», ke la deklivo „\\‟ estas\n" -" ordinara signo kiu ne rolas kiel eskapsigno.\n" -" La opcio -d enkondukas finilon delim, ĉe kies unua signo la\n" -" legado ĉesu (anstataÅ­ ĉe la normala linifinilo).\n" -" La opcio -p kaÅ­zas eligon de la invitĉeno prompt sen liniavanco\n" -" antaÅ­ la atendata enigo.\n" -" La opcio -a igas konservi la legatajn vortojn en sinsekvaj\n" -" elementoj de tabelo array, komencante per la nula.\n" -" Se la opcio -e estas donita kaj la ŝelo estas dialoga, la\n" -" linio estas legata per la funkcio readline().\n" -" Se la opcio -n estas donita kun argumento nchars ne egala al 0,\n" -" read finiĝas leginte nchars da signoj.\n" -" La opcio -s silentigas la eÄ¥on de la terminala enigo.\n" -"\n" -" La opcio -t igas la komandon read ĉesiĝi kun fiaska elirstato se\n" -" kompleta linio da enigaĵo ne estas ricevita dum timeout da\n" -" sekundoj. Se la variablo TMOUT havas valoron, ĉi tiu estas\n" -" uzata kiel defaÅ­lta atendolimo. La elirstato estas 0, krom se\n" -" renkontiĝas dosierfino, atendolimo estas atingita, aÅ­ nevalida\n" -" dosiernumero estas indikita ĉe -u." - -#: builtins.c:1006 +" Opcioj:\n" +" -a TABELO\tla legatajn vortojn konservu en la sinsekvaj anoj de\n" +"\t\tTABELO, komencante ekde la indico 0\n" +" -d DISIG\tlegu ĝis la unua signo de la disigilo DISIG (anstataÅ­\n" +"\t\tlegi ĝis linifino)\n" +" -e\t\tuzu Readline por akiri la linion en dialoga ŝelo\n" +" -i TEKSTO\tuzu TEKSTOn kiel komencan tekston por Readline\n" +" -n NSIGN\tĉesu leginte NSIGN da signoj (anstataÅ­ legi ĝis\n" +"\t\tlinifino)\n" +" -p INVIT\teligu de la invitĉenon\tINVIT sen liniavanco antaÅ­ la\n" +"\t\tatendata enigo\n" +" -r\t\tla deklivo „\\‟ estu ordinara signo (ne eskapsigno)\n" +" -s\t\tsilentigu la eÄ¥on de la terminala enigo\n" +" -t TLIM\tla komando read ĉesiĝu kun fiaska elirstato se\n" +"\t\tkompleta linio da enigaĵo ne estas ricevita dum\t TLIM\n" +"\t\tda sekundoj. Se la variablo TMOUT havas valoron, ĉi\n" +"\t\ttiu estas uzata kiel defaÅ­lta atendolimo. TLIM povas\n" +"\t\testi frakcio. Se TLIM estas 0,\t read sukcesas nur se\n" +"\t\tla engaĵo pretas ĉe la indikita dosiernumero. La\n" +"\t\telirstato estas pli granda ol 128 se la atendotempo\n" +"\t\testas atingita\n" +" -u DN\tlegu per la dosiernunero DN anstataÅ­ el la ĉefenigujo\n" +"\n" +" Elirstato:\n" +" Ĝi estas 0, krom se renkontiĝas dosierfino, aÅ­ atendolimo estas\n" +" atingita, aÅ­ -u indikas nevalidan dosiernumeron." + +# return [n] +# return [N] +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3313,10 +3819,18 @@ msgid "" " Exit Status:\n" " Returns N, or failure if the shell is not executing a function or script." msgstr "" +"Revenu el ŝelfunkcio\n" +"\n" +" Igas la funkcion aÅ­ punkte vokitan („.‟, „source‟) skripton finiĝi\n" +" kaj liveri la donitan valoron N kiel elirstaton. Se N mankas,\n" +" la elirstato estas tiu de la ĵusa komando.\n" +"\n" +" Elirstato:\n" +" N, aÅ­ malsukceso se la ŝelo ne plenumas ŝelfunkcion aÅ­ skripton." -# set [--abefhkmnptuvxBCHP] [-o option] [arg ...] -#: builtins.c:1019 -#, fuzzy +# set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...] +# set [--abefhkmnptuvxBCHP] [-o OPCINOMO] [ARG ...] +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3397,79 +3911,90 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given." msgstr "" -"-a\tMarku eksportendaj la variablojn ŝanĝitajn aÅ­ kreitajn.\n" -" -b\tTuj sciigu pri finiĝo de fonaj laboroj.\n" -" -e\tEliru tuj se iu komando finiĝis kun elirstato alia ol 0.\n" -" -f\tNe malvolvu ĵokerojn en dosiernomoj.\n" -" -h\tRegistru en hakettabelo la situon de komandoj serĉataj.\n" +"Donu aÅ­ forprenu valorojn de ŝelvariabloj kaj numerparametroj.\n" +"\n" +" Ŝanĝu la valoron de ŝelatributoj kaj numerparametroj, aÅ­ vidigu la\n" +" nomojn kaj valorojn de ŝelvariabloj.\n" +"\n" +" Opcioj:\n" +" -a\tMarku eksportendaj la variablojn ŝanĝitajn aÅ­ kreitajn\n" +" -b\tTuj sciigu pri finiĝo de fonaj laboroj\n" +" -e\tEliru tuj se ajna komando finiĝis kun elirstato alia ol 0\n" +" -f\tMalŝaltu generadon de dosiernomoj (globbing)\n" +" -h\tRegistru en hakettabelo la situon de komandoj serĉataj\n" " -k\tĈiujn valorizojn en ajna parto de komandolinio rigardu\n" -" kiel valorizojn de ŝelvariabloj por la medio de la komando,\n" -"\tne nur la valorizojn antaÅ­antajn la komandonomon.\n" -" -m\tAktivigu la laborregadon.\n" -" -n\tLegu la komandojn sen plenumi ilin.\n" -" -o option\n" -"\tAktivigu la variablon respondan al la opcionomo option:\n" -"\t allexport\tsame kiel -a\n" -"\t braceexpand\tsame kiel -B\n" +"\tkiel valorizojn de ŝelvariabloj por la labormedio de la\n" +"\tkomando, ne nur la valorizojn antaÅ­ la komandonomo\n" +" -m\tAktivigu la laborregadon\n" +" -n\tLegu la komandojn sen plenumi ilin\n" +" -o OPCINOMO\n" +"\tAktivigu la variablon respondan al la OPCIONOMO:\n" +"\t allexport\tsamkiel -a\n" +"\t braceexpand\tsamkiel -B\n" "\t emacs\tuzu emakseskan interfacon por liniredaktado\n" -"\t errexit\tsame kiel -e\n" -"\t errtrace\tsame kiel -E\n" -"\t functrace\tsame kiel -T\n" -"\t hashall\tsame kiel -h\n" -"\t histexpand\tsame kiel -H\n" +"\t errexit\tsamkiel -e\n" +"\t errtrace\tsamkiel -E\n" +"\t functrace\tsamkiel -T\n" +"\t hashall\tsamkiel -h\n" +"\t histexpand\tsamkiel -H\n" "\t history\tebligu komandohistorion\n" -"\t ignoreeof\tla ŝelo ne finiĝos leginte dosierfinilon\n" +"\t ignoreeof\tla ŝelo ne finiĝu leginte dosierfinilon\n" "\t interactive-comments\n" "\t\t\ttoleru komentojn en dialogaj komandoj\n" -"\t keyword\tsame kiel -k\n" -"\t monitor\tsame kiel -m\n" -"\t noclobber\tsame kiel -C\n" -"\t noexec\tsame kiel -n\n" -"\t noglob\tsame kiel -f\n" -"\t notify\tsame kiel -b\n" -"\t nounset\tsame kiel -u\n" -"\t onecmd\tsame kiel -t\n" -"\t physical\tsame kiel -P\n" +"\t keyword\tsamkiel -k\n" +"\t monitor\tsamkiel -m\n" +"\t noclobber\tsamkiel -C\n" +"\t noexec\tsamkiel -n\n" +"\t noglob\tsamkiel -f\n" +"\t notify\tsamkiel -b\n" +"\t nounset\tsamkiel -u\n" +"\t onecmd\tsamkiel -t\n" +"\t physical\tsamkiel -P\n" "\t pipefail\tla elirstato de dukto estu la elirstato\n" "\t\t\tde la lasta komando finiĝinta nenule, aÅ­\n" "\t\t\t0, se neniu komando alie finiĝis\n" "\t posix\tŝanĝu la konduton de Baŝo ĉie kie ĝia defaÅ­lta\n" -"\t\t\tfunkciado devias disde Pozikso 1003.2 tiel\n" -"\t\t\tke ĝi konformu al tiu normo\n" -"\t privileged\tsame kiel -p\n" -"\t verbose\tsame kiel -v\n" +"\t\t\tfunkciado devias disde Pozikso, tiel ke ĝi\n" +"\t\t\tkonformu al tiu normo\n" +"\t privileged\tsamkiel -p\n" +"\t verbose\tsamkiel -v\n" "\t vi\t\tuzu vi-eskan interfacon por liniredaktado\n" -"\t xtrace\tsame kiel -x\n" +"\t xtrace\tsamkiel -x\n" " -p\tPrivilegia reĝimo, aktiviĝas meme kiam la reala kaj efektiva\n" "\tidentoj de la uzanto malkongruas. La dosiero $ENV ne estas\n" -"\ttraktata nek la ŝelfunkcioj, importataj el la medio.\n" +"\ttraktata, nek la ŝelfunkcioj, importataj el la medio.\n" "\tMalaktivigo de tiu opcio ŝanĝas la efektivajn uid kaj gid\n" -"\tlaÅ­ la realaj uid kaj gid.\n" -" -t\tFinu la ŝelon leginte kaj plenuminte unu komandon.\n" -" -u\tProvo anstataÅ­igi senvaloran variablon estu eraro.\n" -" -v\tEligu la komandoliniojn legatajn.\n" -" -x\tEligu la plenumotajn komandojn kaj iliajn argumentojn.\n" +"\tlaÅ­ la realaj uid kaj gid\n" +" -t\tFinu la ŝelon leginte kaj plenuminte unu komandon\n" +" -u\tProvo anstataÅ­igi senvaloran variablon estu eraro\n" +" -v\tEligu la komandoliniojn legatajn\n" +" -x\tEligu la plenumotajn komandojn kaj iliajn argumentojn\n" " -B\tLa ŝelo faru vinkulmalvolvon\n" " -C\tSe aktiva, malebligu skribdifekti ekzistantajn ordinarajn\n" -"\tdosierojn per alidirektado de la eligo.\n" +"\tdosierojn per alidirektado de la eligo\n" " -E\tSe aktiva, la ERR-kaptilon (ERR trap) heredas la ŝelaj\n" "\tfunkcioj\n" -" -H\tEbligu atingi la protokolon !-stile. DefaÅ­lte la opcio estas\n" +" -H\tEbligu atingi la historion !-stile. DefaÅ­lte la opcio estas\n" "\taktiva en la dialogaj ŝeloj.\n" -" -P\tNe sekvu simbolajn ligilojn plenumante tiajn komandojn, kiel\n" -"\t„cd‟ por ŝanĝi la kurantan dosierujon.\n" +" -P\tNe sekvu simbolajn ligilojn plenumante komandojn ŝanĝantajn\n" +"\tla kurantan dosierujon („cd‟ ktp)\n" " -T\tSe aktiva, la DEBUG-kaptilon (DEBUG trap) heredas la ŝelaj\n" "\tfunkcioj\n" -" -\tLa restantajn argumentojn uzu por valorizi la poziciajn\n" -"\tparametrojn. La opcioj -x kaj -v malaktiviĝas.\n" +" -\tLa restantajn argumentojn uzu por valorizi la\n" +" numerparametrojn. La opcioj -x kaj -v malaktiviĝas.\n" +"\n" +" Uzante la signon + anstataÅ­ - vi povas malŝalti la opcion. La\n" +" opciojn ankaÅ­ eblas uzi ĉe la voko de la ŝelo. La kuranta aro da\n" +" aktivaj opcioj troveblas en $-. La restantaj n argumentoj ARG\n" +" iĝas valoroj de la numervariabloj $1, $2 ... $n (en tiu ordo).\n" +" Senargumente, eligu ĉiujn ŝelvariablojn.\n" "\n" -" Uzante la signon + anstataÅ­ - vi povas malŝalti la opcion. La opciojn\n" -" ankaÅ­ eblas uzi ĉe la voko de la ŝelo. La kuranta aro da aktivaj\n" -" opcioj troveblas en $-. La restantaj n argumentoj arg estas\n" -" poziciaj, kaj per ili estas valorizataj, respektive, $1, $2 ... $n.\n" -" Se nenia arg estas donita, ĉiuj ŝelvariabloj estas eligataj." +" Elirstato:\n" +" Sukceso, krom se renkontiĝas misa opcio." -#: builtins.c:1101 +# unset [-f] [-v] [name ...] +# unset [-f] [-v] [NOMO ...] +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3488,8 +4013,26 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" +"Forigu valorojn kaj atributojn de ŝelaj funkcioj kaj variabloj\n" +"\n" +" Por ĉiu NOMO, forigu la respondan variablon aÅ­ funkcion.\n" +"\n" +" Opcioj:\n" +" -f\ttraktu ĉiun NOMOn kiel funkcion\n" +" -v traktu ĉiun NOMOn kiel variablon\n" +"\n" +" Se neniu el la du opcioj estas indikita, „unset‟ unue provos\n" +" forigi variablon, kaj se tia ne troviĝos, funkcion.\n" +"\n" +" Iujn variablojn ne eblas forigi. Vd ankaÅ­ la helpon pri\n" +" „readonly‟.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperis misa opcio aÅ­ NOMO estas nurlega." -#: builtins.c:1121 +# export [-fn] [name[=value] ...] or export -p +# export [-fn] [NOMO[=VALORO] ...] aÅ­ export -p +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3507,8 +4050,25 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" +"Marku ŝelvariablojn kiel eksportajn\n" +"\n" +" Marku la NOMOjn por aÅ­tomata eksporto en la medion de la\n" +" plenumotaj komandoj. Se ĉeestas VALORO, uzu ĝin por valorizi\n" +" NOMOn antaÅ­ ol eksporti.\n" +"\n" +" Opcioj:\n" +" -f\ttemas pri ŝelfunkcioj\n" +" -n\tforviŝu la eksportomarkon de la NOMOj\n" +" -p\teligu la liston de ĉiuj eksportaj variabloj kaj funkcioj\n" +"\n" +" La opcio „--‟ ĉesigas pluan opcitraktadon.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperis nevalida NOMO aÅ­ misa opcio." -#: builtins.c:1140 +# readonly [-af] [name[=value] ...] or readonly -p +# readonly [-aAf] [NOMO[=VALORO] ...] aÅ­ readonly -p +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3527,8 +4087,25 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" +"Faru ŝelvariablojn neŝanĝeblaj\n" +"\n" +" La donitaj NOMOj iĝas nurlegaj kaj la valorojn de tiuj nomoj\n" +" ne povas ŝanĝi posta valorizo. Se ĉeestas VALORO, uzu ĝin por\n" +" valorizi la NOMOn antaÅ­ ol fari ĝin nurlega.\n" +"\n" +" Opcioj:\n" +" -a\ttemas pri pozicitabela signifo de plursignifa NOMO\n" +" -A\ttemas pri asocitabela signifo de plursignifa NOMO\n" +" -f\ttemas pri ŝelfunkcia signifo de plursignifa NOMO\n" +" -p\teligu ĉiujn nurlegajn variablojn kaj funkciojn\n" +"\n" +" La opcio „--‟ ĉesigas pluan opcitraktadon.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas nevalida nomo aÅ­ misa opcio." -#: builtins.c:1161 +# shift [n] +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3538,10 +4115,14 @@ msgid "" " Exit Status:\n" " Returns success unless N is negative or greater than $#." msgstr "" +"Ŝovu numerparametrojn\n" +"\n" +" La numerparametrojn $N+1, $N+2 ... renumeru al $1, $2 ...\n" +" Se N ne estas indikita, uzu 1 anstataÅ­e." # source filename [arguments] -#: builtins.c:1173 builtins.c:1188 -#, fuzzy +# source DOSIERNOMO [ARGUMENTOJ] +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3554,12 +4135,19 @@ msgid "" " Returns the status of the last command executed in FILENAME; fails if\n" " FILENAME cannot be read." msgstr "" -"Legu kaj plenumu la komandojn el dosiernomo filename kaj\n" -" revenu. La vojoj el la variablo $PATH estas uzataj por trovi\n" -" la dosierujon de filename. La eventualaj argumentoj\n" -" arguments iĝas la poziciaj parametroj por plenumo de filename." +"Plenumu komandojn el dosiero en la kuranta ŝelo\n" +"\n" +" Legu kaj plenumu la komandojn el DOSIERNOMO en la kuranta ŝelo.\n" +" Uzu la vojojn el la variablo $PATH por trovi la dosierujon de\n" +" DOSIERNOMO. La eventualaj ARGUMENTOJ iĝas la numerparametroj por\n" +" plenumo de DOSIERNOMO.\n" +"\n" +" Elirstato:\n" +" Tiu de la komando laste plenumita en DOSIERNOMO; malsukceso, se\n" +" DOSIERNOMO ne legeblas." -#: builtins.c:1204 +# suspend [-f] +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3572,10 +4160,20 @@ msgid "" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." msgstr "" +"Haltetigu la plenumon de la ŝelo\n" +"\n" +" Haltetigu la plenumon de la ŝelo ĝis ĝi ricevos la signalon SIGCONT.\n" +" Krom se per superforto, salutan ŝelon ne eblas haltetigi.\n" +"\n" +" Opcio:\n" +" -f\tSuperforte haltetu, eĉ se la ŝelo estas saluta ŝelo\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se laborregado estas malŝaltita aÅ­ okazis eraro." # test [expr] -#: builtins.c:1220 -#, fuzzy +# test [ESPRIMO] +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3651,69 +4249,76 @@ msgid "" " Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" " false or an invalid argument is given." msgstr "" -"Liveru elirstaton 0 (vera) aÅ­ 1 (malvera) laÅ­ la rezulto de\n" -" komputado de la esprimo expr. La esprimoj povas esti unulokaj\n" -" aÅ­ dulokaj. La unulokaj plejparte servas por determini la\n" -" staton de dosiero. Krome, estas operacioj super ĉenoj kaj la\n" +"Komputu kondiĉan esprimon\n" +"\n" +" Liveru elirstaton 0 (vera) aÅ­ 1 (malvera) laÅ­ la rezulto de\n" +" komputado de la ESPRIMO. La esprimoj povas esti unulokaj aÅ­\n" +" dulokaj. La unulokaj plejparte servas por determini la \n" +" statuson de dosiero. Krome, estas operacioj super ĉenoj kaj la\n" " nombrokomparaj operacioj.\n" "\n" " Operacioj super dosieroj:\n" "\n" -"\t-a DOSIERO\tVera se DOSIERO ekzistas.\n" -"\t-b DOSIERO\tVera se DOSIERO estas por bloka eneligo.\n" -"\t-c DOSIERO\tVera se DOSIERO estas por bajta eneligo.\n" -"\t-d DOSIERO\tVera se DOSIERO estas dosierujo.\n" -"\t-e DOSIERO\tVera se DOSIERO ekzistas.\n" -"\t-f DOSIERO\tVera se DOSIERO ekzistas kaj estas ordinara.\n" -"\t-g DOSIERO\tVera se DOSIERO havas set-group-id = 1.\n" -"\t-h DOSIERO\tVera se DOSIERO estas simbola ligilo.\n" -"\t-L DOSIERO\tVera se DOSIERO estas simbola ligilo.\n" -"\t-k DOSIERO\tVera se la DOSIERO havas sticky = 1.\n" -"\t-p DOSIERO\tVera se DOSIERO estas nomhava dukto.\n" -"\t-r DOSIERO\tVera se vi rajtas legi DOSIEROn.\n" -"\t-s DOSIERO\tVera se DOSIERO ekzistas kaj longas pli ol 0.\n" -"\t-S DOSIERO\tVera se DOSIERO estas kontaktingo („socket‟).\n" -"\t-t DNUMERO\tVera se la dosiero DNUMERO estas terminala.\n" -"\t-u DOSIERO\tVera se DOSIERO havas set-user-id = 1.\n" -"\t-w DOSIERO\tVera se vi rajtas skribi en DOSIEROn.\n" -"\t-x DOSIERO\tVera se vi rajtas lanĉi DOSIEROn.\n" -"\t-O DOSIERO\tVera se DOSIERO estas via dosiero.\n" -"\t-G DOSIERO\tVera se DOSIERO apartenas al via grupo.\n" -"\t-N DOSIERO\tVera se DOSIERO ŝanĝiĝis post la lasta lego.\n" +"\t-a DOSIERO\tVera se DOSIERO ekzistas\n" +"\t-b DOSIERO\tVera se DOSIERO estas por bloka eneligo\n" +"\t-c DOSIERO\tVera se DOSIERO estas por bajta eneligo\n" +"\t-d DOSIERO\tVera se DOSIERO estas dosierujo\n" +"\t-e DOSIERO\tVera se DOSIERO ekzistas\n" +"\t-f DOSIERO\tVera se DOSIERO ekzistas kaj estas ordinara\n" +"\t-g DOSIERO\tVera se DOSIERO havas set-group-id = 1\n" +"\t-h DOSIERO\tVera se DOSIERO estas simbola ligilo\n" +"\t-L DOSIERO\tVera se DOSIERO estas simbola ligilo\n" +"\t-k DOSIERO\tVera se la DOSIERO havas sticky = 1\n" +"\t-p DOSIERO\tVera se DOSIERO estas nomhava dukto\n" +"\t-r DOSIERO\tVera se vi rajtas legi DOSIEROn\n" +"\t-s DOSIERO\tVera se DOSIERO ekzistas kaj longas pli ol 0\n" +"\t-S DOSIERO\tVera se DOSIERO estas kontaktingo („socket‟)\n" +"\t-t DNUMERO\tVera se la dosiero DNUMERO estas terminala\n" +"\t-u DOSIERO\tVera se DOSIERO havas set-user-id = 1\n" +"\t-w DOSIERO\tVera se vi rajtas skribi en DOSIEROn\n" +"\t-x DOSIERO\tVera se vi rajtas lanĉi DOSIEROn\n" +"\t-O DOSIERO\tVera se DOSIERO estas via dosiero\n" +"\t-G DOSIERO\tVera se DOSIERO apartenas al via grupo\n" +"\t-N DOSIERO\tVera se DOSIERO ŝanĝiĝis post la lasta lego\n" "\n" "\tD_RO1 -nt D_RO2\tVera se la dosiero D_RO1 estas pli freŝa\n" -"\t\t\t(laÅ­ la ŝanĝodato) ol la dosiero D_RO2.\n" -"\tD_RO1 -ot D_RO2\tVera se D_RO1 estas malpli freŝas ol D_RO2.\n" -"\tD_RO1 -ef D_RO2\tVera se D_RO1 estas rekta ligilo al D_RO2.\n" +"\t\t\t(laÅ­ la ŝanĝodato) ol la dosiero D_RO2\n" +"\tD_RO1 -ot D_RO2\tVera se D_RO1 estas malpli freŝas ol D_RO2\n" +"\tD_RO1 -ef D_RO2\tVera se D_RO1 estas rekta ligilo al D_RO2\n" "\n" " Operacioj super ĉenoj:\n" "\n" -"\t-z ĈENO\t\tVera se la ĈENO estas vakua.\n" -"\t-n ĈENO\t\tVera se la ĈENO ne estas vakua\n" -"\tĈENO\t\tVera se la ĈENO ne estas vakua\n" -"\tĈENO1 = ĈENO2\tVera se la ĉenoj estas egalaj.\n" -"\tĈENO1 != ĈENO2\tVera se la ĉenoj ne estas egalaj.\n" +"\t-z ĈENO\t\tVera se ĈENO estas vakua\n" +"\t-n ĈENO\t\tVera se ĈENO ne estas vakua\n" +"\tĈENO\t\tVera se ĈENO ne estas vakua\n" +"\tĈENO1 = ĈENO2\tVera se la ĉenoj estas egalaj\n" +"\tĈENO1 != ĈENO2\tVera se la ĉenoj ne estas egalaj\n" "\tĈENO1 < ĈENO2\tVera se ĈENO1 leksikografie antaÅ­as la\n" -"\t\t\tĉenon ĈENO2.\n" +"\t\t\tĉenon ĈENO2\n" "\tĈENO1 > ĈENO2\tVera se ĈENO1 leksikografie sekvas la\n" -"\t\t\tĉenon ĈENO2.\n" +"\t\t\tĉenon ĈENO2\n" "\n" " Diversaj operacioj:\n" "\n" -"\t! ESPR\t\tVera se la esprimo ESPR estas falsa.\n" -"\tESPR1 -a ESPR2\tVera se ambaÅ­ esprimoj estas veraj.\n" -"\tESPR1 -o ESPR2\tVera se ajna el la esprimoj estas vera.\n" +" -o OPCIO Vera se la ŝelopcio OPCIO estas ŝaltita\n" +"\t! ESPR\t\tVera se la esprimo ESPR estas falsa\n" +"\tESPR1 -a ESPR2\tVera se ambaÅ­ esprimoj estas veraj\n" +"\tESPR1 -o ESPR2\tVera se ajna el la esprimoj estas vera\n" "\n" "\targ1 KP arg2\tAritmetikaj komparoj. KP estas iu el la\n" -"\t\t\trilatoj -eq, -ne, -lt, -le, -gt, -ge.\n" +"\t\t\trilatoj -eq, -ne, -lt, -le, -gt, -ge\n" "\n" " La aritmetikaj komparoj liveras veron se arg1 estas respektive\n" " egala, neegala, malplia ol, malplia aÅ­ egala al, plia ol,\n" -" plia aÅ­ egala al arg2." +" plia aÅ­ egala al arg2.\n" +"\n" +" Elirstato:\n" +" Sukceso, se la rezulto de la komputo de ESPRIMO estas vero;\n" +" malsukceso, se la rezulto estas malvero aÅ­ renkontiĝas misa\n" +" argumento." # [ arg... ] -#: builtins.c:1296 -#, fuzzy +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3723,7 +4328,7 @@ msgstr "" "Ĉi tiu estas sinonimo de la primitivo „test‟; tamen la lasta\n" " argumento devas esti „]‟ fermanta la esprimon komencitan per „[‟." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3734,11 +4339,17 @@ msgid "" " Exit Status:\n" " Always succeeds." msgstr "" +"Vidigu proceztempojn\n" +"\n" +" Eligu la tempojn akumulitajn de la uzanto kaj de la kerno\n" +" por la ŝelo kaj ĝiaj procezidoj.\n" +"\n" +" Elirstato:\n" +" Ĉiam sukcesa." -# ZZZ: trap [arg] [signal_spec ...] or -# trap -l -#: builtins.c:1317 -#, fuzzy +# trap [-lp] [[arg] signal_spec ...] +# trap [-lp] [[ARG] SIGNALINDIKO ...] +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3773,26 +4384,39 @@ msgid "" " Returns success unless a SIGSPEC is invalid or an invalid option is " "given." msgstr "" -"La komando arg estas legota kaj plenumota kiam la ŝelo ricevos\n" -" (iun) signalon signal_spec. Se nenia arg estas donita, ĉiuj\n" -" sian komencan valoron. Se ARG estas vakua ĉeno, ĉiuj signaloj\n" -" signal_spec estos malatentataj de la ŝelo kaj de la komandoj\n" -" kiujn ĝi vokas.\n" -"\n" -" Se inter la signaloj signal_spec estas „EXIT‟ (0), tiam arg de\n" -" la komando plenumiĝos ĉe la eliro el la ŝelo.\n" -" Se signal_spec estas DEBUG, arg plenumiĝos post ĉiu komando.\n" -" La opcio „-p‟ ebligas eligi la komandojn plenumotajn laÅ­ ĉiu\n" -" signalo signal_spec. Se estas donita neniu argumento aÅ­ nura\n" -" „-p‟, trap listigas la komandojn por trakti ĉiun kaptendan\n" -" signalon.\n" -"\n" -" Ĉiu signal_spec estas aÅ­ signalnomo el , aÅ­\n" -" signalnumero. „trap -l‟ listigas la signalnomojn kun la numeroj.\n" -" Signalon signalindiko eblas sendi al la ŝelo per la komando\n" -" «kill -signalindiko $$»." - -#: builtins.c:1349 +"Kaptu signalojn kaj aliajn eventojn\n" +"\n" +" Difinu kaj aktivigu traktilojn plenumotajn kiam ŝelo ricevos\n" +" signalojn aÅ­ ĉe aliaj kondiĉoj.\n" +"\n" +" La komando ARG estas legota kaj plenumota kiam la ŝelo ricevos\n" +" signalon el SIGNALINDIKO. Se ARG malestas (kaj SIGNALINDIKO\n" +" konsistas el unu sola signalo) aÅ­ estas „-‟, ĉiuj indikitaj\n" +" signaloj rericevas sian komencan valoron. Se ARG estas vakua\n" +" ĉeno, la ŝelo mem kaj komandoj el ĝi vokitaj malatentos ĉiujn\n" +" signalojn de SIGNALINDIKO.\n" +"\n" +" Se inter la signaloj SIGNALINDIKO estas „EXIT‟ (aÅ­ 0), tiam ARG de\n" +" la komando plenumiĝos ĉe la eliro el la ŝelo. Se en SIGNALINDIKO\n" +" estas „DEBUG‟, ARG plenumiĝos post ĉiu komando.\n" +"\n" +" Senargumente trap listigas komandojn plenumotajn laÅ­ ĉiu signalo.\n" +"\n" +" Opcioj:\n" +" -l\tlistigu la signalnomojn kun la numeroj\n" +" -p vidigu la trap-komandojn por trakti ĉiun SIGNALINDIKOn\n" +"\n" +" Ĉiu SIGNALINDIKO estas aÅ­ signalnomo el , aÅ­\n" +" signalnumero. La signalnomoj estas usklecoblindaj, kaj la\n" +" prefikso „SIG‟ estas ellasebla. Signalon S oni povas sendi al la\n" +" ŝelo per la komando «kill -S $$».\n" +"\n" +" Elirstato:\n" +" Sukceso, kondiĉe ke SIGNALINDIKOj kaj la opcioj estas taÅ­gaj." + +# type [-afptP] name [name ...] +# type [-afptP] NOMO [NOMO ...] +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3821,10 +4445,36 @@ msgid "" " Returns success if all of the NAMEs are found; fails if any are not " "found." msgstr "" +"Vidigu informon pri tipo de komando\n" +"\n" +" Por ĉiu NOMO, montru kion ĝi signifus en la pozicio de\n" +" komadonomo.\n" +"\n" +" Opcioj:\n" +" -a\tlistigu ĉiujn lokojn entenantajn plenumeblan dosieron\n" +" kun koncerna NOMO; la listo inkludas alinomojn kaj\n" +" funkciojn, se kaj nur se malestas la opcio „-p‟\n" +" -f ekskludas el la serĉo la ŝelfunkciojn\n" +" -P\tapliku vojserĉon laÅ­ PATH por ĉiu NOMO, eĉ se ekzistas tianoma\n" +" funkcio, primitiva komando aÅ­ alinomo, kaj liveru la nomon de\n" +" tiel plenumebla diskdosiero\n" +" -p\teligu la nomon de dosiero kiu iĝus plenumata;\n" +" aÅ­ nenion, se «type -t name» ne eligus „file‟\n" +" -t\teligu unu vorton, iun el la sekvaj:\n" +" „alias‟, „keyword‟, „function‟, „builtin‟, „file‟ aÅ­ „‟ --\n" +" se NOMO estas, respektive, alinomo, ŝela ŝlosilvorto,\n" +" ŝelfunkcio, ŝela primitivo, dosiero aÅ­ nenio konata\n" +"\n" +" Argumentoj:\n" +" NOMO Esplorenda komandonomo\n" +"\n" +" Elirstato:\n" +" Sukceso, se ĉiujn NOMOjn prosperis trovi; malsukceso, se estis\n" +" netrovitaj." -# ulimit [-SHacdflmnpstuv] [limit] -#: builtins.c:1380 -#, fuzzy +# ulimit [-SHacdefilmnpqrstuvx] [limit] +# ulimit [-SHacdefilmnpqrstuvx] [LIMO] +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3867,40 +4517,48 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"La komando „ulimit‟ ebligas mastrumi la risurcojn disponeblajn al la\n" -" procezoj lanĉataj el la ŝelo (se la operaciumo ebligas tian\n" -" mastrumadon). Se opcio estas donita, ĝi havas jenan sencon:\n" -"\n" -"\t-S ŝanĝebla („soft‟) limo\n" -"\t-H firma („hard‟) limo\n" -"\t-a eligu ĉiujn kurantajn risurcolimaĵojn\n" -"\t-c maksimuma longo de nekropsia dosiero („core‟)\n" -"\t-d maksimuma longo de datumsegmento de procezo\n" -"\t-e maksimuma viciga prioritato („nice‟)\n" -"\t-f maksimuma longo de dosieroj skribataj de la ŝelo kaj ĝiaj idoj\n" -"\t-l maksimuma longo de ŝlosebla procezmemoro (mlock)\n" -"\t-m maksimuma longo de rezida procezmemoro\n" -"\t-n maksimuma nombro de malfermitaj dosiernumeroj\n" -"\t-p longo de dukta bufro (pipe)\n" -"\t-q maksimuma nombro da bajtoj en atendovicoj de Poziksaj mesaĝoj\n" -"\t-s maksimuma longo de stako\n" -"\t-t maksimuma tempo ĉefprocesora (en sekundoj)\n" -"\t-u maksimuma nombro de procezoj de la uzanto\n" -"\t-v longo de la virtuala memoro\n" -"\t-x maksimuma nombro de dosierŝlosoj\n" -"\n" -" Se limo limit estas indikita, ĝia valoro limigas la koncernan\n" -" risurcon; la specialaj vortoj por limit: „soft‟, „hard‟,\n" -" „unlimited‟ signifas, respektive: «la kuranta ŝanĝebla limo»,\n" -" «la kuranta firma limo», «sen limo».\n" -"\n" -" Alie estas eligata la kuranta valoro de la koncerna risurco.\n" -" Manko de opcioj implicas -f. La valoroj estas en obloj de\n" -" 1024 bajtoj, krom por la opcio -t kiu estas en sekundoj;\n" -" por -p kiu estas en obloj de 512 bajtoj; kaj por -u, kiu estas\n" -" sendimensia nombro de procezoj." - -#: builtins.c:1425 +"Ŝanĝu risurcolimaĵojn de la ŝelo\n" +"\n" +" La komando „ulimit‟ ebligas mastrumi la risurcojn disponeblajn al\n" +" la procezoj lanĉataj el la ŝelo (se la operaciumo ebligas tian\n" +" mastrumadon).\n" +"\n" +" Opcioj:\n" +" -S\tŝanĝebla („soft‟) limo\n" +" -H\tfirma („hard‟) limo\n" +" -a\teligu ĉiujn kurantajn risurcolimaĵojn\n" +" -c\tmaksimuma longo de nekropsia dosiero („core‟)\n" +" -d\tmaksimuma longo de datumsegmento de procezo\n" +" -e\tmaksimuma viciga prioritato („nice‟)\n" +" -f\tmaksimuma longo de dosieroj skribataj de la ŝelo kaj ĝiaj idoj\n" +" -l\tmaksimuma longo de ŝlosebla procezmemoro (mlock)\n" +" -m\tmaksimuma longo de rezida procezmemoro\n" +" -n\tmaksimuma nombro de malfermitaj dosiernumeroj\n" +" -p\tlongo de dukta bufro (pipe)\n" +" -q\tmaksimuma nombro da bajtoj en atendovicoj de Poziksaj mesaĝoj\n" +" -r\tmaksimuma prioritato realtempa\n" +" -s\tmaksimuma longo de stako\n" +" -t\tmaksimuma tempo ĉefprocesora (en sekundoj)\n" +" -u\tmaksimuma nombro de procezoj de la uzanto\n" +" -v\tlongo de la virtuala memoro\n" +" -x\tmaksimuma nombro de dosierŝlosoj\n" +"\n" +" Se LIMO estas indikita, ĝia valoro limigas la koncernan risurcon;\n" +" la specialaj vortoj por LIMO: „soft‟, „hard‟, „unlimited‟\n" +" signifas, respektive: «la kuranta ŝanĝebla limo», «la kuranta\n" +" firma limo», «sen limo». Alie estas eligata la kuranta valoro de\n" +" la koncerna risurco. Manko de opcioj implicas -f.\n" +"\n" +" La valoroj estas en obloj de 1024 bajtoj, krom por la opcio -t,\n" +" kiu estas en sekundoj; por -p, kiu estas en obloj de 512 bajtoj;\n" +" kaj por -u, kiu estas sendimensia nombro de procezoj.\n" +"\n" +" Elirstato:\n" +" Sukceso, kondiĉe ke la opcioj estas taÅ­gaj kaj ne okazis eraro." + +# umask [-p] [-S] [mode] +# umask [-p] [-S] [REĜIMO] +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3917,8 +4575,25 @@ msgid "" " Exit Status:\n" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" +"Vidigu aÅ­ agordu dosierreĝiman maskon\n" +"\n" +" La dosierkrea masko de la uzanto havu la valoron de la argumento\n" +" REĜIMO. Se REĜIMO mankas, eligu la kurantan valoron de la masko.\n" +"\n" +" Se la argumento REĜIMO komenciĝas per cifero, ĝi estas\n" +" interpretata kiel okuma nombro; alie, kiel simbola signoĉeno\n" +" laÅ­ chmod(1).\n" +"\n" +" Opcioj:\n" +" -p\tse REĜIMO malestas, la eligaĵo havu formon taÅ­gan por enigo\n" +" -S\tla eligo estu simbola; alie ĝi estas okuma nombro\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se REĜIMO estas nevalida aÅ­ aperas misa opcio." -#: builtins.c:1445 +# wait [id] +# wait [IND] +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3934,10 +4609,21 @@ msgid "" "is\n" " given." msgstr "" +"Atendu ke laboro finiĝu, kaj liveru elirstaton\n" +"\n" +" Atendu finiĝon de la procezo indikita per IND (kiu povas esti\n" +" proceznumero aÅ­ laborindiko) kaj liveru ĝian elirstaton. Se IND\n" +" malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru la \n" +" elirstaton 0. Se IND estas laborindiko, atendu ĉiujn procezojn en\n" +" la dukto de la laboro.\n" +"\n" +" Elirstato:\n" +" Tiu de IND; malsukceso, se IND estas nevalida aÅ­ se renkontiĝas\n" +" nevalida opcio.<" -# wait [n] -#: builtins.c:1463 -#, fuzzy +# wait [pid] +# wait [PN] +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3950,15 +4636,19 @@ msgid "" "is\n" " given." msgstr "" -"Atendu finiĝon de la indikita procezo kaj liveru ĝian elirstaton.\n" -" Se n malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru\n" -" la elirstaton 0. n povas esti proceznumero aÅ­ laborindiko;\n" -" se ĝi estas laborindiko, la atendo koncernas ĉiujn procezojn de la\n" -" dukto de la laboro." - -# for NAME [in WORDS ... ;] do COMMANDS; done -#: builtins.c:1478 -#, fuzzy +"Atendu ke procezo finiĝu, kaj liveru elirstaton\n" +"\n" +" Atendu finiĝon de la indikita procezo kaj liveru ĝian elirstaton.\n" +" Se PN malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru la\n" +" elirstaton 0. PN devas esti proceznumero.\n" +"\n" +" Elirstato:\n" +" Tiu de PN; malsukceso, se PN estas nevalida aÅ­ se renkontiĝas\n" +" nevalida opcio." + +# for NAME [in WORDS ... ] ; do COMMANDS; done +# for NOMO [in VORTOJ ... ] ; do KOMANDOJ; done +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3970,15 +4660,19 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"La iteracio „for‟ plenumas la komandojn COMMANDS por ĉiu ero\n" -" de sia listo. Se la parto «in WORDS ...;» malestas, «in \"$@\"»\n" -" estas uzata anstataÅ­e. Por ĉiu ero aperanta en WORDS, la nomo\n" -" NAME estas valorizata per tiu ero kaj la komandoj COMMANDS\n" -" estas plenumataj." - -# for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done -#: builtins.c:1492 -#, fuzzy +"Plenumu komandojn por ĉiu ero de listo\n" +"\n" +" La iteracio „for‟ plenumas la KOMANDOJn por ĉiu ero de sia listo.\n" +" Se la parto «in VORTOJ ...;» malestas, «in \"$@\"» estas uzata\n" +" anstataÅ­e. Por ĉiu el la VORTOJ, la NOMO estas valorizata per tiu\n" +" ero kaj la KOMANDOJ estas plenumataj.\n" +"\n" +" Elirstato:\n" +" Tiu de la laste plenumita komando." + +# for (( exp1; exp2; exp3 )); do COMMANDS; done +# for (( ESPR1; ESPR2; ESPR3 )); do KOMANDOJ; done +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3994,18 +4688,23 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Ekvivalentas al\n" -"\t(( EXP1 ))\n" -"\twhile (( EXP2 )); do\n" -"\t COMMANDS\n" -"\t (( EXP3 ))\n" +"Aritmetika iteracio\n" +"\n" +" Ekvivalentas al\n" +"\t(( ESPR1 ))\n" +"\twhile (( ESPR2 )); do\n" +"\t KOMANDOJ\n" +"\t (( ESPR3 ))\n" "\tdone\n" -" kie EXP1, EXP2 kaj EXP3 estas aritmetikaj esprimoj. Se iu el\n" -" ili malestas, 1 estas uzata anstataÅ­e." +" kie ESPR1, ESPR2 kaj ESPR3 estas aritmetikaj esprimoj. Se iu el\n" +" ili malestas, 1 estas uzata anstataÅ­e.\n" +"\n" +" Elirstato:\n" +" Tiu de la laste plenumita komando." # select NAME [in WORDS ... ;] do COMMANDS; done -#: builtins.c:1510 -#, fuzzy +# select NONO [in VORTOJ ... ;] do KOMANDOJ; done +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4024,22 +4723,25 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"WORDS ... estas malvolvataj, generante liston da vortoj. Tiuj\n" -" vortoj estas eligataj en la ĉeferarujon, ĉiu antaÅ­ate de sia\n" -" numero. Se „in WORDS‟ ne estas indikita, la enhavo de \"$@\"\n" -" estas uzata anstataÅ­e. La invito entenata en la variablo PS3\n" -" estas eligata kaj linio estas legata el la ĉefenigujo. Se linio\n" -" konsistas el numero responda al iu el la vortoj eligataj, la\n" -" nomo NAME ricevas ĝin kiel sian valoron. Se la linio entenas\n" -" nenion, WORDS kaj la invito ripetiĝas. Ĉe la dosierfino la\n" -" komando finiĝas. Ajna alia enigaĵo vakuigas la variablon NAME.\n" -" La legita linio konserviĝas en la variablo REPLY. COMMANDS\n" -" estas plenumataj post ĉiu elekto, ĝis renkontiĝos komando de\n" -" eliro (break)." +"Elektu vortojn el listo kaj plenumu komandojn\n" +"\n" +" Malvolvu VORTOJn, generante liston da vortoj. Tiujn vortojn eligu\n" +" en la ĉeferarujon, ĉiu antaÅ­ate de sia numero. Se „in VORTOJ‟\n" +" malestas, prenu anstataÅ­e la enhavon de \"$@\". Poste eligu la\n" +" inviton laÅ­ la variablo PS3 kaj legu linion el la ĉefenigujo. Se\n" +" la linio konsistas el numero responda al iu el la vortoj eligitaj,\n" +" la NOMO ricevu ĝin kiel sian valoron. Se la linio entenas nenion,\n" +" ripetu VORTOJn kaj la inviton. Ĉe la dosierfino la komando\n" +" finiĝas. Ajna alia enigaĵo vakuigas la variablon NOMO. La legita\n" +" linio konserviĝas en la variablo REPLY. Plenumu la KOMANDOJn post\n" +" ĉiu elekto, ĝis renkontiĝos komando de eliro (break).\n" +"\n" +" Elirstato:\n" +" Tiu de la laste plenumita komando." # time [-p] PIPELINE -#: builtins.c:1531 -#, fuzzy +# time [-p] DUKTO +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4054,15 +4756,23 @@ msgid "" " Exit Status:\n" " The return status is the return status of PIPELINE." msgstr "" -"Plenumu la dukton PIPELINE kaj poste eligu tabelon el la reala tempo,\n" +"Raportu tempon konsumitan de dukto\n" +"\n" +" Plenumu la DUKTOn kaj poste eligu tabelon el la reala tempo,\n" " la ĉefprocesora tempo de la uzanto, kaj la ĉefprocesora tempo\n" -" sistema, konsumitaj por plenumo de PIPELINE.\n" -" La opcio „-p‟ iom ŝanĝas la prezenton de la tabelo.\n" -" La variablo TIMEFORMAT difinas la formaton de la eligaĵo." +" sistema, konsumitaj por plenumi la DUKTOn, kiam ĝi finĝos.\n" +"\n" +" Opcio:\n" +" -p\tprezentu la tempojn laÅ­ la portebla Poziksa formo\n" +"\n" +" La variablo TIMEFORMAT difinas la formon de la eligaĵo.\n" +"\n" +" Elirstato:\n" +" Tiu de la DUKTO." # case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac -#: builtins.c:1548 -#, fuzzy +# case VORTO in [ŜABLONO [| ŜABLONO]...) KOMANDOJ ;;]... esac +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4072,13 +4782,19 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Plenumu komandojn COMMANDS kondiĉe ke WORD kongruas kun ŝablono PATTERN.\n" -" La streko „|‟ servas por disigi ŝablonojn (se pluraj)." +"Plenumu komandojn laÅ­ ŝablonkongruo \n" +"\n" +" Plenumu KOMANDOJn kondiĉe ke VORTO kongruas kun ŜABLONO.\n" +" La streko „|‟ servas por disigi ŝablonojn (se pluraj).\n" +"\n" +" Elirstato:\n" +" Tiu de la komando laste plenumita." # if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... # [ else COMMANDS; ] fi -#: builtins.c:1560 -#, fuzzy +# if KOMANDOJ; then KOMANDOJ;[ elif KOMANDOJ; then KOMANDOJ; ]... +# [ else KOMANDOJ; ] fi +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4098,17 +4814,19 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"La komandoj el «if COMMANDS» estas plenumataj. Se la elirstato estas 0,\n" -" tiam la komandoj el «then COMMANDS» estas plenumataj. Alie, laÅ­vice,\n" -" komandoj el «elif COMMANDS» estas plenumataj, kaj se la elirstato\n" -" estas 0, la komandoj de ties «elif COMMANDS» iĝas plenumataj post kio\n" -" la komando „if‟ finiĝas. Alie, la komandoj el «else COMMANDS» iĝas\n" -" plenumataj (se tiuj enestas). La elirstato estas tiu de la lasta\n" -" komando plenumita, aÅ­ 0 se neniu el la kondiĉoj estis vera." +"Plenumu komandojn depende je kondiĉo\n" +"\n" +" Plenumu la komandojn el «if KOMANDOJ». Se la elirstato estas 0,\n" +" tiam plenumu la komandojn el «then KOMANDOJ». Alie, laÅ­vice,\n" +" plenumu la komandoj el «elif KOMANDOJ», kaj se la elirstato\n" +" estas 0, plenumu la komandojn de ties «then KOMANDOJ», post kio\n" +" la komando „if‟ finiĝas. Alie plenumu la komandojn el\n" +" «else KOMANDOJ» (se tiaj enestas). La elirstato estas tiu de la\n" +" lasta komando plenumita, aÅ­ 0 se neniu el la kondiĉoj estis vera." # while COMMANDS; do COMMANDS; done -#: builtins.c:1577 -#, fuzzy +# while KOMANDOJ; do KOMANDOJ; done +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4118,12 +4836,17 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Ripete malvolvu kaj plenumu la komandojn dum la lasta el la komandoj\n" -" COMMANDS de la „while‟-parto liveras elirstaton 0." +"Plenumadu komandojn dum testo sukcesas\n" +"\n" +" Ripete malvolvu kaj plenumu la KOMANDOJn dum la lasta el la\n" +" KOMANDOJ de la „while‟-parto liveras elirstaton 0.\n" +"\n" +" Elirstato:\n" +" Tiu de la komando laste plenumita. " # until COMMANDS; do COMMANDS; done -#: builtins.c:1589 -#, fuzzy +# until KOMANDOJ; do KOMANDOJ; done +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4133,10 +4856,17 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Ripete malvolvu kaj plenumu la komandojn dum la lasta el la komandoj\n" -" COMMANDS de la „until‟-parto liveras elirstaton alian ol 0." +"Plenumadu komandojn ĝis kiam testo sukcesos\n" +"\n" +" Ripete malvolvu kaj plenumu la komandojn dum la lasta el la\n" +" KOMANDOJ de la „until‟-parto liveras elirstaton alian ol 0.\n" +"\n" +" Elirstato:\n" +" Tiu de la komando laste plenumita." -#: builtins.c:1601 +# coproc [NAME] command [redirections] +# coproc [NOMO] KOMANDO [ALIDIREKTADOJ] +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4148,8 +4878,19 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Kreu kunprocezon nomotan NOMO\n" +"\n" +" Plenumu KOMANDOn nesinkrone, konektinte per dukto ĝiajn ĉefelgujon\n" +" kaj ĉefengujon al la dosiernumeroj listigitaj en la tabelo NOMO de\n" +" la kuranta ŝelo ĉe la indicoj 0 kaj 1. La defaÅ­lta NOMO estas\n" +" „COPROC‟.\n" +"\n" +" Elirstato:\n" +" Tiu de KOMANDO." -#: builtins.c:1615 +# function name { COMMANDS ; } or name () { COMMANDS ; } +# function NOMO { KOMANDOJ ; } aÅ­ NOMO () { KOMANDOJ ; } +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4162,10 +4903,19 @@ msgid "" " Exit Status:\n" " Returns success unless NAME is readonly." msgstr "" +"Difinu ŝelfunkcion\n" +"\n" +" Kreu ŝelfunkcion kun NOMO. Vokite kiel simpla komando, NOMO\n" +" plenumas la KOMANDOJn en la medio de la vokanta ŝelo. Ĉe voko de\n" +" NOMO la komandoliniajn argumentojn la funkcio ricevas en $0...$n,\n" +" kaj la funkcinomo registriĝas en $FUNCNAME.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se NOMO estas nurlega." # grouping_braces: { COMMANDS ; } -#: builtins.c:1629 -#, fuzzy +# { KOMANDOJ ; } +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4175,11 +4925,17 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Plenumu la komandojn grupe. Tiel eblas apliki alidirektadon al\n" -" tuta grupo da komandoj." +"Arigu komandojn en komandan unuon\n" +"\n" +" Plenumu la komandojn grupe. Tiel eblas apliki alidirektadon al\n" +" tuta grupo da komandoj.\n" +"\n" +" Elirstato:\n" +" Tiu de la komando laste plenumita." -#: builtins.c:1641 -#, fuzzy +# job_spec [&] +# LABORINDIKO [&] +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4192,13 +4948,19 @@ msgid "" " Exit Status:\n" " Returns the status of the resumed job." msgstr "" -"Samkiel la argumento JOB_SPEC en komando „fg‟. Reaktivigu\n" -" haltigitan aÅ­ fonan laboron. JOB_SPEC povas esti labornomo aÅ­\n" +"Reaktivigu laboron en la fono\n" +"\n" +" Samkiel la argumento LABORINDIKO en komando „fg‟. Reaktivigu\n" +" haltigitan aÅ­ fonan laboron. LABORINDIKO povas esti labornomo aÅ­\n" " labornumero. Postmetita „&‟ sendas la laboron en la fonon,\n" -" samkiel se la komando „bg‟ estus aplikita al laborindiko." +" samkiel se la komando „bg‟ estus aplikita al LABORINDIKO.\n" +"\n" +" Elirstato:\n" +" Tiu de la reakivigita laboro." -#: builtins.c:1656 -#, fuzzy +# (( expression )) +# (( ESPRIMO )) +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4208,12 +4970,17 @@ msgid "" " Exit Status:\n" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -"La esprimo EXPRESSION komputiĝas laÅ­ la aritmetikaj reguloj.\n" -" Ekvivalenta al «let EXPRESSION»." +"Komputu aritmetikan esprimon\n" +"\n" +" La esprimo EXPRESSION komputiĝas laÅ­ la aritmetikaj reguloj.\n" +" Ekvivalentas al «let EXPRESSION».\n" +"\n" +" Elirstato:\n" +" 1, se la rezulto de la ESPRIMO estas 0; 0 aliokaze." # [[ expression ]] -#: builtins.c:1668 -#, fuzzy +# [[ ESPRIMO ]] +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4240,23 +5007,31 @@ msgid "" " Exit Status:\n" " 0 or 1 depending on value of EXPRESSION." msgstr "" -"Liveras elirstaton 0 aÅ­ 1 laÅ­ la rezulto de komputado de kondiĉa\n" -" esprimo expression. Esprimoj konsistas el bazaj esprimoj, kiajn\n" -" uzas la primitivaĵo „test‟, kaj komponiĝas per sekvaj operacioj:\n" +"Plenumu kondiĉkomandon\n" +"\n" +" Liveras elirstaton 0 aÅ­ 1 laÅ­ la rezulto de komputado de kondiĉa\n" +" ESPRIMO. Esprimoj konsistas el bazaj esprimoj, kiajn uzas la\n" +" primitivaĵo „test‟, kaj komponiĝas per sekvaj operacioj:\n" "\n" -"\t( ESPRIMO )\tLiveras la valoron de ESPRIMO\n" -"\t! ESPRIMO\tVera, se ESPRIMO estas malvera; alie malvera\n" -"\tESP1 && ESP2\tVera, se veras ambaÅ­ ESP1 kaj ESP2; alie malvera\n" -"\tESP1 || ESP2\tVera, se veras ajna el ESP1 kaj ESP2; alie malvera\n" +" ( ESPRIMO ) Liveras la valoron de ESPRIMO\n" +" ! ESPRIMO\t Vera, se ESPRIMO estas malvera; alie malvera\n" +" ESP1 && ESP2 Vera, se veras ambaÅ­ ESP1 kaj ESP2; alie malvera\n" +" ESP1 || ESP2 Vera, se veras ajna el ESP1 kaj ESP2; alie malvera\n" "\n" " En la operacioj „==‟ kaj „!=‟ la signoĉeno dekstre de la operacisigno\n" -" rolas kiel ŝablono, kongrueco al kiu estas testata. En la operacioj\n" -" && kaj || la duaj subesprimoj ESP2 ne estas komputataj se ESP1 jam\n" -" sufiĉas por determini la rezulton." +" rolas kiel ŝablono, kongrueco al kiu estas testata. Ĉe la\n" +" operacio „=~‟ la ĉeno en la dekstra parto rolas kiel regulesprimo\n" +" por kongruectestado.\n" +"\n" +" En la operacioj && kaj || la duaj subesprimoj ESP2 ne estas\n" +" komputataj se ESP1 jam sufiĉas por determini la rezulton.\n" +"\n" +" Elirstato:\n" +" 0 aÅ­ 1, laÅ­ la valoro de ESPRIMO." # help var -#: builtins.c:1694 -#, fuzzy +# variables - Names and meanings of some shell variables +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4309,40 +5084,42 @@ msgid "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" msgstr "" -"BASH_VERSION\tInformo pri la versio de ĉi tiu Baŝo.\n" +"Nomoj kaj uzoj de komunaj ŝelvariabloj\n" +"\n" +" BASH_VERSION Informo pri la versio de ĉi tiu Baŝo\n" " CDPATH\tListo da dosierujoj (disigitaj per dupunkto) en\n" -"\t\tkiuj argumenta dosierujo de „cd‟ estu serĉata.\n" +"\t\tkiuj argumenta dosierujo de „cd‟ estu serĉata\n" " GLOBIGNORE\tListo da ŝablonoj (disigitaj per dupunkto) difinanta\n" -"\t\tdosiernomojn ignorendajn ĉe malvolvo de dosierindikoj.\n" -" HISTFILE\tNomo de la dosiero por via komandohistorio.\n" -" HISTFILESIZE Maksimuma nombro de linioj konserveblaj en HISTFILE.\n" +"\t\tdosiernomojn ignorendajn ĉe malvolvo de dosierindikoj\n" +" HISTFILE\tNomo de la dosiero por via komandohistorio\n" +" HISTFILESIZE Maksimuma nombro de linioj konserveblaj en HISTFILE\n" " HISTSIZE\tMaksimuma nombro de linioj el komandohistorio\n" -"\t\tatingeblaj el plenumata ŝelo.\n" -" HOME\tPlena dosierindiko pri via hejma dosierujo.\n" -" HOSTNAME\tNomo de la rulanta komputilo.\n" -" HOSTTYPE\tTipo de la ĉefprocesoro rulanta ĉi tiun Baŝon.\n" +"\t\tatingeblaj el plenumata ŝelo\n" +" HOME\tPlena dosierindiko pri via hejma dosierujo\n" +" HOSTNAME\tNomo de la rulanta komputilo\n" +" HOSTTYPE\tTipo de la ĉefprocesoro rulanta ĉi tiun Baŝon\n" " IGNOREEOF\tDeterminas la konduton de la ŝelo kiam ĝi ricevas\n" "\t\tdosierfinilon (^D, \\004) kiel nuran enigaĵon. Se ĝi\n" "\t\tekzistas kaj havas nombran valoron, tiam ĉi tiu\n" -"\t\tindikas, kiom da sinsekvaj dosierfinilojn toleri\n" -"\t\tantaÅ­ ol la ŝelo finiĝu (defaÅ­lte, 10). Se la\n" -"\t\tvariablo ne ekzistas, ^D signifas finon de enigo.\n" -" MACHTYPE\tSignoĉeno priskribanta la komputosistemon rulantan\n" -"\t\tĉi tiun Baŝon.\n" +" indikas, kiom da sinsekvaj dosierfinilojn toleri\n" +"\t\tantaÅ­ ol la ŝelo finiĝu (defaÅ­lte, 10). Sen tia\n" +"\t\tvaloro, ^D signifas finon de enigo\n" +" MACHTYPE\tSignoĉeno priskribanta la komputsistemon rulantan\n" +"\t\tĉi tiun Baŝon\n" " MAILCHECK\tKiom ofte (post kiom da sekundoj) Baŝo kontrolu\n" -"\t\tricevon de nova retpoŝta mesaĝo.\n" +"\t\tricevon de nova retpoŝta mesaĝo\n" " MAILPATH\tListo da dosiernomoj (disigitaj per dupunkto) kiujn\n" -"\t\tBaŝo testu pri nova retpoŝtaĵo.\n" -" OSTYPE\tVersio de Unikso sur kiu ĉi tiu Baŝo ruliĝas.\n" +"\t\tBaŝo testu pri nova retpoŝtaĵo\n" +" OSTYPE\tVersio de Unikso sur kiu ĉi tiu Baŝo ruliĝas\n" " PATH\tListo da dosierujoj (disigitaj per dupunkto) kie serĉi\n" -"\t\tkomandojn.\n" -" PROMPT_COMMAND Komando plenumenda antaÅ­ ĉiu unuaranga invito.\n" -" PS1\t\tSignoĉeno de la unuaranga invito.\n" -" PS2\t\tSignoĉeno de la duaranga invito.\n" -" PWD\t\tPlena dosierindiko de la kuranta dosierujo.\n" -" SHELLOPTS\tListo da aktivaj ŝelaj opcioj (disigitaj per dupunktoj).\n" -" TERM\tTipo de la uzata terminalo.\n" -" TIMEFORMAT\tFormato por eligi tempostatistikon per la komando „time‟.\n" +"\t\tkomandojn\n" +" PROMPT_COMMAND Komando plenumenda antaÅ­ ĉiu unuaranga invito\n" +" PS1\t\tSignoĉeno de la unuaranga invito\n" +" PS2\t\tSignoĉeno de la duaranga invito\n" +" PWD\t\tPlena dosierindiko de la kuranta dosierujo\n" +" SHELLOPTS\tListo da aktivaj ŝelaj opcioj (disigitaj per dupunktoj)\n" +" TERM\tTipo de la uzata terminalo\n" +" TIMEFORMAT\tFormato por eligi tempostatistikon per la komando „time‟\n" " auto_resume\tSe ne vakua, indikas ke komandan vorton sole aperanta\n" "\t\ten linio la ŝelo unue serĉu en la listo de haltetintaj\n" "\t\tlaboroj. Se trovita tie, la laboro iĝu dialoga.\n" @@ -4350,18 +5127,18 @@ msgstr "" "\t\tkomanda vorto kun la komando el la laborlisto. La valoro\n" "\t\t„substring‟ indikas ke la komanda vorto kongruu kun\n" "\t\tsubĉeno de la laboro. Ĉia alia valoro indikas ke la\n" -"\t\tkomando estu komenca parto de la labornomo.\n" +"\t\tkomando estu komenca parto de la labornomo\n" " histchars\tSignoj regantaj reuzon de komandohistorio kaj rapidan\n" "\t\tanstataÅ­igon. Unue estas la reuziga signo, kutime „!‟.\n" "\t\tDue estas la signo de „rapida anstataÅ­igo‟, kutime „^‟.\n" "\t\tTrie estas la signo de „historia komentilo‟,\n" -"\t\tkutime „#‟.\n" +"\t\tkutime „#‟\n" " HISTIGNORE\tListo da ŝablonoj (disigitaj per dupunkto) difinanta\n" -"\t\tkiujn komandojn konservi en la historilisto.\n" +"\t\tkiujn komandojn konservi en la historilisto\n" -# pushd [dir | +N | -N] [-n] -#: builtins.c:1751 -#, fuzzy +# pushd [-n] [+N | -N | dir] +# pushd [-n] [+N | -N | DOSIERUJO] +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4391,29 +5168,36 @@ msgid "" " Returns success unless an invalid argument is supplied or the directory\n" " change fails." msgstr "" -"Surstakigu dosierujon sur la stakon da dosierujoj, aÅ­ cikle ŝovu\n" -" la stakon tiel, ke la nova stakpinto iĝu la kuranta dosierujo.\n" +"Surstakigu dosierujojn\n" +"\n" +" Surstakigu dosierujon sur la stakon da dosierujoj, aÅ­ cikle ŝovu\n" +" la stakon tiel, ke la nova stakpinto estu la kuranta dosierujo.\n" " Senargumente, permutu la du plej suprajn dosierujojn de la stako.\n" "\n" -" +N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" Opcio:\n" +" -n\tNe ŝanĝu la kurantan dosierujon (ne plenumu cd) surstakigante\n" +" dosierujon sur la stakon; do, nur la stakon ŝanĝu\n" +"\n" +" Argumentoj:\n" +" +N\tCikle ŝovu la stakon tiel ke la Nª dosierujo (nombrante de\n" " \tmaldekstre en la listo eligebla per „dirs‟, numerante de 0)\n" -" iĝu la pinta.\n" +" iĝu la pinta\n" "\n" -" -N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" -N\tCikle ŝovu la stakon tiel ke la Nª dosierujo (nombrante de\n" " \tdekstre en la listo eligebla per „dirs‟, numerante de 0) iĝu\n" -" la pinta.\n" +" la pinta\n" "\n" -" -n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur\n" -" \tla stakon; do, nur la stakon ŝanĝu.\n" +" DOSIERUJO\n" +"\tsurstakigu la DOSIERUJOn kaj faru ĝin la nova kuranta\n" +" \tdosierujo labora\n" "\n" -" dir\tsurstakigu la dosierujon dir kaj faru ĝin la nova kuranta\n" -" \tdosierujo labora.\n" +" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟.\n" "\n" -" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." +" Elirstato:\n" +" Sukceso, krom se aperas misa argumento aÅ­ se cd malsukcesas." -# popd [+N | -N] [-n] -#: builtins.c:1785 -#, fuzzy +# popd [-n] [+N | -N] +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -4439,25 +5223,30 @@ msgid "" " Returns success unless an invalid argument is supplied or the directory\n" " change fails." msgstr "" -"Elstakigu erojn el la stako de dosierujoj. Senargumente, forigu la\n" -" pintan dosierujon kaj iru (cd) en la novan pintan dosierujon.\n" +"Elstakigu dosierujojn\n" "\n" -" +N\tforigu la Nan eron de maldekstre de la listo eligebla per\n" -"\t„dirs‟, numerante ekde 0. Ekz-e: «popd +0» forigas la plej\n" -"\tmaldekstran dosierujon; «popd +1», ĝian najbaron.\n" +" Elstakigu erojn el la stako da dosierujoj. Senargumente, forigu\n" +" la pintan dosierujon kaj iru (cd) en la novan pintan dosierujon.\n" "\n" -" -N\tforigu la Nan eron de dekstre de la listo eligebla per „dirs‟,\n" -"\tnumerante ekde 0. Ekz-e: «popd -0» forigas la lastan\n" -"\tdosierujon; «popd -1», la antaÅ­lastan.\n" +" Opcio:\n" +" -n\tNe ŝanĝu (cd) la kurantan dosierujon demetante dosierujon el\n" +" la stako; do, nur la stakon ŝanĝu\n" "\n" -" -n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon el la\n" -"\tstako; do, nur la stakon ŝanĝu.\n" +" Argumentoj:\n" +" +N\tForigu la N-an eron de maldekstre de la listo eligebla per\n" +"\t„dirs‟, numerante ekde 0. Ekz-e: «popd +0» forigas la plej\n" +"\tmaldekstran dosierujon; «popd +1», ĝian najbaron\n" "\n" -" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." +" -N\tForigu la N-an eron de dekstre de la listo eligebla per\n" +" „dirs‟, numerante ekde 0. Ekz-e: «popd -0» forigas la lastan\n" +"\tdosierujon; «popd -1», la antaÅ­lastan\n" +"\n" +" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟.\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa argumento aÅ­ se cd malsukcesas." # dirs [-clpv] [+N] [-N] -#: builtins.c:1815 -#, fuzzy +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -4485,25 +5274,33 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Listigu la kurantan dosierujstakon. La dosierujoj trafas en\n" -" la stakon per la komando „pushd‟ kaj estas forigeblaj per la\n" -" komando „popd‟.\n" +"Listigu dosierujstakon\n" "\n" -" La opcio -l indikas ke „dirs‟ ne eligu mallongajn formojn de\n" -" dosierujnomoj relative al via hejma dosierujo. T.e. anstataÅ­\n" -" «~/bin» aperos nomo kun absoluta vojo, ekz-e «/homes/bfox/bin».\n" -" La opcio -v igas komandon „dirs‟ eligi po unu eron de la dosierujstako\n" -" en linio, metante antaÅ­ la dosierujnomo ĝian numeron en la stako.\n" -" La opcio -p faras simile, tamen ne numeras la poziciojn.\n" -" La opcio -c malplenigas la dosierujstakon forigante el ĝi ĉiujn erojn.\n" +" Listigu la kurantan dosierujstakon. La dosierujoj trafas en la\n" +" stakon per la komando „pushd‟ kaj estas forigeblaj per la komando\n" +" „popd‟.\n" "\n" -" +N\teligu la Nan eron nombrante de maldekstre en la listo eligebla\n" -"\tper „dirs‟ sen opcioj, numerante ekde 0.\n" +" Opcioj:\n" +" -c viŝu la dosierujstakon forigante el ĝi ĉiujn erojn\n" +" -l ne uzu mallongan formon de dosierujnomoj relative al via hejma\n" +" dosierujo\n" +" -p listigu dosierujstakon lokante po unu eron sur linio\n" +" -v listigu po unu eron de la dosierujstako en linio, metante\n" +" antaÅ­ la dosierujnomo ĝian numeron en la stako \n" "\n" -" -N\teligu la Nan eron nombrante de dekstre en la listo eligebla\n" -"\tper „dirs‟ sen opcioj, numerante ekde 0." +" Argumentoj:\n" +" +N\teligu la N-an eron (numerante de maldekstre kaj ekde 0) de la\n" +" listo eligebla per senopcia „dirs‟\n" +"\n" +" -N\teligu la N-an eron (numerante de dekstre kaj ekde 0) en la\n" +" listo eligebla per senopcia „dirs‟\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro." -#: builtins.c:1844 +# shopt [-pqsu] [-o] [optname ...] +# shopt [-pqsu] [-o] [OPCINOMO ...] +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -4523,10 +5320,27 @@ msgid "" " Returns success if OPTNAME is enabled; fails if an invalid option is\n" " given or OPTNAME is disabled." msgstr "" +"Ŝaltu kaj malŝaltu ŝelajn opciojn\n" +"\n" +" Ŝanĝu la staton de ĉiu el la OPCINOMOj. Sen opciaj argumentoj,\n" +" listigu ĉiujn ŝelajn opciojn, indikante pri ĉiu el ili, ĉu ĝi\n" +" estas ŝaltita.\n" +"\n" +" Opcioj:\n" +" -o limigu OPCINOMOJn je tiuj difinitaj por uzo per «set -o»\n" +" -p eligu ĉiun ŝelan opcion indikante ĉu ĝi estas ŝaltita\n" +" -q silentigu eligon\n" +" -s ŝaltu (aktivigu) ĉiun el la OPCINOMOj\n" +" -u malŝaltu (malaktivigu) ĉiun el la OPCINOMOj\n" +"\n" +" Elirstato:\n" +" Sukceso, se OPCINOMO estas ŝaltita; malsukceso, se aperas misa\n" +" opcio, aÅ­ se OPCINOMO estas malŝaltita.\n" +" " # printf [-v var] format [arguments] -#: builtins.c:1865 -#, fuzzy +# printf [-v VAR] FORMATO [ARGUMENTOJ] +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -4555,18 +5369,29 @@ msgid "" "assignment\n" " error occurs." msgstr "" -"„printf‟ aranĝas kaj eligas la argumentojn arguments laÅ­ la formato\n" -" format. Ci tiu estas signoĉeno entenanta 3 tipojn da objektoj:\n" +"Aranĝu kaj eligu argumentojn argumentojn laÅ­ formato\n" +"\n" +" Opcio:\n" +" -v VAR eligu en ŝelvariablon VAR anstataÅ­ en la ĉefeligujon\n" +"\n" +" FORMATO estas signoĉeno entenanta 3 tipojn da objektoj:\n" " ordinaraj signoj, simple kopiataj en la ĉefeligujon;\n" " eskapsekvencoj por signo, konvertataj kaj kopiataj en la ĉefeligujon; \n" " kaj formataj specifoj, ĉiu el kiuj kaÅ­zas eligon de vica argumento.\n" -" Aldone al la normaj specifiloj laÅ­ „printf(1)‟,\n" +"\n" +" Aldone al la normaj specifiloj laÅ­ „printf(1)‟ kaj „printf(3)‟,\n" " „%b‟ igas malvolvi deklivajn (\\) eskapsekvencojn en sia argumento, kaj\n" " „%q‟ ordonas ke la argumento eliĝu en formo taÅ­ga por ŝela re-enigo.\n" -" Se ĉeestas la opcio „-v‟, la eligo trafas en ties variablon var kaj\n" -" ne en la ĉefeligujon." - -#: builtins.c:1892 +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro pri skribo aÅ­\n" +" valorizo." + +# complete [-abcdefgjksuv] [-pr] [-o OPCIO] [-A AGO] [-G GLOBŜAB] +# [-W VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB] +# [-P PREFIKSO] [-S SUFFIKSO] [NOMO ...] +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -4580,19 +5405,42 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" +"Difinu, kiel Readline kompletigu argumentojn\n" +"\n" +" Por ĉiu NOMO difinu, kiel la argumentoj estu kompletigotaj. Se\n" +" nenia opcio estas donita, eligu la aktualajn \n" +" kompletigoregulojn en formo reuzebla por enigo en la ŝelon.\n" +"\n" +" Opcioj:\n" +" -p\tkompletigoregulojn en formo reuzebla por enigo en la ŝelon\n" +" -r\tforigu la kompletigoregulon por ĉiu NOMO, aÅ­, se nenia NOMO\n" +"\testas donita, ĉiujn kompletigoregulojn\n" +"\n" +" Ĉe provo kompletigi la agoj aplikiĝas laÅ­ la ordo de majusklaj\n" +" opcioj en la ĉi-supre listo.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se misa opcio estas donita, aÅ­ eraro okazis." # compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] # [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] # [-F function] [-C command] [word] -#: builtins.c:1915 -#, fuzzy +# compgen [-abcdefgjksuv] [-o OPCIO] [-A AGO] [-G GLOBŜAB] +# [-W vORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB] +# [-P PREFIKSO] [-S SUFFIKSO] [VORTO] +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -4604,11 +5452,18 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Montru la eblajn kompletigojn depende je la opcioj. Destinita\n" -" por uzo en ŝelfunkcio generanta eblajn kompletigojn.\n" -" Se eventuala argumento word estas donita, generu ĝiajn kongruaĵojn." +"Montru la eblajn kompletigojn depende je la opcioj\n" +"\n" +" Destinita por uzo en ŝelfunkcio generanta eblajn kompletigojn. Se\n" +" la eventuala argumento VORTO estas donita, generu ĝiajn kongruaĵojn.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro." -#: builtins.c:1930 +# compopt [-o|+o option] [name ...] +# compopt [-o|+o OPCIO] [NOMO ...] +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -4621,6 +5476,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -4636,16 +5493,43 @@ msgid "" " Returns success unless an invalid option is supplied or NAME does not\n" " have a completion specification defined." msgstr "" - -#: builtins.c:1958 +"Ŝanĝu aÅ­ vidigu opciojn pri kompletigo\n" +"\n" +" Ŝanĝu la kompletigajn opciojn por ĉiu NOMO, aÅ­ - se nenia NOMO\n" +" estas indikita - la nune plenumatan kompletigon. Se nenia OPCIO\n" +" estas donita, eligu la kompletigajn opciojn por ĉiu NOMO aÅ­ la\n" +" kurantan kompletigan regularon.\n" +"\n" +" Opcioj:\n" +" -o OPCIO Ŝaltu kompletigan OPCIOn por ĉiu NOMO\n" +"\n" +" Uzante «+o» anstataÅ­ «-o» oni povas malŝalti la indikitan OPCIOn.\n" +"\n" +" Argumentoj:\n" +" Ĉiu NOMO indikas komandon, por kiu kompletiga regulo devas esti\n" +" jam difinita per la primitivaĵo „complete‟. Se nenia NOMO estas\n" +" donita, tiam la komandon compopt devas voki funkcio generanta, kaj\n" +" ĝuste la opcioj por ĉi tiu nune plenumata generilo de kompletigoj\n" +" estu ŝanĝitaj.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa opcio, aÅ­ por NOMO mankas difino de\n" +" kompletiga regulo." + +# mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] +# [-c quantum] [array] +# mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO] +# [-c KVANTO] [TABELO] +#: builtins.c:1968 +#, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -4672,605 +5556,59 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" +"Legu liniojn el la ĉefenigujo en tabelvariablon\n" +"\n" +" Legu liniojn el la ĉefenigujo en la variablon TABELO, aÅ­ el la\n" +" dosiernumero DN, se ĉeestas la opcio „-u‟. La defaÅ­lta tabelo\n" +" estas la variablo MAPFILE.\n" +"\n" +" Opcioj:\n" +" -n NOMBRILO Kopiu maksimume NOMBRILOn da linioj. Se NOMBRILO\n" +" estas 0, kopiu ĉiujn liniojn\n" +" -O ORIGINO Komencu valorizi la TABELOn ekde la indekso ORIGINO.\n" +" La defaÅ­lta origino estas 0.\n" +" -s NOMBRILO Ignoru NOMBRILOn da unuaj linioj\n" +" -t Forigu la vostan linifinilon el ĉiu legita linio\n" +" -u DN Legu per la dosiernunero DN anstataÅ­ el la ĉefenigujo\n" +" -C RETROVOKO Plenumu RETROVOKOn post ĉiu KVANTO da legitaj linioj\n" +" -c KVANTO\tPo kiom da linioj legi inter sinsekvaj RETROVOKOj\n" +"\n" +" Argumento:\n" +" TABELO\tNomo de tabelvariablo uzota por la legotaj datumoj\n" +"\n" +" Se „-C‟ aperas sen „-c‟, la defaÅ­lta kvanto estas 5000. Ĉe\n" +" komputo de RETROVOKO ĉi tiu ricevas la indicon de la sekva\n" +" elemento de la tabelo kiel kroman argumenton.\n" +"\n" +" Se mankas malimplica ORIGINO, mapfile viŝos la TABELOn antaÅ­\n" +" valorizi ĝin.\n" +"\n" +" Elirstato:\n" +" Sukceso, krom se aperas misa opcio aÅ­ TABELO estas nurlega." -#: builtins.c:1990 +# readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] +# [-c quantum] [array] +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Legu liniojn el la ĉefenigujo en tabelvariablon\n" +"\n" +" Sinonimo de „mapfile‟." -#~ msgid " " -#~ msgstr " " - -# caller [EXPR] -#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -#~ msgstr "Se EXPR malestas, liveriĝas «$line $filename». Se EXPR ĉeestas," - -#~ msgid "returns \"$line $subroutine $filename\"; this extra information" -#~ msgstr "Liveriĝas «$line $subroutine $filename»; ĉi tiu krominformo" - -#~ msgid "can be used used to provide a stack trace." -#~ msgstr "Uzeblas por vidigi la vok-stakon." - -#~ msgid "" -#~ "The value of EXPR indicates how many call frames to go back before the" -#~ msgstr "La valoro de EXPR indikas, kiom da vokkadroj retroiri disde la" - -#~ msgid "current one; the top frame is frame 0." -#~ msgstr "kuranta; la pinta kadro havas la numeron 0." - -#~ msgid "%s: invalid number" -#~ msgstr "%s: Misa nombro aÅ­ numero" - -#~ msgid "Shell commands matching keywords `" -#~ msgstr "Ŝelaj komandoj kongruaj kun la ŝlosilvortoj `" - -# dirs -#~ msgid "Display the list of currently remembered directories. Directories" -#~ msgstr "Listigu la kurantan dosierujstakon. La dosierujoj trafas en" - -#~ msgid "find their way onto the list with the `pushd' command; you can get" -#~ msgstr "la stakon per la komando „pushd‟ kaj estas forigeblaj per la" - -#~ msgid "back up through the list with the `popd' command." -#~ msgstr "komando „popd‟." - -#~ msgid "" -#~ "The -l flag specifies that `dirs' should not print shorthand versions" -#~ msgstr "" -#~ "La opcio -l indikas ke la komando „dirs‟ ne eligu mallongajn formojn" - -#~ msgid "" -#~ "of directories which are relative to your home directory. This means" -#~ msgstr "de dosierujnomoj rilate al via hejma dosierujo. T.e. anstataÅ­ ~/bin" - -#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -#~ msgstr "aperos nomo kun absoluta vojo, ekz-e „/homes/bfox/bin‟. La opcio -v" - -#~ msgid "causes `dirs' to print the directory stack with one entry per line," -#~ msgstr "igas „dirs‟ eligi po unu eron de la dosierujstako en linio," - -#~ msgid "" -#~ "prepending the directory name with its position in the stack. The -p" -#~ msgstr "metante antaÅ­ la dosierujnomo ĝian numeron en la stako. La opcio -p" - -#~ msgid "flag does the same thing, but the stack position is not prepended." -#~ msgstr "faras la samon sed sen numeri la poziciojn." - -#~ msgid "" -#~ "The -c flag clears the directory stack by deleting all of the elements." -#~ msgstr "" -#~ "La opcio -c malplenigas la dosierujstakon forigante el ĝi ĉiujn erojn." - -#~ msgid "" -#~ "+N displays the Nth entry counting from the left of the list shown by" -#~ msgstr "+N\teligu la Nan eron nombrante de maldekstre en la listo" - -#~ msgid " dirs when invoked without options, starting with zero." -#~ msgstr "\teligebla per „dirs‟ sen opcioj, komencante per 0." - -#~ msgid "" -#~ "-N displays the Nth entry counting from the right of the list shown by" -#~ msgstr "-N\teligu la Nan eron nombrante de dekstre en la listo" - -# pushd -#~ msgid "Adds a directory to the top of the directory stack, or rotates" -#~ msgstr "Surstakigu dosierujon sur la stakon de dosierujoj, aÅ­ cikle ŝovu" - -#~ msgid "the stack, making the new top of the stack the current working" -#~ msgstr "la stakon tiel, ke la nova stakpinto iĝu la kuranta dosierujo." - -#~ msgid "directory. With no arguments, exchanges the top two directories." -#~ msgstr "Senargumente, permutu la du plej suprajn dosierujojn de la stako." - -#~ msgid "+N Rotates the stack so that the Nth directory (counting" -#~ msgstr "+N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de" - -#~ msgid " from the left of the list shown by `dirs', starting with" -#~ msgstr "\tmaldekstre en la listo eligebla per „dirs‟, numerante ekde" - -#~ msgid " zero) is at the top." -#~ msgstr "\t0) iĝu la pinta." - -#~ msgid "-N Rotates the stack so that the Nth directory (counting" -#~ msgstr "-N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de" - -#~ msgid " from the right of the list shown by `dirs', starting with" -#~ msgstr "\tmaldekstre en la listo eligebla per „dirs‟, numerante ekde" - -#~ msgid "-n suppress the normal change of directory when adding directories" -#~ msgstr "-n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur" - -#~ msgid " to the stack, so only the stack is manipulated." -#~ msgstr "\tla stakon; do, nur la stakon ŝanĝu." - -#~ msgid "dir adds DIR to the directory stack at the top, making it the" -#~ msgstr "dir\tSurstakigu la dosierujon dir kaj faru ĝin la" - -#~ msgid " new current working directory." -#~ msgstr "\tnova kuranta dosierujo labora." - -#~ msgid "You can see the directory stack with the `dirs' command." -#~ msgstr "Vi povas vidigi la stakon de dosierujoj per la komando „dirs‟." - -# popd -#~ msgid "Removes entries from the directory stack. With no arguments," -#~ msgstr "Elstakigu erojn el la stako de dosierujoj. Senargumente," - -#~ msgid "removes the top directory from the stack, and cd's to the new" -#~ msgstr "forigu la pintan dosierujon kaj iru (cd) en la novan pintan" - -#~ msgid "top directory." -#~ msgstr "dosierujon." - -#~ msgid "+N removes the Nth entry counting from the left of the list" -#~ msgstr "+N\tforigu la Nan eron nombrante de maldekstre de la listo" - -#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" -#~ msgstr "\teligebla per „dirs‟, numerante ekde 0. Ekz-e: „popd +0‟" - -#~ msgid " removes the first directory, `popd +1' the second." -#~ msgstr "\tforigas la plej maldekstran dosierujon; „popd +1‟, ĝian najbaron." - -#~ msgid "-N removes the Nth entry counting from the right of the list" -#~ msgstr "-N\tforigu la Nan eron nombrante de dekstre de la listo" - -#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" -#~ msgstr "\teligebla per „dirs‟, nombrante ekde 0. Ekz-e: «popd -0»" - -#~ msgid " removes the last directory, `popd -1' the next to last." -#~ msgstr "\tforigas la lastan dosierujon; «popd -1», ĝian najbaron." - -#~ msgid "" -#~ "-n suppress the normal change of directory when removing directories" -#~ msgstr "-n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon" - -#~ msgid " from the stack, so only the stack is manipulated." -#~ msgstr "\tel la stako; do, nur la stakon ŝanĝu." - -# XXX: stat? debug? -#~ msgid "allocated" -#~ msgstr "okupita" - -# XXX: stat? debug? -#~ msgid "freed" -#~ msgstr "malokupita" - -# XXX: stat?? -#~ msgid "requesting resize" -#~ msgstr "bezonas retranĉon" - -# XXX: debug? Ĉu «ĵus» aÅ­ «ĝuste»? Pri kio temas?? -#~ msgid "just resized" -#~ msgstr "ĵus retranĉita" - -# XXX: debug? -#~ msgid "bug: unknown operation" -#~ msgstr "cimo: Nekonata operacio" - -# XXX: debug? -#~ msgid "malloc: watch alert: %p %s " -#~ msgstr "malloc: Gvat-raporto: %p %s " - -#~ msgid "" -#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -#~ " break N levels." -#~ msgstr "" -#~ "Eliru ekster iteracion FOR, WHILE aÅ­ UNTIL. Se N estas indikita,\n" -#~ " iru N nivelojn eksteren." - -#~ msgid "" -#~ "Run a shell builtin. This is useful when you wish to rename a\n" -#~ " shell builtin to be a function, but need the functionality of the\n" -#~ " builtin within the function itself." -#~ msgstr "" -#~ "Rulu primitivan ŝelkomandon. Tio utilas se oni volas uzi la nomon\n" -#~ " de ŝelaĵo por nomi funkcion, sed bezonas la koncernan\n" -#~ " primitivon en la funkcio mem." - -#~ msgid "" -#~ "Print the current working directory. With the -P option, pwd prints\n" -#~ " the physical directory, without any symbolic links; the -L option\n" -#~ " makes pwd follow symbolic links." -#~ msgstr "" -#~ "Eligu la nomon de kuranta dosierujo. Kun la opcio -P, la komando\n" -#~ " „pwd‟ eligas la nomon de la fizika dosierujo, sen ajna eventuala " -#~ "simbola\n" -#~ " ligilo; la opcio -L igas la komandon pwd sekvi simbolajn ligojn." - -#~ msgid "Return a successful result." -#~ msgstr "Liveru sukcesan rezulton." - -# ZZZ: command [-pVv] command [arg ...] -#~ msgid "" -#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" -#~ " function called `ls', and you wish to call the command `ls', you can\n" -#~ " say \"command ls\". If the -p option is given, a default value is " -#~ "used\n" -#~ " for PATH that is guaranteed to find all of the standard utilities. " -#~ "If\n" -#~ " the -V or -v option is given, a string is printed describing " -#~ "COMMAND.\n" -#~ " The -V option produces a more verbose description." -#~ msgstr "" -#~ "Plenumu komandon kun ARGoj sen atenti la ŝelajn funkciojn. Ekz-e se,\n" -#~ " havante ŝelan funkcion „ls‟, oni volas voki la komandon „ls‟, oni\n" -#~ " povas fari tion per «command ls». La opcio -p neprigas uzi la\n" -#~ " norman valoron de la de la variablo $PATH, ebliganta trovi ĉiujn\n" -#~ " normajn utilaĵojn.\n" -#~ " La opcio -V aÅ­ -v provizas eligon de ĉeno priskribanta la komandon;\n" -#~ " la opcio -V provizas pli detalan priskribon." - -#~ msgid "Obsolete. See `declare'." -#~ msgstr "Arkaika. Vd „declare‟." - -#~ msgid "" -#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" -#~ " can only be used within a function; it makes the variable NAME\n" -#~ " have a visible scope restricted to that function and its children." -#~ msgstr "" -#~ "Kreu lokan variablon NOMO kaj ĝin valorizu per VALORO.\n" -#~ " „local‟ uzeblas nur ene de funkcio; ĝi igas la variablon NOMO\n" -#~ " videbla en la regiono konstistanta el la funkcio kaj ties idoj." - -#~ msgid "" -#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." -#~ msgstr "Eligu la ARGojn. La opcio -n evitigas la postan liniavancon." - -# enable [-pnds] [-a] [-f filename] [name ...] -#~ msgid "" -#~ "Enable and disable builtin shell commands. This allows\n" -#~ " you to use a disk command which has the same name as a shell\n" -#~ " builtin without specifying a full pathname. If -n is used, the\n" -#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -#~ " to use the `test' found in $PATH instead of the shell builtin\n" -#~ " version, type `enable -n test'. On systems supporting dynamic\n" -#~ " loading, the -f option may be used to load new builtins from the\n" -#~ " shared object FILENAME. The -d option will delete a builtin\n" -#~ " previously loaded with -f. If no non-option names are given, or\n" -#~ " the -p option is supplied, a list of builtins is printed. The\n" -#~ " -a option means to print every builtin with an indication of whether\n" -#~ " or not it is enabled. The -s option restricts the output to the " -#~ "POSIX.2\n" -#~ " `special' builtins. The -n option displays a list of all disabled " -#~ "builtins." -#~ msgstr "" -#~ "Aktivigu aÅ­ malaktivigu primitivajn ŝelkomandojn. Tio ebligas\n" -#~ " uzi eksteran komandon, samnoman kun primitivaĵo, sen indiki\n" -#~ " ĝian plenan vojon.\n" -#~ " La opcio -n malaktivigas la nomojn name ..., sen ĝi la nomoj\n" -#~ " aktiviĝas. Ekz-e, por uzi la „test‟on troveblan en $PATH anstataÅ­\n" -#~ " la samnoman primitivan ŝelkomandon, diru: «enable -n test».\n" -#~ " En sistemo ebliganta dinamikan ŝargadon, la opcio -f uzeblas\n" -#~ " por ŝargi novajn primitivaĵojn el la dinamika biblioteko filename.\n" -#~ " La opcio -d forigos ŝelkomandon dinamike ŝargitan per -f.\n" -#~ " Se malestas neopciaj nomoj, aÅ­ ĉeestas la opcio -p, eligu la\n" -#~ " liston de primitivaĵoj.\n" -#~ " La opcio -a donas liston de ĉiuj primitivaĵoj kun indiko, ĉu ili\n" -#~ " estas aktivaj aÅ­ ne. La opcio -s eligas nur la «specialajn»\n" -#~ " ŝelfunkciojn de Posix.2. La opcio -n montras la liston de ĉiuj\n" -#~ " malaktivaj primitivaĵoj." - -#~ msgid "" -#~ "Read ARGs as input to the shell and execute the resulting command(s)." -#~ msgstr "" -#~ "Legu la ARGojn kiel enigaĵon de la ŝelo kaj plenumu la\n" -#~ " legita(j)n komando(j)n." - -# exec [-cl] [-a name] file [redirection ...] -#~ msgid "" -#~ "Exec FILE, replacing this shell with the specified program.\n" -#~ " If FILE is not specified, the redirections take effect in this\n" -#~ " shell. If the first argument is `-l', then place a dash in the\n" -#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" -#~ " is supplied, FILE is executed with a null environment. The `-a'\n" -#~ " option means to make set argv[0] of the executed process to NAME.\n" -#~ " If the file cannot be executed and the shell is not interactive,\n" -#~ " then the shell exits, unless the shell option `execfail' is set." -#~ msgstr "" -#~ "Plenumu la dosieron file anstataÅ­igante la ŝelon je la donita\n" -#~ " programo. Se file ne estas indikita, la alidirektadoj okazu en\n" -#~ " la kuranta ŝelo. Se la unua argumento estas „-l‟, minuso\n" -#~ " enŝoviĝas antaÅ­ la nula argumento pasigata al file (kiel\n" -#~ " ĉe „login‟). Ĉe la opcio -c, la plenumo de file estu en\n" -#~ " vakua medio. Per la opcio -a la argumento argv[0] de la\n" -#~ " plenumota procezo ricevas la valoron name. Se la dosieron ne\n" -#~ " eblas plenumi kaj la ŝelo ne estas dialoga, tiam la ŝelo finiĝas,\n" -#~ " krom se la opcio „execfail‟ estas aktiva." - -#~ msgid "Logout of a login shell." -#~ msgstr "AdiaÅ­, saluta ŝelo!" - -# hash [-lr] [-p pathname] [-dt] [name ...] -#~ msgid "" -#~ "For each NAME, the full pathname of the command is determined and\n" -#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" -#~ " full pathname of NAME, and no path search is performed. The -r\n" -#~ " option causes the shell to forget all remembered locations. The -d\n" -#~ " option causes the shell to forget the remembered location of each " -#~ "NAME.\n" -#~ " If the -t option is supplied the full pathname to which each NAME\n" -#~ " corresponds is printed. If multiple NAME arguments are supplied " -#~ "with\n" -#~ " -t, the NAME is printed before the hashed full pathname. The -l " -#~ "option\n" -#~ " causes output to be displayed in a format that may be reused as " -#~ "input.\n" -#~ " If no arguments are given, information about remembered commands is " -#~ "displayed." -#~ msgstr "" -#~ "Por ĉiu nomo name, trovu kaj registru en hakettabelo la kompletan\n" -#~ " vojon al tiu komando (komanda dosiero).\n" -#~ " Se ĉeestas la opcio -p, la vojo pathname servas kiel kompleta vojo\n" -#~ " por la nomoj, sen plua vojserĉo.\n" -#~ " La opcio -r forgesigas ĉiujn registritajn vojojn.\n" -#~ " La opcio -d forgesigas la registritajn vojojn por ĉiu nomo name.\n" -#~ " La opcio -t kaÅ­zas eligon de kompleta vojo responda al ĉiu name.\n" -#~ " Se pluraj nomoj aperas kun -t, la koncerna nomo aperos antaÅ­ ĝia\n" -#~ " kompleta serĉvojo registrita. La opcio -l donas al la eligaĵo\n" -#~ " la formon reuzeblan por enigo. Se nenia opcio estas donita, eligu\n" -#~ " la informojn pri la memorataj komandoj." - -# help [-s] [pattern ...] -#~ msgid "" -#~ "Display helpful information about builtin commands. If PATTERN is\n" -#~ " specified, gives detailed help on all commands matching PATTERN,\n" -#~ " otherwise a list of the builtins is printed. The -s option\n" -#~ " restricts the output for each builtin command matching PATTERN to\n" -#~ " a short usage synopsis." -#~ msgstr "" -#~ "Eligu helpan informon pri primitivaj komandoj. Se la ŝablono\n" -#~ " pattern estas donita, eligu detalan helpon pri la komandoj\n" -#~ " kongruaj kun la ŝablono; alie eligu nur liston de la primitivaj\n" -#~ " komandoj. La opcio -s reduktas la eligaĵon pri ĉiu trovita\n" -#~ " kongruaĵo ĝis mallonga resumo." - -# disown [-h] [-ar] [jobspec ...] -#~ msgid "" -#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" -#~ " If the -h option is given, the job is not removed from the table, but " -#~ "is\n" -#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" -#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -#~ "all\n" -#~ " jobs from the job table; the -r option means to remove only running " -#~ "jobs." -#~ msgstr "" -#~ "Senopcie: forigu ĉiun laboron indikitan per argumento jobspec el\n" -#~ " la tabelo de aktivaj laboroj.\n" -#~ "\n" -#~ " Ĉe la opcio -h, anstataÅ­ forigi la laboron el la tabelo, marku ĝin\n" -#~ " tiel, ke la signalo SIGHUP ne estu plusendita al la laboro(j) kiam\n" -#~ " tian signalon ricevas la ŝelo.\n" -#~ "\n" -#~ " Se nenia laboro jobspec estas indikita, la opcio -a preskribas\n" -#~ " forigi ĉiujn laborojn el la labortabelo; la opcio -r preskribas\n" -#~ " forigi nur la rulatajn laborojn." - -# return [n] -#~ msgid "" -#~ "Causes a function to exit with the return value specified by N. If N\n" -#~ " is omitted, the return status is that of the last command." -#~ msgstr "" -#~ "Igas la funkcion finiĝi kaj liveri la donitan valoron n kiel\n" -#~ " elirstaton. Se n mankas, la elirstato estas tiu de la ĵusa\n" -#~ " komando." - -# unset [-f] [-v] [name ...] -#~ msgid "" -#~ "For each NAME, remove the corresponding variable or function. Given\n" -#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" -#~ " unset will only act on functions. With neither flag, unset first\n" -#~ " tries to unset a variable, and if that fails, then tries to unset a\n" -#~ " function. Some variables cannot be unset; also see readonly." -#~ msgstr "" -#~ "Por ĉiu nomo name, forigu la respondan variablon aÅ­ funkcion.\n" -#~ " Ĉe la opcio „-v‟ forigu nur la variablojn.\n" -#~ " Ĉe la opcio „-f‟ forigu nur la funkciojn.\n" -#~ " Se neniu el la du opcioj estas indikita, „unset‟ unue provos\n" -#~ " forigi variablon, kaj se tia ne troviĝos, funkcion. Iujn\n" -#~ " variablojn ne eblas forigi. Vd ankaÅ­ la helpon pri „readonly‟." - -# ZZZ: export [-nf] [name[=value] ...] or -# export -p -#~ msgid "" -#~ "NAMEs are marked for automatic export to the environment of\n" -#~ " subsequently executed commands. If the -f option is given,\n" -#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -#~ " is given, a list of all names that are exported in this shell is\n" -#~ " printed. An argument of `-n' says to remove the export property\n" -#~ " from subsequent NAMEs. An argument of `--' disables further option\n" -#~ " processing." -#~ msgstr "" -#~ "Marku la nomojn name por aÅ­tomata eksporto en la medion de\n" -#~ " la plenumotaj komandoj.\n" -#~ " Se la opcio -f estas donita, la nomoj rilatas al funkcioj.\n" -#~ " Se nenia nomo name ĉeestas, aÅ­ se la opcio „-p‟ estas donita, \n" -#~ " eligu la liston de ĉiuj nomoj eksportataj de ĉi tiu ŝelo.\n" -#~ " La opcio -n forviŝas la eksportomarkon de la ĝin sekvantaj nomoj.\n" -#~ " La opcio „--‟ ĉesigas pluan opcitraktadon en sia linio." - -# ZZZ: readonly [-af] [name[=value] ...] or -# readonly -p -#~ msgid "" -#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" -#~ " not be changed by subsequent assignment. If the -f option is given,\n" -#~ " then functions corresponding to the NAMEs are so marked. If no\n" -#~ " arguments are given, or if `-p' is given, a list of all readonly " -#~ "names\n" -#~ " is printed. The `-a' option means to treat each NAME as\n" -#~ " an array variable. An argument of `--' disables further option\n" -#~ " processing." -#~ msgstr "" -#~ "La donitaj nomoj name iĝas nurlegaj kaj la valorojn de tiuj nomoj\n" -#~ " ne povas ŝanĝi posta valorizo. Se la opcio „-f‟ estas donita,\n" -#~ " tio aplikiĝas nur al la funkcioj respondaj al la nomoj. Se\n" -#~ " argumentoj mankas, aÅ­ se la opcio „-p‟ estas uzita, la listo de\n" -#~ " ĉiuj nurlegaj nomoj estas eligata. La opcio „-a‟ indikas, ke\n" -#~ " ĉiun nomon name oni rigardu tabela variablo.\n" -#~ " La opcio „--‟ ĉesigas pluan opcitraktadon." - -# shift [n] -#~ msgid "" -#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -#~ " not given, it is assumed to be 1." -#~ msgstr "" -#~ "La poziciaj parametroj ekde $n+1 renomiĝas $1 ... ktp.\n" -#~ " Se n ne estas indikita, 1 estas uzata anstataÅ­e." +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc(): Ne povas reokupi %lu bajtojn (%lu bajtoj disponigitaj)." -# suspend [-f] -#~ msgid "" -#~ "Suspend the execution of this shell until it receives a SIGCONT\n" -#~ " signal. The `-f' if specified says not to complain about this\n" -#~ " being a login shell if it is; just suspend anyway." -#~ msgstr "" -#~ "Haltetigu la plenumon de la ŝelo ĝis ĝi ricevos la signalon SIGCONT.\n" -#~ " Se la ŝelo estas saluta, la opcio „-f‟ silentigas la averton ke\n" -#~ " ĝi estas saluta ŝelo; la ŝelo simple haltetas." - -# times -#~ msgid "" -#~ "Print the accumulated user and system times for processes run from\n" -#~ " the shell." -#~ msgstr "" -#~ "Eligu la tempojn akumulitajn de la uzanto kaj de la kerno\n" -#~ " por la procezoj lanĉitaj el la ŝelo." +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: Ne eblas reokupi %lu bajtojn." -# type [-afptP] name [name ...] -#~ msgid "" -#~ "For each NAME, indicate how it would be interpreted if used as a\n" -#~ " command name.\n" -#~ " \n" -#~ " If the -t option is used, `type' outputs a single word which is one " -#~ "of\n" -#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " -#~ "an\n" -#~ " alias, shell reserved word, shell function, shell builtin, disk " -#~ "file,\n" -#~ " or unfound, respectively.\n" -#~ " \n" -#~ " If the -p flag is used, `type' either returns the name of the disk\n" -#~ " file that would be executed, or nothing if `type -t NAME' would not\n" -#~ " return `file'.\n" -#~ " \n" -#~ " If the -a flag is used, `type' displays all of the places that " -#~ "contain\n" -#~ " an executable named `file'. This includes aliases, builtins, and\n" -#~ " functions, if and only if the -p flag is not also used.\n" -#~ " \n" -#~ " The -f flag suppresses shell function lookup.\n" -#~ " \n" -#~ " The -P flag forces a PATH search for each NAME, even if it is an " -#~ "alias,\n" -#~ " builtin, or function, and returns the name of the disk file that " -#~ "would\n" -#~ " be executed." -#~ msgstr "" -#~ "Por ĉiu nomo name, montru kion ĝi signifus en la pozicio de\n" -#~ " komadonomo.\n" -#~ "\n" -#~ " Kun la opcio -t eligu unu vorton, iun el la sekvaj:\n" -#~ " „alias‟, „keyword‟, „function‟, „builtin‟, „file‟ aÅ­ „‟ -- se\n" -#~ " name estas, respektive, alinomo, ŝela ŝlosilvorto, ŝelfunkcio,\n" -#~ " ŝela primitivo, dosiero aÅ­ nenio konata.\n" -#~ "\n" -#~ " Kun la opcio -p eligu la nomon de dosiero kiu iĝus plenumata;\n" -#~ " aÅ­ nenion, se la «type -t name» ne eligus „file‟.\n" -#~ "\n" -#~ " Ĉe -a listigu ĉiujn lokojn entenantajn plenumeblan dosieron\n" -#~ " kun koncerna nomo name. La listo inkludas alinomojn kaj\n" -#~ " funkciojn, se kaj nur se malestas la opcio -p.\n" -#~ "\n" -#~ " La opcio -f ekskludas el la serĉo la ŝelfunkciojn.\n" -#~ "\n" -#~ " La opcio -f igas serĉi ĉiun nomon name laÅ­ PATH, eĉ se ekzistas\n" -#~ " alinomo, primitiva komando aÅ­ funkcio name, kaj eligi la nomon de\n" -#~ " koncerna plenumebla dosiero." - -# umask [-p] [-S] [mode] -#~ msgid "" -#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -#~ " `-S' is supplied, the current value of the mask is printed. The `-" -#~ "S'\n" -#~ " option makes the output symbolic; otherwise an octal number is " -#~ "output.\n" -#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" -#~ " that may be used as input. If MODE begins with a digit, it is\n" -#~ " interpreted as an octal number, otherwise it is a symbolic mode " -#~ "string\n" -#~ " like that accepted by chmod(1)." -#~ msgstr "" -#~ "La dosierkrea masko de la uzanto havu la valoron de la argumento\n" -#~ " mode. Se mode mankas aÅ­ se ĉeestas la opcio -S, eligu la\n" -#~ " kurantan valoron de la masko. Kun la opcio -S la eligo estas\n" -#~ " simbola, alie ĝi estas okuma. Se estas donita „-p‟ sen\n" -#~ " argumento mode, la eligaĵo havos formon taÅ­gan por enigo.\n" -#~ " Se la argumento mode komenciĝas per cifero, ĝi estas\n" -#~ " interpretata kiel okuma nombro, alie kiel simbola signoĉeno\n" -#~ " laÅ­ chmod(1)." - -#~ msgid "" -#~ "Wait for the specified process and report its termination status. If\n" -#~ " N is not given, all currently active child processes are waited for,\n" -#~ " and the return code is zero. N is a process ID; if it is not given,\n" -#~ " all child processes of the shell are waited for." -#~ msgstr "" -#~ "Atendu finiĝon de la indikita procezo kaj liveru ĝian elirstaton.\n" -#~ " Se n malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru\n" -#~ " la elirstaton 0. n estas proceznumero; se ĝi malestas, atendu\n" -#~ " ĉiujn procezidojn de la ŝelo." - -# ZZZ: function NAME { COMMANDS ; } or -# NAME () { COMMANDS ; } -#~ msgid "" -#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" -#~ " Arguments on the command line along with NAME are passed to the\n" -#~ " function as $0 .. $n." -#~ msgstr "" -#~ "Kreu simplan komandon vokeblan per la nomo NAME, plenumantan la\n" -#~ " komandojn COMMANDS. La nomo kaj la komandoliniaj argumentoj\n" -#~ " estas pasigataj al tiu funkcio jene: $0 ... $n." - -# shopt [-pqsu] [-o long-option] optname [optname...] -#~ msgid "" -#~ "Toggle the values of variables controlling optional behavior.\n" -#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" -#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" -#~ " status indicates whether each OPTNAME is set or unset. The -o\n" -#~ " option restricts the OPTNAMEs to those defined for use with\n" -#~ " `set -o'. With no options, or with the -p option, a list of all\n" -#~ " settable options is displayed, with an indication of whether or\n" -#~ " not each is set." -#~ msgstr "" -#~ "Ŝanĝu la valoron de variabloj regantaj la konduton de ŝelaj opcioj.\n" -#~ " La opcio -s aktivigas (set) ĉiun opcinomon optname.\n" -#~ " La opcio -u malaktivigas (unset) ĉiun opcinomon optname.\n" -#~ " La opcio -q silentigas eligon de normalaj mesaĝoj; se ĝin akompanas\n" -#~ " pluraj opcinomoj, la elirstato indikas, ĉu ĉiuj donitaj optname\n" -#~ " estas aktivaj.\n" -#~ " La opcio -o limigas la opcinomojn ĝis tiuj uzeblaj ĉe „set -o‟.\n" -#~ " Senopcie aÅ­ kun la opcio -p la listo de ĉiuj ŝalteblaj opcioj\n" -#~ " estas eligata, kun indiko ĉu ĉiu el ili estas ŝaltita aÅ­ ne." - -# complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] -# [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] -# [-F function] [-C command] [name ...] -#~ msgid "" -#~ "For each NAME, specify how arguments are to be completed.\n" -#~ " If the -p option is supplied, or if no options are supplied, " -#~ "existing\n" -#~ " completion specifications are printed in a way that allows them to " -#~ "be\n" -#~ " reused as input. The -r option removes a completion specification " -#~ "for\n" -#~ " each NAME, or, if no NAMEs are supplied, all completion " -#~ "specifications." +# XXX: fatal_error +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" #~ msgstr "" -#~ "Por ĉiu nomo name difinu, kiel la argumentoj estu kompletigotaj.\n" -#~ " Se ĉeestas la opcio -p, aÅ­ senopcie, eligu la ekzistantajn\n" -#~ " kompletigajn specifojn en formo reuzebla por enigo en la ŝelon.\n" -#~ " La opcio -r forigas la kompletigajn specifojn por ĉiu nomo name,\n" -#~ " aÅ­, se nenia tia nomo estas donita, ĉiujn kompletigajn specifojn." +#~ "xrealloc: %s:%d: ne eblas reokupi %lu bajtojn (%lu bajtoj disponigitaj)" diff --git a/po/es.gmo b/po/es.gmo index a9c9aee33a0da5e22614eec7f717ea58d9b79ddf..e626a6f91f17d5193b6e35864e0958ed604df563 100644 GIT binary patch literal 151298 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

    R&Nv%q`BQqFiMluRrd%EYF{QHaHCQ`YnB;|kWn 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 NFP^VkH~JNw{SOvhK4ky^ diff --git a/po/es.po b/po/es.po index 63b5f25..2cad3cc 100644 --- a/po/es.po +++ b/po/es.po @@ -1,72 +1,79 @@ -# Mensajes en español para GNU bash-3.2. -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# Cristian Othón Martínez Vera , 2000, 2001, 2002, 2003, 2004, 2005, 2006. +# Mensajes en español para GNU bash-4.0. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the bash package. +# Cristian Othón Martínez Vera , 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009. # msgid "" msgstr "" -"Project-Id-Version: GNU bash 3.2\n" +"Project-Id-Version: GNU bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2006-10-31 23:36-0600\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-03-19 19:34-0600\n" "Last-Translator: Cristian Othón Martínez Vera \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: arrayfunc.c:50 msgid "bad array subscript" msgstr "subíndice de matriz incorrecto" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" -msgstr "" +msgstr "%s: no se puede convertir la matriz de indizada a asociativa" -#: arrayfunc.c:479 -#, fuzzy, c-format +#: arrayfunc.c:480 +#, c-format msgid "%s: invalid associative array key" -msgstr "%s: nombre de acción inválido" +msgstr "%s: índice de matriz asociativa inválido" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: no se puede asignar a un índice que no es numérico" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" -msgstr "" +msgstr "%s: %s: se debe usar un subíndice al asignar a una matriz asociativa" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: no se puede crear: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "bash_execute_unix_command: no se puede encontrar la combinación de teclas " "para la orden" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: el primer carácter que no es espacio en blanco no es `\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "no hay un `%c' que cierre en %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: falta un `:' separador" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "`%s': nombre de combinación de teclas inválido" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "no se activó la edición de línea" #: builtins/bind.def:206 #, c-format @@ -81,7 +88,7 @@ msgstr "%s: no se puede leer: %s" #: builtins/bind.def:260 #, c-format msgid "`%s': cannot unbind" -msgstr "%s: no se puede desenlazar" +msgstr "%s: no se puede borrar la asignación" #: builtins/bind.def:295 builtins/bind.def:325 #, c-format @@ -91,7 +98,7 @@ msgstr "`%s': nombre de funci #: builtins/bind.def:303 #, c-format msgid "%s is not bound to any keys.\n" -msgstr "%s no está enlazado a ninguna tecla.\n" +msgstr "%s no está asignado a ninguna tecla.\n" #: builtins/bind.def:307 #, c-format @@ -99,21 +106,37 @@ msgid "%s can be invoked via " msgstr "%s se puede invocar a través de " #: builtins/break.def:77 builtins/break.def:117 -#, fuzzy msgid "loop count" -msgstr "logout" +msgstr "cuenta de ciclo" #: builtins/break.def:137 msgid "only meaningful in a `for', `while', or `until' loop" msgstr "sólo tiene significado en un ciclo `for', `while' o `until'" #: builtins/caller.def:133 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" " Without EXPR, returns " -msgstr "Devuelve el contexto de la llamada a subrutina actual." +msgstr "" +"Devuelve el contexto de la llamada a subrutina actual.\n" +" \n" +" Sin EXPR, devuelve " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -124,25 +147,25 @@ msgid "OLDPWD not set" msgstr "OLDPWD no está definido" #: builtins/common.c:101 -#, fuzzy, c-format +#, c-format msgid "line %d: " -msgstr "ranura %3d: " +msgstr "línea %d: " -#: builtins/common.c:139 error.c:260 -#, fuzzy, c-format +#: builtins/common.c:139 error.c:261 +#, c-format msgid "warning: " -msgstr "%s: aviso: " +msgstr "aviso: " #: builtins/common.c:153 -#, fuzzy, c-format +#, c-format msgid "%s: usage: " -msgstr "%s: aviso: " +msgstr "%s: uso: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "demasiados argumentos" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: la opción requiere un argumento" @@ -157,7 +180,7 @@ msgstr "%s: se requiere un argumento num msgid "%s: not found" msgstr "%s: no se encontró" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: opción inválida" @@ -173,16 +196,14 @@ msgid "`%s': not a valid identifier" msgstr "`%s': no es un identificador válido" #: builtins/common.c:238 -#, fuzzy msgid "invalid octal number" -msgstr "número de señal inválido" +msgstr "número octal inválido" #: builtins/common.c:240 -#, fuzzy msgid "invalid hex number" -msgstr "número inválido" +msgstr "número hexadecimal inválido" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "número inválido" @@ -196,7 +217,7 @@ msgstr "%s: especificaci msgid "`%s': not a pid or valid job spec" msgstr "`%s': no es un pid o una especificación válida de trabajo" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: variable de sólo lectura" @@ -251,12 +272,12 @@ msgstr "error de escritura: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "error al establecer los atributos de la terminal: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "error al obtener los atributos de la terminal: %s" #: builtins/common.c:563 #, c-format @@ -268,28 +289,28 @@ msgstr "%s: error al obtener el directorio actual: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: especificación de trabajo ambigua" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: nombre de acción inválido" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: no hay completado de especificación" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "aviso: es posible que la opción -F no funcione como se espera" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "aviso: es posible que la opción -C no funcione como se espera" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" -msgstr "" +msgstr "no se está ejecutando la función de completado" # sólo se puede usar. sv # De acuerdo. cfuga @@ -297,24 +318,24 @@ msgstr "" msgid "can only be used in a function" msgstr "sólo se puede usar dentro de una función" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "no se puede usar `-f' para hacer funciones" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: función de sólo lectura" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: no se pueden destruir variables de matriz de esta forma" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" -msgstr "" +msgstr "%s: no se puede convertir una matriz asociativa a indizada" #: builtins/enable.def:137 builtins/enable.def:145 msgid "dynamic loading not available" @@ -340,8 +361,8 @@ msgstr "%s: no se carg msgid "%s: cannot delete: %s" msgstr "%s: no se puede borrar: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: es un directorio" @@ -358,7 +379,8 @@ msgstr "%s: el fichero es demasiado grande" # file=fichero. archive=archivo. Si no, es imposible traducir tar. sv # De acuerdo. Corregido en todo el fichero. cfuga -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: no se puede ejecutar el fichero binario" @@ -369,9 +391,9 @@ msgid "%s: cannot execute: %s" msgstr "%s: no se puede ejecutar: %s" #: builtins/exit.def:65 -#, fuzzy, c-format +#, c-format msgid "logout\n" -msgstr "logout" +msgstr "logout\n" #: builtins/exit.def:88 msgid "not login shell: use `exit'" @@ -383,26 +405,26 @@ msgid "There are stopped jobs.\n" msgstr "Hay trabajos detenidos.\n" #: builtins/exit.def:122 -#, fuzzy, c-format +#, c-format msgid "There are running jobs.\n" -msgstr "Hay trabajos detenidos.\n" +msgstr "Hay trabajos en ejecución.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "no se encontró la orden" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "especificación de historia" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: no se puede abrir el fichero temporal: %s" #: builtins/fg_bg.def:149 builtins/jobs.def:282 msgid "current" -msgstr "" +msgstr "actual" #: builtins/fg_bg.def:158 #, c-format @@ -421,7 +443,7 @@ msgstr "%s: la opci #: builtins/hash.def:92 msgid "hashing disabled" -msgstr "hashing desactivado" +msgstr "asociación desactivada" #: builtins/hash.def:138 #, c-format @@ -429,15 +451,15 @@ msgid "%s: hash table empty\n" msgstr "%s: tabla de asociación vacía\n" #: builtins/hash.def:244 -#, fuzzy, c-format +#, c-format msgid "hits\tcommand\n" -msgstr "última orden: %s\n" +msgstr "coinc\torden\n" #: builtins/help.def:130 -#, fuzzy, c-format +#, c-format msgid "Shell commands matching keyword `" msgid_plural "Shell commands matching keywords `" -msgstr[0] "Órdenes del shell que coinciden con la palabra `" +msgstr[0] "Orden del shell que coinciden con la palabra `" msgstr[1] "Órdenes del shell que coinciden con la palabra `" #: builtins/help.def:168 @@ -489,20 +511,20 @@ msgid "%s: history expansion failed" msgstr "%s: falló la expansión de la historia" #: builtins/inlib.def:71 -#, fuzzy, c-format +#, c-format msgid "%s: inlib failed" -msgstr "%s: falló la expansión de la historia" +msgstr "%s: falló inlib" #: builtins/jobs.def:109 msgid "no other options allowed with `-x'" msgstr "no se permiten otras opciones con `-x'" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: los argumentos deben ser procesos o IDs de trabajos" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Error desconocido" @@ -510,56 +532,60 @@ msgstr "Error desconocido" msgid "expression expected" msgstr "se esperaba una expresión" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: no es una variable de matriz" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: especificación de descriptor de fichero inválida" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: descriptor de fichero inválido: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 -#, fuzzy, c-format +#: builtins/mapfile.def:266 builtins/mapfile.def:304 +#, c-format msgid "%s: invalid line count" -msgstr "%s: opción inválida" +msgstr "%s: cuenta de líneas inválida" -#: builtins/mapfile.def:269 -#, fuzzy, c-format +#: builtins/mapfile.def:277 +#, c-format msgid "%s: invalid array origin" -msgstr "%s: opción inválida" +msgstr "%s: origen de matriz inválido" -#: builtins/mapfile.def:286 -#, fuzzy, c-format +#: builtins/mapfile.def:294 +#, c-format msgid "%s: invalid callback quantum" -msgstr "%s: nombre de acción inválido" +msgstr "%s: quantum de llamada inválido" -#: builtins/mapfile.def:318 -#, fuzzy +#: builtins/mapfile.def:326 msgid "empty array variable name" -msgstr "%s: no es una variable de matriz" +msgstr "nombre de variable de matriz vacío" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" -msgstr "" +msgstr "se requiere el soporte de variable de matriz" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "`%s': falta el carácter de formato" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "`%c': carácter de formato inválido" -#: builtins/printf.def:571 -#, fuzzy, c-format +#: builtins/printf.def:578 +#, c-format msgid "warning: %s: %s" -msgstr "%s: aviso: " +msgstr "aviso: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "falta el dígito hexadecimal para \\x" @@ -573,15 +599,13 @@ msgstr "" #: builtins/pushd.def:506 msgid "directory stack empty" -msgstr "" +msgstr "la pila de directorios está vacía" #: builtins/pushd.def:508 -#, fuzzy msgid "directory stack index" -msgstr "desbordamiento de la base de la pila de recursión" +msgstr "índice de la pila de directorios" #: builtins/pushd.def:683 -#, fuzzy msgid "" "Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" @@ -608,23 +632,24 @@ msgstr "" " se guardan en la lista con la orden `pushd'; pueden ir saliendo de\n" " la lista con la orden `popd'.\n" " \n" -" La opción -l especifica que `dirs' no debe mostrar versiones\n" -" abreviadas de los directorios que son relativos a su directorio\n" -" inicial. Esto significa que `~/bin' se mostrará como `/home/bfox/bin'.\n" -" La opción -v causa que `dirs' muestre la pila de directorios con\n" -" una entrada por línea, anteponiendo la posición en la pila al nombre\n" -" del directorio. La opción -p hace lo mismo, pero no antepone la\n" -" posición en la pila. La opción -c limpia la pila de directorios\n" -" borrando todos sus elementos.\n" +" Opciones:\n" +" -c\tlimpia la pila de directorios, eliminando todos los elementos\n" +" -l\tno muestra las versiones con prefijo de tilde de los directorios\n" +" \trelativos a su directorio inicial\n" +" -p\tmuestra la pila de directorios con una entrada por línea\n" +" -v\tmuestra la pila de directorios con una entrada por línea con\n" +" \tsu posición en la pila como prefijo\n" " \n" -" +N\tmuestra la N-ésima entrada contando desde la izquierda de la lista\n" -" mostrada por dirs cuando se invoca sin opciones, empezando de cero.\n" +" Argumentos:\n" +" +N\tMuestra la N-ésima entrada contando desde la izquierda de\n" +" \tla lista mostrada por dirs cuando se llama sin opciones,\n" +" \tempezando desde cero.\n" " \n" -" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n" -" mostrada por dirs cuando se invoca sin opciones, empezando de cero." +" -N\tMuestra la N-ésima entrada contando desde la derecha de\n" +"\tla lista mostrada por dirs cuando se llama sin opciones,\n" +"\tempezando desde cero." #: builtins/pushd.def:705 -#, fuzzy msgid "" "Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" @@ -653,6 +678,7 @@ msgstr "" " directorio de trabajo actual. Sin argumentos, intercambia\n" " los dos directorios del tope.\n" " \n" +" Argumentos:\n" " +N\tRota la pila para que el N-ésimo directorio (contando\n" " \tde la izquierda de la lista mostrada por `dirs',\n" " \tcomenzando desde cero) esté en el tope.\n" @@ -660,16 +686,12 @@ msgstr "" " \tde la derecha de la lista mostrada por `dirs',\n" " \tcomenzando desde cero) esté en el tope.\n" " \n" -" -n\tsuprime el cambio normal de directorio cuando se agregan\n" -" \tdirectorios a la pila, así sólo se manipula la pila.\n" -" \n" -" dir\tagrega DIR a la pila de directorios en el tope,\n" +" dir\tagrega DIR a la pila de directorios en el tope,\n" " \thaciéndolo el nuevo directorio de trabajo actual.\n" " \n" -" Puede ver la pila de directorios con la orden `dirs'." +" La orden interna `dirs' muestra la pila de directorios." #: builtins/pushd.def:730 -#, fuzzy msgid "" "Removes entries from the directory stack. With no arguments, removes\n" " the top directory from the stack, and changes to the new top directory.\n" @@ -689,31 +711,32 @@ msgid "" " \n" " The `dirs' builtin displays the directory stack." msgstr "" -"Borra entradas de la pila de directorios. Sin argumentos,\n" -" borra el directorio del tope de la pila, y cambia al\n" -" nuevo directorio tope.\n" +"Borra entradas de la pila de directorios. Sin argumentos, borra\n" +" directorio del tope de la pila, y cambia al nuevo directorio tope.\n" +" \n" +" Opciones:\n" +" -n\tsuprime el cambio normal de directorio cuando se borran\n" +" \tdirectorios de la pila, así sólo se manipula la pila.\n" " \n" -" +N\tBorra la N-ésima entrada contando de la izquierda de\n" +" Argumentos:\n" +" +N\tBorra la N-ésima entrada contando de la izquierda de\n" " \tla lista mostrada por `dirs', comenzando desde cero.\n" " \tPor ejemplo: `popd +0' borra el primer directorio, `popd +1'\n" " \tel segundo.\n" " \n" -" -N\tBorra la N-ésima entrada contando de la derecha de\n" +" -N\tBorra la N-ésima entrada contando de la derecha de\n" " \tla lista mostrada por `dirs', comenzando desde cero.\n" " \tPor ejemplo: `popd -0' borra el último directorio, `popd -1'\n" " \tel penúltimo.\n" " \n" -" -n\tsuprime el cambio normal de directorio cuando se borran\n" -" \tdirectorios de la pila, así sólo se manipula la pila.\n" -" \n" -" Puede ver la pila de directorios con la orden `dirs'." +" La orden interna `dirs' muestra la pila de directorios." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: especificación de tiempo de expiración inválida" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "error de lectura: %d: %s" @@ -751,11 +774,11 @@ msgstr "%s: no es una funci msgid "shift count" msgstr "cuenta de shift" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "no se pueden activar y desactivar opciones del shell simultáneamente" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: nombre de opción del shell inválido" @@ -823,9 +846,8 @@ msgid "%s: cannot get limit: %s" msgstr "%s: no se puede obtener el límite: %s" #: builtins/ulimit.def:453 -#, fuzzy msgid "limit" -msgstr "Límite de CPU" +msgstr "límite" #: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format @@ -846,77 +868,76 @@ msgstr "`%c': operador de modo simb msgid "`%c': invalid symbolic mode character" msgstr "`%c': carácter de modo simbólico inválido" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " -msgstr "" +msgstr " línea " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "última orden: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Abortando..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "error de orden desconocido" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "tipo de orden erróneo" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "conector erróneo" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "salto erróneo" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" -msgstr "%s: variable desenlazada" +msgstr "%s: variable sin asignar" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\aha expirado mientras esperaba alguna entrada: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "ha expirado mientras esperaba alguna entrada: auto-logout\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" -msgstr "no se puede redirigir la salida estándard de /dev/null: %s" +msgstr "no se puede redirigir la salida estándar desde /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: `%c': carácter de formato inválido" -#: execute_cmd.c:2011 -#, fuzzy +#: execute_cmd.c:2075 msgid "pipe error" -msgstr "error de escritura: %s" +msgstr "error de tubería" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: no se encontró la orden" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: intérprete erróneo" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "no se puede duplicar el df %d al df %d" @@ -945,7 +966,7 @@ msgstr "divisi # o lo dejamos como 'unidad' o 'elemento'? cfuga #: expr.c:471 msgid "bug: bad expassign token" -msgstr "bicho: unidad de asignación de símbolo erróneo" +msgstr "bicho: elemento de asignación de expresión erróneo" #: expr.c:513 msgid "`:' expected for conditional expression" @@ -965,40 +986,40 @@ msgstr "" # tiene razón Enrique, es singular. cfuga #: expr.c:854 msgid "missing `)'" -msgstr "falta `)'" +msgstr "falta un `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "error sintáctico: se esperaba un operando" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "error sintáctico: operador aritmético inválido" -#: expr.c:1201 -#, fuzzy, c-format +#: expr.c:1202 +#, c-format msgid "%s%s%s: %s (error token is \"%s\")" -msgstr "%s: %s: %s (símbolo de error es \"%s\")\n" +msgstr "%s%s%s: %s (el elemento de error es \"%s\")" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "base aritmética inválida" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "valor demasiado grande para la base" -#: expr.c:1328 -#, fuzzy, c-format +#: expr.c:1329 +#, c-format msgid "%s: expression error\n" -msgstr "%s: se esperaba una expresión entera" +msgstr "%s: error de expresión\n" #: general.c:61 msgid "getcwd: cannot access parent directories" -msgstr "getcwd: no se puede acceder a los directorios padres" +msgstr "getcwd: no se puede acceder a los directorios padre" -#: input.c:94 subst.c:4559 -#, fuzzy, c-format +#: input.c:94 subst.c:4857 +#, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "no se puede reestablecer el modo nodelay para el df %d" @@ -1011,7 +1032,7 @@ msgstr "" # buffer: espacio intermedio , alojamiento intermedio ( me gusta menos ) # em+ -# almacenamiento interrmedio. cfuga +# almacenamiento intermedio. cfuga #: input.c:266 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" @@ -1020,7 +1041,7 @@ msgstr "" #: jobs.c:466 msgid "start_pipeline: pgrp pipe" -msgstr "" +msgstr "start_pipeline: tubería de pgrp" #: jobs.c:887 #, c-format @@ -1035,12 +1056,12 @@ msgstr "borrando el trabajo detenido %d con grupo de proceso %ld" #: jobs.c:1110 #, c-format msgid "add_process: process %5ld (%s) in the_pipeline" -msgstr "" +msgstr "add_process: el proceso %5ld (%s) en the_pipeline" #: jobs.c:1113 #, c-format msgid "add_process: pid %5ld (%s) marked as still alive" -msgstr "" +msgstr "add_process: pid %5ld (%s) se marca como vivo aún" # Cambiaría 'hay' por 'existe' em+ #: jobs.c:1401 @@ -1049,22 +1070,22 @@ msgid "describe_pid: %ld: no such pid" msgstr "describe_pid: %ld: no existe tal pid" #: jobs.c:1416 -#, fuzzy, c-format +#, c-format msgid "Signal %d" -msgstr "Señal Desconocida #%d" +msgstr "Señal %d" #: jobs.c:1430 jobs.c:1455 msgid "Done" msgstr "Hecho" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Detenido" #: jobs.c:1439 -#, fuzzy, c-format +#, c-format msgid "Stopped(%s)" -msgstr "Detenido" +msgstr "Detenido(%s)" #: jobs.c:1443 msgid "Running" @@ -1090,76 +1111,77 @@ msgid "(core dumped) " msgstr "(`core' generado) " #: jobs.c:1568 -#, fuzzy, c-format +#, c-format msgid " (wd: %s)" -msgstr "(dir ahora: %s)\n" +msgstr " (dir ahora: %s)" -#: jobs.c:1771 -#, fuzzy, c-format +#: jobs.c:1776 +#, c-format msgid "child setpgid (%ld to %ld)" -msgstr "error en la ejecución de setpgid (%d a %d) en el proceso hijo %d: %s\n" +msgstr "setpgid hijo (%ld a %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld no es un proceso hijo de este shell" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: No hay un registro del proceso %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: el trabajo %d está detenido" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: el trabajo ha terminado" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: el trabajo %d ya está en segundo plano" -#: jobs.c:3492 -#, fuzzy, c-format +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 +#, c-format msgid "%s: line %d: " -msgstr "%s: aviso: " +msgstr "%s: línea %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (`core' generado)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(dir ahora: %s)\n" -#: jobs.c:3563 -#, fuzzy +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" -msgstr "initialize_jobs: falló getpgrp: %s" +msgstr "initialize_jobs_control: falló getpgrp" -#: jobs.c:3623 -#, fuzzy +#: jobs.c:3639 msgid "initialize_job_control: line discipline" -msgstr "initialize_jobs: disciplina de línea: %s" +msgstr "initialize_jobs_control: disciplina de línea" -#: jobs.c:3633 -#, fuzzy +#: jobs.c:3649 msgid "initialize_job_control: setpgid" -msgstr "initialize_jobs: falló getpgrp: %s" +msgstr "initialize_jobs_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" -msgstr "" +msgstr "no se puede establecer el grupo de proceso de terminal (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "no hay control de trabajos en este shell" @@ -1178,9 +1200,8 @@ msgstr "" "malloc: %s:%d: aserción arruinada\r\n" #: lib/malloc/malloc.c:313 -#, fuzzy msgid "unknown" -msgstr "" +msgstr "desconocido" #: lib/malloc/malloc.c:797 msgid "malloc: block on free list clobbered" @@ -1254,6 +1275,26 @@ msgstr "%s: especificaci msgid "network operations not supported" msgstr "no hay soporte para operaciones de red" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: no se pueden reasignar %lu bytes" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: no se pueden reasignar %lu bytes" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Tiene correo en $_" @@ -1267,100 +1308,102 @@ msgstr "Tiene correo nuevo en $_" msgid "The mail in %s has been read\n" msgstr "El correo en %s fue leído\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "error sintáctico: se requiere una expresión aritmética" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "error sintáctico: `;' inesperado" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "error sintáctico: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" -msgstr "make_here_document: tipo de instrucción erróneo %d" +msgstr "make_here_document: tipo de instrucción %d erróneo" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" +"el documento-aquí en la línea %d está delimitado por fin-de-fichero (se " +"esperaba `%s')" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" "make_redirection: la instrucción de redirección `%d' está fuera de rango" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "EOF inesperado mientras se buscaba un `%c' coincidente" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "EOF inesperado mientras se buscaba `]]'" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "error sintáctico en la expresión condicional: elemento inesperado `%s'" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "error sintáctico en la expresión condicional" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "elemento inesperado `%s', se esperaba `)'" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "se esperaba `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "argumento inesperado `%s' para el operador unario condicional" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "argumento inesperado para el operador unario condicional" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "elemento inesperado `%s', se esperaba un operador binario condicional" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "se esperaba un operador binario condicional" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "argumento inesperado `%s' para el operador binario condicional" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "argumento inesperado para el operador binario condicional" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "elemento inesperado `%c' en la orden condicional" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "elemento inesperado `%s' en la orden condicional" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "elemento inesperado %d en la orden condicional" @@ -1371,12 +1414,12 @@ msgstr "elemento inesperado %d en la orden condicional" # provocado por el símbolo. Simplemente estar cerca del mismo. cfuga # Por consistencia con el siguiente, yo borraría la coma. sv # Cierto. Coma borrada. cfuga -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "error sintáctico cerca del elemento inesperado `%s'" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "error sintáctico cerca de `%s'" @@ -1385,24 +1428,24 @@ msgstr "error sint # no se esperaba el final de la línea em+ # Ojo, que end of file es fin de fichero, no de línea. sv # Se hicieron ambos cambios. cfuga -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "error sintáctico: no se esperaba el final del fichero" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "error sintáctico" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use \"%s\" para dejar el shell.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "EOF inesperado mientras se buscaba un `)' coincidente" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion: no se encuentra la función `%s'" @@ -1412,57 +1455,76 @@ msgstr "completion: no se encuentra la funci msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: COMPSPEC nulo" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: conector erróneo `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: descriptor de fichero inválido: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: `%c': carácter de formato inválido" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "descriptor de fichero fuera de rango" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: redireccionamiento ambiguo" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: no se puede sobreescribir un fichero existente" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restringido: no se puede redirigir la salida" -#: redir.c:162 -#, fuzzy, c-format +#: redir.c:180 +#, c-format msgid "cannot create temp file for here-document: %s" -msgstr "no se puede crear un fichero temporal para el documento here: %s" +msgstr "no se puede crear un fichero temporal para el documento-aquí: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: no se puede asignar una lista a un miembro de la matriz" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" -msgstr "/dev/(tcp|udp)/anfitrion/puerto no tiene soporte sin red" +msgstr "no se admite /dev/(tcp|udp)/anfitrion/puerto sin red" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "error de redirección: no se puede duplicar el df" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "¡no se puede encontrar /tmp, crear por favor!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp debe ser un nombre de directorio válido" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: opción inválida" @@ -1470,21 +1532,21 @@ msgstr "%c%c: opci # Yo pondría "no tengo ningún nombre". sv # Revisé el código fuente de bash. Es un mensaje de error cuando no se # encuentra el nombre del usuario que ejecuta el shell. cfuga -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "¡No tengo nombre de usuario!" -#: shell.c:1778 -#, fuzzy, c-format +#: shell.c:1793 +#, c-format msgid "GNU bash, version %s-(%s)\n" -msgstr "GNU %s, versión %s\n" +msgstr "GNU bash, versión %s-(%s)\n" # En la lista spanglish se discutió mucho sobre script, # no sé en que quedó, ni puedo decirte ahora cómo lo hemos # traducido en otras ocasiones. Sehll script lo henmos traducido # como guión del shell , eso es seguro ... así que puede estar # bien así , ya lo verán otros em+ -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1493,92 +1555,92 @@ msgstr "" "Modo de empleo:\t%s [opción GNU larga] [opción] ...\n" "\t%s [opción GNU larga] [opción] guión-del-shell\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Opciones GNU largas:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Opciones del shell:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD o -c orden o -O opcion_shopt\t\t(sólo invocación)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s o -o opción\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Teclee `%s -c \"help set\"' para más información sobre las opciones del " "shell.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Teclee `%s -c help' para más información sobre las órdenes internas del " "shell.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Use la orden `bashbug' para reportar bichos.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: operación inválida" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Señal ambigua" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Colgar" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Interrumpir" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Salir" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Instrucción ilegal" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT rastreo/captura" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "instrucción ABORT" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "instrucción EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Excepción de coma flotante" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Matado" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Error en el bus" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Violación de segmento" @@ -1586,87 +1648,86 @@ msgstr "Violaci # Es una llamada a una función del sistema em+ # De acuerdo, pero lo que está mal es la forma de invocar la # llamada a la función del sistema, no la llamada en sí cfuga -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Llamada al sistema errónea" # (pipe) no, por favor. Esto ya está traducido en libc, así que a estas # alturas, la gente ya debería saber qué es eso de la tubería. sv # De acuerdo. cfuga -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Tubería rota" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Temporizador" -#: siglist.c:110 -#, fuzzy +#: siglist.c:111 msgid "Terminated" -msgstr "y se muestra un mensaje de diagnóstico." +msgstr "Terminado" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Condición de E/S urgente" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Detenido (señal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Continúa" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "El proceso hijo ha muerto o está parado" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Detenido (entrada por terminal)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Detenido (salida por terminal)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "E/S listas" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "Límite de CPU" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Límite de ficheros" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarma (virtual)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarma (entorno)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Ventana cambiada" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Bloqueo de grabación" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Señal de usuario 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Señal de usuario 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "entrada de datos HFT pendiente" @@ -1674,146 +1735,152 @@ msgstr "entrada de datos HFT pendiente" # Suscribo lo anterior. falla suena muy raro. # Yo lo pondría además al revés: fallo de energía inminente. sv # Me gusta como lo sugieres. Cambio hecho. cfuga -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "fallo de energía inminente" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" -msgstr "inminente caída del sistema" +msgstr "caída del sistema inminente" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "migrando el proceso a otra CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "error de programación" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "el modo monitor HFT ha sido concedido" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "el modo monitor HTF ha sido retirado" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "la secuencia de sonido HFT ha sido completado" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" -msgstr "" +msgstr "Solicitud de información" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Señal Desconocida #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Señal Desconocida #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "sustitución errónea: no hay un `%s' que cierre en %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: no se puede asignar una lista a un miembro de la matriz" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "no se puede crear la tubería para la sustitución del proceso" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "no se puede crear un proceso hijo para la sustitución del proceso" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "no se puede abrir la tubería llamada %s para lectura" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "no se puede abrir la tubería llamada %s para escritura" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "no se puede duplicar la tubería llamada %s como df %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "no se pueden crear la tubería para la sustitución de la orden" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "no se puede crear un proceso hijo para la sustitución de la orden" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: no se puede duplicar la tubería como df 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parámetro nulo o no establecido" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: expresión de subcadena < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: sustitución errónea" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: no se puede asignar de esta forma" -#: subst.c:7499 -#, fuzzy, c-format +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 +#, c-format msgid "bad substitution: no closing \"`\" in %s" -msgstr "sustitución errónea: no hay un `%s' que cierre en %s" +msgstr "sustitución errónea: no hay una \"`\" que cierre en %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "no hay coincidencia: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "se esperaba un argumento" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: se esperaba una expresión entera" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "se esperaba `)'" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "se esperaba `)', se encontró %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: se esperaba un operador unario" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: se esperaba un operador binario" @@ -1825,20 +1892,20 @@ msgstr "%s: se esperaba un operador binario" # Abreviando "falta [al menos] un `]'" saldría: "falta un `]'". # ¿No es mejor "falta algún `]'"? cfuga # Tiene razón Enrique: singular. cfuga -#: test.c:806 +#: test.c:811 msgid "missing `]'" -msgstr "falta `]'" +msgstr "falta un `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "número de señal inválido" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1846,137 +1913,146 @@ msgstr "" "run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí " "mismo" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: señal errónea %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "error al importar la definición de la función para `%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "el nivel de shell (%d) es demasiado alto, se reestablece a 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no hay contexto de función en el ámbito actual" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no hay contexto de función en el ámbito actual" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parámetro nulo o no establecido" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "carácter inválido %d en exportstr para %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "no hay `=' en exportstr para %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" "pop_var_context: la cabeza de shell_variables no es un contexto de función" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no es un contexto global_variables" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope: la cabeza de shell_variables no es un ámbito de ambiente temporal" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: no se puede abrir: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: descriptor de fichero inválido: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" "License GPLv3+: GNU GPL version 3 or later \n" msgstr "" +"Licencia GPLv3+: GPL de GNU versión 3 o posterior \n" -#: version.c:86 -#, fuzzy, c-format +#: version.c:86 version2.c:83 +#, c-format msgid "GNU bash, version %s (%s)\n" -msgstr "GNU %s, versión %s\n" +msgstr "GNU bash, versión %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" +"Esto es software libre; usted es libre de cambiarlo y redistribuirlo.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "NO hay GARANTÍA, a la extensión permitida por la ley.\n" + +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." + +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" +"Licencia GPLv3+: GPL de GNU versión 3 o posterior \n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: no se pueden asignar %lu bytes (%lu bytes asignados)" -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" msgstr "xmalloc: no se pueden asignar %lu bytes" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: no se pueden reasignar %lu bytes (%lu bytes asignados)" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: no se pueden reasignar %lu bytes" - -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s:%d: no se pueden asignar %lu bytes (%lu bytes asignados)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: no se pueden asignar %lu bytes" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc: %s:%d: no se pueden reasignar %lu bytes (%lu bytes asignados)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: no se pueden reasignar %lu bytes" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [nombre[=valor] ... ]" #: builtins.c:47 -#, fuzzy msgid "unalias [-a] name [name ...]" -msgstr "unalias [-a] [nombre ...]" +msgstr "unalias [-a] nombre [nombre ...]" #: builtins.c:51 -#, fuzzy msgid "" "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" "x keyseq:shell-command] [keyseq:readline-function or readline-command]" msgstr "" -"bind [-lpvsPVS] [-m mapa_teclado] [-f fichero] [-q nombre] [-r " -"secuencia_teclas] [keyseq:función-readline]" +"bind [-lpvsPVS] [-m comb_teclas] [-f fichero] [-q nombre] [-u nombre] [-r " +"secteclas] [-x secteclas:orden-shell] [secteclas:función-readline u orden-" +"readline]" #: builtins.c:54 msgid "break [n]" @@ -1988,22 +2064,19 @@ msgstr "continue [n]" #: builtins.c:58 msgid "builtin [shell-builtin [arg ...]]" -msgstr "builtin [shell-interno [arg ...]]" +msgstr "builtin [orden-interna-shell [arg ...]]" #: builtins.c:61 -#, fuzzy msgid "caller [expr]" -msgstr "test [expresión]" +msgstr "caller [expresión]" #: builtins.c:64 -#, fuzzy msgid "cd [-L|-P] [dir]" -msgstr "cd [-PL] [directorio]" +msgstr "cd [-L|-P] [directorio]" #: builtins.c:66 -#, fuzzy msgid "pwd [-LP]" -msgstr "pwd [-PL]" +msgstr "pwd [-LP]" #: builtins.c:68 msgid ":" @@ -2011,30 +2084,27 @@ msgstr ":" #: builtins.c:70 msgid "true" -msgstr "" +msgstr "true" #: builtins.c:72 msgid "false" -msgstr "" +msgstr "false" #: builtins.c:74 msgid "command [-pVv] command [arg ...]" msgstr "command [-pVv] orden [arg ...]" #: builtins.c:76 -#, fuzzy msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" -msgstr "declare [-afFrxi] [-p] nombre[=valor] ..." +msgstr "declare [-aAfFilrtux] [-p] nombre[=valor] ..." #: builtins.c:78 -#, fuzzy msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." -msgstr "typeset [-afFrxi] [-p] nombre[=valor] ..." +msgstr "typeset [-aAfFilrtux] [-p] nombre[=valor] ..." #: builtins.c:80 -#, fuzzy msgid "local [option] name[=value] ..." -msgstr "local nombre[=valor] ..." +msgstr "local [opción] nombre[=valor] ..." #: builtins.c:83 msgid "echo [-neE] [arg ...]" @@ -2045,9 +2115,8 @@ msgid "echo [-n] [arg ...]" msgstr "echo [-n] [arg ...]" #: builtins.c:90 -#, fuzzy msgid "enable [-a] [-dnps] [-f filename] [name ...]" -msgstr "enable [-pnds] [-a] [-f fichero] [nombre ...]" +msgstr "enable [-a] [-dnps] [-f fichero] [nombre ...]" #: builtins.c:92 msgid "eval [arg ...]" @@ -2058,49 +2127,45 @@ msgid "getopts optstring name [arg]" msgstr "getopts cadena_opciones nombre [arg]" #: builtins.c:96 -#, fuzzy msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -msgstr "exec [-cl] [-a nombre] fichero [redirección ...]" +msgstr "exec [-cl] [-a nombre] [orden [argumentos ...]] [redirección ...]" #: builtins.c:98 msgid "exit [n]" msgstr "exit [n]" #: builtins.c:100 -#, fuzzy msgid "logout [n]" -msgstr "logout" +msgstr "logout [n]" #: builtins.c:103 -#, fuzzy msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "fc [-e nombre_e] [-nlr] [primero] [último] o fc -s [pat=rep] [orden]" +msgstr "fc [-e nombre_e] [-lnr] [primero] [último] ó fc -s [pat=rep] [orden]" #: builtins.c:107 msgid "fg [job_spec]" msgstr "fg [id_trabajo]" #: builtins.c:111 -#, fuzzy msgid "bg [job_spec ...]" -msgstr "bg [id_trabajo]" +msgstr "bg [id_trabajo ...]" #: builtins.c:114 -#, fuzzy msgid "hash [-lr] [-p pathname] [-dt] [name ...]" -msgstr "hash [-r] [-p ruta_de_acceso] [nombre ...]" +msgstr "hash [-lr] [-p ruta] [-dt] [nombre ...]" #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" -msgstr "help [expresión_regular ...]" +msgid "help [-dms] [pattern ...]" +msgstr "help [-ds] [patrón ...]" #: builtins.c:121 -#, fuzzy msgid "" "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " "[arg...]" -msgstr "history [-c] [n] ó history -awrn [fichero] o history -ps arg [arg...]" +msgstr "" +"history [-c] [-d despl] [n] ó history -anrw [fichero] ó history -ps arg " +"[arg...]" # jobspec no es sólo el pid del proceso, puede ser tambien # el nombre de la orden que se creo con el proceso em+ @@ -2112,17 +2177,15 @@ msgstr "jobs [-lnprs] [idtrabajo ...] # lo mismo em+ #: builtins.c:129 -#, fuzzy msgid "disown [-h] [-ar] [jobspec ...]" -msgstr "disown [idtrabajo ...]" +msgstr "disown [-h] [-ar] [idtrabajo ...]" #: builtins.c:132 -#, fuzzy msgid "" "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " "[sigspec]" msgstr "" -"kill [-s id_señal | -n num_señal | -id_señal] [pid | trabajo]... ó kill -l " +"kill [-s id_señal | -n num_señal | -id_señal] pid | idtrabajo ... ó kill -l " "[id_señal]" #: builtins.c:134 @@ -2130,48 +2193,45 @@ msgid "let arg [arg ...]" msgstr "let arg [arg ...]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" +"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-p prompt] [-t " +"tiempo] [-u df] [nombre ...]" #: builtins.c:138 msgid "return [n]" msgstr "return [n]" #: builtins.c:140 -#, fuzzy msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" -msgstr "set [--abefhkmnptuvxBCHP] [-o opción] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o nombre-opción] [arg ...]" #: builtins.c:142 msgid "unset [-f] [-v] [name ...]" msgstr "unset [-f] [-v] [nombre ...]" #: builtins.c:144 -#, fuzzy msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "export [-nf] [nombre ...] ó export -p" +msgstr "export [-fn] [nombre[=valor] ...] ó export -p" #: builtins.c:146 -#, fuzzy msgid "readonly [-af] [name[=value] ...] or readonly -p" -msgstr "readonly [-anf] [nombre ...] ó readonly -p" +msgstr "readonly [-af] [nombre[=valor] ...] ó readonly -p" #: builtins.c:148 -#, fuzzy msgid "shift [n]" -msgstr "exit [n]" +msgstr "shift [n]" #: builtins.c:150 -#, fuzzy msgid "source filename [arguments]" -msgstr "source fichero" +msgstr "source fichero [argumentos]" #: builtins.c:152 -#, fuzzy msgid ". filename [arguments]" -msgstr "se requiere un argumento de nombre de fichero" +msgstr ". fichero [argumentos]" #: builtins.c:155 msgid "suspend [-f]" @@ -2192,44 +2252,36 @@ msgid "times" msgstr "times" #: builtins.c:164 -#, fuzzy msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "trap [arg] [id_señal] ó trap -l" +msgstr "trap [-lp] [[arg] id_señal ...]" #: builtins.c:166 -#, fuzzy msgid "type [-afptP] name [name ...]" -msgstr "type [-apt] nombre [nombre ...]" +msgstr "type [-afptP] nombre [nombre ...]" #: builtins.c:169 -#, fuzzy msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" -msgstr "ulimit [-SHacdfmstpnuv] [límite]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]" #: builtins.c:172 -#, fuzzy msgid "umask [-p] [-S] [mode]" -msgstr "umask [-S] [modo]" +msgstr "umask [-p] [-S] [modo]" #: builtins.c:175 -#, fuzzy msgid "wait [id]" -msgstr "wait [n]" +msgstr "wait [id]" #: builtins.c:179 -#, fuzzy msgid "wait [pid]" -msgstr "wait [n]" +msgstr "wait [pid]" #: builtins.c:182 -#, fuzzy msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "for NOMBRE [in PALABRAS ... ;] do ÓRDENES; done" +msgstr "for NOMBRE [in PALABRAS ... ] ; do ÓRDENES; done" #: builtins.c:184 -#, fuzzy msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "for NOMBRE [in PALABRAS ... ;] do ÓRDENES; done" +msgstr "for (( exp1; exp2; exp3 )); do ÓRDENES; done" #: builtins.c:186 msgid "select NAME [in WORDS ... ;] do COMMANDS; done" @@ -2237,11 +2289,11 @@ msgstr "select NOMBRE [in PALABRAS ... ;] do #: builtins.c:188 msgid "time [-p] pipeline" -msgstr "" +msgstr "time [-p] tubería" #: builtins.c:190 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -msgstr "case PALABRA in [PLANTILLA [| PLANTILLA]...) ÓRDENES ;;]... esac" +msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ÓRDENES ;;]... esac" #: builtins.c:192 msgid "" @@ -2261,98 +2313,98 @@ msgstr "until #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [NOMBRE] orden [redirecciones]" #: builtins.c:200 -#, fuzzy msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "function NOMBRE { ÓRDENES ; } o NOMBRE () { ÓRDENES ; }" +msgstr "function nombre { ÓRDENES ; } ó nombre () { ÓRDENES ; }" #: builtins.c:202 -#, fuzzy msgid "{ COMMANDS ; }" -msgstr "{ ÓRDENES }" +msgstr "{ ÓRDENES ; }" #: builtins.c:204 -#, fuzzy msgid "job_spec [&]" -msgstr "fg [id_trabajo]" +msgstr "id_trabajo [&]" #: builtins.c:206 -#, fuzzy msgid "(( expression ))" -msgstr "se esperaba una expresión" +msgstr "(( expresión ))" #: builtins.c:208 -#, fuzzy msgid "[[ expression ]]" -msgstr "se esperaba una expresión" +msgstr "[[ expresión ]]" #: builtins.c:210 -#, fuzzy msgid "variables - Names and meanings of some shell variables" -msgstr "" -"Se permiten las variables de shell como operandos. Se reemplaza el nombre" +msgstr "variables - Nombres y significados de algunas variables de shell" #: builtins.c:213 -#, fuzzy msgid "pushd [-n] [+N | -N | dir]" -msgstr "pushd [dir | +N | -N] [-n]" +msgstr "pushd [-n] [+N | -N | dir" #: builtins.c:217 -#, fuzzy msgid "popd [-n] [+N | -N]" -msgstr "popd [+N | -N] [-n]" +msgstr "popd [-n] [+N | -N]" #: builtins.c:221 msgid "dirs [-clpv] [+N] [-N]" msgstr "dirs [-clpv] [+N] [-N]" #: builtins.c:224 -#, fuzzy msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "shopt [-pqsu] [-o opción-larga] nombre_opción [nombre_opción...]" +msgstr "shopt [-pqsu] [-o] [nombre_opción...]" #: builtins.c:226 msgid "printf [-v var] format [arguments]" -msgstr "" +msgstr "printf [-v var] formato [argumentos]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o opción] [-A acción] [-G patglob] [-W " +"listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S " +"sufijo] [nombre ...]" #: builtins.c:233 msgid "" "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" msgstr "" +"compgen [-abcdefgjksuv] [-o opción] [-A acción] [-G patglob] [-W " +"listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S " +"sufijo] [palabra]" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" -msgstr "type [-apt] nombre [nombre ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" +msgstr "compopt [-o|+o opción] [nombre ...]" #: builtins.c:240 msgid "" "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" +"mapfile [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c " +"quantum] [matriz]" #: builtins.c:242 msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" +"readarray [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c " +"quantum] [matriz]" # Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv # Lo mismo de antes: el alias es expandido -> el alias se expande. sv # no alias -> ningún alias. sv # De acuerdo. cfuga #: builtins.c:254 -#, fuzzy msgid "" "Define or display aliases.\n" " \n" @@ -2371,17 +2423,24 @@ msgid "" "been\n" " defined." msgstr "" -"`alias' sin argumentos o con la opción -p muestra la lista de\n" -" aliases en la forma alias NAME=VALUE en la salida estándard.\n" -" De otra manera, se define un alias por cada NAME cuyo VALUE se\n" -" proporcione.\n" -" Un espacio final en VALUE causa que se revise la siguiente palabra\n" -" para sustitución de alias cuando se expande el alias. Alias devuelve\n" -" verdadero a menos que se de un NAME para el cual no se haya definido\n" -" ningún alias." +"Define o muestra aliases.\n" +" \n" +" `alias' sin argumentos muestra la lista de aliases en la forma\n" +" reutilizable `alias NOMBRE=VALOR' en la salida estándar.\n" +" \n" +" De otra manera, se define un alias por cada NOMBRE cuyo VALOR se\n" +" proporcione. Un espacio final en VALOR causa que se revise\n" +" la siguiente palabra para sustitución de alias cuando se expande\n" +" el alias.\n" +" \n" +" Opciones:\n" +" -p\tMuestra todos los aliases definidos en un formato reusable\n" +" \n" +" Estado de salida:\n" +" alias devuelve verdadero a menos que se de un NOMBRE para el cual\n" +" no se haya definido ningún alias." #: builtins.c:276 -#, fuzzy msgid "" "Remove each NAME from the list of defined aliases.\n" " \n" @@ -2390,13 +2449,15 @@ msgid "" " \n" " Return success unless a NAME is not an existing alias." msgstr "" -"Borra NAMEs de la lista de alias definidos. Si se especifica la opción -a ,\n" -" entonces elimina todas las definiciones de alias." +"Borra cada NOMBRE de la lista de alias definidos.\n" +" \n" +" Opciones:\n" +" -a\telimina todas las definiciones de alias.\n" +" Devuelve verdadero a menos que un NOMBRE no sea un alias existente." # lee 'la'... em+ # Corregido. Además, es plural: lee las asignaciones... cfuga #: builtins.c:289 -#, fuzzy msgid "" "Set Readline key bindings and variables.\n" " \n" @@ -2434,35 +2495,29 @@ msgid "" " Exit Status:\n" " bind returns 0 unless an unrecognized option is given or an error occurs." msgstr "" -"Asigna una secuencia de teclas a una función Readline o a una macro, o\n" -" establece una variable Readline. La sintaxis de los argumentos que no " -"son\n" -" opciones es equivalente a la que se encuentra en ~/.inputrc, pero se " -"debe\n" -" pasar como un solo argumento:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind acepta las siguientes opciones:\n" -" -m mapateclas Usa el `mapateclas' como el mapa de teclas por la\n" -" duración de esta orden. Los nombres aceptables de\n" -" mapas de teclas son emacs, emacs-standard, emacs-" -"meta,\n" -" emacs-ctlx, vi, vi-move, vi-command y vi-insert.\n" +"Establece secuencias de teclas Readline y variables.\n" +"\n" +" Asigna una secuencia de teclas a una función Readline o a una macro, o\n" +" establece una variable Readline. La sintaxis de los argumentos que\n" +" no son opciones es equivalente a la que se encuentra en ~/.inputrc,\n" +" pero se debe pasar como un solo argumento:\n" +" p.e., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Opciones:\n" +" \n" +" -m comb_teclas Usa COMB_TECLAS como la combinación de teclas por " +"la\n" +" duración de esta orden. Los nombres de " +"combinaciones\n" +" de teclas aceptables son emacs, emacs-standard,\n" +" emacs-meta, emacs-ctlx, vi, vi-move, vi-command y\n" +" vi-insert.\n" " -l Enlista los nombres de las funciones.\n" " -P Enlista los nombres de las funciones y " "asignaciones.\n" " -p Enlista las funciones y asignaciones en una forma " "que\n" " se puede reusar como entrada.\n" -" -r seqtecl Borra la asignación para la SEQTECL.\n" -" -x seqtecl:orden-shell\tCausa que se ejecute la ORDEN-SHELL cuando\n" -" \t\t\t\tse introduce la SEQTECL.\n" -" -f nombrefichero Lee las asignaciones de teclas del NOMBREFICHERO.\n" -" -q nombre-funcion Pregunta qué teclas invocan la función nombrada.\n" -" -u nombre-función Borra la asignación de todas las teclas que están\n" -" ligadas a la función nombrada.\n" -" -V Enlista los nombres de variables y valores.\n" -" -v Enlista los nombres de variables y valores en una\n" -" forma que se pueden reusar como entrada.\n" " -S Enlista las secuencias de teclas que invocan " "macros\n" " y sus valores.\n" @@ -2470,10 +2525,23 @@ msgstr "" "macros\n" " y sus valores en una forma que se pueden reusar " "como\n" -" entrada." +" entrada.\n" +" -V Enlista los nombres de variables y valores.\n" +" -v Enlista los nombres de variables y valores en una\n" +" forma que se pueden reusar como entrada.\n" +" -q nombre-funcion Pregunta qué teclas invocan la función nombrada.\n" +" -u nombre-función Borra todas las teclas que están ligadas a\n" +" la función nombrada.\n" +" -r secteclas Borra la asignación para la SECTECLAS.\n" +" -f fichero Lee las asignaciones de teclas del FICHERO.\n" +" -x secteclas:orden-shell\tCausa que se ejecute la ORDEN-SHELL cuando\n" +" \t\t\t\tse introduce la SECTECLAS.\n" +" \n" +" Estado de salida:\n" +" bind devuelve 0 a menos que se presente una opción desconocida o suceda\n" +" un error." #: builtins.c:326 -#, fuzzy msgid "" "Exit for, while, or until loops.\n" " \n" @@ -2483,11 +2551,15 @@ msgid "" " Exit Status:\n" " The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -"Retoma la siguiente iteración del ciclo FOR, WHILE o UNTIL incluido.\n" -" Si se especifica N, retoma en el N-ésimo ciclo incluido." +"Termina ciclos for, while o until.\n" +" \n" +" Termina un ciclo FOR, WHILE o UNTIL. Si se especifica N, termina\n" +" N ciclos anidados.\n" +" \n" +" Estado de salida:\n" +" El estado de salida es 0 a menos que N no sea mayor o igual a 1." #: builtins.c:338 -#, fuzzy msgid "" "Resume for, while, or until loops.\n" " \n" @@ -2497,8 +2569,14 @@ msgid "" " Exit Status:\n" " The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -"Retoma la siguiente iteración del ciclo FOR, WHILE o UNTIL incluido.\n" -" Si se especifica N, retoma en el N-ésimo ciclo incluido." +"Continúa iteraciones for, while o until\n" +" \n" +" Continúa la siguiente iteración del ciclo FOR, WHILE o UNTIL\n" +" circundante. Si se especifica N, retoma en el N-ésimo ciclo " +"circundante.\n" +" \n" +" Estado de Salida:\n" +" El estado de salida es 0 a menos que N no sea mayor o igual a 1." #: builtins.c:350 msgid "" @@ -2513,9 +2591,19 @@ msgid "" " Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" " not a shell builtin.." msgstr "" +"Ejecuta órdenes internas del shell\n" +" \n" +" Ejecuta la ORDEN-INTERNA-SHELL con los argumentos ARGs sin realizar\n" +" la búsqueda interna de órdenes. Esto es útil cuando desea " +"reimplementar\n" +" una orden interna del shell como una función de shell, pero necesita\n" +" ejecutar la orden interna dentro de la función.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de salida de la ORDEN-INTERNA-SHELL, o falso si la\n" +" ORDEN-INTERNA-SHELL no es una orden interna de shell." #: builtins.c:365 -#, fuzzy msgid "" "Return the context of the current subroutine call.\n" " \n" @@ -2532,18 +2620,21 @@ msgid "" msgstr "" "Devuelve el contexto de la llamada a subrutina actual.\n" " \n" -" Sin EXPR, devuelve \"$linea $nombrefichero\". Con EXPR,\n" -" devuelve \"$linea $subrutina $nombrefichero\"; esta información\n" -" adicional se puede usar para proveer un volcado de pila.\n" -"\n" +" Sin EXPR, devuelve \"$linea $nombrefichero\". Con EXPR, devuelve\n" +" \"$linea $subrutina $nombrefichero\"; esta información adicional\n" +" se puede usar para proveer un volcado de pila.\n" +" \n" " El valor de EXPR indica cuántos marcos de llamada se debe retroceder\n" -" antes del actual; el marco inicial es el marco 0." +" antes del actual; el marco inicial es el marco 0.\n" +" \n" +" Estado de Salida:\n" +" Devuelve 0 a menos que el shell no esté ejecutando una función de shell\n" +" o EXPR sea inválida." # Slash lo venimos traduciendo por barra inclinada , y backslash # por barra invertida em++ # Corregido en toda la traducción. cfuga #: builtins.c:383 -#, fuzzy msgid "" "Change the shell working directory.\n" " \n" @@ -2575,18 +2666,29 @@ msgid "" " Exit Status:\n" " Returns 0 if the directory is changed; non-zero otherwise." msgstr "" -"Cambia el directorio actual a DIR. La variable $HOME es el directorio\n" -" por defecto. La variable CDPATH define la ruta de búsqueda por el\n" -" directorio que contiene DIR. Los nombres alternativos de directorio\n" -" en CDPATH se separan con dos puntos (:). Un nombre de directorio nulo\n" -" es igual que el directorio actual, p.e. `.' Si DIR comienza con una\n" -" diagonal (/), entonces no se usa CDPATH. Si no se encuentra el\n" -" directorio, y la opción del shell `cdable_vars' está activa, entonces\n" -" trata la palabra como un nombre de variable. Si la variable tiene un\n" -" valor, entonces cd cambia al valor de esa variable. La opción -P " -"indica\n" -" usar la estructura física de directorios en lugar de seguir los enlaces\n" -" simbólicos; la opción -L fuerza que se sigan los enlaces simbólicos." +"Cambia el directorio de trabajo del shell.\n" +" \n" +" Cambia el directorio actual a DIR. DIR por defecto es el valor de la\n" +" variable de shell HOME.\n" +" La variable CDPATH define la ruta de búsqueda por el directorio que\n" +" contiene DIR. Los nombres alternativos de directorio en CDPATH se\n" +" separan con dos puntos (:). Un nombre de directorio nulo es igual que\n" +" el directorio actual Si DIR comienza con una barra inclinada (/),\n" +" entonces no se usa CDPATH.\n" +" Si no se encuentra el directorio, y la opción del shell `cdable_vars'\n" +" está activa, entonces se trata la palabra como un nombre de variable.\n" +" Si esa variable tiene un valor, se utiliza su valor como DIR.\n" +" \n" +" Opciones:\n" +" -L\tfuerza a seguir los enlaces simbólicos\n" +" -P\tusar la estructura física de directorios sin seguir los enlaces\n" +" \tsimbólicos\n" +" \n" +" La acción por defecto es seguir los enlaces simbólicos, como si se\n" +" especificara `-L'.\n" +" \n" +" Estado de salida:\n" +" Devuelve 0 si se cambia el directorio; de otra forma es diferente a cero." #: builtins.c:411 msgid "" @@ -2603,9 +2705,20 @@ msgid "" " Returns 0 unless an invalid option is given or the current directory\n" " cannot be read." msgstr "" +"Muestra el nombre del directorio de trabajo actual.\n" +" \n" +" Opciones:\n" +" -L\tmuestra el valor de $PWD si nombra al directorio de\n" +" \ttrabajo actual\n" +" -P\tmuestra el directorio físico, sin enlaces simbólicos\n" +" \n" +" Por defecto, `pwd' se comporta como si se especificara `-L'.\n" +" \n" +" Estado de Salida:\n" +" Devuelve 0 a menos que se de una opción inválida o no se pueda leer\n" +" el directorio actual." #: builtins.c:428 -#, fuzzy msgid "" "Null command.\n" " \n" @@ -2613,7 +2726,13 @@ msgid "" " \n" " Exit Status:\n" " Always succeeds." -msgstr "Sin efecto; la orden no hace nada. Devuelve un código de estado cero." +msgstr "" +"Orden nula.\n" +" \n" +" Sin efecto; la orden no hace nada.\n" +" \n" +" Estado de Salida:\n" +" Siempre con éxito." #: builtins.c:439 msgid "" @@ -2622,15 +2741,22 @@ msgid "" " Exit Status:\n" " Always succeeds." msgstr "" +"Devuelve un resultado con éxito.\n" +" \n" +" Estado de salida:\n" +" Siempre con éxito." #: builtins.c:448 -#, fuzzy msgid "" "Return an unsuccessful result.\n" " \n" " Exit Status:\n" " Always fails." -msgstr "Devuelve un resultado sin éxito." +msgstr "" +"Devuelve un resultado sin éxito.\n" +" \n" +" Estado de salida:\n" +" Siempre falla." #: builtins.c:457 msgid "" @@ -2650,11 +2776,27 @@ msgid "" " Exit Status:\n" " Returns exit status of COMMAND, or failure if COMMAND is not found." msgstr "" +"Ejecuta una orden simple o muestra información sobre órdenes.\n" +" \n" +" Ejecuta la ORDEN con ARGumentos, suprimiendo la búsqueda de funciones\n" +" de shell, o muestra información sobre las ÓRDENes especificadas. Se " +"puede\n" +" usar para invocar órdenes en disco cuando existe una función con el " +"mismo\n" +" nombre.\n" +" \n" +" Opciones:\n" +" -p\tusa un valor por defecto para PATH para garantizar que\n" +" \tencuentre todas las utilidades estándar\n" +" -v\tmuestra una descripción de la ORDEN similar a la orden\n" +" \tinterna `type'\n" +" -V\tmuestra una descripción más detallada de cada ORDEN\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de salida de la ORDEN, o falla si no se encuentra\n" +" la ORDEN." -# apaga -> desactiva em+ -# Corregido en toda la traducción. cfuga #: builtins.c:476 -#, fuzzy msgid "" "Set variable values and attributes.\n" " \n" @@ -2689,31 +2831,39 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Declara variables y/o les asigna atributos. Si no se propociona\n" -" ningún NAME, entonces muestra los valores de las variables.\n" -" La opción -p mostrará los atributos y valores de cada NAME.\n" +"Establece valores de variable y atributos.\n" +" \n" +" Declara variables y les da atributos. Si no se da ningún NOMBRE,\n" +" muestra los atributos y valores de todas las variables.\n" +" \n" +" Opciones:\n" +" -f\trestringe la acción o muestra a nombres y definiciones\n" +" \tde funciones\n" +" -F\trestringe la muestra a nombres de funciones (con número de\n" +" \tlínea y fichero fuente al depurar)\n" +" -p\tmuestra los atributos y valor de cada NOMBRE\n" " \n" -" Las opciones son:\n" +" Opciones que establecen atributos:\n" +" -a\testablece NOMBREs como matrices indizadas (si se admiten)\n" +" -A\testablece NOMBREs como matrices asociativas (si se admiten)\n" +" -i\testablece NOMBREs con el atributo `integer'\n" +" -l\tconvierte NOMBREs a minúsculas en la asignación\n" +" -r\testablece NOMBREs como de sólo lectura\n" +" -t\testablece NOMBREs con el atributo `trace'\n" +" -u\tconvierte NOMBREs a mayúsculas en la asignación\n" +" -x\testablece NOMBREs para exportar\n" " \n" -" -a\thace a los NAMEs matrices (si tiene soporte)\n" -" -f\tselecciona solamente nombres de funciones\n" -" -F\tmuestra nombres de funciones (y número de línea y nombre de\n" -" \tfichero fuente si se está depurando) sin definiciones\n" -" -i\tasigna a los NAMEs el atributo `integer'\n" -" -r\thace a los NAMEs de sólo lectura\n" -" -t\tasigna a los NAMEs el atributo `trace'\n" -" -x\thace a los NAMEs exportables\n" +" Si usa `+' en lugar de `-' desactiva el atributo dado.\n" " \n" -" Las variables con el atributo integer se les evalúa aritméticamente\n" -" (vea `let') cuando se asigna la variable.\n" +" Las variables con el atributo integer realizan evaluación aritmética\n" +" (vea la orden `let') cuando se asigna un valor a la variable.\n" " \n" -" Cuando se muestran los valores de las variables, -f muestra\n" -" el nombre de una función y su definición. La opción -F restringe\n" -" a mostrar solamente el nombre de la función.\n" +" Cuando se usa en una función, `declare' hace locales a los NOMBREs,\n" +" como sucede con la orden `local'.\n" " \n" -" Al usar `+' en lugar de `-' desactiva el atributo dado. Cuando se\n" -" usa en una función, hace a los NAMEs locales, como sucede con la\n" -" orden `local'." +" Estado de Salida:\n" +" Devuelve con éxito a menos que se de una opción inválida o\n" +" suceda un error." #: builtins.c:512 msgid "" @@ -2721,6 +2871,9 @@ msgid "" " \n" " Obsolete. See `help declare'." msgstr "" +"Establece valores de variables y atributos.\n" +" \n" +" Obsoleto. Consulte `help declare'." #: builtins.c:520 msgid "" @@ -2736,9 +2889,19 @@ msgid "" " Returns success unless an invalid option is supplied, an error occurs,\n" " or the shell is not executing a function." msgstr "" +"Define variables locales.\n" +" \n" +" Crea una variable local llamada NOMBRE, y le da un VALOR. OPCIÓN puede\n" +" ser cualquier opción aceptada por `declare'.\n" +" \n" +" Las variables locales sólo se pueden usar en una función; son visibles\n" +" sólo en la función donde se definen y sus hijos.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se de una opción inválida, suceda\n" +" un error, o el shell no esté ejecutando una función." #: builtins.c:537 -#, fuzzy msgid "" "Write arguments to the standard output.\n" " \n" @@ -2768,25 +2931,36 @@ msgid "" " Exit Status:\n" " Returns success unless a write error occurs." msgstr "" -"Muestra los ARGs. Si se especifica -n, se suprime el carácter final de\n" -" fin de línea. Si se especifica la opción -e, se activa la\n" -" interpretación de los siguientes caracteres de escape con\n" -" barra invertida:\n" -" \t\\a\talerta (timbre)\n" -" \t\\b\tespacio hacia atrás\n" -" \t\\c\tsuprime el carácter final de fin de línea\n" -" \t\\E\tcarácter de escape\n" -" \t\\f\talimentación de papel\n" -" \t\\n\tlínea nueva\n" -" \t\\r\tretorno de carro\n" -" \t\\t\ttabulador horizontal\n" -" \t\\v\ttabulador vertical\n" -" \t\\\\\tbarra invertida\n" -" \t\\0nnn\tel carácter cuyo código ASCII es NNN (octal). NNN puede ser\n" -" \t\tde 0 a 3 dígitos octales\n" -" \n" -" Puede desactivar explícitamente la interpretación de los caracteres\n" -" arriba mencionados con la opción -E." +"Escribe argumentos en la salida estándar.\n" +" \n" +" Muestra los ARGumentos en la salida estándar seguidos por un carácter\n" +" de fin de línea.\n" +" Opciones:\n" +" -n\tno agrega un carácter de fin de línea\n" +" -e\tactiva la interpretación de caracteres de escape de\n" +" \tde barra invertida\n" +" -E\tdesactiva explícitamente la interpretación de caracteres de\n" +" \tde escape de barra invertida\n" +" \n" +" `echo' interpreta los siguientes caracteres de escape de barra " +"invertida:\n" +" \\a\talerta (timbre)\n" +" \\b\tespacio hacia atrás\n" +" \\c\tsuprime toda salida a continuación\n" +" \\E\tcarácter de escape\n" +" \\f\talimentación de papel\n" +" \\n\tlínea nueva\n" +" \\r\tretorno de carro\n" +" \\t\ttabulador horizontal\n" +" \\v\ttabulador vertical\n" +" \\\\\tbarra invertida\n" +" \\0nnn\tel carácter cuyo código ASCII es NNN (octal). NNN puede ser\n" +" \tde 0 a 3 dígitos octales\n" +" \\xHH\tel carácter de ocho bits cuyo valor es HH (hexadecimal). HH\n" +" \tpuede ser de uno o dos dígitos hexadecimales\n" +" \n" +" Estado de salida:\n" +" Devuelve con éxito a menos que suceda un error de escritura." #: builtins.c:571 msgid "" @@ -2800,6 +2974,15 @@ msgid "" " Exit Status:\n" " Returns success unless a write error occurs." msgstr "" +"Escribe argumentos en la salida estándar.\n" +" \n" +" Muestra los ARGumentos en la salida estándar seguidos por un carácter\n" +" de fin de línea.\n" +" Opciones:\n" +" -n\tno agrega un carácter de fin de línea\n" +" \n" +" Estado de salida:\n" +" Devuelve con éxito a menos que suceda un error de escritura." #: builtins.c:586 msgid "" @@ -2827,6 +3010,34 @@ msgid "" " Exit Status:\n" " Returns success unless NAME is not a shell builtin or an error occurs." msgstr "" +"Activa y desactiva las órdenes internas del shell.\n" +" \n" +" Activa y desactiva las órdenes internas del shell. El desactivar le\n" +" permite ejecutar una orden del disco que tenga el mismo nombre que\n" +" la orden interna del shell, sin usar el nombre de ruta completo.\n" +" \n" +" Opciones:\n" +" -a\tmuestra la lista de órdenes internas indicando si están activas o " +"no\n" +" -n\tdesactiva cada NOMBRE o muestra la lista de órdenes internas\n" +" \tdesactivadas\n" +" -p\tmuestra la lista de órdenes internas en una forma reusable\n" +" -s\tmuestra sólo los nombres de las órdenes internas `especiales' " +"Posix\n" +" \n" +" Opciones que controlan la carga dinámica:\n" +" -f\tcarga la orden interna NOMBRE del objeto compartido FICHERO\n" +" -d\tborra una orden interna cargada con -f\n" +" \n" +" Sin opciones, se activa cada NOMBRE.\n" +" \n" +" Para usar `test' que se encuentra en $PATH en lugar de la orden interna\n" +" del shell, ejecute `enable -n test'.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que NOMBRE no sea una orden interna del " +"shell\n" +" o suceda un error." #: builtins.c:614 msgid "" @@ -2839,6 +3050,14 @@ msgid "" " Exit Status:\n" " Returns exit status of command or success if command is null." msgstr "" +"Ejecuta argumentos como una orden de shell.\n" +" \n" +" Combina los ARGumentos en una sola cadena, usa el resultado como " +"entrada\n" +" para el shell, y ejecuta las órdenes resultantes.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de salida de la orden o éxito si la orden es nula." # "a ser reconocidas" no está en español. # Yo pondría "las letras de opción que se reconocen". sv @@ -2846,7 +3065,6 @@ msgstr "" # dar argumentos -> especificar em+ # De acuerdo. cfuga #: builtins.c:626 -#, fuzzy msgid "" "Parse option arguments.\n" " \n" @@ -2886,31 +3104,32 @@ msgid "" " Returns success if an option is found; fails if the end of options is\n" " encountered or an error occurs." msgstr "" -"Getopts se usa para decodificar parámetros posicionales en guiones de " -"shell.\n" +"Decodifica argumentos de opción.\n" +"\n" +" Getopts se usa en procedimientos del shell para decodificar parámetros\n" +" posicionales como opciones.\n" " \n" -" OPTSTRING contiene las letras de opción para reconocer; si una letra\n" -" es seguida por dos puntos, se espera que la opción tenga un\n" -" argumento, del cual se debe separar con espacios en blanco.\n" +" CADENA_OPCIONES contiene las letras de opción para reconocer; si\n" +" una letra es seguida por dos puntos, se espera que la opción tenga\n" +" un argumento, del cual se debe separar con espacios en blanco.\n" " \n" " Cada vez que se invoca, getopts colocará la siguiente opción en la\n" -" variable de shell $name, inicializando name si no existe, y el\n" -" índice del siguente argumento a ser procesado en la variable de\n" -" shell OPTIND. OPTIND se inicializa a 1 cada vez que se invoca al\n" -" shell, o a un guión de shell. Cuando una opción requiere un\n" -" argumento, getopts coloca ese argumento en la variable de shell\n" -" OPTARG.\n" +" variable de shell $nombre, inicializando nombre si no existe, y el\n" +" índice del siguiente argumento a ser procesado en la variable de\n" +" shell OPTIND. OPTIND se inicializa a 1 cada vez que se invoca el\n" +" shell, o un guión de shell. Cuando una opción requiere un argumento,\n" +" getopts coloca ese argumento en la variable de shell OPTARG.\n" " \n" " getopts reporta errores en una de las dos formas siguientes. Si\n" " el primer carácter de OPTSTRING es dos puntos, getopts usa el\n" " aviso de errores silencioso. En este modo, no se muestran\n" " mensajes de error. Si se encuentra una opción inválida, getopts\n" " coloca el carácter de opción encontrado en OPTARG. Si no se\n" -" encuentra un argumento necesario, getopts coloca ':' en NAME y\n" -" define OPTARG como el carácter de opción encontrado. Si getopts no\n" +" encuentra el argumento necesario, getopts coloca ':' en NOMBRE y\n" +" define OPTARG con el carácter de opción encontrado. Si getopts no\n" " está en modo silencioso, y se encuentra una opción inválida, getopts\n" -" coloca '?' en NAME y borra OPTARG. Si no se encuentra un argumento\n" -" necesario, se coloca un '?' en NAME, se borra OPTARG, y se muestra\n" +" coloca '?' en NOMBRE y borra OPTARG. Si no se encuentra un argumento\n" +" necesario, se coloca '?' en NOMBRE, se borra OPTARG, y se muestra\n" " un mensaje de diagnóstico.\n" " \n" " Si la variable de shell OPTERR tiene el valor 0, getopts desactiva\n" @@ -2919,7 +3138,11 @@ msgstr "" " \n" " Getopts normalmente compara los parámetros de posición ($0 - $9),\n" " pero si se especifican más argumentos, éstos se comparan en lugar\n" -" de los primeros." +" de los primeros.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito si se encuentra una opción; falla si se encuentra\n" +" el final de las opciones o sucede un error." #: builtins.c:668 msgid "" @@ -2943,16 +3166,36 @@ msgid "" " Returns success unless COMMAND is not found or a redirection error " "occurs." msgstr "" +"Reemplaza el shell con la orden dada.\n" +" \n" +" Ejecuta la ORDEN, reemplazando este shell con el programa especificado.\n" +" Los ARGUMENTOS se vuelven los argumentos de la ORDEN. Si no se\n" +" especifica la ORDEN, cualquir redirección toma efecto en el shell " +"actual.\n" +" \n" +" Opciones:\n" +" -a nombre\tpasa el NOMBRE como el argumento cero de la ORDEN\n" +" -c\t\tejecuta la ORDEN en un ambiente vacío\n" +" -l\t\tcoloca un guión en el argumento cero de la ORDEN\n" +" \n" +" Si la orden no se puede ejecutar, termina un shell no interactivo,\n" +" a menos que la opción de shell `execfail' esté activa.\n" +" \n" +" Estado de Salida:\n" +" Devuelve éxito a menos que no se encuentre la ORDEN o que suceda un\n" +" error de redirección." #: builtins.c:689 -#, fuzzy msgid "" "Exit the shell.\n" " \n" " Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -"Termina el shell con un estado de N. Si se omite N, el estado de salida\n" +"Termina el shell.\n" +" \n" +" Termina el shell con un estado de N. Si se omite N, el estado de " +"salida\n" " es el mismo de la última orden ejecutada." #: builtins.c:698 @@ -2963,9 +3206,12 @@ msgid "" "executed\n" " in a login shell." msgstr "" +"Termina un shell de entrada.\n" +" \n" +" Termina un shell de entrada con un estado de salida de N. Devuelve un\n" +" error si no se ejecuta en un shell de entrada." #: builtins.c:708 -#, fuzzy msgid "" "Display or execute commands from the history list.\n" " \n" @@ -2994,29 +3240,34 @@ msgid "" " Returns success or status of executed command; non-zero if an error " "occurs." msgstr "" -"fc se usa para listar o editar y reejecutar órdenes de la lista de " -"historia.\n" -" FIRST y LAST pueden ser números que especifican el rango, o FIRST puede\n" -" ser una cadena, que significa la orden más reciente que comience con\n" -" esa cadena.\n" +"Muestra o ejecuta órdenes de la lista de historia.\n" " \n" -" -e ENAME selecciona el editor a usar. Por defecto es FCEDIT,\n" -" después EDITOR, después vi.\n" +" fc se usa para listar o editar y reejecutar órdenes de la lista de\n" +" historia. PRIMERO y ÚLTIMO pueden ser números que especifican el " +"rango,\n" +" o PRIMERO puede ser una cadena, que significa la orden más reciente que\n" +" comience con esa cadena.\n" " \n" -" -l significa lista líneas en lugar de editar.\n" -" -n significa que no se listan números de línea.\n" -" -r significa invertir el orden de las líneas (mostrando primero\n" -" las más recientes).\n" +" -e NOMBRE_E selecciona el editor a usar. Por defecto es FCEDIT,\n" +" \t\tdespués EDITOR, después vi\n" +" -l lista líneas en lugar de editar\n" +" -n omite los números de línea al listar\n" +" -r inverte el orden de las líneas (muestra primero las más " +"recientes)\n" " \n" -" Con el formato `fc -s [pat=rep ...] [orden]', la orden se\n" -" ejecuta de nuevo después de realizar ls sustitución ANT=NUEVO.\n" +" Con el formato `fc -s [pat=rep ...] [orden]', la ORDEN se\n" +" ejecuta de nuevo después de realizar la sustitución ANT=NUEVO.\n" " \n" " Un alias útil para usar con esto es r='fc -s', así que al teclear\n" " `r cc' ejecuta la última orden que comience con `cc' y al teclear\n" -" `r' re-ejecuta la última orden." +" `r' re-ejecuta la última orden.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito o el estado de la orden ejecutada; si sucede un " +"error\n" +" es diferente de cero." #: builtins.c:738 -#, fuzzy msgid "" "Move job to the foreground.\n" " \n" @@ -3027,12 +3278,17 @@ msgid "" " Exit Status:\n" " Status of command placed in foreground, or failure if an error occurs." msgstr "" -"Ubica al JOB_SPEC en el primer plano, y lo hace el trabajo actual. Si\n" -" JOB_SPEC no está presente, se usa la noción del shell del trabajo\n" -" actual." +"Mueve el trabajo al primer plano.\n" +" \n" +" Ubica al trabajo identificado con IDTRABAJO en el primer plano, y\n" +" lo hace el trabajo actual. Si IDTRABAJO no está presente, se usa\n" +" la noción del shell del trabajo actual.\n" +" \n" +" Estado de Salida:\n" +" El estado del comando ubicado en primer plano, o falla si sucede un " +"error." #: builtins.c:753 -#, fuzzy msgid "" "Move jobs to the background.\n" " \n" @@ -3045,9 +3301,15 @@ msgid "" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." msgstr "" -"Coloca cada JOB_SPEC en segundo plano, como si se hubieran iniciado con\n" -" `&'. Si JOB_SPEC no está presente, se usa la noción del shell del\n" -" trabajo actual." +"Mueve trabajos al segundo plano.\n" +" \n" +" Coloca los trabajos identificados por cada IDTRABAJO en segundo plano,\n" +" como si se hubieran iniciado con `&'. Si IDTRABAJO no está presente,\n" +" se usa la noción del shell del trabajo actual.\n" +" \n" +" Estado de Salida:\n" +" Devuelve éxito a menos que el control de trabajos no esté activado o\n" +" suceda un error." #: builtins.c:767 msgid "" @@ -3072,6 +3334,27 @@ msgid "" " Exit Status:\n" " Returns success unless NAME is not found or an invalid option is given." msgstr "" +"Almacena o muestra la ubicación de los programas.\n" +" \n" +" Determina y almacena la ruta completa de cada órden NOMBRE. Si\n" +" no se proporcionan argumentos, se muestra la información de las\n" +" órdenes almacenadas.\n" +" \n" +" Opciones:\n" +" -d\t\tolvida la ubicación almacenada de cada NOMBRE\n" +" -l\t\tmuestra en un formato que se puede reusar como entrada\n" +" -p ruta\tusa RUTA como la ruta completa de NOMBRE\n" +" -r\t\tolvida todas las ubicaciones almacenadas\n" +" -t\t\tmuestra la ubicación almacenada de cada NOMBRE,\n" +" \t\tcada ubicación con el NOMBRE correspondiente\n" +" \t\tse dan varios NOMBREs\n" +" Argumentos:\n" +" NOMBRE\t\tCada NOMBRE se busca en $PATH y se agrega a la lista\n" +" \t\tde órdenes almacenadas.\n" +" \n" +" Estado de Salida\n" +" Devuelve con éxito a menos que no se encuentre NOMBRE o se proporcione\n" +" una opción inválida." #: builtins.c:792 msgid "" @@ -3094,9 +3377,27 @@ msgid "" " Returns success unless PATTERN is not found or an invalid option is " "given." msgstr "" +"Muestra información sobre órdenes internas.\n" +" \n" +" Muestra un resumen breve de las órdenes internas. Si se especifica\n" +" un PATRÓN, da ayuda detallada sobre todas las órdenes que\n" +" coincidan con el PATRÓN, de otra forma se muestra la lista de\n" +" tópicos de ayuda.\n" +" \n" +" Opciones:\n" +" -d\tmuestra una descripción corta para cada tópico\n" +" -m\tmuestra el uso en un formato similar a página man\n" +" -s\tmuestra sólo una sinopsis breve de uso para cada tópico que\n" +" \tcoincida con el PATRÓN\n" +" \n" +" Argumentos:\n" +" PATRÓN\tPatrón que especifica un tópico de ayuda\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que no se encuentre PATRÓN o se proporcione\n" +" una opción inválida." #: builtins.c:816 -#, fuzzy msgid "" "Display or manipulate the history list.\n" " \n" @@ -3129,23 +3430,30 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or an error occurs." msgstr "" -"Muestra la lista de la historia con números de línea. Las líneas\n" -" mostradas con un `*' han sido modificadas. El argumento N indica\n" -" mostrar solamente las últimas N líneas. La opción `-c' borra la\n" -" lista de histora eliminando todas sus entradas. La opción `-d' borra\n" -" la entrada de historia en la posición OFFSET. La opción `-w' escribe\n" -" la historia actual en el fichero de historia; `-r' lee el fichero y\n" -" agrega los contenidos a la lista de historia. `-a' agrega las líneas\n" -" de historia de esta sesión al fichero de historia. El argumento `-n'\n" -" lee todas las líneas de historia que no se han leído del fichero de\n" -" historia y las agrega al fichero de historia.\n" -" \n" -" Si se proporciona FILENAME, entonces se usa como el fichero de\n" -" historia, si no, si $HISTFILE tien un valor, éste se usa, si no\n" -" ~/.bash_history. Si se proporciona la opción -s, los ARGs que no son\n" -" opciones se agregan a la lista de historia como una sola entrada.\n" -" La opción -p hace expansión de historia en cada ARG y muestra el\n" -" resultado, sin guardar nada en el fichero de historia.\n" +"Muestra o manipula la lista de la historia. \n" +" Muestra la lista de la historia con números de línea, mostrando\n" +" cada línea modificada con un `*' como prefijo. El argumento N\n" +" muestra solamente las últimas N entradas.\n" +" \n" +" Opciones:\n" +" -c\tborra la lista de historia eliminando todas las entradas\n" +" -d despl\tborra la entrada de la histora en la posición DESPL\n" +" \n" +" -a\tagrega las líneas de histora de esta sesión al fichero de " +"historia\n" +" -n\tlee todas las líneas de historia que no se han leído del fichero\n" +" \tde historia\n" +" -r\tlee el fichero de historia y agrega el contenido al fichero\n" +" \tde historia\n" +" -w\tescribe la historia actual en el fichero de historia\n" +" \n" +" -p\thace expansión de historia en cada ARGumento y muestra el\n" +" \tresultado, sin guardarlo en la lista de historia\n" +" -s\tagrega los ARGumentos a la lista de historia como\n" +" \tuna sola entrada\n" +" Si se proporciona FICHERO, entonces se usa como el fichero de\n" +" historia. Si no, si $HISTFILE tien un valor, éste se usa, en otro caso\n" +" ~/.bash_history.\n" " \n" " Si la variable $HISTTIMEFORMAT está definida y no es nula, se usa su\n" " valor como una cadena de formato strftime(3) para mostrar la marca de\n" @@ -3153,7 +3461,6 @@ msgstr "" " ninguna marca de tiempo de otra forma." #: builtins.c:852 -#, fuzzy msgid "" "Display status of jobs.\n" " \n" @@ -3176,17 +3483,28 @@ msgid "" " Returns success unless an invalid option is given or an error occurs.\n" " If -x is used, returns the exit status of COMMAND." msgstr "" -"Muestra los trabajos activos. La opción -l muestra los id's de los " -"procesos\n" -" además de la información normal; la opción -p sólo muestra los id's de\n" -" los procesos. Si se especifica -n, sólo se muestran los procesos que\n" -" han cambiado de estado desde la última notificación. JOBSPEC restringe\n" -" la salida a ese trabajo. Las opciones -r y -s restringen la salida a\n" -" mostrar sólo trabajos en ejecución y detenidos, respectivamente. Sin\n" -" opciones, se muestra el estado de todos los trabajos activos. Si se\n" -" especifica -x, COMMAND se ejecuta después de que todas las\n" +"Muestra el estado de los trabajos.\n" +" \n" +" Muestra los trabajos activos. IDTRABAJO restringe la salida a\n" +" ese trabajo. Sin opciones, se muestra el estado de todos los trabajos\n" +" activos.\n" +" \n" +" Opciones:\n" +" -l\tmuestra los id's de los procesos, además de\n" +" \tla información normal\n" +" -n\tsolo muestra los procesos que han cambia de estado desde\n" +" \tla última notificación\n" +" -p\tsolo muestra los id's de los procesos -r\trestringe la salida " +"a los trabajos en ejecución\n" +" -s\trestringe la salida a los trabajos detenidos\n" +" \n" +" Si se especifica -x, la ORDEN se ejecuta después de que todas las\n" " especificaciones de trabajo que aparecen en ARGS se han reemplazado\n" -" con el ID de proceso del líder del grupo de procesos de dicho trabajo." +" con el ID de proceso del líder del grupo de procesos de dicho trabajo.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se de una opción inválida o suceda un\n" +" error. Si se usa -x, devuelve el estado de salida de la ORDEN." #: builtins.c:879 msgid "" @@ -3204,9 +3522,22 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option or JOBSPEC is given." msgstr "" +"Borra trabajos del shell actual.\n" +" \n" +" Borra cada argumento IDTRABAJO de la tabla de trabajos activos. Sin\n" +" algún IDTRABAJO, el shell utiliza su noción del trabajo actual.\n" +" \n" +" Opciones:\n" +" -a\tborra todos los trabajos si no se proporciona IDTRABAJO\n" +" -h\tmarca cada IDTRABAJO para no se envíe SIGHUP al trabajo si\n" +" \tel shell recibe un SIGHUP\n" +" -r\tborra solo los trabajos en ejecución\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcionen una opción o un\n" +" IDTRABAJO inválidos." #: builtins.c:898 -#, fuzzy msgid "" "Send a signal to a job.\n" " \n" @@ -3227,14 +3558,26 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or an error occurs." msgstr "" -"Envía a los procesos nombrados por PID (o JOBSPEC) la señal SIGSPEC. Si\n" -" no está presente SIGSPEC, se asume SIGTERM. El argumento `-l'\n" -" muestra los nombres de señales; si hay argumentos a continuación de\n" -" `-l' se asume que son números de señal para las cuales se debe\n" -" mostrar el nombre. Kill es una orden interna del shell por dos\n" -" razones: permite que se puedan usar IDs de trabajo en lugar de\n" -" IDs de proceso, y, si ha alcanzado el límite de procesos que puede\n" -" crear, no tiene que iniciar un proceso para matar a otro." +"Envía una señal a un trabajo.\n" +" \n" +" Envía a los procesos nombrados por PID (o IDTRABAJO) la señal ID_SEÑAL\n" +" o NUM_SEÑAL. Si no están presentes ni ID_SEÑAL o NUM_SEÑAL, se asume\n" +" SIGTERM.\n" +" \n" +" Opciones:\n" +" -s sig\tSIG es un nombre de señal\n" +" -n sig\tSIG es un número de señal\n" +" -l\tenlista los nombres de señales; si hay argumentos a continuación\n" +" \tde `-l', se asume que son números de señal para las cuales se debe\n" +" mostrar el nombre.\n" +" \n" +" Kill es una orden interna del shell por dos razones: permite que se\n" +" puedan usar IDs de trabajo en lugar de IDs de proceso, y permite matar\n" +" procesos si ha alcanzado el límite de procesos que puede crear.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se de una opción inválida o suceda un " +"error." # "a ser evaluada" no está en español. sv # Cierto. ¿Así está mejor? cfuga @@ -3245,7 +3588,6 @@ msgstr "" # Yo pondría simplemente "prioridad". sv # Creo que si existe, pero tu sugerencia es mejor. cfuga #: builtins.c:921 -#, fuzzy msgid "" "Evaluate arithmetic expressions.\n" " \n" @@ -3289,12 +3631,13 @@ msgid "" " Exit Status:\n" " If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." msgstr "" -"Cada ARG es una expresión aritmética para evaluarse. La evaluación\n" -" se hace con enteros de longitud fija, sin revisar desbordamientos,\n" -" aunque la división por 0 se captura y se marca como un error.\n" -" La siguiente lista de operadores está agrupada en niveles de\n" -" operadores de la misma prioridad. Se muestran los niveles\n" -" en orden de prioridad decreciente.\n" +"Evalúa expresiones aritméticas.\n" +" \n" +" Evalúa cada ARG como una expresión aritmética. La evaluación se hace\n" +" con enteros de longitud fija, sin revisar desbordamientos, aunque la\n" +" la división por 0 se captura y se marca como un error. La siguiente\n" +" lista de operadores está agrupada en niveles de operadores de la misma\n" +" prioridad. Se muestran los niveles en orden de prioridad decreciente.\n" " \n" " \tid++, id--\tpost-incremento, post-decremento de variable\n" " \t++id, --id\tpre-incremento, pre-decremento de variable\n" @@ -3317,18 +3660,19 @@ msgstr "" " \t+=, -=, <<=, >>=,\n" " \t&=, ^=, |=\tasignación\n" " \n" -" Se permiten las variables de shell como operandos. Se\n" -" reemplaza el nombre de la variable por su valor (coercionado\n" -" a un entero de longitud fija) dentro de una expresión. La\n" -" La variable no necesita tener activado su atributo integer\n" -" para ser usada en una expresión.\n" +" Se permiten las variables de shell como operandos. Se reemplaza\n" +" el nombre de la variable por su valor (coercionado a un entero\n" +" de longitud fija) dentro de una expresión. La variable no\n" +" necesita tener activado su atributo integer para ser usada en\n" +" una expresión.\n" " \n" -" Los operadores se evalúan en orden de prioridad. Primero\n" -" se evalúan las sub-expresiones en paréntesis y pueden\n" -" sobrepasar las reglas de prioridad anteriores.\n" +" Los operadores se evalúan en orden de prioridad. Primero se\n" +" evalúan las sub-expresiones en paréntesis y pueden sobrepasar\n" +" las reglas de prioridad anteriores.\n" " \n" -" Si el último ARG se evalúa como 0, let devuelve 1; si no se\n" -" devuelve 0." +" Estado de salida:\n" +" Si el último ARGumento se evalúa como 0, let devuelve 1; de otra\n" +" forma, let devuelve 0." #: builtins.c:966 #, fuzzy @@ -3355,7 +3699,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3374,39 +3722,47 @@ msgid "" "out,\n" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -"Se lee una línea de la entrada estándard, o del descriptor de fichero FD si " -"se\n" -" proporciona la opción -u, y la primera palabra se asigna al primer " -"NAME,\n" -" la segunda palabra al segundo NAME, y así sucesivamente, con las " -"palabras\n" -" restantes asignadas al último NAME. Sólo los caracteres que se " -"encuentran en\n" -" $IFS se reconocen como delimitadores de palabras. Si no se proporciona\n" -" ningún NAME, la línea leída se guarda en la variable REPLY. Si se\n" -" proporciona la opción -r, esto significa entrada `textual', y se\n" -" desactiva el escape de la barra invertida. La opción -d causa que read\n" -" continúe hasta que se lea el primer carácter de DELIM, en lugar de\n" -" línea nueva. Si se proporciona la opción -p, se muestra la cadena\n" -" PROMPT sin un caractér de línea nuevo al final, antes de intentar leer.\n" -" Si se propociona -a, las palabras leídas se asignan a índices\n" -" consecutivos de ARRAY, empezando en cero. Si se proporciona -e y\n" -" el shell es interactivo, se usa readline para leer la línea. Si se\n" -" propociona -n con un argumento NCHARS diferente de cero, read termina\n" -" después de leer NCHARS caracteres. La opción -s causa que no se " -"muestre\n" -" la entrada que provenga de una terminal.\n" -" \n" -" La opción -t causa que read expire y devuelva falla si no se lee una " -"línea\n" -" completa de entrada en TIMEOUT segundos. Si la variable TMOUT está " -"activa,\n" -" su valor es el tiempo de expiración por defecto. El código de " -"devolución es\n" -" cero, a menos que se encuentre un final de línea, read expire, o se\n" -" proporcione un descriptor de fichero inválido como el argumento de -u." - -#: builtins.c:1006 +"Lee una línea de la salida estándar y la divide en campos.\n" +" \n" +" Lee una sola línea de la entrada estándar, o del descriptor de\n" +" fichero FD si se proporciona la opción -u. La línea se divide en " +"campos\n" +" con separación de palabras, y la primera palabra se asigna al primer\n" +" NOMBRE, la segunda palabra al segundo NOMBRE, y así sucesivamente, con\n" +" las palabras restantes asignadas al último NOMBRE. Sólo los caracteres\n" +" que se encuentran en $IFS se reconocen como delimitadores de palabras.\n" +" \n" +" Si no se proporciona ningún NOMBRE, la línea leída se guarda en la\n" +" variable REPLY.\n" +" \n" +" Opciones:\n" +" -a matriz\tasigna las palabras leídas a índices secuenciales de\n" +" \tla variable de matriz MATRIZ, empezando en cero\n" +" -d delim\tcontinúa hasta que se lea el primer carácter de DELIM,\n" +" \t\ten lugar de línea nueva\n" +" -e\t\tusa Readline para obtener la línea en un shell interactivo\n" +" -i texto\tUsa el TEXTO como el texto inicial para Readline\n" +" -n ncars\tregresa después de leer NCARS caracteres en lugar de\n" +" \t\tesperar una línea nueva\n" +" -p prompt\tmuestra la cadena PROMPT sin un caractér de línea nueva\n" +" \t\tal final antes de intentar leer\n" +" -r\t\tno permite que las barras invertidas escapen caracteres\n" +" -s\t\tno muestra la salida que proviene de una terminal\n" +" -t tiempo\texpira y devuelve fallo si no se lee una línea completa\n" +" \t\tde entrada en TIEMPO segundos. El valor de la variable TMOUT\n" +" \t\tes el tiempo de expiración por defecto. TIEMPO puede ser un\n" +" \t\tnúmero fraccionario. Si TIEMPO es 0, read devuelve con éxito\n" +" \t\tsólo si hay entrada disponible en el descriptor de fichero\n" +" \t\tespecificado. El estado de salida es mayor que 128 si se excede\n" +" \t\tel tiempo de expiración.\n" +" -u df\t\tlee del descriptor de fichero DF en lugar de la entrada\n" +" \t\testándar \n" +" Estado de Salida:\n" +" El código de devolución es cero, a menos que se encuentre un final de\n" +" línea, el tiempo de read expire, o se proporcione un descriptor de\n" +" fichero inválido como el argumento de -u." + +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3417,9 +3773,18 @@ msgid "" " Exit Status:\n" " Returns N, or failure if the shell is not executing a function or script." msgstr "" +"Devuelve de una función de shell.\n" +" \n" +" Causa que una función o un guión leído termine con el valor de " +"devolución\n" +" especificado por N. Si se omite N, el estado de devolución es el de\n" +" la última orden ejecutada dentro de la función o guión.\n" +" \n" +" Estado de Salida:\n" +" Devuelve N, o falla si el shell no está ejecutando una función o un " +"guión." -#: builtins.c:1019 -#, fuzzy +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3500,84 +3865,83 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given." msgstr "" -" -a Marca las variables que se modifican o crean para exportación.\n" -" -b Notifica el término de trabajos inmediatamente.\n" -" -e Termina inmediatamente si una orden termina con un estado\n" -" diferente a cero.\n" -" -f Desactiva la generación de nombres de ficheros (englobamiento).\n" -" -h Recuerda la ubicación de las órdenes como fueron localizadas.\n" -" -k Todos los argumentos de asignación se colocan en el ambiente " -"para una\n" -" orden, no solo aquellos que preceden al nombre de la orden.\n" -" -m Activa el control de trabajos.\n" -" -n Lee órdenes pero no las ejecuta.\n" -" -o nombre-opcion\n" -" Establece la variable correspondiente a nombre-opcion:\n" -" allexport igual que -a\n" -" braceexpand igual que -B\n" -" emacs usa una interfaz de edición de línea estilo " +"Establece o borra los valores de las opciones de shell y los parámetros\n" +"posicionales.\n" +" \n" +" Opciones:\n" +" -a Marca las variables que se modifican o crean para exportación.\n" +" -b Notifica el término de trabajos inmediatamente.\n" +" -e Termina inmediatamente si una orden termina con un estado\n" +" diferente a cero.\n" +" -f Desactiva la generación de nombres de ficheros (englobamiento).\n" +" -h Recuerda la ubicación de las órdenes como se localizaron.\n" +" -k Todos los argumentos de asignación se colocan en el ambiente para " +"una\n" +" orden, no solo aquellos que preceden al nombre de la orden.\n" +" -m Activa el control de trabajos.\n" +" -n Lee órdenes pero no las ejecuta.\n" +" -o nombre-opcion\n" +" Establece la variable correspondiente a nombre-opcion:\n" +" allexport igual que -a\n" +" braceexpand igual que -B\n" +" emacs usa una interfaz de edición de línea estilo " "emacs\n" -" errexit igual que -e\n" -" errtrace igual que -E\n" -" functrace igual que -T\n" -" hashall igual que -h\n" -" histexpand igual que -H\n" -" history activa la historia de órdenes\n" -" ignoreeof el shell no terminará después de leer EOF\n" -" interactive-comments\n" -" permite que haya comentarios en órdenes " +" errexit igual que -e\n" +" errtrace igual que -E\n" +" functrace igual que -T\n" +" hashall igual que -h\n" +" histexpand igual que -H\n" +" history activa la historia de órdenes\n" +" ignoreeof el shell no terminará después de leer EOF\n" +" interactive-comments\n" +" permite que haya comentarios en órdenes " "interactivas\n" -" keyword igual que -k\n" -" monitor igual que -m\n" -" noclobber igual que -C\n" -" noexec igual que -n\n" -" noglob igual que -f\n" -" nolog actualmente se acepta pero se ignora\n" -" notify igual que -b\n" -" nounset igual que -u\n" -" onecmd igual que -t\n" -" physical igual que -P\n" -" pipefail el valor de devolución de una tubería es el " +" keyword igual que -k\n" +" monitor igual que -m\n" +" noclobber igual que -C\n" +" noexec igual que -n\n" +" noglob igual que -f\n" +" nolog actualmente se acepta pero se descarta\n" +" notify igual que -b\n" +" nounset igual que -u\n" +" onecmd igual que -t\n" +" physical igual que -P\n" +" pipefail el valor de devolución de una tubería es el " "estado\n" -" del último comando en salir con un estado " +" del último comando en salir con un estado " "diferente\n" -" de cero, o cero si ninguna orden termina con " -"un\n" -" estado diferente de cero\n" -" posix cambia el comportamiento de bash donde la " +" de cero, o cero si ninguna orden termina con un\n" +" estado diferente de cero\n" +" posix cambia el comportamiento de bash donde la " "operación\n" -" por omisión difiere del estándard 1003.2 para " -"que\n" -" coincida con el estándard\n" -" privileged igual que -p\n" -" verbose igual que -v\n" -" vi usa una interfaz de edición de línea estilo vi\n" -" xtrace igual que -x\n" -" -p Encendido cuando los ids real y efectivo del usuario no " -"coinciden.\n" -" Desactiva el procesamiento del fichero $ENV y la importación de\n" -" funciones de shell. Si se desactiva esta opción causa que el " -"uid y\n" -" el gid efectivos sean iguales al uid y el gid real.\n" -" -t Termina después de leer y ejecutar una orden.\n" -" -u Trata las variables sin definir como un error al ser " -"sustituidas.\n" -" -v Muestra las líneas de entrada del shell mientras se leen.\n" -" -x Muestra las órdenes y sus argumentos mientras se ejecutan.\n" -" -B el shell realizará expansión de llaves.\n" -" -C Si se activa, no permite que los ficheros regulares existentes\n" -" se sobreescriban por redirección de la salida.\n" -" -E Si se activa, las funciones del shell heredan la trampa ERR.\n" -" -H Activa el estilo de sustitución de historia ! . Esta opción " -"está\n" -" activa por defecto cuando el shell es interactivo.\n" -" -P Si se activa, no sigue enlaces simbólicos cuando se ejecutan " +" por defecto difiere del estándar Posix para que\n" +" coincida con el estándar\n" +" privileged igual que -p\n" +" verbose igual que -v\n" +" vi usa una interfaz de edición de línea estilo vi\n" +" xtrace igual que -x\n" +" -p Activo cuando los ids real y efectivo del usuario no coinciden.\n" +" Desactiva el procesamiento del fichero $ENV y la importación de\n" +" funciones de shell. Si se desactiva esta opción causa que el uid " +"y\n" +" el gid efectivos sean iguales al uid y el gid real.\n" +" -t Termina después de leer y ejecutar una orden.\n" +" -u Trata las variables sin definir como un error se sustituyen.\n" +" -v Muestra las líneas de entrada del shell mientras se leen.\n" +" -x Muestra las órdenes y sus argumentos mientras se ejecutan.\n" +" -B el shell realizará expansión de llaves.\n" +" -C Si se activa, no permite que los ficheros regulares existentes\n" +" se sobreescriban por redirección de la salida.\n" +" -E Si se activa, las funciones del shell heredan la trampa ERR.\n" +" -H Activa el estilo de sustitución de historia ! . Esta opción está\n" +" activa por defecto cuando el shell es interactivo.\n" +" -P Si se activa, no sigue enlaces simbólicos cuando se ejecutan " "órdenes\n" -" como cd, el cual cambia el directorio actual.\n" -" -T Si se activa, las funciones del shell heredan la trampa DEBUG.\n" -" - Asigna cualquier argumento restante a los parámetros " +" como cd, que cambian el directorio actual.\n" +" -T Si se activa, las funciones del shell heredan la trampa DEBUG.\n" +" - Asigna cualquier argumento restante a los parámetros " "posicionales.\n" -" Las opciones -x y -v se desactivan.\n" +" Las opciones -x y -v se desactivan.\n" " \n" " Si se usa + en lugar de - causa que estas opciones se desactiven. Las\n" " opciones también se pueden usar en la invocación del shell. El " @@ -3585,9 +3949,12 @@ msgstr "" " actual de opciones se puede encontrar en $-. Los n ARGs restantes son\n" " parámetros posicionales que se asignan, en orden, a $1, $2, .. $n. Si " "no\n" -" se proporciona ningún ARG, se muestran todas las variables del shell." +" se proporciona ningún ARG, se muestran todas las variables del shell.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3606,8 +3973,24 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" +"Desactiva valores y atributos de las variables y funciones del shell.\n" +" \n" +" Por cada NOMBRE, borra la función o variable correspondiente.\n" +" \n" +" Opciones:\n" +" -f\ttrata cada NOMBRE como una función de shell\n" +" -v\ttrata cada NOMBRE como una variable de shell\n" +" \n" +" Sin opciones, unset primero trata de borrar una variable, y si falla,\n" +" trata de borrar una función.\n" +" \n" +" Algunas variables no se pueden borrar; también consulte `readonly'.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" un NOMBRE sea de sólo lectura." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3625,8 +4008,25 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" +"Establece el atributo de exportación para las variables de shell.\n" +" \n" +" Marca cada NOMBRE para exportación automática al ambiente para las " +"órdenes\n" +" ejecutadas subsecuentemente. Si se proporciona un VALOR, se asigna el\n" +" VALOR antes de exportar.\n" +" \n" +" Opciones:\n" +" -f\tse refiere a funciones de shell\n" +" -n\tborra la propiedad de exportación para cada NOMBRE\n" +" -p\tmuestra una lista de todas las variables y funciones exportadas\n" +" \n" +" El argumento `--' desactiva el procesamiento posterior de opciones.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o que\n" +" NOMBRE sea inválido." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3645,8 +4045,27 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" +"Marca las variables de shell para evitar su modificación.\n" +" \n" +" Marca cada NOMBRE como de sólo lectura; los valores de esos NOMBREs\n" +" no se pueden modificar por asignaciones subsecuentes. Si se " +"proporciona\n" +" un VALOR, se asigna el VALOR antes de marcar como de sólo lectura.\n" +" \n" +" Opciones:\n" +" -a\tse refiere a variables de matriz indizada\n" +" -A\tse refiere a variables de matriz asociativa\n" +" -f\tse refiere a funciones de shell\n" +" -p\tmuestra una lista de todas las variables y funciones de sólo " +"lectura\n" +" \n" +" El argumento `--' desactiva el procesamiento posterior de opciones.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" el NOMBRE sea inválido." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3656,9 +4075,15 @@ msgid "" " Exit Status:\n" " Returns success unless N is negative or greater than $#." msgstr "" +"Desplaza los parámetros posicionales.\n" +" \n" +" Renombra los parámetros posicionales $N+1,$N+2 ... a $1,$2 ... Si no\n" +" se proporciona N, se asume que es 1.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que N sea negativo o mayor que $#." -#: builtins.c:1173 builtins.c:1188 -#, fuzzy +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3671,12 +4096,18 @@ msgid "" " Returns the status of the last command executed in FILENAME; fails if\n" " FILENAME cannot be read." msgstr "" -"Lee y ejecuta órdenes de FILENAME y regresa. Se utilizan los nombres\n" -" de rutas en $PATH para encontrar el directorio que contiene a FILENAME.\n" -" Si se proporciona cualquier ARGUMENTS, se convierten en los parámetros\n" -" posicionales cuando se ejecuta FILENAME." +"Ejecuta órdenes de un fichero en el shell actual.\n" +" \n" +" Lee y ejecuta órdenes del FICHERO en el shell actual. Se utilizan las\n" +" entradas en $PATH para encontrar el directorio que contiene el FICHERO.\n" +" Si se proporciona ARGUMENTOS, se convierten en los parámetros " +"posicionales\n" +" cuando se ejecuta el FICHERO.\n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada del FICHERO; falla si\n" +" no se puede leer el FICHERO." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3689,9 +4120,20 @@ msgid "" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." msgstr "" +"Suspende la ejecución del shell.\n" +" \n" +" Suspende la ejecución de este shell hasta que recibe una señal SIGCONT.\n" +" Los shells de entrada no se pueden suspender, a menos que sean " +"forzados.\n" +" \n" +" Opciones:\n" +" -f\tfuerza la suspensión, aún si el shell es un shell de entrada\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que no esté activo el control de trabajos o\n" +" suceda un error." -#: builtins.c:1220 -#, fuzzy +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3767,7 +4209,9 @@ msgid "" " Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" " false or an invalid argument is given." msgstr "" -"Termina con un estado de 0 (verdadero) o 1 (falso) dependiendo de\n" +"Evalúa expresiones condicionales.\n" +" \n" +" Termina con un estado de 0 (verdadero) o 1 (falso) dependiendo de\n" " la evaluación de EXPR. Las expresiones pueden ser unarias o binarias.\n" " Las expresiones unarias se usan generalmente para examinar el estado\n" " de un fichero. Hay también operadores de cadenas, y operadores de\n" @@ -3775,86 +4219,87 @@ msgstr "" " \n" " Operadores de fichero:\n" " \n" -" -a FILE Verdadero si el fichero existe.\n" -" -b FILE Verdadero si el fichero es especial de bloques.\n" -" -c FILE Verdadero si el fichero es especial de caracteres.\n" -" -d FILE Verdadero si el fichero es un directorio.\n" -" -e FILE Verdadero si el fichero existe.\n" -" -f FILE Verdadero si el fichero existe y es un fichero " +" -a FICHERO Verdadero si el fichero existe.\n" +" -b FICHERO Verdadero si el fichero es especial de bloques.\n" +" -c FICHERO Verdadero si el fichero es especial de caracteres.\n" +" -d FICHERO Verdadero si el fichero es un directorio.\n" +" -e FICHERO Verdadero si el fichero existe.\n" +" -f FICHERO Verdadero si el fichero existe y es un fichero " "regular.\n" -" -g FILE Verdadero si el fichero tiene activado el set-group-" +" -g FICHERO Verdadero si el fichero tiene activado el set-group-" "id.\n" -" -h FILE Verdadero si el fichero es un enlace simbólico.\n" -" -L FILE Verdadero si el fichero es un enlace simbólico.\n" -" -k FILE Verdadero si el fichero tiene el bit \"sticky\" " +" -h FICHERO Verdadero si el fichero es un enlace simbólico.\n" +" -L FICHERO Verdadero si el fichero es un enlace simbólico.\n" +" -k FICHERO Verdadero si el fichero tiene el bit `sticky' " "activado.\n" -" -p FILE Verdadero si el fichero es una tubería nombrada.\n" -" -r FILE Verdadero si el fichero es legible para usted.\n" -" -s FILE Verdadero si el fichero existe y no está vacío.\n" -" -S FILE Verdadero si el fichero es un \"socket\".\n" -" -t FD Verdadero si el FD está abierto en una terminal.\n" -" -u FILE Verdadero si el fichero tiene activado el set-user-" -"id.\n" -" -w FILE Verdadero si usted puede modificar el fichero.\n" -" -x FILE Verdadero si usted puede ejecutar el fichero.\n" -" -O FILE Verdadero si usted efectivamente posee el fichero.\n" -" -G FILE Verdadero si su grupo efectivamente posee el " -"fichero.\n" -" -N FILE Verdadero si el fichero se modificó desde la última " +" -p FICHERO Verdadero si el fichero es una tubería nombrada.\n" +" -r FICHERO Verdadero si el fichero es legible para usted.\n" +" -s FICHERO Verdadero si el fichero existe y no está vacío.\n" +" -S FICHERO Verdadero si el fichero es un `socket'.\n" +" -t DF Verdadero si el DF está abierto en una terminal.\n" +" -u FICHERO Verdadero si el fichero tiene activado el set-user-id.\n" +" -w FICHERO Verdadero si usted puede escribir en el fichero.\n" +" -x FICHERO Verdadero si usted puede ejecutar el fichero.\n" +" -O FICHERO Verdadero si usted efectivamente posee el fichero.\n" +" -G FICHERO Verdadero si su grupo efectivamente posee el fichero.\n" +" -N FICHERO Verdadero si el fichero se modificó desde la última " "lectura.\n" " \n" -" FILE1 -nt FILE2 Verdadero si file1 es más reciente que file2\n" +" FICH1 -nt FICH2 Verdadero si fich1 es más reciente que fich2\n" " (de acuerdo a la fecha de modificación).\n" " \n" -" FILE1 -ot FILE2 Verdadero si file1 es más antiguo que file2.\n" +" FICH1 -ot FICH2 Verdadero si fich1 es más antiguo que fich2.\n" " \n" -" FILE1 -ef FILE2 Verdadero si file1 es un enlace duro a file2.\n" +" FICH1 -ef FICH2 Verdadero si fich1 es un enlace duro a fich2.\n" " \n" " Operadores de cadenas:\n" " \n" -" -z STRING Verdadero si la cadena está vacía.\n" +" -z CADENA Verdadero si la cadena está vacía.\n" " \n" -" -n STRING\n" -" STRING Verdadero si la cadena no está vacía.\n" +" -n CADENA\n" +" CADENA Verdadero si la cadena no está vacía.\n" " \n" -" STRING1 = STRING2\n" -" Verdadero si las cadenas son iguales.\n" -" STRING1 != STRING2\n" -" Verdadero si las cadenas no son iguales.\n" -" STRING1 < STRING2\n" -" Verdadero si STRING1 se ordena antes que STRING2\n" -" lexicográficamente.\n" -" STRING1 > STRING2\n" -" Verdadero si STRING1 se ordena después que STRING2\n" -" lexicográficamente.\n" +" CADENA1 = CADENA2\n" +" Verdadero si las cadenas son iguales.\n" +" CADENA1 != CADENA2\n" +" Verdadero si las cadenas no son iguales.\n" +" CADENA1 < CADENA2\n" +" Verdadero si STRING1 se ordena antes que STRING2\n" +" lexicográficamente.\n" +" CADENA1 > CADENA2\n" +" Verdadero si STRING1 se ordena después que STRING2\n" +" lexicográficamente.\n" " \n" " Otros operadores:\n" " \n" -" -o OPTION Verdadero si la opción del shell OPTION está " -"activada.\n" -" ! EXPR Verdadero si expr es falso.\n" -" EXPR1 -a EXPR2 Verdadero si expr1 Y expr2 are son verdaderas.\n" -" EXPR1 -o EXPR2 Verdadero si cualquiera de expr1 O expr2 es " -"verdadera.\n" +" -o OPCIÓN Verdadero si la opción del shell OPCIÓN está activada.\n" +" ! EXPR Verdadero si expr es falso.\n" +" EXPR1 -a EXPR2 Verdadero si expr1 Y expr2 are son verdaderas.\n" +" EXPR1 -o EXPR2 Verdadero si cualquiera de expr1 O expr2 es verdadera.\n" " \n" -" arg1 OP arg2 Pruebas aritméticas. OP es uno de -eq, -ne,\n" +" arg1 OP arg2 Pruebas aritméticas. OP es uno de -eq, -ne,\n" " -lt, -le, -gt, or -ge.\n" " \n" " Los operadores binarios aritméticos devuelven verdadero si ARG1 es\n" -" igual, no igual, menor, menor o igual, mayor, mayor o igual que ARG2." +" igual, no igual, menor, menor o igual, mayor, mayor o igual que ARG2.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito si EXPR evalúa a verdadero; falla si EXPR evalúa a\n" +" falso o se proporciona un argumento inválido." -#: builtins.c:1296 -#, fuzzy +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" " This is a synonym for the \"test\" builtin, but the last argument must\n" " be a literal `]', to match the opening `['." msgstr "" -"Este es un sinónimo para la orden interna \"test\", pero el último\n" +"Evalúa una expresión condicional.\n" +" \n" +" Este es un sinónimo para la orden interna \"test\", pero el último\n" " argumento debe ser un `]' literal, que coincida con el `[' inicial." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3865,9 +4310,16 @@ msgid "" " Exit Status:\n" " Always succeeds." msgstr "" +"Muestra los tiempos de proceso.\n" +" \n" +" Muestra los tiempos de usuario y sistema acumulados por el shell y " +"todos\n" +" sus procesos hijos.\n" +" \n" +" Estado de salida:\n" +" Siempre con éxito." -#: builtins.c:1317 -#, fuzzy +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3902,25 +4354,41 @@ msgid "" " Returns success unless a SIGSPEC is invalid or an invalid option is " "given." msgstr "" -"La orden ARG se lee y ejecuta cuando el shell recibe la(s) señal(es)\n" -" SIGNAL_SPEC. Si ARG no está presente (y sólo se proporciona una sola\n" -" SIGNAL_SPEC) o se proporciona `-', cada señal especificada se\n" -" reestablece a su valor original. Si ARG es la cadena nula, cada\n" -" SIGNAL_SPEC es ignorada por el shell y por las órdenes que invoque.\n" -" Si una SIGNAL_SPEC es EXIT (0) se ejecuta la orden ARG al salir del\n" -" shell. Si una SIGNAL_SPEC es DEBUG, se ejecuta ARG después de cada\n" -" orden simple. Si se especifica la opción `-p' entonces se muestran\n" -" las órdenes de trampa asociadas con cada SIGNAL_SPEC. Si no se\n" -" proporcionan argumentos o si sólo se especifica `-p', trap muestra\n" -" la lista de órdenes asociadas a cada señal. Cada SIGNAL_SPEC es un\n" -" nombre de señal en o un número de señal. Los nombres de\n" -" señal no son sensibles a mayúsculas y minúsculas y el prefijo SIG\n" -" es opcional. `trap -l' muestra una lista de nombres de señal y sus\n" -" números correspondientes. Note que se puede enviar una señal al shell " -"con\n" -" \"kill -signal $$\"." - -#: builtins.c:1349 +"Atrapa señales y otros eventos.\n" +" \n" +" Define y activa manejadores a ejecutar cuando el shell recibe señales\n" +" u otras condiciones.\n" +" \n" +" ARG es una orden para leer y ejecutar cuando el shell recibe la(s)\n" +" señal(es) ID_SEÑAL. Si ARG no está presente (y sólo se proporciona\n" +" una sola ID_SEÑAL) o se proporciona `-', cada señal especificada se\n" +" reestablece a su valor original. Si ARG es la cadena nula, el shell\n" +" y las órdenes que invoque ignoran cada ID_SEÑAL.\n" +" \n" +" Si una ID_SEÑAL es EXIT (0) se ejecuta la orden ARG al salir del\n" +" shell. Si una ID_SEÑAL es DEBUG, se ejecuta ARG después de cada\n" +" orden simple.\n" +" \n" +" Si no se proporcionan argumentos, trap muestra la lista de órdenes\n" +" asociadas con cada señal.\n" +" \n" +" Opciones:\n" +" -l\tmuestra una lista de nombres de señal con su número " +"correspondiente\n" +" -p\tmuestra las órdenes trap asociadas con cada ID_SEÑAL\n" +" \n" +" Cada ID_SEÑAL es un nombre de señal en o un número de señal.\n" +" Los nombres de señal no son sensibles a mayúsculas y minúsculas y el\n" +" prefijo SIG es opcional. Se puede enviar una señal al shell con\n" +" \"kill -signal $$\". \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que una ID_SEÑAL sea inválida o se " +"proporcione\n" +" una opción inválida." + +# No he visto que este fichero incluya la posibilidad de traducir las +# palabras que muestra `type -t'. Por esta razón, se dejan en inglés. cfuga +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3949,9 +4417,36 @@ msgid "" " Returns success if all of the NAMEs are found; fails if any are not " "found." msgstr "" - -#: builtins.c:1380 -#, fuzzy +"Muestra información sobre el tipo de orden.\n" +" \n" +" Por cada NOMBRE, indica cómo se interpretaría si se usa como un nombre\n" +" de orden.\n" +" \n" +" Opciones:\n" +" -a\tmuestra todas las ubicaciones que contienen un ejecutable llamado\n" +" \tNOMBRE; incluye aliases, órdenes internas, y funciones, solo y solo " +"si\n" +" \tno se usó también la opción `-p'\n" +" -f\tsuprime la búsqueda de funciones de shell\n" +" -P\tfuerza una búsqueda en PATH por cada nombre, aún si hay un alias,\n" +" \torden interna, o función, y devuelve el nombre del fichero en el " +"disco\n" +" \tque se ejecutaría\n" +" -p\tdevuelve ya sea el nombre del fichero en disco que se ejecutaría,\n" +" \to nada si `type -t NOMBRE' no devuelve `fichero'.\n" +" -t\tmuestra una sola palabra, que es una de `alias', `keyword',\n" +" \t`function', `builtin', `file' o `', si el NOMBRE es un alias,\n" +" \tpalabra reservada del shell, función del shell, orden interna del\n" +" \tshell, fichero de disco, o no se encuentra, respectivamente.\n" +" \n" +" Argumentos:\n" +" NOMBRE\tNombre de orden a interpretar.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito si se encuentran todos los NOMBREs; falla si no se\n" +" encuentra alguno." + +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3994,41 +4489,53 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Ulimit provee control sobre los recursos disponibles para los\n" -" procesos iniciados por el shell, en sistemas que permiten dicho\n" -" control. Si se proporciona una opción, se interpreta así:\n" -" \n" -" -S\tusa el límite de recurso `soft'\n" -" -H\tusa el límite de recurso `hard'\n" -" -a\tse muestran todos los límites actuales\n" -" -c\tel tamaño máximo de los ficheros `core' creados\n" -" -d\tel tamaño máximo del segmento de datos de un proceso\n" -" -e\tla prioridad máxima de calendarización (`nice')\n" -" -f\tel tamaño máximo de los ficheros escritos por el shell y\n" -" \tsus hijos\n" -" -i\tel número máximo de señales pendientes\n" -" -l\tel tamaño máximo que un proceso puede bloquear en memoria\n" -" -m\tel tamaño máximo para las variables residentes\n" -" -n\tel número máximo de descriptores de fichero abiertos\n" -" -p\tel tamaño de almacenamiento intermedio para tuberías\n" -" -q\tel tamaño máximo de bytes en las colas de mensajes POSIX\n" -" -r\tla prioridad máxima de calendarización en tiempo real\n" -" -s\tel tamaño máximo de pila\n" -" -t\tla cantidad máxima de tiempo de cpu en segundos\n" -" -u\tel número máximo de procesos de usuario\n" -" -v\tel tamaño de la memoria virtual\n" -" -x\tel número máximo de bloqueos de ficheros\n" -" \n" -" Si se establece LIMIT, éste es el nuevo valor del recurso especificado;\n" -" los valores especiales de de LIMIT `soft', `hard' y `unlimited'\n" +"Modifica los límites de recursos del shell.\n" +" \n" +" Provee control sobre los recursos disponibles para el shell y los\n" +" procesos que crea, en sistemas que permiten tal control.\n" +" \n" +" Opciones:\n" +" \n" +" -S\tusa el límite de recurso `soft'\n" +" -H\tusa el límite de recurso `hard'\n" +" -a\tmuestra todos los límites actuales\n" +" -b\tel tamaño del almacenamiento intermedio del `socket'\n" +" -c\tel tamaño máximo de los ficheros `core' creados\n" +" -d\tel tamaño máximo del segmento de datos de un proceso\n" +" -e\tla prioridad máxima de calendarización (`nice')\n" +" -f\tel tamaño máximo de los ficheros escritos por el shell y sus " +"hijos\n" +" -i\tel número máximo de señales pendientes\n" +" -l\tel tamaño máximo que un proceso puede bloquear en memoria\n" +" -m\tel tamaño máximo para las variables residentes\n" +" -n\tel número máximo de descriptores de fichero abiertos\n" +" -p\tel tamaño del almacenamiento intermedio para tuberías\n" +" -q\tel tamaño máximo de bytes en las colas de mensajes POSIX\n" +" -r\tla prioridad máxima de calendarización en tiempo real\n" +" -s\tel tamaño máximo de pila\n" +" -t\tla cantidad máxima de tiempo de cpu en segundos\n" +" -u\tel número máximo de procesos de usuario\n" +" -v\tel tamaño de la memoria virtual\n" +" -x\tel número máximo de bloqueos de ficheros\n" +" \n" +" Si se establece LÍMITE, éste es el nuevo valor del recurso " +"especificado;\n" +" los valores especiales de LÍMITE `soft', `hard' y `unlimited'\n" " corresponden al límite suave actual, el límite duro actual, y\n" " sin límite, respectivamente. De otra forma, se muestra el valor actual\n" " de los recursos especificados. Si no se proporciona una opción, se\n" -" asume -f. Los valores son en incrementos de 1024 bytes, excepto para\n" -" -t, el cual es en segundos, -p, el cual es en incrementos de 512 bytes,\n" -" y -u, el cual es un número de procesos sin escala." +" asume -f.\n" +" \n" +" Los valores son en incrementos de 1024 bytes, excepto para -t, el cual\n" +" es en segundos, -p, el cual es en incrementos de 512 bytes, y -u, el\n" +" cual es un número de procesos sin escala.\n" +" \n" +" Estado de salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o " +"suceda\n" +" un error." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4045,8 +4552,24 @@ msgid "" " Exit Status:\n" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" +"Muestra o establece la máscara de modo de ficheros.\n" +" \n" +" Establece la máscara de creación de ficheros del usuario a MODO. Si se\n" +" omite el MODO, muestra el valor actual de la máscara.\n" +" \n" +" Si el MODO empieza con un dígito, se interpreta como un número octal;\n" +" de otra forma es una cadena de modo simbólico como la que acepta chmod " +"(1).\n" +" \n" +" Opciones:\n" +" -p\tsi se omite el MODO, muestra en una forma reusable como entrada\n" +" -S\tsalida simbólica; de otra forma muestra el modo como número octal\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que el MODO sea inválido o se proporcione\n" +" una opción inválida." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4062,9 +4585,19 @@ msgid "" "is\n" " given." msgstr "" +"Espera la terminación del trabajo y devuelve el estado de salida.\n" +" \n" +" Espera al proceso identificado por ID, el cual puede ser un ID de\n" +" proceso o una especificación de trabajo, y reporta su estado de salida.\n" +" Si no se proporciona un ID, espera a todos los procesos hijo activos,\n" +" y el estado de devolución es cero. Si ID es una especificación de\n" +" trabajo, espera a todos los procesos en la cola de trabajos.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n" +" opción inválida." -#: builtins.c:1463 -#, fuzzy +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4077,15 +4610,17 @@ msgid "" "is\n" " given." msgstr "" -"Espera al proceso especificado y reporta su estado final. Si no se\n" -" proporciona N, espera a todos los procesos hijo activos actualmente,\n" -" y el código de devolución es cero. N puede ser un ID de proceso o\n" -" una especificación de trabajo; si se proporciona una especificación\n" -" de trabajo, se espera a todos los procesos en la línea de ejecución\n" -" del trabajo." - -#: builtins.c:1478 -#, fuzzy +"Espera la terminación del trabajo y devuelve el estado de salida.\n" +" \n" +" Espera al proceso especificado y reporta su estado de salida. Si\n" +" no se proporciona un PID, espera a todos los procesos hijo activos,\n" +" y el código de devolución es cero. PID debe ser un ID de proceso.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n" +" opción inválida." + +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4097,13 +4632,17 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"El ciclo `for' ejecuta una secuencia de órdenes para cada miembro\n" -" lista de elementos. Si `in WORDS ...;' no está presente, entonces\n" -" se asume `in \"$@\"'. Para cada elemento en WORDS, se define NAME\n" -" como ese elemento, y se ejecutan COMMANDS." +"Ejecuta órdenes por cada miembro en una lista.\n" +" \n" +" El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en\n" +" una lista de elementos. Si `in PALABRAS ...;' no está presente,\n" +" entonces se asume `in \"$@\"'. Para cada elemento en PALABRAS,\n" +" se define NOMBRE como ese elemento, y se ejecutan las ÓRDENES.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1492 -#, fuzzy +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4119,17 +4658,21 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Equivalente a\n" +"Aritmética para un ciclo.\n" +" \n" +" Equivalente a\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" -" \t\tCOMMANDS\n" +" \t\tÓRDENES\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, y EXP3 son expresiones aritméticas. Si se omite\n" -" cualquier expresión, se comporta como si se evaluara a 1." +" cualquier expresión, se comporta como si se evaluara a 1.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1510 -#, fuzzy +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4148,22 +4691,25 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Se expanden WORDS, generando una lista de palabras. El\n" -" conjunto de palabras expandidas se muestra en la salida\n" -" de error estándard, cada una precedida por un número. Si\n" -" `in WORDS' no está presente, se asume `in \"$@\"'. Entonces\n" -" se muestra el prompt PS3 y se lee una línea de la entrada\n" -" estándard. Si la línea consiste en el número correspondiente\n" -" a una de las palabras mostradas, entonces se define NAME como\n" -" esa palabra. Si la linea está vacía, WORDS y el prompt se\n" -" muestran de nuevo. Si se lee EOF, se completa la orden.\n" -" Cualquier otro valor leído causa que NAME se defina como null.\n" -" La línea leída se guarda en la variable REPLY. Se ejecutan\n" -" COMMANDS después de cada selección hasta que se ejecuta\n" -" una orden break." - -#: builtins.c:1531 -#, fuzzy +"Selecciona palabras de una lista y ejecuta órdenes.\n" +" \n" +" Se expanden las PALABRAS, generando una lista de palabras. El\n" +" conjunto de palabras expandidas se muestra en la salida de error\n" +" estándar, cada una precedida por un número. Si `in PALABRAS' no\n" +" está presente, se asume `in \"$@\"'. Entonces se muestra el\n" +" prompt PS3 y se lee una línea de la entrada estándar. Si la\n" +" línea consiste en el número correspondiente a una de las palabras\n" +" mostradas, entonces se define NOMBRE como esa palabra. Si la\n" +" línea está vacía, PALABRAS y el prompt se muestran de nuevo. Si\n" +" se lee EOF, se completa la orden. Cualquier otro valor leído\n" +" causa que NOMBRE se defina como nulo. La línea leída se guarda\n" +" en la variable REPLY. Se ejecutan las ÓRDENES después de cada\n" +" selección hasta que se ejecuta una orden break.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." + +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4178,15 +4724,19 @@ msgid "" " Exit Status:\n" " The return status is the return status of PIPELINE." msgstr "" -"Ejecuta PIPELINE y muestra un resumen del tiempo real, el tiempo de\n" +"Reporta el tiempo consumido por la ejecución de la tubería.\n" +" \n" +" Ejecuta la TUBERÍA y muestra un resumen del tiempo real, el tiempo de\n" " CPU del usuario, y el tiempo de CPU del sistema utilizado por\n" -" la ejecución de PIPELINE cuando termina. El estado de devolución\n" -" es el estado de devolución de PIPELINE. La opción `-p' muestra\n" -" el resumen de tiempos en un formato ligeramente diferente, usando\n" -" el valor de la variable TIMEFORMAT como el formato de salida." +" la ejecución de la TUBERÍA cuando termina.\n" +" \n" +" Opciones:\n" +" -p\tmuestra el resumen de tiempos en el formato Posix transportable\n" +" \n" +" Estado de Salida:\n" +" El estado de devolución es el estado de devolución de la TUBERÍA." -#: builtins.c:1548 -#, fuzzy +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4196,11 +4746,15 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA con\n" -" el PATRÓN. Se utiliza `|' para separar patrones múltiples." +"Ejecuta órdenes en base a la coincidencia de patrones.\n" +" \n" +" Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA\n" +" con el PATRÓN. Se utiliza `|' para separar patrones múltiples.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1560 -#, fuzzy +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4220,20 +4774,23 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Se ejecuta la lista `if COMMANDS'. Si su estado de salida es cero,\n" -" entonces se ejecuta la lista `then COMMANDS`. De otra forma, cada " -"lista\n" -" `elif COMMANDS' se ejecuta en su lugar, y si su estado de salida es " +"Ejecuta comandos en base a condicionales.\n" +" \n" +" Se ejecuta la lista `if ÓRDENES'. Si su estado de salida es cero,\n" +" entonces se ejecuta la lista `then ÓRDENES`. De otra forma, cada lista\n" +" `elif ÓRDENES' se ejecuta en su lugar, y si su estado de salida es " "cero,\n" -" se ejecuta la lista correspondiente `then COMMANDS' y se completa la\n" -" orden if. De otra forma, se ejecuta la lista `else COMMANDS', si está\n" +" se ejecuta la lista `then ÓRDENES' correspondiente y se completa la\n" +" orden if. De otra forma, se ejecuta la lista `else ÓRDENES', si está\n" " presente. El estado de salida de toda la construcción es el estado de\n" " salida de la última orden ejecutada, o cero si ninguna condición " "resultó\n" -" verdadera." +" verdadera.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1577 -#, fuzzy +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4243,11 +4800,15 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n" -" `while' tenga un estado de salida de cero." +"Ejecuta órdenes mientras una prueba tenga éxito.\n" +" \n" +" Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n" +" `while' tenga un estado de salida de cero.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1589 -#, fuzzy +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4257,10 +4818,15 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n" -" `until' tengan un estado de salida que no sea cero." +"Ejecuta órdenes mientras una prueba no tenga éxito.\n" +" \n" +" Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n" +" `until' tengan un estado de salida que no sea cero.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4272,8 +4838,19 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Crea un coproceso llamado NOMBRE.\n" +" \n" +" Ejecuta la ORDEN asíncronamente, con la salida estándar y la entrada\n" +" estándar de la orden contectada a través de una tubería a los " +"descriptores\n" +" de fichero asignados a los índices 0 y 1 de una variable de matriz " +"NOMBRE\n" +" en el shell en ejecución. El nombre por defecto es \"COPROC\".\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de salida de la ORDEN." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4286,9 +4863,17 @@ msgid "" " Exit Status:\n" " Returns success unless NAME is readonly." msgstr "" +"Define una función de shell.\n" +" \n" +" Crea una función de shell llamada NOMBRE. Cuando se invoca como una\n" +" orden simple, NOMBRE ejecuta ÓRDENES en el contexto del shell que lo\n" +" llamó. Cuando se invoca NOMBRE, los argumentos se pasan a la función\n" +" como $1...$n, y el nombre de la función está en $FUNCNAME.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que NOMBRE sea de sólo lectura" -#: builtins.c:1629 -#, fuzzy +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4298,11 +4883,15 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Corre un conjunto de órdenes en un grupo. Esta es una forma de redirigir\n" -" un conjunto completo de órdenes." +"Agrupa órdenes como una unidad.\n" +" \n" +" Ejecuta un conjunto de órdenes en un grupo. Esta es una forma de\n" +" redirigir un conjunto completo de órdenes.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado de la última orden ejecutada." -#: builtins.c:1641 -#, fuzzy +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4315,15 +4904,19 @@ msgid "" " Exit Status:\n" " Returns the status of the resumed job." msgstr "" -"Equivalente al argumento JOB_SPEC de la orden `fg'. Reinicia un\n" -" trabajo detenido o en segundo plano. JOB_SPEC puede especificar\n" +"Reinicia el trabajo en primer plano.\n" +" \n" +" Equivalente al argumento IDTRABAJO de la orden `fg'. Reinicia un\n" +" trabajo detenido o en segundo plano. IDTRABAJO puede especificar\n" " un nombre de trabajo o un número de trabajo. Un `&' a continuación\n" -" de JOB_SPEC colocal al trabajo en segundo plano, como si la\n" +" de IDTRABAJO coloca al trabajo en segundo plano, como si la\n" " especificación del trabajo se hubiera proporcionado como\n" -" un argumento de `bg'." +" un argumento de `bg'.\n" +" \n" +" Estado de Salida:\n" +" Devuelve el estado del trabajo reiniciado." -#: builtins.c:1656 -#, fuzzy +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4333,11 +4926,15 @@ msgid "" " Exit Status:\n" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -"Se evalua EXPRESSION de acuerdo a las reglas de evaluación\n" -" aritmética. Equivalente a \"let EXPRESSION\"." +"Evalúa una expresión aritmética.\n" +" \n" +" Se evalua la EXPRESIÓN de acuerdo a las reglas de evaluación\n" +" aritmética. Equivalente a \"let EXPRESIÓN\".\n" +" \n" +" Estado de Salida:\n" +" Devuelve 1 si la EXPRESIÓN evalúa a 0; devuelve 0 de otra manera." -#: builtins.c:1668 -#, fuzzy +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4364,26 +4961,33 @@ msgid "" " Exit Status:\n" " 0 or 1 depending on value of EXPRESSION." msgstr "" -"Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la expresión\n" -" condicional EXPRESSION. Las expresiones se componen de los mismos\n" +"Ejecuta una orden condicional.\n" +" \n" +" Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la " +"expresión\n" +" condicional EXPRESIÓN. Las expresiones se componen de los mismos\n" " elementos primarios usados por la orden interna `test', y se pueden\n" -" combinar usando los siguientes operadores\n" +" combinar usando los siguientes operadores:\n" " \n" -" \t( EXPRESSION )\tDevuelve el valor de EXPRESSION\n" -" \t! EXPRESSION\tVerdadero si EXPRESSION es falso; de otra forma es " +" ( EXPRESIÓN )\tDevuelve el valor de la EXPRESIÓN\n" +" ! EXPRESIÓN\tVerdadero si la EXPRESIÓN es falsa; de otra forma es " "falso\n" -" \tEXPR1 && EXPR2\tVerdadero si EXPR1 y EXPR2 son verdaderos; de\n" -" \t \totra forma es falso\n" +" EXPR1 && EXPR2\tVerdadero si EXPR1 y EXPR2 son verdaderos; de\n" +" \t\totra forma es falso\n" " \tEXPR1 || EXPR2\tVerdadero si EXPR1 o EXPR2 es verdadero; de\n" -" \t \totra forma es falso\n" +" \t\totra forma es falso\n" " \n" " Cuando se usan los operadores `==' y `!=', se usa la cadena a la\n" " derecha del operador como un patrón y se realiza una coincidencia de\n" -" patrón. Los operadores && y || no evalúan EXPR2 si EXPR1 es\n" -" suficiente para determinar el valor de una expresión." +" patrones. Cuando se usa el operador `=~', la cadena a la derecha del\n" +" operador coincide como una expresión regular.\n" +" \n" +" Los operadores && y || no evalúan EXPR2 si EXPR1 es suficiente para\n" +" determinar el valor de una expresión. \n" +" Estado de Salida:\n" +" 0 o 1 dependiendo del valor de la EXPRESIÓN." -#: builtins.c:1694 -#, fuzzy +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4436,7 +5040,9 @@ msgid "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" msgstr "" -"BASH_VERSION\tInformación de versión para este Bash.\n" +"Nombres de variables de shell comunes y su uso.\n" +" \n" +" BASH_VERSION\tInformación de versión para este Bash.\n" " CDPATH\tUna lista de directorios separada por dos puntos\n" " \t\tpara buscar directorios dados como argumentos para `cd'.\n" " GLOBIGNORE\tUna lista de patrones separada por dos puntos\n" @@ -4496,8 +5102,7 @@ msgstr "" " \t\tpara decidir cuáles órdenes se deben guardar en la lista de\n" " \t\thistoria.\n" -#: builtins.c:1751 -#, fuzzy +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4527,28 +5132,36 @@ msgid "" " Returns success unless an invalid argument is supplied or the directory\n" " change fails." msgstr "" -"Agrega un directorio al tope de la pila de directorios, o rota\n" +"Agrega directorios a la pila.\n" +" \n" +" Agrega un directorio al tope de la pila de directorios, o rota\n" " la pila, haciendo que el nuevo tope de la pila sea el\n" " directorio de trabajo actual. Sin argumentos, intercambia\n" " los dos directorios del tope.\n" " \n" -" +N\tRota la pila para que el N-ésimo directorio (contando\n" -" \tde la izquierda de la lista mostrada por `dirs',\n" -" \tcomenzando desde cero) esté en el tope.\n" -" -N\tRota la pila para que el N-ésimo directorio (contando\n" -" \tde la derecha de la lista mostrada por `dirs',\n" -" \tcomenzando desde cero) esté en el tope.\n" -" \n" -" -n\tsuprime el cambio normal de directorio cuando se agregan\n" +" Opciones:\n" +" -n\tsuprime el cambio normal de directorio cuando se agregan\n" " \tdirectorios a la pila, así sólo se manipula la pila.\n" " \n" -" dir\tagrega DIR a la pila de directorios en el tope,\n" +" Argumentos:\n" +" +N\tRota la pila para que el N-ésimo directorio (contando\n" +" \tde la izquierda de la lista mostrada por `dirs',comenzando\n" +" \tdesde cero) esté en el tope.\n" +" \n" +" -N\tRota la pila para que el N-ésimo directorio (contando\n" +" \tde la derecha de la lista mostrada por `dirs', comenzando\n" +" \tdesde cero) esté en el tope.\n" +" \n" +" dir\tagrega DIR a la pila de directorios en el tope,\n" " \thaciéndolo el nuevo directorio de trabajo actual.\n" " \n" -" Puede ver la pila de directorios con la orden `dirs'." +" La orden interna `dirs' muestra la pila de directorios.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione un argumento inválido o\n" +" falle el cambio de directorio." -#: builtins.c:1785 -#, fuzzy +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -4574,27 +5187,35 @@ msgid "" " Returns success unless an invalid argument is supplied or the directory\n" " change fails." msgstr "" -"Borra entradas de la pila de directorios. Sin argumentos,\n" +"Borra directorios de la pila.\n" +" \n" +" Borra entradas de la pila de directorios. Sin argumentos,\n" " borra el directorio del tope de la pila, y cambia al\n" " nuevo directorio tope.\n" " \n" -" +N\tBorra la N-ésima entrada contando de la izquierda de\n" +" Opciones:\n" +" -n\tsuprime el cambio normal de directorio cuando se borran\n" +" \tdirectorios de la pila, así sólo se manipula la pila.\n" +" \n" +" Argumentos:\n" +" \n" +" +N\tBorra la N-ésima entrada contando de la izquierda de\n" " \tla lista mostrada por `dirs', comenzando desde cero.\n" " \tPor ejemplo: `popd +0' borra el primer directorio, `popd +1'\n" " \tel segundo.\n" " \n" -" -N\tBorra la N-ésima entrada contando de la derecha de\n" +" -N\tBorra la N-ésima entrada contando de la derecha de\n" " \tla lista mostrada por `dirs', comenzando desde cero.\n" " \tPor ejemplo: `popd -0' borra el último directorio, `popd -1'\n" " \tel penúltimo.\n" " \n" -" -n\tsuprime el cambio normal de directorio cuando se borran\n" -" \tdirectorios de la pila, así sólo se manipula la pila.\n" +" La orden interna `dirs' muestra el contenido de la pila.\n" " \n" -" Puede ver la pila de directorios con la orden `dirs'." +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione un argumento inválido o\n" +" falle el cambio de directorio." -#: builtins.c:1815 -#, fuzzy +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -4622,26 +5243,35 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Muestra la lista de directorios actualmente grabados. Los directorios\n" +"Muestra la pila de directorios.\n" +" \n" +" Muestra la lista de directorios actualmente grabados. Los directorios\n" " se guardan en la lista con la orden `pushd'; pueden ir saliendo de\n" " la lista con la orden `popd'.\n" " \n" -" La opción -l especifica que `dirs' no debe mostrar versiones\n" -" abreviadas de los directorios que son relativos a su directorio\n" -" inicial. Esto significa que `~/bin' se mostrará como `/home/bfox/bin'.\n" -" La opción -v causa que `dirs' muestre la pila de directorios con\n" -" una entrada por línea, anteponiendo la posición en la pila al nombre\n" -" del directorio. La opción -p hace lo mismo, pero no antepone la\n" -" posición en la pila. La opción -c limpia la pila de directorios\n" -" borrando todos sus elementos.\n" +" Opciones:\n" +" \n" +" -c\tlimpia la pila de directorios, eliminando todos sus elementos.\n" +" -l\tno muestra versiones con prefijo de tilde de los directorios\n" +" \trelativos a su directorio inicial.\n" +" -p\tmuestra la pila de directorios con una entrada por línea\n" +" -v\tmuestra la pila de directorios con una entrada por línea con\n" +" \tsu posición en la pila como prefijo\n" " \n" -" +N\tmuestra la N-ésima entrada contando desde la izquierda de la lista\n" -" mostrada por dirs cuando se invoca sin opciones, empezando de cero.\n" +" Argumentos: +N\tmuestra la N-ésima entrada contando desde la " +"izquierda de la lista\n" +" \tmostrada por dirs cuando se invoca sin opciones,\n" +" \tempezando de cero.\n" " \n" -" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n" -" mostrada por dirs cuando se invoca sin opciones, empezando de cero." +" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n" +" \tmostrada por dirs cuando se invoca sin opciones,\n" +" \tempezando de cero.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito, a menos que se proporcione una opción inválida o\n" +" suceda un error." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -4661,9 +5291,24 @@ msgid "" " Returns success if OPTNAME is enabled; fails if an invalid option is\n" " given or OPTNAME is disabled." msgstr "" +"Activa y desactiva opciones de shell.\n" +" \n" +" Cambia la configuración de cada opción de shell NOMBRE_OPCIÓN. Sin\n" +" alguna opción como argumento, muestra todas las opciones de shell con\n" +" una indicación si está activa o no.\n" +" \n" +" Opciones:\n" +" -o\trestringe NOMBRE_OPCIÓN a aquellos definidos con `set -o'\n" +" -p\tmuestra cada opción de shell con un indicador de su estado\n" +" -q\tsuprime la salida\n" +" -s\tactiva (establece) cada NOMBRE_OPCIÓN\n" +" -u\tdesactiva (borra) cada NOMBRE_OPCIÓN\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito si se activa NOMBRE_OPCIÓN; falla si se proporciona\n" +" una opción inválida o NOMBRE_OPCIÓN está desactivado." -#: builtins.c:1865 -#, fuzzy +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -4692,20 +5337,32 @@ msgid "" "assignment\n" " error occurs." msgstr "" -"printf da formato y muestra ARGUMENTS bajo el control de FORMAT. FORMAT\n" -" es una cadena de caracteres la cual contiene tres tipos de objetos:\n" -" caracteres normales, los cuales simplemente se copian a la salida\n" -" estándard, secuencias de escape de caracteres que se convierten y\n" -" se copian a la salida estándard, y especificaciones de formato,\n" -" cada una de las cuales causa la muestra del siguiente argumento\n" -" consecutivo. Además de los formatos printf(1) estándard, %b significa\n" -" expandir las secuencias de escape de barra invertida en su argumento\n" -" correspondiente, y %q significa citar el argumento de tal forma que\n" -" se pueda reusar como entrada del shell. Si se proporciona la opción\n" -" -v, la salida se coloca en el valor de la variable de shell VAR\n" -" en lugar de enviarla a la salida estándard." - -#: builtins.c:1892 +"Da formato y muestra ARGUMENTOS bajo el control del FORMATO.\n" +" \n" +" Opciones:\n" +" -v var\tasigna la salida a la variable de shell VAR en lugar\n" +" \t\tde mostrarla en la salida estándar\n" +" \n" +" FORMATO es una cadena de caracteres la cual contiene tres tipos de\n" +" objetos caracteres simples, los cuales solamente se copian a la salida\n" +" salida estándar; secuencias de escape de caracteres, las cuales\n" +" se convierten y se copian a la salida estándar; y especificaciones de\n" +" formato, cada una de las cuales causa la muestra del siguiente " +"argumento\n" +" consecutivo.\n" +" \n" +" Además de las especificaciones de formato estándar descritas en\n" +" printf(1) y printf(3), printf interpreta:\n" +" %b\texpande las secuencias de escape de barra invertida en\n" +" \t\tel argumento correspondiente\n" +" %q\tcita el argumento de tal forma que se puede reusar como\n" +" \t\tentrada del shell.\n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" suceda un error de escritura o de asignación." + +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -4719,16 +5376,40 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" +"Especifica cuántos argumentos deben ser completados por Readline.\n" +" \n" +" Por cada NOMBRE, especifica cuántos argumentos se deben completar. Si\n" +" no se proporcionan opciones, se muestran las especificaciones de\n" +" completado existentes en una forma que permite que se reusen como " +"entrada.\n" +" \n" +" Opciones:\n" +" -p\tmuestra las especificaciones de completado existentes en formato\n" +" \treusable\n" +" -r\tborra una especificación de completado para cada NOMBRE,\n" +" \to, si no se proporcionan NOMBREs, todas las especificaciones\n" +" \tde completado\n" +" \n" +" Cuando se intenta el completado, las acciones se aplican en el orden en\n" +" que se enlistan las opciones de letra mayúscula antes indicadas.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" suceda un error." -#: builtins.c:1915 -#, fuzzy +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -4740,14 +5421,18 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Muestra los posibles complementos dependiendo de las opciones. Sirve\n" -" para usarse desde una función de shell que genere complementos " -"posibles.\n" -" Si se proporciona el argumento opcional WORD, se generan las " -"coincidencias\n" -" contra WORD." - -#: builtins.c:1930 +"Muestra los posibles complementos dependiendo de las opciones.\n" +" \n" +" Sirve para usarse desde una función de shell que genere complementos\n" +" posibles. Si se proporciona el argumento opcional PALABRA, se generan\n" +" las coincidencias contra PALABRA.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" suceda un error." + +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -4760,6 +5445,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -4775,16 +5462,40 @@ msgid "" " Returns success unless an invalid option is supplied or NAME does not\n" " have a completion specification defined." msgstr "" +"Modifica o muestra las opciones de completado.\n" +" \n" +" Modifica las opciones de completado para cada NOMBRE, o, si no se\n" +" proporcionan NOMBREs, el completado actualmente en ejecución. Si no se\n" +" proporcionan OPCIONes, muestra las opciones de completado para cada\n" +" NOMBRE o la especificación de completado actual. \n" +" Opciones:\n" +" \t-o opción\tEstablece la opción de completado OPCIÓN\n" +" \t\tpara cada NOMBRE\n" +" \n" +" Si usa `+o' en lugar de `-o' desactiva la opción especificada.\n" +" \n" +" Argumentos:\n" +" \n" +" Cada NOMBRE se refiere a una orden para la cual se definió previamente\n" +" una especificación de completado usando la orden interna `complete'.\n" +" Si no se proporcionan NOMBREs, compopt debe llamarse desde una función\n" +" que genere completados, y se modifican las opciones para ese generador\n" +" de completados en ejecución.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" el NOMBRE no tenga una especificación de completado definida." -#: builtins.c:1958 +#: builtins.c:1968 +#, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -4811,15 +5522,62 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." -msgstr "" - -#: builtins.c:1990 +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." +msgstr "" +"Lee líneas de un fichero y las guarda en una variable de matriz.\n" +" \n" +" Lee líneas de la entrada estándar y las guarda en la variable de matriz\n" +" MATRIZ, o desde el descriptor de fichero DF si se proporciona la opción\n" +" -u. La variable MAPFILE es la MATRIZ por defecto.\n" +" \n" +" Opciones:\n" +" -n cuenta\tCopia hasta CUENTA líneas. Si CUENTA es 0, se copian\n" +" \ttodas las líneas.\n" +" -O origen\tComienza a asignar a MATRIZ en el índice ORIGEN. El\n" +" \tíndice por defecto es 0.\n" +" -s cuenta \tDescarta las primeras CUENTA líneas leídas.\n" +" -t\t\tBorra la nueva línea final de cada línea leída.\n" +" -u df\t\tLee líneas del descriptor de fichero DF en lugar de la\n" +" \tentrada estándar.\n" +" -C llamada\tEvalúa LLAMADA cada vez que se leen QUANTUM líneas.\n" +" -c quantum\tEspecifica el número de líneas a leer entre cada\n" +" \tllamada a LLAMADA.\n" +" \n" +" Argumentos:\n" +" MATRIZ\t\tNombre de variable de matriz a usar para guardar datos.\n" +" \n" +" Si se proporciona -C sin -c, el quantum por defecto es 5000. Cuando\n" +" se evalúa LLAMADA, se proporciona el índice del siguiente elemento\n" +" de la matriz a asignar como un argumento adicional.\n" +" \n" +" Si no se proporciona un origen explícito, mapfile borrará la MATRIZ\n" +" antes de usarla para asignación.\n" +" \n" +" Estado de Salida:\n" +" Devuelve con éxito a menos que se proporcione una opción inválida o\n" +" la MATRIZ sea de sólo lectura." + +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Lee líneas de un fichero en una variable de matriz.\n" +" \n" +" Un sinónimo de `mapfile'." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: no se pueden reasignar %lu bytes (%lu bytes asignados)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: no se pueden reasignar %lu bytes" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s:%d: no se pueden reasignar %lu bytes (%lu bytes asignados)" #~ msgid " " #~ msgstr " " @@ -5050,9 +5808,65 @@ msgstr "" #~ " función de shell llamada `ls', y desea llamar a la orden `ls', puede\n" #~ " decir \"command ls\". Si se da la opción -p, se usa un valor por\n" #~ " defecto para PATH que garantiza encontrar todas las herramientas\n" -#~ " estándard. Si se da la opción -V o -v, se muestra una cadena que\n" +#~ " estándar. Si se da la opción -V o -v, se muestra una cadena que\n" #~ " describe COMMAND. La opción -V produce una descripción más detallada." +# apaga -> desactiva em+ +# Corregido en toda la traducción. cfuga +#~ msgid "" +#~ "Declare variables and/or give them attributes. If no NAMEs are\n" +#~ " given, then display the values of variables instead. The -p option\n" +#~ " will display the attributes and values of each NAME.\n" +#~ " \n" +#~ " The flags are:\n" +#~ " \n" +#~ " -a\tto make NAMEs arrays (if supported)\n" +#~ " -f\tto select from among function names only\n" +#~ " -F\tto display function names (and line number and source file name " +#~ "if\n" +#~ " \tdebugging) without definitions\n" +#~ " -i\tto make NAMEs have the `integer' attribute\n" +#~ " -r\tto make NAMEs readonly\n" +#~ " -t\tto make NAMEs have the `trace' attribute\n" +#~ " -x\tto make NAMEs export\n" +#~ " \n" +#~ " Variables with the integer attribute have arithmetic evaluation (see\n" +#~ " `let') done when the variable is assigned to.\n" +#~ " \n" +#~ " When displaying values of variables, -f displays a function's name\n" +#~ " and definition. The -F option restricts the display to function\n" +#~ " name only.\n" +#~ " \n" +#~ " Using `+' instead of `-' turns off the given attribute instead. " +#~ "When\n" +#~ " used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "Declara variables y/o les asigna atributos. Si no se propociona\n" +#~ " ningún NAME, entonces muestra los valores de las variables.\n" +#~ " La opción -p mostrará los atributos y valores de cada NAME.\n" +#~ " \n" +#~ " Las opciones son:\n" +#~ " \n" +#~ " -a\thace a los NAMEs matrices (si tiene soporte)\n" +#~ " -f\tselecciona solamente nombres de funciones\n" +#~ " -F\tmuestra nombres de funciones (y número de línea y nombre de\n" +#~ " \tfichero fuente si se está depurando) sin definiciones\n" +#~ " -i\tasigna a los NAMEs el atributo `integer'\n" +#~ " -r\thace a los NAMEs de sólo lectura\n" +#~ " -t\tasigna a los NAMEs el atributo `trace'\n" +#~ " -x\thace a los NAMEs exportables\n" +#~ " \n" +#~ " Las variables con el atributo integer se les evalúa aritméticamente\n" +#~ " (vea `let') cuando se asigna la variable.\n" +#~ " \n" +#~ " Cuando se muestran los valores de las variables, -f muestra\n" +#~ " el nombre de una función y su definición. La opción -F restringe\n" +#~ " a mostrar solamente el nombre de la función.\n" +#~ " \n" +#~ " Al usar `+' en lugar de `-' desactiva el atributo dado. Cuando se\n" +#~ " usa en una función, hace a los NAMEs locales, como sucede con la\n" +#~ " orden `local'." + #~ msgid "Obsolete. See `declare'." #~ msgstr "Obsoleto. Ver `declare'." @@ -6217,17 +7031,17 @@ msgstr "" #~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" #~ msgstr "" -#~ "Si el ID_TRABAJO no se encuentra, se usa la noción del shell de trabajo" +#~ "Si el IDTRABAJO no se encuentra, se usa la noción del shell de trabajo" #~ msgid "used." #~ msgstr "actual." #~ msgid "Place JOB_SPEC in the background, as if it had been started with" #~ msgstr "" -#~ "Ubica al ID_TRABAJO en el background, como si hubiera sido iniciado con" +#~ "Ubica al IDTRABAJO en el background, como si hubiera sido iniciado con" #~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" -#~ msgstr "`&'. Si el ID_TRABAJO no se encuentra, se usa la noción del shell" +#~ msgstr "`&'. Si el IDTRABAJO no se encuentra, se usa la noción del shell" #~ msgid "job is used." #~ msgstr "de trabajo actual." @@ -6680,10 +7494,10 @@ msgstr "" #~ msgid "" #~ " operation differs from the 1003.2 standard to" #~ msgstr "" -#~ " la operación difiere del estándard 1003.2 para" +#~ " la operación difiere del estándar 1003.2 para" #~ msgid " match the standard" -#~ msgstr " cumplir el estándard" +#~ msgstr " cumplir el estándar" #~ msgid " privileged same as -p" #~ msgstr " privileged igual que -p" @@ -7309,7 +8123,7 @@ msgstr "" #~ msgid "set of expanded words is printed on the standard error, each" #~ msgstr "" -#~ "conjunto de palabras expandidas se muestra en la salida de error estándard" +#~ "conjunto de palabras expandidas se muestra en la salida de error estándar" #~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" #~ msgstr "" @@ -7320,7 +8134,7 @@ msgstr "" #~ msgstr "`in \"$@\"'. El prompt PS3 se muestra y se lee una línea de" #~ msgid "from the standard input. If the line consists of the number" -#~ msgstr "la entrada estándard. Si la línea consiste del número" +#~ msgstr "la entrada estándar. Si la línea consiste del número" #~ msgid "corresponding to one of the displayed words, then NAME is set" #~ msgstr "" diff --git a/po/et.gmo b/po/et.gmo index 0f19bee6661b5bcba8cfff6c10f6abf754e82a2c..779307f3429b7af45521c66d2e03333aa55d5bd6 100644 GIT binary patch delta 24 fcmaDD|1f^TTv={IBVA(y1p^B!Bh$?*WG#gNa_\n" "Language-Team: Estonian \n" @@ -18,50 +18,55 @@ msgstr "" msgid "bad array subscript" msgstr "vigane massiivi indeks" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: vigane tegevuse nimi" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: mitte-numbrilisele indeksile ei saa omistada" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: ei saa luua: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: esimine mitte-tühemik sümbol pole `\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "sulgev `%c' puudub %s sees" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: puudub eraldav koolon" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%s: vigane tegevuse nimi" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -112,6 +117,21 @@ msgid "" " Without EXPR, returns " msgstr "Tagastab jooksva alamprotseduuri konteksti." +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME pole seatud" @@ -125,7 +145,7 @@ msgstr "OLDPWD pole seatud" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s: hoiatus: " @@ -135,11 +155,11 @@ msgstr "%s: hoiatus: " msgid "%s: usage: " msgstr "%s: hoiatus: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "liiga palju argumente" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: võti nõuab argumenti" @@ -154,7 +174,7 @@ msgstr "%s: n msgid "%s: not found" msgstr "%s: ei leitud" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: vigane võti" @@ -179,7 +199,7 @@ msgstr "vigane signaali number" msgid "invalid hex number" msgstr "vigane number" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "vigane number" @@ -193,7 +213,7 @@ msgstr "%s: vigane signaali spetsifikatsioon" msgid "`%s': not a pid or valid job spec" msgstr "`%s': ei ole pid ega korrektne töö spetsifikatsioon" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: mittemuudetav muutuja" @@ -265,26 +285,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: segane töö" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: vigane tegevuse nimi" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "hoiatus: võti -F ei pruugi töötada nagu te ootate" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "hoiatus: võti -C ei pruugi töötada nagu te ootate" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -292,21 +312,21 @@ msgstr "" msgid "can only be used in a function" msgstr "saab kasutada ainult funktsioonis" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "võtit `-f' ei saa funktsiooni loomiseks kasutada" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funktsioon ei ole muudetav" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: masiivi muutujaid ei saa nii kustutada" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -335,8 +355,8 @@ msgstr "%s: pole d msgid "%s: cannot delete: %s" msgstr "%s: ei saa kustutada: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: on kataloog" @@ -351,7 +371,8 @@ msgstr "%s: ei ole tavaline fail" msgid "%s: file is too large" msgstr "%s: fail on liiga suur" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: kahendfaili ei õnnestu käivitada" @@ -380,15 +401,15 @@ msgstr "Teil on peatatud t msgid "There are running jobs.\n" msgstr "Teil on peatatud töid.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "käsku ei ole" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: ajutist faili ei saa avada: %s" @@ -478,12 +499,12 @@ msgstr "%s: vigane teenus" msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Tundmatu viga" @@ -491,56 +512,61 @@ msgstr "Tundmatu viga" msgid "expression expected" msgstr "oodati avaldist" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: pole massiiv" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: vigane võti" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: vigane võti" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s: vigane tegevuse nimi" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: pole massiiv" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s: hoiatus: " -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -630,12 +656,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "viga lugemisel: %d: %s" @@ -672,11 +698,11 @@ msgstr "%s: ei ole funktsioon" msgid "shift count" msgstr "shift arv" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -766,77 +792,77 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "viimane käsklus: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Katkestan..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "tundmatu viga käsus" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: sidumata muutuja" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "kirjutamise viga: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: piiratud: käskudes ei saa kasutada sümboleid `/'" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: käsku ei ole" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: halb interpretaator" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" @@ -881,28 +907,28 @@ msgstr "" msgid "missing `)'" msgstr "puudub `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "süntaksi viga: oodati operandi" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "süntaksi viga: vigane aritmeetiline operaator" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "vigane aritmeetiline baas" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "väärtus on baasiks liiga suur" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: oodati täisarvude avaldist" @@ -911,7 +937,7 @@ msgstr "%s: oodati t msgid "getcwd: cannot access parent directories" msgstr "getcwd: vanemkataloogidele ei ole juurdepääsu" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "" @@ -964,7 +990,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1001,69 +1027,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: töö %d on peatatud" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: töö on lõpetatud" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: töö %d on juba taustal" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s: hoiatus: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "" @@ -1154,6 +1184,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Teil on kiri kaustas $_" @@ -1167,131 +1217,131 @@ msgstr "Teil on uus kiri kaustas $_" msgid "The mail in %s has been read\n" msgstr "Kiri kaustas %s on loetud\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "süntaksi viga: nõutakse aritmeetilist avaldist" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "süntaksi viga: ootamatu `;'" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "süntaksi viga: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "süntaksi viga tingimuslikus avaldises" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "ootamatu märk `%s', oodati `)'" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "oodati `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "süntaksi viga kohal `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "süntaksi viga: ootamatu faililõpp" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "süntaksi viga" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Käsuinterpretaatorist väljumiseks kasutage \"%s\".\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1301,71 +1351,90 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "faili deskriptor on piiridest väljas" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: segane ümbersuunamine" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: fail on olemas, ei kirjuta üle" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: piiratud: väljundit ei saa ümber suunata" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "$%s: sedasi ei saa omistada" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "viga ümbersuunamisel: fd duplikaadi loomine ei õnnestu" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "/tmp puudub, palun looge see!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp peab olema kataloogi nimi" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: vigane võti" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Mul ei ole nime!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1374,382 +1443,403 @@ msgstr "" "Kasuta:\t%s [GNU pikk võti] [võti] ...\n" "\t%s [GNU pikk võti] [võti] skript-fail ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU pikad võtmed:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Käsuinterpretaatori võtmed:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD või -c käsklus või -O lühivõti\t\t(ainult käivitamine)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s või -o võti\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Vigadest teatamiseks kasutage käsku `bashbug'.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: vigane operatsioon" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "süntaksi viga" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "piiratud" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameeter on null või pole seatud" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: halb asendus" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: sedasi ei saa omistada" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "sulgev `%c' puudub %s sees" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "ei leitud: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "oodati argumenti" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: oodati täisarvude avaldist" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "oodati `)'" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "oodati `)', saadi %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: eeldati unaarset operaatorit" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: eeldati binaarset operaatorit" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "puudub `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "vigane signaali number" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: halb väärtus muutujas trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" "run_pending_traps: signaali käsitleja on SIG_DFL, saadan %d (%s) iseendale" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: vigane signaal %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shelli tase (%d) on liiga kõrge, kasutan väärtust 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: praegune skoop pole funktsiooni kontekst" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: praegune skoop pole funktsiooni kontekst" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parameeter on null või pole seatud" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: pole global_variables kontekst" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: ei saa avada: %s" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 #, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." @@ -1761,60 +1851,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Autoriõigus © 2006 Free Software Foundation, Inc.\n" -#: xmalloc.c:116 +#: version2.c:87 #, c-format -msgid "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "%s: ei saa luua: %s" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "%s: ei saa luua: %s" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -1931,7 +2013,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -1960,8 +2042,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2124,9 +2206,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2136,7 +2218,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -2856,7 +2938,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2876,7 +2962,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2888,7 +2974,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -2970,7 +3056,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -2990,7 +3076,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3009,7 +3095,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3029,7 +3115,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3040,7 +3126,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3054,7 +3140,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3068,7 +3154,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3145,7 +3231,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3153,7 +3239,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3165,7 +3251,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3201,7 +3287,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3231,7 +3317,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3275,7 +3361,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3293,7 +3379,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3310,7 +3396,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3324,7 +3410,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3337,7 +3423,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3354,7 +3440,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3374,7 +3460,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3390,7 +3476,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3401,7 +3487,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3422,7 +3508,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3433,7 +3519,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3444,7 +3530,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3457,7 +3543,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3471,7 +3557,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3482,7 +3568,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3496,7 +3582,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3507,7 +3593,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3535,7 +3621,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3589,7 +3675,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3620,7 +3706,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3647,7 +3733,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3676,7 +3762,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3697,7 +3783,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3727,7 +3813,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3741,15 +3827,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3762,7 +3853,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3775,6 +3866,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3791,15 +3884,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3826,10 +3919,12 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/po/fr.gmo b/po/fr.gmo index 8f347576c01214d5c972dc0f4f869974f6040861..9fe681f137ff3ee10525399f8b390ea352cedb67 100644 GIT binary patch delta 5617 zcmYk<3w)2)9mnw#WfBRINF))Ff8tsZB5_F~NJ3mwm%1eAT;h^3)w)*e@~BQtY2#8_ zmnOPaNmVeJH7!Ovy3UBAZY$Q#eTr-pL+$hZKZki<`R0Ajljr}O^Zd?v{;hq-eM-uG zoHN0dmm7{sKE~9=X1>M@p`BJ!XN}nqYD`ls#$Y^(?eHQt!1}d~sfXP#1oJT(XCgml z4Zr+w8wTM{d%oP&F&FHK2dDu;!imVuhkFw}sPZGQ!- zXdk1l`y4gUNo;}FZ9lq>`=G5cp7BjL8oF>AYQ~FDH!4OxV?INb^eFOB<|aOk0nCb~ zX@jaW!4izYa@6$|=;#lX8C6f*5IJYkPy^W^S z1vSBes5PF1DL5bN;~vz+&Z9rxM?HWqqX%Fl>Oq>I#z~HL+!I|npoLA*#I#g_EYuqI!)7=URpLU_X4{A=-EPzXM^O{GgWC0>Jf;RnKn;+Ky3c&% z*-R-W;NOw4O+Xw=!1$)M8rTK(7UWXXL z(HMYfsMoGLYGTi!Hmzg-z8YK6-_V@;ccyWg6CE*@?@1Vzsz@Sg z0v%9KHUc%k1k~nS*Vy1l!;RWK0vqW9o_eAp6VAMGd&gdJ44%s`4Ri-cA^bPCgB- z`7G22SD>DF4@ToT)WDS)RVHE}4#%-R#=MByWT)7%dVml*8Q2(AiLt1OEWrreW&0

    (}RB6&tr5k4ZGqD!^)#$;^SRD_c20nwDa0P0Kf_PjFn2bH~SyUwp zu?`-ft5Sl2m0@y3m7>I1uA-66%QyQP*#^=MSLMb z)Jb>Ox<7`|pN{(bV%sl4N2S_FL!0eKWVuZ(7Em+pfm-u?)IiHo*Oj6^cM7A?C(|7u z1~t(XRAmOBDl;3k>55VJIe<0sY9{s9?tj1u8B3k@gk4b|n2h?sJJ#)3gZ{Uei0803 zhIMwACLeYE64V-RLH4EDk6N0_S?&arQG2I!8dc)CsDYNDDzFuG{dx37CxvP2!c2_A zeyG>RK~-QSYP0#_j2EYDcGL=2dF*vJu(N! zgtLGwzZr$>C$rx6FQYDO*2gXVNNh%b4YCU6Yt)kj_H`#R67`K%h6z}X>1dvH--Zm- z{byiv+=-3#{$Hh`8;5YWM9e_;i$V@o@La+N1Ws7;J^pu`g~y?U{$x`Xk)0^seaP{49rt{xeyK zs=z+$L)20v^G>PM!%$05fF4|nydY)|@=zvdB>$|!7cdhKqMkHplv|M@m`;B=rs6TH z6ExaAk&XJmeAH(72369B7>$v9jj6QlFbSukmaZ6?t2u0KmG7?Y3iRQ8H=+qWI%eC( z3&;!MnDzF=Dpbi{C-ul_qJxQgcPsOFe2lfN;i$6fP!-F(E%(>Qz_xjOET(nR_Eb?F z-{}26NJH=cCpyFNJMt@1oBW#WCa;k{k`3e-SxvfCvy5*_z0LpsT0~P{ID9Xe`Q$$&hUoZ1rg~fMuiNmM?H|Pzwk_VX?QOV&Tp?G<59Dd`mb}hPN{Smq!VdNJY)|UKy*wa)x9nL;fPtbT^TRh_CIh8(f7kgqzn0+6q7%Y z8Kf5JO>|Tx>%1*n|6z2RkQ?@76lRl8$y`!F=8*5nlgCy%!6c95lM_V8IP#F(QHSGA zvWEPYRPy2f0q{Gr@X`9y_WrkgFLo!XB%K73zmlQkMRK2nkn=>xKC+yYsKar=#ru0E zzr)FKa*3o79UVxHx20dyzbW`WKH>gjLES^-XYy~dlI$e^B02_>ue>ey{}I$2N!pWY zWFGmJOdtg$l1wI5NFUOGY$nm_JUaXzHSnz`+P!FplFs&A9qX5vM0_aebj&41+XmF$ cAG549CELGcVti79Cm}gCvGq3p)Qc_t2lUrs+W-In delta 6674 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 qY5HZKoyvz<={??C@;no_m;Q2ge!T-f9l_A+%\n" "Language-Team: French \n" @@ -20,52 +20,57 @@ msgstr "" msgid "bad array subscript" msgstr "mauvais indice de tableau" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s : nom d'action non valable" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s : impossible d'assigner à un index non numérique" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s : impossible de créer : %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "bash_execute_unix_command : impossible de trouver le mappage clavier pour la " "commande" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s : le premier caractère non vide n'est pas « \" »" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "pas de « %c » de fermeture dans %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s : virgule de séparation manquante" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "« %s » : nom du mappage clavier invalide" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -116,6 +121,21 @@ msgid "" " Without EXPR, returns " msgstr "Renvoie le contexte de l'appel de sous-routine actuel" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "« HOME » non défini" @@ -129,7 +149,7 @@ msgstr "« OLDPWD » non défini" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s : avertissement :" @@ -139,11 +159,11 @@ msgstr "%s : avertissement :" msgid "%s: usage: " msgstr "%s : avertissement :" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "trop d'arguments" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s : l'option nécessite un argument" @@ -158,7 +178,7 @@ msgstr "%s : argument numérique nécessaire" msgid "%s: not found" msgstr "%s : non trouvé" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s : option non valable" @@ -183,7 +203,7 @@ msgstr "Numéro de signal non valable" msgid "invalid hex number" msgstr "nombre non valable" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "nombre non valable" @@ -196,9 +216,10 @@ msgstr "%s : indication de signal non valable" #, c-format msgid "`%s': not a pid or valid job spec" msgstr "" -"« %s » : ce n'est pas un n° de processus ou une spécification de tâche valable" +"« %s » : ce n'est pas un n° de processus ou une spécification de tâche " +"valable" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s : variable en lecture seule" @@ -270,30 +291,30 @@ msgstr "%s : erreur de détermination du répertoire actuel : %s : %s\n" msgid "%s: ambiguous job spec" msgstr "%s : spécification de tâche ambiguë" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s : nom d'action non valable" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s : pas d'indication de complètement" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" "avertissement : l'option « -F » peut fonctionner différemment de ce à quoi " "vous vous attendez" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" "avertissement : l'option « -C » peut fonctionner différemment de ce à quoi " "vous vous attendez" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -301,21 +322,21 @@ msgstr "" msgid "can only be used in a function" msgstr "utilisable seulement dans une fonction" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "« -f » ne peut pas être utilisé pour fabriquer des fonctions" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s : fonction en lecture seule" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s : impossible de détruire des variables tableaux de cette façon" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -344,8 +365,8 @@ msgstr "%s : non chargé dynamiquement" msgid "%s: cannot delete: %s" msgstr "%s : impossible d'effacer : %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s : ceci est un répertoire" @@ -360,7 +381,8 @@ msgstr "%s : ceci n'est pas un fichier régulier" msgid "%s: file is too large" msgstr "%s : le fichier est trop grand" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s : fichier binaire impossible à lancer" @@ -389,15 +411,15 @@ msgstr "Il y a des tâches stoppées.\n" msgid "There are running jobs.\n" msgstr "Il y a des tâches stoppées.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "aucune commande trouvée" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "indication d'historique" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s : impossible d'ouvrir le fichier temporaire : %s" @@ -447,8 +469,8 @@ msgstr[1] "Commandes du shell correspondant au mot-clé « " msgid "" "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." msgstr "" -"Aucune rubrique d'aide ne correspond à « %s ». Essayez « help help », « man -k %" -"s » ou « info %s »." +"Aucune rubrique d'aide ne correspond à « %s ». Essayez « help help », « man -" +"k %s » ou « info %s »." #: builtins/help.def:185 #, c-format @@ -468,7 +490,8 @@ msgid "" msgstr "" "Ces commandes de shell sont définies de manière interne.Tapez « help » pour " "voir cette liste.\n" -"Tapez « help nom » pour en savoir plus sur la fonction qui s'appelle « nom ».\n" +"Tapez « help nom » pour en savoir plus sur la fonction qui s'appelle « nom " +"».\n" "Utilisez « info bash » pour en savoir plus sur le shell en général.\n" "Utilisez « man -k » ou « info » pour en savoir plus sur les commandes qui\n" "ne font pas partie de cette liste.\n" @@ -498,13 +521,13 @@ msgstr "%s : l'expansion de l'historique a échoué" msgid "no other options allowed with `-x'" msgstr "pas d'autre option permise avec « -x »" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" "%s : les arguments doivent être des identifiants de tâche ou de processus" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Erreur inconnue" @@ -512,56 +535,61 @@ msgstr "Erreur inconnue" msgid "expression expected" msgstr "une expression est attendue" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s : n'est pas une variable tableau" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s : spécification de descripteur de fichier non valable" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d : descripteur de fichier non valable : %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s : option non valable" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s : option non valable" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s : nom d'action non valable" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s : n'est pas une variable tableau" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "« %s » : caractère de format manquant" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "« %c » : caractère de format non permis" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s : avertissement :" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "chiffre hexadécimal manquant pour \\x" @@ -615,11 +643,13 @@ msgstr "" " raccourcies des répertoires relativement à votre répertoire personnel.\n" " Cela signifie que « ~/bin » devrait être affiché comme « /homes/bfox/bin " "».\n" -" L'option « -v » permet à « dirs » d'afficher la pile des répertoires avec\n" +" L'option « -v » permet à « dirs » d'afficher la pile des répertoires " +"avec\n" " un élément par ligne, en commençant la ligne par la position dans la " "pile.\n" " L'option « -p » fait la même chose mais le numéro de position n'est pas\n" -" affiché. L'option « -c » efface la pile des répertoires en enlevant tous\n" +" affiché. L'option « -c » efface la pile des répertoires en enlevant " +"tous\n" " les éléments.\n" " \n" " +N\t affiche le Nième élément en comptant de zéro depuis la gauche de " @@ -661,10 +691,12 @@ msgstr "" " répertoires en haut de la pile sont échangés.\n" " \n" " +N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" -" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs ».\n" +" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs " +"».\n" " \n" " -N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" -" \ten comptant de zéro depuis la droite de la liste fournie par « dirs ».\n" +" \ten comptant de zéro depuis la droite de la liste fournie par « dirs " +"».\n" " \n" " -n\tne change pas de répertoire de travail lorsque des répertoires\n" " \tsont ajoutés à la pile, de façon que seule la pile soit manipulée\n" @@ -712,12 +744,12 @@ msgstr "" " \n" " Vous pouvez voir la pile des répertoires avec la commande « dirs »." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s : spécification de délai d'expiration non valable" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "Erreur de lecture : %d : %s" @@ -725,8 +757,8 @@ msgstr "Erreur de lecture : %d : %s" #: builtins/return.def:73 msgid "can only `return' from a function or sourced script" msgstr "" -"« return » n'est possible que depuis une fonction ou depuis un script exécuté " -"par « source »" +"« return » n'est possible que depuis une fonction ou depuis un script " +"exécuté par « source »" #: builtins/set.def:768 msgid "cannot simultaneously unset a function and a variable" @@ -758,13 +790,13 @@ msgstr "%s : n'est pas une fonction" msgid "shift count" msgstr "nombre de « shift »" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" "les options du shell ne peuvent pas être simultanément activées et " "désactivées" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s : nom d'option du shell non valable" @@ -854,78 +886,78 @@ msgstr "« %c » : opérateur de mode symbolique non valable" msgid "`%c': invalid symbolic mode character" msgstr "« %c » : caractère de mode symbolique non valable" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "dernière commande : %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Annulation..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "erreur de commande inconnue" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "mauvais type de commande" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "mauvais connecteur" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "mauvais saut" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s : variable sans liaison" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\aattente de données expirée : déconnexion automatique\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "attente de données expirée : déconnexion automatique\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "l'entrée standard ne peut pas être redirigée depuis /dev/null : %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT : « %c » : caractère de format non valable" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "erreur d'écriture : %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" "%s : restriction : « / » ne peut pas être spécifié dans un nom de commande" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s : commande introuvable" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s : %s : mauvais interpréteur" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "Impossible de dupliquer le fd %d vers le fd %d" @@ -970,28 +1002,28 @@ msgstr "identifiant attendu après un pré-incrément ou un pré-décrément" msgid "missing `)'" msgstr "« ) » manquante" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "erreur de syntaxe : opérande attendue" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "erreur de syntaxe : opérateur arithmétique non valable" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "base arithmétique non valable" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "valeur trop grande pour la base" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s : nombre entier attendu comme expression" @@ -1000,7 +1032,7 @@ msgstr "%s : nombre entier attendu comme expression" msgid "getcwd: cannot access parent directories" msgstr "getcwd : ne peut accéder aux répertoires parents" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "Impossible de réinitialiser le mode « nodelay » pour le fd %d" @@ -1055,7 +1087,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1092,69 +1124,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait : le processus n°%ld n'est pas un fils de ce shell." -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for : aucun enregistrement du processus n°%ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job : la tâche %d est stoppée" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s : la tâche s'est terminée" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s : la tâche %d est déjà en arrière plan" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s : avertissement :" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "pas de contrôle de tâche dans ce shell" @@ -1248,6 +1284,26 @@ msgstr "%s : mauvaise spécification de chemin réseau" msgid "network operations not supported" msgstr "opérations sur le réseau non prises en charge" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc : %s:%d : impossible d'allouer %lu octets" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc : %s:%d : impossible d'allouer %lu octets" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Vous avez du courrier dans $_" @@ -1261,138 +1317,138 @@ msgstr "Vous avez du nouveau courrier dans $_" msgid "The mail in %s has been read\n" msgstr "Le courrier dans %s a été lu.\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "Erreur de syntaxe : expression arithmétique nécessaire" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "Erreur de syntaxe : « ; » non attendu" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "Erreur de syntaxe : « ((%s)) »" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document : le type d'instruction %d est incorrect" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection : l'instruction de redirection « %d » est hors plage" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" "Caractère de fin de fichier (EOF) prématuré lors de la recherche du « %c » " "correspondant" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "" "Caractère de fin de fichier (EOF) prématuré lors de la recherche de « ]] »" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" "Erreur de syntaxe dans une expression conditionnelle : symbole « %s » " "inattendu" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "Erreur de syntaxe dans une expression conditionnelle" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "Symbole inattendu « %s » au lieu de « ) »" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "« ) » attendu" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "argument inattendu « %s » pour l'opérateur conditionnel à un argument" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "argument inattendu pour l'opérateur conditionnel à un argument" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "Symbole « %s » trouvé à la place d'un opérateur binaire conditionnel" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "opérateur binaire conditionnel attendu" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "argument « %s » inattendu pour l'opérateur binaire conditionnel" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "argument inattendu pour l'opérateur binaire conditionnel" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "Symbole « %c » inattendu dans la commande conditionnelle" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "Symbole « %s » inattendu dans la commande conditionnelle" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "Symbole « %d » inattendu dans la commande conditionnelle" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "Erreur de syntaxe près du symbole inattendu « %s »" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "Erreur de syntaxe près de « %s »" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "Erreur de syntaxe : fin de fichier prématurée" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "Erreur de syntaxe" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Utilisez « %s » pour quitter le shell.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" "Caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » " "correspondant" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "complètement : fonction « %s » non trouvée" @@ -1402,73 +1458,92 @@ msgstr "complètement : fonction « %s » non trouvée" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert : %s : NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command : mauvais connecteur « %d »" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d : descripteur de fichier non valable : %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf : « %c » : caractère de format invalide" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "descripteur de fichier hors plage" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s : redirection ambiguë" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s : impossible d'écraser le fichier existant" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s : restreint : impossible de rediriger la sortie" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "" "impossible de créer un fichier temporaire pour le « here-document » : %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s : impossible d'affecter une liste à un élément de tableau" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port non pris en charge sans réseau" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "" "Erreur de redirection : impossible de dupliquer le descripteur de fichier" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "« /tmp » introuvable, veuillez le créer !" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "« /tmp » doit être un nom de répertoire correct" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c : option non valable" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Je n'ai pas de nom !" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1477,334 +1552,340 @@ msgstr "" "Utilisation :\t%s [option longue GNU] [option] ...\n" "\t%s [option longue GNU] [option] fichier-script ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Options longues GNU :\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Options du shell :\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD ou -c commande ou -O shopt_option\t\t(invocation seulement)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ou -o option\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Pour en savoir plus sur les options du shell, tapez « %s -c \"help set\" ».\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Pour en savoir plus sur les primitives du shell, tapez « %s -c help ».\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Utilisez la commande « bashbug » pour faire un rapport de bogue.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask : %d : operation non valable" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "Erreur de syntaxe" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "restreint" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s : impossible d'affecter une liste à un élément de tableau" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "Impossible de fabriquer un tube pour une substitution de processus" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "Impossible de fabriquer un fils pour une substitution de processus" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "Impossible d'ouvrir le tube nommé « %s » en lecture" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "Impossible d'ouvrir le tube nommé « %s » en écriture" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "Impossible de dupliquer le tube nommé « %s » vers le fd %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "Impossible de fabriquer un tube pour une substitution de commande" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "" "Impossible de fabriquer un processus fils pour une substitution de commande" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute : impossible de dupliquer le tube vers le fd 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s : paramètre vide ou non défini" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s : expression de sous-chaîne négative" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s : mauvaise substitution" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s : affectation impossible de cette façon" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "Pas de correspondance : %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "argument attendu" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s : nombre entier attendu comme expression" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "« ) » attendue" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "« ) » attendu au lieu de %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s : opérateur unaire attendu" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s : opérateur binaire attendu" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "« ] » manquant" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "Numéro de signal non valable" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps : mauvaise valeur dans trap_list[%d] : %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1812,59 +1893,74 @@ msgstr "" "run_pending_traps : le gestionnaire de signal est SIG_DFL, %d (%s) renvoyé à " "moi-même" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler : mauvais signal %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "erreur lors de l'import de la définition de fonction pour « %s »" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "niveau de shell trop élevé (%d), initialisation à 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" "make_local_variable : aucun contexte de fonction dans le champ d'application " "actuel" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" "all_local_variables : aucun contexte de fonction dans le champ d'application " "actuel" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s : paramètre vide ou non défini" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "caractère %d non valable dans « exportstr » pour %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "Pas de « = » dans « exportstr » pour %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" "pop_var_context : le début de « shell_variables » n'est pas un contexte de " "fonction" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context : aucun contexte à « global_variables »" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope : le début de « shell_variables » n'est pas un champ d'application " "temporaire d'environnement" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s : impossible d'ouvrir : %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d : descripteur de fichier non valable : %s" + #: version.c:46 #, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." @@ -1876,62 +1972,53 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc : impossible d'allouer %lu octets (%lu octets alloués)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc : impossible d'allouer %lu octets" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc : impossible de réallouer %lu octets (%lu octets alloués)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc : impossible d'allouer %lu octets (%lu octets alloués)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc : impossible d'allouer %lu octets" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc : impossible d'allouer %lu octets" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc : %s:%d : impossible d'allouer %lu octets (%lu octets alloués)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc : %s:%d : impossible d'allouer %lu octets" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc : %s:%d : impossible de réallouer %lu octets (%lu octets alloués)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc : %s:%d : impossible d'allouer %lu octets" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "" @@ -2047,7 +2134,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -2076,8 +2163,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2241,9 +2328,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2253,7 +2340,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -2293,7 +2380,8 @@ msgstr "" " la liste des alias sous la forme NAME=VALUE. Sinon, un alias est défini\n" " pour chaque NAME dont la VALUE est fournie. Une espace après la VALUE\n" " entraîne la vérification de la substitution d'alias pour le mot suivant\n" -" lorsque l'alias est étendu. « alias » renvoie « true » à moins qu'un NAME\n" +" lorsque l'alias est étendu. « alias » renvoie « true » à moins qu'un " +"NAME\n" " ne soit fourni pour lequel aucun alias n'a été défini." #: builtins.c:276 @@ -2355,11 +2443,13 @@ msgstr "" "du fichier ~/.inputrc, mais doivent être transmis comme arguments uniques :\n" " bind '\"\\C-x\\C-r\" : re-read-init-file'.\n" " bind accepte les options suivantes :\n" -" -m keymap Utilise « keymap » comme mappage clavier pendant la\n" +" -m keymap Utilise « keymap » comme mappage clavier pendant " +"la\n" " durée de cette commande. Des noms de mappage " "valables sont « emacs », « emacs-standard », « emacs-" "meta », \n" -" « emacs-ctlx », « vi », « vi-move », « vi-command » et\n" +" « emacs-ctlx », « vi », « vi-move », « vi-command » " +"et\n" " « vi-insert ».\n" " -l Affiche les noms de fonctions.\n" " -P Affiche les noms et associations des fonctions.\n" @@ -2504,8 +2594,8 @@ msgstr "" "que\n" " l'option « cdable_vars » du shell est définie, alors le mot est essayé " "comme nom\n" -" de variable. Si la variable possède une valeur, alors on fait « cd » vers " -"cette valeur.\n" +" de variable. Si la variable possède une valeur, alors on fait « cd » " +"vers cette valeur.\n" " L'option « -P » indique d'utiliser la structure physique des répertoires " "plutôt que\n" " les liens symboliques ; l'option « -L » force le suivi des liens " @@ -2627,15 +2717,16 @@ msgstr "" " -t\tpour que les NAME aient l'attribut « trace »\n" " -x\tpour faire un export des NAME\n" " \n" -" L'évaluation arithmétique des variables ayant l'attribut « integer » est\n" +" L'évaluation arithmétique des variables ayant l'attribut « integer » " +"est\n" " effectuée au moment de l'affectation (voir « let »).\n" " \n" " Lors de l'affichage des valeurs de variables, -f affiche le nom de la " "fonction\n" " et sa définition. L'option -F permet de n'afficher que le nom.\n" " \n" -" Un attribut peut être désactivé en utilisant « + » au lieu de « - ». Dans " -"une\n" +" Un attribut peut être désactivé en utilisant « + » au lieu de « - ». " +"Dans une\n" " fonction, ceci a pour effet de rendre les NAME locaux, comme avec la " "commande «local »." @@ -2694,8 +2785,8 @@ msgid "" msgstr "" "Affiche les ARGs. Si « -n » est spécifié, le retour à la ligne final et " "supprimé.\n" -" L'option « -e » permet d'activer l'interprétation des caractères à contre-" -"oblique\n" +" L'option « -e » permet d'activer l'interprétation des caractères à " +"contre-oblique\n" " parmi la liste ci-dessous :\n" " \t\\a\talerte (cloche)\n" " \t\\b\tretour arrière\n" @@ -2947,8 +3038,8 @@ msgstr "" " après avoir effectué la substitution OLD=NEW.\n" " \n" " Un alias utile est « r='fc -s' » de sorte qu'en tapant « r cc »,\n" -" la dernière commande commençant par « cc » est ré-exécutée et avec « r », " -"la\n" +" la dernière commande commençant par « cc » est ré-exécutée et avec « r " +"», la\n" " dernière commande est ré-exécutée." #: builtins.c:738 @@ -3085,8 +3176,8 @@ msgstr "" "sinon\n" " la valeur de « $HISTFILE » est utilisée, sinon le fichier « ~/." "bash_history ».\n" -" Si l'option « -s » est fournie, les arguments qui ne sont pas des options " -"sont\n" +" Si l'option « -s » est fournie, les arguments qui ne sont pas des " +"options sont\n" " ajoutés à la fin de l'historique comme un seul élément. L'option « -p » " "permet\n" " d'effectuer une expansion d'historique sur chaque ARG et d'afficher le " @@ -3095,7 +3186,8 @@ msgstr "" " \n" " Si la variable « $HISTTIMEFORMAT » est définie et non vide, sa valeur " "est\n" -" utilisée comme chaîne de format pour « strftime(3) » afin d'afficher les\n" +" utilisée comme chaîne de format pour « strftime(3) » afin d'afficher " +"les\n" " valeurs de temps associées à chaque élément de l'historique. Sinon,\n" " aucun valeur de temps n'est affichée." @@ -3127,7 +3219,8 @@ msgstr "" " en plus des informations habituelles. L'option « -p » n'affiche que les\n" " numéros de processus. Si « -n » est fourni, seuls les processus dont\n" " l'état a changé depuis la dernière notification sont affichés. JOBSPEC\n" -" restreint l'affichage à ce numéro de tâche. Les options « -r » et « -s »\n" +" restreint l'affichage à ce numéro de tâche. Les options « -r » et « -s " +"»\n" " restreignent l'affichage respectivement aux tâches en cours d'exécution\n" " et aux tâches stoppées. Sans option, l'état de toutes les tâches " "actives\n" @@ -3179,8 +3272,8 @@ msgid "" msgstr "" "Envoie le signal SIGSPEC aux processus désignés par PID (ou JOBSPEC). Si\n" " SIGSPEC n'est pas fourni, alors SIGTERM est utilisé. L'argument « -l »\n" -" permet de lister les noms de signaux. Si des arguments sont donnés à « -l " -"»,\n" +" permet de lister les noms de signaux. Si des arguments sont donnés à « -" +"l »,\n" " ils sont supposés être des numéros de signaux pour lesquels les noms \n" " doivent être affichés. « kill » est une commande intégrée au shell pour\n" " deux raisons : il permet d'utiliser des numéros de tâche plutôt que des\n" @@ -3300,7 +3393,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3336,16 +3433,16 @@ msgstr "" "lu plutôt que\n" " le retour à la ligne. Si « -p » est fourni, la chaîne PROMPT est " "affichée\n" -" sans retour à la ligne final avant la tentative de lecture. Si « -a » est " -"fourni,\n" +" sans retour à la ligne final avant la tentative de lecture. Si « -a » " +"est fourni,\n" " les mots lus sont affectés en séquence aux indices du TABLEAU, en " "commençant\n" -" à zéro. Si « -e » est fourni et que le shell est interactif, « readline » " -"est\n" +" à zéro. Si « -e » est fourni et que le shell est interactif, « readline " +"» est\n" " utilisé pour obtenir la ligne. Si « -n » est fourni avec un argument " "NCHARS non nul,\n" -" « read » se termine après que NCHARS caractères ont été lus. L'option « -s " -"»\n" +" « read » se termine après que NCHARS caractères ont été lus. L'option « -" +"s »\n" " permet aux données venant d'un terminal de ne pas être répétées.\n" " \n" " L'option « -t » permet à « read » de se terminer avec une erreur si une " @@ -3360,7 +3457,7 @@ msgstr "" "ne soit\n" " fourni pour l'argument « -u »." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3372,7 +3469,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 #, fuzzy msgid "" "Set or unset values of shell options and positional parameters.\n" @@ -3477,8 +3574,8 @@ msgstr "" " hashall identique à -h\n" " histexpand identique à -H\n" " history activer l'historique des commandes\n" -" ignoreeof ne pas terminer le shell à la lecture d'un « EOF " -"»\n" +" ignoreeof ne pas terminer le shell à la lecture d'un « " +"EOF »\n" " interactive-comments\n" " permet aux commentaires d'apparaître dans les " "commandes interactives\n" @@ -3535,17 +3632,17 @@ msgstr "" "position.\n" " Les options « -x » et « -v » sont désactivées.\n" " \n" -" Ces indicateurs peuvent être désactivés en utilisant « + » plutôt que « - " -"». Ils peuvent\n" +" Ces indicateurs peuvent être désactivés en utilisant « + » plutôt que « " +"- ». Ils peuvent\n" " être utilisés lors de l'appel au shell. Le jeu d'indicateurs actuel peut " "être trouvé\n" -" dans « $- ». Les n ARGs restants sont des paramètres de position et sont " -"affectés,\n" +" dans « $- ». Les n ARGs restants sont des paramètres de position et " +"sont affectés,\n" " dans l'ordre, à $1, $2, .. $n. Si aucun ARG n'est donné, toutes les " "variables du shell\n" " sont affichées." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3565,7 +3662,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3584,7 +3681,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3604,7 +3701,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3615,7 +3712,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 #, fuzzy msgid "" "Execute commands from a file in the current shell.\n" @@ -3636,7 +3733,7 @@ msgstr "" "position\n" " lorsque FILENAME est exécuté." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3650,7 +3747,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3798,7 +3895,7 @@ msgstr "" " non-égal, inférieur, inférieur ou égal, supérieur, supérieur ou égal à " "ARG2." -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3809,7 +3906,7 @@ msgstr "" "Ceci est un synonyme de la primitive « test », mais le dernier argument\n" " doit être le caractère « ] », pour fermer le « [ » correspondant." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3821,7 +3918,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 #, fuzzy msgid "" "Trap signals and other events.\n" @@ -3866,10 +3963,12 @@ msgstr "" "SIGNAL_SPEC\n" " est EXIT (0), la commande ARG est exécutée à la sortie du shell. Si un\n" " SIGNAL_SPEC est DEBUG, ARG est exécuté après chaque commande simple. \n" -" Si l'option « -p » est fournie, les commandes d'interception associées à\n" +" Si l'option « -p » est fournie, les commandes d'interception associées " +"à\n" " chaque SIGNAL_SPEC sont affichées. Si aucun argument n'est fourni ou " "si \n" -" « -p » est fourni seul, « trap » affiche la liste des commandes associées\n" +" « -p » est fourni seul, « trap » affiche la liste des commandes " +"associées\n" " à chaque signal. Chaque SIGNAL_SPEC est soit un nom de signal dans " "\n" " ou un numéro de signal. Les noms de signaux sont insensibles à la casse " @@ -3880,7 +3979,7 @@ msgstr "" "au\n" " shell avec « kill -signal $$ »." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3910,7 +4009,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 #, fuzzy msgid "" "Modify shell resource limits.\n" @@ -3989,10 +4088,11 @@ msgstr "" "affichée\n" " Si aucune option n'est donnée, « -f » est supposée. Les valeurs sont\n" " des multiples de 1024 octets, sauf pour « -t » qui prend des secondes,\n" -" « -p » qui prend un multiple de 512 octets et « -u » qui prend un nombre\n" +" « -p » qui prend un multiple de 512 octets et « -u » qui prend un " +"nombre\n" " sans unité." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4010,7 +4110,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4027,7 +4127,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 #, fuzzy msgid "" "Wait for process completion and return exit status.\n" @@ -4047,7 +4147,7 @@ msgstr "" " spécificateur de tâche. Si c'est un spécificateur de tâche, tous les\n" " processus présents dans le tube de la tâche sont attendus." -#: builtins.c:1478 +#: builtins.c:1481 #, fuzzy msgid "" "Execute commands for each member in a list.\n" @@ -4061,11 +4161,12 @@ msgid "" " Returns the status of the last command executed." msgstr "" "La boucle « for » exécute une suite de commandes pour chaque membre d'une\n" -" liste d'éléments. Si « in WORDS ...; » n'est pas fourni, « in \"$@\" » est\n" +" liste d'éléments. Si « in WORDS ...; » n'est pas fourni, « in \"$@\" » " +"est\n" " utilisé. Pour chaque élément dans WORDS, NAME est défini à cet élément,\n" " et les COMMANDS sont exécutées." -#: builtins.c:1492 +#: builtins.c:1495 #, fuzzy msgid "" "Arithmetic for loop.\n" @@ -4092,7 +4193,7 @@ msgstr "" "expression\n" " omise, elle se comporte comme si elle s'évaluait à 1." -#: builtins.c:1510 +#: builtins.c:1513 #, fuzzy msgid "" "Select words from a list and execute commands.\n" @@ -4124,7 +4225,7 @@ msgstr "" " Les COMMANDS sont exécutées après chaque sélection jusqu'à ce qu'une\n" " commande « break » soit exécutée." -#: builtins.c:1531 +#: builtins.c:1534 #, fuzzy msgid "" "Report time consumed by pipeline's execution.\n" @@ -4146,7 +4247,7 @@ msgstr "" " L'option « -p » affiche le résumé dans un format légèrement différent.\n" " Elle utilise la valeur de la variable TIMEFORMAT comme format de sortie." -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -4161,7 +4262,7 @@ msgstr "" " motif PATTERN de correspondance des mots WORDS. Le caractère\n" " « | » est utilisé pour séparer les différents motifs." -#: builtins.c:1560 +#: builtins.c:1563 #, fuzzy msgid "" "Execute commands based on conditional.\n" @@ -4187,15 +4288,15 @@ msgstr "" " alors la liste « then COMMANDS » est exécutée. Sinon, chaque liste\n" " « elif COMMANDS » est exécutée à son tour et si son code de retour est " "zéro,\n" -" la liste « then COMMANDS » correspondante est exécutée et la commande « if " -"»\n" +" la liste « then COMMANDS » correspondante est exécutée et la commande « " +"if »\n" " se termine. Sinon, la list « else COMMANDS » est exécutée si elle " "existe.\n" " Le code de retour de l'ensemble est celui de la dernière commande " "exécutée\n" " ou zéro si aucune condition n'était vraie. " -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -4206,11 +4307,12 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Effectue une expansion et exécute les commandes « COMMANDS » aussi longtemps\n" +"Effectue une expansion et exécute les commandes « COMMANDS » aussi " +"longtemps\n" " que la commande finale parmi celles de « while » se termine avec un\n" " code de retour de zéro." -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -4221,11 +4323,12 @@ msgid "" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -"Effectue une expansion et exécute les commandes « COMMANDS » aussi longtemps\n" +"Effectue une expansion et exécute les commandes « COMMANDS » aussi " +"longtemps\n" " que les commandes de « until » se terminent avec un code de retour\n" " différent de zéro." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4238,7 +4341,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4252,7 +4355,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -4266,7 +4369,7 @@ msgstr "" "Lance un ensemble de commandes d'un groupe. Ceci est une façon de\n" " rediriger tout un ensemble de commandes." -#: builtins.c:1641 +#: builtins.c:1644 #, fuzzy msgid "" "Resume job in foreground.\n" @@ -4282,12 +4385,13 @@ msgid "" msgstr "" "Équivalent à l'argument JOB_SPEC de la commande « fg ». Reprend l'exécution\n" " d'une tâche stoppée ou en tâche de fond. JOB_SPEC peut spécifier soit\n" -" un nom soit un numéro de tâche. Faire suivre JOB_SPEC de « & » permet de\n" +" un nom soit un numéro de tâche. Faire suivre JOB_SPEC de « & » permet " +"de\n" " placer la tâche en arrière plan, comme si la spécification de tâche " "avait\n" " été fournie comme argument de « bg »." -#: builtins.c:1656 +#: builtins.c:1659 #, fuzzy msgid "" "Evaluate arithmetic expression.\n" @@ -4301,7 +4405,7 @@ msgstr "" "L'EXPRESSION est évaluée selon les règles de l'évaluation arithmétique.\n" " C'est équivalent à « let EXPRESSION »." -#: builtins.c:1668 +#: builtins.c:1671 #, fuzzy msgid "" "Execute conditional command.\n" @@ -4347,7 +4451,7 @@ msgstr "" " est effectuée. Les opérateurs « && » et « || » n'évaluent pas EXPR2 si\n" " EXPR1 est suffisant pour déterminer la valeur de l'expression." -#: builtins.c:1694 +#: builtins.c:1697 #, fuzzy msgid "" "Common shell variable names and usage.\n" @@ -4416,8 +4520,8 @@ msgstr "" " HOSTNAME\tLe nom de la machine actuelle.\n" " HOSTTYPE\tLe type de processeur sur laquelle cette version de Bash " "fonctionne.\n" -" IGNOREEOF\tContrôle l'action du shell à la réception d'un caractère « EOF " -"»\n" +" IGNOREEOF\tContrôle l'action du shell à la réception d'un caractère « " +"EOF »\n" " \t\tcomme seule entrée. Si défini, sa valeur est le nombre de " "caractères\n" " \t\t« EOF » qui peuvent être rencontrés à la suite sur une ligne vide\n" @@ -4470,7 +4574,7 @@ msgstr "" " \t\tdécider quelles commandes doivent être conservées dans la liste " "d'historique.\n" -#: builtins.c:1751 +#: builtins.c:1754 #, fuzzy msgid "" "Add directories to stack.\n" @@ -4507,10 +4611,12 @@ msgstr "" " répertoires en haut de la pile sont échangés.\n" " \n" " +N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" -" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs ».\n" +" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs " +"».\n" " \n" " -N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" -" \ten comptant de zéro depuis la droite de la liste fournie par « dirs ».\n" +" \ten comptant de zéro depuis la droite de la liste fournie par « dirs " +"».\n" " \n" " -n\tne change pas de répertoire de travail lorsque des répertoires\n" " \tsont ajoutés à la pile, de façon que seule la pile soit manipulée\n" @@ -4520,7 +4626,7 @@ msgstr "" " \n" " Vous pouvez voir la pile des répertoires avec la commande « dirs »." -#: builtins.c:1785 +#: builtins.c:1788 #, fuzzy msgid "" "Remove directories from stack.\n" @@ -4564,7 +4670,7 @@ msgstr "" " \n" " Vous pouvez voir la pile des répertoires avec la commande « dirs »." -#: builtins.c:1815 +#: builtins.c:1818 #, fuzzy msgid "" "Display directory stack.\n" @@ -4602,11 +4708,13 @@ msgstr "" " raccourcies des répertoires relativement à votre répertoire personnel.\n" " Cela signifie que « ~/bin » devrait être affiché comme « /homes/bfox/bin " "».\n" -" L'option « -v » permet à « dirs » d'afficher la pile des répertoires avec\n" +" L'option « -v » permet à « dirs » d'afficher la pile des répertoires " +"avec\n" " un élément par ligne, en commençant la ligne par la position dans la " "pile.\n" " L'option « -p » fait la même chose mais le numéro de position n'est pas\n" -" affiché. L'option « -c » efface la pile des répertoires en enlevant tous\n" +" affiché. L'option « -c » efface la pile des répertoires en enlevant " +"tous\n" " les éléments.\n" " \n" " +N\t affiche le Nième élément en comptant de zéro depuis la gauche de " @@ -4617,7 +4725,7 @@ msgstr "" "la\n" " liste affichée par « dirs » lorsque celle-ci est appelée sans option." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -4638,7 +4746,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 #, fuzzy msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" @@ -4688,7 +4796,7 @@ msgstr "" "placée dans\n" " la variable VAR plutôt que d'être envoyée vers la sortie standard." -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -4702,15 +4810,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 #, fuzzy msgid "" "Display possible completions depending on the options.\n" @@ -4731,7 +4844,7 @@ msgstr "" "»\n" " sont générées." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -4744,6 +4857,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -4760,15 +4875,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -4795,16 +4910,28 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc : impossible de réallouer %lu octets (%lu octets alloués)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc : impossible d'allouer %lu octets" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc : %s:%d : impossible de réallouer %lu octets (%lu octets alloués)" + #~ msgid " " #~ msgstr " " @@ -4857,8 +4984,8 @@ msgstr "" #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" #~ msgstr "" -#~ "le répertoire « ~/bin » pourra être affiché « /homes/bfox/bin ». L'option « -" -#~ "v »" +#~ "le répertoire « ~/bin » pourra être affiché « /homes/bfox/bin ». L'option " +#~ "« -v »" #~ msgid "causes `dirs' to print the directory stack with one entry per line," #~ msgstr "demande à « dirs » d'afficher un répertoire de la pile par ligne," @@ -4866,8 +4993,8 @@ msgstr "" #~ msgid "" #~ "prepending the directory name with its position in the stack. The -p" #~ msgstr "" -#~ "en le précédant de sa position dans la pile. L'option « -p » fait la même " -#~ "chose" +#~ "en le précédant de sa position dans la pile. L'option « -p » fait la " +#~ "même chose" #~ msgid "flag does the same thing, but the stack position is not prepended." #~ msgstr "sans afficher le numéro d'emplacement dans la pile." @@ -4875,7 +5002,8 @@ msgstr "" #~ msgid "" #~ "The -c flag clears the directory stack by deleting all of the elements." #~ msgstr "" -#~ "L'option « -c » vide la pile des répertoires en retirant tous ses éléments." +#~ "L'option « -c » vide la pile des répertoires en retirant tous ses " +#~ "éléments." #~ msgid "" #~ "+N displays the Nth entry counting from the left of the list shown by" @@ -4935,7 +5063,8 @@ msgstr "" #~ msgid "dir adds DIR to the directory stack at the top, making it the" #~ msgstr "" -#~ "dir ajoute « DIR » au dessus de la pile des répertoires, en faisant de lui" +#~ "dir ajoute « DIR » au dessus de la pile des répertoires, en faisant de " +#~ "lui" #~ msgid " new current working directory." #~ msgstr " le nouveau répertoire courant." @@ -5044,12 +5173,12 @@ msgstr "" #~ "shell. Si vous\n" #~ " avez défini une fonction de shell appelée « ls » et que vous voulez " #~ "appeler\n" -#~ " la commande « ls », vous pouvez faire « command ls ». Si l'option « -p " -#~ "» est\n" +#~ " la commande « ls », vous pouvez faire « command ls ». Si l'option « -" +#~ "p » est\n" #~ " donnée, une valeur par défaut est utilisée pour le PATH garantissant " #~ "que tous\n" -#~ " les utilitaires standards seront trouvés. Si l'option « -V » ou « -v » " -#~ "est\n" +#~ " les utilitaires standards seront trouvés. Si l'option « -V » ou « -v " +#~ "» est\n" #~ " donnée, une description de la commande s'affiche. L'option « -V » " #~ "fournit plus\n" #~ " d'informations." @@ -5101,12 +5230,12 @@ msgstr "" #~ "chargement\n" #~ " dynamique, l'option « -f » peut être utilisée pour charger de " #~ "nouvelles primitives\n" -#~ " depuis l'objet partagé FILENAME. L'option « -d » efface une primitive " -#~ "précédemment\n" +#~ " depuis l'objet partagé FILENAME. L'option « -d » efface une " +#~ "primitive précédemment\n" #~ " chargée avec « -f ». Si aucun nom (n'étant pas une option) n'est " #~ "donné, ou si l'option\n" -#~ " « -p » est spécifiée, une liste de primitive est affichée. L'option « -" -#~ "a » permet d'afficher\n" +#~ " « -p » est spécifiée, une liste de primitive est affichée. L'option " +#~ "« -a » permet d'afficher\n" #~ " toutes les primitives en précisant si elles sont activées ou non. " #~ "L'option « -s » restreint\n" #~ " la sortie aux primitives « special » POSIX.2. L'option « -n » affiche " @@ -5167,10 +5296,10 @@ msgstr "" #~ "complet\n" #~ " pour NAME, et aucune recherche n'est effectuée. L'option « -r » " #~ "demande au shell\n" -#~ " d'oublier tous les chemins mémorisés. L'option « -d » demande au shell " -#~ "d'oublier\n" -#~ " les chemins mémorisés pour le NAME. Si l'option « -t » est fournie, le " -#~ "chemin\n" +#~ " d'oublier tous les chemins mémorisés. L'option « -d » demande au " +#~ "shell d'oublier\n" +#~ " les chemins mémorisés pour le NAME. Si l'option « -t » est fournie, " +#~ "le chemin\n" #~ " complet auquel correspond chaque NAME est affiché. Si plusieurs NAME " #~ "sont fournis\n" #~ " à l'option « -t », le NAME est affiché avant chemin complet haché. " @@ -5207,14 +5336,14 @@ msgstr "" #~ msgstr "" #~ "Par défaut, enlève tous les arguments JOBSPEC de la table des tâches " #~ "actives.\n" -#~ " Si l'option « -h » est fournie, la tâche n'est pas retirée de la table " -#~ "mais\n" +#~ " Si l'option « -h » est fournie, la tâche n'est pas retirée de la " +#~ "table mais\n" #~ " est marquée de telle sorte que le signal SIGHUP ne lui soit pas " #~ "envoyé quand\n" #~ " le shell reçoit un SIGHUP. Lorsque JOBSPEC n'est pas fournie, " #~ "l'option « -a »,\n" -#~ " permet d'enlever toutes les tâches de la table des tâches. L'option « -" -#~ "r »\n" +#~ " permet d'enlever toutes les tâches de la table des tâches. L'option « " +#~ "-r »\n" #~ " indique de ne retirer que les tâches en cours de fonctionnement." #~ msgid "" @@ -5254,7 +5383,8 @@ msgstr "" #~ "Les NAME sont marqués pour export automatique vers l'environnement des\n" #~ " prochaines commandes exécutées. si l'option « -f » est donnée, les " #~ "NAME\n" -#~ " se rapportent à des fonctions. Si aucun NAME n'est donné ou si « -p »\n" +#~ " se rapportent à des fonctions. Si aucun NAME n'est donné ou si « -p " +#~ "»\n" #~ " est fourni, la liste de tous les NAME exportés dans ce shell " #~ "s'affiche.\n" #~ " L'argument « -n » permet de supprimer la propriété d'export des NAME " @@ -5280,8 +5410,8 @@ msgstr "" #~ "aucun\n" #~ " argument n'est donné ou si « -p » est fourni, la liste de tous les " #~ "noms\n" -#~ " en lecture seule est affichée. L'option « -a » indique de traiter tous " -#~ "les\n" +#~ " en lecture seule est affichée. L'option « -a » indique de traiter " +#~ "tous les\n" #~ " NAME comme des variables tableaux. L'argument « -- » désactive le " #~ "traitement\n" #~ " des option suivantes." @@ -5344,8 +5474,10 @@ msgstr "" #~ "un\n" #~ " nom de commande.\n" #~ " \n" -#~ " Si l'option « -t » est utilisée, « type » affiche un simple mot parmi\n" -#~ " « alias », « keyword », « function », « builtin », « file » ou « », si\n" +#~ " Si l'option « -t » est utilisée, « type » affiche un simple mot " +#~ "parmi\n" +#~ " « alias », « keyword », « function », « builtin », « file » ou « », " +#~ "si\n" #~ " NAME est respectivement un alias, un mot réservé du shell, une " #~ "fonction\n" #~ " du shell, une primitive, un fichier du disque, ou s'il est inconnu.\n" @@ -5358,8 +5490,8 @@ msgstr "" #~ " \n" #~ " Si « -a » est utilisé, « type » affiche tous les emplacements qui " #~ "contiennent\n" -#~ " un exécutable nommé « file ». Ceci inclut les alias, les primitives et " -#~ "les\n" +#~ " un exécutable nommé « file ». Ceci inclut les alias, les primitives " +#~ "et les\n" #~ " fonctions si, et seulement si « -p » n'est pas également utilisé.\n" #~ " \n" #~ " L'indicateur « -P » force une recherche dans PATH pour chaque NAME " diff --git a/po/hu.gmo b/po/hu.gmo index 9ca0535a4f8f2581c69f7af03fe21cc41b453ca5..84214148d592c5425f4fbfa457df8e0dbc8485b3 100644 GIT binary patch delta 2101 zcmXZceQ1?c9Ki8&WAn~Um%Gl@w5?m--At?9>saZeB5M$~92JF7{;?t|B`9fBP(DU4 z*YJ-PLt?#*%E=@f6bmh|%v%3gD!3dG%+{15%Gx9>hEd;dJ7ar3=bY!f{Lb&3XMe5x z;nw72rfg^6XDfe~@Hek4gdsei=E2Vgl_6yCL#)OTY{XHl#k1(RbX5p>%tdd*Mbx*T z{kO;ZAYMxSQ)J#Gj8mwiVG0{CJ#ThkQ*;fs(0&KH(2KYP-$euX3=M1)=i?-%a0+Yi zEMACZywqA`sgT2J)(?gF;zp!z=!_li!@1NSj&8w))Stl$>_L(h`eMBwU0@JR-hL!G z;UHd&htW))LN|QQcGeH`34bx>F^f0h9K0W$@DVhSr_lhOkM-Bke(#`x>_K-nga+^l zy5J#no^NCOXyny_hqDdM|{TVbhGk68oaDZN()#zDn;E}^k=tQrenc0Px;Sjdr zG0b8m(K_!6blz2HV4djrjT!RqEq$DZtFVMd`Vo4@U&fB#;8N-n=mceq_A+Mh9&E-| zdSJ#@Y=kbX%RrLc^KDYRof4{hObE#8iP?=M8(Mt;Kq z9!@ld9@)=G+~FLuhwyi_n(Z=m$e|g$9?keVTbA0hK`aKVz6YfPX;m7Dv974}@ z4DC0Ge&@fSnV3ccyMVlUNz+IY!Xh-VW;BpCG$ZRVvG5QD#)fUU3E#x0FwMv8!rRc4 z?L;rp`_Y5Ak@|5gV1aGQ<+FjVMvv}hybe3jz)A@PcifLoFoLFL z44d&s^e)u!-^cfj$lRfT{$IEg9seAf;z6|E=U9%%(Ifc|y$io0zoDFT+OP6T3O20C r4KJ=(o=Sz@_PPJ2!f<=#sjA+$>N={5E3a-TWDBd>R<`c?v#$C-T&l_Z delta 2394 zcma*ne`wTo9LMqZ*{1EM^K_T4O~2L7U02JU+iF|UkLARYXhNAw!mjO_-EKR&?ref} zqf#o7PzlKv1S1zkHQFCBB%x9#g=G<0P>!`hAz6P+ETmu0m-n&Je~#NdKJV{7Ki;4B z=kwjfn&0ovp7Q6tZ2S!HTdChXvv=g>eDQOl(9DltVku7JQk=m>=r78RtHI^OtDHSp zPP_-z|4kQ<<1*qOka@HA7mWZ9%8JdZum&}-&AAcli62KL_y%5yAEOdDg-UD&OK=Wf zJ}kop=*Rh3?QB4nv{hKj`qu9LunC#NlCHxxEFgZ~xd#^#52A`Qf)vZfTzm+%&^XS+ zlSq+l0vF?HR3$GXTWvUii&@`lX;k29^e~EZ@fp;FFQ5{61(m>%i$6g1`v{fDG1ShE zqZ0TIwcsRbp0n~;N z6&}YH{0%(}lda}mi<)->DzPML{8N7FugkWZ2iM~;D$}n~XFTOP{({#KYm_FaMqS30 zxE}AtMm&J5ZQtW{_$z7y6_i&;)9h?RjbE3gq0IVFJJ^nzU>H@IF}wi}qjoamRMxsP zC8$b;P?c#%K9=E23+}{x+=uMJUPFx=L9LhljD~LK8TVi=*)$P{@Mer+#>YTpZCglZ zj?Y4<_qZAPSO;I)Q3|#5mrxZw=$`+K>Yu;FjE@ER;tpi(HX54n0n`MWF@)QZkG<bDLxPY>z{w;_4kPGoPk%Q=MPVq;jW_x~#zY|bW-kuRqXQ zRJXD=((FYVS{mzzHU&y&bLxxrdWqQPSlT-uPeo}yn(R(Q6Mc{6vYU*j$vBrD?f?G1 SB}#f1_cc4mr4G;2_\n" "Language-Team: Hungarian \n" @@ -19,50 +19,55 @@ msgstr "" msgid "bad array subscript" msgstr "hibás tömb a tömbindexben" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%c%c: rossz opció" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: nem lehet hozzárendelni nem szám indexet" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: nem lehet létrehozni: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%c%c: rossz opció" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -113,6 +118,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -126,7 +146,7 @@ msgstr "" msgid "line %d: " msgstr "foglalat %3d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "írás" @@ -136,11 +156,11 @@ msgstr " msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "túl sok argumentum" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, fuzzy, c-format msgid "%s: option requires an argument" msgstr "az opció paramétert igényel:-" @@ -155,7 +175,7 @@ msgstr "" msgid "%s: not found" msgstr "%s: parancs nem található" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, fuzzy, c-format msgid "%s: invalid option" msgstr "%c%c: rossz opció" @@ -180,7 +200,7 @@ msgstr "rossz jel(signal) sz msgid "invalid hex number" msgstr "rossz jel(signal) szám" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 #, fuzzy msgid "invalid number" msgstr "rossz jel(signal) szám" @@ -195,7 +215,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s Csak olvasható változó" @@ -270,26 +290,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: Nem egyértelmû átirányítás" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -298,21 +318,21 @@ msgstr "" msgid "can only be used in a function" msgstr "A local-t csak funkción belül lehet használni, létrehozott változó NÉV" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s Csak olvasható funkció" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, fuzzy, c-format msgid "%s: cannot destroy array variables in this way" msgstr "$%s így nem lehet hozzárendelni" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -341,8 +361,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: nem lehet létrehozni: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: egy könyvtár" @@ -357,7 +377,8 @@ msgstr "%s: nem futtathat msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: nem futtatható bináris fájl" @@ -386,16 +407,16 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 #, fuzzy msgid "no command found" msgstr "%s: parancs nem található" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, fuzzy, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: nem lehet létrehozni: %s" @@ -485,12 +506,12 @@ msgstr "%s eg msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 #, fuzzy msgid "Unknown error" msgstr "Ismeretlen hiba %d" @@ -499,56 +520,61 @@ msgstr "Ismeretlen hiba %d" msgid "expression expected" msgstr "várható kifejezés" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s felszabadított változó" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%c%c: rossz opció" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%c%c: rossz opció" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "rossz jel(signal) szám" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s felszabadított változó" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -641,12 +667,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, fuzzy, c-format msgid "read error: %d: %s" msgstr "Csõ (pipe)hiba %s" @@ -685,11 +711,11 @@ msgstr "%s Csak olvashat msgid "shift count" msgstr "shift [n]" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -782,81 +808,81 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, fuzzy, c-format msgid "last command: %s\n" msgstr "újra futtathatja az utolsó parancsot." -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 #, fuzzy msgid "unknown command error" msgstr "Ismeretlen hiba %d" -#: error.c:406 +#: error.c:407 #, fuzzy msgid "bad command type" msgstr "parancsként használja." -#: error.c:407 +#: error.c:408 #, fuzzy msgid "bad connector" msgstr "rossz csatlakozás `%d'" -#: error.c:408 +#: error.c:409 #, fuzzy msgid "bad jump" msgstr "Rossz ugrás %d" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s felszabadított változó" #: eval.c:181 #, fuzzy, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "%c túl sokáig nem csinált semmit:automatikus kilépés\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "Csõ (pipe)hiba %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: fenntartva: parancs nem tartalmazhat '/' karaktert" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: parancs nem található" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, fuzzy, c-format msgid "%s: %s: bad interpreter" msgstr "%s: egy könyvtár" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, fuzzy, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "nem másolható a fd %d fd 0: %s-re" @@ -903,29 +929,29 @@ msgstr "" msgid "missing `)'" msgstr "rossz ')'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 #, fuzzy msgid "syntax error: operand expected" msgstr "szintaktikai hiba: váratlan fájl vég" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, fuzzy, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s: %s: %s (a hiba jele \"%s\")\n" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "az érték túl nagy" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s egész szám szükséges" @@ -935,7 +961,7 @@ msgstr "%s eg msgid "getcwd: cannot access parent directories" msgstr "getwd: nem elérhetõ a szülõ könyvtár" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "nem másolható a fd %d fd 0: %s-re" @@ -989,7 +1015,7 @@ msgstr "Ismeretlen #%d Szign msgid "Done" msgstr "Kész" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Megállítva" @@ -1026,72 +1052,76 @@ msgstr "(mem msgid " (wd: %s)" msgstr "(wd most: %s)\n" -#: jobs.c:1771 +#: jobs.c:1776 #, fuzzy, c-format msgid "child setpgid (%ld to %ld)" msgstr "gyermek-folyamat setpgid (%d -ról %d-ra) hiba %d: %s\n" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, fuzzy, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "várjon:a %d nem utóda ennek a parancsértelmezõnek" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: munkafolyamat megszakadt" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "foglalat %3d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "(memória kiírás)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd most: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 #, fuzzy msgid "initialize_job_control: getpgrp failed" msgstr "initialize_jobs: getpgrp sikertelen: %s" -#: jobs.c:3623 +#: jobs.c:3639 #, fuzzy msgid "initialize_job_control: line discipline" msgstr "initialize_jobs: sor fegyelem %s" -#: jobs.c:3633 +#: jobs.c:3649 #, fuzzy msgid "initialize_job_control: setpgid" msgstr "initialize_jobs: getpgrp sikertelen: %s" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "nincs munkafolyamat ellenõrzés ezen a parancsértelmezõn" @@ -1182,6 +1212,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Önnek levele van $_ -ben" @@ -1195,138 +1245,138 @@ msgstr " msgid "The mail in %s has been read\n" msgstr "A %s levelet már elolvasta\n" -#: make_cmd.c:322 +#: make_cmd.c:323 #, fuzzy msgid "syntax error: arithmetic expression required" msgstr "szintaktikai hiba a kifelyezésben" -#: make_cmd.c:324 +#: make_cmd.c:325 #, fuzzy msgid "syntax error: `;' unexpected" msgstr "szintaktikai hiba: váratlan fájl vég" -#: make_cmd.c:325 +#: make_cmd.c:326 #, fuzzy, c-format msgid "syntax error: `((%s))'" msgstr "szintaktikai hiba" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: rossz utasítás típus %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, fuzzy, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "váratlan EOF amíg vizsgáltam a `%c'-t" -#: parse.y:3722 +#: parse.y:3951 #, fuzzy msgid "unexpected EOF while looking for `]]'" msgstr "váratlan EOF amíg vizsgáltam a `%c'-t" -#: parse.y:3727 +#: parse.y:3956 #, fuzzy, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "szintaktikai hiba a váratlan %s vezérjel körül" -#: parse.y:3731 +#: parse.y:3960 #, fuzzy msgid "syntax error in conditional expression" msgstr "szintaktikai hiba a kifelyezésben" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 #, fuzzy msgid "expected `)'" msgstr "')' szükséges" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, fuzzy, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "%s:bináris mûvelet szükséges" -#: parse.y:3889 +#: parse.y:4124 #, fuzzy msgid "conditional binary operator expected" msgstr "%s:bináris mûvelet szükséges" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, fuzzy, c-format msgid "unexpected token `%c' in conditional command" msgstr "`:' túllépte a kifelyezés feltételeit" -#: parse.y:3924 +#: parse.y:4164 #, fuzzy, c-format msgid "unexpected token `%s' in conditional command" msgstr "`:' túllépte a kifelyezés feltételeit" -#: parse.y:3928 +#: parse.y:4168 #, fuzzy, c-format msgid "unexpected token %d in conditional command" msgstr "`:' túllépte a kifelyezés feltételeit" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "szintaktikai hiba a váratlan %s vezérjel körül" -#: parse.y:5213 +#: parse.y:5477 #, fuzzy, c-format msgid "syntax error near `%s'" msgstr "szintaktikai hiba a váratlan %s vezérjel körül" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "szintaktikai hiba: váratlan fájl vég" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "szintaktikai hiba" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Használja \"%s\" a parancsértelmezõ elhagyásához.\n" -#: parse.y:5447 +#: parse.y:5711 #, fuzzy msgid "unexpected EOF while looking for matching `)'" msgstr "váratlan EOF amíg vizsgáltam a `%c'-t" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1336,72 +1386,91 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: rossz csatlakozás `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, fuzzy, c-format msgid "%s: ambiguous redirect" msgstr "%s: Nem egyértelmû átirányítás" -#: redir.c:152 +#: redir.c:170 #, fuzzy, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: Nem lehet megsemmisíteni létezõ fájlt‘" -#: redir.c:157 +#: redir.c:175 #, fuzzy, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: fenntartva: parancs nem tartalmazhat '/' karaktert" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "nem lehet létrehozni a pipe-ot feladat behelyettesítéshez: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: nem lehet a listához rendelni az elemet" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 #, fuzzy msgid "redirection error: cannot duplicate fd" msgstr "átirányítási hiba" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, fuzzy, c-format msgid "%c%c: invalid option" msgstr "%c%c: rossz opció" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Nincs nevem!" -#: shell.c:1778 +#: shell.c:1793 #, fuzzy, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU %s, verzió %s\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1410,393 +1479,414 @@ msgstr "" "Használat:\t%s [GNU hosszú opció] [opció] ...\n" "\t%s [GNU hosszú opció] [opció] parancs fájl ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU hosszú opciók:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Parancsértelmezõ opciók:\n" -#: shell.c:1786 +#: shell.c:1801 #, fuzzy msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD vagy -c parancs\t\t(csak végrehajtható)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s vagy -o opciók\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Írja be a `%s -c \"help set\"' ha több információra van szüksége a " "parancsértelmezõ opcióival kapcsolatban.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Írja be a `%s -c \"help set\"' ha több információra van szüksége a " "parancsértelmezõ beépített utasításaival kapcsolatban.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Hamis jel" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Bontás" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Megszakítás" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Kilépés" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Érvénytelen utasítás" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT nyomkövetés/csapda" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Utasítás MEGSZAKÍTÁSA" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "EMT utasítás" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Lebegõ pontos esemény" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Kilõve" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Busz hiba" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Szegmens hiba" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Rossz rendszerhívás" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Törött csõ (pipe)" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Emlékeztetés" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "ki." -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Sürgõs IO feltétel" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Megállítva (jellel)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Folytatás" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Gyermek objektum meghalt vagy megállt" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Megállítva (tty bemenet)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Megállítva (tty kimenet)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O kész" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "CPU határ" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Fájl határ" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Emlékeztetés (virtuális)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Emlékeztetés (profil)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Ablak megváltozott" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Felvétel zárolva" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Felhasználói jel 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Felhasználói jel 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT bemeneti adat függõben" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "áram kimaradás várható" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "rendszer sérülés várható" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "feladat átadása másik CPU-nak" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "programozási hiba" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HFT felügyelõ mód engedélyezve" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT felügyelõ mód visszavonva" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFT hangsorozat behelyezve" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Ismeretlen # Szignál" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Ismeretlen #%d Szignál" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, fuzzy, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "rossz behelyettesítés: ne a %s be a %s-t" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: nem lehet a listához rendelni az elemet" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 #, fuzzy msgid "cannot make pipe for process substitution" msgstr "nem lehet létrehozni a pipe-ot feladat behelyettesítéshez: %s" -#: subst.c:4504 +#: subst.c:4802 #, fuzzy msgid "cannot make child for process substitution" msgstr "" "nem lehet létrehozni a gyermekfolyamatott feladat behelyettesítéshez: %s" -#: subst.c:4549 +#: subst.c:4847 #, fuzzy, c-format msgid "cannot open named pipe %s for reading" msgstr "nem lehet létrehozni a %s \"named pipe\"-ot a %s-nek: %s" -#: subst.c:4551 +#: subst.c:4849 #, fuzzy, c-format msgid "cannot open named pipe %s for writing" msgstr "nem lehet létrehozni a %s \"named pipe\"-ot a %s-nek: %s" -#: subst.c:4569 +#: subst.c:4867 #, fuzzy, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "nem lehet másolni a %s \"named pipe\"-ot mint fd %d :%s" -#: subst.c:4765 +#: subst.c:5063 #, fuzzy msgid "cannot make pipe for command substitution" msgstr "nem lehet létrehozni a \"pipe\"-ot parancs behelyettesítéséhez: %s" -#: subst.c:4799 +#: subst.c:5097 #, fuzzy msgid "cannot make child for command substitution" msgstr "" "nem lehet létrehozni a gyermekfolyamatot a parancs behelyettesítéséhez: %s" -#: subst.c:4816 +#: subst.c:5114 #, fuzzy msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: nem lehet másolni a \"pipe\"-ot mint fd 1: %s" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s paraméter semmis vagy nincs beállítva" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s szövegrész kifejezés < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s rossz behelyettesítés" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s így nem lehet hozzárendelni" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "rossz behelyettesítés: ne a %s be a %s-t" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "paraméter szükséges" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s egész szám szükséges" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "')' szükséges" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "')' szükséges, %s-t találtam" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s unáris mûvelet szükséges" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s:bináris mûvelet szükséges" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "hiányzó ']'" -#: trap.c:201 +#: trap.c:203 #, fuzzy msgid "invalid signal number" msgstr "rossz jel(signal) szám" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, fuzzy, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: Rossz jel(signal) %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "hiba a %s funkció definíció importálásakor" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s paraméter semmis vagy nincs beállítva" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: nem lehet létrehozni: %s" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1807,60 +1897,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, fuzzy, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU %s, verzió %s\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" - -#: xmalloc.c:94 -#, fuzzy, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "" -#: xmalloc.c:114 +#: version2.c:87 #, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" - -#: xmalloc.c:116 -#, fuzzy, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" -#: xmalloc.c:152 +#: xmalloc.c:93 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: cannot allocate %lu bytes" msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" -#: xmalloc.c:174 +#: xmalloc.c:163 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" -#: xmalloc.c:176 +#: xmalloc.c:165 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -1994,7 +2076,7 @@ msgstr "hash [-r] [-p #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "help [minta ...]" #: builtins.c:121 @@ -2029,8 +2111,8 @@ msgstr "let arg [arg ...]" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2215,9 +2297,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2228,7 +2310,7 @@ msgstr "" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "type [-apt] név [név ...]" #: builtins.c:240 @@ -2960,7 +3042,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2980,7 +3066,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2992,7 +3078,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3074,7 +3160,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3094,7 +3180,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3113,7 +3199,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3133,7 +3219,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3144,7 +3230,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3158,7 +3244,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3172,7 +3258,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3249,7 +3335,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3259,7 +3345,7 @@ msgid "" msgstr "" "egy ']' szövegkonstansnak kell lennie, hogy párban legyen a nyitó '['-val." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3271,7 +3357,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3307,7 +3393,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3337,7 +3423,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3381,7 +3467,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3399,7 +3485,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3416,7 +3502,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3430,7 +3516,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3443,7 +3529,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3460,7 +3546,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3480,7 +3566,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3496,7 +3582,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -3508,7 +3594,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Feltételesen futtatja a PARANCSOT ha a SZÓ megegyezik a MINTÁVAL. A" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3529,7 +3615,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -3541,7 +3627,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Kibontja és végrehajtja a PARANCSOT amíg az utolsó parancs a " -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -3553,7 +3639,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Kibontja és végrehajtja a PARANCSOT amíg az utolsó parancs a " -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3566,7 +3652,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3580,7 +3666,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -3592,7 +3678,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Parancsok halmazát futtatja egy csoportban. Ez az egyik módja az" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3606,7 +3692,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3617,7 +3703,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3645,7 +3731,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3699,7 +3785,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3730,7 +3816,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3757,7 +3843,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3786,7 +3872,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3807,7 +3893,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3837,7 +3923,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3851,15 +3937,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3872,7 +3963,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3885,6 +3976,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3901,15 +3994,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3936,16 +4029,29 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#, fuzzy +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#, fuzzy +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + #~ msgid "Display the list of currently remembered directories. Directories" #~ msgstr "Megjeleníti a jelenleg feljegyzett könyvtárakat. Könyvtárak" diff --git a/po/id.gmo b/po/id.gmo index 1b7447fe408d33fe471412e5d47fe16401ede1b5..53df6adb137b0ccff7547fb2f1e40c1fafbc7641 100644 GIT binary patch delta 14697 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�=57W3A@3eD4-SK2C`Hyone+iD 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, 2008. +# Arif E. Nugroho , 2008, 2009. # msgid "" msgstr "" -"Project-Id-Version: bash 4.0-pre1\n" +"Project-Id-Version: bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2008-09-06 17:41+0700\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-03-21 11:40+0700\n" "Last-Translator: Arif E. Nugroho \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" @@ -20,53 +20,58 @@ msgstr "" msgid "bad array subscript" msgstr "array subscript buruk" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: tidak dapat mengubah index ke array yang berassosiasi" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: kunci array assosiasi tidak valid" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: tidak dapat mengassign ke index tidak-numeric" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "%s: %s: harus menggunakan subscript ketika memberikan assosiasi array" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: tidak dapat membuat: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: tidak dapat menemukan keymap untuk perintah" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: bukan karakter whitespace (spasi) pertama ditemukan `\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "tidak menutup '%c' dalam %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: hilang pemisah colon" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "'%s': nama keymap tidak valid" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "pengubahan baris tidak aktif" #: builtins/bind.def:206 #, c-format @@ -107,12 +112,29 @@ msgid "only meaningful in a `for', `while', or `until' loop" msgstr "hanya berarti dalam sebuah `for', `while', atau `until'loop" #: builtins/caller.def:133 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" " Without EXPR, returns " -msgstr "Mengembalikan context dari panggilan subroutine saat ini." +msgstr "" +"Mengembalikan konteks dari panggilan subroutine saat ini.\n" +" \n" +" Tanpa EXPR, kembali " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -127,7 +149,7 @@ msgstr "OLDPWD tidak diset" msgid "line %d: " msgstr "baris %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "peringatan: " @@ -137,14 +159,14 @@ msgstr "peringatan: " msgid "%s: usage: " msgstr "%s: penggunaan: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "terlalu banyak argumen" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" -msgstr "%s: opsi membutuhkan sebuah argumen" +msgstr "%s: pilihan membutuhkan sebuah argumen" #: builtins/common.c:198 #, c-format @@ -156,15 +178,15 @@ msgstr "%s: argumen numeric dibutuhkan" msgid "%s: not found" msgstr "%s: tidak ditemukan" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" -msgstr "%s: opsi tidak valid" +msgstr "%s: pilihan tidak valid" #: builtins/common.c:221 #, c-format msgid "%s: invalid option name" -msgstr "%s: nama opsi tidak valid" +msgstr "%s: nama pilihan tidak valid" #: builtins/common.c:228 general.c:231 general.c:236 #, c-format @@ -179,7 +201,7 @@ msgstr "nomor oktal tidak valid" msgid "invalid hex number" msgstr "nomor hexa tidak valid" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "nomor tidak valid" @@ -193,7 +215,7 @@ msgstr "%s: spesifikasi sinyal tidak valid" msgid "`%s': not a pid or valid job spec" msgstr "`%s': bukan sebuah pid atau spesifikasi pekerjaan yang valid" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: variabel baca-saja" @@ -248,12 +270,12 @@ msgstr "gagal menulis: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "error menentukan atribut terminal: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "error mendapatkan atribut terminal: %s" #: builtins/common.c:563 #, c-format @@ -265,26 +287,28 @@ msgstr "%s: error mengambil direktori saat ini: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: spesifikasi pekerjaan ambigu" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: nama aksi tidak valid" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: tidak ada spesifikasi completion" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" -msgstr "peringatan: opsi -F mungkin tidak bekerja seperti yang anda harapkan" +msgstr "" +"peringatan: pilihan -F mungkin tidak bekerja seperti yang anda harapkan" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" -msgstr "peringatan: opsi -C mungkin tidak bekerja seperti yang anda harapkan" +msgstr "" +"peringatan: pilihan -C mungkin tidak bekerja seperti yang anda harapkan" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "saat ini sedang tidak menjalankan fungsi completion" @@ -292,21 +316,21 @@ msgstr "saat ini sedang tidak menjalankan fungsi completion" msgid "can only be used in a function" msgstr "hanya dapat digunakan dalam sebuah fungsi" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "tidak dapat menggunakan `-f' untuk membuat fungsi" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: fungsi baca-saja" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: tidak dapat menghapus variabel array secara ini" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: tidak dapat mengubah assosiasi ke array index" @@ -335,8 +359,8 @@ msgstr "%s: bukan dinamically loaded" msgid "%s: cannot delete: %s" msgstr "%s: tidak dapat menghapus: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: bukan sebuah direktori" @@ -351,7 +375,8 @@ msgstr "%s: bukan sebuah file umum" msgid "%s: file is too large" msgstr "%s: file terlalu besar" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: tidak dapat menjalankan berkas binary" @@ -380,15 +405,15 @@ msgstr "Ada pekerjaan yang terhenti.\n" msgid "There are running jobs.\n" msgstr "Ada pekerjaan yang sedang berjalan.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "perintah tidak ditemukan" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "spesifikasi sejarah" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: tidak dapat membuka file sementara: %s" @@ -405,12 +430,12 @@ msgstr "pekerjaan %d dimulai tanpa pengontrol pekerjaan" #: builtins/getopt.c:110 #, c-format msgid "%s: illegal option -- %c\n" -msgstr "%s: opsi tidak legal -- %c\n" +msgstr "%s: pilihan tidak legal -- %c\n" #: builtins/getopt.c:111 #, c-format msgid "%s: option requires an argument -- %c\n" -msgstr "%s: opsi membutuhkan sebuah argumen -- %c\n" +msgstr "%s: pilihan membutuhkan sebuah argumen -- %c\n" #: builtins/hash.def:92 msgid "hashing disabled" @@ -471,7 +496,7 @@ msgstr "" #: builtins/history.def:154 msgid "cannot use more than one of -anrw" -msgstr "tidak dapat menggunakan lebih dari satu opsi dari -anrw" +msgstr "tidak dapat menggunakan lebih dari satu pilihan dari -anrw" #: builtins/history.def:186 msgid "history position" @@ -489,14 +514,14 @@ msgstr "%s: inlib gagal" #: builtins/jobs.def:109 msgid "no other options allowed with `-x'" -msgstr "tidak ada opsi lain yang diperbolehkan dengan `-x'" +msgstr "tidak ada pilihan lain yang diperbolehkan dengan `-x'" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argumen harus diproses atau ID pekerjaan" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Kesalahan tidak diketahui" @@ -504,55 +529,60 @@ msgstr "Kesalahan tidak diketahui" msgid "expression expected" msgstr "diduga sebuah ekspresi" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: bukan sebuah variabel array" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: spesifikasi file deskripsi tidak valid" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: file deskriptor %s tidak valid" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: jumlah baris tidak valid" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: asal array tidak valid" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: nama aksi tidak valid" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "nama variabel array kosong" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "bantuan array variabel dibutuhkan" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "`%s': hilang karakter format" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "`%c': karakter format tidak valid" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "peringatan: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "hilang digit hexa untuk \\x" @@ -600,7 +630,7 @@ msgstr "" "memperoleh\n" " backup melalui daftar dengan perintah `popd'.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -c\tmenghapus direktori stact dengan menghapus seluruh elemen\n" " -l\tjangan menampilkan versi dengan tilde dari direktori relative\n" " \tke direkori rumah anda\n" @@ -611,11 +641,11 @@ msgstr "" " Argumen:\n" " +N\tMenampilkan masukan ke N dihitung dari kiri dari daftar yang " "ditampilkan oleh\n" -" \tdirs ketika dipanggil tanpa opsi, dimulai dari nol.\n" +" \tdirs ketika dipanggil tanpa pilihan, dimulai dari nol.\n" " \n" " -N\tMenampilkan masukan ke N dihitung dari kanan dari daftar yang " "ditampilkan oleh\n" -" \tdirs ketika dipanggil tanpa opsi, dimulai dari nol." +" \tdirs ketika dipanggil tanpa pilihan, dimulai dari nol." #: builtins/pushd.def:705 msgid "" @@ -645,7 +675,7 @@ msgstr "" " stack, membuah top baru dari stack dari working direktori saat ini.\n" " Tanpa argumen, menukar top dari dua direktori.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n\tmenekan perubahan normal dari direktori ketika menambahkan " "direktori\n" " \tke stack, jadi hanya stack yang dimanipulasi.\n" @@ -688,7 +718,7 @@ msgstr "" " menghapus top direktori dari stack, dan cd's ke top\n" " direktori baru.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n\tmenekan perubahan normal dari direktori ketika menghapus direktori\n" " \tdari stack, jadi hanya stack yang dimanipulasi.\n" " \n" @@ -700,12 +730,12 @@ msgstr "" " \n" " Builtin `dirs' menampilkan direktori stack." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: spesifikasi timeout tidak valid" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "error baca: %d: %s" @@ -742,14 +772,14 @@ msgstr "%s: bukan sebuah fungsi" msgid "shift count" msgstr "shift terhitung" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" -msgstr "tidak dapat menset dan menunset opsi shell secara bersamaan" +msgstr "tidak dapat menset dan menunset pilihan shell secara bersamaan" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" -msgstr "%s: nama opsi shell tidak valid" +msgstr "%s: nama pilihan shell tidak valid" #: builtins/source.def:128 msgid "filename argument required" @@ -836,77 +866,77 @@ msgstr "`%c': operator mode symbolic tidak valid" msgid "`%c': invalid symbolic mode character" msgstr "`%c': mode karakter symbolic tidak valid" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " baris " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "perintah terakhir: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "membatalkan..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "perintah error tidak diketahui" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "tipe perintah buruk" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "konektor buruk" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "lompat buruk" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: variabel tidak terikat" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "kehabisan waktu menunggu masukan: otomatis-keluar\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "tidak dapat menyalurkan masukan standar dari /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: `%c': karakter format tidak valid" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "pipe error" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" "%s: dibatasi: tidak dapat menspesifikasikan '/' dalam nama nama perintah" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: perintah tidak ditemukan" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: interpreter buruk" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "tidak dapat menduplikasikan fd %d ke fd %d" @@ -951,28 +981,28 @@ msgstr "idenfier diharapkan setelah pre-increment atau pre-decrement" msgid "missing `)'" msgstr "hilang `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "syntax error: operand diharapkan" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "syntax error: operator arithmetic tidak valid" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (error token adalah \"%s\")" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "basis arithmetic tidak valid" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "nilai terlalu besar untuk basis" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: expresi error\n" @@ -981,7 +1011,7 @@ msgstr "%s: expresi error\n" msgid "getcwd: cannot access parent directories" msgstr "getcwd: tidak dapat mengakses direktori orang tua" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "tidak dapat mereset mode nodelay untuk fd %d" @@ -1036,7 +1066,7 @@ msgstr "sinyal %d" msgid "Done" msgstr "Selesai" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Terhenti" @@ -1073,69 +1103,73 @@ msgstr "(core didump) " msgid " (wd: %s)" msgstr " (wd: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "anak setpgid (%ld ke %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld bukan sebuah anak dari shell ini" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Tidak ada catatan untuk proses %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: pekerjaan %d terhenti" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: pekerjaan telah selesai" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: pekerjaan %d sudah berjalan di belakang (background)" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: baris %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (core didump)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd sekarang: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: getpgrp gagal" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: baris disiplin" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "tidak dapat menset terminal proses grup (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "tidak ada pengontrol pekerjaan dalam shell ini" @@ -1228,6 +1262,26 @@ msgstr "%s: spesifikasi jalur network buruk" msgid "network operations not supported" msgstr "operasi jaringan tidak dilayani" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: tidak dapat mengalokasikan %lu bytes" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: tidak dapat mengalokasikan %lu bytes" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Anda memiliki surat dalam $_" @@ -1241,132 +1295,132 @@ msgstr "Anda memiliki surat baru dalam $_" msgid "The mail in %s has been read\n" msgstr "Surat dalam %s telah dibaca\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "syntax error: membutuhkan ekspresi arithmetic" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "syntax error: `;' tidak terduga" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "syntax error: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: tipe instruksi buruk %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" "dokumen-disini di baris %d dibatasi oleh akhir-dari-berkas (diinginkan `%s')" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: instruksi redireksi `%d' diluar dari jangkauan" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "EOF tidak terduga ketika mencari untuk pencocokan `%c'" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "EOF tidak terduga ketika mencari untuk `]]'" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error dalam ekspresi kondisional: tanda `%s' tidak terduga" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "syntax error dalam ekspresi kondisional" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "tanda `%s' tidak terduga, diduga `)'" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "diduga `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "argumen tidak terduga `%s' ke operator kondisional unary" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "argumen tidak terduga untuk operasi unary kondisional" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "tanda `%s' tidak terduga, operator binary kondisional diduga" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "operator binary kondisional diduga" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "argumen `%s' tidak terduga ke operator binary kondisional" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "argumen tidak terduga ke operasi binary kondisional" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "tanda `%c' tidak terduga dalam perintah kondisional" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "tanda `%s' tidak terduga dalam perintah kondisional" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "tanda %d tidak terduga dalam perintah kondisional" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntax error didekat tanda `%s' yang tidak terduga" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "syntax error didekat `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "syntax error: tidak terduga diakhir dari berkas" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "syntax error" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Gunakan \"%s\" untuk meninggalkan shell.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "EOF tidak terduga ketika mencari untuk pencocokan ')'" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion: fungsi `%s' tidak ditemukan" @@ -1376,406 +1430,431 @@ msgstr "completion: fungsi `%s' tidak ditemukan" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: konektor buruk `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: file deskriptor %s tidak valid" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: '%c': format karakter tidak valid" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "berkas deskripsi diluar dari jangkauan" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: redirect ambigu" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: tidak dapat menulis berkas yang sudah ada" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restricted: tidak dapat meredirect keluaran" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "tidak dapat membuat berkas sementara untuk dokumen disini: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: tidak dapat meng-assign daftar kedalam anggoya array" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port tidak dilayani tanpa jaringan" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "redirection error: tidak dapat menduplikasi fd" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "tidak dapat menemukan /tmp, tolong buat!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp harus berupa sebuah nama direktori yang valid" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" -msgstr "%c%c: opsi tidak valid" +msgstr "%c%c: pilihan tidak valid" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Aku tidak memiliki nama!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, versi %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" msgstr "" -"Penggunaan:\t%s [GNU opsi panjang] [opsi] ...\n" -"\t%s [GNU opsi panjang] [opsi] berkas-script ...\n" +"Penggunaan:\t%s [GNU pilihan panjang] [pilihan] ...\n" +"\t%s [GNU pilihan panjang] [pilihan] berkas-script ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" -msgstr "GNU opsi panjang:\n" +msgstr "GNU pilihan panjang:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" -msgstr "Opsi shell:\n" +msgstr "Pilihan shell:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD atau -c perintah atau -O shopt_option\t\t(hanya pemanggilan)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" -msgstr "\t-%s atau opsi -o\n" +msgstr "\t-%s atau pilihan -o\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -"Ketik `%s -c \"help set\"' untuk informasi lebih lanjut mengenai opsi " +"Ketik `%s -c \"help set\"' untuk informasi lebih lanjut mengenai pilihan " "shell.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Ketik `%s -c help' untuk informasi lebih lanjut mengenai perintah builting " "shell.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Gunakan perintah 'bashbug' untuk melaporkan bugs.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: operasi tidak valid" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Sinyal palsu" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Hangup" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Interupsi" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Berhenti" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Instruksi ilegal" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT trace/trap" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Instruksi ABORT" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "Instruksi EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Floating point exception" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Dibunuh" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Bus error" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Kesalahan segmentasi" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Pemanggilan sistem buruk" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Pipe rusak" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Alarm clock" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Selesai" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Kodisi IO penting" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Terhenti (sinyal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Melanjutkan" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Anak tewas atau berhenti" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Terhenti (tty input)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Terhenti (tty output)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O siap" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "Batas CPU" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Batas berkas" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarm (virtual)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarm (profile)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Window berubah" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Catatan terkunci" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Sinyal pengguna 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Sinyal pengguna 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT masukan data tertunda" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "Kelihatannya akan terjadi kegagalan power suply" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "Kelihatannya akan terjadi kerusakan sistem" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "pindahkan proses ke CPU lain" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "error dalam pemrograman" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HFT mode monitoring diberikan" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT mode monitoring ditarik" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFTP sound sequence telah selesai" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "Permintaan informasi" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Sinyal tidak diketahui #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Sinyal tidak diketahui #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "substitusi buruk: tidak ada penutupan `%s' dalam %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: tidak dapat meng-assign daftar kedalam anggoya array" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "tidak dapat membuat pipe untuk proses substitusi" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "tidak dapat membuat anak untuk proses substitusi" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "tidak dapat membuka named pipe %s untuk membaca" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "tidak dapat membukan named pipe %s untuk menulis" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "tidak dapat menduplikasi nama pipe %s sebagai fd %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "tidak dapat membuat pipe untuk perintah substitusi" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "tidak dapat membuat anak untuk perintah substitusi" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: tidak dapat menduplikasikan pipe sebagi fd 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter kosong atau tidak diset" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: substring expresi < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: substitusi buruk" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: tidak dapat meng-assign dengan cara ini" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "substitusi buruk: tidak ada penutupan \"\" dalam %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "tidak cocok: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "argumen diharapkan" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: expresi integer diduga" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "')' diduga" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "`)' diduga, ditemukan %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: operator unary diduga" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: operator binary diduga" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "hilang `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "nomor sinyal tidak valid" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: nilai buruk dalam trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1783,58 +1862,72 @@ msgstr "" "run_pending_traps: sinyal handler adalah SIG_DFL, mengirimkan kembali %d (%" "s) kediri sendiri" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: sinyal buruk %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "error mengimpor definisi fungsi untuk `%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "level shell (%d) terlalu tinggi, mereset ke 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: tidak ada context fungsi di scope ini" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: tidak ada context fungsi dalam scope ini" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parameter kosong atau tidak diset" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "karakter %d tidak valid dalam exporstr untuk %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "bukan `=' dalam exportstr untuk %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" "pop_var_context: kepala dari shell_variables bukan sebuah fungsi cbntext" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: bukan global_variable context" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope: kepala dari shell_variables bukan sebuah scope lingkungan " "sementara" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: tidak dapat membuka: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: file deskriptor %s tidak valid" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Hak Cipta (C) 2008 Free Software Foundation, Inc." +msgstr "Hak Cipta (C) 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" @@ -1844,67 +1937,58 @@ msgstr "" "Lisensi GPLv3+: GNU GPL versi 3 atau sesudahnya \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, versi %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" "Ini adalah perangkat lunak bebas; anda bebas untuk mengubah dan " "mendistribusikannya.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "TIDAK ADA GARANSI, selama masih diijinkan oleh hukum yang berlaku.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: tidak dapat mengalokasikan %lu bytes (%lu bytes teralokasi)" - -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: tidak dapat mengalokasikan %lu bytes" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Hak Cipta (C) 2009 Free Software Foundation, Inc." -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -"xrealloc: tidak dapat menrealokasikan %lu bytes (%lu bytes teralokasikan)" +"Lisensi GPLv3+: GNU GPL versi 3 atau sesudahnya \n" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: tidak dapat mengalokasikan %lu bytes" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: tidak dapat mengalokasikan %lu bytes (%lu bytes teralokasi)" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: tidak dapat mengalokasikan %lu bytes" + +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" "xmalloc: %s:%d: tidak dapat mengalokasikan %lu bytes (%lu bytes teralokasi)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s: %d: tidak dapat teralokasi %lu bytes" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc: %s: %d: tidak dapat melakukan reallokasi %lu bytes (%lu bytes " -"teralokasi)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: tidak dapat mengalokasikan %lu bytes" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [name[=nilai] ... ]" @@ -1971,7 +2055,7 @@ msgstr "typeset [-aAfFilrtux] [-p] name[=nilai] ..." #: builtins.c:80 msgid "local [option] name[=value] ..." -msgstr "local [opsi] name[=nilai] ..." +msgstr "local [pilihan] name[=nilai] ..." #: builtins.c:83 msgid "echo [-neE] [arg ...]" @@ -2023,7 +2107,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p nama jalur] [-dt] [nama ...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "bantuan [-ds] [pola ...]" #: builtins.c:121 @@ -2055,9 +2140,10 @@ msgid "let arg [arg ...]" msgstr "biarkan arg [argumen ...]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a array] [-d pembatas] [-i text] [-n nchars] [-p prompt] [-t " "timeout] [-u fd] [name ...]" @@ -2068,7 +2154,7 @@ msgstr "return [n]" #: builtins.c:140 msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" -msgstr "set [-abefhkmnptuvxBCHP] [-o nama-opsi] [argumen ...]" +msgstr "set [-abefhkmnptuvxBCHP] [-o nama-pilihan] [argumen ...]" #: builtins.c:142 msgid "unset [-f] [-v] [name ...]" @@ -2172,7 +2258,7 @@ msgstr "until PERINTAH; do PERINTAH; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [NAMA] perintah [redireksi]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2219,26 +2305,28 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v var] format [argumen]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" -"complete [-abcdefgjksuv] [-pr] [-o opsi] [-A action] [-G globpat] [-W daftar " -"kata] [-F fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-o pilihan] [-A action] [-G globpat] [-W " +"daftar kata] [-F fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" #: builtins.c:233 msgid "" "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" msgstr "" -"compgen [-abcdefgjksuv] [-o opsi] [-A aksi] [-G globpat] [-W wordlist] [-F " -"fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] [word]" +"compgen [-abcdefgjksuv] [-o pilihan] [-A aksi] [-G globpat] [-W wordlist] [-" +"F fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] [word]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" -msgstr "compopt [-o|+o opsi] [nama ...]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" +msgstr "compopt [-o|+o pilihan] [nama ...]" #: builtins.c:240 msgid "" @@ -2249,12 +2337,11 @@ msgstr "" "quantum] [array]" #: builtins.c:242 -#, fuzzy msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" -"mapfile [-n jumlah] [-O asal] [-s jumlah] [-t] [-u fd] [-C callback] [-c " +"readarray [-n jumlah] [-O asal] [-s jumlah] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" #: builtins.c:254 @@ -2278,7 +2365,7 @@ msgid "" msgstr "" "Definisikan atau tampilkan aliases.\n" " \n" -" `alias' dengan tanpa argumen atau dengan opsi -p menampilkan daftar\n" +" `alias' dengan tanpa argumen atau dengan pilihan -p menampilkan daftar\n" " dari aliases dalam bentuk alias NAMA=NILAI di keluaran standar.\n" " \n" " Jika tidak, sebuah alias didefinisikan untuk setiap NAMA yang NILAI-nya " @@ -2287,7 +2374,7 @@ msgstr "" "diperikasi untuk\n" " pengganti alias ketika alias diexpand.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -p\tTampilkan seluruh alias yang terdefinisi dalam format yang " "berguna\n" " \n" @@ -2307,7 +2394,7 @@ msgid "" msgstr "" "Hapus setiap NAMA dari daftar yang mendefinisikan aliases.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a\thapus semua definisi alias.\n" " \n" " Mengembalikan sukses kecuali sebuah NAMA bukan alias yang sudah ada." @@ -2353,12 +2440,12 @@ msgstr "" "Set Readline kunci pengikat dan variabel.\n" " \n" " Ikat sebuah urutan kunci ke fungsi readline atau sebuah macro, atau set\n" -" sebuah variabel readline. Argumen bukan-opsi syntax yang equivalent\n" +" sebuah variabel readline. Argumen bukan-pilihan syntax yang equivalent\n" " yang ditemukan dalam ~/.inputrc, tetapi harus dilewatkan sebagai sebuah " "argumen tunggal:\n" " yang terikat '\"\\C-x\\C-r\": membaca kembali berkas inisialisasi.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -m keymap Gunakan `keymap' sebagai keymap untuk durasi dari " "perintah\n" " ini. Nama keymap yang diterima adalah emacs,\n" @@ -2390,7 +2477,7 @@ msgstr "" " \t\t\t\tKEYSEQ dimasuki.\n" " \n" " Status Keluar:\n" -" bind memberikan kembalian 0 kecuali sebuah opsi tidak dikenal " +" bind memberikan kembalian 0 kecuali sebuah pilihan tidak dikenal " "diberikan atau sebuah error terjadi." #: builtins.c:326 @@ -2532,11 +2619,11 @@ msgstr "" " maka CDPATH tidak digunakan.\n" " \n" " Jika direktori tidak ditemukan, dan\n" -" opsi shell cdable_vars' diset, maka coba kata sebagai sebuah nama\n" +" pilihan shell cdable_vars' diset, maka coba kata sebagai sebuah nama\n" " variabel. Jika variabel itu memiliki sebuah nilai, maka nilai dari " "variabel itu yang digunakan\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -L\tmemaksa link simbolik untuk diikuti\n" " -P\tgunakan struktur physical direktori tanpa mengikuti link\n" " symbolik\n" @@ -2564,15 +2651,16 @@ msgid "" msgstr "" "Menampilkan nama dari direktori yang digunakan sekarang.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -L\tmenampilkan nilai dari $PWD jika ini nama dari direktori\n" " \tyang digunakan sekarang\n" " -P\tmenampilkan direktori pisik, tanpa link simbolik apapun\n" " \n" -" Secara default, `pwd' berlaku seperi jika opsi `-L' dispesifikasikan.\n" +" Secara default, `pwd' berlaku seperi jika pilihan `-L' " +"dispesifikasikan.\n" " \n" " Status Keluar:\n" -" Mengembalikan 0 kecuali jika sebuah opsi tidak valid diberikan atau " +" Mengembalikan 0 kecuali jika sebuah pilihan tidak valid diberikan atau " "direktori sekarang\n" " tidak bisa dibaca." @@ -2643,7 +2731,7 @@ msgstr "" "perintah\n" " dalam disk ketika sebuah fungsi dengan nama yang sama ada.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -p\tgunakan sebuah nilai default untuk PATH yang menjamin untuk " "mencari seluruh\n" " \tpenggunaan stadar\n" @@ -2695,13 +2783,13 @@ msgstr "" "yang diberikan,\n" " tampilkan atribut dan nilai dari seluruh variabel.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -f\tbatasi aksi atau tampilkan nama fungsi dan definisi\n" " -F\tbatasi tampilan ke nama fungsi saja (tambahkan nomor baris dan\n" " \tsumber berkas ketika debugging)\n" " -p\ttampilkan atribut dan nilai dari setiap NAMA\n" " \n" -" Opsi yang menset atribut:\n" +" Pilihan yang menset atribut:\n" " -a\tuntuk membuat NAMA idex array (jika didukung)\n" " -A\tuntuk membuat NAMA assosiasi array (jika didukung)\n" " -i\tuntuk membuat NAMA memiliki atribut `integer'\n" @@ -2720,7 +2808,7 @@ msgstr "" " perintah `local'.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi." #: builtins.c:512 @@ -2751,14 +2839,14 @@ msgstr "" " \n" " Membuat sebuah variabel locak dipanggil NAMA, dan memberikan kepadanya " "NILAI. OPSI dapat\n" -" berupa semua opsi yang diterima oleh `declare'.\n" +" berupa semua pilihan yang diterima oleh `declare'.\n" " \n" " Variabel lokal hanya dapat digunakan dalam sebuah fungsi; mereka hanya\n" " dapat dilihat ke fungsi dimana mereka terdefinisi dan anaknya.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan, sebuah " -"error terjadi.\n" +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan, " +"sebuah error terjadi.\n" " atau shell tidak menjalankan sebuah fungsi." #: builtins.c:537 @@ -2795,7 +2883,7 @@ msgstr "" " \n" " Menampilkan ARG ke standar keluaran diikuti oleh baris baru.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n\tjangan menambahkan sebuah baris baru\n" " -e\taktifkan interpretasi dari karakter backslash\n" " -E\tsecara eksplisit tekan interpretasi dari karakter backslash\n" @@ -2835,7 +2923,7 @@ msgstr "" " \n" " Menampilkan ARG ke standard keluaran diikuti dengan sebuah baris baru.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n\tjangan menambahkan sebuah baris baru\n" " \n" " Status Keluar:\n" @@ -2875,7 +2963,7 @@ msgstr "" "shell builtin\n" " tanpa menggunakan sebuah nama jalur yang lengkap.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a\ttampilkan daftar dari builtins memperlihatkan aktif atau tidak " "setiap diaktifkan\n" " -n\tmenonaktifkan setiap NAMA atau tampilkan daftar dari builtin yang " @@ -2883,11 +2971,11 @@ msgstr "" " -p\ttampilkan daftar dari builtins dalam format yang berguna\n" " -s\ttampilkan yang nama dari Posix `special' builtins\n" " \n" -" Opsi mengontrol dynamic loading:\n" +" Pilihan mengontrol dynamic loading:\n" " -f\tLoad builtin NAMA dari shared object NAMA BERKAS\n" " -d\tHapus sebuah builtin diload dengan -f\n" " \n" -" Tanpa opsi, untuk setiap NAMA di aktifkan.\n" +" Tanpa pilihan, untuk setiap NAMA di aktifkan.\n" " \n" " Untuk menggunakan `test' ditemukan dalam $PATH daripada dalam shell " "builtin\n" @@ -2958,20 +3046,20 @@ msgid "" " Returns success if an option is found; fails if the end of options is\n" " encountered or an error occurs." msgstr "" -"Ambil argumen opsi.\n" +"Ambil argumen pilihan.\n" " \n" " Getops digunakan oleh shell procedures untuk memparse parameter posisi.\n" " \n" -" OPTSTRING berisi huruf opsi yang dikenali; jika sebuah huruf\n" -" diikuti oleh sebuah colon, opsi diduga akan berupa argumen,\n" +" OPTSTRING berisi huruf pilihan yang dikenali; jika sebuah huruf\n" +" diikuti oleh sebuah colon, pilihan diduga akan berupa argumen,\n" " yang seharusnya dipisahkan dari itu oleh spasi.\n" " \n" -" Setiap waktu ini dipanggil, getopts akan menempatkan opsi selanjutnya " +" Setiap waktu ini dipanggil, getopts akan menempatkan pilihan selanjutnya " "dalam\n" " $name shell variabel, menginisialisasi nama jiki ini tidak ada, dan\n" " index dari argumen selanjutnya untuk diproses kedalam shell\n" " variabel OPTIND. OPTIND diinisialisasi ke 1 setiap shell atau\n" -" sebuah shell script dipanggil. Ketika sebuah opsi membutuhkan sebuah " +" sebuah shell script dipanggil. Ketika sebuah pilihan membutuhkan sebuah " "argumen,\n" " getopts menempatkan argumen itu kedalam variabel shell OPTARG.\n" " \n" @@ -2979,13 +3067,15 @@ msgstr "" "pertama\n" " dari OPTSTRING adalah sebuah colon, getopts menggunakan silent error " "laporan. Dalam\n" -" Mode ini, tidak ada pesan error yang ditampilkan. Jika sebuah opsi tidak " -"valid terlihat\n" -" getops menempatkan karakter opsi yang ditemukan ke OPTARG. Jika sebuah\n" +" Mode ini, tidak ada pesan error yang ditampilkan. Jika sebuah pilihan " +"tidak valid terlihat\n" +" getops menempatkan karakter pilihan yang ditemukan ke OPTARG. Jika " +"sebuah\n" " argumen yang dibutuhkan tidak ditemukan, getopts menempatkan sebuah ':' " "kedalam NAME dan\n" -" menset OPTARG ke opsi karakter yang ditemukan. Jika getopts tidak dalam\n" -" mode silent, dan sebuah opsi tidak valid terlihat getopts menempatkan " +" menset OPTARG ke pilihan karakter yang ditemukan. Jika getopts tidak " +"dalam\n" +" mode silent, dan sebuah pilihan tidak valid terlihat getopts menempatkan " "'?' kedalam\n" " variabel NAME, OPTARG tidak diset, dan sebuah pesan analisis\n" " tampilkan.\n" @@ -2998,8 +3088,8 @@ msgstr "" " Getopts secara normal memparse parameter posisi ($0 - $9), tetapi jika\n" " lebih dari satu argumen diberikan, mereka diparse. \n" " Status Keluar:\n" -" Mengembalikan sukses jika sebuah opsi ditemukan; gagal jika akhir dari " -"opsi\n" +" Mengembalikan sukses jika sebuah pilihan ditemukan; gagal jika akhir " +"dari pilihan\n" " ditemui atau sebuah error terjadi." #: builtins.c:668 @@ -3032,14 +3122,14 @@ msgstr "" "dispesifikasikan,\n" " setiap redireksi akan memiliki afek dalam shell sekarang.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a nama\tlewatkan NAMA sebagai argumen ke nol ke PERINTAH\n" " -c\t\tjalankan PERINTAH dengan sebuah environment kosong\n" " -l\t\ttempatkan sebuah dash dalam argumen ke nol ke PERINTAH\n" " \n" " Jika perintah tidak dapat dijalankan, sebuah non-interaktif shell " "keluar, kecuali\n" -" opsi shell `execfail' diset.\n" +" pilihan shell `execfail' diset.\n" " \n" " Status Keluar:\n" " Mengembalikan sukses kecuali PERINTAH tidak ditemukan atau sebuah " @@ -3109,7 +3199,7 @@ msgstr "" "jangkauan, atau PERTAMA dapat berupa sebuah\n" " string, yang berarti adalah perintah yang berawal dengan string.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -e ENAME\tmemilih editor yang akan digunakan. Default adalah FCEDIT, " "kemudian EDITOR,\n" " \t\tkemudian vi.\n" @@ -3205,7 +3295,7 @@ msgstr "" " tidak ada argumen yang diberikan, informasi mengenai perintah yang " "diingat akan ditampilkan.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -d\t\tlupakan lokasi yang diingat untuk setiap NAMA\n" " -l\t\ttampilkan dalam format yang bisa digunakan sebagai masukan\n" " -p pathname\tgunakan NAMA JALUR yang nama jalur lengkap dari NAMA\n" @@ -3219,8 +3309,8 @@ msgstr "" " \t\tdari perintah yang diingat.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali NAMA tidak ditemukan atau sebuah opsi tidak " -"valid telah diberikan." +" Mengembalikan sukses kecuali NAMA tidak ditemukan atau sebuah pilihan " +"tidak valid telah diberikan." #: builtins.c:792 msgid "" @@ -3250,7 +3340,7 @@ msgstr "" "cocok dengan POLA,\n" " jika tidak daftar dari topik bantuan ditampilkan.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -d\tkeluarkan deskripsi singkat untuk setiap topik\n" " -m\ttampilkan penggunaan dalam format pseudo-manpage\n" " -s\tkeluarkan hanya penggunaan singkat untuk setiap topik yang cocok\n" @@ -3260,8 +3350,8 @@ msgstr "" " POLA\tPola menspesifikasikan topik bantuan\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali POLA tidak ditemukan atau opsi tidak valid " -"diberikan." +" Mengembalikan sukses kecuali POLA tidak ditemukan atau pilihan tidak " +"valid diberikan." #: builtins.c:816 msgid "" @@ -3304,7 +3394,7 @@ msgstr "" "hanya\n" " N baris terakhir.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -c\tmenghapus daftar sejarah dengan cara menghapus seluruh masukan\n" " -d menghapus masukan sejarah di offset OFFSET.\n" " \n" @@ -3335,7 +3425,7 @@ msgstr "" "yang ditampilkan jika tidak.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi." #: builtins.c:852 @@ -3365,9 +3455,9 @@ msgstr "" " \n" " Tampilkan pekerjaan yang aktif. JOBSPEC membatasi keluaran ke pekerjaan " "itu.\n" -" Tanpa opsi, status dari seluruh aktif job ditampilkan.\n" +" Tanpa pilihan, status dari seluruh aktif job ditampilkan.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -l menampilkan daftar dari proses id sebagai informasi tambahan.\n" " -n diberikan, hanya proses yang sudah berubah status saja sejak\n" " \tnotifikasi terakhir yang ditampilkan.\n" @@ -3375,14 +3465,14 @@ msgstr "" " -r membatasi keluaran ke pekerjaan yang sedang jalan\n" " -s membatasi keluaran ke pekerjaan yang berhenti\n" " \n" -" Jika opsi -x diberikan, PERINTAH dijalankan setelah semua spesifikasi " +" Jika pilihan -x diberikan, PERINTAH dijalankan setelah semua spesifikasi " "pekerjaan\n" " yang tampil di ARGS telah diganti dengan proses ID dari proses " "pekerjaan\n" " grup leader.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecualis sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecualis sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi.\n" " Jika -x digunakan, mengembalikan status keluar dari PERINTAH." @@ -3407,7 +3497,7 @@ msgstr "" " Hapus setiap JOBSPEC argumen dari tabel dari pekerjaan aktif. Tanpa\n" " JOBSPEC apapun, shell menggunakan indikasi ini dari pekerjaan sekarang.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a\thapus seluruh pekerjaan jika JOBSPEC tidak diberikan\n" " -h\ttandai setiap JOBSPEC sehingga SIGHUP tidak dikirim ke pekerjaan " "jika\n" @@ -3415,7 +3505,7 @@ msgstr "" " -r\thapus hanya pekerjaan yang sedang berjalan\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali ada sebuah opsi tidak valid atau JOBSPEC " +" Mengembalikan sukses kecuali ada sebuah pilihan tidak valid atau JOBSPEC " "diberikan." #: builtins.c:898 @@ -3446,7 +3536,7 @@ msgstr "" " oleh SIGSPEC atau SIGNUM. Jika SIGSPEC atau SIGNUM tidak ada, maka\n" " SIGTERM diasumsikan.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -s sig\tSIG adalah sebuah nama sinyal\n" " -n sig\tSIG adalah sebuah nomor sinyal\n" " -l\tdaftar dari nama sinyal; jika argumen diikuti dengan `-l' mereka " @@ -3458,7 +3548,7 @@ msgstr "" " dari proses yang dibuat tercapai.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi." #: builtins.c:921 @@ -3574,7 +3664,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3598,7 +3692,7 @@ msgstr "" " \n" " Satu baris dibaca dari masukan standar, atau dari berkas deskripsi FD " "jika\n" -" opsi -u diberikan, dan kata pertama diberikan ke NAMA pertama,\n" +" pilihan -u diberikan, dan kata pertama diberikan ke NAMA pertama,\n" " kata kedua ke NAMA kedua, dan seterusnya. dengan kata yang tersisa " "ditempatkan\n" " ke NAMA terakhir. Hanya karakter yang ditemukan dalam $IFS yang dikenal " @@ -3608,7 +3702,7 @@ msgstr "" " Jika tidak ada NAMA yang diberikan, baris yang dibaca disimpan dalam " "variabel BALASAN\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a array\tditempatkan kata dibaca secara berurutan indice dari array\n" " \t\tvariabel ARRAY, dimulai dari nol\n" " -d delim\tdilanjutkan sampai karakter pertama dari PEMBATAS dibaca, " @@ -3637,9 +3731,10 @@ msgstr "" " Status Keluar:\n" " Kode kembali adalah nol, kecuali akhir-dari-berkas ditemui, baca " "kehabisan waktu,\n" -" atau sebuah berkas deskripsi disupply sebagai sebuah argumen ke opsi -u." +" atau sebuah berkas deskripsi disupply sebagai sebuah argumen ke pilihan -" +"u." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3661,7 +3756,7 @@ msgstr "" " Mengembalikan N, atau gagal jika shell tidak menjalan sebuah fungsi atau " "script." -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3742,12 +3837,12 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is given." msgstr "" -"Set atau unset nilai dari opsi shell dan parameter posisi.\n" +"Set atau unset nilai dari pilihan shell dan parameter posisi.\n" " \n" " Ubah nilai dari atribut shell dan parameter posisi, atau\n" " tampilkan nama dan nilai dari variabel shell.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a Tandai variabel yang telah termodifikasi atau dibuat untuk " "export.\n" " -b Notifikasi penyelesaian pekerjaan secara langsung.\n" @@ -3760,8 +3855,8 @@ msgstr "" " perintah, tidak hanya mengawali nama perintah.\n" " -m Pengendali pekerjaan diaktifkan.\n" " -n Baca perintah tapi jangan menjalankan perintah tersebut.\n" -" -o nama-opsi\n" -" Set variabel menurut nama-opsi:\n" +" -o nama-pilihan\n" +" Set variabel menurut nama-pilihan:\n" " allexport sama seperti -a\n" " braceexpand sama seperti -B\n" " emacs gunakan gaya emacs dalam line editing interface\n" @@ -3802,7 +3897,7 @@ msgstr "" " -p Aktif ketika real dan efektif id pengguna tidak cocok.\n" " Menonaktifkan pemrosesan dari berkas $ENV dan mengimpor dari " "fungsi\n" -" shell. Mengubah opsi ini off menyebabkan efektif uid dan\n" +" shell. Mengubah pilihan ini off menyebabkan efektif uid dan\n" " gid untuk diset ke real uid dan gid.\n" " -t Keluar setelah membaca dan menjalankan satu perintah.\n" " -u Perlakukan variabel yang tidak diset sebagai error ketika " @@ -3822,7 +3917,7 @@ msgstr "" " seperti cd ketika mengubah direktori kerja sekarang.\n" " -T Jika diset, Debug trap diturunkan oleh fungsi shell.\n" " - Assign argumen yang tersisa ke parameter posisi.\n" -" Opsi -x dan -v akan dimatikan.\n" +" Pilihan -x dan -v akan dimatikan.\n" " \n" " Menggunakan + daripada - akan menyebabkan tanda untuk dimatikan. Tanda\n" " juga bisa digunakan dalam pemanggilan shell. Tanda yang terset\n" @@ -3831,9 +3926,9 @@ msgstr "" " ARG yang diberikan, semua shell variabel ditampilkan.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan." +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3856,21 +3951,21 @@ msgstr "" " \n" " Untuk setiap NAMA, hapus variabel atau fungsi yang berhubungan.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -f\tperlakukan setiap NAMA sebagai sebuah fungsi shell\n" " -v\tperlakukan setiap NAMA sebagai sebuah variabel shell\n" " \n" -" Tanpa opsi, unset pertama mencoba untuk menunset sebuah variabel, dan " +" Tanpa pilihan, unset pertama mencoba untuk menunset sebuah variabel, dan " "jika itu gagal,\n" " mencoba untuk menunset sebuah fungsi.\n" " \n" " Beberapa variabel tidak dapat diunset; Lihat juga `readonly'.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah NAMA adalah baca-saja." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3894,18 +3989,18 @@ msgstr "" " perintah dijalankan. Jika NILAI diberikan, berikan NILAI sebelum " "export.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -f\tmerujuk ke fungsi shell\n" " -n\thapus properti export dari setiap NAMA\n" " -p\ttampilkan daftar dari seluruh variabel dan fungsi yang terexport\n" " \n" -" Sebuah argumen dari `--' menonaktifkan pemrosesan opsi selanjutnya.\n" +" Sebuah argumen dari `--' menonaktifkan pemrosesan pilihan selanjutnya.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau NAMA " -"tidak valid." +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " +"NAMA tidak valid." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3931,20 +4026,20 @@ msgstr "" "NILAI\n" " sebelum menandainya sebagai baca-saja.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a\tmerujuk ke aray index variabel\n" " -A\tmerujuk ke variabel aray assosiasi\n" " -f\tmerujuk ke fungsi shell\n" " -p\tmenampilkan sebuah daftar dari seluruh variabel dan fungsi baca-" "saja\n" " \n" -" Sebuah argumen dari `--' menonaktifkan pemrosesan opsi selanjutnya.\n" +" Sebuah argumen dari `--' menonaktifkan pemrosesan pilihan selanjutnya.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecual sebuah opsi tidak valid diberikan atau NAMA " -"tidak valid." +" Mengembalikan sukses kecual sebuah pilihan tidak valid diberikan atau " +"NAMA tidak valid." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3962,7 +4057,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan sukses kecuali N adalah negatif atau lebih besar dari $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3988,7 +4083,7 @@ msgstr "" "BERKAS; gagal jika\n" " NAMA BERKAS tidak dapat dibaca." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -4006,7 +4101,7 @@ msgstr "" " Suspend eksekusi dari shell ini sampai menerima sebuah sinyal SIGCONT.\n" " Kecuali dipaksa, login shell tidak dapat disuspend.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -f\tpaksa untuk suspend, walaupun jika shell adalah sebuah login " "shell\n" " \n" @@ -4014,7 +4109,7 @@ msgstr "" " Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau " "sebuah error terjadi." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4153,7 +4248,7 @@ msgstr "" " \n" " Operator lain:\n" " \n" -" -o Opsi Benar jika opsi shell OPSI diaktifkan.\n" +" -o Pilihan Benar jika pilihan shell OPSI diaktifkan.\n" " ! EXPR Benar jika expr salah.\n" " EXPR1 -a EXPR2 Benar jika kedua expr1 dan expr2 adalah benar.\n" " EXPR1 -o EXPR2 Benar jika salah satu dari expr1 atau expr2 adalah " @@ -4174,7 +4269,7 @@ msgstr "" "EXPR mengevaluasi ke\n" " salah atau sebuah argumen tidak valid diberikan." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4186,7 +4281,7 @@ msgstr "" " Ini sinonim untuk \"test\" builtin, tetapi argumen terakhir\n" " harus berupa sebuah literal `]', untuk mencocokan dengan pembukaan `['." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4206,7 +4301,7 @@ msgstr "" " Status Keluar:\n" " Selalu sukses." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4264,7 +4359,7 @@ msgstr "" "perintah yang berasosiasi\n" " dengan setiap sinyal.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -l\tmenampilkan sebuah daftar dari nama sinyal dan nomor yang " "berhubungan\n" " -p\tmenampilkan perintah trap yang berasosiasi dengan setiap " @@ -4277,9 +4372,9 @@ msgstr "" " \n" " Status Keluar:\n" " Mengembalikan sukses kecuali sebuah SIGSPEC adalah tidak valid atau " -"sebuah opsi tidak valid diberikan." +"sebuah pilihan tidak valid diberikan." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4314,11 +4409,11 @@ msgstr "" "digunakan sebagai sebuah\n" " nama perintah.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -a\tmenampilkan seluruh lokasi yang berisi sebuah nama NAMA yang dapat " "dijalankan;\n" " \tmeliputi aliases, builtins, dan fungsi, jika dan hanya jika\n" -" \topsi `-p' juga sedang tidak digunakan\n" +" \tpilihan `-p' juga sedang tidak digunakan\n" " -f\tmenekan pencarian fungsi shell\n" " -P\tmemaksa sebuah JALUR pencarian untuk setiap NAMA, bahkan jika ini " "adalah sebuah alias,\n" @@ -4341,7 +4436,7 @@ msgstr "" " Mengembalikan sukses jika seluruh dari NAMA ditemukan; gagal jika ada " "yang tidak ditemukan." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4390,7 +4485,7 @@ msgstr "" " yang dimulai oleh shell, dalam sistem yang mengijinkan untuk kontrol " "tersebut.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -S\tgunakan `soft' batas sarana\n" " -H\tgunakan `hard' batas sarana\n" " -a\tsemua batas ditampilkan\n" @@ -4417,7 +4512,7 @@ msgstr "" "respectively.\n" " Jika tidak, nilai sekarang dari sarana yang dispesifikasikan " "ditampilkan.\n" -" Jika tidak ada opsi yang diberikan, maka -f diasumsikan.\n" +" Jika tidak ada pilihan yang diberikan, maka -f diasumsikan.\n" " \n" " Nilai adalah dalam 1024-byte increments, kecuali untuk -t, yang berarti " "dalam detik\n" @@ -4426,10 +4521,10 @@ msgstr "" " jumlah proses.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4457,17 +4552,17 @@ msgstr "" " jika tidak ini adalah sebuah mode simbolik seperti yang diterima oleh " "chmod(1).\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -p\tjika MODE diabaikan, keluarkan dalam sebuah format yang bisa " "digunakan sebagai masukan\n" " -S\tmembuat keluaran simbolik; jika tidak sebuah bilangan oktal adalah " "keluarannya\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali MODE tidak valid atau sebuah opsi tidak " +" Mengembalikan sukses kecuali MODE tidak valid atau sebuah pilihan tidak " "valid diberikan." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4495,11 +4590,11 @@ msgstr "" " dalam pipeline pekerjaan.\n" " \n" " Status Keluar:\n" -" Mengembalikan status dari ID; gagal jika ID tidak valid atau sebuah opsi " -"tidak\n" +" Mengembalikan status dari ID; gagal jika ID tidak valid atau sebuah " +"pilihan tidak\n" " valid diberikan." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4520,11 +4615,11 @@ msgstr "" " dan kode kembalian adalah nol. PID dapat berupa proses ID.\n" " \n" " Status Keluar:\n" -" Mengembalikan status dari ID; gagal jika ID tidak valid atau sebuah opsi " -"tidak valid\n" +" Mengembalikan status dari ID; gagal jika ID tidak valid atau sebuah " +"pilihan tidak valid\n" " diberikan." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4548,7 +4643,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dijalankan." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4578,7 +4673,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dijalankan." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4615,7 +4710,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dijalankan." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4637,13 +4732,13 @@ msgstr "" " dan sistem CPU time yang dihabiskan dalam menjalankan PIPELINE ketika " "ini selesai.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -p\tmenampilkan ringkasan waktu dalam format portable Posix\n" " \n" " Status Keluar:\n" " Status kembali adalah status kembali dari PIPELINE." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4661,7 +4756,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan setatus dari perintah terakhir yang dijalankan." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4699,7 +4794,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dijalankan." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4717,7 +4812,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dijalankan." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4734,7 +4829,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dijalankan." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4746,8 +4841,18 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Buat sebuah koproses dengan nama NAMA.\n" +" \n" +" Jalankan PERINTAH secara tidak sinkron, dengan standar keluaran dan\n" +" standar masukan dari perintah terhubung melalui sebuah pipa berkas\n" +" pipa deskripsi yang ditandai dengan 0 dan 1 dari sebuah susunan NAMA\n" +" variabel dalam shell yang dijalankan.\n" +" Nama baku adalah \"COPROC\".\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status keluar dari PERINTAH." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4772,7 +4877,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan sukses kecuali NAMA adalah baca-saja." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4791,7 +4896,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari perintah terakhir yang dieksekusi." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4818,7 +4923,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan status dari pekerjaan yang dilanjutkan." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4836,7 +4941,7 @@ msgstr "" " Status Keluar:\n" " Mengembalikan 1 jika EXPRESI dievaluasi ke 0; mengembalikan 0 jika tidak." -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4893,7 +4998,7 @@ msgstr "" " Status Keluar:\n" " 0 atau 1 tergantun dari nilai dari EKSPRESI." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4983,7 +5088,7 @@ msgstr "" " PS1\t\tKata prompt utama.\n" " PS2\t\tKata prompt kedua.\n" " PWD\t\tNama jalur lengkat dari direktori sekarang.\n" -" SHELLOPTS\tDaftar dari shell opsi yang dipisahkan oleh titik-dua.\n" +" SHELLOPTS\tDaftar dari shell pilihan yang dipisahkan oleh titik-dua.\n" " TERM\tNama dari tipe terminal sekarang.\n" " TIMEFORMAT\tFormat keluaran dari statistik waktu yang ditampilkan oleh\n" " \t\t`time' kata yang direserved.\n" @@ -5007,7 +5112,7 @@ msgstr "" "digunakan untuk menentukan dimana\n" " \t\tperintah seharusnya disimpan dalam daftar sejarah.\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -5043,7 +5148,7 @@ msgstr "" " stack, membuah top baru dari stack dari working direktori saat ini.\n" " Tanpa argumen, menukar top dari dua direktori.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n\tmenekan perubahan normal dari direktori ketika menambahkan " "direktori\n" " \tke stack, jadi hanya stack yang dimanipulasi.\n" @@ -5067,7 +5172,7 @@ msgstr "" "atau pemindahan\n" " direktori gagal." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -5099,7 +5204,7 @@ msgstr "" " menghapus top direktori dari stack, dan cd's ke top\n" " direktori baru.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n\tmenekan perubahan normal dari direktori ketika menghapus " "direktori\n" " \tdari stack, jadi hanya stack yang dimanipulasi.\n" @@ -5122,7 +5227,7 @@ msgstr "" "atau pemindahan\n" " direktori gagal." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -5157,7 +5262,7 @@ msgstr "" "memperoleh\n" " backup melalui daftar dengan perintah `popd'.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -c\tmenghapus direktori stack dengan menghapus seluruh elemen.\n" " -l\tjangan menampilkan versi yang diawali tilde dari direktori yang " "relatif\n" @@ -5169,16 +5274,16 @@ msgstr "" " Argumen:\n" " +N\tmenampilkan masukan ke N dihitung dari kiri dari daftar yang " "ditampilkan oleh\n" -" \tdirs ketika dijalankan tanpa opsi, dimulai dari nol.\n" +" \tdirs ketika dijalankan tanpa pilihan, dimulai dari nol.\n" " \n" " -N\tmenampilkan masukan ke N dihitung dari kanan dari daftar yang " "ditampilkan oleh\n" -" \tdirs ketika dijalankan tanpa opsi, dimulai dari nol. \n" +" \tdirs ketika dijalankan tanpa pilihan, dimulai dari nol. \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali ada sebuah opsi tidak valid diberikan atau " -"sebuah error terjadi." +" Mengembalikan sukses kecuali ada sebuah pilihan tidak valid diberikan " +"atau sebuah error terjadi." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5198,25 +5303,26 @@ msgid "" " Returns success if OPTNAME is enabled; fails if an invalid option is\n" " given or OPTNAME is disabled." msgstr "" -"Set dan unset opsi shell.\n" +"Set dan unset pilihan shell.\n" " \n" -" Ubah setting untuk setiap opsi shell OPTNAME. Tanpa opsi\n" -" argumen apapun, tampilkan daftar shell opsi dengan sebuah indikasi\n" -" ya atau tidak setiap opsi di set.\n" +" Ubah setting untuk setiap pilihan shell OPTNAME. Tanpa pilihan\n" +" argumen apapun, tampilkan daftar shell pilihan dengan sebuah indikasi\n" +" ya atau tidak setiap pilihan di set.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -o\tbatasi OPTNAME ke definisi untuk digunakan dengan `set -o'\n" -" -p\ttampilkan setiap opsi shell dengan sebuah indikasi dari statusnya\n" +" -p\ttampilkan setiap pilihan shell dengan sebuah indikasi dari " +"statusnya\n" " -q\ttekan keluaran\n" " -s\taktifkan (set) setiap OPTNAME\n" " -u\tnonaktifkan (unset) setiap OPTNAME\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses jika OPTNAME diaktifkan; gagal jika sebuah opsi " +" Mengembalikan sukses jika OPTNAME diaktifkan; gagal jika sebuah pilihan " "tidak valid diberikan\n" " atau OPTNAME dinonaktifkan." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5247,7 +5353,7 @@ msgid "" msgstr "" "Format dan tampilkan ARGUMEN dalam kontrol dari FORMAT.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -v var\tkeluaran ditempatkan dalam sebuah nilai dari variabel\n" " shell VAR daripada dikirimkan ke keluaran standar.\n" " \n" @@ -5267,11 +5373,12 @@ msgstr "" "sebagai masukan shell.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah penulisan atau penempatan\n" " error terjadi." -#: builtins.c:1892 +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5285,9 +5392,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5295,12 +5407,12 @@ msgstr "" "Spesifikasikan bagaimana argumen akan diselesaikan oleh Readline.\n" " \n" " Untuk setiap NAMA, spesifikasikan bagaimana argumen akan diselesaikan. " -"Jika tidak ada opsi\n" +"Jika tidak ada pilihan\n" " yang diberikan, spesifikasi penyelesaian yang sudah ada akan ditampilkan " "dalam cara\n" " yang diperbolehkan untuk digunakan sebagai masukan.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -p\ttampilkan spesifikasi penyelesaian yang telah ada dalam format " "yang berguna\n" " -r\thapus sebuah spesifikasi penyelesaian untuk setiap NAMA, atau jika " @@ -5308,13 +5420,13 @@ msgstr "" " \tNAMA yang diberikan, seluruh spesifikasi penyelesaian\n" " \n" " Ketika penyelesaian dicoba, aksi yang dilakukan dalam urutan\n" -" huruf besar opsi yang ditampilkan diatas.\n" +" huruf besar pilihan yang ditampilkan diatas.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5326,7 +5438,7 @@ msgid "" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -"Menampilkan kemungkinan penyelesaian tergantung dari opsi.\n" +"Menampilkan kemungkinan penyelesaian tergantung dari pilihan.\n" " \n" " Ditujukan untuk digunakan dari dalam sebuah fungsi shell yang " "menghasilkan kemungkinan untuk completions.\n" @@ -5334,10 +5446,11 @@ msgstr "" " dihasilkan.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "sebuah error terjadi." -#: builtins.c:1930 +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -5350,6 +5463,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5365,19 +5480,19 @@ msgid "" " Returns success unless an invalid option is supplied or NAME does not\n" " have a completion specification defined." msgstr "" -"Modifikasi atau tampilkan opsi penyelesaian.\n" +"Modifikasi atau tampilkan pilihan penyelesaian.\n" " \n" -" Modifikasi opsi penyelesaian untuk setiap NAMA, atau, jika tidaka ada " +" Modifikasi pilihan penyelesaian untuk setiap NAMA, atau, jika tidaka ada " "NAMA yang diberikan,\n" " penyelesaian mulai dijalankan. Jika tidak ada OPSI yang diberikan, " "tampilkan\n" -" opsi penyelesaian untuk setiap NAMA atau spesifikasi penyelesaian " +" pilihan penyelesaian untuk setiap NAMA atau spesifikasi penyelesaian " "sekarang.\n" " \n" -" Opsi:\n" -" \t-o option\tSet opsi penyelesaian OPSI untuk setiap NAMA\n" +" Pilihan:\n" +" \t-o option\tSet pilihan penyelesaian OPSI untuk setiap NAMA\n" " \n" -" Gunakan `+o' daripada `-o' matikan opsi yang dispesifikasikan.\n" +" Gunakan `+o' daripada `-o' matikan pilihan yang dispesifikasikan.\n" " \n" " Argumen:\n" " \n" @@ -5387,24 +5502,24 @@ msgstr "" "Jika tidak ada NAMA\n" " yang diberikan, compopt harus dipanggil oleh sebuah fungsi yang dibuat " "oleh penyelesaian sekarang,\n" -" dan opsi untuk menjalankan penyelesaian sekarang\n" +" dan pilihan untuk menjalankan penyelesaian sekarang\n" " telah dimodifikasi.\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau NAMA " -"tidak memiliki\n" +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " +"NAMA tidak memiliki\n" " spesifikasi penyelesaian yang terdefinisi." -#: builtins.c:1958 +#: builtins.c:1968 #, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5431,15 +5546,17 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -"Baca baris dari sebuah berkas kedalam sebuah variabel array.\n" +"Baca baris dari standar masukan kedalam sebuah susunan variabel.\n" " \n" " Baca baris dari standar masukan kedalam variabel array ARRAY, atau dari\n" -" deskripsi berkas FD jika opsi -u diberikan. Variabel MAPFILE adalah\n" -" default ARRAY.\n" +" berkas deskripsi FD jika pilihan -u diberikan. Variabel MAPFILE adalah\n" +" baku ARRAY.\n" " \n" -" Opsi:\n" +" Pilihan:\n" " -n count\tSalin di baris COUNT. Jika COUNT adalah 0, semua baris " "disalin.\n" " -O origin\tAwal penempatan ke ARRAY di index ORIGIN. Default index " @@ -5463,15 +5580,30 @@ msgstr "" " ditempatkan kepadanya\n" " \n" " Status Keluar:\n" -" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau " "ARRAY adalah baca-saja." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Baca baris dari sebuah berkas kedalam sebuah susunan variabel.\n" +" \n" +" Sebuah sinonim untuk `mapfile'." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: tidak dapat menrealokasikan %lu bytes (%lu bytes teralokasikan)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: tidak dapat mengalokasikan %lu bytes" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s: %d: tidak dapat melakukan reallokasi %lu bytes (%lu bytes " +#~ "teralokasi)" #~ msgid " " #~ msgstr " " @@ -5525,7 +5657,7 @@ msgstr "" #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" #~ msgstr "" -#~ "bahwa `~/bin' mungkin ditampilkan sebagai `/homes/bfox/bin'. Opsi -v" +#~ "bahwa `~/bin' mungkin ditampilkan sebagai `/homes/bfox/bin'. Pilihan -v" #~ msgid "causes `dirs' to print the directory stack with one entry per line," #~ msgstr "" @@ -5534,7 +5666,7 @@ msgstr "" #~ msgid "" #~ "prepending the directory name with its position in the stack. The -p" -#~ msgstr "mendahului nama direktori dengan posisinya dalam stack. Opsi -p" +#~ msgstr "mendahului nama direktori dengan posisinya dalam stack. Pilihan -p" #~ msgid "flag does the same thing, but the stack position is not prepended." #~ msgstr "melakukan hal yang sama, tetapi posisi stack tidak didahului." @@ -5542,7 +5674,7 @@ msgstr "" #~ msgid "" #~ "The -c flag clears the directory stack by deleting all of the elements." #~ msgstr "" -#~ "Opsi -c menghapus direktori stack dengan cara menghapus seluruh elemen." +#~ "Pilihan -c menghapus direktori stack dengan cara menghapus seluruh elemen." #~ msgid "" #~ "+N displays the Nth entry counting from the left of the list shown by" @@ -5551,7 +5683,7 @@ msgstr "" #~ "ditampilkan oleh" #~ msgid " dirs when invoked without options, starting with zero." -#~ msgstr " dirs ketika dipanggil tanpa opsi, dimulai dengan nol." +#~ msgstr " dirs ketika dipanggil tanpa pilihan, dimulai dengan nol." #~ msgid "" #~ "-N displays the Nth entry counting from the right of the list shown by" @@ -5681,9 +5813,9 @@ msgstr "" #~ " the physical directory, without any symbolic links; the -L option\n" #~ " makes pwd follow symbolic links." #~ msgstr "" -#~ "Tampilkan direktori yang sedang digunakan saat ini. Dengan opsi -P, pwd " -#~ "menampilkan\n" -#~ " direktori physical, tanpa symbolic link yang lain; dengan opsi -L\n" +#~ "Tampilkan direktori yang sedang digunakan saat ini. Dengan pilihan -P, " +#~ "pwd menampilkan\n" +#~ " direktori physical, tanpa symbolic link yang lain; dengan pilihan -L\n" #~ " membuat pwd mengikuti symbolic links." #~ msgid "Return a successful result." @@ -5704,12 +5836,12 @@ msgstr "" #~ "memiliki sebuah shell\n" #~ " fungsi yang memanggil `ls', dan anda berharap untuk memanggil " #~ "perintah `ls', anda dapat\n" -#~ " mengatakan \"command ls\". Jika opsi -p diberikan, sebuah nilai " +#~ " mengatakan \"command ls\". Jika pilihan -p diberikan, sebuah nilai " #~ "default digunakan\n" #~ " untuk PATH yang menjamin untuk mencari semua utilitis standar. Jika\n" -#~ " opsi -V atau -v diberikan, sebuah string ditampilkan mendeskripsikan " -#~ "PERINTAH.\n" -#~ " Opsi -V menghasilkan deskripsi yang lebih detail." +#~ " pilihan -V atau -v diberikan, sebuah string ditampilkan " +#~ "mendeskripsikan PERINTAH.\n" +#~ " Pilihan -V menghasilkan deskripsi yang lebih detail." #~ msgid "" #~ "Declare variables and/or give them attributes. If no NAMEs are\n" @@ -5741,7 +5873,7 @@ msgstr "" #~ msgstr "" #~ "Declare variabel dan/atau memberikan atribut kepada mereka. Jika tidak " #~ "ada NAMA yang\n" -#~ " diberikan, maka menampilkan nilai dari variabel. Opsi -p\n" +#~ " diberikan, maka menampilkan nilai dari variabel. Pilihan -p\n" #~ " akan menampilkan atribut dan nilai dari setiap NAMA.\n" #~ " \n" #~ " Flags adalah:\n" @@ -5761,7 +5893,7 @@ msgstr "" #~ " \n" #~ " Ketika menampilkan nilai dari variabel, -f menampilkan sebuah nama " #~ "fungsi\n" -#~ " dan definisi. Opsi -F menekan untuk menampikan nama\n" +#~ " dan definisi. Pilihan -F menekan untuk menampikan nama\n" #~ " fungsi saja.\n" #~ " \n" #~ " Menggunakan `+' daripada `-' mematikan atribut yang diberikan. " @@ -5785,7 +5917,7 @@ msgstr "" #~ msgid "" #~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." #~ msgstr "" -#~ "Keluaran dari ARGs. Jika opsi -n dispesifikasikan, akhiran baris baru " +#~ "Keluaran dari ARGs. Jika pilihan -n dispesifikasikan, akhiran baris baru " #~ "dihapus." #~ msgid "" @@ -5808,21 +5940,21 @@ msgstr "" #~ "Enable dan disable perintah builtin shell. Ini membolehkan\n" #~ " anda untuk menggunakan perintah disk yang memiliki nama sama seperti " #~ "sebuah NAMA\n" -#~ " shell builtin tanpa menspesifikasikan sebuah pathname full. Jika opsi " -#~ "-n digunakan,\n" +#~ " shell builtin tanpa menspesifikasikan sebuah pathname full. Jika " +#~ "pilihan -n digunakan,\n" #~ " NAMA menjadi disabled; jika tidak NAMA menjadi enabled. Contoh,\n" #~ " gunakan `test' ditemukan dalam $PATH daripada dalam builtin versi\n" #~ " builtin shell, ketik `enable -n test'. Di system mensupport dynamic\n" -#~ " loading, opsi -f mungkin bisa digunakan untuk menload builtin baru " +#~ " loading, pilihan -f mungkin bisa digunakan untuk menload builtin baru " #~ "dari\n" -#~ " shared object NAMAFILE. Opsi -d akan menghapus sebuah builting\n" -#~ " yang sebelumnya diload dengan opsi -f. Jika tidak ada nama opsi yang " -#~ "diberikan, atau\n" -#~ " opsi -p diberikan, daftar dari builtin ditampilkan.\n" -#~ " Opsi -a berarti menampilkan setiap builtin dengan sebuah indikasi " +#~ " shared object NAMAFILE. Pilihan -d akan menghapus sebuah builting\n" +#~ " yang sebelumnya diload dengan pilihan -f. Jika tidak ada nama pilihan " +#~ "yang diberikan, atau\n" +#~ " pilihan -p diberikan, daftar dari builtin ditampilkan.\n" +#~ " Pilihan -a berarti menampilkan setiap builtin dengan sebuah indikasi " #~ "apakah\n" -#~ " atau tidak ini enabled. Opsi -s membatasi keluaran ke POSIX.2\n" -#~ " `special' builtins. Opsi -n menampilkan daftar dari semua yang " +#~ " atau tidak ini enabled. Pilihan -s membatasi keluaran ke POSIX.2\n" +#~ " `special' builtins. Pilihan -n menampilkan daftar dari semua yang " #~ "builtins yang disabled." #~ msgid "" @@ -5846,11 +5978,12 @@ msgstr "" #~ " shell ini. Jika argumen pertama adalah `-l', maka tempatkan sebuah " #~ "dash dalam\n" #~ " argument ke nol yang dilewatkan ke FILE, seperti yang dilakukan oleh " -#~ "login. Jika opsi `-c'\n" -#~ " diberikan, FILE dijalankan dengan environmen kosong. Jika opsi `-a'\n" +#~ "login. Jika pilihan `-c'\n" +#~ " diberikan, FILE dijalankan dengan environmen kosong. Jika pilihan `-" +#~ "a'\n" #~ " berarti menset argv[0] dari proses yang dijalankan ke NAMA.\n" #~ " Jika berkas tidak dapat dijalankan dan shell bukan interaktif,\n" -#~ " maka shell keluar, unless opsi shell `execfail' diset." +#~ " maka shell keluar, unless pilihan shell `execfail' diset." #~ msgid "Logout of a login shell." #~ msgstr "Logout dari sebuah login shell." @@ -5873,15 +6006,17 @@ msgstr "" #~ "displayed." #~ msgstr "" #~ "Untuk setiap NAMA, full pathname dari perintah ditentukan dan\n" -#~ " diingat. Jika opsi -p diberikan, PATHNAME digunakan sebagai\n" +#~ " diingat. Jika pilihan -p diberikan, PATHNAME digunakan sebagai\n" #~ " full pathname dari NAME, dan tidak ada jalur pencarian yang " -#~ "dilakukan. Opsi -r\n" -#~ " menyebabkan shell untuk melupakan semua lokasi yang diingat. Opsi -d\n" +#~ "dilakukan. Pilihan -r\n" +#~ " menyebabkan shell untuk melupakan semua lokasi yang diingat. Pilihan -" +#~ "d\n" #~ " menyebabkan shell untuk melupakan lokasi dari setiap NAMA.\n" -#~ " Jika opsi -t diberikan ful pathname ke setiap NAMA\n" +#~ " Jika pilihan -t diberikan ful pathname ke setiap NAMA\n" #~ " yang bersesuaian ditampilkan. Jika beberapa argumen NAMA diberikan " #~ "dengan\n" -#~ " opsi -t, NAME ditampilkan sebelum hashed full pathname. Opsi -l\n" +#~ " pilihan -t, NAME ditampilkan sebelum hashed full pathname. Pilihan -" +#~ "l\n" #~ " menyebabkan keluaran untuk ditampilkan dalam format yang biasa " #~ "digunakan sebagai masukan.\n" #~ " Jika tidak ada argumen yang diberikan, informasi mengenai perintah " @@ -5898,7 +6033,7 @@ msgstr "" #~ "PATTERN\n" #~ " dispesifikasikan, memberikan bantuan detail mengenail seluruh " #~ "perintah yang cocok dengan PATTERN,\n" -#~ " jika tidak sebuah daftar dari builtings akan ditampilkan. Opsi -s\n" +#~ " jika tidak sebuah daftar dari builtings akan ditampilkan. Pilihan -s\n" #~ " membatasi keluaran dari setiap perintah builtin yang cocok dengan " #~ "PATTERN ke\n" #~ " ringkasan penggunaan singkat." @@ -5914,14 +6049,14 @@ msgstr "" #~ "jobs." #~ msgstr "" #~ "Secara default, menghapus setiap JOBSPEC argumen dari tabel actif jobs.\n" -#~ " Jika opsi -n diberikan, pekerjaan tidak dihapus dari tabel, tetap " +#~ " Jika pilihan -n diberikan, pekerjaan tidak dihapus dari tabel, tetap " #~ "ditandai\n" #~ " sehingga ketika SIGHUP tidak terkirim ke job ketika shell menerima " #~ "sebuah\n" -#~ " SIGHUP. Opsi -a, ketika JOBSPEC tidak diberikan, berarti menghapus " +#~ " SIGHUP. Pilihan -a, ketika JOBSPEC tidak diberikan, berarti menghapus " #~ "seluruh\n" -#~ " pekerjaan dari job tabel; Opsi -r berarti hanya menghapus pekerjaan " -#~ "yang berjalan." +#~ " pekerjaan dari job tabel; Pilihan -r berarti hanya menghapus " +#~ "pekerjaan yang berjalan." #~ msgid "" #~ "Causes a function to exit with the return value specified by N. If N\n" @@ -5939,9 +6074,9 @@ msgstr "" #~ " function. Some variables cannot be unset; also see readonly." #~ msgstr "" #~ "Untuk setiap NAMA, hapus variabel atau fungsi yang berhubungan. Dengan\n" -#~ " opsi `-v', unset hanya berlaku di variabel. Dengan opsi `-f',\n" -#~ " unset hanya berlaku untuk fungsi. Dengan tidak menggunakan dua opsi " -#~ "itu,\n" +#~ " pilihan `-v', unset hanya berlaku di variabel. Dengan pilihan `-f',\n" +#~ " unset hanya berlaku untuk fungsi. Dengan tidak menggunakan dua " +#~ "pilihan itu,\n" #~ " pertama akan mencoba mengunset variabel, dan jika itu gagal maka " #~ "akan\n" #~ " mencoba untuk mengunset sebuah fungsi. Beberapa variabel tidak dapat " @@ -5957,15 +6092,16 @@ msgstr "" #~ " processing." #~ msgstr "" #~ "NAMA ditandai untuk otomatis export ke environment dari\n" -#~ " perintah yang akan dijalankan selanjutnya. Jika opsi -f diberikan,\n" +#~ " perintah yang akan dijalankan selanjutnya. Jika pilihan -f " +#~ "diberikan,\n" #~ " NAMA akan menunjuk ke fungsi. Jika tidak ada NAMA diberikan, atau " -#~ "jika opsi `-p'\n" +#~ "jika pilihan `-p'\n" #~ " diberikan, daftar dari seluruh nama yang diexport dalam shell ini\n" -#~ " ditampilkan. Sebuah argumen dari opsi `-n' mengatakan untuk menghapus " -#~ "expor properti\n" +#~ " ditampilkan. Sebuah argumen dari pilihan `-n' mengatakan untuk " +#~ "menghapus expor properti\n" #~ " dari NAMA selanjutnya. Sebuah argumen dari `--' menonaktifkan " #~ "pemrosesan\n" -#~ " opsi selanjutnya." +#~ " pilihan selanjutnya." #~ msgid "" #~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" @@ -5979,14 +6115,14 @@ msgstr "" #~ msgstr "" #~ "NAMA yang diberikan ditandai secara baca-saja dan nilai dari NAMA ini " #~ "tidak\n" -#~ " boleh diubah oleh assignmen selanjutnya. Jika opsi -f diberikan,\n" +#~ " boleh diubah oleh assignmen selanjutnya. Jika pilihan -f diberikan,\n" #~ " maka fungsi yang berhubungan dengan NAMA akan ditandai. Jika tidak\n" -#~ " ada argumen yang diberikan, atau jika opsi `-p' diberikan, sebuah " +#~ " ada argumen yang diberikan, atau jika pilihan `-p' diberikan, sebuah " #~ "daftar dari seluruh nama baca-saja\n" -#~ " ditampilkan. Opsi `-a' berarti memperlakukan setiap NAMA sebagai\n" +#~ " ditampilkan. Pilihan `-a' berarti memperlakukan setiap NAMA sebagai\n" #~ " sebuah variabel array. Sebuah argumen dari `--' menonaktifkan " #~ "pemrosesan\n" -#~ " opsi selanjutnya." +#~ " pilihan selanjutnya." #~ msgid "" #~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" @@ -6002,7 +6138,7 @@ msgstr "" #~ msgstr "" #~ "Suspend eksekusi dari shell ini sampai ini menerima sebuah sinyal " #~ "SIGCONT\n" -#~ " Jika opsi `-f' dispesifikasikan maka tidak komplain tentang ini " +#~ " Jika pilihan `-f' dispesifikasikan maka tidak komplain tentang ini " #~ "menjadi\n" #~ " sebuah login shell jika emang begitu. Hanya lakukan suspend saja." @@ -6047,7 +6183,7 @@ msgstr "" #~ "jika digunakan sebagai sebuah\n" #~ " nama perintah.\n" #~ " \n" -#~ " Jika sebuah opsi -t digunakan, `type' mengeluarkan sebuah kata " +#~ " Jika sebuah pilihan -t digunakan, `type' mengeluarkan sebuah kata " #~ "tunggal yang salah satu dari\n" #~ " `alias', `keyword', `function', `builtin', `file', atau `', jika NAMA " #~ "adalah sebuah\n" @@ -6081,11 +6217,11 @@ msgstr "" #~ msgstr "" #~ "File-creation mask pengguna diset ke MODE. Jika MODE diabaikan, atau " #~ "jika\n" -#~ " `-S' diberikan, nilai sekaran dari mask ditampilkan. Opsi `-S'\n" +#~ " `-S' diberikan, nilai sekaran dari mask ditampilkan. Pilihan `-S'\n" #~ " membuah keluaran symbolic; jika tidak sebuah bilangan octal " #~ "dikeluarkan.\n" -#~ " Jika opsi `-p' diberikan, dan MODE diabaikan, keluaran adalah dalam " -#~ "format\n" +#~ " Jika pilihan `-p' diberikan, dan MODE diabaikan, keluaran adalah " +#~ "dalam format\n" #~ " yang bisa digunakan sebagai masukan. Jika MODE dimulai dengan sebuah " #~ "digit, ini\n" #~ " diinterpretasikan sebagai sebuah bilangan octal, jika tidak ini " @@ -6127,14 +6263,15 @@ msgstr "" #~ " not each is set." #~ msgstr "" #~ "Ubah nilai dari variabel yang mengontrol perilaku opsional.\n" -#~ " Opsi -s berarti untuk mengaktifkan (set) setiap OPTNAME; opsi -u\n" +#~ " Pilihan -s berarti untuk mengaktifkan (set) setiap OPTNAME; pilihan -" +#~ "u\n" #~ " mengunset setiap OPTNAME. tanda -q menekan keluaran; status keluaran\n" -#~ " mengindikasikan apakah setiap OPTNAME diset atau diunset. Opsi -o\n" +#~ " mengindikasikan apakah setiap OPTNAME diset atau diunset. Pilihan -o\n" #~ " membatasi OPTNAME ke nilai yang didefinisikan untuk digunakan dengan\n" -#~ " `set -o'. Tanpa opsi, atau dengan opsi -p, sebuah daftar dari " +#~ " `set -o'. Tanpa pilihan, atau dengan pilihan -p, sebuah daftar dari " #~ "seluruh\n" -#~ " opsi yang bisa diset ditampilkan, tanpa sebuah indikasi apakah salah " -#~ "satu atau\n" +#~ " pilihan yang bisa diset ditampilkan, tanpa sebuah indikasi apakah " +#~ "salah satu atau\n" #~ " bukan setiap dari variabel diset." #~ msgid "" @@ -6149,11 +6286,11 @@ msgstr "" #~ "specifications." #~ msgstr "" #~ "Untuk setiap NAMA, spesifikasikan bagaimana argumen akan diselesaikan.\n" -#~ " Jika opsi -p diberikan, atau tidak ada opsi yang diberikan, " +#~ " Jika pilihan -p diberikan, atau tidak ada pilihan yang diberikan, " #~ "completion\n" #~ " spesifikasi yang telah ada ditampilkan dalam sebuah cara yang " #~ "membolehkan mereka untuk\n" -#~ " digunakan sebagai masukan. Opsi -r menghapus sebuah spesifikasi " +#~ " digunakan sebagai masukan. Pilihan -r menghapus sebuah spesifikasi " #~ "completion untuk\n" #~ " setiap NAMA, atau jika tidak ada NAMA yang diberikan, untuk semua " #~ "spesifikasi completion." diff --git a/po/ja.gmo b/po/ja.gmo index 6b29febe507d522710d8a525fa9ab5dcf442fff6..7def4d7c75b296731b7eb6737459be5665433771 100644 GIT binary patch delta 24 fcmexv|J{B=o(Q+0k*=|Uf`NsVk?H12kveVwZ14w< delta 24 fcmexv|J{B=o(Q*rk*=Yof}x3(sqyAYkveVwZ6ODf diff --git a/po/ja.po b/po/ja.po index 15543c0..18dec23 100644 --- a/po/ja.po +++ b/po/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bash 2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" "PO-Revision-Date: 2000-03-21 19:30+0900\n" "Last-Translator: Kyoichi Ozaki \n" "Language-Team: Japanese \n" @@ -18,50 +18,55 @@ msgstr "" msgid "bad array subscript" msgstr "" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -112,6 +117,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -125,7 +145,7 @@ msgstr "" msgid "line %d: " msgstr "¥¹¥í¥Ã¥È %3d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "½ñ¤­¹þ¤ßÃæ" @@ -135,11 +155,11 @@ msgstr " msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, fuzzy, c-format msgid "%s: option requires an argument" msgstr "¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬Í×: -" @@ -154,7 +174,7 @@ msgstr "" msgid "%s: not found" msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, fuzzy, c-format msgid "%s: invalid option" msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" @@ -179,7 +199,7 @@ msgstr " msgid "invalid hex number" msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 #, fuzzy msgid "invalid number" msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" @@ -194,7 +214,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤ÎÊÑ¿ô" @@ -269,26 +289,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: ¤¢¤¤¤Þ¤¤¤Ê¥ê¥À¥¤¥ì¥¯¥È" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -296,21 +316,21 @@ msgstr "" msgid "can only be used in a function" msgstr "" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤Î´Ø¿ô" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, fuzzy, c-format msgid "%s: cannot destroy array variables in this way" msgstr "$%s: ¤³¤Î¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -339,8 +359,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹" @@ -355,7 +375,8 @@ msgstr "%s: msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó" @@ -384,16 +405,16 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 #, fuzzy msgid "no command found" msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, fuzzy, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" @@ -483,12 +504,12 @@ msgstr "%s: msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 #, fuzzy msgid "Unknown error" msgstr "̤ÃΤΥ¨¥é¡¼ %d" @@ -497,56 +518,61 @@ msgstr "̤ msgid "expression expected" msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -638,12 +664,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, fuzzy, c-format msgid "read error: %d: %s" msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s" @@ -681,11 +707,11 @@ msgstr "%s: msgid "shift count" msgstr "shift [n]" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -777,81 +803,81 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 #, fuzzy msgid "unknown command error" msgstr "̤ÃΤΥ¨¥é¡¼ %d" -#: error.c:406 +#: error.c:407 #, fuzzy msgid "bad command type" msgstr "print_command: °­¤¤¥³¥Þ¥ó¥É¥¿¥¤¥× `%d'" -#: error.c:407 +#: error.c:408 #, fuzzy msgid "bad connector" msgstr "°­¤¤¼õÅϤ· `%d'" -#: error.c:408 +#: error.c:409 #, fuzzy msgid "bad jump" msgstr "°­¤¤ jump %d" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" #: eval.c:181 #, fuzzy, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "%c¤ÏÆþÎÏÂÔ¤Á¤«¤é¥¿¥¤¥à¥¢¥¦¥È¤·¤Þ¤·¤¿: ¼«Æ°¥í¥°¥¢¥¦¥È\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: À©¸Â: `/' ¤ò¥³¥Þ¥ó¥É̾¤Ëµ­½Ò¤Ç¤­¤Þ¤»¤ó" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, fuzzy, c-format msgid "%s: %s: bad interpreter" msgstr "%s: ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, fuzzy, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "fd %d ¤ò fd 0 ¤ËÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" @@ -898,29 +924,29 @@ msgstr "" msgid "missing `)'" msgstr "`)' ¤¬¤¢¤ê¤Þ¤»¤ó" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 #, fuzzy msgid "syntax error: operand expected" msgstr "¥·¥ó¥¿¥Ã¥¯¥¹ ¥¨¥é¡¼: ´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "¥Ù¡¼¥¹¤ÎÃͤˤÏÂ礭¤¹¤®¤Þ¤¹" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: »Ø¿ô¤Îɽ¸½¤ò´üÂÔ" @@ -930,7 +956,7 @@ msgstr "%s: msgid "getcwd: cannot access parent directories" msgstr "getwd: ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "fd %d ¤ò fd 0 ¤ËÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" @@ -983,7 +1009,7 @@ msgstr "̤ msgid "Done" msgstr "½ªÎ»" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Ää»ß" @@ -1020,72 +1046,76 @@ msgstr "( msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, fuzzy, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "ÂÔµ¡: pid %d ¤³¤Î¥·¥§¥ë¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: ¥¸¥ç¥Ö¤Ï½ªÎ»¤·¤Þ¤·¤¿" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "¥¹¥í¥Ã¥È %3d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (¥³¥¢¥À¥ó¥×)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 #, fuzzy msgid "initialize_job_control: getpgrp failed" msgstr "initialize_jobs: getpgrp ¼ºÇÔ: %s" -#: jobs.c:3623 +#: jobs.c:3639 #, fuzzy msgid "initialize_job_control: line discipline" msgstr "initialize_jobs: ¥é¥¤¥ó discipline: %s" -#: jobs.c:3633 +#: jobs.c:3649 #, fuzzy msgid "initialize_job_control: setpgid" msgstr "initialize_jobs: getpgrp ¼ºÇÔ: %s" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "¤³¤Î¥·¥§¥ë¤Ë¤Ï¥¸¥ç¥ÖÀ©¸æ¤¬¤¢¤ê¤Þ¤»¤ó" @@ -1176,6 +1206,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "¥á¡¼¥ë¤¬ $_ ¤Ë¤¢¤ê¤Þ¤¹" @@ -1189,137 +1239,137 @@ msgstr " msgid "The mail in %s has been read\n" msgstr "%s ¤Î¥á¡¼¥ë¤Ï´û¤ËÆɤޤì¤Æ¤Þ¤¹\n" -#: make_cmd.c:322 +#: make_cmd.c:323 #, fuzzy msgid "syntax error: arithmetic expression required" msgstr "ɽ¸½¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: make_cmd.c:324 +#: make_cmd.c:325 #, fuzzy msgid "syntax error: `;' unexpected" msgstr "¥·¥ó¥¿¥Ã¥¯¥¹ ¥¨¥é¡¼: ´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»" -#: make_cmd.c:325 +#: make_cmd.c:326 #, fuzzy, c-format msgid "syntax error: `((%s))'" msgstr "¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: °­¤¤»Ø¼¨¥¿¥¤¥× %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, fuzzy, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸" -#: parse.y:3722 +#: parse.y:3951 #, fuzzy msgid "unexpected EOF while looking for `]]'" msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸" -#: parse.y:3727 +#: parse.y:3956 #, fuzzy, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%s' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: parse.y:3731 +#: parse.y:3960 #, fuzzy msgid "syntax error in conditional expression" msgstr "ɽ¸½¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 #, fuzzy msgid "expected `)'" msgstr "`)' ¤ò´üÂÔ" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, fuzzy, c-format msgid "unexpected token `%c' in conditional command" msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" -#: parse.y:3924 +#: parse.y:4164 #, fuzzy, c-format msgid "unexpected token `%s' in conditional command" msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" -#: parse.y:3928 +#: parse.y:4168 #, fuzzy, c-format msgid "unexpected token %d in conditional command" msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%s' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: parse.y:5213 +#: parse.y:5477 #, fuzzy, c-format msgid "syntax error near `%s'" msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%s' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "¥·¥ó¥¿¥Ã¥¯¥¹ ¥¨¥é¡¼: ´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "¥·¥§¥ë¤«¤éæ½Ð¤¹¤ë¤Î¤Ë \"%s\" ¤ò»È¤¤¤Ê¤µ¤¤.\n" -#: parse.y:5447 +#: parse.y:5711 #, fuzzy msgid "unexpected EOF while looking for matching `)'" msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1329,72 +1379,91 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: °­¤¤Àܳ `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, fuzzy, c-format msgid "%s: ambiguous redirect" msgstr "%s: ¤¢¤¤¤Þ¤¤¤Ê¥ê¥À¥¤¥ì¥¯¥È" -#: redir.c:152 +#: redir.c:170 #, fuzzy, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: ¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤Ç¤­¤Þ¤»¤ó" -#: redir.c:157 +#: redir.c:175 #, fuzzy, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: À©¸Â: `/' ¤ò¥³¥Þ¥ó¥É̾¤Ëµ­½Ò¤Ç¤­¤Þ¤»¤ó" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: ¥ê¥¹¥È¤òÇÛÎó¥á¥ó¥Ð¡¼¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤»¤ó" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 #, fuzzy msgid "redirection error: cannot duplicate fd" msgstr "¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¥¨¥é¡¼" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, fuzzy, c-format msgid "%c%c: invalid option" msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "»ä¤Ï̾Á°¤¬¤¢¤ê¤Þ¤»¤ó!" -#: shell.c:1778 +#: shell.c:1793 #, fuzzy, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU %s, ¥Ð¡¼¥¸¥ç¥ó %s\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1403,387 +1472,408 @@ msgstr "" "»ÈÍÑÊýË¡:\t%s [GNU Ť¤¥ª¥×¥·¥ç¥ó] [¥ª¥×¥·¥ç¥ó] ...\n" "\t%s [GNU Ť¤¥ª¥×¥·¥ç¥ó] [¥ª¥×¥·¥ç¥ó] ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU Ť¤¥ª¥×¥·¥ç¥ó:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "¥·¥§¥ë ¥ª¥×¥·¥ç¥ó:\n" -#: shell.c:1786 +#: shell.c:1801 #, fuzzy msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD Ëô¤Ï ¥³¥Þ¥ó¥É\t\t(Áʤ¨¤Î¤ß)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s Ëô¤Ï -o ¥ª¥×¥·¥ç¥ó\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "¥·¥§¥ë¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï `%s -c \"help set\"'¤ÈÆþÎÏ.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï `%s -c help'¤ÈÆþÎÏ .\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "°­¤¤¥·¥°¥Ê¥ë" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Ää»ß" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "³ä¤ê¹þ¤ß" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "½ªÎ»" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "°­¤¤»Ø¼¨" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "»Ø¼¨¤ÎÃæ»ß" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "EMT »Ø¼¨" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "ÉâÆ°ÅÀ¤ÎÎã³°" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "»¦¤·¤Þ¤·¤¿" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "¥Ð¥¹¥¨¥é¡¼" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¥Õ¥©¥ë¥È" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "°­¤¤¥·¥¹¥Æ¥à¥³¡¼¥ë" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "¥Ñ¥¤¥×¤¬ÀÚ¤ì¤Þ¤·¤¿" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "¥¢¥é¡¼¥à»þ·×" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "½ªÎ»¤·¤Þ¤·¤¿" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "µÞ¤®¤Î IO ¾õÂÖ" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Ää»ß (¥·¥°¥Ê¥ë)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "³¹Ô" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "»Ò¤Î½ªÎ»Ëô¤ÏÄä»ß " -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Ää»ß (tty ÆþÎÏ)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Ää»ß (tty ½ÐÎÏ)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O ÍÑ°Õ¤¬¤Ç¤­¤Æ¤¤¤Þ¤¹" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "CPU ¸ÂÅÙ" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "¥Õ¥¡¥¤¥ë¸ÂÅÙ" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "·ÙÊó (²¾ÁÛ)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "·ÙÊó (¥×¥í¥Õ¥¡¥¤¥ë)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Á뤬Êѹ¹¤µ¤ì¤Þ¤·¤¿" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "µ­Ï¿¤Î¥í¥Ã¥¯" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "¥æ¡¼¥¶¥·¥°¥Ê¥ë 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "¥æ¡¼¥¶¥·¥°¥Ê¥ë 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT ̤·è¤ÎÆþÎϥǡ¼¥¿" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "ÅŸ»¸Î¾ã¤Î´í¸±" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "¥·¥¹¥Æ¥à¥¯¥é¥Ã¥·¥å¤Î´í¸±" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "¥×¥í¥»¥¹¤ò°ã¤¦CPU¤Ë°ÜÆ°" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "¥×¥í¥°¥é¥ß¥ó¥°¥¨¥é¡¼" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HTF monitor¥â¡¼¥É¤¬Í¿¤¨¤é¤ì¤Þ¤·¤¿" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT monitor¥â¡¼¥É¤¬Ã¥¤ï¤ì¤Þ¤·¤¿" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "̤ÃΤΥ·¥°¥Ê¥ë #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "̤ÃΤΥ·¥°¥Ê¥ë #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, fuzzy, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "°­¤¤ÂåÆþ: `%s' ¤¬ %s ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: ¥ê¥¹¥È¤òÇÛÎó¥á¥ó¥Ð¡¼¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤»¤ó" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 #, fuzzy msgid "cannot make pipe for process substitution" msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" -#: subst.c:4504 +#: subst.c:4802 #, fuzzy msgid "cannot make child for process substitution" msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë»Ò¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" -#: subst.c:4549 +#: subst.c:4847 #, fuzzy, c-format msgid "cannot open named pipe %s for reading" msgstr "named pipe %s ¤ò %s ¤Ø³«¤±¤Þ¤»¤ó: %s" -#: subst.c:4551 +#: subst.c:4849 #, fuzzy, c-format msgid "cannot open named pipe %s for writing" msgstr "named pipe %s ¤ò %s ¤Ø³«¤±¤Þ¤»¤ó: %s" -#: subst.c:4569 +#: subst.c:4867 #, fuzzy, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "named pipe %s ¤ò fd %d ¤Î¤¿¤á¤ËÊ£À½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó: %s" -#: subst.c:4765 +#: subst.c:5063 #, fuzzy msgid "cannot make pipe for command substitution" msgstr "ÂåÍý¥³¥Þ¥ó¥É¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" -#: subst.c:4799 +#: subst.c:5097 #, fuzzy msgid "cannot make child for command substitution" msgstr "ÂåÍý¥³¥Þ¥ó¥É¤Ë»Ò¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" -#: subst.c:4816 +#: subst.c:5114 #, fuzzy msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: ¥Ñ¥¤¥×¤ò fd 1 ¤È¤·¤ÆÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: ¥Ñ¥é¥á¡¼¥¿¤¬¥Ì¥ëËô¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: °­¤¤ÂåÍý" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: ¤³¤Î¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "°­¤¤ÂåÆþ: `%s' ¤¬ %s ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "°ú¿ô¤ò´üÂÔ" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: »Ø¿ô¤Îɽ¸½¤ò´üÂÔ" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "`)' ¤ò´üÂÔ" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "`)', ¤ò´üÂÔ, ÆÀ¤¿¤Î¤Ï %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "`]'¤¬È´¤±¤Æ¤Þ¤¹" -#: trap.c:201 +#: trap.c:203 #, fuzzy msgid "invalid signal number" msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, fuzzy, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: °­¤¤¥·¥°¥Ê¥ë %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: ¥Ñ¥é¥á¡¼¥¿¤¬¥Ì¥ëËô¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1794,60 +1884,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, fuzzy, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU %s, ¥Ð¡¼¥¸¥ç¥ó %s\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" msgstr "" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -1977,7 +2059,7 @@ msgstr "hash [-r] [-p #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "help [¥Ñ¥¿¡¼¥ó ...]" #: builtins.c:121 @@ -2012,8 +2094,8 @@ msgstr "let #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2195,9 +2277,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2208,7 +2290,7 @@ msgstr "" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "type [-apt] ̾Á° [̾Á° ...]" #: builtins.c:240 @@ -2931,7 +3013,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2951,7 +3037,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2963,7 +3049,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3045,7 +3131,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3065,7 +3151,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3084,7 +3170,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3104,7 +3190,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3115,7 +3201,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3129,7 +3215,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3143,7 +3229,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3220,7 +3306,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3228,7 +3314,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3240,7 +3326,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3276,7 +3362,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3306,7 +3392,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3350,7 +3436,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3368,7 +3454,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3385,7 +3471,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3399,7 +3485,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3412,7 +3498,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3429,7 +3515,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3449,7 +3535,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3465,7 +3551,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3476,7 +3562,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3497,7 +3583,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3508,7 +3594,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3519,7 +3605,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3532,7 +3618,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3546,7 +3632,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3557,7 +3643,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3571,7 +3657,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3582,7 +3668,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3610,7 +3696,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3664,7 +3750,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3695,7 +3781,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3722,7 +3808,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3751,7 +3837,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3772,7 +3858,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3802,7 +3888,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3816,15 +3902,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3837,7 +3928,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3850,6 +3941,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3866,15 +3959,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3901,10 +3994,12 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/po/lt.gmo b/po/lt.gmo index 3b3360c2fc3a0bd4c2727f81e4f2bc2fc1a5b610..a3be0facec56d1387e4c51706a5496eef11c0fb3 100644 GIT binary patch delta 12721 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 G<9`9)ZarE6 delta 7422 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 adT3`_`8!EZjDH%unf$&7|L3{0_4D7f5vs=k diff --git a/po/lt.po b/po/lt.po index b783b81..d0000ec 100644 --- a/po/lt.po +++ b/po/lt.po @@ -1,74 +1,79 @@ -# translation of bash-4.0-pre1.po to Lithuanian +# translation of bash-4.0.po to Lithuanian # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. # -# Gintautas Miliauskas , 2008. +# Gintautas Miliauskas , 2009. msgid "" msgstr "" -"Project-Id-Version: bash-4.0-pre1\n" +"Project-Id-Version: bash-4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2009-02-13 16:28+0200\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-03-25 16:49+0200\n" "Last-Translator: Gintautas Miliauskas \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" "100<10 || n%100>=20) ? 1 : 2);\n" #: arrayfunc.c:50 msgid "bad array subscript" msgstr "blogas masyvo indeksas" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: netaisyklingas veiksmo pavadinimas" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: nepavyko priskirti prie neskaitinio indekso" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: nepavyko sukurti: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: nepavyko rasti keymapo komandai" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: pirmas ne tarpo simbolis nėra „\"“" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "nėra uždarančiojo „%c“ %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: trÅ«ksta dvitaÅ¡kio skirtuko" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "„%s“: netaisyklingas keymap'o pavadinimas" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "eilutės redagavimas neįgalintas" #: builtins/bind.def:206 #, c-format @@ -116,6 +121,21 @@ msgid "" " Without EXPR, returns " msgstr "Grąžina esamos procedÅ«ros kontekstą." +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME nenustatytas" @@ -127,9 +147,9 @@ msgstr "OLDPWD nenustatytas" #: builtins/common.c:101 #, c-format msgid "line %d: " -msgstr "" +msgstr "eilutė %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "įspėjimas: " @@ -139,11 +159,11 @@ msgstr "įspėjimas: " msgid "%s: usage: " msgstr "%s: naudojimas: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "per daug argumentų" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: parametrui reikia argumento" @@ -158,7 +178,7 @@ msgstr "%s: reikia skaitinio argumento" msgid "%s: not found" msgstr "%s: nerasta" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: negalimas parametras" @@ -181,7 +201,7 @@ msgstr "netaisyklingas aÅ¡tuonetainis skaičius" msgid "invalid hex number" msgstr "netaisyklingas Å¡eÅ¡ioliktainis skaičius" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "netaisyklingas skaičius" @@ -195,7 +215,7 @@ msgstr "%s: netaisyklinga signalo specifikacija" msgid "`%s': not a pid or valid job spec" msgstr "„%s“: ne pid'as ar taisyklinga darbo specifikacija" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: kintamasis tik skaitymui" @@ -267,26 +287,26 @@ msgstr "%s: klaida skaitant esamą aplanką: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: dviprasmis darbo apraÅ¡ymas" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: netaisyklingas veiksmo pavadinimas" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: nėra baigimo specifikacijos" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "įspėjimas: parametras -F gali neveikti taip, kaip tikitės" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "įspėjimas: parametras -C gali neveikti taip, kaip tikitės" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -294,21 +314,21 @@ msgstr "" msgid "can only be used in a function" msgstr "galima naudoti tik funkcijoje" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "negalima naudoti „-f“ funkcijoms kurti" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funkcija tik skaitymui" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: negalima tokiu bÅ«du sunaikinti masyvų kintamųjų" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -337,8 +357,8 @@ msgstr "%s: nedinamiÅ¡kai įkrauta" msgid "%s: cannot delete: %s" msgstr "%s: nepavyko iÅ¡trinti: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: aplankas" @@ -353,7 +373,8 @@ msgstr "%s: ne paprastas failas" msgid "%s: file is too large" msgstr "%s: failas per didelis" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: negalima vykdyti dvejetainių failų" @@ -382,15 +403,15 @@ msgstr "Yra sustabdytų darbų.\n" msgid "There are running jobs.\n" msgstr "Yra veikiančių darbų.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "komandų nerasta" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "istorijos specifikacija" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: nepavyko atverti laikinojo failo: %s" @@ -492,12 +513,12 @@ msgstr "%s: istorijos iÅ¡skleidimas nesėkmingas" msgid "no other options allowed with `-x'" msgstr "su „-x“ neleidžiama naudoti kitų parametrų" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argumentai turi bÅ«ti procesų arba darbų ID" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Nežinoma klaida" @@ -505,56 +526,61 @@ msgstr "Nežinoma klaida" msgid "expression expected" msgstr "tikėtasi iÅ¡raiÅ¡kos" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: ne masyvo kintamasis" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: netaisyklinga failo deskriptoriaus specifikacija" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: netaisyklingas failo deskriptorius: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: nesamas parametras" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: nesamas parametras" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s: netaisyklingas veiksmo pavadinimas" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: ne masyvo kintamasis" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "„%s“: trÅ«ksta formato simbolio" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "„%c“: netaisyklingas formato simbolis" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "įspėjimas: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "trÅ«ksta Å¡eÅ¡ioliktainio skaitmens iÅ¡raiÅ¡koje \\x" @@ -645,12 +671,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: klaidinga laiko ribos (timeout) specifikacija" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "skaitymo klaida: %d: %s" @@ -687,11 +713,11 @@ msgstr "%s: ne funkcija" msgid "shift count" msgstr "postÅ«mių skaičius" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "negalima aplinkos nuostatos vienu metu įjungti ir iÅ¡jungti" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: netaisyklingas aplinkos nuostatos pavadinimas" @@ -760,7 +786,7 @@ msgstr "%s: nepavyko gauti limito: %s" #: builtins/ulimit.def:453 msgid "limit" -msgstr "" +msgstr "riba" #: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format @@ -781,77 +807,77 @@ msgstr "„%c“: netaisyklingas simbolinės veiksenos operatorius" msgid "`%c': invalid symbolic mode character" msgstr "„%c“: netaisyklingas simbolinės veiksenos simbolis" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " -msgstr "" +msgstr " eilutė " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "paskutinė komanda: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Nutraukiama..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "nežinoma komandos klaida" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "blogas komandos tipas" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "blogas jungtukas" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "blogas Å¡uolis" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: nepriskirtas kintamasis" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\alaukiant įvedimo baigėsi laikas: automatiÅ¡kai atsijungta\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "laukiant įvedimo baigėsi laikas: automatiÅ¡kai atsijungta\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "nepavyko peradresuoti standartinio įvedimo iÅ¡ /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: „%c“: netaisyklingas formato simbolis" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "raÅ¡ymo klaida: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: apribota: negalima naudoti „/“ komandų pavadinimuose" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: komanda nerasta" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: blogas interpretatorius" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "nepavyko dublikuoti fd %d į fd %d" @@ -897,37 +923,37 @@ msgstr "" msgid "missing `)'" msgstr "TrÅ«ksta „)“" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "sintaksės klaida: tikėtasi operando" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "sintaksės klaida: netaisyklingas aritmetinis operatorius" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "netaisyklingas aritmetinis pagrindas" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "per didelė pagrindo reikÅ¡mė" -#: expr.c:1328 -#, fuzzy, c-format +#: expr.c:1329 +#, c-format msgid "%s: expression error\n" -msgstr "%s: tikėtasi skaitinės iÅ¡raiÅ¡kos" +msgstr "%s: iÅ¡raiÅ¡kos klaida\n" #: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "getcwd: nepavyko pasiekti aukÅ¡tesnių aplankų" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "nepavyko dublikuoti fd %d į fd %d" @@ -974,13 +1000,13 @@ msgstr "describe_pid: %ld: tokio pid nėra" #: jobs.c:1416 #, c-format msgid "Signal %d" -msgstr "" +msgstr "Signalas %d" #: jobs.c:1430 jobs.c:1455 msgid "Done" -msgstr "" +msgstr "Atlikta" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -996,7 +1022,7 @@ msgstr "" #: jobs.c:1457 #, c-format msgid "Done(%d)" -msgstr "" +msgstr "Atlikta(%d)" #: jobs.c:1459 #, c-format @@ -1005,7 +1031,7 @@ msgstr "" #: jobs.c:1462 msgid "Unknown status" -msgstr "" +msgstr "Nežinoma bÅ«sena" #: jobs.c:1549 #, c-format @@ -1017,69 +1043,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld nėra Å¡ios aplinkos dukterinis procesas" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: nėra proceso %ld įraÅ¡o" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: darbas %d yra sustabdytas" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: darbas užsibaigė" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: darbas %d jau fone" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: %d eilutė: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "Å¡ioje aplinkoje nėra darbų valdymo" @@ -1171,6 +1201,26 @@ msgstr "%s: netaisyklingas tinklo kelias" msgid "network operations not supported" msgstr "tinklo operacijos nepalaikomos" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Turite laiÅ¡kų $_" @@ -1184,131 +1234,131 @@ msgstr "Turite naujų laiÅ¡kų $_" msgid "The mail in %s has been read\n" msgstr "PaÅ¡tas %s perskaitytas\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "sintaksės klaida: reikia aritmetinės iÅ¡raiÅ¡kos" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "sintaksės klaida: netikėtas „;“" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "sintaksės klaida: „((%s))“" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: blogas instrukcijos tipas %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: nukreipimo instrukcija „%d“ už ribų" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "netikėta failo pabaiga ieÅ¡kant atitinkamo „%c“" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "netikėta failo pabaiga ieÅ¡kant „]]“" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "sintaksės klaida sąlygos iÅ¡raiÅ¡koje: netikėta leksema „%s“" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "sintaksės klaida sąlygos iÅ¡raiÅ¡koje" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "netikėta leksema „%s“, tikėtasi „)“" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "tikėtasi „)“" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "netikėtas argumentas „%s“ sąlygos unariniam operatoriui" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "netikėtas argumentas sąlygos unariniam operatoriui" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "netikėta leksema „%s“, tikėtasi sąlyginio binarinio operatoriaus" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "tikėtasi sąlygos binarinio operatoriaus" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "netikėtas argumentas „%s“ sąlygos binariniam operatoriui" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "netikėtas argumentas sąlygos binariniam operatoriui" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "netikėta leksema „%c“ sąlygos komandoje" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "netikėta leksema „%s“ sąlygos komandoje" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "netikėta leksema %d sąlygos komandoje" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "sintaksės klaida prie netikėtos leksemos: „%s“" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "sintaksės klaida prie „%s“" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "sintaksės klaida: netikėta failo pabaiga" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "sintaksės klaida" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Naudokite „%s“, jei norite iÅ¡eiti iÅ¡ ap.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "netikėta failo pabaiga ieÅ¡kant atitinkamo „)“" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion: funkcija „%s“ nerasta" @@ -1318,71 +1368,90 @@ msgstr "completion: funkcija „%s“ nerasta" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: blogas jungtukas  „%d“" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: netaisyklingas failo deskriptorius: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: „%c“: netaisyklingas formato simbolis" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "failo deskriptorius už ribų" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: ambiguous redirect" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: negalima perraÅ¡yti egzistuojančio failo" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: apribota: negalima peradresuoti iÅ¡vedimo" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: negalima priskirti sąraÅ¡o masyvo elementui" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/serveris/prievadas nepalaikoma be tinklo" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "nukreipimo klaida: nepavyko dublikuoti fd" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "nepavyko rasti /tmp, sukurkite šį aplanką!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp turi bÅ«ti taisyklingas aplanko pavadinimas" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: netaisyklingas parametras" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Neturiu vardo!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" -msgstr "" +msgstr "GNU bash, versija %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1391,456 +1460,473 @@ msgstr "" "Naudojimas:\t%s [GNU ilgas parametras] [parametras] ...\n" "\t%s [GNU ilgas parametras] [parametras] scenarijaus-failas ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU ilgi parametrai:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Aplinkos parametrai:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" "\t-irsD arba -c komanda arba -O shopt_nustatymas\t\t(tik iÅ¡kvietimui)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s arba -o nustatymas\n" -#: shell.c:1807 +#: shell.c:1822 #, fuzzy, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Bandykite „%s --help“ arba „%s --usage“, jei norite gauti daugiau " "informacijos.\n" -#: shell.c:1808 +#: shell.c:1823 #, fuzzy, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "Bandykite „ldd --help“, jei norite daugiau informacijos." -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Naudokite komandą „bashbug“ klaidoms praneÅ¡ti.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: netaisyklinga operacija" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "ABORT instrukcija" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Slankaus kablelio klaida" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "sintaksės klaida" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Segmentacijos klaida" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Žadintuvas" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Nutraukta" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Sustabdyta (signalas)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" -msgstr "" +msgstr "Tęsti" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Sustabdyta (tty įvedimas)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Sustabdyta (tty iÅ¡vedimas)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "CPU riba" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Failų riba" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Langas pakeistas" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "proceso migravimas į kitą CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" -msgstr "" +msgstr "programavimo klaida" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" -msgstr "" +msgstr "Informacijos užklausa" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" -msgstr "" +msgstr "Nežinomas signalas #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" -msgstr "" +msgstr "Nežinomas signalas #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "blogas keitinys: trÅ«ksta „%s“ %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: negalima priskirti sąraÅ¡o masyvo elementui" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parametras tuščias arba nenustatytas" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: posekio iÅ¡raiÅ¡ka < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: blogas keitinys" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: negalima tokiu bÅ«du priskirti" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "blogas keitinys: trÅ«ksta „%s“ %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "nėra atitikmenų: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "tikėtasi argumento" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: tikėtasi skaitinės iÅ¡raiÅ¡kos" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "tikėtasi „)“" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "tikėtasi „)“, rasta %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: tikėtasi unarinio operatoriaus" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: tikėtasi binarinio operatoriaus" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "trÅ«ksta „]“" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "netaisyklingas signalo numeris" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: bloga trap_list[%d] reikÅ¡mė: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "run_pending_traps: signalo doroklė yra SIG_DFL, siunčiamas %d (%s) sau" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: blogas signalas %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "klaida importuojant funkcijos apibrėžimą „%s“" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "aplinkos lygmuo (%d) per aukÅ¡tas, nustatoma į 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parametras tuščias arba nenustatytas" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "netaisyklingas simbolis %d %s exportstr'e" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "%s exportstr'e trÅ«ksta „=“" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: nėra global_variables konteksto" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: nepavyko atverti: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: netaisyklingas failo deskriptorius: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Autorinės teisės (C) 2008 Free Software Foundation, Inc." +msgstr "Autorinės teisės (C) 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" "License GPLv3+: GNU GPL version 3 or later \n" msgstr "" +"Licencija GPLv3+: GNU GPL versija 3 arba naujesnė \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" -msgstr "" +msgstr "GNU bash, versija %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" +"Tai yra laisva programinė įranga; jÅ«s esate laisvas keisti ir platinti ją.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "Nėra JOKIOS GARANTIJOS, kiek tik tą leidžia įstatymas.\n" + +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Autorinės teisės (C) 2009 Free Software Foundation, Inc." + +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" +"Licencija GPLv3+: GNU GPL versija 3 arba naujesnė \n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: nepavyko iÅ¡skirti %lu baitų (%lu baitų iÅ¡skirta)" -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" msgstr "xmalloc: nepavyko iÅ¡skirti %lu baitų" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: nepavyko iÅ¡skirti %lu baitų" - -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s:%d: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: nepavyko iÅ¡skirti %lu baitų" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" -msgstr "" +msgstr "alias [-p] [pavadinimas[=reikÅ¡mė] ... ]" #: builtins.c:47 msgid "unalias [-a] name [name ...]" -msgstr "" +msgstr "unalias [-a] pavadinimas [pavadinimas ...]" #: builtins.c:51 msgid "" @@ -1850,91 +1936,92 @@ msgstr "" #: builtins.c:54 msgid "break [n]" -msgstr "" +msgstr "break [n]" #: builtins.c:56 msgid "continue [n]" -msgstr "" +msgstr "continue [n]" #: builtins.c:58 msgid "builtin [shell-builtin [arg ...]]" -msgstr "" +msgstr "builtin [aplinkos-komanda [arg ...]]" #: builtins.c:61 msgid "caller [expr]" -msgstr "" +msgstr "caller [iÅ¡raiÅ¡ka]" #: builtins.c:64 msgid "cd [-L|-P] [dir]" -msgstr "" +msgstr "cd [-L|-P] [aplankas]" #: builtins.c:66 msgid "pwd [-LP]" -msgstr "" +msgstr "pwd [-LP]" #: builtins.c:68 msgid ":" -msgstr "" +msgstr ":" #: builtins.c:70 msgid "true" -msgstr "" +msgstr "true" #: builtins.c:72 msgid "false" -msgstr "" +msgstr "false" #: builtins.c:74 msgid "command [-pVv] command [arg ...]" -msgstr "" +msgstr "command [-pVv] komanda [arg ...]" #: builtins.c:76 msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" -msgstr "" +msgstr "declare [-aAfFilrtux] [-p] [pavadinimas[=reikÅ¡mė] ...]" #: builtins.c:78 msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." -msgstr "" +msgstr "typeset [-aAfFilrtux] [-p] pavadinimas[=reikÅ¡mė] ..." #: builtins.c:80 msgid "local [option] name[=value] ..." -msgstr "" +msgstr "local [option] pavadinimas[=reikÅ¡mė] ..." #: builtins.c:83 msgid "echo [-neE] [arg ...]" -msgstr "" +msgstr "echo [-neE] [arg ...]" #: builtins.c:87 msgid "echo [-n] [arg ...]" -msgstr "" +msgstr "echo [-n] [arg ...]" #: builtins.c:90 msgid "enable [-a] [-dnps] [-f filename] [name ...]" -msgstr "" +msgstr "enable [-a] [-dnps] [-f failopavadinimas] [pavadinimas ...]" #: builtins.c:92 msgid "eval [arg ...]" -msgstr "" +msgstr "eval [arg ...]" #: builtins.c:94 msgid "getopts optstring name [arg]" -msgstr "" +msgstr "getopts optsekos pavadinimas [arg]" #: builtins.c:96 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" msgstr "" +"exec [-cl] [-a pavadinimas] [komanda [argumentai ...]] [nukreipimas ...]" #: builtins.c:98 msgid "exit [n]" -msgstr "" +msgstr "exit [n]" #: builtins.c:100 msgid "logout [n]" -msgstr "" +msgstr "logout [n]" #: builtins.c:103 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -msgstr "" +msgstr "fc [-e evardas] [-lnr] [pirm] [pask] arba fc -s [pat=rep] [komanda]" #: builtins.c:107 msgid "fg [job_spec]" @@ -1949,8 +2036,9 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" -msgstr "" +#, fuzzy +msgid "help [-dms] [pattern ...]" +msgstr "echo [-n] [arg ...]" #: builtins.c:121 msgid "" @@ -1971,103 +2059,102 @@ msgid "" "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " "[sigspec]" msgstr "" +"kill [-s sigspec | -n signum | -sigspec] pid | darbospec ... arba kill -l " +"[sigspec]" #: builtins.c:134 msgid "let arg [arg ...]" -msgstr "" +msgstr "let arg [arg ...]" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 msgid "return [n]" -msgstr "" +msgstr "return [n]" #: builtins.c:140 msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" -msgstr "" +msgstr "set [--abefhkmnptuvxBCHP] [-o nustatymas] [arg ...]" #: builtins.c:142 msgid "unset [-f] [-v] [name ...]" -msgstr "" +msgstr "unset [-f] [-v] [pavadinimas ...]" #: builtins.c:144 msgid "export [-fn] [name[=value] ...] or export -p" -msgstr "" +msgstr "export [-fn] [pavadinimas[=vertė] ...] arba export -p" #: builtins.c:146 msgid "readonly [-af] [name[=value] ...] or readonly -p" -msgstr "" +msgstr "readonly [-af] [pavadinimas[=vertė] ...] arba readonly -p" #: builtins.c:148 -#, fuzzy msgid "shift [n]" -msgstr "postÅ«mių skaičius" +msgstr "shift [n]" #: builtins.c:150 -#, fuzzy msgid "source filename [arguments]" -msgstr "reikia failo pavadinimo argumento" +msgstr "source failopavadinimas [argumentai]" #: builtins.c:152 -#, fuzzy msgid ". filename [arguments]" -msgstr "reikia failo pavadinimo argumento" +msgstr ". failopavadinimas [argumentai]" #: builtins.c:155 msgid "suspend [-f]" -msgstr "" +msgstr "suspend [-f]" #: builtins.c:158 msgid "test [expr]" -msgstr "" +msgstr "test [iÅ¡rk]" #: builtins.c:160 msgid "[ arg... ]" -msgstr "" +msgstr "[ arg... ]" #: builtins.c:162 msgid "times" -msgstr "" +msgstr "times" #: builtins.c:164 msgid "trap [-lp] [[arg] signal_spec ...]" -msgstr "" +msgstr "trap [-lp] [[arg] signalo_spec ...]" #: builtins.c:166 msgid "type [-afptP] name [name ...]" -msgstr "" +msgstr "type [-afptP] pavadinimas [pavadinimas ...]" #: builtins.c:169 msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" -msgstr "" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [riba]" #: builtins.c:172 msgid "umask [-p] [-S] [mode]" -msgstr "" +msgstr "umask [-p] [-S] [režimas]" #: builtins.c:175 msgid "wait [id]" -msgstr "" +msgstr "wait [id]" #: builtins.c:179 msgid "wait [pid]" -msgstr "" +msgstr "wait [pid]" #: builtins.c:182 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" -msgstr "" +msgstr "for PAVADINIMAS [in ŽODŽIAI ... ] ; do KOMANDOS; done" #: builtins.c:184 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" -msgstr "" +msgstr "for (( iÅ¡rk1; iÅ¡rk2; iÅ¡rk3 )); do KOMANDOS; done" #: builtins.c:186 msgid "select NAME [in WORDS ... ;] do COMMANDS; done" -msgstr "" +msgstr "select PAVADINIMAS [in ŽODŽIAI ... ;] do KOMANDOS; done" #: builtins.c:188 msgid "time [-p] pipeline" @@ -2082,14 +2169,16 @@ msgid "" "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " "COMMANDS; ] fi" msgstr "" +"if KOMANDOS; then KOMANDOS; [ elif KOMANDOS; then KOMANDOS; ]... [ else " +"KOMANDOS; ] fi" #: builtins.c:194 msgid "while COMMANDS; do COMMANDS; done" -msgstr "" +msgstr "while KOMANDOS; do KOMANDOS; done" #: builtins.c:196 msgid "until COMMANDS; do COMMANDS; done" -msgstr "" +msgstr "until KOMANDOS; do KOMANDOS; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" @@ -2097,15 +2186,15 @@ msgstr "" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" -msgstr "" +msgstr "funkcijos pavadinimas { KOMANDOS ; } arba name () { KOMANDOS ; }" #: builtins.c:202 msgid "{ COMMANDS ; }" -msgstr "" +msgstr "{ KOMANDOS ; }" #: builtins.c:204 msgid "job_spec [&]" -msgstr "" +msgstr "darbo_spec [&]" #: builtins.c:206 msgid "(( expression ))" @@ -2117,33 +2206,33 @@ msgstr "[[ iÅ¡raiÅ¡ka ]]" #: builtins.c:210 msgid "variables - Names and meanings of some shell variables" -msgstr "" +msgstr "kintamieji – Kai kurių aplinkos kintamųjų pavadinimai ir reikÅ¡mės" #: builtins.c:213 msgid "pushd [-n] [+N | -N | dir]" -msgstr "" +msgstr "pushd [-n] [+N | -N | dir]" #: builtins.c:217 msgid "popd [-n] [+N | -N]" -msgstr "" +msgstr "popd [-n] [+N | -N]" #: builtins.c:221 msgid "dirs [-clpv] [+N] [-N]" -msgstr "" +msgstr "dirs [-clpv] [+N] [-N]" #: builtins.c:224 msgid "shopt [-pqsu] [-o] [optname ...]" -msgstr "" +msgstr "shopt [-pqsu] [-o] [optvardas ...]" #: builtins.c:226 msgid "printf [-v var] format [arguments]" -msgstr "" +msgstr "printf [-v kint] formatas [argumentai]" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2153,8 +2242,9 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" -msgstr "" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" +msgstr "shopt [-pqsu] [-o] [optvardas ...]" #: builtins.c:240 msgid "" @@ -2915,7 +3005,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2935,7 +3029,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2947,7 +3041,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3029,7 +3123,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3049,7 +3143,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3068,7 +3162,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3088,7 +3182,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3099,7 +3193,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 #, fuzzy msgid "" "Execute commands from a file in the current shell.\n" @@ -3118,7 +3212,7 @@ msgstr "" " Jei nurodyta ARGUMENTŲ, jie tampa poziciniais parametrais iÅ¡kvietus\n" " FAILĄ." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3132,7 +3226,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3209,7 +3303,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3217,7 +3311,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3229,7 +3323,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3265,7 +3359,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3295,7 +3389,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3339,7 +3433,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3357,7 +3451,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3374,7 +3468,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3388,7 +3482,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3401,7 +3495,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3418,7 +3512,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3438,7 +3532,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3454,7 +3548,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3465,7 +3559,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3486,7 +3580,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -3500,7 +3594,7 @@ msgstr "" "IÅ¡skleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iÅ¡\n" " „while“ komandų grąžina klaidos kodą 0." -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -3514,7 +3608,7 @@ msgstr "" "IÅ¡skleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iÅ¡\n" " „until“ komandų grąžina klaidos kodą, nelygų 0." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3527,7 +3621,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3541,7 +3635,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -3555,7 +3649,7 @@ msgstr "" "Vykdyti eilę komandų grupėje. Tai yra vienas iÅ¡ bÅ«dų nukreipti\n" " visos eilės komandų įvedimą/iÅ¡vedimą." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3569,7 +3663,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3580,7 +3674,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3608,7 +3702,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3662,7 +3756,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3693,7 +3787,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3720,7 +3814,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3749,7 +3843,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3770,7 +3864,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 #, fuzzy msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" @@ -3812,7 +3906,7 @@ msgstr "" " Jei pateiktas parametras -v, iÅ¡vedimas įraÅ¡omas į aplinkos kintamąjį\n" " KINT, užuot spausdinus į standartinį iÅ¡vedimą." -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3826,15 +3920,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 #, fuzzy msgid "" "Display possible completions depending on the options.\n" @@ -3852,7 +3951,7 @@ msgstr "" " Jei pateiktas nebÅ«tinasis ŽODŽIO argumentas, iÅ¡vedami įraÅ¡ai,\n" " atitinkantys ŽODÄ®." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3865,6 +3964,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3881,15 +3982,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3916,16 +4017,27 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: nepavyko iÅ¡skirti %lu baitų" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" + #~ msgid " " #~ msgstr " " diff --git a/po/nl.gmo b/po/nl.gmo index c56b4761b2a998376de843fba04c8e8a338b6312..9ff8b25527137f9b5ed56a0c25916cb589ca33e1 100644 GIT binary patch delta 12806 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 delta 15501 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 diff --git a/po/nl.po b/po/nl.po index 6c39606..48b382f 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,5 +1,5 @@ -# Dutch translations for bash-4.0-pre1. -# Copyright (C) 2008 Free Software Foundation, Inc. +# Dutch translations for bash +# Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. # # De vertaling van de ruim 70 laatste hulpteksten (65%) in dit bestand @@ -20,13 +20,14 @@ # Erick Branderhorst , 1996. # Julie Vermeersch , 2004. # Benno Schulenberg , 2006, 2008. +# Erwin Poeze , 2009. msgid "" msgstr "" -"Project-Id-Version: bash-4.0-pre1\n" +"Project-Id-Version: bash-4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2008-09-21 19:58+0200\n" -"Last-Translator: Benno Schulenberg \n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-12-03 15:15+0100\n" +"Last-Translator: Erwin Poeze \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,54 +39,59 @@ msgstr "" msgid "bad array subscript" msgstr "ongeldige array-index" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: kan geïndexeerd array niet omzetten naar associatief array" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: ongeldige sleutel voor associatief array" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: niet-numerieke index is niet mogelijk" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "%s: %s: een index is nodig bij toekenning aan associatief array" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "Kan %s niet aanmaken: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "bash_execute_unix_command(): kan voor opdracht geen toetsenkaart vinden" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: eerste teken dat geen witruimte is is niet '\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "geen sluit-'%c' in %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: ontbrekend scheidingsteken (dubbele punt)" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "'%s': ongeldige naam voor toetsenkaart" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "bewerken van regels niet ingeschakeld" #: builtins/bind.def:206 #, c-format @@ -126,12 +132,29 @@ msgid "only meaningful in a `for', `while', or `until' loop" msgstr "heeft alleen betekenis in een 'for'-, 'while'- of 'until'-lus" #: builtins/caller.def:133 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" " Without EXPR, returns " -msgstr "Geeft de context van de huidige functie-aanroep." +msgstr "" +"Geeft de context van de huidige functie-aanroep.\n" +" \n" +" Zonder EXPR, resulteert " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -146,7 +169,7 @@ msgstr "OLDPWD is niet gedefinieerd" msgid "line %d: " msgstr "regel %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "waarschuwing: " @@ -154,13 +177,13 @@ msgstr "waarschuwing: " #: builtins/common.c:153 #, c-format msgid "%s: usage: " -msgstr "%s: Gebruik: " +msgstr "%s: gebruik: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "te veel argumenten" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: optie vereist een argument" @@ -175,7 +198,7 @@ msgstr "%s: vereist een numeriek argument" msgid "%s: not found" msgstr "%s: niet gevonden" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: ongeldige optie" @@ -198,7 +221,7 @@ msgstr "ongeldig octaal getal" msgid "invalid hex number" msgstr "ongeldig hexadecimaal getal" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "ongeldig getal" @@ -212,7 +235,7 @@ msgstr "%s: ongeldige signaalaanduiding" msgid "`%s': not a pid or valid job spec" msgstr "'%s': is geen PID en geen geldige taakaanduiding" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: is een alleen-lezen variabele" @@ -267,12 +290,12 @@ msgstr "schrijffout: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "Instellen terminalattributen is mislukt: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "Ophalen terminalattributen is mislukt: %s" #: builtins/common.c:563 #, c-format @@ -284,26 +307,26 @@ msgstr "%s: fout tijdens bepalen van huidige map: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: taakaanduiding is niet eenduidig" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: ongeldige actienaam" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: is geen completerings-aanduiding" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "waarschuwing: optie -F functioneert mogelijk niet zoals verwacht" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "waarschuwing: optie -C functioneert mogelijk niet zoals verwacht" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "er wordt momenteel geen completeringsfunctie uitgevoerd" @@ -311,21 +334,21 @@ msgstr "er wordt momenteel geen completeringsfunctie uitgevoerd" msgid "can only be used in a function" msgstr "kan alleen worden gebruikt binnen een functie" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "'-f' kan niet gebruikt worden om een functie te definiëren" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: is een alleen-lezen functie" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: kan array-variabelen niet op deze manier verwijderen" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: kan associatief array niet omzetten naar geïndexeerd array" @@ -354,8 +377,8 @@ msgstr "%s: is niet dynamisch geladen" msgid "%s: cannot delete: %s" msgstr "Kan %s niet verwijderen: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: is een map" @@ -370,7 +393,8 @@ msgstr "%s: is geen normaal bestand" msgid "%s: file is too large" msgstr "%s: bestand is te groot" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: kan een binair bestand niet uitvoeren" @@ -399,15 +423,15 @@ msgstr "Er zijn nog gepauzeerde taken.\n" msgid "There are running jobs.\n" msgstr "Er zijn nog draaiende taken.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "geen opdracht gevonden" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "geschiedenisaanduiding" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "Kan tijdelijk bestand '%s' niet openen: %s" @@ -509,12 +533,12 @@ msgstr "%s: 'inlib' is mislukt" msgid "no other options allowed with `-x'" msgstr "bij '-x' zijn geen andere opties toegestaan" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argumenten moeten proces-IDs of taak-IDs zijn" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Onbekende fout" @@ -522,57 +546,62 @@ msgstr "Onbekende fout" msgid "expression expected" msgstr "uitdrukking werd verwacht" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: is geen array-variabele" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: ongeldige aanduiding van bestandsdescriptor" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: ongeldige bestandsdescriptor: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: ongeldig regelaantal" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: ongeldig array-begin" # Quantum is een hoeveelheid regels, een getal. # Callback is de aan te roepen functie, maar onnodig in de vertaling. -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: ongeldige hoeveelheid" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "lege naam van array-variabele" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "ondersteuning van arrayvariabelen is vereist" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "'%s': ontbrekend opmaakteken" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "'%c': ongeldig opmaakteken" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "waarschuwing: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "ontbrekend hexadecimaal cijfer bij \\x" @@ -712,12 +741,12 @@ msgstr "" "\n" " De opdracht 'dirs' toont de huidige mappenstapel." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: ongeldige aanduiding van tijdslimiet" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "leesfout: %d: %s" @@ -756,11 +785,11 @@ msgstr "%s: is geen functie" msgid "shift count" msgstr "shift-aantal" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "kan shell-opties niet tegelijk inschakelen en uitschakelen" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: ongeldige shell-optienaam" @@ -850,76 +879,76 @@ msgstr "'%c': ongeldige operator in symbolische modus" msgid "`%c': invalid symbolic mode character" msgstr "'%c': ongeldig teken in symbolische modus" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " regel " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "laatste opdracht: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Afbreken..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "onbekende opdrachtfout" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "ongeldig opdrachttype" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "ongeldige verbinder" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "ongeldige sprong" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: ongebonden variabele" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\awachten op invoer duurde te lang -- automatisch afgemeld\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "wachten op invoer duurde te lang -- automatisch afgemeld\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "kan standaardinvoer niet omleiden vanaf /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: '%c': ongeldig opmaakteken" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "pijpfout" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: beperkte modus: '/' in opdrachtnamen is niet toegestaan" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: opdracht niet gevonden" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: ongeldige interpreter" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "kan bestandsdescriptor %d niet dupliceren naar bestandsdescriptor %d" @@ -964,28 +993,28 @@ msgstr "naam verwacht na pre-increment of pre-decrement" msgid "missing `)'" msgstr "ontbrekend ')'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "syntaxfout: operator verwacht" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "syntaxfout: ongeldige rekenkundige operator" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (het onjuiste symbool is \"%s\")" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "ongeldige rekenkundige basis" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "waarde is te groot voor basis" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: expressiefout\n" @@ -994,7 +1023,7 @@ msgstr "%s: expressiefout\n" msgid "getcwd: cannot access parent directories" msgstr "getwd(): kan geen geen toegang verkrijgen tot bovenliggende mappen" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "kan 'nodelay'-modus niet uitschakelen voor bestandsdescriptor %d" @@ -1050,7 +1079,7 @@ msgstr "Signaal %d" msgid "Done" msgstr "Klaar" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Gepauzeerd" @@ -1087,69 +1116,73 @@ msgstr "(geheugendump gemaakt) " msgid " (wd: %s)" msgstr " (werkmap: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "instellen van procesgroep %2$ld van dochter %1$ld" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait(): PID %ld is geen dochterproces van deze shell" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for(): proces %ld is nergens geregistreerd" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job(): taak %d is gepauzeerd" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: taak is afgesloten" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: taak %d draait al op de achtergrond" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: regel %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (geheugendump gemaakt)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(werkmap is nu: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: getpgrp() is mislukt" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: lijnprotocol" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid()" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "kan procesgroep (%d) van terminal niet instellen" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "er is geen taakbesturing in deze shell" @@ -1241,6 +1274,26 @@ msgstr "%s: ongeldige aanduiding van netwerkpad" msgid "network operations not supported" msgstr "netwerkoperaties worden niet ondersteund" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "U hebt post in $_" @@ -1254,134 +1307,134 @@ msgstr "U hebt nieuwe post in $_" msgid "The mail in %s has been read\n" msgstr "De post in %s is gelezen.\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "syntaxfout: een rekenkundige uitdrukking is vereist" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "syntaxfout: onverwachte ';'" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "syntaxfout: '((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document(): ongeldig instructietype %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" "regel %d van \"hier\"-document eindigt met einde van bestand (verwachtte '%" "s')" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection(): omleidingsinstructie '%d' valt buiten bereik" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende '%c'" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "onverwacht bestandseinde tijdens zoeken naar ']]'" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntaxfout in conditionele expressie: onverwacht symbool '%s'" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "syntaxfout in conditionele expressie" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "onverwacht symbool '%s'; ')' werd verwacht" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "')' werd verwacht" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "onverwacht argument '%s' bij eenzijdige conditionele operator" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "onverwacht argument bij eenzijdige conditionele operator" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" "onverwacht symbool '%s'; tweezijdige conditionele operator werd verwacht" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "tweezijdige conditionele operator werd verwacht" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "onverwacht argument '%s' bij tweezijdige conditionele operator" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "onverwacht argument bij tweezijdige conditionele operator" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "onverwacht symbool '%c' in conditionele opdracht" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "onverwacht symbool '%s' in conditionele opdracht" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "onverwacht symbool %d in conditionele opdracht" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntaxfout nabij onverwacht symbool '%s'" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "syntaxfout nabij '%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "syntaxfout: onverwacht bestandseinde" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "syntaxfout" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Gebruik \"%s\" om de shell te verlaten.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende ')'" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion(): functie '%s' niet gevonden" @@ -1391,71 +1444,90 @@ msgstr "completion(): functie '%s' niet gevonden" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert(): %s: lege COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command(): ongeldige verbinder '%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: ongeldige bestandsdescriptor: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf(): '%c': ongeldig opmaakteken" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "bestandsdescriptor valt buiten bereik" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: omleiding is niet eenduidig" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: kan bestaand bestand niet overschrijven" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: beperkte modus: omleiden van uitvoer is niet toegestaan" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "kan geen tijdelijk bestand maken voor \"hier\"-document: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: kan geen lijst toewijzen aan een array-element" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port is niet mogelijk zonder netwerk" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "omleidingsfout: kan bestandsdescriptor niet dupliceren" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "Kan /tmp niet vinden; maak deze aan!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp dient een geldige mapnaam te zijn" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: ongeldige optie" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Ik heb geen naam!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, versie %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1464,333 +1536,339 @@ msgstr "" "Gebruik: %s [opties]\n" " %s [opties] scriptbestand...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Lange opties:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Korte opties:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD, of -c opdracht, of -O shopt-optie (enkel bij aanroep)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s, of -o optie (veranderbaar via 'set')\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "Typ '%s -c \"help set\"' voor meer informatie over shell-opties.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Typ '%s -c help' voor meer informatie over ingebouwde shell-functies.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Gebruik de opdracht 'bashbug' om fouten in bash te rapporteren.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask(): %d: ongeldige operatie" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Niet-bestaand signaal" # Vroeger ging dit over het afsluiten van een modemverbinding, # tegenwoordig over het afsluiten van een pseudoterminal. -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Opgehangen" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Onderbroken" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Afsluiten" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Ongeldige instructie" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "Traceer/breekpunt-instructie" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "ABORT-instructie" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "EMT-instructie" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Drijvende-komma-berekeningsfout" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Geëlimineerd" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Busfout" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Segmentatiefout" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Onjuiste systeemaanroep" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Gebroken pijp" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Alarmklok" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Afgesloten" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Spoedeisende I/O-toestand" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Gepauzeerd (signaal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Doorgaan" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Dochter is geëlimineerd of gestopt" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Gepauzeerd (tty-invoer)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Gepauzeerd (tty-uitvoer)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O is mogelijk" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "CPU-limiet" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Bestandslimiet" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarm (virtueel)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarm (profiel)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Venster is veranderd" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Recordvergrendeling" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Gebruikerssignaal 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Gebruikerssignaal 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT-invoergegevens staan te wachten" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "stroomstoring dreigt" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "systeemcrash dreigt" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "proces naar andere processor verplaatsen" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "programmeerfout" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HFT-monitormodus is gegeven" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT-monitormodus is herroepen" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFT-geluidssequentie is afgespeeld" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "Verzoek om informatie" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Onbekend signaalnummer" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Onbekend signaal #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "ongeldige vervanging: geen sluit-'%s' in %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: kan geen lijst toewijzen aan een array-element" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "kan geen pijp maken voor procesvervanging" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "kan geen dochterproces maken voor procesvervanging" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "kan pijp genaamd %s niet openen om te lezen" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "kan pijp genaamd %s niet openen om te schrijven" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "kan pijp genaamd %s niet dupliceren als bestandsdescriptor %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "kan geen pijp maken voor opdrachtvervanging" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "kan geen dochterproces maken voor opdrachtvervanging" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" "command_substitute(): kan pijp niet dupliceren als bestandsdescriptor 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: lege parameter, of niet ingesteld" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: resultaat van deeltekenreeks is kleiner dan nul" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: ongeldige vervanging" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: kan niet op deze manier toewijzen" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "ongeldige vervanging: geen afsluitende '`' in %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "geen overeenkomst: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "argument werd verwacht" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: een geheel-getaluitdrukking werd verwacht" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "')' werd verwacht" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "')' werd verwacht; %s gevonden" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "eenzijdige operator werd verwacht, %s gevonden" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "tweezijdige operator werd verwacht, %s gevonden" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "ontbrekende ']'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "ongeldig signaalnummer" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps(): ongeldige waarde in trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1798,58 +1876,72 @@ msgstr "" "run_pending_traps: signaalverwerker is SIG_DFL, herzenden van %d (%s) aan " "mezelf..." -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler(): ongeldig signaal %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "fout tijdens importeren van functiedefinitie voor '%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shell-niveau is te hoog (%d); teruggezet op 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" "make_local_variable(): er is geen functiecontext in huidige geldigheidsbereik" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" "all_local_variables(): er is geen functiecontext in huidige geldigheidsbereik" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, c-format +msgid "%s has null exportstr" +msgstr "" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "ongeldig teken '%d' in export-tekenreeks voor %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "geen '=' in export-tekenreeks voor %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context(): top van 'shell_variables' is geen functiecontext" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context(): er is geen 'global_variables'-context" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope(): top van 'shell_variables' is geen tijdelijk geldigheidsbereik" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "Kan %s niet openen: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: ongeldige bestandsdescriptor: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Copyright (C) 2008 Free Software Foundation, Inc." +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" @@ -1859,66 +1951,57 @@ msgstr "" "De licentie is GPLv3+: GNU GPL versie 3 of later.\n" "Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, versie %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" "Dit is vrije software; u mag het vrijelijk wijzigen en verder verspreiden.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "Er is GEEN GARANTIE, voor zover de wet dit toestaat.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc(): kan geen %lu bytes reserveren (%lu bytes gereserveerd)" - -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc(): kan geen %lu bytes reserveren" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -"xrealloc(): kan %lu bytes niet opnieuw reserveren (%lu bytes gereserveerd)" +"De licentie is GPLv3+: GNU GPL versie 3 of later.\n" +"Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc(): kan %lu bytes niet opnieuw reserveren" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc(): kan geen %lu bytes reserveren (%lu bytes gereserveerd)" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc(): kan geen %lu bytes reserveren" + +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" "xmalloc(): %s:%d: kan geen %lu bytes reserveren (%lu bytes gereserveerd)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc(): %s:%d: kan geen %lu bytes reserveren" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren (%lu bytes " -"gereserveerd)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [NAAM[=WAARDE] ... ]" @@ -2039,7 +2122,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p PADNAAM] [-dt] [NAAM...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "help [-ds] [PATROON...]" #: builtins.c:121 @@ -2073,9 +2157,10 @@ msgid "let arg [arg ...]" msgstr "let ARGUMENT..." #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a ARRAY] [-d SCHEIDINGSTEKEN] [-i TEKST] [-n AANTAL_TEKENS]\n" " [-p PROMPT] [-t TIJDSLIMIET] [-u BESTANDSDESCRIPTOR] [NAAM...]" @@ -2191,7 +2276,7 @@ msgstr "until OPDRACHTEN; do OPDRACHTEN; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [NAAM] opdracht [verwijzingen]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2238,10 +2323,11 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v VARIABELE] OPMAAK [ARGUMENTEN]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" "complete [-abcdefgjksuv] [-pr] [-o OPTIE] [-A ACTIE] [-G PATROON]\n" " [-W WOORDENLIJST] [-F FUNCTIE] [-C OPDRACHT]\n" @@ -2257,7 +2343,8 @@ msgstr "" " [-X FILTERPATROON] [-P PREFIX] [-S SUFFIX] [WOORD]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "compopt [-o|+o OPTIE] [NAAM...]" #: builtins.c:240 @@ -2269,12 +2356,11 @@ msgstr "" " [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]" #: builtins.c:242 -#, fuzzy msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" -"mapfile [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n" +"readarray [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n" " [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]" #: builtins.c:254 @@ -3496,7 +3582,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3530,32 +3620,32 @@ msgstr "" " zijn, wordt de gelezen regel opgeslagen in de variabele REPLY.\n" "\n" " Opties:\n" -" -a ARRAY de gelezen woorden toekennen aan de opeenvolgende posities\n" -" van het genoemde array, beginnend bij index nul\n" -" -d TEKEN doorgaan met lezen tot TEKEN gelezen wordt (i.p.v. LF-" +" -a ARRAY\tde gelezen woorden toekennen aan de opeenvolgende posities\n" +" \t\tvan het genoemde array, beginnend bij index nul\n" +" -d TEKEN\tdoorgaan met lezen tot TEKEN gelezen wordt (i.p.v. LF-" "teken)\n" -" -e in een interactieve shell 'readline' gebruiken om de regel\n" -" in te lezen\n" -" -i TEKST door 'readline' te gebruiken begintekst\n" -" -n AANTAL stoppen na dit aantal tekens gelezen te hebben (i.p.v. tot\n" -" eeb LF-teken)\n" -" -p PROMT deze tekenreeks tonen als prompt (zonder afsluitende " +" -e\t\tin een interactieve shell 'readline' gebruiken om de regel\n" +" \t\tin te lezen\n" +" -i TEKST\tdoor 'readline' te gebruiken begintekst\n" +" -n AANTAL\tstoppen na dit aantal tekens gelezen te hebben (i.p.v. tot\n" +" \t\teen LF-teken)\n" +" -p PROMPT\tdeze tekenreeks tonen als prompt (zonder afsluitende " "nieuwe\n" -" regel) alvorens te beginnen met lezen\n" -" -r backslash-codes niet omzetten naar hun betekenis\n" -" -s invoer die van een terminal komt niet echoën\n" -" -t AANTAL na dit aantal seconden stoppen met wachten op invoer en\n" -" afsluiten met een code groter dan 128; de waarde van de\n" -" variabele TMOUT is de standaardwaarde voor het aantal te\n" -" wachten seconden; het aantal mag drijvendepuntgetal zijn\n" -" -u BSDS van deze bestandsdescriptor lezen i.p.v. van " +" \t\tregel) alvorens te beginnen met lezen\n" +" -r\t\tbackslash-codes niet omzetten naar hun betekenis\n" +" -s\t\tinvoer die van een terminal komt niet echoën\n" +" -t AANTAL\tna dit aantal seconden stoppen met wachten op invoer en\n" +" \t\tafsluiten met een code groter dan 128; de waarde van de\n" +" \t\tvariabele TMOUT is de standaardwaarde voor het aantal te\n" +" \t\twachten seconden; het aantal mag drijvendepuntgetal zijn\n" +" -u BSDS\t\tvan deze bestandsdescriptor lezen i.p.v. van " "standaardinvoer\n" -"\n" +" \n" " De afsluitwaarde is 0, tenzij einde-van-bestand (EOF) bereikt werd,\n" " de tijdslimiet overschreden werd, of een ongeldige bestandsdescriptor\n" " als argument van '-u' gegeven werd." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3575,8 +3665,8 @@ msgstr "" " De afsluitwaarde is N, of 1 als de shell geen functie of script aan het\n" " uitvoeren is." -# Voor de duidelijkheid is de tejstvolgorde veranderd. -#: builtins.c:1019 +# Voor de duidelijkheid is de tekstvolgorde veranderd. +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3756,7 +3846,7 @@ msgstr "" "\n" " De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3790,7 +3880,7 @@ msgstr "" " De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n" " NAAM alleen-lezen is." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3823,7 +3913,7 @@ msgstr "" "\n" " De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3859,7 +3949,7 @@ msgstr "" "\n" " De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3876,7 +3966,7 @@ msgstr "" "\n" " De afsluitwaarde is 0 tenzij N negatief is of groter dan $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3901,7 +3991,7 @@ msgstr "" "gegeven\n" " bestand, of 1 als dit bestand niet gelezen kan worden." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3926,7 +4016,7 @@ msgstr "" " De afsluitwaarde is 0 tenzij taakbeheer uitgeschakeld is of er een fout\n" " optreedt." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4065,7 +4155,7 @@ msgstr "" " De afsluitwaarde is 0 als EXPRESSIE waar is, 1 als EXPRESSIE onwaar is,\n" " en 2 als een ongeldig argument gegeven werd." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4077,7 +4167,7 @@ msgstr "" " Dit is een synoniem voor de ingebouwde functie 'test', behalve dat\n" " het laatste argument een ']' moet zijn, horend bij de begin-'['." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4096,7 +4186,7 @@ msgstr "" "\n" " De afsluitwaarde is altijd 0." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4176,7 +4266,7 @@ msgstr "" " De afsluitwaarde is 0, tenzij een ongeldige optie of SIGNAALAANDUIDING\n" " gegeven werd." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4228,7 +4318,7 @@ msgstr "" " als de naam onbekend is\\ \n" " De afsluitwaarde is 0 als elke NAAM gevonden werd, anders 1." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4315,7 +4405,7 @@ msgstr "" " De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n" " fout optreedt." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4351,7 +4441,7 @@ msgstr "" " De afsluitwaarde is 0, tenzij MODUS ongeldig is of een ongeldige optie\n" " gegeven werd." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4380,7 +4470,7 @@ msgstr "" " De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n" " ongeldige optie gegeven werd." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4404,7 +4494,7 @@ msgstr "" " De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n" " ongeldige optie gegeven werd." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4424,7 +4514,7 @@ msgstr "" " dat element en worden de OPDRACHTEN uitgevoerd. \n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4451,7 +4541,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4488,7 +4578,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4515,7 +4605,7 @@ msgstr "" " overdraagbare standaardopmaak.\n" " De afsluitwaarde is die van de PIJPLIJN." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4533,7 +4623,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4568,7 +4658,7 @@ msgstr "" "uitgevoerde\n" " deelopdracht, of nul als geen enkele 'if' of 'elif' nul opleverde." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4585,7 +4675,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4602,7 +4692,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4614,8 +4704,18 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Een co-proces aanmaken genaamd NAAM.\n" +" \n" +" OPDRACHT asynchroon uitvoeren, met de standaardinvoer en -uitvoer van\n" +" de opdracht via een pipe verbonden met bestandsverwijzigen toegewezen\n" +" aan indices 0 en 1 van een array-variabele NAAM in de uitvoerende " +"shell.\n" +" De standaard-NAAM is \"COPROC\".\n" +" \n" +" Afsluitstatus:\n" +" Geeft de afsluitwaarde van OPDRACHT." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4637,7 +4737,7 @@ msgstr "" "\n" " De afsluitwaarde is 0, tenzij NAAM onveranderbaar is." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4654,7 +4754,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de laatst uitgevoerde opdracht." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4678,7 +4778,7 @@ msgstr "" "\n" " De afsluitwaarde is die van de hervatte taak." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4695,7 +4795,7 @@ msgstr "" "\n" " De afsluitwaarde is 1 als de EXPRESSIE tot 0 evalueert; anders 0." -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4751,7 +4851,7 @@ msgstr "" "\n" " De afsluitwaarde is 0 of 1, afhankelijk van EXPRESSIE." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4865,7 +4965,7 @@ msgstr "" "het\n" " geschiedeniscommentaarteken, gewoonlijk '#'\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4919,7 +5019,7 @@ msgstr "" " mapwijziging mislukte. De opdracht 'dirs' geeft de huidige " "mappenstapel weer." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -4968,7 +5068,7 @@ msgstr "" " De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n" " mapwijziging mislukte." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -5019,7 +5119,7 @@ msgstr "" "een\n" " fout optreedt." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5062,7 +5162,7 @@ msgstr "" "optie\n" " gegeven werd." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5114,7 +5214,8 @@ msgstr "" "een\n" " fout optreedt." -#: builtins.c:1892 +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5128,9 +5229,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5154,7 +5260,7 @@ msgstr "" "een\n" " fout optreedt." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5176,7 +5282,8 @@ msgstr "" "een\n" " fout optreedt." -#: builtins.c:1930 +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -5189,6 +5296,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5228,16 +5337,16 @@ msgstr "" " De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of voor\n" " NAAM is geen completeringsvoorschrift gedefinieerd." -#: builtins.c:1958 +#: builtins.c:1968 #, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5264,28 +5373,31 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" "Regels inlezen in een array-variabele.\n" " \n" " Leest regels van standaardinvoer in in the array-variabele ARRAY.\n" " De variabele MAPFILE wordt gebruikt als geen ARRAY gegeven is. \n" " Opties:\n" -" -n AANTAL maximaal dit aantal regels kopiëren (0 = alles)\n" -" -O BEGIN met toekennen beginnen bij deze index (standaard 0)\n" -" -s AANTAL dit aantal regels overslaan\n" -" -t nieuweregelteken aan eind van elke gelezen regel " -"verwijderen\n" -" -u BES.DES. uit deze bestandsdescriptor lezen i.p.v. uit " +" -n AANTAL\tmaximaal dit aantal regels kopiëren (0 = alles)\n" +" -O BEGIN\tmet toekennen beginnen bij deze index (standaard 0)\n" +" -s AANTAL\tdit aantal regels overslaan\n" +" -t \t\tnieuweregelteken aan eind van elke gelezen regel verwijderen\n" +" -u BES.DES.\tuit deze bestandsdescriptor lezen i.p.v. uit " "standaardinvoer\n" -" -C FUNCTIE deze functie evalueren na elke HOEVEELHEID regels\n" -" -c HOEVEELHEID het aantal te lezen regels voor elke aanroep van " +" -C FUNCTIE\tdeze functie evalueren na elke HOEVEELHEID regels\n" +" -c HOEVEELHEID\thet aantal te lezen regels voor elke aanroep van " "FUNCTIE\n" "n Argument:\n" -" ARRAY naam van array-variabele waarin regels ingelezen moeten " -"worden\n" +" ARRAY\t\tnaam van array-variabele waarin regels ingelezen moeten worden\n" " \n" -" Als '-C' gegeven is zonder '-c', is de standaardHOEVEELHEID 5000.\n" +" Als '-C' gegeven is zonder '-c', is de standaard-HOEVEELHEID 5000. Als\n" +" FUNCTIE is geevalueerd wordt hieraan de index van het volgende array-" +"element\n" +" toegekend als een additioneel argument.\n" " \n" " Als geen expliciet BEGIN gegeven is, wordt het array gewist alvorens\n" " met toekennen te beginnen.\n" @@ -5293,12 +5405,27 @@ msgstr "" " De afsluitwaarde is 0, tenzij ARRAY alleen-lezen is of een ongeldige\n" " optie gegeven werd." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Regels uit een bestand lezen naar een array-varabele.\n" +" \n" +" Een synoniem voor `mapfile'." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc(): kan %lu bytes niet opnieuw reserveren (%lu bytes gereserveerd)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc(): kan %lu bytes niet opnieuw reserveren" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren (%lu bytes " +#~ "gereserveerd)" #~ msgid "%s: invalid number" #~ msgstr "%s: ongeldig getal" diff --git a/po/pl.gmo b/po/pl.gmo index 64edb447bb5936b8818183684c6de0f33f95fa5d..6501d1c0c82f482889207b0d7a8a7e3b4abca513 100644 GIT binary patch delta 5617 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 diff --git a/po/pl.po b/po/pl.po index 8a88ff3..98f0a29 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: bash 3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" "PO-Revision-Date: 2007-11-30 08:49+0100\n" "Last-Translator: Andrzej M. Krzysztofowicz \n" "Language-Team: Polish \n" @@ -19,52 +19,58 @@ msgstr "" msgid "bad array subscript" msgstr "nieprawid³owy indeks tablicy" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: nieprawid³owa nazwa akcji" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: nie mo¿na przypisaæ do nienumerycznego indeksu" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: nie mo¿na utworzyæ: %s" # ??? -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "bash_execute_unix_command: nie mo¿na znale¼æ mapy klawiszy dla polecenia" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: pierwszym drukowalnym znakiem nie jest `\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "brak zamykaj±cego `%c' w %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: brak separuj±cego dwukropka" +# ??? +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "`%s': nieprawid³owa nazwa mapy klawiszy" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -118,6 +124,21 @@ msgid "" " Without EXPR, returns " msgstr "Wraca do kontekstu wywo³ania bie¿±cego podprogramu" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "Nie ustawiono HOME" @@ -131,7 +152,7 @@ msgstr "Nie ustawiono OLDPWD" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s: uwaga: " @@ -141,11 +162,11 @@ msgstr "%s: uwaga: " msgid "%s: usage: " msgstr "%s: uwaga: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "za du¿o argumentów" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: opcja wymaga argumentu" @@ -160,7 +181,7 @@ msgstr "%s: wymagany argument numeryczny" msgid "%s: not found" msgstr "%s: nie znaleziono" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: nieprawid³owa opcja" @@ -185,7 +206,7 @@ msgstr "nieprawid msgid "invalid hex number" msgstr "nieprawid³owa liczba" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "nieprawid³owa liczba" @@ -199,7 +220,7 @@ msgstr "%s: nieprawid msgid "`%s': not a pid or valid job spec" msgstr "`%s': nie jest to nr PID ani prawid³owe okre¶lenie zadania" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: zmienna tylko do odczytu" @@ -271,26 +292,26 @@ msgstr "%s: b msgid "%s: ambiguous job spec" msgstr "%s: niejednoznaczne okre¶lenie zadania" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: nieprawid³owa nazwa akcji" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: brak definicji dla uzupe³nienia" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "uwaga: opcja -F mo¿e dzia³aæ inaczej ni¿ oczekiwano" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "uwaga: opcja -C mo¿e dzia³aæ inaczej ni¿ oczekiwano" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -298,21 +319,21 @@ msgstr "" msgid "can only be used in a function" msgstr "mo¿na u¿ywaæ tylko w funkcji" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "nie mo¿na u¿ywaæ `-f' do tworzenia funkcji" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funkcja tylko do odczytu" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: nie mo¿na w ten sposób unicestwiæ zmiennej tablicowej" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -341,8 +362,8 @@ msgstr "%s: nie jest msgid "%s: cannot delete: %s" msgstr "%s: nie mo¿na usun±æ: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: jest katalogiem" @@ -357,7 +378,8 @@ msgstr "%s: nie jest zwyk msgid "%s: file is too large" msgstr "%s: plik jest za du¿y" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: nie mo¿na uruchomiæ pliku binarnego" @@ -386,15 +408,15 @@ msgstr "Istniej msgid "There are running jobs.\n" msgstr "Istniej± zatrzymane zadania.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "nie znaleziono polecenia" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "specyfikacja historii" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: nie uda³o siê otworzyæ pliku tymczasowego: %s" @@ -496,12 +518,12 @@ msgstr "%s: rozwini msgid "no other options allowed with `-x'" msgstr "nie mo¿na u¿ywaæ innych opcji przy `-x'" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argumentami musz± byæ numery procesów lub zadañ" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Nieznany b³±d" @@ -509,56 +531,61 @@ msgstr "Nieznany b msgid "expression expected" msgstr "spodziewano siê wyra¿enia" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: nie jest zmienn± tablicow±" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: nieprawid³owo okre¶lony deskryptor pliku" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: nieprawid³owy deskryptor pliku: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: nieprawid³owa opcja" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: nieprawid³owa opcja" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s: nieprawid³owa nazwa akcji" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: nie jest zmienn± tablicow±" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "`%s': brak znaku formatuj±cego" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "`%c': nieprawid³owy znak formatuj±cy" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s: uwaga: " -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "brak cyfry szesnastkowej dla \\x" @@ -704,12 +731,12 @@ msgstr "" " \n" " Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: nieprawid³owo okre¶lony timeout" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "b³±d odczytu: %d: %s" @@ -749,11 +776,11 @@ msgstr "%s: nie jest funkcj msgid "shift count" msgstr "licznik przesuniêcia" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "nie mo¿na opcji pow³oki jednocze¶nie ustawiæ i uniewa¿niæ" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: nieprawid³owa nazwa opcji pow³oki" @@ -843,77 +870,77 @@ msgstr "`%c': nieprawid msgid "`%c': invalid symbolic mode character" msgstr "`%c': nieprawid³owy znak trybu symbolicznego" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "ostatnie polecenie: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Przerywanie..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "nieznany b³±d polecenia" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "z³y rodzaj polecenia" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "z³y ³±cznik" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "z³y skok" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: nieustawiona zmienna" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\aprzekroczony czas oczekiwania na dane wej¶ciowe: auto-wylogowanie\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "przekroczony czas oczekiwania na dane wej¶ciowe: auto-wylogowanie\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "nie mo¿na przekierowaæ standardowego wej¶cia z /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: `%c': nieprawid³owy znak formatuj±cy" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "b³±d zapisu: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: ograniczony: nie mo¿na podawaæ `/' w nazwach poleceñ" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: nie znaleziono polecenia" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: z³y interpreter" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "nie mo¿na skopiowaæ deskryptora pliku %d do %d" @@ -960,28 +987,28 @@ msgstr "" msgid "missing `)'" msgstr "brakuj±cy `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "b³±d sk³adni: spodziewany argument" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "b³±d sk³adni: nieprawid³owy operator arytmetyczny" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "nieprawid³owa podstawa arytmetyczna" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "warto¶æ za du¿a na podstawê" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: oczekiwano wyra¿enia ca³kowitego" @@ -990,7 +1017,7 @@ msgstr "%s: oczekiwano wyra msgid "getcwd: cannot access parent directories" msgstr "getcwd: niemo¿liwy dostêp do katalogów nadrzêdnych" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "nie mo¿na wy³±czyæ trybu nieblokuj±cego dla deskryptora %d" @@ -1044,7 +1071,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1081,69 +1108,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: PID %ld nie jest potomkiem tej pow³oki" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Brak rekordu dla procesu %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: zadanie %d jest zatrzymane" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: zadanie zosta³o przerwane" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: zadanie %d ju¿ pracuje w tle" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s: uwaga: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "w tej pow³oce nie ma kontroli zadañ" @@ -1237,6 +1268,26 @@ msgstr "%s: msgid "network operations not supported" msgstr "operacje sieciowe nie s± wspierane" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Masz pocztê w $_" @@ -1250,131 +1301,131 @@ msgstr "Masz now msgid "The mail in %s has been read\n" msgstr "Poczta w %s jest przeczytana\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "b³±d sk³adni: oczekiwano wyra¿enia arytmetycznego" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "b³±d sk³adni: oczekiwany `;'" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "b³±d sk³adni: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: z³y rodzaj instrukcji %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: instrukcja przekierowania `%d' poza zakresem" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `%c'" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "nieoczekiwany EOF podczas poszukiwania `]]'" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "b³±d sk³adni w wyra¿eniu warunkowym: nieoczekiwany znacznik `%s'" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "b³±d sk³adni w wyra¿eniu warunkowym" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "nieoczekiwany znacznik `%s', oczekiwano `)'" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "oczekiwano `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "nieoczekiwany argument `%s' jednoargumentowego operatora warunkowego" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "nieoczekiwany argument jednoargumentowego operatora warunkowego" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "nieoczekiwany argument `%s', oczekiwano dwuarg. operatora warunkowego" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "oczekiwano dwuargumentowego operatora warunkowego" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "nieoczekiwany argument `%s' dwuargumentowego operatora warunkowego" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "nieoczekiwany argument dwuargumentowego operatora warunkowego" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "nieoczekiwany znacznik `%c' w poleceniu warunkowym" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "nieoczekiwany znacznik `%s' w poleceniu warunkowym" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "nieoczekiwany znacznik %d w poleceniu warunkowym" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "b³±d sk³adni przy nieoczekiwanym znaczniku `%s'" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "b³±d sk³adni przy `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "b³±d sk³adni: nieoczekiwany koniec pliku" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "b³±d sk³adni" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "U¿yj \"%s\", aby opu¶ciæ tê pow³okê.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `)'" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "uzupe³nienie: nie znaleziono funkcji `%s'" @@ -1384,71 +1435,90 @@ msgstr "uzupe msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: z³y ³±cznik `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: nieprawid³owy deskryptor pliku: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: `%c': nieprawid³owy znak formatuj±cy" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "deskryptor pliku poza zakresem" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: nieojednoznaczne przekierowanie" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: nie mo¿na nadpisaæ istniej±cego pliku" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: ograniczony: nie mo¿na przekierowaæ wyj¶cia" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "nie mo¿na utworzyæ pliku tymczasowego dla dokumentu miejscowego: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: nie mo¿na przypisaæ listy do elementu tablicy" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port nie s± wspierane bez sieci" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "b³±d przekierowania: nie mo¿na powieliæ deskryptora pliku" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "nie mo¿na znale¼æ /tmp, proszê o utworzenie!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp musi byæ prawid³ow± nazw± katalogu" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: nieprawid³owa opcja" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Nie mam nazwy!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1457,335 +1527,341 @@ msgstr "" "U¿ycie:\t%s [d³uga opcja GNU] [opcja] ...\n" "\t%s [d³uga opcja GNU] [opcja] plik-skryptu ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "D³ugie opcje GNU:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Opcje pow³oki:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD lub -c polecenie lub -O shopt_option\t\t(tylko wywo³anie)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s lub -o opcja\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Aby uzyskaæ wiêcej informacji o opcjach pow³oki, napisz `%s -c \"help set" "\"'.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Aby uzyskaæ wiêcej informacji o poleceniach wewnêtrznych pow³oki,\n" "napisz `%s -c help'.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Do zg³aszania b³êdów nale¿y u¿ywaæ polecenia `bashbug'.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: nieprawid³owa operacja" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "b³±d sk³adni" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "ograniczony" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: nie mo¿na przypisaæ listy do elementu tablicy" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "nie mo¿na utworzyæ potoku dla podstawienia procesu" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia procesu" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "nie mo¿na otworzyæ nazwanego potoku %s do odczytu" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "nie mo¿na otworzyæ nazwanego potoku %s do zapisu" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "nie mo¿na powieliæ nazwanego potoku %s jako deskryptor %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "nie mo¿na utworzyæ potoku dla podstawienia polecenia" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia polecenia" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: nie mo¿na powieliæ potoku jako deskryptora 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parametr pusty lub nieustawiony" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: wyra¿enie dla pod³añcucha < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: z³e podstawienie" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: nie mo¿na przypisywaæ w ten sposób" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "brak pasuj±cego: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "oczekiwano argumentu" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: oczekiwano wyra¿enia ca³kowitego" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "oczekiwano `)'" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "oczekiwano `)', znaleziono %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: oczekiwano operatora jednoargumentowego" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: oczekiwano operatora dwuargumentowego" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "brakuj±cy `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "nieprawid³owy numer sygna³u" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: z³a warto¶æ trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1793,52 +1869,67 @@ msgstr "" "run_pending_traps: obs³uga sygna³u jest ustawiona na SIG_DFL, wysy³aj±c %d (%" "s) do siebie" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: z³y sygna³ %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "b³±d importu definicji funkcji dla `%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "poziom pow³oki (%d) jest za du¿y, ustawiono na 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: brak kontekstu funkcji w bie¿±cym zakresie" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: brak kontekstu funkcji w bie¿±cym zakresie" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parametr pusty lub nieustawiony" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "nieprawid³owy znak %d w exportstr dla %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "brak `=' w exportstr dla %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: nag³ówek shell_variables poza kontekstem funkcji" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: brak kontekstu global_variables" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope: nag³ówek shell_variables poza zakresem tymczasowego ¶rodowiska" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: nie mo¿na otworzyæ: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: nieprawid³owy deskryptor pliku: %s" + #: version.c:46 #, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." @@ -1850,62 +1941,53 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %lu)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: nie mo¿na przydzieliæ %lu bajtów" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc: %s:%d: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %lu)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "" @@ -2021,7 +2103,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -2050,8 +2132,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2215,9 +2297,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2227,7 +2309,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -3169,7 +3251,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3213,7 +3299,7 @@ msgstr "" "deskryptor\n" " pliku." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3225,7 +3311,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 #, fuzzy msgid "" "Set or unset values of shell options and positional parameters.\n" @@ -3393,7 +3479,7 @@ msgstr "" " pozycyjnymi i s± one przypisane, kolejno, do $1, $2, .. $n. Gdy nie\n" " zostan± podane ¿adne argumenty, wypisywane s± wszystkie zmienne pow³oki." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3413,7 +3499,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3432,7 +3518,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3452,7 +3538,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3463,7 +3549,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 #, fuzzy msgid "" "Execute commands from a file in the current shell.\n" @@ -3482,7 +3568,7 @@ msgstr "" " w $PATH. Je¶li podane zostan± jakiekolwiek ARGUMENTS, staj± siê\n" " parametrami pozycyjnymi podczas uruchomienia FILENAME." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3496,7 +3582,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3651,7 +3737,7 @@ msgstr "" " równy, nierówny, mniejszy ni¿, mniejszy lub równy, wiêkszy ni¿ lub\n" " wiêkszy lub równy arg2." -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3662,7 +3748,7 @@ msgstr "" "Jest to synonim dla wbudowanego polecenia \"test\", ale wymagaj±cy, by\n" " ostatnim argumentem by³ `]' pasuj±cy do pocz±tkowego `['." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3674,7 +3760,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 #, fuzzy msgid "" "Trap signals and other events.\n" @@ -3730,7 +3816,7 @@ msgstr "" " nazw sygna³ów wraz z odpowiadaj±cymi im numerami. Nale¿y zauwa¿yæ, ¿e\n" " sygna³ mo¿na wys³aæ do pow³oki poleceniem \"kill -signal $$\"." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3760,7 +3846,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 #, fuzzy msgid "" "Modify shell resource limits.\n" @@ -3841,7 +3927,7 @@ msgstr "" " -p, które jest w jednostkach 512-bajtowych oraz -u, które jest\n" " bezwymiarow± liczb± procesów." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3859,7 +3945,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3876,7 +3962,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 #, fuzzy msgid "" "Wait for process completion and return exit status.\n" @@ -3896,7 +3982,7 @@ msgstr "" " procesu lub specyfikacj± zadania; gdy jest specyfikacj± zadania,\n" " oczekiwanie dotyczy wszystkich procesów w potoku zadania." -#: builtins.c:1478 +#: builtins.c:1481 #, fuzzy msgid "" "Execute commands for each member in a list.\n" @@ -3915,7 +4001,7 @@ msgstr "" " Dla ka¿dego elementu WORDS, NAME jest ustawiane na ten element\n" " i uruchamiane s± COMMANDS." -#: builtins.c:1492 +#: builtins.c:1495 #, fuzzy msgid "" "Arithmetic for loop.\n" @@ -3941,7 +4027,7 @@ msgstr "" " EXP1, EXP2 i EXP3 s± wyra¿eniami arytmetycznymi. Je¶li które¶ z wyra¿eñ\n" " zostanie pominiête, zachowanie jest takie, jaby mia³o ono warto¶æ 1." -#: builtins.c:1510 +#: builtins.c:1513 #, fuzzy msgid "" "Select words from a list and execute commands.\n" @@ -3974,7 +4060,7 @@ msgstr "" " wiersz jest zachowywany w zmiennej REPLY. Po ka¿dym wyborze uruchamiane\n" " s± polecenia COMMANDS a¿ do polecenia break." -#: builtins.c:1531 +#: builtins.c:1534 #, fuzzy msgid "" "Report time consumed by pipeline's execution.\n" @@ -4001,7 +4087,7 @@ msgstr "" " podsumowania czasów w nieco innej postaci. U¿ywana jest wtedy warto¶æ\n" " zmiennej TIMEFORMAT jako format danych wyj¶ciowych." -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -4016,7 +4102,7 @@ msgstr "" "pasuje\n" " do wzorca PATTERN. Znak `|' s³u¿y do rozdzielania wielu wzorców." -#: builtins.c:1560 +#: builtins.c:1563 #, fuzzy msgid "" "Execute commands based on conditional.\n" @@ -4047,7 +4133,7 @@ msgstr "" " uruchomionego polecenia lub zero, gdy ¿aden ze sprawdzanych warunków\n" " nie by³ prawdziwy." -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -4061,7 +4147,7 @@ msgstr "" "Rozwijanie i uruchamianie poleceñ COMMANDS tak d³ugo, dopóki ostatnie\n" " polecenie w `while' COMMANDS koñczy siê z kodem zero." -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -4075,7 +4161,7 @@ msgstr "" "Rozwijanie i uruchamianie poleceñ COMMANDS tak d³ugo, dopóki ostatnie\n" " polecenie w `until' COMMANDS koñczy siê z kodem niezerowym." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4088,7 +4174,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4102,7 +4188,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -4116,7 +4202,7 @@ msgstr "" "Uruchomienie zbioru poleceñ jako grupy. W ten sposób mo¿na przekierowaæ\n" " ca³y zbiór poleceñ." -#: builtins.c:1641 +#: builtins.c:1644 #, fuzzy msgid "" "Resume job in foreground.\n" @@ -4137,7 +4223,7 @@ msgstr "" "dla\n" " `bg'." -#: builtins.c:1656 +#: builtins.c:1659 #, fuzzy msgid "" "Evaluate arithmetic expression.\n" @@ -4151,7 +4237,7 @@ msgstr "" "Obliczenie wyra¿enia EXPRESSION zgodnie z zasadami obliczania wyra¿eñ\n" " arytmetycznych. Równowa¿ne \"let EXPRESSION\"." -#: builtins.c:1668 +#: builtins.c:1671 #, fuzzy msgid "" "Execute conditional command.\n" @@ -4200,7 +4286,7 @@ msgstr "" " wzorca. Operatory && i || nie opliczaj± EXPR2, je¶li obliczenie EXPR1\n" " wystarcza do okre¶lenia warto¶ci wyra¿enia." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4254,7 +4340,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 #, fuzzy msgid "" "Add directories to stack.\n" @@ -4303,7 +4389,7 @@ msgstr "" " \n" " Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." -#: builtins.c:1785 +#: builtins.c:1788 #, fuzzy msgid "" "Remove directories from stack.\n" @@ -4347,7 +4433,7 @@ msgstr "" " \n" " Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." -#: builtins.c:1815 +#: builtins.c:1818 #, fuzzy msgid "" "Display directory stack.\n" @@ -4396,7 +4482,7 @@ msgstr "" " -N\tWypisanie N-tej pozycji licz±c od prawej strony listy wypisywanej\n" " \tprzez dirs wywo³ane bez opcji, pocz±wszy od zera." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -4417,7 +4503,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -4447,7 +4533,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -4461,15 +4547,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 #, fuzzy msgid "" "Display possible completions depending on the options.\n" @@ -4487,7 +4578,7 @@ msgstr "" " Gdy podany jest opcjonalny argument WORD, generowane s± uzupe³nienia\n" " pasuj±ce do WORD." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -4500,6 +4591,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -4516,15 +4609,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -4551,16 +4644,30 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %lu)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: nie mo¿na przydzieliæ %lu bajtów" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s:%d: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %" +#~ "lu)" + #~ msgid " " #~ msgstr " " diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 7f7ceea7bcde9134a673b35ab2e4a22ce450f7df..9ac9c43f31cdae5f5a0055c007cf5b470c435bab 100644 GIT binary patch delta 2102 zcmXZce`u9e7{Kv!Wp?MiPPe(X{88T3Hp^|b9|=>Tv2tk4l0g$eMXVN@M6`$svbSGu z#gc?!wO~mWEr>geg;M4(6#p1m!b0ee#LXzEjA@Z%N`1e1#&$pNd+vLl^PJ~A?@m7O zWk+(hv|xAO=SBV&@Hev{ggjnN^TE%)ObDg;8P38JcngkW8D2u?rL!T_U{$mOZ{)rQ zeg5@$Ka2~xKZL|h!Vg@OGcbiWV|wQGiPh2N*vxn*y3h`sk9*Ms4x@>UV-Zeb3a79H zFX3z~;7ct-mI_rki}gc8{Gt_kHmr#cY`_`ZZ;AHc9PVGhLfnNED-6c__t6E0(c&FI ziW83DO*n>D@;tiXzZ_@%P(=Fkum*G3hBx5DXuz##BG01}FXL&S% zFVF>#p>e*8<3D0C_rGCcz-wGs$`YRP2x{jq*7FwAPu@dvR z48O%3X2{mKwP@THG_f`4{Eem5-!6TMfjaC%GyNPr{07$Kri28aR)Z@FH5W zVxk$aKDr9&!|(`_cX&G9KZCSU*n#92-bObxf+ltp7x@1F!iA+uvrS7l2hFerU9bah z#Vu&F^+$K3y|5>mM=Np=eg1nSbhwHff2bgs-`65T;ePe~@8+T!Uq;{OVKjjeNK zv&(2{vUFl2mZJeypie}KI7k17;Vp-&khWgug*3$)i*cf8d{b$EgAi@eEsbI0EsTg$^ZZW delta 2382 zcma*nacGov9LMqR*>t)&-7Y7J*xZA#}9FHlh|1&+qsB zeV_01eeR>W&mZ+CgIRAFe?9!)tN$#s_vJ#q`1>-)EQnv>68r&I<1{YAVD8+yGF;1e ztFr}{GwwyrKkddNcpu{lB(85aI0$hff3evrEJH1dr<{34DXv@OxC88FxO5K|bTf=qunV4phn*>Je_;t_LIu2u#IgcTYQ2Yh zFpgUPDsr=S);WZlKZ2S+jw>*ePyJP*c|0hUJ`YuzLM+1=s(BtqKGw}w3BHU9^Z}|e zpW+%E#Y((}9!AJkaqCcV_n;C>qt-tcr2cBQqnvmE`%#&Wp`P&-H}NODpRracKnbcD z%dsAJ;3hnU>}{8EJ^qZkfkMiwM^oXfMXlfIbD+%HP$3Zp8MKt8sQFKze=&d1}(J=oi*bpxpV{4Y3AcTTwz3&>_O<1kiX5?>6k5S3Ul zllA(=QSW;K6>vZ5+4o`%4qy~#kdGDLW3~>fQ1eq5*8AVXfigRTYKo6hfyYok6o0sJ z5vvrq8dcJl@Ye4E^0AA~38X*mHzaRcNVXd1Abn?rsD0LBf!_Zb4wTt$R6rk9x;|7% zPookXb=SYcV#YU6&F8U5Mo_&GcUGe+l0eOGLnV3?X$w22>w5n`;ec2+>72z<#vxYg z{oaB~payyTR*$-q7F41KP)&OX^*eAJDVp`6dgwfA-7sq7aa7z4`dWD1O;BC6(Q=Gn z7`NkNxD!vH0{w!tgJtu46mT`FnaVMVyO58a=Znxb?wmnYDCo^q#Pg`Xy0?ZC%CrU5 zpc1@_oAGy4Y0KGNk6<_IHEzTzJc1rxLdE?NmH4lyMDmLLxjQH# z3NL^?gd4CHRhcf-@4!LS!q-r*<4M%~F;uBDSdUr!NIZ-UsJG=UtiW^V;Z;;3*)*11 z=5wItTZ0NzhwAHdF`dUEg6>5h)6u2d_DrJIuN|Cbimn$sP(XLZ|BWp*cv F{{r2ZBf\n" "Language-Team: Brazilian Portuguese \n" @@ -19,50 +19,55 @@ msgstr "" msgid "bad array subscript" msgstr "índice da matriz (array) incorreto" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%c%c: opção incorreta" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: impossível atribuir a índice não numérico" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: impossível criar: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%c%c: opção incorreta" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -113,6 +118,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -126,7 +146,7 @@ msgstr "" msgid "line %d: " msgstr "encaixe (slot) %3d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "escrevendo" @@ -136,11 +156,11 @@ msgstr "escrevendo" msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "número excessivo de argumentos" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, fuzzy, c-format msgid "%s: option requires an argument" msgstr "a opção requer um argumento: -" @@ -155,7 +175,7 @@ msgstr "" msgid "%s: not found" msgstr "%s: comando não encontrado" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, fuzzy, c-format msgid "%s: invalid option" msgstr "%c%c: opção incorreta" @@ -180,7 +200,7 @@ msgstr "n msgid "invalid hex number" msgstr "número do sinal incorreto" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 #, fuzzy msgid "invalid number" msgstr "número do sinal incorreto" @@ -195,7 +215,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: a variável permite somente leitura" @@ -270,26 +290,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: Redirecionamento ambíguo" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -298,21 +318,21 @@ msgstr "" msgid "can only be used in a function" msgstr "somente pode ser usado dentro de funções; faz com que o escopo visível" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: função somente para leitura" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, fuzzy, c-format msgid "%s: cannot destroy array variables in this way" msgstr "$%s: impossível atribuir desta maneira" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -341,8 +361,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: impossível criar: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: é um diretório" @@ -357,7 +377,8 @@ msgstr "%s: imposs msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: impossível executar o arquivo binário" @@ -386,16 +407,16 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 #, fuzzy msgid "no command found" msgstr "%s: comando não encontrado" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, fuzzy, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: impossível criar: %s" @@ -485,12 +506,12 @@ msgstr "%s: esperado express msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 #, fuzzy msgid "Unknown error" msgstr "Erro desconhecido %d" @@ -499,56 +520,61 @@ msgstr "Erro desconhecido %d" msgid "expression expected" msgstr "esperado uma expressão" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: variável não vinculada" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%c%c: opção incorreta" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%c%c: opção incorreta" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "número do sinal incorreto" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: variável não vinculada" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -641,12 +667,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, fuzzy, c-format msgid "read error: %d: %s" msgstr "erro de `pipe': %s" @@ -685,11 +711,11 @@ msgstr "%s: fun msgid "shift count" msgstr "shift [n]" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -782,83 +808,83 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, fuzzy, c-format msgid "last command: %s\n" msgstr "`r', o último comando seja executado novamente." -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 #, fuzzy msgid "unknown command error" msgstr "Erro desconhecido %d" -#: error.c:406 +#: error.c:407 #, fuzzy msgid "bad command type" msgstr "usado como nome de um comando." -#: error.c:407 +#: error.c:408 #, fuzzy msgid "bad connector" msgstr "conector incorreto `%d'" -#: error.c:408 +#: error.c:409 #, fuzzy msgid "bad jump" msgstr "Desvio incorreto %d" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: variável não vinculada" #: eval.c:181 #, fuzzy, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" "%ctempo limite de espera excedido aguardando entrada:\n" "fim automático da sessão\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "erro de `pipe': %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: comando não encontrado" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, fuzzy, c-format msgid "%s: %s: bad interpreter" msgstr "%s: é um diretório" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, fuzzy, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s" @@ -905,29 +931,29 @@ msgstr "" msgid "missing `)'" msgstr "faltando `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 #, fuzzy msgid "syntax error: operand expected" msgstr "erro de sintaxe: fim prematuro do arquivo" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, fuzzy, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s: %s: %s (erro: o `token' é \"%s\")\n" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "valor muito grande para esta base de numeração" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: esperado expressão de número inteiro" @@ -937,7 +963,7 @@ msgstr "%s: esperado express msgid "getcwd: cannot access parent directories" msgstr "getwd: impossível acessar os diretórios pais (anteriores)" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s" @@ -994,7 +1020,7 @@ msgstr "Sinal desconhecido #%d" msgid "Done" msgstr "Concluído" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Parado" @@ -1031,72 +1057,76 @@ msgstr "(imagem do n msgid " (wd: %s)" msgstr "(wd agora: %s)\n" -#: jobs.c:1771 +#: jobs.c:1776 #, fuzzy, c-format msgid "child setpgid (%ld to %ld)" msgstr "`setpgid' filho (%d para %d) erro %d: %s\n" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, fuzzy, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: o pid %d não é um filho deste `shell'" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: o trabalho terminou" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "encaixe (slot) %3d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (imagem do núcleo gravada)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd agora: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 #, fuzzy msgid "initialize_job_control: getpgrp failed" msgstr "initialize_jobs: getpgrp falhou: %s" -#: jobs.c:3623 +#: jobs.c:3639 #, fuzzy msgid "initialize_job_control: line discipline" msgstr "initialize_jobs: disciplina da linha: %s" -#: jobs.c:3633 +#: jobs.c:3649 #, fuzzy msgid "initialize_job_control: setpgid" msgstr "initialize_jobs: getpgrp falhou: %s" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "nenhum controle de trabalho nesta `shell'" @@ -1187,6 +1217,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Você tem mensagem de correio em $_" @@ -1200,138 +1250,138 @@ msgstr "Voc msgid "The mail in %s has been read\n" msgstr "As mensagens de correio em %s foram lidas\n" -#: make_cmd.c:322 +#: make_cmd.c:323 #, fuzzy msgid "syntax error: arithmetic expression required" msgstr "erro de sintaxe na expressão" -#: make_cmd.c:324 +#: make_cmd.c:325 #, fuzzy msgid "syntax error: `;' unexpected" msgstr "erro de sintaxe: fim prematuro do arquivo" -#: make_cmd.c:325 +#: make_cmd.c:326 #, fuzzy, c-format msgid "syntax error: `((%s))'" msgstr "erro de sintaxe" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: o tipo da instrução está incorreto %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, fuzzy, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "encontrado EOF não esperado enquanto procurava por `%c'" -#: parse.y:3722 +#: parse.y:3951 #, fuzzy msgid "unexpected EOF while looking for `]]'" msgstr "encontrado EOF não esperado enquanto procurava por `%c'" -#: parse.y:3727 +#: parse.y:3956 #, fuzzy, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "erro de sintaxe próximo do `token' não esperado `%s'" -#: parse.y:3731 +#: parse.y:3960 #, fuzzy msgid "syntax error in conditional expression" msgstr "erro de sintaxe na expressão" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 #, fuzzy msgid "expected `)'" msgstr "esperado `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, fuzzy, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "%s: esperado operador binário" -#: parse.y:3889 +#: parse.y:4124 #, fuzzy msgid "conditional binary operator expected" msgstr "%s: esperado operador binário" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, fuzzy, c-format msgid "unexpected token `%c' in conditional command" msgstr "`:' esperado para expressão condicional" -#: parse.y:3924 +#: parse.y:4164 #, fuzzy, c-format msgid "unexpected token `%s' in conditional command" msgstr "`:' esperado para expressão condicional" -#: parse.y:3928 +#: parse.y:4168 #, fuzzy, c-format msgid "unexpected token %d in conditional command" msgstr "`:' esperado para expressão condicional" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "erro de sintaxe próximo do `token' não esperado `%s'" -#: parse.y:5213 +#: parse.y:5477 #, fuzzy, c-format msgid "syntax error near `%s'" msgstr "erro de sintaxe próximo do `token' não esperado `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "erro de sintaxe: fim prematuro do arquivo" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "erro de sintaxe" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use \"%s\" para sair da `shell'.\n" -#: parse.y:5447 +#: parse.y:5711 #, fuzzy msgid "unexpected EOF while looking for matching `)'" msgstr "encontrado EOF não esperado enquanto procurava por `%c'" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1341,72 +1391,91 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: conector incorreto `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, fuzzy, c-format msgid "%s: ambiguous redirect" msgstr "%s: Redirecionamento ambíguo" -#: redir.c:152 +#: redir.c:170 #, fuzzy, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: Impossível sobrescrever arquivo existente" -#: redir.c:157 +#: redir.c:175 #, fuzzy, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "impossível criar `pipe' para a substituição do processo: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: impossível atribuir uma lista a um membro de uma matriz (array)" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 #, fuzzy msgid "redirection error: cannot duplicate fd" msgstr "erro de redirecionamento" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, fuzzy, c-format msgid "%c%c: invalid option" msgstr "%c%c: opção incorreta" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Eu não tenho nome!" -#: shell.c:1778 +#: shell.c:1793 #, fuzzy, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU %s, versão %s\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1415,395 +1484,416 @@ msgstr "" "Utilização:\t%s [opção-longa-GNU] [opção] ...\n" "\t%s [opção-longa-GNU] [opção] arquivo-de-script ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "opções-longas-GNU:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Opções da `shell':\n" -#: shell.c:1786 +#: shell.c:1801 #, fuzzy msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD ou -c comando\t\t(somente para chamada)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ou -o opção\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Digite `%s -c \"help set\"' para mais informações sobre as opções da " "`shell'.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Digite `%s -c help' para mais informações sobre os comandos internos do " "`shell'.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Sinal falso" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Hangup" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Interromper" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Sair" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Instrução ilegal" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT Rastreamento/Captura (BPT trace/trap)" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Instrução ABORT" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "Instrução EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Exceção de ponto flutuante" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Morto (Killed)" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Erro do barramento" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Falha de segmentação" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Chamada incorreta do sistema" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "`Pipe' partido (Escrita sem leitura)" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Relógio de alarme" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "exibida." -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Condição urgente de Entrada/Saída" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Parado (sinal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Continuar" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Processo filho parado ou terminado" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Parado (entrada tty)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Parado (saída tty)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "Entrada/Saída pronta" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "Tempo limite de CPU excedido" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Tamanho limite do arquivo excedido" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarme virtual de tempo" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarme (profile)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Janela mudada" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Registro bloqueado (lock)" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Sinal 1 definido pelo usuário" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Sinal 2 definido pelo usuário" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "entrada de dados HFT pendente" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "falha iminente de energia" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "falha iminente do sistema" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "migrar o processo para outra CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "erro de programação" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "modo monitor HFT autorizado" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "modo monitor HFT rescindido" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "a seqüência de som HFT foi completada" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Sinal desconhecido #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Sinal desconhecido #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, fuzzy, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "substituição incorreta: nenhum `%s' em %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: impossível atribuir uma lista a um membro de uma matriz (array)" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 #, fuzzy msgid "cannot make pipe for process substitution" msgstr "impossível criar `pipe' para a substituição do processo: %s" -#: subst.c:4504 +#: subst.c:4802 #, fuzzy msgid "cannot make child for process substitution" msgstr "impossível criar um processo filho para a substituição do processo: %s" -#: subst.c:4549 +#: subst.c:4847 #, fuzzy, c-format msgid "cannot open named pipe %s for reading" msgstr "impossível abrir o `named pipe' %s para %s: %s" -#: subst.c:4551 +#: subst.c:4849 #, fuzzy, c-format msgid "cannot open named pipe %s for writing" msgstr "impossível abrir o `named pipe' %s para %s: %s" -#: subst.c:4569 +#: subst.c:4867 #, fuzzy, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" "impossível duplicar o `named pipe' %s\n" "como descritor de arquivo (fd) %d: %s" -#: subst.c:4765 +#: subst.c:5063 #, fuzzy msgid "cannot make pipe for command substitution" msgstr "impossível construir `pipes' para substituição do comando: %s" -#: subst.c:4799 +#: subst.c:5097 #, fuzzy msgid "cannot make child for command substitution" msgstr "impossível criar um processo filho para substituição do comando: %s" -#: subst.c:4816 +#: subst.c:5114 #, fuzzy msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" "command_substitute: impossível duplicar o `pipe' como\n" "descritor de arquivo (fd) 1: %s" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parâmetro nulo ou não inicializado" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: expressão de substring < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: substituição incorreta" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: impossível atribuir desta maneira" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "substituição incorreta: nenhum `%s' em %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "esperado argumento" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: esperado expressão de número inteiro" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "esperado `)'" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "esperado `)', encontrado %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: esperado operador unário" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: esperado operador binário" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "faltando `]'" -#: trap.c:201 +#: trap.c:203 #, fuzzy msgid "invalid signal number" msgstr "número do sinal incorreto" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, fuzzy, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: Sinal incorreto %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "erro ao importar a definição da função para `%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parâmetro nulo ou não inicializado" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: impossível criar: %s" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1814,60 +1904,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, fuzzy, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU %s, versão %s\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" - -#: xmalloc.c:94 -#, fuzzy, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "" -#: xmalloc.c:114 +#: version2.c:87 #, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" - -#: xmalloc.c:116 -#, fuzzy, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" -#: xmalloc.c:152 +#: xmalloc.c:93 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: cannot allocate %lu bytes" msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" -#: xmalloc.c:174 +#: xmalloc.c:163 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" -#: xmalloc.c:176 +#: xmalloc.c:165 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -2002,7 +2084,7 @@ msgstr "hash [-r] [-p CAMINHO] [NOME ...]" #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "help [PADRÃO ...]" #: builtins.c:121 @@ -2036,8 +2118,8 @@ msgstr "let ARG [ARG ...]" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2221,9 +2303,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2234,7 +2316,7 @@ msgstr "" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "type [-apt] NOME [NOME ...]" #: builtins.c:240 @@ -2963,7 +3045,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2983,7 +3069,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2995,7 +3081,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3077,7 +3163,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3097,7 +3183,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3116,7 +3202,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3136,7 +3222,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3147,7 +3233,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3161,7 +3247,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3175,7 +3261,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3252,7 +3338,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3261,7 +3347,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "argumento deve ser o literal `]', para fechar o `[' de abertura." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3273,7 +3359,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3309,7 +3395,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3339,7 +3425,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3383,7 +3469,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3401,7 +3487,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3418,7 +3504,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3432,7 +3518,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3445,7 +3531,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3462,7 +3548,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3482,7 +3568,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3498,7 +3584,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -3511,7 +3597,7 @@ msgid "" msgstr "" "Executar seletivamente COMANDOS tomando por base a correspondência entre" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3532,7 +3618,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -3544,7 +3630,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Expande e executa COMANDOS enquanto o comando final nos" -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -3556,7 +3642,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Expande e executa COMANDOS enquanto o comando final nos" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3569,7 +3655,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3583,7 +3669,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -3595,7 +3681,7 @@ msgid "" " Returns the status of the last command executed." msgstr "Executa um conjunto de comandos agrupando-os. Esta é uma forma de" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3609,7 +3695,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3620,7 +3706,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3648,7 +3734,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3702,7 +3788,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3733,7 +3819,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3760,7 +3846,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3789,7 +3875,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3810,7 +3896,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3840,7 +3926,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3854,15 +3940,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3875,7 +3966,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3888,6 +3979,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3904,15 +3997,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3939,16 +4032,29 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#, fuzzy +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#, fuzzy +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + #~ msgid "Display the list of currently remembered directories. Directories" #~ msgstr "Exibe a lista atual de diretórios memorizados. Os diretórios são" diff --git a/po/ro.gmo b/po/ro.gmo index 4bbf6459d06f824417fd8fc65a18f733604c44cd..d3c700c1391842efdb3c75b5f7c7cdfbf6cb9e03 100644 GIT binary patch delta 2846 zcmZ9MTWnQD6o#j?P@vLcOK;qIs4drC=naqx6$%PMK@bXvVo~m(6$;)!wmhi85DYXX zRbL3i2ni%4XvD+^Z43lWNH8cwLs5JXj0!{(42j0?J7@RBmGjRxGiUaiHEY)1KhHZm zH|ojFcqd?c&~Q|i5yA;r(VqtUabO6!@F$oJ|AHf7dR7QSU@7#u$#67W5_2caXM7mC z{&YOP1WOqI4)Gg>LHC4Ez(fL$fRmvQE{(Yv)-m1#-RNUD41NO*;16hE>4QSx7jkLR zU;^F?OJNSIk2wpncUS_m**~+iL*QUI97Z~)KqGF2Ud3uS6Gm`0?1nzrpGL>U5Z|E! z>ZcJdhYO+4AB7w`oQZi6y8aq;{q4czzmQH}F3OEZK(AmdG(`Yy8%nTxOr zUWJ}Cn`k{zQOt5^4b?(3)&kAY4#+RON8`pPVPE(e8o=MssvSyH zj_cs6G+s+c4B;d0%?zD`Zgd&C{vYT`3m6!1L(Da>m~kicJ8=TyCkhwon4%ld6X&za zg=1)RGy|5yHfW~afQ|47WUp`)T5NY9zmU%<46GVbXJI-d?ywMg;zf`;4r`MCbN}1v zn3~t24<3LzJ`~TNhC2QddgndREBOt&?oK?;;j84;427;Mg9cC=&o{^OEzsvy!aU#q z4mvgP&G?T`p|x-UCg62wfCD%_^%U}(7T!fSrXO zglUY4D?E$5mN`g!8d+CninszZKwdd9chmt)8^|^fwZ}3 z3VH;YLe00tEcM!UI;Png_`ek}@i1D0YS=$n`5>%7wP-nd5m|tm1*t7U>rf7AMlDF2 zl|r%}?CwU5Xd`+JX`50=w$IV_L64(o8O?NL6>ASB+thn&0qsQVKtK9;wL>Bfa^gPmDNP%LiEbmCPZ%b63D$UxQ)!Cip^!VxzTcMya@}p?1i{i&eSq(V_A(CwHY<+^S$@nvUmP=zyHrU=YJl4=XZYR zf6tfREOW0XMjtU)2bzJhqmAi-tH$!cro+$1_@lc-ynb$QX6q0GEh7ZFa)WAcQ@53zWpF%D4E1V8vCWIZB4ds{@@-r)W zM8Rs90Bc}8Y_Qx5@x^q(IMz2u?TeF;xy@PI;d3~S`bEnt@FD8Apn`J;5-bzN>Z*@{ zS|}bq2t69Q=fP!A8)$@~wZ4&sZs6z@=s4}4jE`^$SwQUbTO}qmt2VRFdqGM3~x^2A|>Zr~` z^&5bi|9jg$q;}o^VG0^JmhF%?#(^0y8>)Q^B-&;_bl?#v2S0)8-v^Zo-#|t1rhR`0 zYQbp2p(IX%G?|%Dj(MS*Mxlg)&MFA?L3s^o=WjqA!3n5jIRiD(If&2ZD_8{w;d)re z`N*MnAZcaJK#lLW?U$jS`Y%vPTJ9nK8qnqm5A3ph7s~UGp?35IREV!Y9o0{eIm{nW z6HRi$ktu*$xE5+-%~1W0L+!X1D!Kb%E*x~+@IVi(3Skjcs8>TppbpBxW~hk|!fbfl zzP|(&ksDBs{tT78ccIRFUTQexd9a*%71Y8fp(1nLrJ%DOf(mIWUl)106w09$P}yDy z^?nc3^?Dm>!Ct7y48R5AUoiu(1)Iw=ck?_K~um&!KZU+S=Sr1fFU4Re3Z=n|W z4r+lR$VD-KL85Mw@rq+Nxlr{AC4{yKxs&~=S8#x%}28BXe?T-3Z|v%P!W<9=%L27s8ki~Nwf~tAdb@1qCBLd zh}g>%Qc*PWqi2xJK{}EJNVnn@l!YSpEQO_L2ik@*k*hD6Y!%vzbjD90Ss{8JwIkgE zWw0!Woc>cJ!V^4p^~iv9Y8ygZbv1ODT8Gx z$b+6j^+=hlYn6{=%J|)(QuqU\n" "Language-Team: Romanian \n" @@ -18,50 +18,55 @@ msgstr "" msgid "bad array subscript" msgstr "incluziune greºitã în interval" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%c%c: opþiune invalidã" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: nu se poate atribui cãtre index ne-numeric" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: nu s-a putut crea: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%c%c: opþiune invalidã" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -112,6 +117,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "" @@ -125,7 +145,7 @@ msgstr "" msgid "line %d: " msgstr "slot %3d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "în scriere" @@ -135,11 +155,11 @@ msgstr " msgid "%s: usage: " msgstr "" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "prea mulþi parametri" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, fuzzy, c-format msgid "%s: option requires an argument" msgstr "opþiunea necesitã un parametru: -" @@ -154,7 +174,7 @@ msgstr "" msgid "%s: not found" msgstr "%s: comandã negãsitã" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, fuzzy, c-format msgid "%s: invalid option" msgstr "%c%c: opþiune invalidã" @@ -179,7 +199,7 @@ msgstr "num msgid "invalid hex number" msgstr "numãr de semnal invalid" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 #, fuzzy msgid "invalid number" msgstr "numãr de semnal invalid" @@ -194,7 +214,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: variabilã doar în citire" @@ -269,26 +289,26 @@ msgstr "" msgid "%s: ambiguous job spec" msgstr "%s: Redirectare ambiguã" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -297,21 +317,21 @@ msgstr "" msgid "can only be used in a function" msgstr "poate fi folosit doar într-o funcþie, ºi face ca variabila NUME" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funcþie doar în citire (readonly)" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, fuzzy, c-format msgid "%s: cannot destroy array variables in this way" msgstr "$%s: nu se poate asigna în acest mod" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -340,8 +360,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: nu s-a putut crea: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: este director" @@ -356,7 +376,8 @@ msgstr "%s: nu se poate executa fi msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: nu se poate executa fiºierul binar" @@ -385,16 +406,16 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 #, fuzzy msgid "no command found" msgstr "%s: comandã negãsitã" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, fuzzy, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: nu s-a putut crea: %s" @@ -484,12 +505,12 @@ msgstr "%s: variabil msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 #, fuzzy msgid "Unknown error" msgstr "Eroare necunoscutã %d" @@ -498,56 +519,61 @@ msgstr "Eroare necunoscut msgid "expression expected" msgstr "se aºteaptã expresie" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: variabilã fãrã limitã" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%c%c: opþiune invalidã" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%c%c: opþiune invalidã" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "numãr de semnal invalid" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: variabilã fãrã limitã" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -639,12 +665,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, fuzzy, c-format msgid "read error: %d: %s" msgstr "eroare de legãturã (pipe): %s" @@ -683,11 +709,11 @@ msgstr "%s: func msgid "shift count" msgstr "shift [n]" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -780,81 +806,81 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, fuzzy, c-format msgid "last command: %s\n" msgstr "ultima comandã." -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 #, fuzzy msgid "unknown command error" msgstr "Eroare necunoscutã %d" -#: error.c:406 +#: error.c:407 #, fuzzy msgid "bad command type" msgstr "ºi nume de comandã." -#: error.c:407 +#: error.c:408 #, fuzzy msgid "bad connector" msgstr "conector greºit `%d'" -#: error.c:408 +#: error.c:409 #, fuzzy msgid "bad jump" msgstr "Salt invalid %d" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: variabilã fãrã limitã" #: eval.c:181 #, fuzzy, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "%ca expirat aºteptând introducere de date: auto-logout\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "eroare de legãturã (pipe): %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: comandã negãsitã" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, fuzzy, c-format msgid "%s: %s: bad interpreter" msgstr "%s: este director" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, fuzzy, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "nu se poate duplica fd %d în fd 0: %s" @@ -901,29 +927,29 @@ msgstr "" msgid "missing `)'" msgstr "`)' lipsã" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 #, fuzzy msgid "syntax error: operand expected" msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, fuzzy, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s: %s: %s (identificatorul erorii este \"%s\")\n" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "valoare prea mare pentru bazã" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "eroare de redirectare" @@ -933,7 +959,7 @@ msgstr "eroare de redirectare" msgid "getcwd: cannot access parent directories" msgstr "getwd: nu s-au putut accesa directoarele pãrinte" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "" @@ -987,7 +1013,7 @@ msgstr "Semnal Necunoscut #%d" msgid "Done" msgstr "Finalizat" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Stopat" @@ -1024,72 +1050,76 @@ msgstr "(core dumped) " msgid " (wd: %s)" msgstr "(wd actual: %s)\n" -#: jobs.c:1771 +#: jobs.c:1776 #, fuzzy, c-format msgid "child setpgid (%ld to %ld)" msgstr "setpgid copil (de la %d la %d) a întâlnit o eroare %d: %s\n" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, fuzzy, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "aºteptaþi: pid-ul %d nu este rezultat(child) al acestui shell" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: jobul a fost terminat" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "slot %3d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (core dumped)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd actual: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 #, fuzzy msgid "initialize_job_control: getpgrp failed" msgstr "initialize_jobs: getpgrp eºuat: %s" -#: jobs.c:3623 +#: jobs.c:3639 #, fuzzy msgid "initialize_job_control: line discipline" msgstr "initialize_jobs: disciplinã linie: %s" -#: jobs.c:3633 +#: jobs.c:3649 #, fuzzy msgid "initialize_job_control: setpgid" msgstr "initialize_jobs: getpgrp eºuat: %s" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "nici un control de job în acest shell" @@ -1179,6 +1209,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Aveþi mail în $_" @@ -1192,138 +1242,138 @@ msgstr "Ave msgid "The mail in %s has been read\n" msgstr "Mailul din %s a fost citit\n" -#: make_cmd.c:322 +#: make_cmd.c:323 #, fuzzy msgid "syntax error: arithmetic expression required" msgstr "eroare de sintaxã în expresie " -#: make_cmd.c:324 +#: make_cmd.c:325 #, fuzzy msgid "syntax error: `;' unexpected" msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat" -#: make_cmd.c:325 +#: make_cmd.c:326 #, fuzzy, c-format msgid "syntax error: `((%s))'" msgstr "eroare de sintaxã" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: tip de instrucþiune greºit %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, fuzzy, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "EOF brusc în cãutare dupã `%c'" -#: parse.y:3722 +#: parse.y:3951 #, fuzzy msgid "unexpected EOF while looking for `]]'" msgstr "EOF brusc în cãutare dupã `%c'" -#: parse.y:3727 +#: parse.y:3956 #, fuzzy, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "eroare de sintaxã neaºteptatã lângã `%s'" -#: parse.y:3731 +#: parse.y:3960 #, fuzzy msgid "syntax error in conditional expression" msgstr "eroare de sintaxã în expresie " -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 #, fuzzy msgid "expected `)'" msgstr "se aºteaptã `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, fuzzy, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "%s: se aºteaptã operator binar" -#: parse.y:3889 +#: parse.y:4124 #, fuzzy msgid "conditional binary operator expected" msgstr "%s: se aºteaptã operator binar" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, fuzzy, c-format msgid "unexpected token `%c' in conditional command" msgstr "`:' aºteptat dupã expresie condiþionalã" -#: parse.y:3924 +#: parse.y:4164 #, fuzzy, c-format msgid "unexpected token `%s' in conditional command" msgstr "`:' aºteptat dupã expresie condiþionalã" -#: parse.y:3928 +#: parse.y:4168 #, fuzzy, c-format msgid "unexpected token %d in conditional command" msgstr "`:' aºteptat dupã expresie condiþionalã" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "eroare de sintaxã neaºteptatã lângã `%s'" -#: parse.y:5213 +#: parse.y:5477 #, fuzzy, c-format msgid "syntax error near `%s'" msgstr "eroare de sintaxã neaºteptatã lângã `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "eroare de sintaxã" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Folosiþi \"%s\" pentru a pãrãsi shellul.\n" -#: parse.y:5447 +#: parse.y:5711 #, fuzzy msgid "unexpected EOF while looking for matching `)'" msgstr "EOF brusc în cãutare dupã `%c'" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1333,72 +1383,91 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: conector greºitr `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, fuzzy, c-format msgid "%s: ambiguous redirect" msgstr "%s: Redirectare ambiguã" -#: redir.c:152 +#: redir.c:170 #, fuzzy, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: nu se poate accesa(clobber) fiºierul existent" -#: redir.c:157 +#: redir.c:175 #, fuzzy, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "nu pot face legãturã (pipe) pentru substituþia procesului: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: nu pot asigna listã membrului intervalului" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 #, fuzzy msgid "redirection error: cannot duplicate fd" msgstr "eroare de redirectare" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, fuzzy, c-format msgid "%c%c: invalid option" msgstr "%c%c: opþiune invalidã" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Nu am nici un nume!" -#: shell.c:1778 +#: shell.c:1793 #, fuzzy, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU %s, versiunea %s\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1407,390 +1476,411 @@ msgstr "" "Folosire:\t%s [GNU opþiune lungã] [opþiune] ...\n" "\t%s [GNU opþiune lungã] [opþiune] fiºier script ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "opþiuni lungi GNU:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Opþiuni ale shell-ului:\n" -#: shell.c:1786 +#: shell.c:1801 #, fuzzy msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD sau -c comandã\t\t(doar invocaþie)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s sau -o opþiune\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Apãsaþi `%s -c \"set-ajutor\"' pentru mai multe informaþii despre opþiunile " "shell-ului.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Apãsaþi `%s -c ajutor' pentru mai multe informaþii despre comenzile interne " "ale shell-ului.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Semnal fals" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Deconectare" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Întrerupere" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Pãrãsire" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Instrucþiune ilegalã" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT trace/trap" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "instrucþiune ABORT" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "instrucþiune EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Excepþie virgulã mobilã" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Terminat(killed)" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Eroare de bus" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Eroare de segmentare (Segmentation fault)" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Apelare sistem invalidã" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Legãturã(pipe) întreruptã" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Ceas alarmã" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Terminat" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Condiþie IO urgentã" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Oprit (semnal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Continuare" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Succesor mort sau oprit" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Oprit (tty input)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Oprit (tty output)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O pregãtit" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "limitã CPU" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "limitã fiºier" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarmã (virtual)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarmã (profil)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Fereastrã schimbatã" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Reþinere (lock) înregistrare" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Semnal utilizator 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Semnal utilizator 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "Date de intrare HFT în curs de rezolvare(pending)" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "probleme electrice iminente" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "crash de sistem iminent" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "migrare proces spre alt CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "eroare de programare" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "mod monitor HFT acordat" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "mod monitor HFT retras" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "secvenþã de sunet HFT completatã" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Semnal Necunoscut #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Semnal Necunoscut #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, fuzzy, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "substituþie invalidã: nu existã '%s' în %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: nu pot asigna listã membrului intervalului" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 #, fuzzy msgid "cannot make pipe for process substitution" msgstr "nu pot face legãturã (pipe) pentru substituþia procesului: %s" -#: subst.c:4504 +#: subst.c:4802 #, fuzzy msgid "cannot make child for process substitution" msgstr "nu pot crea un proces copil pentru substituirea procesului: %s" -#: subst.c:4549 +#: subst.c:4847 #, fuzzy, c-format msgid "cannot open named pipe %s for reading" msgstr "nu pot deschide legãtura numitã %s pentru %s: %s" -#: subst.c:4551 +#: subst.c:4849 #, fuzzy, c-format msgid "cannot open named pipe %s for writing" msgstr "nu pot deschide legãtura numitã %s pentru %s: %s" -#: subst.c:4569 +#: subst.c:4867 #, fuzzy, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "nu se poate duplica legãtura numitã %s ca fd %d: %s " -#: subst.c:4765 +#: subst.c:5063 #, fuzzy msgid "cannot make pipe for command substitution" msgstr "nu pot face legãturi(pipes) pentru substituþia de comenzi: %s" -#: subst.c:4799 +#: subst.c:5097 #, fuzzy msgid "cannot make child for command substitution" msgstr "nu pot crea un copil pentru substituþia de comenzi: %s" -#: subst.c:4816 +#: subst.c:5114 #, fuzzy msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: nu se poate duplica legãtura (pipe) ca fd 1: %s" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parametru null sau nesetat" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: expresie subºir < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: substituþie invalidã" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: nu se poate asigna în acest mod" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "substituþie invalidã: nu existã ')' de final în %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "se aºteaptã parametru" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: se aºteaptã expresie întreagã (integer)" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "se aºteaptã `)'" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "se aºteaptã `)', s-a primit %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: se aºteaptã operator unar" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: se aºteaptã operator binar" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "lipseºte ']'" -#: trap.c:201 +#: trap.c:203 #, fuzzy msgid "invalid signal number" msgstr "numãr de semnal invalid" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, fuzzy, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: Semnal invalid %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "eroare în importarea definiþiei funcþiei pentru '%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parametru null sau nesetat" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: nu s-a putut crea: %s" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1801,60 +1891,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, fuzzy, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU %s, versiunea %s\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" - -#: xmalloc.c:94 -#, fuzzy, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "" -#: xmalloc.c:114 +#: version2.c:87 #, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" - -#: xmalloc.c:116 -#, fuzzy, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" -#: xmalloc.c:152 +#: xmalloc.c:93 #, fuzzy, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: cannot allocate %lu bytes" msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" -#: xmalloc.c:174 +#: xmalloc.c:163 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" -#: xmalloc.c:176 +#: xmalloc.c:165 #, fuzzy, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -1988,7 +2070,7 @@ msgstr "hash [-r] [-p nume_cale] [nume ...]" #: builtins.c:117 #, fuzzy -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "help [tipar ...]" #: builtins.c:121 @@ -2022,8 +2104,8 @@ msgstr "let arg [arg ...]" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2206,9 +2288,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2219,7 +2301,7 @@ msgstr "" #: builtins.c:237 #, fuzzy -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "type [-apt] nume [nume ...]" #: builtins.c:240 @@ -2942,7 +3024,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2962,7 +3048,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2974,7 +3060,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3056,7 +3142,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3076,7 +3162,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3095,7 +3181,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3115,7 +3201,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3126,7 +3212,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3140,7 +3226,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3154,7 +3240,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3231,7 +3317,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3239,7 +3325,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3251,7 +3337,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3287,7 +3373,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3317,7 +3403,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3361,7 +3447,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3379,7 +3465,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3396,7 +3482,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3410,7 +3496,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3423,7 +3509,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3440,7 +3526,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3460,7 +3546,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3476,7 +3562,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3487,7 +3573,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3508,7 +3594,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3519,7 +3605,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3530,7 +3616,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3543,7 +3629,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3557,7 +3643,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3568,7 +3654,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3582,7 +3668,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3593,7 +3679,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3621,7 +3707,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3675,7 +3761,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3706,7 +3792,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3733,7 +3819,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3762,7 +3848,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3783,7 +3869,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3813,7 +3899,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3827,15 +3913,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3848,7 +3939,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3861,6 +3952,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3877,15 +3970,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3912,16 +4005,29 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#, fuzzy +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#, fuzzy +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + #~ msgid "Missing `}'" #~ msgstr "`}' lipsã" diff --git a/po/ru.gmo b/po/ru.gmo index 50ea7e2f5fb9f541b230952ccc3a55ff4d1cdea3..b5aeccf4828169b3a4e3b036d5574d1fa22bf935 100644 GIT binary patch delta 24 fcmdnyzRi6@vk14Lk*=|Uf`NsVk?H0>5e\n" "Language-Team: Russian \n" @@ -22,50 +22,55 @@ msgstr "" msgid "bad array subscript" msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s; ÎÅ ÍÏÇÕ ÐÒÉÐÉÓÁÔØ ÎÅ ÞÉÓÌÏ×ÏÊ ÉÎÄÅËÓ" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: ÐÅÒ×ÙÊ ÎÅÐÒÏÂÅÌØÎÙÊ ÓÉÍ×ÏÌ ÎÅ `\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: ÐÒÏÐÕÝÅÎ ÒÁÚÄÅÌÉÔÅÌØ Ä×ÏÅÔÏÞÉÅ" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -115,6 +120,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "ÐÅÒÅÍÅÎÎÁÑ HOME ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ" @@ -128,7 +148,7 @@ msgstr " msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" @@ -138,11 +158,11 @@ msgstr "%s: msgid "%s: usage: " msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: ÏÐÃÉÑ ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔÁ" @@ -157,7 +177,7 @@ msgstr "%s: msgid "%s: not found" msgstr "%s: ÎÅ ÎÁÊÄÅÎ" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" @@ -182,7 +202,7 @@ msgstr " msgid "invalid hex number" msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" @@ -196,7 +216,7 @@ msgstr "%s: msgid "`%s': not a pid or valid job spec" msgstr "`%s': ÎÅ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ ÉÌÉ ÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÚÁÄÁÞÉ" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÐÅÒÅÍÅÎÎÁÑ" @@ -268,26 +288,26 @@ msgstr "%s: msgid "%s: ambiguous job spec" msgstr "" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -295,21 +315,21 @@ msgstr "" msgid "can only be used in a function" msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÔÏÌØËÏ × ÆÕÎËÃÉÉ" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÆÕÎËÃÉÑ" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ-ÍÁÓÓÉ× ÔÁËÉÍ ÓÐÏÓÏÂÏÍ" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -338,8 +358,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: Ñ×ÌÑÅÔÓÑ ÄÉÒÅËÔÏÒÉÅÊ" @@ -354,7 +374,8 @@ msgstr "%s: msgid "%s: file is too large" msgstr "%s: ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÆÁÊÌ" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ" @@ -384,15 +405,15 @@ msgstr " msgid "There are running jobs.\n" msgstr "åÓÔØ ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÅ ÚÁÄÁÞÉ.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "ÎÅ ÎÁÛÅÌ ÔÁËÕÀ ËÏÍÁÎÄÕ" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %s" @@ -483,12 +504,12 @@ msgstr "%s: msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ" @@ -496,56 +517,61 @@ msgstr " msgid "expression expected" msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "`%s': ÐÒÏÐÕÝÅÎ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "%c': ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -635,12 +661,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ: %d: %s" @@ -677,11 +703,11 @@ msgstr "%s: msgid "shift count" msgstr "" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ ÏÂÏÌÏÞËÉ" @@ -771,77 +797,77 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "ÐÏÓÌÅÄÎÑÑ ËÏÍÁÎÄÁ: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "úÁ×ÅÒÛÁÀ ÒÁÂÏÔÕ..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ ËÏÍÁÎÄÙ" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: ÐÌÏÈÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d" @@ -886,28 +912,28 @@ msgstr "" msgid "missing `)'" msgstr "ÐÒÏÐÕÝÅÎ `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÏÖÉÄÁÅÔÓÑ ÏÐÅÒÁÎÄ" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" @@ -916,7 +942,7 @@ msgstr " msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d" @@ -969,7 +995,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1006,69 +1032,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "" @@ -1159,6 +1189,26 @@ msgstr "" msgid "network operations not supported" msgstr "" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "õ ×ÁÓ ÅÓÔØ ÐÏÞÔÁ × $_" @@ -1172,131 +1222,131 @@ msgstr " msgid "The mail in %s has been read\n" msgstr "ðÏÞÔÁ × %s ÂÙÌÁ ÐÒÏÞÉÔÁÎÁ\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: `;' ÎÅ ÏÖÉÄÁÅÔÓÑ" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "ÏÖÉÄÁÌÓÑ `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ ÏËÏÌÏ `%s'" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "éÓÐÏÌØÚÕÊÔÅ \"%s\", ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØÓÑ ÒÁÂÏÔÕ Ó ÏÂÏÌÏÞËÏÊ.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1306,71 +1356,90 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "ÆÁÊÌÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: ÎÅ ÍÏÇÕ ÐÅÒÅÐÉÓÁÔØ ÕÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÆÁÊÌ" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "ÏÛÉÂËÁ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ: ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ /tmp, ÐÏÖÁÌÕÊÓÔÁ ÓÏÚÄÁÊÔÅ!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp ÄÏÌÖÎÁ ÂÙÔØ ÄÅÊÓÔ×ÉÔÅÌØÎÙÍ ÉÍÅÎÅÍ ÄÉÒÅËÔÏÒÉÉ" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "õ ÍÅÎÑ ÎÅÔ ÉÍÅÎÉ!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1380,380 +1449,401 @@ msgstr "" "%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ...\n" "\t%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ÆÁÊÌ_ÓÏ_ÓËÒÉÐÔÏÍ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "äÌÉÎÎÙÅ ÏÐÃÉÉ × ÓÔÅÌÅ GNU:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "ïÐÃÉÉ ÏÂÏÌÏÞËÉ:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ÉÌÉ ÏÐÃÉÑ -o\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÞÔÅÎÉÑ" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÚÁÐÉÓÉ" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "ÎÅÔ ÓÏ×ÐÁÄÅÎÉÑ Ó: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ ÁÒÇÕÍÅÎÔ" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "ÏÖÉÄÁÅÔÓÑ `)' " -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "ÏÖÉÄÁÌÓÑ `)', ÎÁÊÄÅÎ %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÕÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÂÉÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "ÐÒÏÐÕÝÅÎ `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1764,60 +1854,52 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" msgstr "" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" +msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s" #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" @@ -1934,7 +2016,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -1963,8 +2045,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2127,9 +2209,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2139,7 +2221,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -2863,7 +2945,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2883,7 +2969,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2895,7 +2981,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -2977,7 +3063,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -2997,7 +3083,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3016,7 +3102,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3036,7 +3122,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3047,7 +3133,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3061,7 +3147,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3075,7 +3161,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3152,7 +3238,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3160,7 +3246,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3172,7 +3258,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3208,7 +3294,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3238,7 +3324,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3282,7 +3368,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3300,7 +3386,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3317,7 +3403,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3331,7 +3417,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3344,7 +3430,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3361,7 +3447,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3381,7 +3467,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3397,7 +3483,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3408,7 +3494,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3429,7 +3515,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3440,7 +3526,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3451,7 +3537,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3464,7 +3550,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3478,7 +3564,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3489,7 +3575,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3503,7 +3589,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3514,7 +3600,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3542,7 +3628,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3596,7 +3682,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3627,7 +3713,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3654,7 +3740,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3683,7 +3769,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3704,7 +3790,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3734,7 +3820,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3748,15 +3834,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 #, fuzzy msgid "" "Display possible completions depending on the options.\n" @@ -3775,7 +3866,7 @@ msgstr "" " åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ " "ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3788,6 +3879,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3804,15 +3897,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3839,10 +3932,12 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/po/sk.gmo b/po/sk.gmo index 7c8efd2bb27f44f4d095e789120e673592a95678..06b798f09cf2219cf232b12e7d67fc6b859a4fcc 100644 GIT binary patch delta 12566 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 feQsep<$v$$85gTfN8Bsv7 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 b=u~O0|L-IV-Erf~mW>=db&A{1z1;i{DcB~< diff --git a/po/sk.po b/po/sk.po index ff72a87..dba3061 100644 --- a/po/sk.po +++ b/po/sk.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: bash 4.0-pre1\n" +"Project-Id-Version: bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2009-02-07 15:11+0100\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-03-19 13:09+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" @@ -20,54 +20,59 @@ msgstr "" msgid "bad array subscript" msgstr "chybný index poľa" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: nie je možné previesÅ¥ indexované pole na asociatívne" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: neplatný kľúč asociatívneho poľa" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: nie je možné priradiÅ¥ nenumerickému indexu" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "%s: %s: pri priraďovaní asociatívnemu poľu je potrebné použiÅ¥ index" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: nie je možné vytvoriÅ¥: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "bash_execute_unix_command: nie je možné nájsÅ¥ klávesovú mapu pre príkaz" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: prvý znak (okrem bielych znakov) nie je „\"“" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "chýba zatvárajúca „%c“ v %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: chýba oddeľovač dvojbodka" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "„%s“: neplatný názov klávesovej mapy" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "úpravy riadka nie sú zapnuté" #: builtins/bind.def:206 #, c-format @@ -108,12 +113,29 @@ msgid "only meaningful in a `for', `while', or `until' loop" msgstr "dáva zmysel iba v cykle „for“, „while“ alebo „until“" #: builtins/caller.def:133 -#, fuzzy msgid "" "Returns the context of the current subroutine call.\n" " \n" " Without EXPR, returns " -msgstr "Vracia kontext aktuálneho volania podprocedúry." +msgstr "" +"Vracia kontext aktuálneho volania podprocedúry.\n" +" \n" +" Bez EXPR, vracia " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -128,7 +150,7 @@ msgstr "OLDPWD nebola nastavená" msgid "line %d: " msgstr "riadok %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "upozornenie: " @@ -138,11 +160,11 @@ msgstr "upozornenie: " msgid "%s: usage: " msgstr "%s: použitie " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "príliÅ¡ veľa argumentov" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: voľba vyžaduje argument" @@ -157,7 +179,7 @@ msgstr "%s: vyžaduje sa numerický argument" msgid "%s: not found" msgstr "%s: nenájdené" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: neplatná voľba" @@ -180,7 +202,7 @@ msgstr "neplatné osmičkové číslo" msgid "invalid hex number" msgstr "neplatné Å¡estnástkové číslo" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "neplatné číslo" @@ -194,7 +216,7 @@ msgstr "%s: neplatné určenie signálu" msgid "`%s': not a pid or valid job spec" msgstr "„%s“: nie je pid ani platný Å¡pecifikátor úlohy" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: premenná len na čítanie" @@ -249,12 +271,12 @@ msgstr "chyba zapisovania: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "chyba pri nastavovaní atribútov terminálu: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "chyba pri zisÅ¥ovaní atribútov terminálu: %s" #: builtins/common.c:563 #, c-format @@ -266,26 +288,26 @@ msgstr "%s: chyba pri zisÅ¥ovaní aktuálneho adresára: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: nejednoznačné určenie úlohy" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: neplatný názov akcie" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: chýba Å¡pecifikácia dokončovania" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "upozornenie: voľba -F nemusí fungovaÅ¥ tak ako očakávate" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "upozornenie: voľba -C nemusí fungovaÅ¥ tak ako očakávate" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "momentálne sa nevykonáva funkcia doplňovania" @@ -293,21 +315,21 @@ msgstr "momentálne sa nevykonáva funkcia doplňovania" msgid "can only be used in a function" msgstr "je možné použiÅ¥ iba vo funkcii" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "nie je možné použiÅ¥ „-f“ pre tvorbu funkcií" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: funkcia iba na čítanie" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: nie je možné takto robiÅ¥ deÅ¡trukciu premenných polí" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: nie je možné previesÅ¥ asociatívne pole na indexované" @@ -336,8 +358,8 @@ msgstr "%s: nie je dynamicky načítané" msgid "%s: cannot delete: %s" msgstr "%s: nie je možné zmazaÅ¥: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: je adresár" @@ -352,7 +374,8 @@ msgstr "%s: nie je obyčajný súbor" msgid "%s: file is too large" msgstr "%s: súbor je príliÅ¡ veľký" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: nie je možné vykonaÅ¥ binárny súbor" @@ -381,15 +404,15 @@ msgstr "Existujú zastavené úlohy.\n" msgid "There are running jobs.\n" msgstr "Existujú bežiace úlohy.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "prákaz nenájdený" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "Å¡pecifikácia histórie" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: nie je možné otvoriÅ¥ odkladací súbor: %s" @@ -491,12 +514,12 @@ msgstr "%s: inlib zlyhalo" msgid "no other options allowed with `-x'" msgstr "iné voľby prípustné s „-x“" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argumenty musia byÅ¥ ID procesov alebo úloh" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Neznáma chyba" @@ -504,55 +527,60 @@ msgstr "Neznáma chyba" msgid "expression expected" msgstr "očakával sa výraz" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: nie je premenná poľa" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: neplatná Å¡pecifikácia popisovača súboru" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: neplatný popisovač súboru: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: neplatný počet riadkov" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: neplatný začiatok poľa" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: neplatné kvantum spätného volania" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "názov prázdnej premennej poľa" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "vyžaduje sa podpora premennej poľa" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "„%s“: chýba formátovací znak" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "„%c“: neplatný formátovací znak" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "upozornenie: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "chýba hexadecimálna číslica v \\x" @@ -697,12 +725,12 @@ msgstr "" " \n" " Zásobník adresárov môžete zobraziÅ¥ vstavaným príkazom „dirs“." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: neplatná Å¡pecifikácia expirácie (timeout)" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "chyba pri čítaní: %d: %s" @@ -741,11 +769,11 @@ msgstr "%s: nie je funkcia" msgid "shift count" msgstr "posun o" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "nie je možné zároveň nastaviÅ¥ aj zruÅ¡iÅ¥ voľby shellu" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: neplatný názov voľby shellu" @@ -835,76 +863,76 @@ msgstr "„%c“: neplatný operátor symbolického režimu" msgid "`%c': invalid symbolic mode character" msgstr "„%c“: neplatný znak symbolického režimu" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " riadok " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "posledný príkaz: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Ruší sa..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "chyba neznámeho príkazu" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "chybný typ príkazu" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "chybný konektor" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "chybný skok" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: neviazaná premenná" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\ačas vyprÅ¡al pri čakaní na vstup: automatické odhlásenie\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "čas vyprÅ¡al pri čakaní na vstup: automatické odhlásenie\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "nie je možné presmerovaÅ¥ Å¡tandardný vstup z /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: „%c“: neplatný formátovácí znak" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "chyba rúry" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: obmedzené: nie jemožné uviesÅ¥ „/“ v názvoch príkazov" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: príkaz nenájdený" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: chybný interpreter" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "nie je možné duplikovaÅ¥ fd %d na fd %d" @@ -949,28 +977,28 @@ msgstr "po pre-inkrementácii alebo pre-dekrementácii sa očakáva identifikát msgid "missing `)'" msgstr "chýba „)“" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "chyba syntaxe: očakáva sa operand" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "chyba syntaxe: neplatný aritmetický operátor" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (chybný token je „%s”)" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "neplatný aritmetický základ" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "hodnota je ako základ príliÅ¡ veľká" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: chyba výrazu\n" @@ -979,7 +1007,7 @@ msgstr "%s: chyba výrazu\n" msgid "getcwd: cannot access parent directories" msgstr "getcwd: nie je možné pristupovaÅ¥ k rodičovským adresárom" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "nie j emožné resetovaÅ¥ nodelay režim fd %d" @@ -1032,7 +1060,7 @@ msgstr "Signál %d" msgid "Done" msgstr "Hotovo" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Zastavené" @@ -1069,69 +1097,73 @@ msgstr "(bol uložený výpis pamäte) " msgid " (wd: %s)" msgstr " (wd: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "setpgid detského procesu (%ld to %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld nie je dieÅ¥a tohto shellu" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Neexistuje záznam o procese %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: úloha %d je zastavená" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: úloha skončila" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: úloha %d už je v pozadí" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: riadok %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (bol uložený výpis pamäte)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd teraz: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: funkcia getpgrp zlyhala" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: riadkový systém" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "nie je možné nastaviÅ¥ skupinu procesu terminálu (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "v tomto shelli nie je riadenie úloh" @@ -1223,6 +1255,26 @@ msgstr "%s: chybná Å¡pecifikácia sieÅ¥ovej cesty" msgid "network operations not supported" msgstr "sieÅ¥ové operácie nie sú podporované" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: nie je možné alokovaÅ¥ %lu bajtov" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: nie je možné alokovaÅ¥ %lu bajtov" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Máte poÅ¡tu v súbore $_" @@ -1236,132 +1288,132 @@ msgstr "Máte novú poÅ¡tu v súbore $_" msgid "The mail in %s has been read\n" msgstr "PoÅ¡ta v súbore %s bola prečítaná\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "chyba syntaxe: vyžaduje sa aritmetický výraz" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "chyba syntaxe: neočakávaná „;“" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "chyba syntaxe: „((%s))“" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: chybný typ inÅ¡trukcie %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" "here-document na riadku %d oddelený znakom konca riadku (očakávalo sa „%s”)" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: inÅ¡trukcia presmerovania „%d“ mimo rozsahu" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „%c“" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "neočakávaný koniec súboru počas hľadania „]]“" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "chyba syntaxe v podmienečnom príkaze: neočakávaný token „%s“" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "chyba syntaxe v podmienečnom príkaze" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "neočakávaný token „%s“, očakávalo sa `)'" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "očakávalo sa `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "neočakávaný argument „%s“ podmienečného unárneho operátora" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "neočakávaný argument podmienečného unárneho operátora" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "neočakávaný token „%s“, očakáva sa podmienečný binárny operátor" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "očakáva sa podmienečný binárny operátor" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "neočakávaný argument „%s“ v podmienečnom binárnom operátore" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "neočakávaný argument v podmienečnom binárnom operátore" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "neočakávaný token „%c“ v podmienečnom príkaze" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "neočakávaný token „%s“ v podmienečnom príkaze" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "neočakávaný token %d v podmienečnom príkaze" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "chyba syntaxe neďaleko neočakávaného tokenu „%s“" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "chyba syntaxe neďaleko „%s“" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "chyba syntaxe: neočakávaný koniec súboru" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "chyba syntaxe" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Na opustenie shellu použite „%s“.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „)“" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "dokončovanie: funkcia „%s“ nebola nájdená" @@ -1371,71 +1423,90 @@ msgstr "dokončovanie: funkcia „%s“ nebola nájdená" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: chybný konektor `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: neplatný popisovač súboru: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: „%c“: neplatný formátovací znak" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "popisovač súboru mimo rozsahu" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: nejednoznačné presmerovanie" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: nie je možné prepísaÅ¥ existujúci súbor" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: ombedzené: nie je možné presmerovaÅ¥ výstup" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "nie je možné vytvoriÅ¥ odkladací súbor pre here-document: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: nie je možné priradiÅ¥ zoznam položke poľa" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port nie je podporovaný bez podpory sietí" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "chyba presmerovania: nie je možné duplikovaÅ¥ fd" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "nenaÅ¡iel sa /tmp, vytvorte ho prosím!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp musí byÅ¥ platný názov adresára" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: neplatná voľba" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Nemám meno!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, verzia %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1444,387 +1515,407 @@ msgstr "" "Použitie:\t%s [GNU dlhá voľba] [voľba] ...\n" "\t%s [GNU dlhá voľba] [voľba] súbor-skriptu ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU dlhé voľby:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Voľby shellu:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD alebo -c príkaz alebo -O krátka_voľba\t\t(iba vyvolanie)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s alebo -o voľba\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Napísaním „%s -c \"help set\"“ získate viac informácií o voľbách shellu.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Napísaním „%s -c help“ získate viac informácií o vstavaných príkazoch " "(builtins) shellu.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Na ohlasovanie chýb použite príkaz „bashbug“.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: neplatná operácia" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Neplatný signál" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Zavesenie" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "PreruÅ¡enie" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Ukončenie" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Neplatná inÅ¡trukcia" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "BPT trace/trap" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "inÅ¡trukcia ABORT" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "inÅ¡trukcia EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Výnimka pri operácii s plávajúcou desatinnou čiarkou" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Zabitý" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "chyba zbernice" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Chyba segmentácie" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Chybné systémové volanie" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "PreruÅ¡ená rúra" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Budík" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Ukončené" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Naliehavý stav V/V" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Zastavené (signál)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "PokračovaÅ¥" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Zastavenie alebo zabitie detského procesu" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Zastavené (vstup z tty)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Zastavené (výstup na tty)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "V/V pripravený" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "obmedzenie CPU" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "obmedzenie súborov" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Budík (virtuálny)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Budík (profil)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Okno sa zmenilo" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Zámok záznamu" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Používateľský signál 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Používateľský signál 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "čaká sa na vstupné údaje HFT" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "nastane výpadok napájania" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "nastane havária systému" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "presunúť proces na iný CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "chyba programovania" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "udelený režim monitoru HFT" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "stiahnutý režim monitoru HFT" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "dokončila sa zvuková sekvencia HFT" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "ŽiadosÅ¥ o informácie" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Neznáme číslo signálu" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Neznámy signál #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "chybná substitúcia: chýba „%s“ v %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: nie je možné priradiÅ¥ zoznam položke poľa" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "nie je možné vytvoriÅ¥ rúru pre substitúciu procesov" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "nie je možné vytvoriÅ¥ potomka pre substitúciu procesov" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "nie je možné otvoriÅ¥ pomenovanú rúru %s na čítanie" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "nie je možné otvoriÅ¥ pomenovanú rúru %s na zápis" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "nie je možné duplikovaÅ¥ pomenovanú rúru %s ako fd %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "nie je možné vytvoriÅ¥ rúru pre substitúciu príkazov" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "nie je možné vytvoriÅ¥ potomka pre substitúciu príkazov" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: nie je možné duplikovaÅ¥ rúru ako fd 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter je null alebo nenastavený" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: výraz podreÅ¥azca < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: chybná substitúcia" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: nie je možné vykonaÅ¥ priradenie takýmto spôsobom" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "chybná substitúcia: : v reÅ¥azci %s chýba uzatvárajúci „`”" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "bez zhody: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "očakával sa argument" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: očakával sa celočíselný výraz" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "očakávala sa „)“" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "očakávala sa „)“, bolo nájdené %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: očakával sa unárny operátor" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: očakával sa binárny operátor" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "chýba „]“" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "neplatné číslo signálu" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" "run_pending_traps: obsluha signálu je SIG_DFL, znovu posielam %d (%s) sebe" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: chybný signál %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "chyba pri importe definície funkcie „%s“" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "úroveň shellu (%d) je príliÅ¡ vysoká, nastavujem späť na 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: v aktuálnom rozsahu sa nenachádza kontext funkcie" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: v aktuálnom rozsahu sa nenachádza kontext funkcie" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parameter je null alebo nenastavený" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "neplatný znak %d v exportstr %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "žiadne „=“ v exportstr %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: hlavička shell_variables nie je kontext funkcie" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: chýba kontext global_variables" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "pop_scope: hlavička shell_variables nie je dočasný rozsah prostredia" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: nie je možné otvoriÅ¥: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: neplatný popisovač súboru: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Copyright (C) 2008 Free Software Foundation, Inc." +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" @@ -1834,65 +1925,58 @@ msgstr "" "Licencia GPLv3+: GNU GPL verzie 3 alebo novÅ¡ia http://gnu.org/licenses/gpl." "html\n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, verzia %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "Toto je slobodný softvér; môžete ho slobodne meniÅ¥ a šíriÅ¥.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" "Nie sú poskytované ŽIADNE ZÁRUKY v rozsahu aký povoľuje\n" "aplikovateľné právo.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: nie je možné alokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: nie je možné alokovaÅ¥ %lu bajtov" +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" +"Licencia GPLv3+: GNU GPL verzie 3 alebo novÅ¡ia http://gnu.org/licenses/gpl." +"html\n" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: nie je možné realokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nie je možné alokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: nie je možné alokovaÅ¥ %lu bajtov" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: nie je možné alokovaÅ¥ %lu bajtov" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" "xmalloc: %s:%d: nie je možné alokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: nie je možné alokovaÅ¥ %lu bajtov" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc: %s:%d: nie je možné realokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: nie je možné alokovaÅ¥ %lu bajtov" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [názov[=hodnota] ... ]" @@ -2012,7 +2096,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p cesta] [-dt] [názov ...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "help [-ds] [vzor ...]" #: builtins.c:121 @@ -2044,9 +2129,10 @@ msgid "let arg [arg ...]" msgstr "let arg [arg ...]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a pole] [-d oddeľovač] [-i text] [-n nznakov] [-p výzva] [-t " "zdržadnie] [-u fd] [názov ...]" @@ -2161,7 +2247,7 @@ msgstr "until PRÍKAZY; do PRÍKAZY; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [NÁZOV] príkaz [presmerovania]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2209,10 +2295,11 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v var] formát [argumenty]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" "complete [-abcdefgjksuv] [-pr] [-o voľba] [-A operácia] [-G glob_vzor] [-W " "zoznam_slov] [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S " @@ -2228,7 +2315,8 @@ msgstr "" "prípona] [slovo]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "compopt [-o|+o voľba] [názov ...]" #: builtins.c:240 @@ -2240,13 +2328,12 @@ msgstr "" "[-c kvantum] [pole]" #: builtins.c:242 -#, fuzzy msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" -"mapfile [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] " -"[-c kvantum] [pole]" +"readarray [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C " +"spätné_volanie] [-c kvantum] [pole]" #: builtins.c:254 msgid "" @@ -3493,7 +3580,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3514,9 +3605,9 @@ msgid "" msgstr "" "NačítaÅ¥ riadok zo Å¡tandardného vstupu a rozdeliÅ¥ ho do polí.\n" " \n" -" Zo Å¡tandardného vstupu sa načíta jeden riadok. Riadok sa rozdelí do\n" -" polí ako pri delení na slová a prvé slovo sa priradí prvému NÁZVU, " -"druhé\n" +" Zo Å¡tandardného vstupu (alebo z popisovača FD ak je uvedená voľba -u)\n" +" sa načíta jeden riadok. Riadok sa rozdelí do polí ako pri delení \n" +" na slová a prvé slovo sa priradí prvému NÁZVU, druhé\n" " slovo druhému NÁZVU atď. až zvyÅ¡né slová sa priradia poslednému\n" " NÁZVU. Iba znaky, ktoré sa nachádzajú v $IFS sa považujú za\n" " oddeľovače slov.\n" @@ -3530,6 +3621,7 @@ msgstr "" " -d\tpokračovanie čítania až kým sa nevyskytne prvý znak znak DELIM\n" " namiesto znaku nového riadka.\n" " -e a shell je interaktívny, na načítanie riadka sa použije readline.\n" +" -i text\tpoužije TEXT ako prvotný text pre Readline\n" " -n znakov\tčítanie vstupu skončí po načítaní ZNAKOV znakov.\n" " -p\tvýzva\tpred pokusom o čítanie vypíše reÅ¥azec VÝZVA bez koncového\n" " \tznaku nového riadka.\n" @@ -3547,7 +3639,7 @@ msgstr "" " Vráti 0 ak sa nenarazí pri čítaní nakoniec súboru, nevyprší čas na\n" " čítanie a ako argument -u nebol je zadaný neplatný popisovač." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3568,7 +3660,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti N alebo zlyhá ak shell nevykonáva funkciu či skript." -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3734,7 +3826,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak nebola zadaná neplatná voľba." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3771,7 +3863,7 @@ msgstr "" " Vráti 0 ak sa nestalo, že je NÁZOV iba na čítanie a nebola zadaná\n" " neplatná voľba." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3806,7 +3898,7 @@ msgstr "" " Vráti 0 ak sa nestalo, že je NÁZOV neplatný a nebola zadaná\n" " neplatná voľba." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3844,7 +3936,7 @@ msgstr "" " Vráti 0 ak sa nestalo, že je NÁZOV neplatný a nebola zadaná\n" " neplatná voľba." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3862,7 +3954,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak sa nestalo, že je N záporné alebo väčšie ako $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3886,7 +3978,7 @@ msgstr "" " Vráti návratovú hodnotu posledného príkazu v SÚBORe; zlyhá ak nie je\n" " možné SÚBOR načítaÅ¥." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3910,7 +4002,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak sa nestalo, že je vypnuté riadenie úloh a nevyskytla sa chyba." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4062,7 +4154,7 @@ msgstr "" " Vráti 0 ak VÝR vyhodnotí ako pravdivý; zlyhá ako sa VÝR vyhodnotí\n" " ako nepravdivý alebo je zadaný neplatný argument." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4074,7 +4166,7 @@ msgstr "" " Toto je synonymum vsatavanej funkcie „test“, ale posledný\n" " argument musí byÅ¥ literál „]“, ktorý uzatvára otvárajúcu „[“." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4093,7 +4185,7 @@ msgstr "" " Návratová hodnota:\n" " Vždy vráti 0." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4159,7 +4251,7 @@ msgstr "" " Vráti 0 ak sa nestalo, že je SIGSPEC neplatný a nebola zadaná\n" " neplatná voľba." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4214,7 +4306,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak boli nájdené vÅ¡etky NÁZVY; zlyhá ak nie." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4298,7 +4390,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4332,7 +4424,7 @@ msgstr "" " Vráti 0 ak sa nestalo, že je REŽIM neplatný a nebola zadaná\n" " neplatná voľba." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4360,7 +4452,7 @@ msgstr "" " Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná\n" " neplatná voľba." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4384,7 +4476,7 @@ msgstr "" " Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná neplatná\n" " voľba." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4406,7 +4498,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4436,7 +4528,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4471,7 +4563,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4499,7 +4591,7 @@ msgstr "" " Návratová hodnota:\n" " Návratová hodnota je návratová hodnota RÚRY." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4517,7 +4609,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4554,7 +4646,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4572,7 +4664,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4590,7 +4682,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4602,8 +4694,17 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"VytvoriÅ¥ koproces s názvom NÁZOV.\n" +" \n" +" Vykoná PRÍKAZ asynchrónne, pričom Å¡tandardný výstup a vstup príkazu\n" +" spojí rúrou s popsiovačmi súborov priradeným indexom poľa 0 a 1\n" +" premennej poľa NÁZOV v spúštajúcom shelli.\n" +" Å tandardný NÁZOV je „COPROC“.\n" +" \n" +" Návratová hodnota:\n" +" Vráti návratovú hodnotu PRÍKAZu." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4628,7 +4729,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak sa nestalo, že je NÁZOV iba na čítanie." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4646,7 +4747,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu posledného vykonaného príkazu." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4670,7 +4771,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti návratovú hodnotu obnovenej úlohy." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4688,7 +4789,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 1 ak sa VÝRAZ vyhodnotí na 0; inak vráti 0." -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4736,7 +4837,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 alebo 1 v závislosti na hodnote VÝRAZu." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4840,7 +4941,7 @@ msgstr "" " HISTIGNORE\tBodkočiarkami oddelený zoznam vzoriek, ktoré\n" " \t\tsa používajú na rozhodovanie, či sa príkaz uloží do histórie.\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4896,7 +4997,7 @@ msgstr "" " Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n" " chyba pri zmene adresára." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -4946,7 +5047,7 @@ msgstr "" " Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n" " chyba pri zmene adresára." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -4997,7 +5098,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa chyba." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5035,7 +5136,7 @@ msgstr "" " Vráti 0 ak je OPTNAME zapnuté; zlyhá ak bola zadaná\n" " neplatná voľba alebo OPTNAME je vypnuté." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5084,7 +5185,8 @@ msgstr "" " Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba pri\n" " zápise či priradení." -#: builtins.c:1892 +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5098,9 +5200,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5123,7 +5230,7 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5143,7 +5250,8 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba." -#: builtins.c:1930 +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -5156,6 +5264,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5195,16 +5305,16 @@ msgstr "" " Vráti 0 ak nebola zadaná neplatná voľba a NÁZOV nemá definovanú\n" " Å¡pecifikáciu dopĺňania." -#: builtins.c:1958 +#: builtins.c:1968 #, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5231,13 +5341,15 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" "NačítaÅ¥ riadky zo súboru do premennej poľa.\n" " \n" " Načíta riadky zo Å¡tandardného vstupu do premennej poľa POLE alebo z\n" -" popisovača súboru FD ak je zadaná voľba -u. Å tandardné pole je premenná\n" -" MAPFILE\n" +" popisovača súboru FD ak je zadaná voľba -u. Å tandardné POLE je premenná\n" +" MAPFILE.\n" " \n" " Voľby:\n" " -n počet\tSkopírovaÅ¥ najviac POČET riadkov. Ak je POČER 0, vÅ¡etky " @@ -5246,7 +5358,7 @@ msgstr "" " \t\tPredvolený index je 0.\n" " -s počet\tIgnorovaÅ¥ prvých prečítaných POČET riadkov.\n" " -t\t\tOdstrániÅ¥ znak nového riadka z konca každého načítaného riadka.\n" -" -u fd\t\tNačítaÅ¥ riadky z popisovača FD namiest Å¡tandardného vstupu.\n" +" -u fd\t\tNačítaÅ¥ riadky z popisovača FD namiesto Å¡tandardného vstupu.\n" " -C callback\tVyhodnotiÅ¥ CALLBACK po prečítaní každých QUANTUM " "riadkov.\n" " -c quantum\tUrčuje počet riadkov, ktoré sa majú prečítaÅ¥ pred každým\n" @@ -5256,6 +5368,8 @@ msgstr "" " ARRAY\t\tNázov premennej poľa, kam sa majú uložiÅ¥ údaje.\n" " \n" " Ak uvediete -C bez -c, predvolená hodnota quantum je 5000.\n" +" Pri vyhodnotení CALLBACK sa dodá index ďalÅ¡ieho pevku poľa,\n" +" ktorý sa má priradiÅ¥ ako ďalší argument.\n" " \n" " Ak nie je zadaný ZAČIATOK explicitne, mapfile POLE vyčistí predtým,\n" " než ho začne plniÅ¥.\n" @@ -5263,12 +5377,27 @@ msgstr "" " Návratová hodnota:\n" " Vráti 0 ak nebola zadaná neplatná voľba a POLE nie je len na čítanie." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"NačítaÅ¥ riadky zo súboru do premennej poľa.\n" +" \n" +" Synonymum k „mapfile“." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: nie je možné realokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: nie je možné alokovaÅ¥ %lu bajtov" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s:%d: nie je možné realokovaÅ¥ %lu bajtov (%lu bajtov " +#~ "alokovaných)" #~ msgid " " #~ msgstr " " diff --git a/po/sv.gmo b/po/sv.gmo index 2c003b86afcd44bd6dcd3bbb1f4572b36359d464..b5bfceffb1a67e2ab08d9895695afac3fb5a4819 100644 GIT binary patch delta 12627 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 Jc5!bt{{s|(09yb6 delta 15555 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 IbFVS~2au!Zo&W#< diff --git a/po/sv.po b/po/sv.po index 87f40e1..f23f250 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,16 +1,16 @@ # Swedish translation of bash -# Copyright © 2008 Free Software Foundation, Inc. +# Copyright © 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. -# Göran Uddeborg , 2008. +# Göran Uddeborg , 2008, 2009. # -# $Revision: 1.3 $ +# $Revision: 1.6 $ # msgid "" msgstr "" -"Project-Id-Version: bash 4.0-pre1\n" +"Project-Id-Version: bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2008-09-15 13:09+0200\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-03-25 19:35+0100\n" "Last-Translator: Göran Uddeborg \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" @@ -22,55 +22,60 @@ msgstr "" msgid "bad array subscript" msgstr "felaktigt vektorindex" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: det gÃ¥r inte att konvertera en indexerad vektor till associativ" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: ogiltig nyckel till associativ vektor" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: det gÃ¥r inte att tilldela till ickenumeriska index" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "%s: %s: mÃ¥ste använda index vid tilldelning av associativ vektor" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: det gÃ¥r inte att skapa: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" "bash_execute_unix_command: det gÃ¥r inte att hitta en tangentbindning för " "kommandot" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: första ickeblanka tecknet är inte '\"'" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "ingen avslutande \"%c\" i %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: kolonseparator saknas" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "\"%s\": ogiltigt tangentbindningsnamn" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "radredigering är inte aktiverat" #: builtins/bind.def:206 #, c-format @@ -116,6 +121,24 @@ msgid "" " \n" " Without EXPR, returns " msgstr "" +"Returnera kontexten för det aktuella subrutinanropet.\n" +" \n" +" Utan UTTR, returnerar " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -130,7 +153,7 @@ msgstr "OLDPWD är inte satt" msgid "line %d: " msgstr "rad %d: " -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "varning: " @@ -140,11 +163,11 @@ msgstr "varning: " msgid "%s: usage: " msgstr "%s: användning: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "för mÃ¥nga argument" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: flaggan kräver ett argument" @@ -159,7 +182,7 @@ msgstr "%s: numeriskt argument krävs" msgid "%s: not found" msgstr "%s: finns inte" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: ogiltig flagga" @@ -182,7 +205,7 @@ msgstr "ogiltigt oktalt tal" msgid "invalid hex number" msgstr "ogiltigt hexadecimalt tal" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "ogiltigt tal" @@ -196,7 +219,7 @@ msgstr "%s: ogiltig signalspecifikation" msgid "`%s': not a pid or valid job spec" msgstr "\"%s\": inte en pid eller giltig jobbspecifikation" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: endast läsbar variabel" @@ -251,12 +274,12 @@ msgstr "skrivfel: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "fel när terminalattribut ställdes in: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "fel när terminalattribut hämtades: %s" #: builtins/common.c:563 #, c-format @@ -268,26 +291,26 @@ msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: tvetydig jobbspecifikation" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: ogiltigt Ã¥tgärdsnamn" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: ingen kompletteringsspecifikation" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "varning: flaggan -F fungerar kanske inte som du väntar dig" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "varning: flaggan -C fungerar kanske inte som du väntar dig" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "kör inte en kompletteringsfunktion" @@ -295,21 +318,21 @@ msgstr "kör inte en kompletteringsfunktion" msgid "can only be used in a function" msgstr "kan endast användas i en funktion" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "det gÃ¥r inte att använda \"-f\" för att göra funktioner" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: endast läsbar funktion" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: det gÃ¥r inte att förstöra vektorvariabler pÃ¥ detta sätt" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: det gÃ¥r inte att konvertera en associativ vektor till indexerad" @@ -338,8 +361,8 @@ msgstr "%s: inte dynamiskt laddad" msgid "%s: cannot delete: %s" msgstr "%s: kan inte ta bort: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: är en katalog" @@ -354,10 +377,11 @@ msgstr "%s: inte en normal fil" msgid "%s: file is too large" msgstr "%s: filen är för stor" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" -msgstr "%s: det kÃ¥r inte att köra binär fil" +msgstr "%s: det gÃ¥r inte att köra binär fil" #: builtins/exec.def:212 #, c-format @@ -383,15 +407,15 @@ msgstr "Det finns stoppade jobb.\n" msgid "There are running jobs.\n" msgstr "Det finns körande jobb.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "hittar inget kommando" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "historiespecifikation" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: det gÃ¥r inte att öppna temporärfil: %s" @@ -491,12 +515,12 @@ msgstr "%s: inlib misslyckades" msgid "no other options allowed with `-x'" msgstr "inga andra flaggor är tillÃ¥tna med \"-x\"" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argument mÃ¥ste vara processer eller job-id:n" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Okänt fel" @@ -504,55 +528,60 @@ msgstr "Okänt fel" msgid "expression expected" msgstr "uttryck förväntades" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: inte en vektorvariabel" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: ogiltig filidentifierarspecifikation" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: ogiltig filbeskrivare: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: ogiltigt radantal" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: ogiltig vektorstart" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: ogiltigt Ã¥teranropskvanta" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "tomt vektorvariabelnamn" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "stöd för vektorvariabler krävs" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "\"%s\": formateringstecken saknas" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "\"%c\": ogiltigt formateringstecken" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "varning: %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "hexadecimal siffra saknas för \\x" @@ -698,12 +727,12 @@ msgstr "" " \n" " Den inbyggda \"dirs\" visar katalogstacken." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: ogiltig tidsgränsspecifikation" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "läsfel: %d: %s" @@ -741,11 +770,11 @@ msgstr "%s: inte en funktion" msgid "shift count" msgstr "skiftantal" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "det gÃ¥r inte att sätta och ta bort skalflaggor samtidigt" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: ogiltigt skalflaggsnamn" @@ -835,76 +864,76 @@ msgstr "\"%c\": ogiltig operator för symboliskt läge" msgid "`%c': invalid symbolic mode character" msgstr "\"%c\": ogiltigt tecken för symboliskt läge" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr " rad " -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "senaste kommando: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Avbryter..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "okänt kommandofel" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "felaktig kommandotyp" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "felaktig anslutning" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "felaktigt hopp" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: obunden variabel" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\atiden gick ut i väntan pÃ¥ indata: automatisk utloggning\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "tiden gick ut i väntan pÃ¥ indata: automatisk utloggning\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "det gÃ¥r inte att omdiregera standard in frÃ¥n /dev/null: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "rörfel" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: begränsat: det gÃ¥r inte att ange \"/\" i kommandonamn" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: kommandot finns inte" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: felaktig tolk" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "det gÃ¥r inte att duplicera fb %d till fb %d" @@ -949,28 +978,28 @@ msgstr "en identifierare förväntades efter pre-ökning eller pre-minskning" msgid "missing `)'" msgstr "\")\" saknas" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "syntaxfel: en operand förväntades" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "syntaxfel: ogiltig aritmetisk operator" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (felsymbol är \"%s\")" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "ogiltig aritmetisk bas" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "värdet är för stort för basen" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: uttrycksfel\n" @@ -979,7 +1008,7 @@ msgstr "%s: uttrycksfel\n" msgid "getcwd: cannot access parent directories" msgstr "getcwd: det gÃ¥r inte att komma Ã¥t föräldrakatalogen" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "det gÃ¥r inte att Ã¥terställa fördröjningsfritt läge för fb %d" @@ -1033,7 +1062,7 @@ msgstr "Signal %d" msgid "Done" msgstr "Klart" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Stoppat" @@ -1070,69 +1099,73 @@ msgstr "(minnesutskrift skapad) " msgid " (wd: %s)" msgstr " (ak: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "barns setpgid (%ld till %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld är inte ett barn till detta skal" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Ingen uppgift om process %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: jobb %d är stoppat" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: jobbet har avslutat" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: jobb %d är redan i bakgrunden" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: rad %d: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (minnesutskrift skapad)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(ak nu: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: getpgrp misslyckades" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: linjedisciplin" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "det gÃ¥r inte att sätta terminalprocessgrupp (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "ingen jobbstyrning i detta skal" @@ -1224,6 +1257,26 @@ msgstr "%s: felaktig specifikation av nätverkssökväg" msgid "network operations not supported" msgstr "nätverksoperationer stöds inte" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s: %d: kan inte allokera %lu byte" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s: %d: kan inte allokera %lu byte" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Du har post i $_" @@ -1237,132 +1290,132 @@ msgstr "Du har ny post i $_" msgid "The mail in %s has been read\n" msgstr "Posten i %s har lästs\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "syntaxfel: aritmetiskt uttryck krävs" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "syntaxfel: oväntat \";\"" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "syntaxfel: \"((%s))\"" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: felaktig instruktionstyp %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "här-dokument pÃ¥ rad %d avgränsas av filslut (ville ha \"%s\")" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" "make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "oväntat filslut vid sökning efter matchande \"%c\"" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "oväntat filslut vid sökning efter \"]]\"" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntaxfel i villkorligt uttryck: oväntad symbol \"%s\"" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "syntaxfel i villkorligt uttryck" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "oväntad symbol \"%s\", \")\" förväntades" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "\")\" förväntades" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "oväntat argument \"%s\" till villkorlig unär operator" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "oväntat argument till villkorlig unär operator" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "oväntad symbol \"%s\", villkorlig binär operator förväntades" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "villkorlig binär operato förväntades" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "oväntat argument \"%s\" till villkorlig binär operator" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "oväntat argument till villkorlig binär operator" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "oväntad symbol \"%c\" i villkorligt kommando" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "oväntad symbol \"%s\" i villkorligt kommando" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "oväntad symbol %d i villkorligt kommando" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntaxfel när den oväntade symbolen \"%s\"" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "syntaxfel nära \"%s\"" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "syntaxfel: oväntat filslut" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "syntaxfel" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Använd \"%s\" fär att lämna skalet.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "oväntat filslut när matchande \")\" söktes" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "komplettering: funktion \"%s\" finns inte" @@ -1372,71 +1425,90 @@ msgstr "komplettering: funktion \"%s\" finns inte" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: felaktig anslutning \"%d\"" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: ogiltig filbeskrivare: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: \"%c\": ogiltigt formateringstecken" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "filbeskrivare utanför giltigt intervall" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: tvetydig omdirigering" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: begränsad: det gÃ¥r inte att skriva över en existerande fil" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: begränsad: det gÃ¥r inte att omdirigera utdata" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "det gÃ¥r inte att skapa temporärfil för här-dokument: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: det gÃ¥r inte att tilldela listor till vektormedlemmar" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverksfunktion" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "omdirigeringsfel: det gÃ¥r inte att duplicera fb" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "hittade inte /tmp, var god skapa!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp mÃ¥ste vara ett giltigt katalognamn" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: ogiltig flagga" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Jag har inget namn!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, version %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1445,331 +1517,337 @@ msgstr "" "Användning:\t%s [GNU lÃ¥ng flagga] [flagga] ...\n" "\t\t%s [GNU lÃ¥ng flagga] [flagga] skriptfil ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU lÃ¥nga flaggor:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Skalflaggor:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD eller -c kommando eller -O shopt_flagga\t\t(bara uppstart)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s eller -o flagga\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "Skriv \"%s -c 'help set'\" för mer information om skalflaggor.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "Skriv \"%s -c help\" för mer information om inbyggda skalkommandon.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" "Använd kommandot \"bashbug\" för att rapportera fel.\n" "Skicka synpunkter pÃ¥ översättningen till .\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: ogiltig operation" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Felatkig signal" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Avringd" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Avbruten" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Lämnad" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "OtillÃ¥ten instruktion" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "Brytpunkt/spÃ¥rningsfälla" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "ABORT-instruktion" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "Emulatorfälla" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Flyttalsfel" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Dödad" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "Bussfel" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Segmenteringsfel" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Felaktigt systemanrop" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Brutet rör" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Alarmklocka" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Avslutat" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Viktigt I/O-tillstÃ¥nd" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Stoppad (signal)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Återupptagen" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Barn dött eller stoppat" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Stoppad (terminalläsning)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Stoppad (terminalskrivning)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "I/O möjligt" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "CPU-gräns" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Filgräns" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Alarm (virtuell tid)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Alarm (profilering)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Ändrat fönster" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "PostlÃ¥s" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Användarsignal 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Användarsignal 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "HFT-indata väntar" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "strömavbrott omedelbart förestÃ¥ende" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "systemkrash omedelbart förestÃ¥ende" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "migrera process till en annan CPU" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "programmeringsfel" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "HFT-övervakningsläge givet" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "HFT-överakare borttagen" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "HFT-ljudsekevens har avslutat" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "Informationsbegäran" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Okänd signal nr " -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Okänd signal nr %d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "felaktig substitution: ingen avslutande \"%s\" i %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: det gÃ¥r inte att tilldela listor till vektormedlemmar" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "det gÃ¥r inte att skapa rör för processubstitution" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "det gÃ¥r inte att skapa barn för processubstitution" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "det gÃ¥r inte att öppna namngivet rör %s för läsning" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "det gÃ¥r inte att öppna namngivet rör %s för skrivning" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "det gÃ¥r inte att duplicera namngivet rör %s som fb %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "det gÃ¥r inte att skapa rör för kommandosubstitution" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "det gÃ¥r inte att skapa barn för kommandosubstitution" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: det gÃ¥r inte att duplicera rör som fb 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parametern tom eller inte satt" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: delstränguttryck < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: felaktig substitution" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: det gÃ¥r inte att tilldela pÃ¥ detta sätt" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "felaktig ersättning: ingen avslutande \"`\" i %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "ingen match: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "argument förväntades" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: heltalsuttryck förväntades" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "\")\" förväntades" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "\")\" förväntades, fann %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: unär operator förväntades" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: binär operator förväntades" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "\"]\" saknas" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "ogiltigt signalnummer" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: felaktigt värde i trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1777,57 +1855,71 @@ msgstr "" "run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig " "själv" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: felaktig signal %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "fel vid import av funktionsdefinition för \"%s\"" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "skalnivÃ¥ (%d) för hög, Ã¥terställer till 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: ingen funktionskontext i aktuellt sammanhang" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: ingen funktionskontext i aktuellt sammanhang" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parametern tom eller inte satt" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "ogiltigt tecken %d i exportstr för %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "inget \"=\" i exportstr för %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" "pop_var_context: huvudet pÃ¥ shell_variables är inte en funktionskontext" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: ingen kontext global_variables" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope: huvudet pÃ¥ shell_variables är inte en temporär omgivningsräckvidd" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: det gÃ¥r inte att öppna: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: ogiltig filbeskrivare: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Copyright © 2008 Free Software Foundation, Inc." +msgstr "Copyright © 2009 Free Software Foundation, Inc." #: version.c:47 msgid "" @@ -1837,62 +1929,56 @@ msgstr "" "Licens GPLv3+: GNU GPL version 3 eller senare \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "GNU bash, version %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" "Detta är fri programvara, det fÃ¥r fritt ändra och vidaredistribuera den.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "Det finns INGEN GARANTI, sÃ¥ lÃ¥ngt lagen tillÃ¥ter.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: kan inte allokera %lu byte (%lu byte allokerade)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright © 2009 Free Software Foundation, Inc." -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: kan inte allokera %lu byte" +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" +"Licens GPLv3+: GNU GPL version 3 eller senare \n" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: kan inte reallokera %lu byte (%lu byte allokerade)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: kan inte allokera %lu byte (%lu byte allokerade)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: kan inte allokera %lu byte" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: kan inte allokera %lu byte" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s: %d: kan inte allokera %lu byte (%lu byte allokerade)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s: %d: kan inte allokera %lu byte" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s: %d: kan inte areallokera %lu byte (%lu byte allokerade)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s: %d: kan inte allokera %lu byte" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [namn[=värde] ... ]" @@ -2012,7 +2098,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p sökväg] [-dt] [namn ...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "help [-ds] [mönster ...]" #: builtins.c:121 @@ -2044,9 +2131,10 @@ msgid "let arg [arg ...]" msgstr "let arg [arg ...]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-p prompt] [-t " "tidgräns] [-u fb] [namn ...]" @@ -2161,7 +2249,7 @@ msgstr "until KOMMANDON; do KOMMANDON; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [NAMN] kommando [omdirigeringar]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2208,10 +2296,11 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v var] format [argument]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" "complete [-abcdefgjksuv] [-pr] [-o flagga] [-A Ã¥tgärd] [-G globmnst] [-W " "ordlista] [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S " @@ -2227,7 +2316,8 @@ msgstr "" "suffix] [ord]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "compopt [-o|+o flagga] [namn ...]" #: builtins.c:240 @@ -2239,12 +2329,11 @@ msgstr "" "kvanta] [vektor]" #: builtins.c:242 -#, fuzzy msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" -"mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C Ã¥teranrop] [-c " +"readarray [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C Ã¥teranrop] [-c " "kvanta] [vektor]" #: builtins.c:254 @@ -3519,7 +3608,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3568,14 +3661,16 @@ msgstr "" " -t tidgräns\tsluta vänta och returnera misslyckande om inte en\n" " \t\tkomplett rad lästs inom TIDSGRÄNS sekunder. Värdet pÃ¥ variabeln\n" " \t\tTMOUT är standardvärdet pÃ¥ tidsgränsen. TIDSGRÄNS kan vara ett\n" -" \t\tbrÃ¥ktal. Slutstatus är större än 128 om tidsgränsen överskrids\n" +" \t\tbrÃ¥ktal. Om TIDSGRÄNS är 0 returnerar read lyckad status bara\n" +"\t\tom det finns indata tillgängligt pÃ¥ den angivna filbeskrivaren.\n" +" Slutstatus är större än 128 om tidsgränsen överskrids\n" " -u fb\t\tläs frÃ¥n filbeskrivare FB istället för standard in\n" " \n" " Slutstatus:\n" " Returkoden är noll om inte filslut nÃ¥s, läsningens tidsgräns överskrids\n" " eller en ogiltig filbeskrivare ges som argument till -u." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3596,7 +3691,7 @@ msgstr "" " Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n" " skript." -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3762,7 +3857,7 @@ msgstr "" " Slutstatus:\n" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3798,7 +3893,7 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN endast är\n" " läsbart." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3831,7 +3926,7 @@ msgstr "" " Slutstatus:\n" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN är ogiltigt." -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3867,7 +3962,7 @@ msgstr "" " Slutstatus:\n" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN är ogiltigt." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3886,7 +3981,7 @@ msgstr "" " Slutstatus:\n" " Returnerar framgÃ¥ng om inte N är negativt eller större än $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3910,7 +4005,7 @@ msgstr "" " Returnerar status pÃ¥ det sista kommandot som körs i FILNAMN, misslyckas\n" " om FILNAMN inte kan läsas." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3936,7 +4031,7 @@ msgstr "" "fel\n" " inträffar." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4084,7 +4179,7 @@ msgstr "" " Returnerar framgÃ¥ng om UTTR beräknas till sant. Misslyckas ifall UTTR\n" " beräknas till falskt eller ett ogiltigt argument ges." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4097,7 +4192,7 @@ msgstr "" "argumentet\n" " mÃ¥ste vara en bokstavlig \"]\", för att matcha den inledande \"[\"." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4117,7 +4212,7 @@ msgstr "" " Slutstatus:\n" " Lyckas alltid." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4183,7 +4278,7 @@ msgstr "" "flagga\n" " ges." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4240,7 +4335,7 @@ msgstr "" " Slutstatus:\n" " Returnerar framgÃ¥ng om alla NAMNen finns, misslyckas om nÃ¥got inte finns." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4328,7 +4423,7 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga anges eller ett fel " "inträffar." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4364,7 +4459,7 @@ msgstr "" "flagga\n" " ges." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4393,7 +4488,7 @@ msgstr "" "ogiltig\n" " flagga ges." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4419,7 +4514,7 @@ msgstr "" "ogiltig\n" " flagga ges." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4442,7 +4537,7 @@ msgstr "" " Slutstatus:\n" " Returnerar status för det sist exekverade kommandot." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4472,7 +4567,7 @@ msgstr "" " Slutstatus:\n" " Returnerar statusen frÃ¥n det sist exekverade kommandot." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4507,7 +4602,7 @@ msgstr "" " Sluttatus:\n" " Returnerar statusen frÃ¥n det sist exekverade kommandot." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4536,7 +4631,7 @@ msgstr "" " Slutstatus:\n" " Returstatusen är returstatusen frÃ¥n RÖR." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4554,7 +4649,7 @@ msgstr "" " Slutstatus:\n" " Returnerar statusen frÃ¥n det sist exekverade kommandot." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4590,7 +4685,7 @@ msgstr "" " Slutstatus:\n" " Returnerar status frÃ¥n det sist exekverade kommandot." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4608,7 +4703,7 @@ msgstr "" " Slutstatus:\n" " Returnerar statusen frÃ¥n det sist exekverade kommandot." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4626,7 +4721,7 @@ msgstr "" " Slutstatus:\n" " Returnerar statusen frÃ¥n det sist exekverade kommandot." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4638,8 +4733,17 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Skapa en koprocess med namnet NAMN.\n" +" \n" +" Kör KOMMANDO asynkront, med standard ut och standard in för kommandot\n" +" ansluta via ett rör till fildeskriptorer tilldelade indexen 0 och 1 i\n" +" en vektorvariabel NAMN i skalet som kör. Standardvärde pÃ¥ NAMN är\n" +" \"COPROC\".\n" +" \n" +" Slutstatus:\n" +" Returnerar statusen frÃ¥n KOMMANDO." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4662,7 +4766,7 @@ msgstr "" " Slutstatus:\n" " Returnerar framgÃ¥ng om inte NAMN endast är läsbart." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4680,7 +4784,7 @@ msgstr "" " Slutstatus:\n" " Returnerar stutusen frÃ¥n det sist exekverade kommandot." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4704,7 +4808,7 @@ msgstr "" " Slutstatus:\n" " Returnerar statusen pÃ¥ det Ã¥terupptagna jobbet." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4722,7 +4826,7 @@ msgstr "" " Slutstatus:\n" " Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars." -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4775,7 +4879,7 @@ msgstr "" " Slutstatus:\n" " 0 eller 1 beroende pÃ¥ värdet av UTTRYCK." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4880,7 +4984,7 @@ msgstr "" " HISTIGNORE\tEn kolonseparerad lista av mönster som används för att\n" " \t\tbestämma vilka kommandon som skall sparas i historielistan.\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4938,7 +5042,7 @@ msgstr "" " Returnerar framgÃ¥ng om inte ett ogiltigt argument ges eller bytet av\n" " katalog misslyckas." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -4988,7 +5092,7 @@ msgstr "" " Returnerar framgÃ¥ng om inte ett ogiltigt argument ges eller bytet av\n" " katalog misslyckas." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -5041,7 +5145,7 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " "inträffar." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5077,7 +5181,7 @@ msgstr "" " Returnerar framgÃ¥ng om FLGNAMN är aktiverat, misslyckas om en ogiltig\n" " flagga ges eller FLGNAMN är avaktiverat." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5130,7 +5234,8 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett skriv-\n" " eller tilldelningsfel inträffar." -#: builtins.c:1892 +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5144,9 +5249,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5170,7 +5280,7 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " "inträffar." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5192,7 +5302,8 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " "inträffar." -#: builtins.c:1930 +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -5205,6 +5316,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5247,16 +5360,16 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN inte har\n" " nÃ¥gon kompletteringsspecifikaation definierad." -#: builtins.c:1958 +#: builtins.c:1968 #, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5283,9 +5396,11 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -"Läs rader fÃ¥n en fil till en vektorvariabel.\n" +"Läs rader frÃ¥n standard in till en vektorvariabel.\n" " \n" " Läs rader frÃ¥n standard in till vektorvariabeln VEKTOR, eller frÃ¥n\n" " filbeskrivaren FB om flaggan -u ges. Variabeln MAPFILE är standard\n" @@ -5306,7 +5421,8 @@ msgstr "" " Argument:\n" " VEKTOR\t\tNamn pÃ¥ vektorvariabel att använda för fildata.\n" " \n" -" Om -C ges utan -c är standardkvanta 5000.\n" +" Om -C ges utan -c är standardkvanta 5000. När ÅTERANROP evalueras fÃ¥r\n" +" den indexet pÃ¥ nästa vektorelement som ett extra argument.\n" " \n" " Om det inte ges nÃ¥gon specificerad start kommer mapfile nollställa " "VEKTOR\n" @@ -5316,9 +5432,22 @@ msgstr "" " Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller VEKTOR är\n" " oföränderlig." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Läs rader frÃ¥n en fil till en vektorvariabel.\n" +" \n" +" En synonym till \"mapfile\"." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: kan inte reallokera %lu byte (%lu byte allokerade)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: kan inte allokera %lu byte" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s: %d: kan inte areallokera %lu byte (%lu byte allokerade)" diff --git a/po/tr.gmo b/po/tr.gmo index 7984078bce160e5922b470c90b7182159feab2dc..f3b025b56074f171f5babf3aa5d7eccd9aa110a3 100644 GIT binary patch delta 5617 zcmYk=34Bdg0>|-_+7bzg$U>0!Y!M+y2oXUdiOSe%HjJ%|t<=)$hAU=BOVv_K2Q6({ zrG_$MZ8nZ6km^fUIp;(R`@H{rch7ra@V>b-LQRu;G$d6gYM*wcc z8u+oTFLiayIa_fb)j(LJG4-$s24fc1#2n_*K-6)+66ByHQhGjtt7&z@`{PuPBiX;G=ob}fRU>YU)R|ONgZZcnpGPglJbS(pb^Rt(g9lI@ zJ&EejEv$y2w5|?#`Oy73p_XE>t)E@bIKGh=Q=u8yh1IdtUU&*yb6$yc;hv^Fs)Mxu6nvNx&FuJ|=NK7qw>lP%}}AnwiVi>bwN>y;jKJ&2Xg8W{y4IfLv-yQIGpA zjHZ1PL$@>oS*SJakIiusYKq@NZMF@lsoRHYpd8ha+o)Y1&M?(LD^vsdsQVNlV>2b# z3jc+)ZGxJy1hj9GRKTvNryviLaXf1CtVMNXFY1ejP&07@b$ta|VY`^xsI^W-er0;0 zmheUFfF-CIxrQ2Ocs%nTNTD?a*%`Ig-O-C9P$Qd-YG@6rqua3?9z=B{gyCu?JQ#$j zsK+iF)v-aSP3zd-uf#T-uWP~lXHqyxMQ3cldy>wX;i$D;fV#mJ)D6p#A9J1$X5BtTab#U7}=l9#~zXH$5EGxewpbz^_NtrZ8H!Z7>DB9e#T5hH5AHD(-L&Xu2_KT_!`t^D@C<)1=WGdDfan~ zqo6hEgEepjTJ6x60GLaqG{)QwJIUA&K)u_!i#I@S?2wZl-4;d7|_ z6k{0fKwWnjtI@u>MnO~f05y_ko!l2v7t{^lIc=hbXC&a4#cAx?tmIWF6u^OQ8y|?-RMnJ{hv`I z{{mHi8ohV}Js6(ujywq~b6$|n{MVx}lnV8925Q8`)>71s@1i;q+Qoh0#G|fDMXl{< z)W}z%?z0Vb-{Y8!w^5rrA;az1APnJrQikKcVrSWk6{y|40RwRlY9t3yOLPJ?!hlS- z-h*@ecz0lLU7y9q!$2MZ-6tQ%;b_#WyBz1^ebkK3a~^klz8Y1r6TNsCWAF-UL}9#d z>tlP=$OfV|-wVjHn`PJ#zq0jrP$P`s?WXIRpq4fhY1@oNe{{A`(1>;;Z%K0m)e*nn zxFZZlJ!WyJ$EG9dx$cc@d@}>p(LJaee~;=&)9%JRfjvrr1gYBfFGHH^a)>T{6&Y8Il__y`7JKreTs5vcp6qGs$#)SI#pH6tb1 zM9=@16f`w=Pz`!mNNuWYRQ+_+R2HK~R)T8q7*@v`ecV0dMa@()>bmZzrF$Cnv@Ah& zd^2X?C2T|cre$BZXCshzky(!VVi{^_ZeuW3@8>oUjcJ@GU?fgP{eCXC!4>wr6!p}c zMs?^HREMMcyGt04j@E1tg>)>&G(2lBh+zQ(IM1;TK`-ZHP*XY=8{j(h;33rYm+)!4 zi6J;L$DM(xScCJ$sQPzvn18L&HY(!r1geKsbKO6$wUJdZdB}b-YcUaj!dPsa=XRhM zhI2j%+hGwV;U}o4<0fh;+vK}@VgPFI6y`JkD(t5s8~qC0KSteAYn6*Evsr{{_&aQY zVFTQbW}tR=KMciZP*YumYIp-i;YC|tX`s7znxZ!0aEF3=CN%@^VM{DS?STq|++81w zH97B(dR31?&DscVF-wGpyPlY!Ao0Z!1rR^uqa*YB=5@qe%oA zNA{85lO1FoIZ9R%-puAj@&)0gXDX1JM8{Jkl5{3|DgB$YCuL+W(NgO;P5Y+ASN#9S zs}%JV@VJ^H@*kp2rsJf=LJ{FQi7F0*CvrY kH|%GnS4*0l1Gm-oV;NxUa=P7W^!CpmrgQB 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\n" "Language-Team: Turkish \n" @@ -20,50 +20,55 @@ msgstr "" msgid "bad array subscript" msgstr "hatalı dizi indisi" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s: eylem adı geçersiz" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: sayısal olmayan indise atama yapılamaz" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: oluşturulamıyor: %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: komut için kısayol bulunamıyor" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: boşluk olmayan ilk karakter `\"' değil" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "%2$s içinde kapatan `%1$c' yok" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: ikinokta imi eksik" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "`%s': kısayol ismi geçersiz" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -114,6 +119,21 @@ msgid "" " Without EXPR, returns " msgstr "Geçerli altyordam çağrısının bağlamı döner." +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME atanmamış" @@ -127,7 +147,7 @@ msgstr "OLDPWD boş" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s: uyarı: " @@ -137,11 +157,11 @@ msgstr "%s: uyarı: " msgid "%s: usage: " msgstr "%s: uyarı: " -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "çok fazla argüman" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: seçenek bir argüman gerektirir" @@ -156,7 +176,7 @@ msgstr "%s: sayısal argüman gerekli" msgid "%s: not found" msgstr "%s:yok" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: seçenek geçersiz" @@ -181,7 +201,7 @@ msgstr "geçersiz sinyal numarası" msgid "invalid hex number" msgstr "geçersiz sayı" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "geçersiz sayı" @@ -195,7 +215,7 @@ msgstr "%s: sinyal belirtimi geçersiz" msgid "`%s': not a pid or valid job spec" msgstr "`%s': geçerli bir iş belirtimi veya süreç numarası değil" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: salt okunur değişken" @@ -267,26 +287,26 @@ msgstr "%s: geçerli dizin alınırken hata: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: iş belirtimi belirsiz" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: eylem adı geçersiz" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: tamamlama belirtimi yok" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "uyarı: -F seçeneği umduğunuz gibi çalışmayabilir" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "uyarı: -C seçeneği umduğunuz gibi çalışmayabilir" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -294,21 +314,21 @@ msgstr "" msgid "can only be used in a function" msgstr "sadece bir işlevde kullanılabilir" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "işlev yapmak için `-f' kullanılamaz" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: salt okunur işlev" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: dizi değişkenleri bu yolla iptal edilemez" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -337,8 +357,8 @@ msgstr "%s: özdevimli olarak yüklenmemiş" msgid "%s: cannot delete: %s" msgstr "%s: silinemiyor: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: bir dizin" @@ -353,7 +373,8 @@ msgstr "%s: bir dosya değil" msgid "%s: file is too large" msgstr "%s: dosya çok büyük" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: ikili dosya çalıştırılamıyor" @@ -382,15 +403,15 @@ msgstr "Durmuş işler var.\n" msgid "There are running jobs.\n" msgstr "Durmuş işler var.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "komut yok" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "geçmiş belirtimi" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: geçici dosya açılamıyor: %s" @@ -490,12 +511,12 @@ msgstr "%s: geçmiş yorumlaması başarısız" msgid "no other options allowed with `-x'" msgstr "`-x' ile başka seçenek kullanılamaz" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: argümanlar süreç veya iş kimlikleri olmalı" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Bilinmeyen hata" @@ -503,56 +524,61 @@ msgstr "Bilinmeyen hata" msgid "expression expected" msgstr "ifade bekleniyordu" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: bir dizi değişkeni değil" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: dosya tanıtıcı belirtimi geçersiz" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: dosya tanıtıcı geçersiz: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s: seçenek geçersiz" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s: seçenek geçersiz" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s: eylem adı geçersiz" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 #, fuzzy msgid "empty array variable name" msgstr "%s: bir dizi değişkeni değil" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "`%s': biçim karakteri eksik" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "`%c': biçim karakteri geçersiz" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s: uyarı: " -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "\\x için onaltılık rakam eksik" @@ -695,12 +721,12 @@ msgstr "" " engeller, böylece sadece yığıt değiştirilmiş olur. \n" " Dizin yığıtını `dirs' komutuyla görebilirsiniz." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: zamanaşımı belirtimi geçersiz" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "okuma hatası: %d: %s" @@ -737,11 +763,11 @@ msgstr "%s: bir işlev değil" msgid "shift count" msgstr "shift sayısı" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "kabuk seçenekleri aynı anda hem atanıp hem de iptal edilemez" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: kabuk seçenek ismi geçersiz" @@ -831,77 +857,77 @@ msgstr "`%c': simgesel kip işleci geçersiz" msgid "`%c': invalid symbolic mode character" msgstr "`%c': simgesel kip karakteri geçersiz" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "son komut: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Çıkılıyor..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "bilinmeyen komut hatası" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "hatalı komut türü" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "hatalı bağlantı" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "hatalı sıçrama" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: bağlanmamış değişken" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" -msgstr "\agirdi beklerken zamanaşımı: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" +msgstr "girdi beklerken zamanaşımı: auto-logout\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "/dev/null'dan standart girdiye yönlendirme yapılamaz: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: `%c': biçim karakteri geçersiz" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "yazma hatası: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: kısıtlı: komut adında `/' kullanamazsınız" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: komut yok" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: hatalı yorumlayıcı" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "fd %d, fd %d olarak yinelenemiyor" @@ -946,28 +972,28 @@ msgstr "belirteç ön-arttırım veya ön-eksiltim sonrası bekleniyordu" msgid "missing `)'" msgstr "eksik `)'" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "sözdizimi hatası: terim umuluyordu" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "sözdizimi hatası: geçersiz aritmetik işleci" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "geçersiz sayı tabanı" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "değer taban için fazla büyük" -#: expr.c:1328 +#: expr.c:1329 #, fuzzy, c-format msgid "%s: expression error\n" msgstr "%s: tamsayı ifadesi bekleniyordu" @@ -976,7 +1002,7 @@ msgstr "%s: tamsayı ifadesi bekleniyordu" msgid "getcwd: cannot access parent directories" msgstr "getcwd: üst dizinlere erişilemiyor" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, fuzzy, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "fd %d için geciktirmeme kipi sıfırlanamıyor" @@ -1030,7 +1056,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1067,69 +1093,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld bu kabuğun bir alt sürecine ait değil" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: süreç %ld için kayıt yok" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: iş %d durdu" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: iş sonlanmış" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: iş %d zaten artalanda" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s: uyarı: " -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "bu kabukta iş denetimi yok" @@ -1222,6 +1252,26 @@ msgstr "%s: hatalı ağ yolu belirtimi" msgid "network operations not supported" msgstr "desteklenmeyen ağ işlemleri" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "$_'de postanız var" @@ -1235,131 +1285,131 @@ msgstr "$_'de yeni postanız var" msgid "The mail in %s has been read\n" msgstr "%s'deki posta okundu\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "sözdizimi hatası: aritmetik ifadesi gerekli" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "sözdizimi hatası: `;' beklenmiyordu" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "sözdizimi hatası: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: hatalı yönerge türü %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: yönlendirme yönergesi `%d' aralık dışında" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "`%c' için eşleşme aranırken beklenmedik dosya sonu" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "`]]' aranırken beklenmedik dosya sonu" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "koşullu ifadede sözdizimi hatası: beklenmedik dizgecik `%s'" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "koşullu ifadede sözdizimi hatası" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "beklenmedik dizgecik `%s', `)' umuluyordu" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "`)' umuluyordu" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "koşullu tek terimli işlece beklenmedik argüman `%s'" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "koşullu tek terimli işlece beklenmedik argüman" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "beklenmedik dizgecik `%s', koşullu iki terimli işleç umuluyordu" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "koşullu iki terimli işleç umuluyordu" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "koşullu iki terimli işlece beklenmedik argüman `%s'" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "koşullu iki terimli işlece beklenmedik argüman" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "koşullu komutta beklenmeyen dizgecik `%c'" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "koşullu komutta beklenmeyen dizgecik `%s'" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "koşullu komutta beklenmeyen dizgecik %d" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "beklenmeyen dizgecik `%s' yakınında sözdizimi hatası" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "`%s' yakınında sözdizimi hatası" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "sözdizimi hatası: beklenmeyen dosya sonu" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "sözdizimi hatası" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Kabuğu bırakmak için \"%s\" kullanın.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "`)' için eşleşme aranırken beklenmedik dosya sonu" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion: `%s' işlevi yok" @@ -1369,71 +1419,90 @@ msgstr "completion: `%s' işlevi yok" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: hatalı bağlayıcı `%d'" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: dosya tanıtıcı geçersiz: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: `%c': geçersiz biçim karakteri" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "dosya tanıtıcı aralık dışında" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: belirsiz yönlendirme" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: mevcut dosyanın üzerine yazılamıyor" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: kısıtlı: çıktı yönlendirilemiyor" -#: redir.c:162 +#: redir.c:180 #, fuzzy, c-format msgid "cannot create temp file for here-document: %s" msgstr "belge için geçici dosya oluşturulamıyor: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: dizi üyesine liste atanamaz" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port ağ olmaksızın desteklenmiyor" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "yönlendirme hatası: fd yinelenemiyor" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "/tmp bulunamadı, lütfen oluşturun!" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "/tmp geçerli bir dizinin adı olmalıdır" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: geçersiz seçenek" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Hiç ismim yok!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1442,388 +1511,409 @@ msgstr "" "Kullanım:\t%s [GNU uzun seçeneği] [seçenek] ...\n" "\t%s [GNU uzun seçeneği] [seçenek] betik-dosyası ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU uzun seçenekleri:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Kabuk seçenekleri:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD veya -c KOMUT veya -O shopt_seçeneği\t(sadece çağrı için)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ya da -o seçeneği\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Kabuk seçenekleriyle ilgili daha fazla bilgi için `%s -c \"help set\"' " "yazın.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Kabuk yerleşik komutlarıyla ilgili bilgi almak için `%s -c help' yazın.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" "Yazılım hatalarını raporlamak için `bashbug' komutunu kullanınız.\n" "Çeviri hatalarını ise adresine bildiriniz.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: geçersiz işlem" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "sözdizimi hatası" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "kısıtlı" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: dizi üyesine liste atanamaz" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "süreç ikamesi için borulama yapılamıyor" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "süreç ikamesi için alt süreç yapılamıyor" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "isimli boru %s okumak için açılamıyor" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "isimli boru %s yazmak için açılamıyor" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "isimli boru %s fd %d olarak yinelenemiyor" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "komut ikamesi için boru yapılamıyor" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "komut ikamesi için alt süreç yapılamıyor" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: boru fd 1 olarak yinelenemiyor" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parametre boş ya da değer atanmamış" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: altdizge ifadesi < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: hatalı ikame" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: bu yolla atama yapılmaz" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, fuzzy, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "eşleşme yok: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "argüman bekleniyordu" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: tamsayı ifadesi bekleniyordu" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "`)' bekleniyordu" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "`)' bekleniyordu, %s bulundu" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: tek terimli işleci bekleniyordu" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: iki terimli işleci bekleniyordu" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "eksik `]'" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "geçersiz sinyal numarası" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps:trap_list[%d] içinde hatalı değer: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" "run_pending_traps: sinyal yakalayıcı SIG_DFL'dir, kendime %d (%s) göndererek" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler:hatalı sinyal %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "`%s'nin işlev tanımının içeri aktarılmasında hata" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "kabuk düzeyi (%d) çok yüksek, 1 yapılıyor" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: geçerli etki alanında hiç işlev bağlamı yok" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: geçerli etki alanında hiç işlev bağlamı yok" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: parametre boş ya da değer atanmamış" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "%2$s için exportstr içinde geçersiz karakter %1$d" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "%s için exportstr içinde `=' yok" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: kabuk değişkenlerinin başı bir işlev bağlamı değil" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: genel değişkenler bağlamı yok" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope: kabuk değişkenlerinin başı bir geçici ortam etki alanı değil" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: açılamıyor: %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: dosya tanıtıcı geçersiz: %s" + #: version.c:46 #, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." @@ -1835,61 +1925,53 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: %lu bayt ayrılamıyor (%lu bayt ayrıldı)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Copyright © 2006 Free Software Foundation, Inc.\n" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: %lu bayt ayrılamıyor" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %lu bayt ayrılamıyor (%lu bayt ayrıldı)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: %lu bayt yeniden ayrılamıyor" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: %lu bayt ayrılamıyor" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s:%d: %lu bayt ayrılamıyor (%lu bayt ayrıldı)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: %lu bayt ayrılamıyor" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "" @@ -2005,7 +2087,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -2034,8 +2116,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2199,9 +2281,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2211,7 +2293,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -3264,7 +3346,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3328,7 +3414,7 @@ msgstr "" " okuma zamanaşımına düşmedikçe ya da -u seçeneği ile sağlanan\n" " DoSYaTaNıTıcı geçersiz olmadıkça dönüş durumu sıfırdır." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3340,7 +3426,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 #, fuzzy msgid "" "Set or unset values of shell options and positional parameters.\n" @@ -3513,7 +3599,7 @@ msgstr "" " atanır. Özel parametre # ise N'e ayarlanır. Hiç argüman verilmezse,\n" " tüm kabuk değişkenleri basılır." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3533,7 +3619,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3552,7 +3638,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3572,7 +3658,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3583,7 +3669,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 #, fuzzy msgid "" "Execute commands from a file in the current shell.\n" @@ -3611,7 +3697,7 @@ msgstr "" "parametreler\n" " değiştirilmez." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3625,7 +3711,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3779,7 +3865,7 @@ msgstr "" " küçüklük, büyüklük, küçüklük veya eşitlik, büyüklük veya eşitlik varsa\n" " ifadenin sonucu doğrudur." -#: builtins.c:1296 +#: builtins.c:1299 #, fuzzy msgid "" "Evaluate conditional expression.\n" @@ -3791,7 +3877,7 @@ msgstr "" " test yerleşiği ile aynıdır, fakat son argüman açan `[' ile eşleşen\n" " kapatan `]' olmak zorundadır." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3803,7 +3889,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 #, fuzzy msgid "" "Trap signals and other events.\n" @@ -3856,7 +3942,7 @@ msgstr "" " numaraları ile birlikte listelemesini sağlar. Kabuğa bir sinyal\n" " göndermek isterseniz \"kill -SÄ°GNAL $$\" sözdizimini kullanabilirsiniz." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3886,7 +3972,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 #, fuzzy msgid "" "Modify shell resource limits.\n" @@ -3963,7 +4049,7 @@ msgstr "" " için 512 baytlık blok sayısı olarak, -n ve -u için birimsiz, kalan\n" " seçenekler için 1024 baytlık blok sayısı olarak belirtilmelidir." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3981,7 +4067,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3998,7 +4084,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 #, fuzzy msgid "" "Wait for process completion and return exit status.\n" @@ -4019,7 +4105,7 @@ msgstr "" " belirtimi de olabilir; bir iş belirtimi verilirse işin\n" " boruhattındaki tüm süreçler için beklenir." -#: builtins.c:1478 +#: builtins.c:1481 #, fuzzy msgid "" "Execute commands for each member in a list.\n" @@ -4038,7 +4124,7 @@ msgstr "" " yoksa, `in \"$@\"' belirtilmiş gibi kümeyi oluşturan her parametre\n" " için KOMUTlar birer kere çalıştırılır." -#: builtins.c:1492 +#: builtins.c:1495 #, fuzzy msgid "" "Arithmetic for loop.\n" @@ -4065,7 +4151,7 @@ msgstr "" " Ä°FADE1, Ä°FADE2 ve Ä°FADE3 aritmetik ifadelerdir. Verilmeyen her\n" " ifade için 1 verilmiş gibi işlem yapılır." -#: builtins.c:1510 +#: builtins.c:1513 #, fuzzy msgid "" "Select words from a list and execute commands.\n" @@ -4105,7 +4191,7 @@ msgstr "" " değişkeninde tutulur. Her seçimden sonra bir break komutu ile\n" " sonlandırılıncaya kadar komutlar çalıştırılır." -#: builtins.c:1531 +#: builtins.c:1534 #, fuzzy msgid "" "Report time consumed by pipeline's execution.\n" @@ -4129,7 +4215,7 @@ msgstr "" " istatistiklerinin biraz farklı bir biçimde basılmasını sağlar; çıktı\n" " biçimi olarak TIMEFORMAT değişkeninin değerini kullanır." -#: builtins.c:1548 +#: builtins.c:1551 #, fuzzy msgid "" "Execute commands based on pattern matching.\n" @@ -4144,7 +4230,7 @@ msgstr "" " SÖZcük ile eşleşen ilk KALIP'a karşı düşen KOMUTları çalıştırır.\n" " `|' çok sayıda kalıbı ayırmak için kullanılır." -#: builtins.c:1560 +#: builtins.c:1563 #, fuzzy msgid "" "Execute commands based on conditional.\n" @@ -4179,7 +4265,7 @@ msgstr "" " çıkış durumudur. Bir komut çalıştırılmamışsa ve hiçbir koşul\n" " doğru sonuç vermemişse sıfır döner." -#: builtins.c:1577 +#: builtins.c:1580 #, fuzzy msgid "" "Execute commands as long as a test succeeds.\n" @@ -4194,7 +4280,7 @@ msgstr "" " `while KOMUTlar; listesinin çıkış durumu sıfır olduğu sürece\n" " `do KOMUTlar;' listesi çalıştırılır." -#: builtins.c:1589 +#: builtins.c:1592 #, fuzzy msgid "" "Execute commands as long as a test does not succeed.\n" @@ -4209,7 +4295,7 @@ msgstr "" " `until KOMUTlar; listesinin çıkış durumu sıfırdan farklı olduğu sürece\n" " `do KOMUTlar;' listesi çalıştırılır." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4222,7 +4308,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4236,7 +4322,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 #, fuzzy msgid "" "Group commands as a unit.\n" @@ -4251,7 +4337,7 @@ msgstr "" " KOMUTlar bir grup olarak çalıştırılır. Bu, bir komut kümesini bir\n" " yönlendirmede kullanmanın tek yoludur." -#: builtins.c:1641 +#: builtins.c:1644 #, fuzzy msgid "" "Resume job in foreground.\n" @@ -4272,7 +4358,7 @@ msgstr "" " İŞ_BELÄ°RTÄ°MÄ°'nden sonra bir & gelmesi işin `bg' komutununa argüman\n" " olarak kullanılmış gibi artalana yerleştirilmesine sebep olur." -#: builtins.c:1656 +#: builtins.c:1659 #, fuzzy msgid "" "Evaluate arithmetic expression.\n" @@ -4287,7 +4373,7 @@ msgstr "" " Verilen aritmetik Ä°FADE aritmetik değerlendirme kurallarına göre\n" " değerlendirilir. \"let Ä°FADE\" ile eşdeğerdir." -#: builtins.c:1668 +#: builtins.c:1671 #, fuzzy msgid "" "Execute conditional command.\n" @@ -4330,7 +4416,7 @@ msgstr "" " olarak ele alınır ve kalıp eşleştirmesi uygulanır. && ve || işleçleri\n" " eğer ilk ifade sonuç için belirleyici ise ikincisine bakmazlar." -#: builtins.c:1694 +#: builtins.c:1697 #, fuzzy msgid "" "Common shell variable names and usage.\n" @@ -4451,7 +4537,7 @@ msgstr "" " gerektiğine karar vermek için kullanılan kalıpların\n" " ikinokta imi ayraçlı listesi.\n" -#: builtins.c:1751 +#: builtins.c:1754 #, fuzzy msgid "" "Add directories to stack.\n" @@ -4503,7 +4589,7 @@ msgstr "" "\n" " Dizin yığıtını `dirs' komutuyla görebilirsiniz." -#: builtins.c:1785 +#: builtins.c:1788 #, fuzzy msgid "" "Remove directories from stack.\n" @@ -4544,7 +4630,7 @@ msgstr "" " engeller, böylece sadece yığıt değiştirilmiş olur. \n" " Dizin yığıtını `dirs' komutuyla görebilirsiniz." -#: builtins.c:1815 +#: builtins.c:1818 #, fuzzy msgid "" "Display directory stack.\n" @@ -4590,7 +4676,7 @@ msgstr "" " -N dirs seçeneksiz çağrıldığında gösterdiği listenin sağından\n" " sıfırla başlayarak sayılan N'inci girdiyi gösterir." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -4611,7 +4697,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 #, fuzzy msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" @@ -4653,7 +4739,7 @@ msgstr "" " biçimde çıktılamasını sağlar. -v seçeneği çıktının standart çıktıya\n" " basılması yerine DEĞİŞKENe atanmasını sağlar. " -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -4667,15 +4753,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 #, fuzzy msgid "" "Display possible completions depending on the options.\n" @@ -4695,7 +4786,7 @@ msgstr "" " amacıyla tasarlanmıştır. Ä°steğe bağlı SÖZCÜK argümanı sağlandığı\n" " takdirde eşleşmelerden sadece SÖZCÜK ile eşleşenler üretilir." -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -4708,6 +4799,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -4724,15 +4817,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -4759,16 +4852,27 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: %lu bayt yeniden ayrılamıyor" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)" + #~ msgid " " #~ msgstr " " diff --git a/po/vi.gmo b/po/vi.gmo index 2411ab4ac3c905d47d8bdc8d2383900a644a9f82..eb02d0099b892aefbfbab05bae352448293a5d65 100644 GIT binary patch delta 12847 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 WZDHN?z{JwDg1~``OO9j(8vhT6A^#r$ delta 15274 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, 2008. +# Clytie Siddall , 2008-2009. # msgid "" msgstr "" -"Project-Id-Version: bash 4.0-pre1\n" +"Project-Id-Version: bash 4.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" -"PO-Revision-Date: 2008-09-08 17:26+0930\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" +"PO-Revision-Date: 2009-09-19 21:17+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: LocFactoryEditor 1.7b3\n" +"X-Generator: LocFactoryEditor 1.8\n" #: arrayfunc.c:50 msgid "bad array subscript" msgstr "sai mảng in thấp" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "%s: không thể chuyển đổi mảng theo số mũ sang mảng kết hợp" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, c-format msgid "%s: invalid associative array key" msgstr "%s: khoá màng kết hợp không hợp lệ" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: không thể cấp phát cho chỉ số không thuộc số" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "%s: %s: phải sử dụng chữ thấp khi gán mảng kết hợp" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "%s: không thể tạo %s" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: không tìm thấy sơ đồ phím cho câu lệnh" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" "%s: ký tự khác khoảng trắng đầu tiên không phải là dấu sổ chéo ngược « / »" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "thiếu « %c » đóng trong %s" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "%s: thiếu dấu hai chấm định giới" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "« %s »: tên sơ đồ phím không hợp lệ" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" -msgstr "" +msgstr "chưa bật sửa đổi dòng" #: builtins/bind.def:206 #, c-format @@ -118,6 +123,24 @@ msgid "" " \n" " Without EXPR, returns " msgstr "" +"Trả lại ngữ cảnh của lời gọi thường trình con hiện thời.\n" +"\n" +" Không có BTHỰC thì trà lại " + +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" #: builtins/cd.def:215 msgid "HOME not set" @@ -132,7 +155,7 @@ msgstr "Chưa đặt biến môi trường OLDPWD (mật khẩu cũ)" msgid "line %d: " msgstr "dòng %d:" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, c-format msgid "warning: " msgstr "cảnh báo :" @@ -142,11 +165,11 @@ msgstr "cảnh báo :" msgid "%s: usage: " msgstr "%s: sử dụng:" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "quá nhiều đối số" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s: tùy chọn cần thiết một đối số" @@ -161,7 +184,7 @@ msgstr "%s: cần thiết đối số thuộc số" msgid "%s: not found" msgstr "%s: không tìm thấy" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s: tùy chọn không hợp lệ" @@ -184,7 +207,7 @@ msgstr "số bát phân không hợp lệ" msgid "invalid hex number" msgstr "số thập lục không hợp lệ" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "số không hợp lệ" @@ -198,7 +221,7 @@ msgstr "%s: sai xác định tín hiệu" msgid "`%s': not a pid or valid job spec" msgstr "« %s »: không phải đặc tả hợp lệ cho PID hoặc công việc" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s: biến chỉ đọc" @@ -253,12 +276,12 @@ msgstr "lỗi ghi: %s" #: builtins/common.c:329 #, c-format msgid "error setting terminal attributes: %s" -msgstr "" +msgstr "gặp lỗi khi đặt các thuộc tính về thiết bị cuối: %s" #: builtins/common.c:331 #, c-format msgid "error getting terminal attributes: %s" -msgstr "" +msgstr "gặp lỗi khi lấy các thuộc tính về thiết bị cuối: %s" #: builtins/common.c:563 #, c-format @@ -270,26 +293,26 @@ msgstr "%s: gặp lỗi khi lấy thư mục hiện thời: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s: đặc tả công việc mơ hồ" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s: tên hành vi không hợp lệ" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s: không có đặc tả điền nốt" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "cảnh báo: tùy chọn « -F » có lẽ không hoạt động như mong đợi" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "cảnh báo: tùy chọn « -C » có lẽ không hoạt động như mong đợi" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "hiện thời không thực thi chức năng điền nốt" @@ -297,21 +320,21 @@ msgstr "hiện thời không thực thi chức năng điền nốt" msgid "can only be used in a function" msgstr "chỉ có thể được dùng trong một hàm" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "không thể dùng « -f » để tạo hàm" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s: hàm chỉ đọc" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: không thể phá hủy biến mảng bằng cách này" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "%s: không thể chuyển đổi mảng kết hợp sang mảng theo số mũ" @@ -340,8 +363,8 @@ msgstr "%s không phải được nạp động" msgid "%s: cannot delete: %s" msgstr "%s: không thể xoá: %s" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "%s: là thư mục" @@ -356,7 +379,8 @@ msgstr "%s: không phải là tập tin chuẩn" msgid "%s: file is too large" msgstr "%s: tập tin quá lớn" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: không thể thực hiện tập tin nhị phân" @@ -385,15 +409,15 @@ msgstr "Vẫn có công việc bị dừng.\n" msgid "There are running jobs.\n" msgstr "Vẫn có công việc đang chạy.\n" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "không tìm thấy lệnh" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "đặc tả lịch sử" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: không thể mở tập tin tạm thời: %s" @@ -494,12 +518,12 @@ msgstr "%s: inlib bị lỗi" msgid "no other options allowed with `-x'" msgstr "không cho phép dùng tùy chọn thêm với « -x »" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: đối số phải là mã số của tiến trình (PID) hoặc công việc" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "Lỗi không rõ" @@ -507,55 +531,60 @@ msgstr "Lỗi không rõ" msgid "expression expected" msgstr "đợi biểu thức" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 +#, fuzzy, c-format +msgid "%s: not an indexed array" +msgstr "%s: không phải biến mảng" + +#: builtins/mapfile.def:249 builtins/read.def:279 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: sai xác định bộ mô tả tập tin" -#: builtins/mapfile.def:249 builtins/read.def:279 +#: builtins/mapfile.def:257 builtins/read.def:286 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: bộ mô tả tập tin không hợp lệ: %s" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, c-format msgid "%s: invalid line count" msgstr "%s: sai đếm dòng" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, c-format msgid "%s: invalid array origin" msgstr "%s: gốc mảng không hợp lệ" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, c-format msgid "%s: invalid callback quantum" msgstr "%s: lượng gọi ngược không hợp lệ" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "%s: tên biến mảng vẫn trống" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "cần thiết hỗ trợ biến mảng" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "« %s »: thiếu ký tự định dạng" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "« %c »: ký tự định dạng không hợp lệ" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, c-format msgid "warning: %s: %s" msgstr "cảnh báo : %s: %s" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "thiếu chữ số thập phân cho \\x" @@ -706,12 +735,12 @@ msgstr "" "\n" "\tDựng sẵn « dirs » sẽ hiển thị đống thư mục." -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: sai xác định quá hạn" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "lỗi đọc: %d: %s" @@ -749,11 +778,11 @@ msgstr "%s: không phải hàm" msgid "shift count" msgstr "đếm dời" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "không thể đồng thời đặt và hủy đặt các tùy chọn trình bao" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "%s: tên tùy chọn trình bao không hợp lệ" @@ -843,76 +872,76 @@ msgstr "« %c »: toán từ chế độ tượng trưng không hợp lệ" msgid "`%c': invalid symbolic mode character" msgstr "« %c »: ký tự chế độ tượng trưng không hợp lệ" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "dòng" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "câu lệnh cuối cùng: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "Hủy bỏ..." -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "lỗi lệnh không rõ" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "kiểu lệnh sai" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "bộ kết nối sai" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "sai nhảy" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "%s: biến chưa tổ hợp" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "\tquá hạn trong khi đợi dữ liệu nhập nên tự động đăng xuất\n" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "không thể chuyển hướng đầu vào tiêu chuẩn từ « /dev/null »: %s" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "ĐỊNH DẠNG THỜI GIAN: « %c »: ký tự định dạng không hợp lệ" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 msgid "pipe error" msgstr "lỗi ống dẫn" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: bị hạn chế: không thể ghi rõ dấu sổ chéo « / » trong tên câu lệnh" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s: không tìm thấy lệnh" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: bộ thông dịch sai" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "không thể nhân đôi fd %d tới fd %d" @@ -957,28 +986,28 @@ msgstr "đợi đồ nhận diện đằng sau tăng/giảm dần sẵn" msgid "missing `)'" msgstr "thiếu dấu ngoặc đóng « ) »" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "lỗi cú pháp: đợi toán hạng" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "lỗi cú pháp: toán tử số học không hợp lệ" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (hiệu bài lỗi là « %s »)" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "cơ số (số học) không hợp lệ" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "cơ số có giá trị quá lớn" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "%s: lỗi biểu thức\n" @@ -987,7 +1016,7 @@ msgstr "%s: lỗi biểu thức\n" msgid "getcwd: cannot access parent directories" msgstr "getcwd: không thể truy cập thư mục cấp trên" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "không thể đặt lại chế độ nodelay (không hoãn) cho fd %d" @@ -1041,7 +1070,7 @@ msgstr "Tín hiệu %d" msgid "Done" msgstr "Hoàn tất" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "Bị dừng" @@ -1078,70 +1107,74 @@ msgstr "(lõi bị đổ)" msgid " (wd: %s)" msgstr " (wd: %s)" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "setpgid tiến trình con (%ld thành %ld)" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld không phải là tiến trình con của trình bao này" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Không có mục ghi về tiến trình %ld" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: công việc %d bị dừng chạy" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "%s: công việc bị chấm dứt" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "%s: công việc %d đã chạy trong nền" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, c-format msgid "%s: line %d: " msgstr "%s: dòng %d:" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr " (lõi bị đổ)" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "(wd bây giờ: %s)\n" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: getpgrp bị lỗi" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "initialize_job_control: kỷ luật dòng" # Nghĩa chữ : dừng dịch -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "không thể đặt nhóm tiến trình cuối cùng (%d)" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "không có điều khiển công việc trong trình bao này" @@ -1235,6 +1268,26 @@ msgstr "%s: đặc tả đường dẫn mạng sai" msgid "network operations not supported" msgstr "không hỗ trợ thao tác mạng" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "xrealloc: %s:%d: không thể cấp phát %lu byte" + +#: locale.c:249 +#, fuzzy, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "xrealloc: %s:%d: không thể cấp phát %lu byte" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "Bạn có thư trong $_" @@ -1248,133 +1301,133 @@ msgstr "Bạn có thư mới trong $_" msgid "The mail in %s has been read\n" msgstr "Thư tín trong %s đã được đọc\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "lỗi cú pháp: cần thiết biểu thức số học" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "lỗi cú pháp: dấu chấm phẩy « ; » bất thường" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "lỗi cú pháp: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: kiểu chỉ dẫn sai %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" "tài liệu này ở dòng %d định giới bằng kết thúc tập tin (mong đợi « %s »)" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: chỉ dẫn chuyển hướng « %d » ở ngoại phạm vi" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "gặp kết thúc tập tin bất thường trong khi tìm « %c » tương ứng" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "gặp kết thúc tập tin bất thường trong khi tìm « ]] »" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "gặp lỗi cú pháp trong biểu thức điều kiện: hiệu bài bất thường « %s »" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "gặp lỗi cú pháp trong biểu thức điều kiện" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "gặp hiệu bài bất thường « %s », còn mong đợi dấu ngoặc đóng « ) »" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "đợi dấu đóng ngoặc « ) »" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "đối số bất thường « %s » tới toán tử nguyên phân điều kiện" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "đối số bất thường tới toán tử nguyên phân điều kiện" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "hiệu bài bất thường « %s » còn đợi toán tử nhị phân điều kiện" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "đợi toán tử nhị phân điều kiện" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "đối số bất thường « %s » tới toán tử nhị phân điều kiện" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "đối số bất thường tới toán tử nhị phân điều kiện" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "gặp hiệu bài bất thường « %c » trong câu lệnh điều kiện" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "gặp hiệu bài bất thường « %s » trong câu lệnh điều kiện" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "gặp hiệu bài bất thường « %d » trong câu lệnh điều kiện" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "gặp lỗi cú pháp ở gần hiệu bài bất thường « %s »" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "gặp lỗi cú pháp gần « %s »" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "lỗi cú pháp: kết thúc tập tin bất thường" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "lỗi cú pháp" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Dùng « %s » để rời trình bao.\n" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" "gặp kết thúc tập tin bất thường trong khi tìm dấu ngoặc đóng « ) » tương ứng" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "completion: không tìm thấy hàm « %s »" @@ -1384,72 +1437,91 @@ msgstr "completion: không tìm thấy hàm « %s »" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: bộ kết nối sai « %d »" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, fuzzy, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "%d: bộ mô tả tập tin không hợp lệ: %s" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: « %c »: ký tự định dạng không hợp lệ" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "bộ mô tả tập tin ở ngoại phạm vi" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: lời chuyển hướng mơ hồ" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: không thể ghi đè lên tập tin đã có" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: bị hạn chế: không thể chuyển hướng kết xuất" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "không thể tạo tập tin tạm thời cho tài liệu này: %s" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s: không thể gán danh sách cho bộ phận của mảng" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" "/dev/(tcp|udp)/host/port không được hỗ trợ khi không có chức năng chạy mạng" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "gặp lỗi chuyển hướng nên không thể nhân đôi fd" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "không tìm thấy « /tmp », hãy tạo." -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "« /tmp » phải là tên thư mục hợp lệ" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: tùy chọn không hợp lệ" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "Không có tên." -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "bash của GNU, phiên bản %s-(%s)\n" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1458,333 +1530,339 @@ msgstr "" "Sử dụng:\t%s [tùy chọn GNU dài] [tùy chọn] ...\n" "\t%s [tùy chọn GNU dài] [tùy chọn] tập-tin-văn-lệnh ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "Tùy chọn GNU dài:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Tùy chọn trình bao :\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD hoặc -c lệnh or -O shopt_option\t\t(chỉ cuộc gọi)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s hoặc -o tùy chọn\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Gõ câu lệnh trợ giúp « %s -c \"help set\" » để xem thêm thông tin về các tùy " "chọn trình bao.\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Gõ câu lệnh trợ giúp « %s -c help » để xem thêm thông tin về các câu lệnh " "trình bao dựng sẵn.\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Dùng lệnh « bashbug » để thông báo lỗi.\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: thao tác không hợp lệ" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "Tín hiệu giả" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "Treo máy" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "Gián đoạn" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "Thoát" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "Câu lệnh không được phép" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "Theo vết/đặt bẫy BPT" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "Câu lệnh HỦY BỎ" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "Câu lệnh EMT" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "Ngoại lệ chấm động" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "Bị giết" -#: siglist.c:90 +#: siglist.c:91 msgid "Bus error" msgstr "lỗi mạch nối" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "Lỗi chia ra từng đoạn" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "Sai gọi hệ thống" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "Ống dẫn bị hỏng" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "Đồng hồ báo thức" -#: siglist.c:110 +#: siglist.c:111 msgid "Terminated" msgstr "Bị chấm dứt" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "Điều kiện VR gấp" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "Bị dừng (tín hiệu)" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "Tiếp tục" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "Tiến trình con đã giết hoặc dừng" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "Bị dừng (tty nhập)" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "Bị dừng (tty xuất)" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "V/R sẵn sàng" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "Giới hạn CPU" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "Giới hạn tập tin" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "Báo động (ảo)" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "Báo động (hồ sơ)" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "Cửa sổ bị thay đổi" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "Mục ghi bị khoá" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "Tín hiệu người dùng 1" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "Tín hiệu người dùng 2" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "Dữ liệu nhập HFT bị hoãn" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "sắp bị cúp điện đột ngột" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "hệ thống sắp sụp đổ" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "chuyển tiến trình sang CPU khác" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "lỗi lập trình" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "Có chế độ màn hình HFT" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "Không có chế độ màn hình HFT" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "Đã hoàn thành chuỗi âm thanh HFT" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "yêu cầu thông tin" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "Không rõ tín hiệu #" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "Không rõ tín hiệu #%d" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "sai thay thế: không có « %s » đóng trong %s" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: không thể gán danh sách cho bộ phận của mảng" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "không thể tạo ống dẫn để thay thế tiến trình" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "không thể tạo tiến trình con để thay thế tiến trình" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "không thể mở ống dẫn đặt tên %s để đọc" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "không thể mở ống dẫn đặt tên %s để ghi" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "không thể nhân đôi ống dẫn đặt tên %s thành fd %d" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "không thể tạo ống dẫn để thay thế lệnh" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "không thể tạo tiến trình con để thay thế lệnh" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: không thể nhân đôi ống dẫn thành fd 1" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "%s: tham số vô giá trị hoặc chưa được đặt" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "%s: biểu thức chuỗi phụ < 0" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "%s: sai thay thế" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: không thể gán bằng cách này" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "sai thay thế: không có « ` » đóng trong %s" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "không khớp: %s" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "mong đợi đối số" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "%s: đợi biểu thức số nguyên" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "đợi dấu ngoặc đóng « ) »" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "đợi dấu ngoặc đóng « ) », còn tìm %s" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "%s: đợi toán tử nguyên phân" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "%s: đợi toán tử nhị phân" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "thiếu dấu ngoặc vụ đóng « ] »" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "số thứ tự tín hiệu không hợp lệ" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: giá trị sai trong danh sách trap_list[%d]: %p" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" @@ -1792,60 +1870,74 @@ msgstr "" "run_pending_traps: bộ xử lý tín hiệu là SIG_DFL, đang gửi lại %d (%s) cho " "mình" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: tín hiệu sai %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "gặp lỗi khi nhập lời xác định hàm cho « %s »" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "cấp trình bao (%d) quá cao nên đặt lại thành 1" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: không có ngữ cảnh hàm ở phạm vi hiện thời" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: không có ngữ cảnh hàm ở phạm vi hiện thời" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, fuzzy, c-format +msgid "%s has null exportstr" +msgstr "%s: tham số vô giá trị hoặc chưa được đặt" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "sai ký tự %d trong chuỗi exportstr cho %s" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "không có dấu bằng « = » trong chuỗi exportstr cho %s" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" "pop_var_context: đầu của shell_variables (các biến trình bao) không phải là " "ngữ cảnh hàm" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" "pop_var_context: không có ngữ cảnh global_variables (các biến toàn cục)" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" "pop_scope: đầu của shell_variables (các biến trình bao) không phải là phạm " "vi môi trường tạm thời" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s: không thể mở : %s" + +#: variables.c:4683 +#, fuzzy, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "%d: bộ mô tả tập tin không hợp lệ: %s" + #: version.c:46 -#, fuzzy msgid "Copyright (C) 2009 Free Software Foundation, Inc." -msgstr "Tác quyền © năm 2008 của Tổ chức Phần mềm Tự do." +msgstr "Tác quyền © năm 2009 của Tổ chức Phần mềm Tự do." #: version.c:47 msgid "" @@ -1855,62 +1947,55 @@ msgstr "" "Giấy phép GPLv3+: Giấy Phép Công Cộng GNU phiên bản 3 hay sau \n" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "bash của GNU, phiên bản %s (%s)\n" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "Đây là phần mềm tự do thì bạn có quyền sửa đổi và phát hành lại nó.\n" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "KHÔNG BẢO ĐẢM GÌ CẢ, với điều kiện được pháp luật cho phép.\n" -#: xmalloc.c:92 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -msgstr "xmalloc: không thể cấp phát %lu byte (%lu byte đã cấp phát)" +#: version2.c:86 +#, fuzzy, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "Tác quyền © năm 2009 của Tổ chức Phần mềm Tự do." -#: xmalloc.c:94 -#, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "xmalloc: không thể cấp phát %lu byte" +#: version2.c:87 +#, fuzzy, c-format +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" +msgstr "" +"Giấy phép GPLv3+: Giấy Phép Công Cộng GNU phiên bản 3 hay sau \n" -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "xrealloc: không thể cấp phát lại %lu byte (%lu byte đã cấp phát)" +#: xmalloc.c:91 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: không thể cấp phát %lu byte (%lu byte đã cấp phát)" -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" -msgstr "xrealloc: không thể cấp phát %lu byte" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "xmalloc: không thể cấp phát %lu byte" -#: xmalloc.c:150 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +#: xmalloc.c:163 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: %s:%d: không thể cấp phát %lu byte (%lu byte đã cấp phát)" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +#: xmalloc.c:165 +#, fuzzy, c-format +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: không thể cấp phát %lu byte" -#: xmalloc.c:174 -#, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" -"xrealloc: %s:%d: không thể cấp phát lại %lu byte (%lu byte đã cấp phát)" - -#: xmalloc.c:176 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" -msgstr "xrealloc: %s:%d: không thể cấp phát %lu byte" - #: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [tên[=giá-trị] ... ]" @@ -2032,7 +2117,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p đường_dẫn] [-dt] [tên ...]" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +#, fuzzy +msgid "help [-dms] [pattern ...]" msgstr "help [-ds] [mẫu ...]" #: builtins.c:121 @@ -2072,9 +2158,10 @@ msgid "let arg [arg ...]" msgstr "let đối_số [đối_số ...]" #: builtins.c:136 +#, fuzzy msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" "read [-ers] [-a mảng] [-d giới_hạn] [-i văn_bản] [-n số_ký_tự] [-p nhắc] [-t " "thời_hạn] [-u fd] [tên ...]" @@ -2196,7 +2283,7 @@ msgstr "until các_CÂU_LỆNH; do các_CÂU_LỆNH; done" #: builtins.c:198 msgid "coproc [NAME] command [redirections]" -msgstr "" +msgstr "coproc [TÊN] command [định vị lại]" #: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" @@ -2207,7 +2294,7 @@ msgstr "" #: builtins.c:202 msgid "{ COMMANDS ; }" -msgstr "{ LỆNH ; }" +msgstr "{ các_CÂU_LỆNH ; }" #: builtins.c:204 msgid "job_spec [&]" @@ -2246,10 +2333,11 @@ msgid "printf [-v var] format [arguments]" msgstr "printf [-v biến] định_dạng [đối_số]" #: builtins.c:229 +#, fuzzy msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" "complete [-abcdefgjksuv] [-pr] [-o tùy_chọn] [-A hành_động] [-G mẫu_glob] [-" "W danh_sách_từ] [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] " @@ -2264,7 +2352,8 @@ msgstr "" "danh_sách_từ] [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] [từ]" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +#, fuzzy +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "compopt [-o|+o tùy_chọn] [tên ...]" #: builtins.c:240 @@ -2276,12 +2365,11 @@ msgstr "" "[mảng]" #: builtins.c:242 -#, fuzzy msgid "" "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " "quantum] [array]" msgstr "" -"mapfile [-n đếm] [-O gốc] [-s đếm] [-t] [-u fd] [-C gọi_ngược] [-c lượng] " +"readarray [-n đếm] [-O gốc] [-s đếm] [-t] [-u fd] [-C gọi_ngược] [-c lượng] " "[mảng]" #: builtins.c:254 @@ -3549,7 +3637,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -3598,6 +3690,8 @@ msgstr "" "\t\t\tnếu chưa đọc một dòng dữ liệu nhập hoàn toàn trong số giấy này.\n" "\t\t\tGiá trị của biến TMOUT là thời hạn mặc định.\n" "\t\t\tThời hạn này có thể là một số thuộc phân số.\n" +"\t\t\tNếu THỜI_HẠN là 0 thì việc đọc trả lại thành công chỉ nếu\n" +"\t\t\tdữ liệu nhập sẵn sàng trên bộ mô tả tập tin đưa ra.\n" "\t\t\tTrạng thái thoát lớn hơn 128 nếu vượt quá thời hạn này.\n" "\t\t-u fd\tđọc từ bộ mô tả tập tin FD thay cho đầu vào tiêu chuẩn\n" "\n" @@ -3606,7 +3700,7 @@ msgstr "" "\tkhông quá thời khi đọc, và không đưa ra bộ mô tả tập tin sai\n" "\tlàm đối số tới « -u »." -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -3628,7 +3722,7 @@ msgstr "" "\tTrả lại N, hoặc bị lỗi nếu trình bao không đang chạy\n" "\t\tmột chức năng hay văn lệnh." -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3791,7 +3885,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không gặp tùy chọn sai." -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3824,7 +3918,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai, và TÊN không chỉ đọc." -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3858,7 +3952,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai," -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3894,7 +3988,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai." -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3912,7 +4006,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu N không âm hay lớn hơn $#." -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3939,7 +4033,7 @@ msgstr "" "TÊN_TẬP_TIN;\n" "\tkhông thành công nếu không thể đọc TÊN_TẬP_TIN." -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3964,7 +4058,7 @@ msgstr "" "\tTrả lại thành công nếu chức năng điều khiển công việc đã được bật, và " "không gặp lỗi." -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4119,7 +4213,7 @@ msgstr "" "\tTrả lại thành công nếu B_THỨC định giá thành Đúng;\n" "\tkhông thành công nếu B_THỨC định giá thành Sai hay đưa ra đối số sai." -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -4132,7 +4226,7 @@ msgstr "" "\tnhưng đối số cuối cùng phải là một « ] » nghĩa chữ,\n" "\tđổ tương ứng với « [ » mở." -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -4151,7 +4245,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tLúc nào cũng thành công." -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -4221,7 +4315,7 @@ msgstr "" "\tTrả lại thành công nếu không đưa ra ĐẶC_TẢ_TÍN_HIỆU sai\n" "\thay tùy chọn sai." -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -4280,7 +4374,7 @@ msgstr "" "\tTráng thái thoát:\n" "\tTrả lại thành công nếu tìm thấy tất cả các TÊN; không thì bị lỗi." -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -4368,7 +4462,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -4403,7 +4497,7 @@ msgstr "" "\tTráng thái thoát:\n" "\tTrả lại thành công nếu không có CHẾ_ĐỘ sai hay tùy chọn sai." -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -4432,7 +4526,7 @@ msgstr "" "\tTrả lại trạng thái của ID; không thành công nếu ID sai\n" "\t\thoặc đưa ra tùy chọn sai." -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -4459,7 +4553,7 @@ msgstr "" "\tkhông thành công nếu ID sai,\n" "\thoặc nếu đưa ra tùy chọn sai." -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -4483,7 +4577,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -4512,7 +4606,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -4551,7 +4645,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -4582,7 +4676,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrạng thái trả lai là trạng thái trả lại của PIPELINE." -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -4601,7 +4695,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -4638,7 +4732,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -4657,7 +4751,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -4676,7 +4770,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -4688,8 +4782,18 @@ msgid "" " Exit Status:\n" " Returns the exit status of COMMAND." msgstr "" +"Tạo một tiến trình đồng chạy có tên TÊN.\n" +"\n" +"\tThực hiện câu LỆNH một cách không đồng bộ, có đầu và tiêu chuẩn\n" +"\tvà đầu ra tiêu chuẩn của câu lệnh này được kết nối thông qua một ống dẫn\n" +"\ttới các bộ mô tả tập tin được gán cho chỉ số 0 và 1 của một biến mảng TÊN\n" +"\ttrong trình bao đang chạy.\n" +"\tTên mặc định là « COPROC ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái thoát của câu LỆNH." -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -4713,7 +4817,7 @@ msgstr "" "\tTráng thái thoát:\n" "\tTrả lại thành công nếu TÊN không phải chỉ đọc." -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -4732,7 +4836,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -4757,7 +4861,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại trạng thái của công việc đã tiếp tục lại." -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -4775,7 +4879,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại 1 nếu BIỂU_THỨC tính là 0; không thì trả lại 0." -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -4816,7 +4920,8 @@ msgstr "" " \tB_THỨC1 || B_THỨC2\n" "\tĐúng nếu một của B_THỨC1 và B_THỨC2 là đúng; không thì sai\n" " \n" -"Khi dùng toán từ « == » và « != », chuỗi bên phải toán tử được dùng làm mẫu,\n" +"Khi dùng toán từ « == » và « != », chuỗi bên phải toán tử được dùng làm " +"mẫu,\n" "\tvà thực hiện chức năng khớp mẫu.\n" "Toán tử « && » và « || » không tính B_THỨC2 nếu B_THỨC1 là đủ\n" "\tđể tính giá trị của biểu thức.\n" @@ -4824,7 +4929,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\t0 hay 1 phụ thuộc vào giá trị của BIỂU_THỨC." -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -4930,7 +5035,7 @@ msgstr "" "\tđược ùng để quyết định những câu lệnh nào nên được lưu\n" "\tvào danh sách lịch sử.\n" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -4984,7 +5089,7 @@ msgstr "" "\tTrả lại thành công nếu không đưa ra đối số sai,\n" "\tcũng không sai chuyển đổi thư mục." -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -5037,7 +5142,7 @@ msgstr "" "\tTrả lại thành công nếu không đưa ra đối số sai,\n" "\tcũng không sai chuyển đổi thư mục." -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -5093,7 +5198,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -5130,7 +5235,7 @@ msgstr "" "\tTrả lại thành công nếu TÊN_TÙY_CHỌN được bật;\n" "\tkhông thành công nếu đưa ra tùy chọn sai hay TÊN_TÙY_CHỌN bị tắt." -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -5181,7 +5286,8 @@ msgstr "" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi kiểu ghi hay " "gán." -#: builtins.c:1892 +#: builtins.c:1895 +#, fuzzy msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -5195,9 +5301,14 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." @@ -5220,7 +5331,7 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -5242,7 +5353,8 @@ msgstr "" "\tTrạng thái thoát:\n" "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." -#: builtins.c:1930 +#: builtins.c:1938 +#, fuzzy msgid "" "Modify or display completion options.\n" " \n" @@ -5255,6 +5367,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -5294,16 +5408,16 @@ msgstr "" "\tTrả lại thành công nếu không đưa ra tùy chọn sai,\n" "\tvà TÊN có một đặc tả điền nốt được xác định." -#: builtins.c:1958 +#: builtins.c:1968 #, fuzzy msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -5330,9 +5444,11 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -"Đọc các dòng từ một tập tin vào một biến mảng.\n" +"Đọc các dòng từ đầu vào tiêu chuẩn vào một biến mảng.\n" "\n" "\tĐọc các dòng từ đầu vào tiêu chuẩn vào biến mảng MẢNG,\n" "\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn « -u ».\n" @@ -5352,6 +5468,8 @@ msgstr "" "\tMẢNG\ttên biến mảg cần dùng cho dữ liệu tập tin.\n" "\n" "\tNếu đưa ra « -C » mà không có « -c » thì lượng mặc định là 5000.\n" +"\tKhi ước lượng lời GỌI_NGƯỢC thì nó nhận chỉ số của phần tử mảng\n" +"\tkế tiếp được gán dưới dạng một đối số bổ sung.\n" "\n" "\tKhông đưa ra một GỐC dứt khoát thì mapfile (tập tin sơ đồ)\n" "\t\tsẽ xoá sạch MẢNG trước khi gán cho nó.\n" @@ -5360,9 +5478,22 @@ msgstr "" "\tTrả lại thành công nếu không đưa ra tùy chọn sai và MẢNG không phải chỉ " "đọc." -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" " A synonym for `mapfile'." msgstr "" +"Đọc các dòng từ một tập tin vào một biến mảng.\n" +"\n" +"\tĐồng nghĩa với « mapfile »." + +#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "xrealloc: không thể cấp phát lại %lu byte (%lu byte đã cấp phát)" + +#~ msgid "xrealloc: cannot allocate %lu bytes" +#~ msgstr "xrealloc: không thể cấp phát %lu byte" + +#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +#~ msgstr "" +#~ "xrealloc: %s:%d: không thể cấp phát lại %lu byte (%lu byte đã cấp phát)" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index c40fe10bb8fadfbbf121f45e676ce07d505ffc08..c3ca6754a54fd4efe0a28a0f56f8ba1bbce4b532 100644 GIT binary patch delta 24 fcmaE<_fl^|F(0>~k*=|Uf`NsVk?H0-zSkT8XiNvW delta 24 fcmaE<_fl^|F(0>qk*=Yof}x3(sqyAIzSkT8XnhC0 diff --git a/po/zh_TW.po b/po/zh_TW.po index 4144b63..7a5d32b 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: bash-3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-19 14:53-0500\n" +"POT-Creation-Date: 2009-12-30 08:25-0500\n" "PO-Revision-Date: 2008-08-20 20:12+0800\n" "Last-Translator: Zi-You Dai \n" "Language-Team: Chinese (traditional) \n" @@ -20,50 +20,55 @@ msgstr "" msgid "bad array subscript" msgstr "" -#: arrayfunc.c:313 builtins/declare.def:474 +#: arrayfunc.c:313 builtins/declare.def:481 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" -#: arrayfunc.c:479 +#: arrayfunc.c:480 #, fuzzy, c-format msgid "%s: invalid associative array key" msgstr "%s:無效的功能名稱" -#: arrayfunc.c:481 +#: arrayfunc.c:482 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "" -#: arrayfunc.c:517 +#: arrayfunc.c:518 #, c-format msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:379 +#: bashhist.c:383 #, c-format msgid "%s: cannot create: %s" msgstr "" -#: bashline.c:3413 +#: bashline.c:3457 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:3491 +#: bashline.c:3543 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3520 +#: bashline.c:3572 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3554 +#: bashline.c:3606 #, c-format msgid "%s: missing colon separator" msgstr "" +#: builtins/alias.def:132 +#, fuzzy, c-format +msgid "`%s': invalid alias name" +msgstr "%s:無效的功能名稱" + #: builtins/bind.def:120 builtins/bind.def:123 msgid "line editing not enabled" msgstr "" @@ -113,6 +118,21 @@ msgid "" " Without EXPR, returns " msgstr "" +#: builtins/caller.def:135 +msgid "" +". With EXPR, returns\n" +" " +msgstr "" + +#: builtins/caller.def:136 +msgid "" +"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + #: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME 沒有設置" @@ -126,7 +146,7 @@ msgstr "OLDPWD 沒有設置" msgid "line %d: " msgstr "" -#: builtins/common.c:139 error.c:260 +#: builtins/common.c:139 error.c:261 #, fuzzy, c-format msgid "warning: " msgstr "%s:警告:" @@ -136,11 +156,11 @@ msgstr "%s:警告:" msgid "%s: usage: " msgstr "%s:警告:" -#: builtins/common.c:166 test.c:822 +#: builtins/common.c:166 test.c:827 msgid "too many arguments" msgstr "太多引數" -#: builtins/common.c:191 shell.c:493 shell.c:774 +#: builtins/common.c:191 shell.c:499 shell.c:782 #, c-format msgid "%s: option requires an argument" msgstr "%s:選項需要一個引數" @@ -155,7 +175,7 @@ msgstr "%s:數字引數必須" msgid "%s: not found" msgstr "%s:沒有找到" -#: builtins/common.c:214 shell.c:787 +#: builtins/common.c:214 shell.c:795 #, c-format msgid "%s: invalid option" msgstr "%s:無效選項" @@ -180,7 +200,7 @@ msgstr "無效信號數" msgid "invalid hex number" msgstr "%s:無效的號碼" -#: builtins/common.c:242 expr.c:1255 +#: builtins/common.c:242 expr.c:1256 msgid "invalid number" msgstr "" @@ -194,7 +214,7 @@ msgstr "%s:無效的信號規格" msgid "`%s': not a pid or valid job spec" msgstr "`%s':不是一個 pid 或有效的工作規格" -#: builtins/common.c:264 error.c:453 +#: builtins/common.c:264 error.c:454 #, c-format msgid "%s: readonly variable" msgstr "%s:只讀變數" @@ -266,26 +286,26 @@ msgstr "%s:錯誤檢索當前目錄: %s: %s\n" msgid "%s: ambiguous job spec" msgstr "%s:含糊的工作規格" -#: builtins/complete.def:270 +#: builtins/complete.def:276 #, c-format msgid "%s: invalid action name" msgstr "%s:無效的功能名稱" -#: builtins/complete.def:430 builtins/complete.def:615 -#: builtins/complete.def:813 +#: builtins/complete.def:449 builtins/complete.def:644 +#: builtins/complete.def:853 #, c-format msgid "%s: no completion specification" msgstr "%s:沒有完成的規格" -#: builtins/complete.def:667 +#: builtins/complete.def:696 msgid "warning: -F option may not work as you expect" msgstr "警告: -F 選項可能無法按預期工作" -#: builtins/complete.def:669 +#: builtins/complete.def:698 msgid "warning: -C option may not work as you expect" msgstr "警告: -C 選項可能無法按預期工作" -#: builtins/complete.def:786 +#: builtins/complete.def:826 msgid "not currently executing completion function" msgstr "" @@ -293,21 +313,21 @@ msgstr "" msgid "can only be used in a function" msgstr "只能用在一個函數" -#: builtins/declare.def:353 +#: builtins/declare.def:360 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:365 execute_cmd.c:4818 +#: builtins/declare.def:372 execute_cmd.c:4937 #, c-format msgid "%s: readonly function" msgstr "%s:只讀函數" -#: builtins/declare.def:461 +#: builtins/declare.def:468 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "" -#: builtins/declare.def:468 +#: builtins/declare.def:475 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -336,8 +356,8 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "" -#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4675 -#: shell.c:1439 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4794 +#: shell.c:1452 #, c-format msgid "%s: is a directory" msgstr "" @@ -352,7 +372,8 @@ msgstr "" msgid "%s: file is too large" msgstr "" -#: builtins/evalfile.c:185 execute_cmd.c:4745 shell.c:1449 +#: builtins/evalfile.c:185 builtins/evalfile.c:203 execute_cmd.c:4864 +#: shell.c:1462 #, c-format msgid "%s: cannot execute binary file" msgstr "" @@ -381,15 +402,15 @@ msgstr "" msgid "There are running jobs.\n" msgstr "" -#: builtins/fc.def:261 +#: builtins/fc.def:262 msgid "no command found" msgstr "" -#: builtins/fc.def:341 +#: builtins/fc.def:349 msgid "history specification" msgstr "" -#: builtins/fc.def:362 +#: builtins/fc.def:370 #, c-format msgid "%s: cannot open temp file: %s" msgstr "" @@ -478,12 +499,12 @@ msgstr "%s:無效服務" msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:197 +#: builtins/kill.def:200 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:260 +#: builtins/kill.def:263 msgid "Unknown error" msgstr "" @@ -491,55 +512,60 @@ msgstr "" msgid "expression expected" msgstr "" -#: builtins/mapfile.def:241 builtins/read.def:272 +#: builtins/mapfile.def:165 #, c-format -msgid "%s: invalid file descriptor specification" +msgid "%s: not an indexed array" msgstr "" #: builtins/mapfile.def:249 builtins/read.def:279 #, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:257 builtins/read.def:286 +#, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/mapfile.def:258 builtins/mapfile.def:296 +#: builtins/mapfile.def:266 builtins/mapfile.def:304 #, fuzzy, c-format msgid "%s: invalid line count" msgstr "%s:無效選項" -#: builtins/mapfile.def:269 +#: builtins/mapfile.def:277 #, fuzzy, c-format msgid "%s: invalid array origin" msgstr "%s:無效選項" -#: builtins/mapfile.def:286 +#: builtins/mapfile.def:294 #, fuzzy, c-format msgid "%s: invalid callback quantum" msgstr "%s:無效的功能名稱" -#: builtins/mapfile.def:318 +#: builtins/mapfile.def:326 msgid "empty array variable name" msgstr "" -#: builtins/mapfile.def:339 +#: builtins/mapfile.def:347 msgid "array variable support required" msgstr "" -#: builtins/printf.def:367 +#: builtins/printf.def:374 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:544 +#: builtins/printf.def:551 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:571 +#: builtins/printf.def:578 #, fuzzy, c-format msgid "warning: %s: %s" msgstr "%s:警告:" -#: builtins/printf.def:750 +#: builtins/printf.def:757 msgid "missing hex digit for \\x" msgstr "" @@ -629,12 +655,12 @@ msgid "" " The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:248 +#: builtins/read.def:252 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:574 +#: builtins/read.def:588 #, c-format msgid "read error: %d: %s" msgstr "" @@ -671,11 +697,11 @@ msgstr "" msgid "shift count" msgstr "" -#: builtins/shopt.def:254 +#: builtins/shopt.def:260 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:319 +#: builtins/shopt.def:325 #, c-format msgid "%s: invalid shell option name" msgstr "" @@ -765,77 +791,77 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:89 error.c:320 error.c:322 error.c:324 +#: error.c:90 error.c:321 error.c:323 error.c:325 msgid " line " msgstr "" -#: error.c:164 +#: error.c:165 #, c-format msgid "last command: %s\n" msgstr "最後的命令: %s\n" -#: error.c:172 +#: error.c:173 #, c-format msgid "Aborting..." msgstr "" -#: error.c:405 +#: error.c:406 msgid "unknown command error" msgstr "未知命令錯誤" -#: error.c:406 +#: error.c:407 msgid "bad command type" msgstr "壞的命令類型" -#: error.c:407 +#: error.c:408 msgid "bad connector" msgstr "壞的連接器" -#: error.c:408 +#: error.c:409 msgid "bad jump" msgstr "" -#: error.c:446 +#: error.c:447 #, c-format msgid "%s: unbound variable" msgstr "" #: eval.c:181 #, c-format -msgid "\atimed out waiting for input: auto-logout\n" +msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:491 +#: execute_cmd.c:497 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1112 +#: execute_cmd.c:1162 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:2011 +#: execute_cmd.c:2075 #, fuzzy msgid "pipe error" msgstr "寫入錯誤: %s" -#: execute_cmd.c:4363 +#: execute_cmd.c:4481 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:4454 +#: execute_cmd.c:4572 #, c-format msgid "%s: command not found" msgstr "%s:命令找不到" -#: execute_cmd.c:4708 +#: execute_cmd.c:4827 #, c-format msgid "%s: %s: bad interpreter" msgstr "" -#: execute_cmd.c:4857 +#: execute_cmd.c:4976 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" @@ -880,28 +906,28 @@ msgstr "" msgid "missing `)'" msgstr "" -#: expr.c:897 expr.c:1175 +#: expr.c:897 expr.c:1176 msgid "syntax error: operand expected" msgstr "" -#: expr.c:1177 +#: expr.c:1178 msgid "syntax error: invalid arithmetic operator" msgstr "" -#: expr.c:1201 +#: expr.c:1202 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1259 +#: expr.c:1260 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1279 +#: expr.c:1280 msgid "value too great for base" msgstr "" -#: expr.c:1328 +#: expr.c:1329 #, c-format msgid "%s: expression error\n" msgstr "" @@ -910,7 +936,7 @@ msgstr "" msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:94 subst.c:4559 +#: input.c:94 subst.c:4857 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "" @@ -963,7 +989,7 @@ msgstr "" msgid "Done" msgstr "" -#: jobs.c:1435 siglist.c:122 +#: jobs.c:1435 siglist.c:123 msgid "Stopped" msgstr "" @@ -1000,69 +1026,73 @@ msgstr "" msgid " (wd: %s)" msgstr "" -#: jobs.c:1771 +#: jobs.c:1776 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "" -#: jobs.c:2099 nojobs.c:585 +#: jobs.c:2104 nojobs.c:585 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2326 +#: jobs.c:2331 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2598 +#: jobs.c:2607 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2820 +#: jobs.c:2829 #, c-format msgid "%s: job has terminated" msgstr "" -#: jobs.c:2829 +#: jobs.c:2838 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3492 +#: jobs.c:3059 +msgid "waitchld: turning on WNOHANG to avoid indefinite block" +msgstr "" + +#: jobs.c:3508 #, fuzzy, c-format msgid "%s: line %d: " msgstr "%s:警告:" -#: jobs.c:3506 nojobs.c:814 +#: jobs.c:3522 nojobs.c:814 #, c-format msgid " (core dumped)" msgstr "" -#: jobs.c:3518 jobs.c:3531 +#: jobs.c:3534 jobs.c:3547 #, c-format msgid "(wd now: %s)\n" msgstr "" -#: jobs.c:3563 +#: jobs.c:3579 msgid "initialize_job_control: getpgrp failed" msgstr "" -#: jobs.c:3623 +#: jobs.c:3639 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:3633 +#: jobs.c:3649 msgid "initialize_job_control: setpgid" msgstr "" -#: jobs.c:3661 +#: jobs.c:3677 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:3666 +#: jobs.c:3682 msgid "no job control in this shell" msgstr "" @@ -1153,6 +1183,26 @@ msgstr "%s:壞的網路路徑規格" msgid "network operations not supported" msgstr "不支持網路操作" +#: locale.c:192 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s)" +msgstr "" + +#: locale.c:194 +#, c-format +msgid "setlocale: LC_ALL: cannot change locale (%s): %s" +msgstr "" + +#: locale.c:247 +#, c-format +msgid "setlocale: %s: cannot change locale (%s)" +msgstr "" + +#: locale.c:249 +#, c-format +msgid "setlocale: %s: cannot change locale (%s): %s" +msgstr "" + #: mailcheck.c:433 msgid "You have mail in $_" msgstr "您有郵件在 $_" @@ -1166,131 +1216,131 @@ msgstr "您有新郵件在 $_" msgid "The mail in %s has been read\n" msgstr "郵件在 %s 已閱讀\n" -#: make_cmd.c:322 +#: make_cmd.c:323 msgid "syntax error: arithmetic expression required" msgstr "語法錯誤:必須算術表達" -#: make_cmd.c:324 +#: make_cmd.c:325 msgid "syntax error: `;' unexpected" msgstr "語法錯誤: `;' 意外" -#: make_cmd.c:325 +#: make_cmd.c:326 #, c-format msgid "syntax error: `((%s))'" msgstr "語法錯誤: `((%s))'" -#: make_cmd.c:567 +#: make_cmd.c:575 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document:壞的指示類型 %d" -#: make_cmd.c:651 +#: make_cmd.c:659 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:746 +#: make_cmd.c:756 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection:重新導向指示 `%d' 超出範圍" -#: parse.y:2986 parse.y:3218 +#: parse.y:3133 parse.y:3369 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3722 +#: parse.y:3951 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3727 +#: parse.y:3956 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3731 +#: parse.y:3960 msgid "syntax error in conditional expression" msgstr "語法錯誤,在有條件的表達" -#: parse.y:3809 +#: parse.y:4038 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3813 +#: parse.y:4042 msgid "expected `)'" msgstr "預期 `)'" -#: parse.y:3841 +#: parse.y:4070 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3845 +#: parse.y:4074 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3885 +#: parse.y:4120 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3889 +#: parse.y:4124 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3906 +#: parse.y:4146 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3910 +#: parse.y:4150 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3921 +#: parse.y:4161 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3924 +#: parse.y:4164 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3928 +#: parse.y:4168 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:5195 +#: parse.y:5459 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:5213 +#: parse.y:5477 #, c-format msgid "syntax error near `%s'" msgstr "" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error: unexpected end of file" msgstr "" -#: parse.y:5223 +#: parse.y:5487 msgid "syntax error" msgstr "語法錯誤" -#: parse.y:5285 +#: parse.y:5549 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "" -#: parse.y:5447 +#: parse.y:5711 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1018 +#: pcomplete.c:1030 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1300,71 +1350,90 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:285 +#: print_cmd.c:290 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1348 +#: print_cmd.c:363 +#, c-format +msgid "xtrace_set: %d: invalid file descriptor" +msgstr "" + +#: print_cmd.c:368 +msgid "xtrace_set: NULL file pointer" +msgstr "" + +#: print_cmd.c:372 +#, c-format +msgid "xtrace fd (%d) != fileno xtrace fp (%d)" +msgstr "" + +#: print_cmd.c:1461 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:105 +#: redir.c:110 msgid "file descriptor out of range" msgstr "" -#: redir.c:148 +#: redir.c:166 #, c-format msgid "%s: ambiguous redirect" msgstr "" -#: redir.c:152 +#: redir.c:170 #, c-format msgid "%s: cannot overwrite existing file" msgstr "" -#: redir.c:157 +#: redir.c:175 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "" -#: redir.c:162 +#: redir.c:180 #, c-format msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:517 +#: redir.c:184 +#, fuzzy, c-format +msgid "%s: cannot assign fd to variable" +msgstr "%s:只讀變數" + +#: redir.c:544 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:1023 +#: redir.c:1101 msgid "redirection error: cannot duplicate fd" msgstr "" -#: shell.c:328 +#: shell.c:332 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:332 +#: shell.c:336 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:876 +#: shell.c:884 #, c-format msgid "%c%c: invalid option" msgstr "%c%c:無效選項" -#: shell.c:1638 +#: shell.c:1651 msgid "I have no name!" msgstr "我沒有名字!" -#: shell.c:1778 +#: shell.c:1793 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "" -#: shell.c:1779 +#: shell.c:1794 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1373,381 +1442,402 @@ msgstr "" "用法:\t%s [GNU 長選項] [選項] ...\n" "\t%s [GNU 長選項] [選項] script-file ...\n" -#: shell.c:1781 +#: shell.c:1796 msgid "GNU long options:\n" msgstr "GNU 長選項:\n" -#: shell.c:1785 +#: shell.c:1800 msgid "Shell options:\n" msgstr "Shell 選項:\n" -#: shell.c:1786 +#: shell.c:1801 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD 或 -c 命令或 -O shopt_option\t\t(只有引用)\n" -#: shell.c:1801 +#: shell.c:1816 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s or -o 選項\n" -#: shell.c:1807 +#: shell.c:1822 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "輸入 `%s -c \"help set\"' 更多訊息關於 shell 選項。\n" -#: shell.c:1808 +#: shell.c:1823 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "輸入 `%s -c help' 更多訊息關於內建 shell 命令。\n" -#: shell.c:1809 +#: shell.c:1824 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "使用 `bashbug' 命令報告臭蟲。\n" -#: sig.c:583 +#: sig.c:626 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d:無效操作" -#: siglist.c:47 +#: siglist.c:48 msgid "Bogus signal" msgstr "" -#: siglist.c:50 +#: siglist.c:51 msgid "Hangup" msgstr "" -#: siglist.c:54 +#: siglist.c:55 msgid "Interrupt" msgstr "" -#: siglist.c:58 +#: siglist.c:59 msgid "Quit" msgstr "" -#: siglist.c:62 +#: siglist.c:63 msgid "Illegal instruction" msgstr "" -#: siglist.c:66 +#: siglist.c:67 msgid "BPT trace/trap" msgstr "" -#: siglist.c:74 +#: siglist.c:75 msgid "ABORT instruction" msgstr "" -#: siglist.c:78 +#: siglist.c:79 msgid "EMT instruction" msgstr "" -#: siglist.c:82 +#: siglist.c:83 msgid "Floating point exception" msgstr "" -#: siglist.c:86 +#: siglist.c:87 msgid "Killed" msgstr "" -#: siglist.c:90 +#: siglist.c:91 #, fuzzy msgid "Bus error" msgstr "語法錯誤" -#: siglist.c:94 +#: siglist.c:95 msgid "Segmentation fault" msgstr "" -#: siglist.c:98 +#: siglist.c:99 msgid "Bad system call" msgstr "" -#: siglist.c:102 +#: siglist.c:103 msgid "Broken pipe" msgstr "" -#: siglist.c:106 +#: siglist.c:107 msgid "Alarm clock" msgstr "" -#: siglist.c:110 +#: siglist.c:111 #, fuzzy msgid "Terminated" msgstr "有限的" -#: siglist.c:114 +#: siglist.c:115 msgid "Urgent IO condition" msgstr "" -#: siglist.c:118 +#: siglist.c:119 msgid "Stopped (signal)" msgstr "" -#: siglist.c:126 +#: siglist.c:127 msgid "Continue" msgstr "" -#: siglist.c:134 +#: siglist.c:135 msgid "Child death or stop" msgstr "" -#: siglist.c:138 +#: siglist.c:139 msgid "Stopped (tty input)" msgstr "" -#: siglist.c:142 +#: siglist.c:143 msgid "Stopped (tty output)" msgstr "" -#: siglist.c:146 +#: siglist.c:147 msgid "I/O ready" msgstr "" -#: siglist.c:150 +#: siglist.c:151 msgid "CPU limit" msgstr "" -#: siglist.c:154 +#: siglist.c:155 msgid "File limit" msgstr "" -#: siglist.c:158 +#: siglist.c:159 msgid "Alarm (virtual)" msgstr "" -#: siglist.c:162 +#: siglist.c:163 msgid "Alarm (profile)" msgstr "" -#: siglist.c:166 +#: siglist.c:167 msgid "Window changed" msgstr "" -#: siglist.c:170 +#: siglist.c:171 msgid "Record lock" msgstr "" -#: siglist.c:174 +#: siglist.c:175 msgid "User signal 1" msgstr "" -#: siglist.c:178 +#: siglist.c:179 msgid "User signal 2" msgstr "" -#: siglist.c:182 +#: siglist.c:183 msgid "HFT input data pending" msgstr "" -#: siglist.c:186 +#: siglist.c:187 msgid "power failure imminent" msgstr "" -#: siglist.c:190 +#: siglist.c:191 msgid "system crash imminent" msgstr "" -#: siglist.c:194 +#: siglist.c:195 msgid "migrate process to another CPU" msgstr "" -#: siglist.c:198 +#: siglist.c:199 msgid "programming error" msgstr "" -#: siglist.c:202 +#: siglist.c:203 msgid "HFT monitor mode granted" msgstr "" -#: siglist.c:206 +#: siglist.c:207 msgid "HFT monitor mode retracted" msgstr "" -#: siglist.c:210 +#: siglist.c:211 msgid "HFT sound sequence has completed" msgstr "" -#: siglist.c:214 +#: siglist.c:215 msgid "Information request" msgstr "" -#: siglist.c:222 +#: siglist.c:223 msgid "Unknown Signal #" msgstr "" -#: siglist.c:224 +#: siglist.c:225 #, c-format msgid "Unknown Signal #%d" msgstr "" -#: subst.c:1181 subst.c:1302 +#: subst.c:1333 subst.c:1454 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2458 +#: subst.c:2735 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4456 subst.c:4472 +#: subst.c:4754 subst.c:4770 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4504 +#: subst.c:4802 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4549 +#: subst.c:4847 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:4551 +#: subst.c:4849 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:4569 +#: subst.c:4867 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4765 +#: subst.c:5063 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4799 +#: subst.c:5097 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4816 +#: subst.c:5114 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5318 +#: subst.c:5617 #, c-format msgid "%s: parameter null or not set" msgstr "" -#: subst.c:5608 +#: subst.c:5907 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6660 +#: subst.c:6965 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6740 +#: subst.c:7045 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7499 +#: subst.c:7374 +msgid "" +"future versions of the shell will force evaluation as an arithmetic " +"substitution" +msgstr "" + +#: subst.c:7839 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "" -#: subst.c:8375 +#: subst.c:8720 #, c-format msgid "no match: %s" msgstr "" -#: test.c:145 +#: test.c:146 msgid "argument expected" msgstr "" -#: test.c:154 +#: test.c:155 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:262 +#: test.c:263 msgid "`)' expected" msgstr "" -#: test.c:264 +#: test.c:265 #, c-format msgid "`)' expected, found %s" msgstr "" -#: test.c:279 test.c:688 test.c:691 +#: test.c:280 test.c:693 test.c:696 #, c-format msgid "%s: unary operator expected" msgstr "" -#: test.c:444 test.c:731 +#: test.c:449 test.c:736 #, c-format msgid "%s: binary operator expected" msgstr "" -#: test.c:806 +#: test.c:811 msgid "missing `]'" msgstr "" -#: trap.c:201 +#: trap.c:203 msgid "invalid signal number" msgstr "無效信號數" -#: trap.c:324 +#: trap.c:327 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:328 +#: trap.c:331 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "run_pending_traps: 信號處理是 SIG_DFL, resending %d (%s) to myself" -#: trap.c:372 +#: trap.c:380 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler:壞的信號 %d" -#: variables.c:358 +#: variables.c:363 #, c-format msgid "error importing function definition for `%s'" msgstr "錯誤,輸入的函數定義為 `%s'" -#: variables.c:736 +#: variables.c:748 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1898 +#: variables.c:1915 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:3127 +#: variables.c:3159 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3344 variables.c:3353 +#: variables.c:3376 +#, c-format +msgid "%s has null exportstr" +msgstr "" + +#: variables.c:3381 variables.c:3390 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3359 +#: variables.c:3396 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3794 +#: variables.c:3835 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3807 +#: variables.c:3848 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3881 +#: variables.c:3922 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" +#: variables.c:4678 +#, fuzzy, c-format +msgid "%s: %s: cannot open as FILE" +msgstr "%s:不能讀取: %s" + +#: variables.c:4683 +#, c-format +msgid "%s: %s: invalid value for trace file descriptor" +msgstr "" + #: version.c:46 msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" @@ -1758,59 +1848,51 @@ msgid "" "html>\n" msgstr "" -#: version.c:86 +#: version.c:86 version2.c:83 #, c-format msgid "GNU bash, version %s (%s)\n" msgstr "" -#: version.c:91 +#: version.c:91 version2.c:88 #, c-format msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: version.c:92 +#: version.c:92 version2.c:89 #, c-format msgid "There is NO WARRANTY, to the extent permitted by law.\n" msgstr "" -#: xmalloc.c:92 +#: version2.c:86 #, c-format -msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" msgstr "" -#: xmalloc.c:94 +#: version2.c:87 #, c-format -msgid "xmalloc: cannot allocate %lu bytes" -msgstr "" - -#: xmalloc.c:114 -#, c-format -msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -msgstr "" - -#: xmalloc.c:116 -#, c-format -msgid "xrealloc: cannot allocate %lu bytes" +msgid "" +"License GPLv2+: GNU GPL version 2 or later \n" msgstr "" -#: xmalloc.c:150 +#: xmalloc.c:91 #, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:152 -#, c-format -msgid "xmalloc: %s:%d: cannot allocate %lu bytes" -msgstr "" +#: xmalloc.c:93 +#, fuzzy, c-format +msgid "%s: cannot allocate %lu bytes" +msgstr "%s:不能讀取: %s" -#: xmalloc.c:174 +#: xmalloc.c:163 #, c-format -msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:176 +#: xmalloc.c:165 #, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "" #: builtins.c:43 @@ -1928,7 +2010,7 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "" #: builtins.c:117 -msgid "help [-ds] [pattern ...]" +msgid "help [-dms] [pattern ...]" msgstr "" #: builtins.c:121 @@ -1957,8 +2039,8 @@ msgstr "" #: builtins.c:136 msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " -"timeout] [-u fd] [name ...]" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " +"prompt] [-t timeout] [-u fd] [name ...]" msgstr "" #: builtins.c:138 @@ -2118,9 +2200,9 @@ msgstr "" #: builtins.c:229 msgid "" -"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " -"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " -"[name ...]" +"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" +"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " +"suffix] [name ...]" msgstr "" #: builtins.c:233 @@ -2130,7 +2212,7 @@ msgid "" msgstr "" #: builtins.c:237 -msgid "compopt [-o|+o option] [name ...]" +msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "" #: builtins.c:240 @@ -2857,7 +2939,11 @@ msgid "" " -e\t\tuse Readline to obtain the line in an interactive shell\n" " -i text\tUse TEXT as the initial text for Readline\n" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" -" \t\tfor a newline\n" +" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n" +" \t\tcharacters are read before the delimiter\n" +" -N nchars\treturn only after reading exactly NCHARS characters, " +"unless\n" +" \t\tEOF is encountered or read times out, ignoring any delimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" " \t\tattempting to read\n" " -r\t\tdo not allow backslashes to escape any characters\n" @@ -2877,7 +2963,7 @@ msgid "" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1006 +#: builtins.c:1009 msgid "" "Return from a shell function.\n" " \n" @@ -2889,7 +2975,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1019 +#: builtins.c:1022 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -2971,7 +3057,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1101 +#: builtins.c:1104 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -2991,7 +3077,7 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1121 +#: builtins.c:1124 msgid "" "Set export attribute for shell variables.\n" " \n" @@ -3010,7 +3096,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1140 +#: builtins.c:1143 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3030,7 +3116,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" "Shift positional parameters.\n" " \n" @@ -3041,7 +3127,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1173 builtins.c:1188 +#: builtins.c:1176 builtins.c:1191 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3055,7 +3141,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1204 +#: builtins.c:1207 msgid "" "Suspend shell execution.\n" " \n" @@ -3069,7 +3155,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1220 +#: builtins.c:1223 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3146,7 +3232,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1296 +#: builtins.c:1299 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3154,7 +3240,7 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1305 +#: builtins.c:1308 msgid "" "Display process times.\n" " \n" @@ -3166,7 +3252,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:1317 +#: builtins.c:1320 msgid "" "Trap signals and other events.\n" " \n" @@ -3202,7 +3288,7 @@ msgid "" "given." msgstr "" -#: builtins.c:1349 +#: builtins.c:1352 msgid "" "Display information about command type.\n" " \n" @@ -3232,7 +3318,7 @@ msgid "" "found." msgstr "" -#: builtins.c:1380 +#: builtins.c:1383 msgid "" "Modify shell resource limits.\n" " \n" @@ -3276,7 +3362,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1425 +#: builtins.c:1428 msgid "" "Display or set file mode mask.\n" " \n" @@ -3294,7 +3380,7 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1445 +#: builtins.c:1448 msgid "" "Wait for job completion and return exit status.\n" " \n" @@ -3311,7 +3397,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1463 +#: builtins.c:1466 msgid "" "Wait for process completion and return exit status.\n" " \n" @@ -3325,7 +3411,7 @@ msgid "" " given." msgstr "" -#: builtins.c:1478 +#: builtins.c:1481 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3338,7 +3424,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1492 +#: builtins.c:1495 msgid "" "Arithmetic for loop.\n" " \n" @@ -3355,7 +3441,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1510 +#: builtins.c:1513 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3375,7 +3461,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1531 +#: builtins.c:1534 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3391,7 +3477,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1548 +#: builtins.c:1551 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3402,7 +3488,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1560 +#: builtins.c:1563 msgid "" "Execute commands based on conditional.\n" " \n" @@ -3423,7 +3509,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1577 +#: builtins.c:1580 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3434,7 +3520,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1589 +#: builtins.c:1592 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3445,7 +3531,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1601 +#: builtins.c:1604 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3458,7 +3544,7 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1615 +#: builtins.c:1618 msgid "" "Define shell function.\n" " \n" @@ -3472,7 +3558,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1629 +#: builtins.c:1632 msgid "" "Group commands as a unit.\n" " \n" @@ -3483,7 +3569,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1644 msgid "" "Resume job in foreground.\n" " \n" @@ -3497,7 +3583,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1656 +#: builtins.c:1659 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3508,7 +3594,7 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1668 +#: builtins.c:1671 msgid "" "Execute conditional command.\n" " \n" @@ -3536,7 +3622,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1694 +#: builtins.c:1697 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3590,7 +3676,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1751 +#: builtins.c:1754 msgid "" "Add directories to stack.\n" " \n" @@ -3621,7 +3707,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1785 +#: builtins.c:1788 msgid "" "Remove directories from stack.\n" " \n" @@ -3648,7 +3734,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1815 +#: builtins.c:1818 msgid "" "Display directory stack.\n" " \n" @@ -3677,7 +3763,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1844 +#: builtins.c:1847 msgid "" "Set and unset shell options.\n" " \n" @@ -3698,7 +3784,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1865 +#: builtins.c:1868 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -3728,7 +3814,7 @@ msgid "" " error occurs." msgstr "" -#: builtins.c:1892 +#: builtins.c:1895 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" @@ -3742,15 +3828,20 @@ msgid "" " -p\tprint existing completion specifications in a reusable format\n" " -r\tremove a completion specification for each NAME, or, if no\n" " \tNAMEs are supplied, all completion specifications\n" +" -D\tapply the completions and actions as the default for commands\n" +" \twithout any specific completion defined\n" +" -E\tapply the completions and actions to \"empty\" commands --\n" +" \tcompletion attempted on a blank line\n" " \n" " When completion is attempted, the actions are applied in the order the\n" -" uppercase-letter options are listed above.\n" +" uppercase-letter options are listed above. The -D option takes\n" +" precedence over -E.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1915 +#: builtins.c:1923 msgid "" "Display possible completions depending on the options.\n" " \n" @@ -3763,7 +3854,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1930 +#: builtins.c:1938 msgid "" "Modify or display completion options.\n" " \n" @@ -3776,6 +3867,8 @@ msgid "" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" +" \t-D\t\tChange options for the \"default\" command completion\n" +" \t-E\t\tChange options for the \"empty\" command completion\n" " \n" " Using `+o' instead of `-o' turns off the specified option.\n" " \n" @@ -3792,15 +3885,15 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:1958 +#: builtins.c:1968 msgid "" -"Read lines from the standard input into an array variable.\n" +"Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the array variable ARRAY, or " -"from\n" -" file descriptor FD if the -u option is supplied. The variable MAPFILE " -"is\n" -" the default ARRAY.\n" +" Read lines from the standard input into the indexed array variable " +"ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable " +"MAPFILE\n" +" is the default ARRAY.\n" " \n" " Options:\n" " -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " @@ -3827,10 +3920,12 @@ msgid "" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly." +" Returns success unless an invalid option is given or ARRAY is readonly " +"or\n" +" not an indexed array." msgstr "" -#: builtins.c:1990 +#: builtins.c:2001 msgid "" "Read lines from a file into an array variable.\n" " \n" diff --git a/print_cmd.c b/print_cmd.c index 285d8ff..9a41dcb 100644 --- a/print_cmd.c +++ b/print_cmd.c @@ -108,6 +108,11 @@ char *the_printed_command = (char *)NULL; int the_printed_command_size = 0; int command_string_index = 0; +int xtrace_fd = -1; +FILE *xtrace_fp = 0; + +#define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr) + /* Non-zero means the stuff being printed is inside of a function def. */ static int inside_function_def; static int skip_this_indent; @@ -348,6 +353,57 @@ print_word_list (list, separator) _print_word_list (list, separator, xprintf); } +void +xtrace_set (fd, fp) + int fd; + FILE *fp; +{ + if (fd >= 0 && sh_validfd (fd) == 0) + { + internal_error (_("xtrace_set: %d: invalid file descriptor"), fd); + return; + } + if (fp == 0) + { + internal_error (_("xtrace_set: NULL file pointer")); + return; + } + if (fd >= 0 && fileno (fp) != fd) + internal_warning (_("xtrace fd (%d) != fileno xtrace fp (%d)"), fd, fileno (fp)); + + xtrace_fd = fd; + xtrace_fp = fp; +} + +void +xtrace_init () +{ + xtrace_set (-1, stderr); +} + +void +xtrace_reset () +{ + if (xtrace_fd >= 0 && xtrace_fp) + { + fflush (xtrace_fp); + fclose (xtrace_fp); + } + else if (xtrace_fd >= 0) + close (xtrace_fd); + + xtrace_fd = -1; + xtrace_fp = stderr; +} + +void +xtrace_fdchk (fd) + int fd; +{ + if (fd == xtrace_fd) + xtrace_reset (); +} + /* Return a string denoting what our indirection level is. */ char * @@ -409,8 +465,10 @@ xtrace_print_assignment (name, value, assign_list, xflags) { char *nval; + CHECK_XTRACE_FP; + if (xflags) - fprintf (stderr, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "%s", indirection_level_string ()); /* VALUE should not be NULL when this is called. */ if (*value == '\0' || assign_list) @@ -423,14 +481,14 @@ xtrace_print_assignment (name, value, assign_list, xflags) nval = value; if (assign_list) - fprintf (stderr, "%s=(%s)\n", name, nval); + fprintf (xtrace_fp, "%s=(%s)\n", name, nval); else - fprintf (stderr, "%s=%s\n", name, nval); + fprintf (xtrace_fp, "%s=%s\n", name, nval); if (nval != value) FREE (nval); - fflush (stderr); + fflush (xtrace_fp); } /* A function to print the words of a simple command when set -x is on. */ @@ -442,30 +500,33 @@ xtrace_print_word_list (list, xtflags) WORD_LIST *w; char *t, *x; + CHECK_XTRACE_FP; + if (xtflags) - fprintf (stderr, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "%s", indirection_level_string ()); for (w = list; w; w = w->next) { t = w->word->word; if (t == 0 || *t == '\0') - fprintf (stderr, "''%s", w->next ? " " : ""); + fprintf (xtrace_fp, "''%s", w->next ? " " : ""); else if (sh_contains_shell_metas (t)) { x = sh_single_quote (t); - fprintf (stderr, "%s%s", x, w->next ? " " : ""); + fprintf (xtrace_fp, "%s%s", x, w->next ? " " : ""); free (x); } else if (ansic_shouldquote (t)) { x = ansic_quote (t, 0, (int *)0); - fprintf (stderr, "%s%s", x, w->next ? " " : ""); + fprintf (xtrace_fp, "%s%s", x, w->next ? " " : ""); free (x); } else - fprintf (stderr, "%s%s", t, w->next ? " " : ""); + fprintf (xtrace_fp, "%s%s", t, w->next ? " " : ""); } - fprintf (stderr, "\n"); + fprintf (xtrace_fp, "\n"); + fflush (xtrace_fp); } static void @@ -488,8 +549,9 @@ void xtrace_print_for_command_head (for_command) FOR_COM *for_command; { - fprintf (stderr, "%s", indirection_level_string ()); - fprintf (stderr, "for %s in ", for_command->name->word); + CHECK_XTRACE_FP; + fprintf (xtrace_fp, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "for %s in ", for_command->name->word); xtrace_print_word_list (for_command->map_list, 0); } @@ -542,8 +604,9 @@ void xtrace_print_select_command_head (select_command) SELECT_COM *select_command; { - fprintf (stderr, "%s", indirection_level_string ()); - fprintf (stderr, "select %s in ", select_command->name->word); + CHECK_XTRACE_FP; + fprintf (xtrace_fp, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "select %s in ", select_command->name->word); xtrace_print_word_list (select_command->map_list, 0); } @@ -611,8 +674,9 @@ void xtrace_print_case_command_head (case_command) CASE_COM *case_command; { - fprintf (stderr, "%s", indirection_level_string ()); - fprintf (stderr, "case %s in\n", case_command->word->word); + CHECK_XTRACE_FP; + fprintf (xtrace_fp, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "case %s in\n", case_command->word->word); } static void @@ -790,25 +854,28 @@ xtrace_print_cond_term (type, invert, op, arg1, arg2) WORD_DESC *op; char *arg1, *arg2; { + CHECK_XTRACE_FP; command_string_index = 0; - fprintf (stderr, "%s", indirection_level_string ()); - fprintf (stderr, "[[ "); + fprintf (xtrace_fp, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "[[ "); if (invert) - fprintf (stderr, "! "); + fprintf (xtrace_fp, "! "); if (type == COND_UNARY) { - fprintf (stderr, "%s ", op->word); - fprintf (stderr, "%s", (arg1 && *arg1) ? arg1 : "''"); + fprintf (xtrace_fp, "%s ", op->word); + fprintf (xtrace_fp, "%s", (arg1 && *arg1) ? arg1 : "''"); } else if (type == COND_BINARY) { - fprintf (stderr, "%s", (arg1 && *arg1) ? arg1 : "''"); - fprintf (stderr, " %s ", op->word); - fprintf (stderr, "%s", (arg2 && *arg2) ? arg2 : "''"); + fprintf (xtrace_fp, "%s", (arg1 && *arg1) ? arg1 : "''"); + fprintf (xtrace_fp, " %s ", op->word); + fprintf (xtrace_fp, "%s", (arg2 && *arg2) ? arg2 : "''"); } - fprintf (stderr, " ]]\n"); + fprintf (xtrace_fp, " ]]\n"); + + fflush (xtrace_fp); } #endif /* COND_COMMAND */ @@ -820,11 +887,14 @@ xtrace_print_arith_cmd (list) { WORD_LIST *w; - fprintf (stderr, "%s", indirection_level_string ()); - fprintf (stderr, "(( "); + CHECK_XTRACE_FP; + fprintf (xtrace_fp, "%s", indirection_level_string ()); + fprintf (xtrace_fp, "(( "); for (w = list; w; w = w->next) - fprintf (stderr, "%s%s", w->word->word, w->next ? " " : ""); - fprintf (stderr, " ))\n"); + fprintf (xtrace_fp, "%s%s", w->word->word, w->next ? " " : ""); + fprintf (xtrace_fp, " ))\n"); + + fflush (xtrace_fp); } #endif @@ -918,7 +988,7 @@ print_redirection_list (redirects) else hdtail = heredocs = newredir; } - else if (redirects->instruction == r_duplicating_output_word && redirects->redirector == 1) + else if (redirects->instruction == r_duplicating_output_word && redirects->redirector.dest == 1) { /* Temporarily translate it as the execution code does. */ redirects->instruction = r_err_and_out; @@ -954,8 +1024,10 @@ print_heredoc_header (redirect) kill_leading = redirect->instruction == r_deblank_reading_until; /* Here doc header */ - if (redirect->redirector != 0) - cprintf ("%d", redirect->redirector); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redirect->redirector.filename->word); + else if (redirect->redirector.dest != 0) + cprintf ("%d", redirect->redirector.dest); /* If the here document delimiter is quoted, single-quote it. */ if (redirect->redirectee.filename->flags & W_QUOTED) @@ -981,37 +1053,61 @@ print_redirection (redirect) REDIRECT *redirect; { int kill_leading, redirector, redir_fd; - WORD_DESC *redirectee; + WORD_DESC *redirectee, *redir_word; kill_leading = 0; redirectee = redirect->redirectee.filename; - redirector = redirect->redirector; redir_fd = redirect->redirectee.dest; + redir_word = redirect->redirector.filename; + redirector = redirect->redirector.dest; + switch (redirect->instruction) { - case r_output_direction: - if (redirector != 1) + case r_input_direction: + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redir_word->word); + else if (redirector != 0) cprintf ("%d", redirector); - cprintf ("> %s", redirectee->word); + cprintf ("< %s", redirectee->word); break; - case r_input_direction: - if (redirector != 0) + case r_output_direction: + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redir_word->word); + else if (redirector != 1) cprintf ("%d", redirector); - cprintf ("< %s", redirectee->word); + cprintf ("> %s", redirectee->word); break; case r_inputa_direction: /* Redirection created by the shell. */ cprintf ("&"); break; + case r_output_force: + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redir_word->word); + else if (redirector != 1) + cprintf ("%d", redirector); + cprintf (">|%s", redirectee->word); + break; + case r_appending_to: - if (redirector != 1) + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redir_word->word); + else if (redirector != 1) cprintf ("%d", redirector); cprintf (">> %s", redirectee->word); break; + case r_input_output: + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redir_word->word); + else if (redirector != 1) + cprintf ("%d", redirector); + cprintf ("<> %s", redirectee->word); + break; + case r_deblank_reading_until: case r_reading_until: print_heredoc_header (redirect); @@ -1020,7 +1116,9 @@ print_redirection (redirect) break; case r_reading_string: - if (redirector != 0) + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}", redir_word->word); + else if (redirector != 0) cprintf ("%d", redirector); if (ansic_shouldquote (redirect->redirectee.filename->word)) { @@ -1034,39 +1132,66 @@ print_redirection (redirect) break; case r_duplicating_input: - cprintf ("%d<&%d", redirector, redir_fd); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}<&%d", redir_word->word, redir_fd); + else + cprintf ("%d<&%d", redirector, redir_fd); break; case r_duplicating_output: - cprintf ("%d>&%d", redirector, redir_fd); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}>&%d", redir_word->word, redir_fd); + else + cprintf ("%d>&%d", redirector, redir_fd); break; case r_duplicating_input_word: - cprintf ("%d<&%s", redirector, redirectee->word); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}<&%s", redir_word->word, redirectee->word); + else + cprintf ("%d<&%s", redirector, redirectee->word); break; case r_duplicating_output_word: - cprintf ("%d>&%s", redirector, redirectee->word); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}>&%s", redir_word->word, redirectee->word); + else + cprintf ("%d>&%s", redirector, redirectee->word); break; case r_move_input: - cprintf ("%d<&%d-", redirector, redir_fd); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}<&%d-", redir_word->word, redir_fd); + else + cprintf ("%d<&%d-", redirector, redir_fd); break; case r_move_output: - cprintf ("%d>&%d-", redirector, redir_fd); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}>&%d-", redir_word->word, redir_fd); + else + cprintf ("%d>&%d-", redirector, redir_fd); break; case r_move_input_word: - cprintf ("%d<&%s-", redirector, redirectee->word); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}<&%s-", redir_word->word, redirectee->word); + else + cprintf ("%d<&%s-", redirector, redirectee->word); break; case r_move_output_word: - cprintf ("%d>&%s-", redirector, redirectee->word); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}>&%s-", redir_word->word, redirectee->word); + else + cprintf ("%d>&%s-", redirector, redirectee->word); break; case r_close_this: - cprintf ("%d>&-", redirector); + if (redirect->rflags & REDIR_VARASSIGN) + cprintf ("{%s}>&-", redir_word->word); + else + cprintf ("%d>&-", redirector); break; case r_err_and_out: @@ -1076,18 +1201,6 @@ print_redirection (redirect) case r_append_err_and_out: cprintf ("&>>%s", redirectee->word); break; - - case r_input_output: - if (redirector != 1) - cprintf ("%d", redirector); - cprintf ("<> %s", redirectee->word); - break; - - case r_output_force: - if (redirector != 1) - cprintf ("%d", redirector); - cprintf (">|%s", redirectee->word); - break; } } @@ -1269,7 +1382,7 @@ semicolon () { if (command_string_index > 0 && (the_printed_command[command_string_index - 1] == '&' || - the_printed_command[command_string_index - 1] == '\n')) + the_printed_command[command_string_index - 1] == '\n')) return; cprintf (";"); } @@ -1334,7 +1447,7 @@ cprintf (control, va_alist) argp = intbuf; } else - argp = inttostr (digit_arg, intbuf, sizeof (intbuf)); + argp = inttostr (digit_arg, intbuf, sizeof (intbuf)); arg_len = strlen (argp); break; diff --git a/redir.c b/redir.c index 1828917..c7a69f7 100644 --- a/redir.c +++ b/redir.c @@ -82,6 +82,9 @@ static int redir_special_open __P((int, char *, int, int, enum r_instruction)); static int noclobber_open __P((char *, int, int, enum r_instruction)); static int redir_open __P((char *, int, int, enum r_instruction)); +static int redir_varassign __P((REDIRECT *, int)); +static int redir_varvalue __P((REDIRECT *)); + /* Spare redirector used when translating [N]>&WORD[-] or [N]<&WORD[-] to a new redirection and when creating the redirection undo list. */ static REDIRECTEE rd; @@ -99,13 +102,15 @@ redirection_error (temp, error) int oflags; allocname = 0; - if (temp->redirector < 0) + if (temp->rflags & REDIR_VARASSIGN) + filename = savestring (temp->redirector.filename->word); + else if (temp->redirector.dest < 0) /* This can happen when read_token_word encounters overflow, like in exec 4294967297>x */ filename = _("file descriptor out of range"); #ifdef EBADF /* This error can never involve NOCLOBBER */ - else if (error != NOCLOBBER_REDIRECT && temp->redirector >= 0 && error == EBADF) + else if (error != NOCLOBBER_REDIRECT && temp->redirector.dest >= 0 && error == EBADF) { /* If we're dealing with two file descriptors, we have to guess about which one is invalid; in the cases of r_{duplicating,move}_input and @@ -118,14 +123,27 @@ redirection_error (temp, error) case r_move_output: filename = allocname = itos (temp->redirectee.dest); break; + case r_duplicating_input_word: + if (temp->redirector.dest == 0) /* Guess */ + filename = temp->redirectee.filename->word; /* XXX */ + else + filename = allocname = itos (temp->redirector.dest); + break; + case r_duplicating_output_word: + if (temp->redirector.dest == 1) /* Guess */ + filename = temp->redirectee.filename->word; /* XXX */ + else + filename = allocname = itos (temp->redirector.dest); + break; default: - filename = allocname = itos (temp->redirector); + filename = allocname = itos (temp->redirector.dest); break; } } #endif else if (expandable_redirection_filename (temp)) { +expandable_filename: if (posixly_correct && interactive_shell == 0) { oflags = temp->redirectee.filename->flags; @@ -162,6 +180,10 @@ redirection_error (temp, error) internal_error (_("cannot create temp file for here-document: %s"), strerror (heredoc_errno)); break; + case BADVAR_REDIRECT: + internal_error (_("%s: cannot assign fd to variable"), filename); + break; + default: internal_error ("%s: %s", filename, strerror (error)); break; @@ -275,7 +297,9 @@ write_here_string (fd, redirectee) char *herestr; int herelen, n, e; + expanding_redir = 1; herestr = expand_string_to_string (redirectee->word, 0); + expanding_redir = 0; herelen = STRLEN (herestr); n = write (fd, herestr, herelen); @@ -327,7 +351,10 @@ write_here_document (fd, redirectee) return 0; } + expanding_redir = 1; tlist = expand_string (redirectee->word, Q_HERE_DOCUMENT); + expanding_redir = 0; + if (tlist) { /* Try using buffered I/O (stdio) and writing a word @@ -644,10 +671,11 @@ do_redirection_internal (redirect, flags) char *redirectee_word; enum r_instruction ri; REDIRECT *new_redirect; + REDIRECTEE sd; redirectee = redirect->redirectee.filename; redir_fd = redirect->redirectee.dest; - redirector = redirect->redirector; + redirector = redirect->redirector.dest; ri = redirect->instruction; if (redirect->flags & RX_INTERNAL) @@ -655,8 +683,9 @@ do_redirection_internal (redirect, flags) if (TRANSLATE_REDIRECT (ri)) { - /* We have [N]>&WORD[-] or [N]<&WORD[-]. Expand WORD, then translate - the redirection into a new one and continue. */ + /* We have [N]>&WORD[-] or [N]<&WORD[-] (or {V}>&WORD[-] or {V}<&WORD-). + and WORD, then translate the redirection into a new one and + continue. */ redirectee_word = redirection_expand (redirectee); /* XXX - what to do with [N]<&$w- where w is unset or null? ksh93 @@ -665,11 +694,13 @@ do_redirection_internal (redirect, flags) return (AMBIGUOUS_REDIRECT); else if (redirectee_word[0] == '-' && redirectee_word[1] == '\0') { + sd = redirect->redirector; rd.dest = 0; - new_redirect = make_redirection (redirector, r_close_this, rd); + new_redirect = make_redirection (sd, r_close_this, rd, 0); } else if (all_digits (redirectee_word)) { + sd = redirect->redirector; if (legal_number (redirectee_word, &lfd) && (int)lfd == lfd) rd.dest = lfd; else @@ -677,23 +708,24 @@ do_redirection_internal (redirect, flags) switch (ri) { case r_duplicating_input_word: - new_redirect = make_redirection (redirector, r_duplicating_input, rd); + new_redirect = make_redirection (sd, r_duplicating_input, rd, 0); break; case r_duplicating_output_word: - new_redirect = make_redirection (redirector, r_duplicating_output, rd); + new_redirect = make_redirection (sd, r_duplicating_output, rd, 0); break; case r_move_input_word: - new_redirect = make_redirection (redirector, r_move_input, rd); + new_redirect = make_redirection (sd, r_move_input, rd, 0); break; case r_move_output_word: - new_redirect = make_redirection (redirector, r_move_output, rd); + new_redirect = make_redirection (sd, r_move_output, rd, 0); break; } } - else if (ri == r_duplicating_output_word && redirector == 1) + else if (ri == r_duplicating_output_word && (redirect->rflags & REDIR_VARASSIGN) == 0 && redirector == 1) { + sd = redirect->redirector; rd.filename = make_bare_word (redirectee_word); - new_redirect = make_redirection (1, r_err_and_out, rd); + new_redirect = make_redirection (sd, r_err_and_out, rd, 0); } else { @@ -725,7 +757,7 @@ do_redirection_internal (redirect, flags) redirectee = new_redirect->redirectee.filename; redir_fd = new_redirect->redirectee.dest; - redirector = new_redirect->redirector; + redirector = new_redirect->redirector.dest; ri = new_redirect->instruction; /* Overwrite the flags element of the old redirect with the new value. */ @@ -774,6 +806,9 @@ do_redirection_internal (redirect, flags) if (flags & RX_ACTIVE) { + if (redirect->rflags & REDIR_VARASSIGN) + redirector = fcntl (fd, F_DUPFD, SHELL_FD_BASE); /* XXX try this for now */ + if (flags & RX_UNDOABLE) { /* Only setup to undo it if the thing to undo is active. */ @@ -801,7 +836,16 @@ do_redirection_internal (redirect, flags) fpurge (stderr); } - if ((fd != redirector) && (dup2 (fd, redirector) < 0)) + if (redirect->rflags & REDIR_VARASSIGN) + { + if ((r = redir_varassign (redirect, redirector)) < 0) + { + close (redirector); + close (fd); + return (r); /* XXX */ + } + } + else if ((fd != redirector) && (dup2 (fd, redirector) < 0)) return (errno); #if defined (BUFFERED_INPUT) @@ -837,7 +881,7 @@ do_redirection_internal (redirect, flags) } /* If we are hacking both stdout and stderr, do the stderr - redirection here. */ + redirection here. XXX - handle {var} here? */ if (ri == r_err_and_out || ri == r_append_err_and_out) { if (flags & RX_ACTIVE) @@ -865,6 +909,9 @@ do_redirection_internal (redirect, flags) return (HEREDOC_REDIRECT); } + if (redirect->rflags & REDIR_VARASSIGN) + redirector = fcntl (fd, F_DUPFD, SHELL_FD_BASE); /* XXX try this for now */ + if (flags & RX_ACTIVE) { if (flags & RX_UNDOABLE) @@ -879,7 +926,16 @@ do_redirection_internal (redirect, flags) #if defined (BUFFERED_INPUT) check_bash_input (redirector); #endif - if (fd != redirector && dup2 (fd, redirector) < 0) + if (redirect->rflags & REDIR_VARASSIGN) + { + if ((r = redir_varassign (redirect, redirector)) < 0) + { + close (redirector); + close (fd); + return (r); /* XXX */ + } + } + else if (fd != redirector && dup2 (fd, redirector) < 0) { r = errno; close (fd); @@ -907,6 +963,9 @@ do_redirection_internal (redirect, flags) case r_duplicating_output: case r_move_input: case r_move_output: + if ((flags & RX_ACTIVE) && (redirect->rflags & REDIR_VARASSIGN)) + redirector = fcntl (redir_fd, F_DUPFD, SHELL_FD_BASE); /* XXX try this for now */ + if ((flags & RX_ACTIVE) && (redir_fd != redirector)) { if (flags & RX_UNDOABLE) @@ -920,8 +979,16 @@ do_redirection_internal (redirect, flags) #if defined (BUFFERED_INPUT) check_bash_input (redirector); #endif + if (redirect->rflags & REDIR_VARASSIGN) + { + if ((r = redir_varassign (redirect, redirector)) < 0) + { + close (redirector); + return (r); /* XXX */ + } + } /* This is correct. 2>&1 means dup2 (1, 2); */ - if (dup2 (redir_fd, redirector) < 0) + else if (dup2 (redir_fd, redirector) < 0) return (errno); #if defined (BUFFERED_INPUT) @@ -959,6 +1026,8 @@ do_redirection_internal (redirect, flags) /* dup-and-close redirection */ if (ri == r_move_input || ri == r_move_output) { + xtrace_fdchk (redir_fd); + close (redir_fd); #if defined (COPROCESS_SUPPORT) coproc_fdchk (redir_fd); /* XXX - loses coproc fds */ @@ -970,12 +1039,20 @@ do_redirection_internal (redirect, flags) case r_close_this: if (flags & RX_ACTIVE) { + if (redirect->rflags & REDIR_VARASSIGN) + { + redirector = redir_varvalue (redirect); + if (redirector < 0) + return AMBIGUOUS_REDIRECT; + } + if ((flags & RX_UNDOABLE) && (fcntl (redirector, F_GETFD, 0) != -1)) add_undo_redirect (redirector, ri, -1); #if defined (COPROCESS_SUPPORT) coproc_fdchk (redirector); #endif + xtrace_fdchk (redirector); #if defined (BUFFERED_INPUT) check_bash_input (redirector); @@ -1013,6 +1090,7 @@ add_undo_redirect (fd, ri, fdbase) { int new_fd, clexec_flag; REDIRECT *new_redirect, *closer, *dummy_redirect; + REDIRECTEE sd; new_fd = fcntl (fd, F_DUPFD, (fdbase < SHELL_FD_BASE) ? SHELL_FD_BASE : fdbase+1); if (new_fd < 0) @@ -1026,16 +1104,18 @@ add_undo_redirect (fd, ri, fdbase) clexec_flag = fcntl (fd, F_GETFD, 0); + sd.dest = new_fd; rd.dest = 0; - closer = make_redirection (new_fd, r_close_this, rd); + closer = make_redirection (sd, r_close_this, rd, 0); closer->flags |= RX_INTERNAL; dummy_redirect = copy_redirects (closer); + sd.dest = fd; rd.dest = new_fd; if (fd == 0) - new_redirect = make_redirection (fd, r_duplicating_input, rd); + new_redirect = make_redirection (sd, r_duplicating_input, rd, 0); else - new_redirect = make_redirection (fd, r_duplicating_output, rd); + new_redirect = make_redirection (sd, r_duplicating_output, rd, 0); new_redirect->flags |= RX_INTERNAL; if (clexec_flag == 0 && fd >= 3 && new_fd >= SHELL_FD_BASE) new_redirect->flags |= RX_SAVCLEXEC; @@ -1058,8 +1138,9 @@ add_undo_redirect (fd, ri, fdbase) to save others. */ if (fd >= SHELL_FD_BASE && ri != r_close_this && clexec_flag) { + sd.dest = fd; rd.dest = new_fd; - new_redirect = make_redirection (fd, r_duplicating_output, rd); + new_redirect = make_redirection (sd, r_duplicating_output, rd, 0); new_redirect->flags |= RX_INTERNAL; add_exec_redirect (new_redirect); @@ -1088,9 +1169,11 @@ add_undo_close_redirect (fd) int fd; { REDIRECT *closer; + REDIRECTEE sd; + sd.dest = fd; rd.dest = 0; - closer = make_redirection (fd, r_close_this, rd); + closer = make_redirection (sd, r_close_this, rd, 0); closer->flags |= RX_INTERNAL; closer->next = redirection_undo_list; redirection_undo_list = closer; @@ -1146,6 +1229,49 @@ stdin_redirects (redirs) int n; for (n = 0, rp = redirs; rp; rp = rp->next) - n += stdin_redirection (rp->instruction, rp->redirector); + if ((rp->rflags & REDIR_VARASSIGN) == 0) + n += stdin_redirection (rp->instruction, rp->redirector.dest); return n; } + +/* These don't yet handle array references */ +static int +redir_varassign (redir, fd) + REDIRECT *redir; + int fd; +{ + WORD_DESC *w; + SHELL_VAR *v; + + w = redir->redirector.filename; + v = bind_var_to_int (w->word, fd); + if (v == 0 || readonly_p (v) || noassign_p (v)) + return BADVAR_REDIRECT; + + return 0; +} + +static int +redir_varvalue (redir) + REDIRECT *redir; +{ + SHELL_VAR *v; + char *val; + intmax_t vmax; + int i; + + /* XXX - handle set -u here? */ + v = find_variable (redir->redirector.filename->word); + if (v == 0 || invisible_p (v)) + return -1; + + val = get_variable_value (v); + if (val == 0 || *val == 0) + return -1; + + if (legal_number (val, &vmax) < 0) + return -1; + + i = vmax; /* integer truncation */ + return i; +} diff --git a/shell.c b/shell.c index b28e3b4..8dadb0b 100644 --- a/shell.c +++ b/shell.c @@ -256,7 +256,9 @@ static const struct { #endif { "verbose", Int, &echo_input_at_read, (char **)0x0 }, { "version", Int, &do_version, (char **)0x0 }, +#if defined (WORDEXP_OPTION) { "wordexp", Int, &wordexp_only, (char **)0x0 }, +#endif { (char *)0x0, Int, (int *)0x0, (char **)0x0 } }; @@ -304,7 +306,9 @@ static void run_startup_files __P((void)); static int open_shell_script __P((char *)); static void set_bash_input __P((void)); static int run_one_command __P((char *)); +#if defined (WORDEXP_OPTION) static int run_wordexp __P((char *)); +#endif static int uidget __P((void)); @@ -374,6 +378,8 @@ main (argc, argv, env) if (code) exit (2); + xtrace_init (); + #if defined (USING_BASH_MALLOC) && defined (DEBUG) && !defined (DISABLE_MALLOC_WRAPPERS) # if 1 malloc_set_register (1); @@ -471,7 +477,7 @@ main (argc, argv, env) login_shell = -login_shell; } - set_login_shell (login_shell != 0); + set_login_shell ("login_shell", login_shell != 0); if (dump_po_strings) dump_translatable_strings = 1; @@ -572,7 +578,7 @@ main (argc, argv, env) /* running_under_emacs == 2 for `eterm' */ running_under_emacs = (emacs != 0) || (term && STREQN (term, "emacs", 5)); - running_under_emacs += term && STREQN (term, "eterm", 5) && strstr (emacs, "term"); + running_under_emacs += term && STREQN (term, "eterm", 5) && emacs && strstr (emacs, "term"); if (running_under_emacs) gnu_error_format = 1; @@ -660,12 +666,14 @@ main (argc, argv, env) maybe_make_restricted (shell_name); #endif /* RESTRICTED_SHELL */ +#if defined (WORDEXP_OPTION) if (wordexp_only) { startup_state = 3; last_command_exit_value = run_wordexp (argv[arg_index]); exit_shell (last_command_exit_value); } +#endif if (command_execution_string) { @@ -892,6 +900,9 @@ void exit_shell (s) int s; { + fflush (stdout); /* XXX */ + fflush (stderr); + /* Do trap[0] if defined. Allow it to override the exit status passed to us. */ if (signal_is_trapped (0)) @@ -1197,6 +1208,7 @@ disable_priv_mode () current_user.egid = current_user.gid; } +#if defined (WORDEXP_OPTION) static int run_wordexp (words) char *words; @@ -1268,6 +1280,7 @@ run_wordexp (words) return (0); } +#endif #if defined (ONESHOT) /* Run one command, given as the argument to the -c option. Tell @@ -1710,8 +1723,10 @@ shell_initialize () privileged or restricted mode or if the shell is running setuid. */ #if defined (RESTRICTED_SHELL) initialize_shell_options (privileged_mode||restricted||running_setuid); + initialize_bashopts (privileged_mode||restricted||running_setuid); #else initialize_shell_options (privileged_mode||running_setuid); + initialize_bashopts (privileged_mode||running_setuid); #endif } @@ -1790,12 +1805,12 @@ show_shell_usage (fp, extra) set_opts = savestring (shell_builtins[i].short_doc); if (set_opts) { - s = xstrchr (set_opts, '['); + s = strchr (set_opts, '['); if (s == 0) s = set_opts; while (*++s == '-') ; - t = xstrchr (s, ']'); + t = strchr (s, ']'); if (t) *t = '\0'; fprintf (fp, _("\t-%s or -o option\n"), s); diff --git a/shell.h b/shell.h index bc38903..5eb0caa 100644 --- a/shell.h +++ b/shell.h @@ -56,6 +56,8 @@ extern int EOF_Reached; #define EX_BADUSAGE 2 /* Special exit statuses used by the shell, internally and externally. */ +#define EX_RETRYFAIL 124 +#define EX_WEXPCOMSUB 125 #define EX_BINARY_FILE 126 #define EX_NOEXEC 126 #define EX_NOINPUT 126 @@ -89,6 +91,7 @@ extern int debugging_mode; extern int executing, login_shell; extern int interactive, interactive_shell; extern int startup_state; +extern int subshell_environment; extern int shell_compatibility_level; /* Structure to pass around that holds a bitmap of file descriptors diff --git a/sig.c b/sig.c index e876a2b..a217b89 100644 --- a/sig.c +++ b/sig.c @@ -526,7 +526,7 @@ termsig_handler (sig) #endif /* HISTORY */ #if defined (JOB_CONTROL) - if (interactive && sig == SIGHUP) + if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB)))) hangup_all_jobs (); end_job_control (); #endif /* JOB_CONTROL */ @@ -561,6 +561,7 @@ sigint_sighandler (sig) if (interrupt_immediately) { interrupt_immediately = 0; + last_command_exit_value = 128 + sig; throw_to_top_level (); } diff --git a/siglist.c b/siglist.c index 27eb26a..0e51b83 100644 --- a/siglist.c +++ b/siglist.c @@ -32,6 +32,7 @@ # include "trap.h" #endif +#include "bashintl.h" #include "xmalloc.h" char *sys_siglist[NSIG]; diff --git a/stringlib.c b/stringlib.c index 09866d5..0a612ca 100644 --- a/stringlib.c +++ b/stringlib.c @@ -125,7 +125,7 @@ find_index_in_alist (string, alist, flags) not including END. */ char * substring (string, start, end) - char *string; + const char *string; int start, end; { register int len; diff --git a/subst.c b/subst.c index 78f217c..81a3256 100644 --- a/subst.c +++ b/subst.c @@ -86,6 +86,7 @@ extern int errno; /* Flags for the `pflags' argument to param_expand() */ #define PF_NOCOMSUB 0x01 /* Do not perform command substitution */ #define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */ +#define PF_NOSPLIT2 0x04 /* same as W_NOSPLIT2 */ /* These defs make it easier to use the editor. */ #define LBRACE '{' @@ -93,6 +94,11 @@ extern int errno; #define LPAREN '(' #define RPAREN ')' +#if defined (HANDLE_MULTIBYTE) +#define WLPAREN L'(' +#define WRPAREN L')' +#endif + /* Evaluates to 1 if C is one of the shell's special parameters whose length can be taken, but is also one of the special expansion characters. */ #define VALID_SPECIAL_LENGTH_PARAM(c) \ @@ -134,12 +140,20 @@ size_t ifs_firstc_len; unsigned char ifs_firstc; #endif +/* Sentinel to tell when we are performing variable assignments preceding a + command name and putting them into the environment. Used to make sure + we use the temporary environment when looking up variable values. */ int assigning_in_environment; +/* Used to hold a list of variable assignments preceding a command. Global + so the SIGCHLD handler in jobs.c can unwind-protect it when it runs a + SIGCHLD trap and so it can be saved and restored by the trap handlers. */ +WORD_LIST *subst_assign_varlist = (WORD_LIST *)NULL; + /* Extern functions and variables from different files. */ extern int last_command_exit_value, last_command_exit_signal; -extern int subshell_environment; -extern int subshell_level, parse_and_execute_level; +extern int subshell_environment, line_number; +extern int subshell_level, parse_and_execute_level, sourcelevel; extern int eof_encountered; extern int return_catch_flag, return_catch_value; extern pid_t dollar_dollar_pid; @@ -183,11 +197,6 @@ static int no_longjmp_on_fatal_error = 0; $* on $IFS, primarily when doing assignment statements. */ static int expand_no_split_dollar_star = 0; -/* Used to hold a list of variable assignments preceding a command. Global - so the SIGCHLD handler in jobs.c can unwind-protect it when it runs a - SIGCHLD trap. */ -WORD_LIST *subst_assign_varlist = (WORD_LIST *)NULL; - /* A WORD_LIST of words to be expanded by expand_word_list_internal, without any leading variable assignments. */ static WORD_LIST *garglist = (WORD_LIST *)NULL; @@ -285,7 +294,7 @@ static char *parameter_brace_patsub __P((char *, char *, char *, int)); static char *pos_params_casemod __P((char *, char *, int, int)); static char *parameter_brace_casemod __P((char *, char *, int, char *, int)); -static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int *, int *)); +static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int, int *, int *)); static WORD_DESC *param_expand __P((char *, int *, int, int *, int *, int *, int *, int)); static WORD_LIST *expand_word_internal __P((WORD_DESC *, int, int, int *, int *)); @@ -311,6 +320,135 @@ static WORD_LIST *expand_word_list_internal __P((WORD_LIST *, int)); /* */ /* **************************************************************** */ +#if defined (DEBUG) +void +dump_word_flags (flags) + int flags; +{ + int f; + + f = flags; + fprintf (stderr, "%d -> ", f); + if (f & W_ASSIGNASSOC) + { + f &= ~W_ASSIGNASSOC; + fprintf (stderr, "W_ASSIGNASSOC%s", f ? "|" : ""); + } + if (f & W_HASCTLESC) + { + f &= ~W_HASCTLESC; + fprintf (stderr, "W_HASCTLESC%s", f ? "|" : ""); + } + if (f & W_NOPROCSUB) + { + f &= ~W_NOPROCSUB; + fprintf (stderr, "W_NOPROCSUB%s", f ? "|" : ""); + } + if (f & W_DQUOTE) + { + f &= ~W_DQUOTE; + fprintf (stderr, "W_DQUOTE%s", f ? "|" : ""); + } + if (f & W_HASQUOTEDNULL) + { + f &= ~W_HASQUOTEDNULL; + fprintf (stderr, "W_HASQUOTEDNULL%s", f ? "|" : ""); + } + if (f & W_ASSIGNARG) + { + f &= ~W_ASSIGNARG; + fprintf (stderr, "W_ASSIGNARG%s", f ? "|" : ""); + } + if (f & W_ASSNBLTIN) + { + f &= ~W_ASSNBLTIN; + fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : ""); + } + if (f & W_COMPASSIGN) + { + f &= ~W_COMPASSIGN; + fprintf (stderr, "W_COMPASSIGN%s", f ? "|" : ""); + } + if (f & W_NOEXPAND) + { + f &= ~W_NOEXPAND; + fprintf (stderr, "W_NOEXPAND%s", f ? "|" : ""); + } + if (f & W_ITILDE) + { + f &= ~W_ITILDE; + fprintf (stderr, "W_ITILDE%s", f ? "|" : ""); + } + if (f & W_NOTILDE) + { + f &= ~W_NOTILDE; + fprintf (stderr, "W_NOTILDE%s", f ? "|" : ""); + } + if (f & W_ASSIGNRHS) + { + f &= ~W_ASSIGNRHS; + fprintf (stderr, "W_ASSIGNRHS%s", f ? "|" : ""); + } + if (f & W_NOCOMSUB) + { + f &= ~W_NOCOMSUB; + fprintf (stderr, "W_NOCOMSUB%s", f ? "|" : ""); + } + if (f & W_DOLLARSTAR) + { + f &= ~W_DOLLARSTAR; + fprintf (stderr, "W_DOLLARSTAR%s", f ? "|" : ""); + } + if (f & W_DOLLARAT) + { + f &= ~W_DOLLARAT; + fprintf (stderr, "W_DOLLARAT%s", f ? "|" : ""); + } + if (f & W_TILDEEXP) + { + f &= ~W_TILDEEXP; + fprintf (stderr, "W_TILDEEXP%s", f ? "|" : ""); + } + if (f & W_NOSPLIT2) + { + f &= ~W_NOSPLIT2; + fprintf (stderr, "W_NOSPLIT2%s", f ? "|" : ""); + } + if (f & W_NOGLOB) + { + f &= ~W_NOGLOB; + fprintf (stderr, "W_NOGLOB%s", f ? "|" : ""); + } + if (f & W_NOSPLIT) + { + f &= ~W_NOSPLIT; + fprintf (stderr, "W_NOSPLIT%s", f ? "|" : ""); + } + if (f & W_GLOBEXP) + { + f &= ~W_GLOBEXP; + fprintf (stderr, "W_GLOBEXP%s", f ? "|" : ""); + } + if (f & W_ASSIGNMENT) + { + f &= ~W_ASSIGNMENT; + fprintf (stderr, "W_ASSIGNMENT%s", f ? "|" : ""); + } + if (f & W_QUOTED) + { + f &= ~W_QUOTED; + fprintf (stderr, "W_QUOTED%s", f ? "|" : ""); + } + if (f & W_HASDOLLAR) + { + f &= ~W_HASDOLLAR; + fprintf (stderr, "W_HASDOLLAR%s", f ? "|" : ""); + } + fprintf (stderr, "\n"); + fflush (stderr); +} +#endif + #ifdef INCLUDE_UNUSED static char * quoted_substring (string, start, end) @@ -585,7 +723,7 @@ string_extract (string, sindex, charlist, flags) { int ni; /* If this is an array subscript, skip over it and continue. */ - ni = skipsubscript (string, i); + ni = skipsubscript (string, i, 0); if (string[ni] == ']') i = ni; } @@ -899,7 +1037,7 @@ string_extract_verbatim (string, slen, sindex, charlist, flags) char *charlist; int flags; { - register int i = *sindex; + register int i; #if defined (HANDLE_MULTIBYTE) size_t clen; wchar_t *wcharlist; @@ -992,14 +1130,14 @@ string_extract_verbatim (string, slen, sindex, charlist, flags) /* Extract the $( construct in STRING, and return a new string. Start extracting at (SINDEX) as if we had just seen "$(". Make (SINDEX) get the position of the matching ")". ) - XFLAGS is additional flags to pass to other extraction functions, */ + XFLAGS is additional flags to pass to other extraction functions. */ char * extract_command_subst (string, sindex, xflags) char *string; int *sindex; int xflags; { - if (string[*sindex] == '(') /*)*/ + if (string[*sindex] == LPAREN) return (extract_delimited_string (string, sindex, "$(", "(", ")", xflags|SX_COMMAND)); /*)*/ else { @@ -1111,7 +1249,7 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) } /* Not exactly right yet; should handle shell metacharacters and - multibyte characters, too. */ + multibyte characters, too. See COMMENT_BEGIN define in parse.y */ if ((flags & SX_COMMAND) && c == '#' && (i == 0 || string[i - 1] == '\n' || shellblank (string[i - 1]))) { in_comment = 1; @@ -1126,6 +1264,18 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) continue; } +#if 0 + /* Process a nested command substitution, but only if we're parsing a + command substitution. XXX - for bash-4.2 */ + if ((flags & SX_COMMAND) && string[i] == '$' && string[i+1] == LPAREN) + { + si = i + 2; + t = extract_command_subst (string, &si, flags); + i = si + 1; + continue; + } +#endif + /* Process a nested OPENER. */ if (STREQN (string + i, opener, len_opener)) { @@ -1377,7 +1527,10 @@ unquote_bang (string) #define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0) /* This function assumes s[i] == open; returns with s[ret] == close; used to - parse array subscripts. FLAGS currently unused. */ + parse array subscripts. FLAGS & 1 means to not attempt to skip over + matched pairs of quotes or backquotes, or skip word expansions; it is + intended to be used after expansion has been performed and during final + assignment parsing (see arrayfunc.c:assign_compound_array_list()). */ static int skip_matched_pair (string, start, open, close, flags) const char *string; @@ -1418,13 +1571,13 @@ skip_matched_pair (string, start, open, close, flags) ADVANCE_CHAR (string, slen, i); continue; } - else if (c == '`') + else if ((flags & 1) == 0 && c == '`') { backq = 1; i++; continue; } - else if (c == open) + else if ((flags & 1) == 0 && c == open) { count++; i++; @@ -1438,13 +1591,13 @@ skip_matched_pair (string, start, open, close, flags) i++; continue; } - else if (c == '\'' || c == '"') + else if ((flags & 1) == 0 && (c == '\'' || c == '"')) { i = (c == '\'') ? skip_single_quoted (ss, slen, ++i) : skip_double_quoted (ss, slen, ++i); /* no increment, the skip functions increment past the closing quote. */ } - else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) + else if ((flags&1) == 0 && c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) { si = i + 2; if (string[si] == '\0') @@ -1469,11 +1622,11 @@ skip_matched_pair (string, start, open, close, flags) #if defined (ARRAY_VARS) int -skipsubscript (string, start) +skipsubscript (string, start, flags) const char *string; - int start; + int start, flags; { - return (skip_matched_pair (string, start, '[', ']', 0)); + return (skip_matched_pair (string, start, '[', ']', flags)); } #endif @@ -1490,7 +1643,7 @@ skip_to_delim (string, start, delims, flags) char *delims; int flags; { - int i, pass_next, backq, si, c, invert; + int i, pass_next, backq, si, c, invert, skipquote, skipcmd; size_t slen; char *temp; DECLARE_MBSTATE; @@ -1499,11 +1652,17 @@ skip_to_delim (string, start, delims, flags) if (flags & SD_NOJMP) no_longjmp_on_fatal_error = 1; invert = (flags & SD_INVERT); + skipcmd = (flags & SD_NOSKIPCMD) == 0; i = start; pass_next = backq = 0; while (c = string[i]) { + /* If this is non-zero, we should not let quote characters be delimiters + and the current character is a single or double quote. We should not + test whether or not it's a delimiter until after we skip single- or + double-quoted strings. */ + skipquote = ((flags & SD_NOQUOTEDELIM) && (c == '\'' || c =='"')); if (pass_next) { pass_next = 0; @@ -1531,7 +1690,7 @@ skip_to_delim (string, start, delims, flags) i++; continue; } - else if (invert == 0 && member (c, delims)) + else if (skipquote == 0 && invert == 0 && member (c, delims)) break; else if (c == '\'' || c == '"') { @@ -1539,7 +1698,7 @@ skip_to_delim (string, start, delims, flags) : skip_double_quoted (string, slen, ++i); /* no increment, the skip functions increment past the closing quote. */ } - else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) + else if (c == '$' && ((skipcmd && string[i+1] == LPAREN) || string[i+1] == LBRACE)) { si = i + 2; if (string[si] == '\0') @@ -1555,7 +1714,21 @@ skip_to_delim (string, start, delims, flags) i++; continue; } - else if (invert && (member (c, delims) == 0)) +#if defined (PROCESS_SUBSTITUTION) + else if (skipcmd && (c == '<' || c == '>') && string[i+1] == LPAREN) + { + si = i + 2; + if (string[si] == '\0') + CQ_RETURN(si); + temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si); + i = si; + if (string[i] == '\0') + break; + i++; + continue; + } +#endif /* PROCESS_SUBSTITUTION */ + else if ((skipquote || invert) && (member (c, delims) == 0)) break; else ADVANCE_CHAR (string, slen, i); @@ -1673,14 +1846,14 @@ unclosed_pair (string, eindex, openstr) the index of the word containing SENTINEL. Non-whitespace chars in DELIMS delimit separate fields. */ WORD_LIST * -split_at_delims (string, slen, delims, sentinel, nwp, cwp) +split_at_delims (string, slen, delims, sentinel, flags, nwp, cwp) char *string; int slen; char *delims; - int sentinel; + int sentinel, flags; int *nwp, *cwp; { - int ts, te, i, nw, cw, ifs_split; + int ts, te, i, nw, cw, ifs_split, dflags; char *token, *d, *d2; WORD_LIST *ret, *tl; @@ -1737,7 +1910,7 @@ split_at_delims (string, slen, delims, sentinel, nwp, cwp) ret = (WORD_LIST *)NULL; - /* Remove sequences of whitspace characters at the start of the string, as + /* Remove sequences of whitespace characters at the start of the string, as long as those characters are delimiters. */ for (i = 0; member (string[i], d) && spctabnl (string[i]); i++) ; @@ -1747,9 +1920,10 @@ split_at_delims (string, slen, delims, sentinel, nwp, cwp) ts = i; nw = 0; cw = -1; + dflags = flags|SD_NOJMP; while (1) { - te = skip_to_delim (string, ts, d, SD_NOJMP); + te = skip_to_delim (string, ts, d, dflags); /* If we have a non-whitespace delimiter character, use it to make a separate field. This is just about what $IFS splitting does and @@ -1807,9 +1981,10 @@ split_at_delims (string, slen, delims, sentinel, nwp, cwp) /* Special case for SENTINEL at the end of STRING. If we haven't found the word containing SENTINEL yet, and the index we're looking for is at - the end of STRING, add an additional null argument and set the current - word pointer to that. */ - if (cwp && cw == -1 && sentinel >= slen) + the end of STRING (or past the end of the previously-found token, + possible if the end of the line is composed solely of IFS whitespace) + add an additional null argument and set the current word pointer to that. */ + if (cwp && cw == -1 && (sentinel >= slen || sentinel >= te)) { if (whitespace (string[sentinel - 1])) { @@ -2058,7 +2233,7 @@ string_list_dollar_at (list, quoted) #if 0 tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0)) #else - tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE)) #endif ? quote_list (list) : list_quote_escapes (list); @@ -2526,7 +2701,6 @@ do_assignment_internal (word, expand) } else #endif - if (expand && temp[0]) value = expand_string_if_necessary (temp, 0, expand_string_assignment); else @@ -2554,7 +2728,7 @@ do_assignment_internal (word, expand) aflags |= ASS_APPEND; #if defined (ARRAY_VARS) - if (t = xstrchr (name, '[')) /*]*/ + if (t = mbschr (name, '[')) /*]*/ { if (assign_list) { @@ -2739,7 +2913,7 @@ pos_params (string, start, end, quoted) save = params = t; } - for (i = 1; params && i < start; i++) + for (i = start ? 1 : 0; params && i < start; i++) params = params->next; if (params == 0) return ((char *)NULL); @@ -2915,6 +3089,7 @@ cond_expand_word (w, special) if (w->word == 0 || w->word[0] == '\0') return ((char *)NULL); + w->flags |= W_NOSPLIT2; l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); if (l) { @@ -3787,11 +3962,11 @@ match_upattern (string, pat, mtype, sp, ep) /* XXX - check this later if I ever implement `**' with special meaning, since this will potentially result in `**' at the beginning or end */ len = STRLEN (pat); - if (pat[0] != '*' || (pat[0] == '*' && pat[1] == '(' && extended_glob) || pat[len - 1] != '*') /*)*/ + if (pat[0] != '*' || (pat[0] == '*' && pat[1] == LPAREN && extended_glob) || pat[len - 1] != '*') { p = npat = (char *)xmalloc (len + 3); p1 = pat; - if (*p1 != '*' || (*p1 == '*' && p1[1] == '(' && extended_glob)) /*)*/ + if (*p1 != '*' || (*p1 == '*' && p1[1] == LPAREN && extended_glob)) *p++ = '*'; while (*p1) *p++ = *p1++; @@ -3931,11 +4106,11 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep) /* XXX - check this later if I ever implement `**' with special meaning, since this will potentially result in `**' at the beginning or end */ len = wcslen (wpat); - if (wpat[0] != L'*' || (wpat[0] == L'*' && wpat[1] == L'(' && extended_glob) || wpat[len - 1] != L'*') /*)*/ + if (wpat[0] != L'*' || (wpat[0] == L'*' && wpat[1] == WLPAREN && extended_glob) || wpat[len - 1] != L'*') { wp = nwpat = (wchar_t *)xmalloc ((len + 3) * sizeof (wchar_t)); wp1 = wpat; - if (*wp1 != L'*' || (*wp1 == '*' && wp1[1] == '(' && extended_glob)) /*)*/ + if (*wp1 != L'*' || (*wp1 == '*' && wp1[1] == WLPAREN && extended_glob)) *wp++ = L'*'; while (*wp1 != L'\0') *wp++ = *wp1++; @@ -4313,6 +4488,12 @@ expand_word_unsplit (word, quoted) WORD_LIST *result; expand_no_split_dollar_star = 1; +#if defined (HANDLE_MULTIBYTE) + if (ifs_firstc[0] == 0) +#else + if (ifs_firstc == 0) +#endif + word->flags |= W_NOSPLIT; result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL); expand_no_split_dollar_star = 0; @@ -4320,13 +4501,27 @@ expand_word_unsplit (word, quoted) } /* Perform shell expansions on WORD, but do not perform word splitting or - quote removal on the result. */ + quote removal on the result. Virtually identical to expand_word_unsplit; + could be combined if implementations don't diverge. */ WORD_LIST * expand_word_leave_quoted (word, quoted) WORD_DESC *word; int quoted; { - return (call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL)); + WORD_LIST *result; + + expand_no_split_dollar_star = 1; +#if defined (HANDLE_MULTIBYTE) + if (ifs_firstc[0] == 0) +#else + if (ifs_firstc == 0) +#endif + word->flags |= W_NOSPLIT; + word->flags |= W_NOSPLIT2; + result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL); + expand_no_split_dollar_star = 0; + + return result; } #if defined (PROCESS_SUBSTITUTION) @@ -4843,7 +5038,7 @@ command_substitute (string, quoted) if (wordexp_only && read_but_dont_execute) { - last_command_exit_value = 125; + last_command_exit_value = EX_WEXPCOMSUB; jump_to_top_level (EXITPROG); } @@ -4860,7 +5055,7 @@ command_substitute (string, quoted) maybe_make_export_env (); /* XXX */ /* Flags to pass to parse_and_execute() */ - pflags = interactive ? SEVAL_RESETLINE : 0; + pflags = (interactive && sourcelevel == 0) ? SEVAL_RESETLINE : 0; /* Pipe the output of executing STRING into the current shell. */ if (pipe (fildes) < 0) @@ -5058,6 +5253,7 @@ array_length_reference (s) { c = *--t; *t = '\0'; + last_command_exit_value = EXECUTION_FAILURE; err_unboundvar (s); *t = c; return (-1); @@ -5168,7 +5364,7 @@ chk_atstar (name, quoted, quoted_dollar_atp, contains_dollar_at) #if defined (ARRAY_VARS) else if (valid_array_reference (name)) { - temp1 = xstrchr (name, '['); + temp1 = mbschr (name, '['); if (temp1 && temp1[1] == '@' && temp1[2] == ']') { if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) @@ -6008,7 +6204,13 @@ pat_subst (string, pat, rep, mflags) break; if (s == e) - e++, str++; /* avoid infinite recursion on zero-length match */ + { + /* On a zero-length match, make sure we copy one character, since + we increment one character to avoid infinite recursion. */ + RESIZE_MALLOCED_BUFFER (ret, rptr, 1, rsize, 64); + ret[rptr++] = *str++; + e++; /* avoid infinite recursion on zero-length match */ + } } /* Now copy the unmatched portion of the input string */ @@ -6375,9 +6577,9 @@ chk_arithsub (s, len) i = count = 0; while (i < len) { - if (s[i] == '(') + if (s[i] == LPAREN) count++; - else if (s[i] == ')') + else if (s[i] == RPAREN) { count--; if (count < 0) @@ -6417,9 +6619,9 @@ chk_arithsub (s, len) /* ${[#][!]name[[:][^[^]][,[,]]#[#]%[%]-=?+[word][:e1[:e2]]]} */ static WORD_DESC * -parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_dollar_at) +parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, contains_dollar_at) char *string; - int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at; + int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at, pflags; { int check_nullness, var_is_set, var_is_null, var_is_special; int want_substring, want_indir, want_patsub, want_casemod; @@ -6659,7 +6861,7 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll if (want_indir) tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND); + tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&PF_NOSPLIT2)); if (tdesc) { @@ -6929,8 +7131,8 @@ param_expand (string, sindex, quoted, expanded_something, uerror[0] = '$'; uerror[1] = c; uerror[2] = '\0'; - err_unboundvar (uerror); last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (uerror); return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); } if (temp1) @@ -6977,8 +7179,8 @@ param_expand (string, sindex, quoted, expanded_something, uerror[0] = '$'; uerror[1] = c; uerror[2] = '\0'; - err_unboundvar (uerror); last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (uerror); return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); } } @@ -7015,14 +7217,14 @@ param_expand (string, sindex, quoted, expanded_something, even if it's quoted. */ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && list == 0) temp = (char *)NULL; - else if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + else if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE)) { /* If we have "$*" we want to make a string of the positional parameters, separated by the first character of $IFS, and quote the whole string, including the separators. If IFS is unset, the parameters are separated by ' '; if $IFS is null, the parameters are concatenated. */ - temp = (quoted & Q_DOUBLE_QUOTES) ? string_list_dollar_star (list) : string_list (list); + temp = (quoted & (Q_DOUBLE_QUOTES|Q_PATQUOTE)) ? string_list_dollar_star (list) : string_list (list); temp1 = quote_string (temp); if (*temp == 0) tflag |= W_HASQUOTEDNULL; @@ -7087,11 +7289,17 @@ param_expand (string, sindex, quoted, expanded_something, string might need it (consider "\"$@\""), but we need some way to signal that the final split on the first character of $IFS should be done, even though QUOTED is 1. */ + /* XXX - should this test include Q_PATQUOTE? */ if (quoted_dollar_at_p && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) *quoted_dollar_at_p = 1; if (contains_dollar_at) *contains_dollar_at = 1; +#if 0 + if (pflags & PF_NOSPLIT2) + temp = string_list_internal (quoted ? quote_list (list) : list, " "); + else +#endif /* We want to separate the positional parameters with the first character of $IFS in case $IFS is something other than a space. We also want to make sure that splitting is done no matter what -- @@ -7103,7 +7311,7 @@ param_expand (string, sindex, quoted, expanded_something, break; case LBRACE: - tdesc = parameter_brace_expand (string, &zindex, quoted, + tdesc = parameter_brace_expand (string, &zindex, quoted, pflags, quoted_dollar_at_p, contains_dollar_at); @@ -7162,6 +7370,9 @@ param_expand (string, sindex, quoted, expanded_something, if (chk_arithsub (temp2, t_index) == 0) { free (temp2); +#if 0 + internal_warning (_("future versions of the shell will force evaluation as an arithmetic substitution")); +#endif goto comsub; } @@ -7280,7 +7491,10 @@ comsub: unbound_variable: if (unbound_vars_is_error) - err_unboundvar (temp1); + { + last_command_exit_value = EXECUTION_FAILURE; + err_unboundvar (temp1); + } else { free (temp1); @@ -7378,6 +7592,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin int had_quoted_null; int has_dollar_at; int tflag; + int pflags; /* flags passed to param_expand */ int assignoff; /* If assignment, offset of `=' */ @@ -7487,7 +7702,7 @@ add_string: even in POSIX mode. */ if (word->flags & (W_ASSIGNRHS|W_NOTILDE)) { - if (isexp == 0 && isifs (c)) + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c)) goto add_ifs_character; else goto add_character; @@ -7507,7 +7722,7 @@ add_string: string[sindex+1] == '~') word->flags |= W_ITILDE; #endif - if (isexp == 0 && isifs (c)) + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c)) goto add_ifs_character; else goto add_character; @@ -7515,7 +7730,7 @@ add_string: case ':': if (word->flags & W_NOTILDE) { - if (isexp == 0 && isifs (c)) + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c)) goto add_ifs_character; else goto add_character; @@ -7525,7 +7740,7 @@ add_string: string[sindex+1] == '~') word->flags |= W_ITILDE; - if (isexp == 0 && isifs (c)) + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c)) goto add_ifs_character; else goto add_character; @@ -7539,7 +7754,7 @@ add_string: (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) { word->flags &= ~W_ITILDE; - if (isexp == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) + if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) goto add_ifs_character; else goto add_character; @@ -7581,10 +7796,12 @@ add_string: *expanded_something = 1; has_dollar_at = 0; + pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0; + if (word->flags & W_NOSPLIT2) + pflags |= PF_NOSPLIT2; tword = param_expand (string, &sindex, quoted, expanded_something, &has_dollar_at, "ed_dollar_at, - &had_quoted_null, - (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0); + &had_quoted_null, pflags); if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal) { @@ -7779,6 +7996,11 @@ add_twochars: { if (list->next) { +#if 0 + if (quoted_dollar_at && word->flags & W_NOSPLIT2) + temp = string_list_internal (quote_list (list), " "); + else +#endif /* Testing quoted_dollar_at makes sure that "$@" is split correctly when $IFS does not contain a space. */ temp = quoted_dollar_at @@ -8297,7 +8519,7 @@ separate_out_assignments (tlist) { register WORD_LIST *vp, *lp; - if (!tlist) + if (tlist == 0) return ((WORD_LIST *)NULL); if (subst_assign_varlist) @@ -8549,14 +8771,21 @@ brace_expand_word_list (tlist, eflags) { next = tlist->next; + if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG)) + { +/*itrace("brace_expand_word_list: %s: W_COMPASSIGN|W_ASSIGNARG", tlist->word->word);*/ + PREPEND_LIST (tlist, output_list); + continue; + } + /* Only do brace expansion if the word has a brace character. If not, just add the word list element to BRACES and continue. In the common case, at least when running shell scripts, this will - degenerate to a bunch of calls to `xstrchr', and then what is + degenerate to a bunch of calls to `mbschr', and then what is basically a reversal of TLIST into BRACES, which is corrected by a call to REVERSE_LIST () on BRACES when the end of TLIST is reached. */ - if (xstrchr (tlist->word->word, LBRACE)) + if (mbschr (tlist->word->word, LBRACE)) { expansions = brace_expand (tlist->word->word); diff --git a/subst.h b/subst.h index b0149cc..7628939 100644 --- a/subst.h +++ b/subst.h @@ -52,6 +52,7 @@ #define SX_NOCTLESC 0x10 /* don't honor CTLESC quoting */ #define SX_NOESCCTLNUL 0x20 /* don't let CTLESC quote CTLNUL */ #define SX_NOLONGJMP 0x40 /* don't longjmp on fatal error */ +#define SX_ARITHSUB 0x80 /* extracting $(( ... )) (currently unused) */ /* Remove backslashes which are quoting backquotes from STRING. Modifies STRING, and returns a pointer to it. */ @@ -266,13 +267,15 @@ extern char *cond_expand_word __P((WORD_DESC *, int)); /* Flags for skip_to_delim */ #define SD_NOJMP 0x01 /* don't longjmp on fatal error. */ #define SD_INVERT 0x02 /* look for chars NOT in passed set */ +#define SD_NOQUOTEDELIM 0x04 /* don't let single or double quotes act as delimiters */ +#define SD_NOSKIPCMD 0x08 /* don't skip over $(, <(, or >( command/process substitution */ extern int skip_to_delim __P((char *, int, char *, int)); #if defined (READLINE) extern int char_is_quoted __P((char *, int)); extern int unclosed_pair __P((char *, int, char *)); -extern WORD_LIST *split_at_delims __P((char *, int, char *, int, int *, int *)); +extern WORD_LIST *split_at_delims __P((char *, int, char *, int, int, int *, int *)); #endif /* Variables used to keep track of the characters in IFS. */ diff --git a/support/SYMLINKS b/support/SYMLINKS index 119acbd..06bbed7 100644 --- a/support/SYMLINKS +++ b/support/SYMLINKS @@ -9,6 +9,7 @@ lib/readline/tilde.h ../tilde/tilde.h lib/readline/ansi_stdlib.h ../../include/ansi_stdlib.h lib/readline/posixdir.h ../../include/posixdir.h lib/readline/posixjmp.h ../../include/posixjmp.h +lib/readline/posixselect.h ../../include/posixselect.h lib/readline/posixstat.h ../../include/posixstat.h #lib/readline/rlstdc.h ../../include/stdc.h #lib/readline/xmalloc.c ../malloc/xmalloc.c diff --git a/support/bashbug.sh b/support/bashbug.sh index b00a55b..7b36d40 100644 --- a/support/bashbug.sh +++ b/support/bashbug.sh @@ -84,7 +84,7 @@ for when Bash doesn't behave like you'd like, or expect. Bashbug will start up your editor (as defined by the shell's EDITOR environment variable) with a preformatted bug report template for you to fill in. The report will be mailed to the -bash maintainers by default. See the manual for details. +bug-bash mailing list by default. See the manual for details. If you invoke bashbug by accident, just quit your editor without saving any changes to the template, and no bug report will be sent. @@ -257,7 +257,7 @@ then exit fi -echo $n "Send bug report? [y/n] $c" +echo $n "Send bug report to ${BUGADDR}? [y/n] $c" read ans case "$ans" in [Nn]*) exit 0 ;; diff --git a/support/config.sub b/support/config.sub index 8659ca3..d07267e 100644 --- a/support/config.sub +++ b/support/config.sub @@ -807,6 +807,9 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; diff --git a/support/mksignames.c b/support/mksignames.c index a308310..5618879 100644 --- a/support/mksignames.c +++ b/support/mksignames.c @@ -52,7 +52,7 @@ write_signames (stream) fprintf (stream, "/* This file was automatically created by %s.\n", progname); - fprintf (stream, " Do not edit. Edit support/signames.c instead. */\n\n"); + fprintf (stream, " Do not edit. Edit support/mksignames.c instead. */\n\n"); fprintf (stream, "/* A translation list so we can be polite to our users. */\n"); #if defined (CROSS_COMPILING) diff --git a/support/shobj-conf b/support/shobj-conf index bcc9dc7..5a63e80 100755 --- a/support/shobj-conf +++ b/support/shobj-conf @@ -64,7 +64,7 @@ while [ $# -gt 0 ]; do esac done -case "${host_os}-${SHOBJ_CC}" in +case "${host_os}-${SHOBJ_CC}-${host_vendor}" in sunos4*-*gcc*) SHOBJ_CFLAGS=-fpic SHOBJ_LD=/usr/bin/ld @@ -108,8 +108,8 @@ sunos5*|solaris2*) SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;; -# All versions of Linux or the semi-mythical GNU Hurd. -linux*-*|gnu*-*|k*bsd*-gnu-*) +# All versions of Linux (including Gentoo/FreeBSD) or the semi-mythical GNU Hurd. +linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' @@ -128,7 +128,7 @@ freebsd2*) ;; # FreeBSD-3.x ELF -freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +freebsd3*|freebsdaout*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' @@ -145,6 +145,17 @@ freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) fi ;; +# FreeBSD-4.x and later have only ELF +freebsd[4-9]*|freebsdelf*|dragonfly*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' + + SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' + SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)' + + SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' + ;; + # Darwin/MacOS X darwin[89]*|darwin10*) SHOBJ_STATUS=supported diff --git a/test.c b/test.c index ad634f9..180940c 100644 --- a/test.c +++ b/test.c @@ -65,8 +65,9 @@ extern int errno; #endif #if !defined (STREQ) -# define STREQ(a, b) ((a)[0] == (b)[0] && strcmp (a, b) == 0) +# define STREQ(a, b) ((a)[0] == (b)[0] && strcmp ((a), (b)) == 0) #endif /* !STREQ */ +#define STRCOLLEQ(a, b) ((a)[0] == (b)[0] && strcoll ((a), (b)) == 0) #if !defined (R_OK) #define R_OK 4 @@ -375,12 +376,16 @@ binary_test (op, arg1, arg2, flags) if (op[0] == '=' && (op[1] == '\0' || (op[1] == '=' && op[2] == '\0'))) return (patmatch ? patcomp (arg1, arg2, EQ) : STREQ (arg1, arg2)); - else if ((op[0] == '>' || op[0] == '<') && op[1] == '\0') - return ((op[0] == '>') ? (strcmp (arg1, arg2) > 0) : (strcmp (arg1, arg2) < 0)); - + { + if (shell_compatibility_level > 40 && flags & TEST_LOCALE) + return ((op[0] == '>') ? (strcoll (arg1, arg2) > 0) : (strcoll (arg1, arg2) < 0)); + else + return ((op[0] == '>') ? (strcmp (arg1, arg2) > 0) : (strcmp (arg1, arg2) < 0)); + } else if (op[0] == '!' && op[1] == '=' && op[2] == '\0') return (patmatch ? patcomp (arg1, arg2, NE) : (STREQ (arg1, arg2) == 0)); + else if (op[2] == 't') { diff --git a/test.h b/test.h index 9188b5b..626edc4 100644 --- a/test.h +++ b/test.h @@ -26,6 +26,7 @@ /* Values for the flags argument to binary_test */ #define TEST_PATMATCH 0x01 #define TEST_ARITHEXP 0x02 +#define TEST_LOCALE 0x04 extern int test_unop __P((char *)); extern int test_binop __P((char *)); diff --git a/tests/alias.right b/tests/alias.right index 53111be..a37080c 100644 --- a/tests/alias.right +++ b/tests/alias.right @@ -2,3 +2,11 @@ alias: 0 alias: 0 ./alias.tests: line 25: qfoo: command not found quux +bar +value +bar +value +OK +OK +OK +OK diff --git a/tests/alias.tests b/tests/alias.tests index 9cfec16..a97d5ff 100644 --- a/tests/alias.tests +++ b/tests/alias.tests @@ -35,3 +35,5 @@ alias baz=quux foo bar unalias foo bar baz + +${THIS_SH} ./alias1.sub diff --git a/tests/array.right b/tests/array.right index f9c7eee..fdc0793 100644 --- a/tests/array.right +++ b/tests/array.right @@ -25,13 +25,13 @@ bdef hello world 11 3 -bdef hello world test expression -./array.tests: line 74: readonly: `a[5]': not a valid identifier -declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")' +bdef hello world test expression test 2 +./array.tests: line 76: readonly: `a[5]': not a valid identifier +declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")' declare -ar c='()' -declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")' +declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")' declare -ar c='()' -readonly -a a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")' +readonly -a a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")' readonly -a c='()' a test declare -a BASH_ARGC='()' @@ -40,36 +40,36 @@ declare -a BASH_LINENO='([0]="0")' declare -a BASH_SOURCE='([0]="./array.tests")' declare -a DIRSTACK='()' declare -a FUNCNAME='([0]="main")' -declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")' +declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")' declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")' declare -ar c='()' declare -a d='([1]="" [2]="bdef" [5]="hello world" [6]="test" [9]="ninth element")' declare -a e='([0]="test")' declare -a f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")' -./array.tests: line 98: a: readonly variable -./array.tests: line 100: b[]: bad array subscript -./array.tests: line 101: b[*]: bad array subscript -./array.tests: line 102: ${b[ ]}: bad substitution -./array.tests: line 104: c[-2]: bad array subscript -./array.tests: line 105: c: bad array subscript +./array.tests: line 100: a: readonly variable +./array.tests: line 102: b[]: bad array subscript +./array.tests: line 103: b[*]: bad array subscript +./array.tests: line 104: ${b[ ]}: bad substitution +./array.tests: line 106: c[-2]: bad array subscript +./array.tests: line 107: c: bad array subscript -./array.tests: line 107: d[7]: cannot assign list to array member -./array.tests: line 109: []=abcde: bad array subscript -./array.tests: line 109: [*]=last: cannot assign to non-numeric index -./array.tests: line 109: [-65]=negative: bad array subscript +./array.tests: line 109: d[7]: cannot assign list to array member +./array.tests: line 111: []=abcde: bad array subscript +./array.tests: line 111: [*]=last: cannot assign to non-numeric index +./array.tests: line 111: [-65]=negative: bad array subscript declare -a BASH_ARGC='()' declare -a BASH_ARGV='()' declare -a BASH_LINENO='([0]="0")' declare -a BASH_SOURCE='([0]="./array.tests")' declare -a DIRSTACK='()' declare -a FUNCNAME='([0]="main")' -declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")' +declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")' declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")' declare -ar c='()' declare -a d='([1]="test test")' declare -a f='([0]="" [1]="bdef" [2]="hello world" [3]="test" [4]="ninth element")' -./array.tests: line 117: unset: ps1: not an array variable -./array.tests: line 121: declare: c: cannot destroy array variables in this way +./array.tests: line 119: unset: ps1: not an array variable +./array.tests: line 123: declare: c: cannot destroy array variables in this way this of this is a test of read using arrays this test @@ -80,7 +80,7 @@ declare -a BASH_LINENO='([0]="0")' declare -a BASH_SOURCE='([0]="./array.tests")' declare -a DIRSTACK='()' declare -a FUNCNAME='([0]="main")' -declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression")' +declare -ar a='([1]="" [2]="bdef" [5]="hello world" [6]="test expression" [15]="test 2")' declare -a b='([0]="this" [1]="is" [2]="a" [3]="test" [4]="" [5]="/etc/passwd")' declare -ar c='()' declare -a d='([1]="test test")' @@ -127,7 +127,7 @@ grep [ 123 ] * 6 7 9 5 length = 3 value = new1 new2 new3 -./array.tests: line 237: narray: unbound variable +./array.tests: line 239: narray: unbound variable ./array1.sub: line 1: syntax error near unexpected token `(' ./array1.sub: line 1: `printf "%s\n" -a a=(a 'b c')' ./array2.sub: line 1: syntax error near unexpected token `(' @@ -152,10 +152,10 @@ for case if then else 12 14 16 18 20 4414758999202 aaa bbb -./array.tests: line 287: syntax error near unexpected token `<>' -./array.tests: line 287: `metas=( <> < > ! )' -./array.tests: line 288: syntax error near unexpected token `<>' -./array.tests: line 288: `metas=( [1]=<> [2]=< [3]=> [4]=! )' +./array.tests: line 289: syntax error near unexpected token `<>' +./array.tests: line 289: `metas=( <> < > ! )' +./array.tests: line 290: syntax error near unexpected token `<>' +./array.tests: line 290: `metas=( [1]=<> [2]=< [3]=> [4]=! )' abc 3 case 4 abc case if then else 5 diff --git a/tests/array.tests b/tests/array.tests index 1ac614b..435ac15 100644 --- a/tests/array.tests +++ b/tests/array.tests @@ -69,6 +69,8 @@ echo ${#a[5]} echo ${#a[@]} a[4+5/2]="test expression" +declare a["7 + 8"]="test 2" +a[7 + 8]="test 2" echo ${a[@]} readonly a[5] diff --git a/tests/assoc.right b/tests/assoc.right index ec1d46d..8615519 100644 --- a/tests/assoc.right +++ b/tests/assoc.right @@ -6,18 +6,18 @@ declare -A BASH_CMDS='()' declare -A fluff='([bar]="two" [foo]="one" )' declare -A fluff='([bar]="two" [foo]="one" )' declare -A fluff='([bar]="two" )' -declare -A fluff='([bar]="newval" )' -./assoc.tests: line 24: chaff: four: must use subscript when assigning associative array +declare -A fluff='([bar]="newval" [qux]="assigned" )' +./assoc.tests: line 26: chaff: four: must use subscript when assigning associative array declare -A BASH_ALIASES='()' declare -A BASH_CMDS='()' declare -Ai chaff='([one]="10" [zero]="5" )' -declare -Ar waste='([version]="4.0-devel" [source]="./assoc.tests" [lineno]="26" [pid]="42134" )' +declare -Ar waste='([version]="4.0-devel" [source]="./assoc.tests" [lineno]="28" [pid]="42134" )' declare -A wheat='([one]="a" [zero]="0" [two]="b" [three]="c" )' -declare -A chaff='([one]="10" [hello world]="flip" [zero]="5" )' -./assoc.tests: line 36: unset: waste: cannot unset: readonly variable -./assoc.tests: line 37: chaff[*]: bad array subscript -./assoc.tests: line 38: [*]=12: invalid associative array key -declare -A chaff='([one]="a" [hello world]="flip" )' +declare -A chaff='([one]="10" ["hello world"]="flip" [zero]="5" )' +./assoc.tests: line 38: unset: waste: cannot unset: readonly variable +./assoc.tests: line 39: chaff[*]: bad array subscript +./assoc.tests: line 40: [*]=12: invalid associative array key +declare -A chaff='([one]="a" ["hello world"]="flip" )' flip argv[1] = argv[2] = @@ -31,14 +31,14 @@ argv[2] = argv[3] = argv[4] = argv[1] = -./assoc.tests: line 55: declare: chaff: cannot destroy array variables in this way -./assoc.tests: line 57: chaff[*]: bad array subscript -./assoc.tests: line 58: [*]=12: invalid associative array key -declare -A wheat='([six]="6" [foo bar]="qux qix" )' +./assoc.tests: line 57: declare: chaff: cannot destroy array variables in this way +./assoc.tests: line 59: chaff[*]: bad array subscript +./assoc.tests: line 60: [*]=12: invalid associative array key +declare -A wheat='([six]="6" ["foo bar"]="qux qix" )' argv[1] = argv[2] = argv[1] = -declare -A wheat='([six]="6" [foo bar]="qux qix" )' +declare -A wheat='([six]="6" ["foo bar"]="qux qix" )' argv[1] = <2> argv[1] = <7> argv[1] = @@ -75,6 +75,7 @@ bin . bin sbin sbin bin bin ucb \usr/local/bin . \bin \sbin \usr/sbin \usr/bin \bin \usr/ucb \usr\local\bin . \bin \sbin \usr\sbin \usr\bin \bin \usr\ucb \usr\local\bin . \bin \sbin \usr\sbin \usr\bin \bin \usr\ucb +([a]=1) qux foo /usr/local/bin/qux /usr/sbin/foo @@ -102,7 +103,7 @@ argv[4] = outside: outside declare -A BASH_ALIASES='()' declare -A BASH_CMDS='()' -declare -A afoo='([six]="six" [foo bar]="foo quux" )' +declare -A afoo='([six]="six" ["foo bar"]="foo quux" )' argv[1] = argv[2] = argv[3] = @@ -132,3 +133,57 @@ argv[1] = argv[2] = <> argv[3] = argv[4] = <> +abc +def +def +./assoc5.sub: line 13: declare: `myarray[foo[bar]=bleh': not a valid identifier +abc def bleh +myarray=(["a]a"]="abc" ["]"]="def" ["a]=test1;#a"]="123" [foo]="bleh" ) + +123 +myarray=(["a]a"]="abc" ["a]=test2;#a"]="def" ["]"]="def" ["a]=test1;#a"]="123" [foo]="bleh" ) +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar$bie +doll +declare -A foo='(["bar\$bie"]="doll" )' +bar[bie +doll +declare -A foo='(["bar[bie"]="doll" )' +bar`bie +doll +declare -A foo='(["bar\`bie"]="doll" )' +bar\]bie +doll +declare -A foo='(["bar\\]bie"]="doll" )' +bar${foo}bie +doll +declare -A foo='(["bar\${foo}bie"]="doll" )' diff --git a/tests/assoc.tests b/tests/assoc.tests index 76d86fe..8b6fd55 100644 --- a/tests/assoc.tests +++ b/tests/assoc.tests @@ -12,6 +12,8 @@ unset fluff[foo] declare -p fluff fluff[bar]=newval +declare fluff[qux]=assigned + declare -p fluff unset fluff @@ -164,6 +166,13 @@ zecho "${xpath[@]/\//\\}" zecho "${xpath[@]//\//\\}" zecho "${xpath[@]//[\/]/\\}" +# test assignment to key "0" +unset T +declare -A T +T='([a]=1)' +echo "${T[@]}" +unset T + ${THIS_SH} ./assoc1.sub ${THIS_SH} ./assoc2.sub @@ -171,3 +180,7 @@ ${THIS_SH} ./assoc2.sub ${THIS_SH} ./assoc3.sub ${THIS_SH} ./assoc4.sub + +${THIS_SH} ./assoc5.sub + +${THIS_SH} ./assoc6.sub diff --git a/tests/braces.right b/tests/braces.right index 5369a7e..a02bfc6 100644 --- a/tests/braces.right +++ b/tests/braces.right @@ -52,11 +52,14 @@ a-{bdef-g-c a-{bdef-i-c 10 8 6 4 2 1 3 5 7 9 11 13 15 17 19 1 -0100 0095 0090 0085 0080 0075 0070 0065 0060 0055 0050 0045 0040 0035 0030 0025 0020 0015 0010 0005 0000 -00100 00095 00090 00085 00080 00075 00070 00065 00060 00055 00050 00045 00040 00035 00030 00025 00020 00015 00010 00005 00000 +100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 +100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 a b c d e f g h i j k l m n o p q r s t u v w x y z a c e g i k m o q s u w y z x v t r p n l j h f d b +10 8 6 4 2 0 +10 8 6 4 2 0 +-50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 {1..10.f} {1..ff} {1..10..ff} diff --git a/tests/braces.tests b/tests/braces.tests index 25b07b6..c2b153e 100644 --- a/tests/braces.tests +++ b/tests/braces.tests @@ -94,6 +94,11 @@ echo {a..z} echo {a..z..2} echo {z..a..-2} +# unwanted zero-padding -- fixed post-bash-4.0 +echo {10..0..2} +echo {10..0..-2} +echo {-50..-0..5} + # bad echo {1..10.f} echo {1..ff} diff --git a/tests/case.right b/tests/case.right index b82ad9a..d579253 100644 --- a/tests/case.right +++ b/tests/case.right @@ -3,3 +3,4 @@ to here and here retest and match +no more clauses diff --git a/tests/case.tests b/tests/case.tests index d85dc3e..7c50165 100644 --- a/tests/case.tests +++ b/tests/case.tests @@ -12,3 +12,7 @@ foo*) echo retest ;;& *bar) echo and match ;;& qux) echo but not this ;; esac + +case a in +a) echo no more clauses;& +esac diff --git a/tests/comsub-eof.right b/tests/comsub-eof.right index 4fc9ae2..452a9c5 100644 --- a/tests/comsub-eof.right +++ b/tests/comsub-eof.right @@ -5,3 +5,9 @@ hi hi ./comsub-eof3.sub: line 1: unexpected EOF while looking for matching `)' ./comsub-eof3.sub: line 5: syntax error: unexpected end of file +./comsub-eof4.sub: line 6: warning: here-document at line 4 delimited by end-of-file (wanted `EOF') +contents +./comsub-eof5.sub: line 8: warning: here-document at line 6 delimited by end-of-file (wanted `)') +hi +./comsub-eof5.sub: line 13: warning: here-document at line 11 delimited by end-of-file (wanted `EOF') +hi diff --git a/tests/comsub-eof.tests b/tests/comsub-eof.tests index 0b0ead9..f96aeee 100644 --- a/tests/comsub-eof.tests +++ b/tests/comsub-eof.tests @@ -5,3 +5,7 @@ ${THIS_SH} ./comsub-eof1.sub ${THIS_SH} ./comsub-eof2.sub ${THIS_SH} ./comsub-eof3.sub + +${THIS_SH} ./comsub-eof4.sub + +${THIS_SH} ./comsub-eof5.sub diff --git a/tests/comsub-posix.tests b/tests/comsub-posix.tests index 6b590df..d45cbf2 100644 --- a/tests/comsub-posix.tests +++ b/tests/comsub-posix.tests @@ -202,3 +202,6 @@ ${THIS_SH} ./comsub-posix1.sub : $(echo foo)" " +# fixed after bash-4.0 released +: $(case a in a) echo ;; # comment +esac) diff --git a/tests/comsub.right b/tests/comsub.right index a4aed2f..9894529 100644 --- a/tests/comsub.right +++ b/tests/comsub.right @@ -19,3 +19,11 @@ argv[1] = argv[2] = <-e> argv[3] = argv[1] = argv[1] = argv[1] = +#esac +a +ok 1 +ok 2 +ok 3 +ok 4 +ok 5 +ok 6 diff --git a/tests/comsub.tests b/tests/comsub.tests index d481dc3..493bbda 100644 --- a/tests/comsub.tests +++ b/tests/comsub.tests @@ -40,3 +40,5 @@ bar'` echo $(recho 'foo\ bar') + +${THIS_SH} ./comsub1.sub diff --git a/tests/dbg-support.right b/tests/dbg-support.right index 63a86f2..c4a1609 100644 --- a/tests/dbg-support.right +++ b/tests/dbg-support.right @@ -351,3 +351,21 @@ debug lineno: 132 main debug lineno: 133 main debug lineno: 132 main debug lineno: 133 main +debug lineno: 137 main +main: calling f1 +f1: calling f2 +f2: calling f3 +f3: calling callstack +deep 6 +0 z +1 3 +2 y +3 2 +4 x +5 1 +FUNCNAME stack: f3 f2 f1 main +26 f2 ./dbg-support3.sub +f3: returning +f2: return from f3 +f1: return from f2 +main: f1 returns diff --git a/tests/dbg-support.tests b/tests/dbg-support.tests index 517591c..ad06d01 100755 --- a/tests/dbg-support.tests +++ b/tests/dbg-support.tests @@ -133,6 +133,9 @@ for i in 0 1 ; do ((x=i+j)) done done + +${THIS_SH} ./dbg-support3.sub + #;;; Local Variables: *** #;;; mode:shell-script *** #;;; eval: (sh-set-shell "bash") *** diff --git a/tests/dollar-at-star b/tests/dollar-at-star index 10467ae..54e499d 100755 --- a/tests/dollar-at-star +++ b/tests/dollar-at-star @@ -227,4 +227,12 @@ ${THIS_SH} ./dollar-star2.sub # default and the array contains null elements ${THIS_SH} ./dollar-star3.sub +# test for set -u and expansions of $@ when there are no positional parameters +${THIS_SH} ./dollar-at3.sub +# test for set -u and expansions of $* when there are no positional parameters +${THIS_SH} ./dollar-star4.sub + +# tests for expansions of $* when IFS is null +${THIS_SH} ./dollar-star5.sub + exit 0 diff --git a/tests/dollar.right b/tests/dollar.right index 68641cf..13db8e2 100644 --- a/tests/dollar.right +++ b/tests/dollar.right @@ -149,3 +149,20 @@ argv[1] = argv[2] = <> argv[3] = argv[4] = <> +0 +bar + +after 1 + +after 2 +0 +bar + +after 1 + +after 2 +a b +ab +cd +ok 1 +ok 2 diff --git a/tests/exec.right b/tests/exec.right index 8f974ae..86a099c 100644 --- a/tests/exec.right +++ b/tests/exec.right @@ -16,17 +16,17 @@ after exec1.sub without args: 0 126 ./execscript: line 46: .: /: is a directory 1 -127 +126 0 this is bashenv ./exec3.sub: line 3: /tmp/bash-notthere: No such file or directory ./exec3.sub: line 3: exec: /tmp/bash-notthere: cannot execute: No such file or directory 126 -./execscript: line 68: notthere: No such file or directory +./execscript: line 70: notthere: No such file or directory 127 -./execscript: line 71: notthere: No such file or directory +./execscript: line 73: notthere: No such file or directory 127 -./execscript: line 74: notthere: No such file or directory +./execscript: line 76: notthere: command not found 127 this is sh this is sh diff --git a/tests/execscript b/tests/execscript index 5e11e23..3629c57 100644 --- a/tests/execscript +++ b/tests/execscript @@ -48,6 +48,8 @@ echo $? # try sourcing a binary file -- post-2.04 versions don't do the binary file # check, and will probably fail with `command not found', or status 127 +# bash-4.1 and later check for 256 NUL characters and fail as binary files +# if there are more than that, it's probably binary . ${THIS_SH} 2>/dev/null echo $? diff --git a/tests/exp.right b/tests/exp.right index faafad2..d46a2a1 100644 --- a/tests/exp.right +++ b/tests/exp.right @@ -162,3 +162,7 @@ argv[1] = <^A^A^?> 0.net 0.net 0.net +graph +yes +a +a diff --git a/tests/exp.tests b/tests/exp.tests index 42fbf72..1f4a35b 100644 --- a/tests/exp.tests +++ b/tests/exp.tests @@ -382,3 +382,5 @@ echo ${a//\?/ } ${THIS_SH} ./exp1.sub ${THIS_SH} ./exp2.sub + +${THIS_SH} ./exp3.sub diff --git a/tests/extglob.tests b/tests/extglob.tests index eb26d55..f9c17c7 100644 --- a/tests/extglob.tests +++ b/tests/extglob.tests @@ -193,7 +193,8 @@ esac MYDIR=$PWD # save where we are -TESTDIR=/tmp/eglob-test-$$ +: ${TMPDIR:=/var/tmp} +TESTDIR=$TMPDIR/eglob-test-$$ mkdir $TESTDIR builtin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; } rm -rf * diff --git a/tests/func.right b/tests/func.right index 1bd12e1..da8b45c 100644 --- a/tests/func.right +++ b/tests/func.right @@ -136,6 +136,11 @@ funcc () func-a func-b func-c +foo-bar +foo-bar () +{ + : +} expect 5 10 5 10 expect 20 diff --git a/tests/func2.sub b/tests/func2.sub index 2f9d5ce..41a3844 100644 --- a/tests/func2.sub +++ b/tests/func2.sub @@ -15,3 +15,13 @@ type funcc funca funcb funcc + +# when not in posix mode, bash allows non-identifiers as function names +set +o posix +foo-bar() +{ + :; +} + +declare -F foo-bar +declare -f foo-bar diff --git a/tests/glob.right b/tests/glob.right index 46ac4d3..04a0fd5 100644 --- a/tests/glob.right +++ b/tests/glob.right @@ -13,7 +13,7 @@ argv[2] = argv[3] = argv[4] = tmp/l1 tmp/l2 tmp/*4 tmp/l3 -./glob-test: line 44: no match: tmp/*4 +./glob.tests: line 44: no match: tmp/*4 argv[1] = argv[1] = <*> argv[1] = diff --git a/tests/heredoc.right b/tests/heredoc.right index 2a7bf6b..b8754de 100644 --- a/tests/heredoc.right +++ b/tests/heredoc.right @@ -58,6 +58,7 @@ qux bar qux -./heredoc.tests: line 96: warning: here-document at line 94 delimited by end-of-file (wanted `EOF') +comsub here-string +./heredoc.tests: line 100: warning: here-document at line 98 delimited by end-of-file (wanted `EOF') hi there diff --git a/tests/heredoc.tests b/tests/heredoc.tests index ac642e0..79bf4ce 100644 --- a/tests/heredoc.tests +++ b/tests/heredoc.tests @@ -88,6 +88,10 @@ ${THIS_SH} -c 'type fff' ${THIS_SH} ./heredoc1.sub +echo $( + cat <<< "comsub here-string" +) + # check that end of file delimits a here-document # THIS MUST BE LAST! diff --git a/tests/history.right b/tests/history.right index 128b0de..cb58f98 100644 --- a/tests/history.right +++ b/tests/history.right @@ -140,3 +140,7 @@ three one two three +4.1 +echo ${BASH_VERSION%\.*} +4.1 + echo ${BASH_VERSION%\.*} diff --git a/tests/history.tests b/tests/history.tests index 7ca7558..688095d 100644 --- a/tests/history.tests +++ b/tests/history.tests @@ -109,3 +109,5 @@ shopt -q -o history echo $? ${THIS_SH} ./history1.sub + +${THIS_SH} ./history2.sub diff --git a/tests/jobs.right b/tests/jobs.right index 0a6fce9..a4c8a7c 100644 --- a/tests/jobs.right +++ b/tests/jobs.right @@ -72,8 +72,8 @@ running jobs: [1] Running sleep 300 & [2]- Running sleep 350 & [3]+ Running sleep 400 & -./jobs.tests: line 127: kill: %4: no such job -./jobs.tests: line 129: jobs: %4: no such job +./jobs.tests: line 128: kill: %4: no such job +./jobs.tests: line 130: jobs: %4: no such job current job: [3]+ Running sleep 400 & previous job: diff --git a/tests/jobs.tests b/tests/jobs.tests index 5866b0c..e2acba5 100644 --- a/tests/jobs.tests +++ b/tests/jobs.tests @@ -115,6 +115,7 @@ exit 1 | exit 2 | exit 3 echo $? -- ${PIPESTATUS[@]} -- ${PIPESTATUS[0]} - ${PIPESTATUS[1]} - ${PIPESTATUS[2]} sleep 300 & +sleep300pid=$! sleep 350 & sleep 400 & @@ -168,6 +169,7 @@ exec 5>&2 exec 2>/dev/null echo killing... +kill -n 9 $sleep300pid kill -n 9 %2 %3 wait # make sure we reap the processes while stderr is still redirected echo done diff --git a/tests/new-exp.right b/tests/new-exp.right index 775d3e2..c86c546 100644 --- a/tests/new-exp.right +++ b/tests/new-exp.right @@ -504,6 +504,8 @@ h --blah lah lah +abcde abcfg abchi +foode foofg foohi argv[1] = <> argv[1] = <+> argv[1] = <+^?> @@ -537,4 +539,4 @@ bar () } argv[1] = argv[1] = -./new-exp.tests: line 568: ABXD: parameter unset +./new-exp.tests: line 576: ABXD: parameter unset diff --git a/tests/new-exp.tests b/tests/new-exp.tests index 3a0581f..8c43b66 100644 --- a/tests/new-exp.tests +++ b/tests/new-exp.tests @@ -553,6 +553,14 @@ echo ${var/#/--} echo ${var[@]##?} echo ${var##?} +unset var +var=(abcde abcfg abchi) + +# problems with anchoring pattern replacements +echo ${var[*]//#abc/foo} +echo ${var[*]/#abc/foo} +unset var + ${THIS_SH} ./new-exp6.sub ${THIS_SH} ./new-exp7.sub diff --git a/tests/nquote.right b/tests/nquote.right index 6d936d5..267f0e7 100644 --- a/tests/nquote.right +++ b/tests/nquote.right @@ -35,3 +35,6 @@ argv[1] = ;foo argv[1] = <^I> argv[1] = <'A^IB'> +hello' world +hello world! +hello' world! diff --git a/tests/nquote.tests b/tests/nquote.tests index 62d90b9..720c3e1 100644 --- a/tests/nquote.tests +++ b/tests/nquote.tests @@ -114,3 +114,5 @@ args () unset mytab recho "${mytab:-$'\t'}" recho "$( args $'A\tB' )" + +${THIS_SH} ./nquote1.sub diff --git a/tests/printf.tests b/tests/printf.tests index 80966d7..3dd5248 100644 --- a/tests/printf.tests +++ b/tests/printf.tests @@ -307,3 +307,5 @@ printf -v var "%s" '/current/working/directory/*.@(m3|i3|ig|mg)' shopt -s nullglob extglob echo "x$(printf "%b" @(hugo))x" printf -v var "%b" @(hugo); echo "x${var}x" + +${THIS_SH} ./printf2.sub diff --git a/tests/redir8.sub b/tests/redir8.sub index 7990a4a..5f972a1 100644 --- a/tests/redir8.sub +++ b/tests/redir8.sub @@ -1,3 +1,4 @@ +cd ${TMPDIR:=/var/tmp} rm -f u ${THIS_SH} -c 'exec 10>&1; echo fd 10 >&10' 10>u diff --git a/tests/run-glob-test b/tests/run-glob-test index 659112a..7a12343 100644 --- a/tests/run-glob-test +++ b/tests/run-glob-test @@ -1,4 +1,4 @@ PATH=$PATH:`pwd` export PATH -${THIS_SH} ./glob-test 2>&1 | grep -v '^expect' > /tmp/xx +${THIS_SH} ./glob.tests 2>&1 | grep -v '^expect' > /tmp/xx diff /tmp/xx glob.right && rm -f /tmp/xx diff --git a/tests/run-trap b/tests/run-trap index b448443..14f6874 100644 --- a/tests/run-trap +++ b/tests/run-trap @@ -1,6 +1,6 @@ -echo "warning: UNIX versions number signals differently. If output differing" >&2 -echo "warning: only in line numbers is produced, please do not consider this" >&2 -echo "warning: a test failure." >&2 +echo "warning: UNIX versions number signals and schedule processes differently." >&2 +echo "warning: If output differing only in line numbers is produced, please" >&2 +echo "warning: do not consider this a test failure." >&2 ${THIS_SH} ./trap.tests > /tmp/xx 2>&1 diff /tmp/xx trap.right && rm -f /tmp/xx diff --git a/tests/set-x.right b/tests/set-x.right index fc55bd8..a41a382 100644 --- a/tests/set-x.right +++ b/tests/set-x.right @@ -26,3 +26,31 @@ + x=i + case x in + x=i ++ set +x +1 +2 +3 +4 ++ for f in a b c d e ++ echo a +a ++ for f in a b c d e ++ echo b +b ++ for f in a b c d e ++ echo c +c ++ for f in a b c d e ++ echo d +d ++ for f in a b c d e ++ echo e +e ++ set +x +TRACEFILE: ++ echo 1 ++ echo 2 ++ echo 3 ++ echo 4 ++ unset BASH_XTRACEFD +===== diff --git a/tests/set-x.tests b/tests/set-x.tests index 323b772..648f0a9 100755 --- a/tests/set-x.tests +++ b/tests/set-x.tests @@ -14,8 +14,7 @@ case x in 0) x=i ;; *) x=i ;; esac +set +x -#;;; Local Variables: *** -#;;; mode:shell-script *** -#;;; eval: (sh-set-shell "bash") *** -#;;; End: *** +# test BASH_XTRACEFD +${THIS_SH} ./set-x1.sub diff --git a/tests/shopt.right b/tests/shopt.right index 6393bba..7bacc0e 100644 --- a/tests/shopt.right +++ b/tests/shopt.right @@ -10,6 +10,7 @@ shopt -u checkwinsize shopt -s cmdhist shopt -u compat31 shopt -u compat32 +shopt -u compat40 shopt -u dirspell shopt -u dotglob shopt -u execfail @@ -63,6 +64,7 @@ shopt -u checkjobs shopt -u checkwinsize shopt -u compat31 shopt -u compat32 +shopt -u compat40 shopt -u dirspell shopt -u dotglob shopt -u execfail @@ -93,6 +95,7 @@ checkjobs off checkwinsize off compat31 off compat32 off +compat40 off dirspell off dotglob off execfail off diff --git a/tests/trap.right b/tests/trap.right index 6e357d9..c8417ac 100644 --- a/tests/trap.right +++ b/tests/trap.right @@ -63,6 +63,19 @@ after while before false in trap2a.sub after false in trap2a.sub command substitution ++[6] echo 1 +1 ++[7] echo 2 +2 ++[8] echo 3 ++[8] cat ++[8] false +++[8] echo trap: 8 +trap: 8 ++[9] echo 4 +4 +caught a child death +caught a child death caught a child death trap -- 'echo caught a child death' SIGCHLD trap -- 'echo exiting' EXIT diff --git a/tests/trap.tests b/tests/trap.tests index 83497a3..ded1d70 100644 --- a/tests/trap.tests +++ b/tests/trap.tests @@ -66,6 +66,8 @@ trap '' USR2 # test ERR trap ./trap2.sub +${THIS_SH} ./trap3.sub + # # show that setting a trap on SIGCHLD is not disastrous. # @@ -88,3 +90,4 @@ trap trap - SIGCHLD wait + diff --git a/tests/type.right b/tests/type.right index 18208d1..a628231 100644 --- a/tests/type.right +++ b/tests/type.right @@ -61,3 +61,22 @@ bar () { echo $( 0 && sig < NSIG && original_signals[sig] == (SigHandler *)IMPOSSIBLE_TRAP_HANDLER) GETORIGSIG (sig); } @@ -728,6 +736,7 @@ _run_trap_internal (sig, tag) int trap_exit_value, *token_state; int save_return_catch_flag, function_code, flags; procenv_t save_return_catch; + WORD_LIST *save_subst_varlist; trap_exit_value = function_code = 0; /* Run the trap only if SIG is trapped and not ignored, and we are not @@ -745,6 +754,8 @@ _run_trap_internal (sig, tag) trap_saved_exit_value = last_command_exit_value; token_state = save_token_state (); + save_subst_varlist = subst_assign_varlist; + subst_assign_varlist = 0; /* If we're in a function, make sure return longjmps come here, too. */ save_return_catch_flag = return_catch_flag; @@ -763,6 +774,8 @@ _run_trap_internal (sig, tag) restore_token_state (token_state); free (token_state); + subst_assign_varlist = save_subst_varlist; + trap_exit_value = last_command_exit_value; last_command_exit_value = trap_saved_exit_value; running_trap = 0; @@ -877,20 +890,28 @@ run_interrupt_trap () #ifdef INCLUDE_UNUSED /* Free all the allocated strings in the list of traps and reset the trap - values to the default. */ + values to the default. Intended to be called from subshells that want + to complete work done by reset_signal_handlers upon execution of a + subsequent `trap' command that changes a signal's disposition. */ void free_trap_strings () { register int i; for (i = 0; i < BASH_NSIG; i++) - { - free_trap_command (i); - trap_list[i] = (char *)DEFAULT_SIG; - sigmodes[i] &= ~SIG_TRAPPED; - } + free_trap_string (i); trap_list[DEBUG_TRAP] = trap_list[EXIT_TRAP] = trap_list[ERROR_TRAP] = trap_list[RETURN_TRAP] = (char *)NULL; } + +/* Free a trap command string associated with SIG without changing signal + disposition. Intended to be called from free_trap_strings() */ +static void +free_trap_string (sig) + int sig; +{ + change_signal (sig, (char *)DEFAULT_SIG); + sigmodes[sig] &= ~SIG_TRAPPED; +} #endif /* Reset the handler for SIG to the original value. */ diff --git a/variables.c b/variables.c index 657101b..d1da8f6 100644 --- a/variables.c +++ b/variables.c @@ -44,6 +44,8 @@ #include "bashansi.h" #include "bashintl.h" +#define NEED_XTRACE_SET_DECL + #include "shell.h" #include "flags.h" #include "execute_cmd.h" @@ -221,9 +223,11 @@ static SHELL_VAR *get_groupset __P((SHELL_VAR *)); static SHELL_VAR *build_hashcmd __P((SHELL_VAR *)); static SHELL_VAR *get_hashcmd __P((SHELL_VAR *)); static SHELL_VAR *assign_hashcmd __P((SHELL_VAR *, char *, arrayind_t, char *)); +# if defined (ALIAS) static SHELL_VAR *build_aliasvar __P((SHELL_VAR *)); static SHELL_VAR *get_aliasvar __P((SHELL_VAR *)); static SHELL_VAR *assign_aliasvar __P((SHELL_VAR *, char *, arrayind_t, char *)); +# endif #endif static SHELL_VAR *get_funcname __P((SHELL_VAR *)); @@ -875,7 +879,7 @@ make_vers_array () vv = make_new_array_variable ("BASH_VERSINFO"); av = array_cell (vv); strcpy (d, dist_version); - s = xstrchr (d, '.'); + s = strchr (d, '.'); if (s) *s++ = '\0'; array_insert (av, 0, d); @@ -1556,6 +1560,7 @@ assign_hashcmd (self, value, ind, key) return (build_hashcmd (self)); } +#if defined (ALIAS) static SHELL_VAR * build_aliasvar (self) SHELL_VAR *self; @@ -1608,6 +1613,8 @@ assign_aliasvar (self, value, ind, key) add_alias (key, value); return (build_aliasvar (self)); } +#endif /* ALIAS */ + #endif /* ARRAY_VARS */ /* If ARRAY_VARS is not defined, this just returns the name of any @@ -1703,7 +1710,9 @@ initialize_dynamic_variables () v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign|att_nounset); v = init_dynamic_assoc_var ("BASH_CMDS", get_hashcmd, assign_hashcmd, att_nofree); +# if defined (ALIAS) v = init_dynamic_assoc_var ("BASH_ALIASES", get_aliasvar, assign_aliasvar, att_nofree); +# endif #endif v = init_funcname_var (); @@ -2183,7 +2192,12 @@ bind_variable_internal (name, value, table, hflags, aflags) { INVALIDATE_EXPORTSTR (entry); newval = (aflags & ASS_APPEND) ? make_variable_value (entry, value, aflags) : value; - entry = (*(entry->assign_func)) (entry, newval, -1, 0); + if (assoc_p (entry)) + entry = (*(entry->assign_func)) (entry, newval, -1, savestring ("0")); + else if (array_p (entry)) + entry = (*(entry->assign_func)) (entry, newval, 0, 0); + else + entry = (*(entry->assign_func)) (entry, newval, -1, 0); if (newval != value) free (newval); return (entry); @@ -3357,6 +3371,11 @@ valid_exportstr (v) char *s; s = v->exportstr; + if (s == 0) + { + internal_error (_("%s has null exportstr"), v->name); + return (0); + } if (legal_variable_starter ((unsigned char)*s) == 0) { internal_error (_("invalid character %d in exportstr for %s"), *s, v->name); @@ -3609,7 +3628,7 @@ maybe_make_export_env () } export_env[export_env_index = 0] = (char *)NULL; - /* Make a dummy variable context from the temporary_env, stick it on + /* Make a dummy variable context from the temporary_env, stick it on the front of shell_variables, call make_var_export_array on the whole thing to flatten it, and convert the list of SHELL_VAR *s to the form needed by the environment. */ @@ -4076,6 +4095,8 @@ struct name_and_function { }; static struct name_and_function special_vars[] = { + { "BASH_XTRACEFD", sv_xtracefd }, + #if defined (READLINE) # if defined (STRICT_POSIX) { "COLUMNS", sv_winsize }, @@ -4627,3 +4648,38 @@ set_pipestatus_from_exit (s) set_pipestatus_array (v, 1); #endif } + +void +sv_xtracefd (name) + char *name; +{ + SHELL_VAR *v; + char *t, *e; + int fd; + FILE *fp; + + v = find_variable (name); + if (v == 0) + { + xtrace_reset (); + return; + } + + t = value_cell (v); + if (t == 0 || *t == 0) + xtrace_reset (); + else + { + fd = (int)strtol (t, &e, 10); + if (e != t && *e == '\0' && sh_validfd (fd)) + { + fp = fdopen (fd, "w"); + if (fp == 0) + internal_error (_("%s: %s: cannot open as FILE"), name, value_cell (v)); + else + xtrace_set (fd, fp); + } + else + internal_error (_("%s: %s: invalid value for trace file descriptor"), name, value_cell (v)); + } +} diff --git a/variables.h b/variables.h index dbc81fb..ec1bfdc 100644 --- a/variables.h +++ b/variables.h @@ -356,6 +356,7 @@ extern void sv_strict_posix __P((char *)); extern void sv_optind __P((char *)); extern void sv_opterr __P((char *)); extern void sv_locale __P((char *)); +extern void sv_xtracefd __P((char *)); #if defined (READLINE) extern void sv_comp_wordbreaks __P((char *)); diff --git a/xmalloc.c b/xmalloc.c index 58c337e..2344d2d 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -62,18 +62,38 @@ static size_t allocated; /* **************************************************************** */ #if defined (HAVE_SBRK) +#define FINDBRK() \ +do { \ + if (brkfound == 0) \ + { \ + lbreak = (PTR_T)sbrk (0); \ + brkfound++; \ + } \ +} while (0) + static size_t findbrk () { - if (brkfound == 0) - { - lbreak = (PTR_T)sbrk (0); - brkfound++; - } + FINDBRK(); return (char *)sbrk (0) - (char *)lbreak; } +#else +#define FINDBRK() #endif +static void +allocerr (func, bytes) + const char *func; + size_t bytes; +{ +#if defined (HAVE_SBRK) + allocated = findbrk (); + fatal_error (_("%s: cannot allocate %lu bytes (%lu bytes allocated)"), func, (unsigned long)bytes, (unsigned long)allocated); +#else + fatal_error (_("%s: cannot allocate %lu bytes"), func, (unsigned long)bytes); +#endif /* !HAVE_SBRK */ +} + /* Return a pointer to free()able block of memory large enough to hold BYTES number of bytes. If the memory cannot be allocated, print an error message and abort. */ @@ -83,17 +103,16 @@ xmalloc (bytes) { PTR_T temp; +#if defined (DEBUG) + if (bytes == 0) + internal_warning("xmalloc: size argument is 0"); +#endif + + FINDBRK(); temp = malloc (bytes); if (temp == 0) - { -#if defined (HAVE_SBRK) - allocated = findbrk (); - fatal_error (_("xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"), (unsigned long)bytes, (unsigned long)allocated); -#else - fatal_error (_("xmalloc: cannot allocate %lu bytes"), (unsigned long)bytes); -#endif /* !HAVE_SBRK */ - } + allocerr ("xmalloc", bytes); return (temp); } @@ -105,17 +124,16 @@ xrealloc (pointer, bytes) { PTR_T temp; +#if defined (DEBUG) + if (bytes == 0) + internal_warning("xrealloc: size argument is 0"); +#endif + + FINDBRK(); temp = pointer ? realloc (pointer, bytes) : malloc (bytes); if (temp == 0) - { -#if defined (HAVE_SBRK) - allocated = findbrk (); - fatal_error (_("xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"), (unsigned long)bytes, (unsigned long)allocated); -#else - fatal_error (_("xrealloc: cannot allocate %lu bytes"), (unsigned long)bytes); -#endif /* !HAVE_SBRK */ - } + allocerr ("xrealloc", bytes); return (temp); } @@ -133,6 +151,21 @@ xfree (string) #ifdef USING_BASH_MALLOC #include +static void +sh_allocerr (func, bytes, file, line) + const char *func; + size_t bytes; + char *file; + int line; +{ +#if defined (HAVE_SBRK) + allocated = findbrk (); + fatal_error (_("%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"), func, file, line, (unsigned long)bytes, (unsigned long)allocated); +#else + fatal_error (_("%s: %s:%d: cannot allocate %lu bytes"), func, file, line, (unsigned long)bytes); +#endif /* !HAVE_SBRK */ +} + PTR_T sh_xmalloc (bytes, file, line) size_t bytes; @@ -141,17 +174,16 @@ sh_xmalloc (bytes, file, line) { PTR_T temp; +#if defined (DEBUG) + if (bytes == 0) + internal_warning("xmalloc: %s:%d: size argument is 0", file, line); +#endif + + FINDBRK(); temp = sh_malloc (bytes, file, line); if (temp == 0) - { -#if defined (HAVE_SBRK) - allocated = findbrk (); - fatal_error (_("xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"), file, line, (unsigned long)bytes, (unsigned long)allocated); -#else - fatal_error (_("xmalloc: %s:%d: cannot allocate %lu bytes"), file, line, (unsigned long)bytes); -#endif /* !HAVE_SBRK */ - } + sh_allocerr ("xmalloc", bytes, file, line); return (temp); } @@ -165,17 +197,16 @@ sh_xrealloc (pointer, bytes, file, line) { PTR_T temp; +#if defined (DEBUG) + if (bytes == 0) + internal_warning("xrealloc: %s:%d: size argument is 0", file, line); +#endif + + FINDBRK(); temp = pointer ? sh_realloc (pointer, bytes, file, line) : sh_malloc (bytes, file, line); if (temp == 0) - { -#if defined (HAVE_SBRK) - allocated = findbrk (); - fatal_error (_("xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"), file, line, (unsigned long)bytes, (unsigned long)allocated); -#else - fatal_error (_("xrealloc: %s:%d: cannot allocate %lu bytes"), file, line, (unsigned long)bytes); -#endif /* !HAVE_SBRK */ - } + sh_allocerr ("xrealloc", bytes, file, line); return (temp); } diff --git a/y.tab.c b/y.tab.c index 7fbd86e..d702554 100644 --- a/y.tab.c +++ b/y.tab.c @@ -90,27 +90,28 @@ TIMEOPT = 279, WORD = 280, ASSIGNMENT_WORD = 281, - NUMBER = 282, - ARITH_CMD = 283, - ARITH_FOR_EXPRS = 284, - COND_CMD = 285, - AND_AND = 286, - OR_OR = 287, - GREATER_GREATER = 288, - LESS_LESS = 289, - LESS_AND = 290, - LESS_LESS_LESS = 291, - GREATER_AND = 292, - SEMI_SEMI = 293, - SEMI_AND = 294, - SEMI_SEMI_AND = 295, - LESS_LESS_MINUS = 296, - AND_GREATER = 297, - AND_GREATER_GREATER = 298, - LESS_GREATER = 299, - GREATER_BAR = 300, - BAR_AND = 301, - yacc_EOF = 302 + REDIR_WORD = 282, + NUMBER = 283, + ARITH_CMD = 284, + ARITH_FOR_EXPRS = 285, + COND_CMD = 286, + AND_AND = 287, + OR_OR = 288, + GREATER_GREATER = 289, + LESS_LESS = 290, + LESS_AND = 291, + LESS_LESS_LESS = 292, + GREATER_AND = 293, + SEMI_SEMI = 294, + SEMI_AND = 295, + SEMI_SEMI_AND = 296, + LESS_LESS_MINUS = 297, + AND_GREATER = 298, + AND_GREATER_GREATER = 299, + LESS_GREATER = 300, + GREATER_BAR = 301, + BAR_AND = 302, + yacc_EOF = 303 }; #endif /* Tokens. */ @@ -138,27 +139,28 @@ #define TIMEOPT 279 #define WORD 280 #define ASSIGNMENT_WORD 281 -#define NUMBER 282 -#define ARITH_CMD 283 -#define ARITH_FOR_EXPRS 284 -#define COND_CMD 285 -#define AND_AND 286 -#define OR_OR 287 -#define GREATER_GREATER 288 -#define LESS_LESS 289 -#define LESS_AND 290 -#define LESS_LESS_LESS 291 -#define GREATER_AND 292 -#define SEMI_SEMI 293 -#define SEMI_AND 294 -#define SEMI_SEMI_AND 295 -#define LESS_LESS_MINUS 296 -#define AND_GREATER 297 -#define AND_GREATER_GREATER 298 -#define LESS_GREATER 299 -#define GREATER_BAR 300 -#define BAR_AND 301 -#define yacc_EOF 302 +#define REDIR_WORD 282 +#define NUMBER 283 +#define ARITH_CMD 284 +#define ARITH_FOR_EXPRS 285 +#define COND_CMD 286 +#define AND_AND 287 +#define OR_OR 288 +#define GREATER_GREATER 289 +#define LESS_LESS 290 +#define LESS_AND 291 +#define LESS_LESS_LESS 292 +#define GREATER_AND 293 +#define SEMI_SEMI 294 +#define SEMI_AND 295 +#define SEMI_SEMI_AND 296 +#define LESS_LESS_MINUS 297 +#define AND_GREATER 298 +#define AND_GREATER_GREATER 299 +#define LESS_GREATER 300 +#define GREATER_BAR 301 +#define BAR_AND 302 +#define yacc_EOF 303 @@ -265,6 +267,7 @@ extern int current_command_number; extern int sourcelevel, parse_and_execute_level; extern int posixly_correct; extern int last_command_exit_value; +extern pid_t last_command_subst_pid; extern char *shell_name, *current_host_name; extern char *dist_version; extern int patch_level; @@ -393,10 +396,6 @@ int promptvars = 1; quotes. */ int extended_quote = 1; -/* The decoded prompt string. Used if READLINE is not defined or if - editing is turned off. Analogous to current_readline_prompt. */ -static char *current_decoded_prompt; - /* The number of lines read from input while creating the current command. */ int current_command_line_count; @@ -406,6 +405,9 @@ int shell_eof_token; /* The token currently being read. */ int current_token; +/* The current parser state. */ +int parser_state; + /* Variables to manage the task of reading here documents, because we need to defer the reading until after a complete command has been collected. */ static REDIRECT *redir_stack[10]; @@ -430,8 +432,9 @@ static int function_bstart; /* The line number in a script at which an arithmetic for command starts. */ static int arith_for_lineno; -/* The current parser state. */ -static int parser_state; +/* The decoded prompt string. Used if READLINE is not defined or if + editing is turned off. Analogous to current_readline_prompt. */ +static char *current_decoded_prompt; /* The last read token, or NULL. read_token () uses this for context checking. */ @@ -443,6 +446,8 @@ static int token_before_that; /* The token read prior to token_before_that. */ static int two_tokens_ago; +static int global_extglob; + /* The line number in a script where the word in a `case WORD', `select WORD' or `for WORD' begins. This is a nested command maximum, since the array index is decremented after a case, select, or for command is parsed. */ @@ -457,6 +462,7 @@ static int word_top = -1; static int token_to_read; static WORD_DESC *word_desc_to_read; +static REDIRECTEE source; static REDIRECTEE redir; @@ -480,7 +486,7 @@ static REDIRECTEE redir; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 316 "/Users/chet/src/bash/src/parse.y" +#line 320 "/Users/chet/src/bash/src/parse.y" { WORD_DESC *word; /* the word that we read. */ int number; /* the number that we read. */ @@ -491,7 +497,7 @@ typedef union YYSTYPE PATTERN_LIST *pattern; } /* Line 187 of yacc.c. */ -#line 495 "y.tab.c" +#line 501 "y.tab.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -504,7 +510,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 508 "y.tab.c" +#line 514 "y.tab.c" #ifdef short # undef short @@ -717,22 +723,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 102 +#define YYFINAL 113 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 728 +#define YYLAST 760 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 59 +#define YYNTOKENS 60 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 38 /* YYNRULES -- Number of rules. */ -#define YYNRULES 153 +#define YYNRULES 167 /* YYNRULES -- Number of states. */ -#define YYNSTATES 319 +#define YYNSTATES 344 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 302 +#define YYMAXUTOK 303 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -741,18 +747,18 @@ union yyalloc static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 49, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 50, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 47, 2, - 57, 58, 2, 2, 2, 54, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 48, - 53, 2, 52, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 48, 2, + 58, 59, 2, 2, 2, 55, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 49, + 54, 2, 53, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 55, 51, 56, 2, 2, 2, 2, + 2, 2, 2, 56, 52, 57, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -770,7 +776,7 @@ static const yytype_uint8 yytranslate[] = 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 50 + 45, 46, 47, 51 }; #if YYDEBUG @@ -779,110 +785,118 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyprhs[] = { 0, 0, 3, 6, 8, 11, 13, 15, 18, 21, - 24, 28, 32, 35, 39, 42, 46, 49, 53, 56, - 60, 63, 67, 70, 74, 77, 81, 84, 88, 91, - 95, 98, 102, 105, 108, 112, 115, 118, 122, 124, - 126, 128, 130, 133, 135, 138, 140, 142, 145, 147, - 149, 151, 153, 159, 165, 167, 169, 171, 173, 175, - 177, 179, 186, 193, 201, 209, 220, 231, 241, 251, - 259, 267, 273, 279, 286, 293, 301, 309, 320, 331, - 338, 346, 353, 359, 366, 371, 373, 376, 380, 383, - 387, 391, 396, 399, 405, 413, 420, 424, 426, 430, - 435, 442, 448, 450, 453, 458, 463, 469, 475, 478, - 482, 485, 489, 492, 496, 498, 502, 505, 507, 510, - 514, 518, 522, 527, 532, 537, 542, 547, 549, 551, - 553, 555, 557, 559, 560, 563, 565, 568, 571, 576, - 581, 585, 589, 591, 593, 596, 599, 603, 607, 610, - 615, 620, 622, 624 + 24, 28, 32, 36, 40, 43, 47, 51, 54, 58, + 62, 65, 69, 73, 76, 80, 84, 87, 91, 95, + 98, 102, 106, 109, 113, 117, 120, 124, 128, 131, + 135, 139, 142, 146, 150, 153, 157, 161, 164, 168, + 172, 175, 178, 180, 182, 184, 186, 189, 191, 194, + 196, 198, 201, 203, 205, 207, 209, 215, 221, 223, + 225, 227, 229, 231, 233, 235, 242, 249, 257, 265, + 276, 287, 297, 307, 315, 323, 329, 335, 342, 349, + 357, 365, 376, 387, 394, 402, 409, 415, 422, 427, + 429, 432, 436, 439, 443, 447, 452, 455, 461, 469, + 476, 480, 482, 486, 491, 498, 504, 506, 509, 514, + 519, 525, 531, 534, 538, 541, 545, 548, 552, 554, + 558, 561, 563, 566, 570, 574, 578, 583, 588, 593, + 598, 603, 605, 607, 609, 611, 613, 615, 616, 619, + 621, 624, 627, 632, 637, 641, 645, 647, 649, 652, + 655, 659, 663, 666, 671, 676, 678, 680 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 60, 0, -1, 92, 89, -1, 49, -1, 1, 49, - -1, 50, -1, 25, -1, 61, 25, -1, 52, 25, - -1, 53, 25, -1, 27, 52, 25, -1, 27, 53, - 25, -1, 33, 25, -1, 27, 33, 25, -1, 34, - 25, -1, 27, 34, 25, -1, 36, 25, -1, 27, - 36, 25, -1, 35, 27, -1, 27, 35, 27, -1, - 37, 27, -1, 27, 37, 27, -1, 35, 25, -1, - 27, 35, 25, -1, 37, 25, -1, 27, 37, 25, - -1, 41, 25, -1, 27, 41, 25, -1, 37, 54, - -1, 27, 37, 54, -1, 35, 54, -1, 27, 35, - 54, -1, 42, 25, -1, 43, 25, -1, 27, 44, - 25, -1, 44, 25, -1, 45, 25, -1, 27, 45, - 25, -1, 25, -1, 26, -1, 62, -1, 62, -1, - 64, 62, -1, 63, -1, 65, 63, -1, 65, -1, - 67, -1, 67, 64, -1, 72, -1, 75, -1, 68, - -1, 71, -1, 12, 86, 14, 86, 15, -1, 13, - 86, 14, 86, 15, -1, 70, -1, 76, -1, 74, - -1, 77, -1, 78, -1, 79, -1, 69, -1, 10, - 25, 91, 14, 86, 15, -1, 10, 25, 91, 55, - 86, 56, -1, 10, 25, 48, 91, 14, 86, 15, - -1, 10, 25, 48, 91, 55, 86, 56, -1, 10, - 25, 91, 21, 61, 90, 91, 14, 86, 15, -1, - 10, 25, 91, 21, 61, 90, 91, 55, 86, 56, - -1, 10, 25, 91, 21, 90, 91, 14, 86, 15, - -1, 10, 25, 91, 21, 90, 91, 55, 86, 56, - -1, 10, 29, 90, 91, 14, 86, 15, -1, 10, - 29, 90, 91, 55, 86, 56, -1, 10, 29, 14, - 86, 15, -1, 10, 29, 55, 86, 56, -1, 11, - 25, 91, 14, 85, 15, -1, 11, 25, 91, 55, - 85, 56, -1, 11, 25, 48, 91, 14, 85, 15, - -1, 11, 25, 48, 91, 55, 85, 56, -1, 11, - 25, 91, 21, 61, 90, 91, 14, 85, 15, -1, - 11, 25, 91, 21, 61, 90, 91, 55, 85, 56, - -1, 8, 25, 91, 21, 91, 9, -1, 8, 25, - 91, 21, 83, 91, 9, -1, 8, 25, 91, 21, - 81, 9, -1, 25, 57, 58, 91, 73, -1, 16, - 25, 57, 58, 91, 73, -1, 16, 25, 91, 73, - -1, 67, -1, 67, 64, -1, 57, 86, 58, -1, - 17, 67, -1, 17, 67, 64, -1, 17, 25, 67, - -1, 17, 25, 67, 64, -1, 17, 65, -1, 3, - 86, 4, 86, 7, -1, 3, 86, 4, 86, 5, - 86, 7, -1, 3, 86, 4, 86, 80, 7, -1, - 55, 86, 56, -1, 28, -1, 18, 30, 19, -1, - 6, 86, 4, 86, -1, 6, 86, 4, 86, 5, - 86, -1, 6, 86, 4, 86, 80, -1, 82, -1, - 83, 82, -1, 91, 84, 58, 86, -1, 91, 84, - 58, 91, -1, 91, 57, 84, 58, 86, -1, 91, - 57, 84, 58, 91, -1, 82, 38, -1, 83, 82, - 38, -1, 82, 39, -1, 83, 82, 39, -1, 82, - 40, -1, 83, 82, 40, -1, 25, -1, 84, 51, - 25, -1, 91, 87, -1, 85, -1, 91, 88, -1, - 88, 49, 91, -1, 88, 47, 91, -1, 88, 48, - 91, -1, 88, 31, 91, 88, -1, 88, 32, 91, - 88, -1, 88, 47, 91, 88, -1, 88, 48, 91, - 88, -1, 88, 49, 91, 88, -1, 94, -1, 49, - -1, 50, -1, 49, -1, 48, -1, 50, -1, -1, - 91, 49, -1, 93, -1, 93, 47, -1, 93, 48, - -1, 93, 31, 91, 93, -1, 93, 32, 91, 93, - -1, 93, 47, 93, -1, 93, 48, 93, -1, 94, - -1, 95, -1, 22, 95, -1, 96, 95, -1, 96, - 22, 95, -1, 22, 96, 95, -1, 96, 90, -1, - 95, 51, 91, 95, -1, 95, 46, 91, 95, -1, - 66, -1, 23, -1, 23, 24, -1 + 61, 0, -1, 93, 90, -1, 50, -1, 1, 50, + -1, 51, -1, 25, -1, 62, 25, -1, 53, 25, + -1, 54, 25, -1, 28, 53, 25, -1, 28, 54, + 25, -1, 27, 53, 25, -1, 27, 54, 25, -1, + 34, 25, -1, 28, 34, 25, -1, 27, 34, 25, + -1, 46, 25, -1, 28, 46, 25, -1, 27, 46, + 25, -1, 45, 25, -1, 28, 45, 25, -1, 27, + 45, 25, -1, 35, 25, -1, 28, 35, 25, -1, + 27, 35, 25, -1, 42, 25, -1, 28, 42, 25, + -1, 27, 42, 25, -1, 37, 25, -1, 28, 37, + 25, -1, 27, 37, 25, -1, 36, 28, -1, 28, + 36, 28, -1, 27, 36, 28, -1, 38, 28, -1, + 28, 38, 28, -1, 27, 38, 28, -1, 36, 25, + -1, 28, 36, 25, -1, 27, 36, 25, -1, 38, + 25, -1, 28, 38, 25, -1, 27, 38, 25, -1, + 38, 55, -1, 28, 38, 55, -1, 27, 38, 55, + -1, 36, 55, -1, 28, 36, 55, -1, 27, 36, + 55, -1, 43, 25, -1, 44, 25, -1, 25, -1, + 26, -1, 63, -1, 63, -1, 65, 63, -1, 64, + -1, 66, 64, -1, 66, -1, 68, -1, 68, 65, + -1, 73, -1, 76, -1, 69, -1, 72, -1, 12, + 87, 14, 87, 15, -1, 13, 87, 14, 87, 15, + -1, 71, -1, 77, -1, 75, -1, 78, -1, 79, + -1, 80, -1, 70, -1, 10, 25, 92, 14, 87, + 15, -1, 10, 25, 92, 56, 87, 57, -1, 10, + 25, 49, 92, 14, 87, 15, -1, 10, 25, 49, + 92, 56, 87, 57, -1, 10, 25, 92, 21, 62, + 91, 92, 14, 87, 15, -1, 10, 25, 92, 21, + 62, 91, 92, 56, 87, 57, -1, 10, 25, 92, + 21, 91, 92, 14, 87, 15, -1, 10, 25, 92, + 21, 91, 92, 56, 87, 57, -1, 10, 30, 91, + 92, 14, 87, 15, -1, 10, 30, 91, 92, 56, + 87, 57, -1, 10, 30, 14, 87, 15, -1, 10, + 30, 56, 87, 57, -1, 11, 25, 92, 14, 86, + 15, -1, 11, 25, 92, 56, 86, 57, -1, 11, + 25, 49, 92, 14, 86, 15, -1, 11, 25, 49, + 92, 56, 86, 57, -1, 11, 25, 92, 21, 62, + 91, 92, 14, 86, 15, -1, 11, 25, 92, 21, + 62, 91, 92, 56, 86, 57, -1, 8, 25, 92, + 21, 92, 9, -1, 8, 25, 92, 21, 84, 92, + 9, -1, 8, 25, 92, 21, 82, 9, -1, 25, + 58, 59, 92, 74, -1, 16, 25, 58, 59, 92, + 74, -1, 16, 25, 92, 74, -1, 68, -1, 68, + 65, -1, 58, 87, 59, -1, 17, 68, -1, 17, + 68, 65, -1, 17, 25, 68, -1, 17, 25, 68, + 65, -1, 17, 66, -1, 3, 87, 4, 87, 7, + -1, 3, 87, 4, 87, 5, 87, 7, -1, 3, + 87, 4, 87, 81, 7, -1, 56, 87, 57, -1, + 29, -1, 18, 31, 19, -1, 6, 87, 4, 87, + -1, 6, 87, 4, 87, 5, 87, -1, 6, 87, + 4, 87, 81, -1, 83, -1, 84, 83, -1, 92, + 85, 59, 87, -1, 92, 85, 59, 92, -1, 92, + 58, 85, 59, 87, -1, 92, 58, 85, 59, 92, + -1, 83, 39, -1, 84, 83, 39, -1, 83, 40, + -1, 84, 83, 40, -1, 83, 41, -1, 84, 83, + 41, -1, 25, -1, 85, 52, 25, -1, 92, 88, + -1, 86, -1, 92, 89, -1, 89, 50, 92, -1, + 89, 48, 92, -1, 89, 49, 92, -1, 89, 32, + 92, 89, -1, 89, 33, 92, 89, -1, 89, 48, + 92, 89, -1, 89, 49, 92, 89, -1, 89, 50, + 92, 89, -1, 95, -1, 50, -1, 51, -1, 50, + -1, 49, -1, 51, -1, -1, 92, 50, -1, 94, + -1, 94, 48, -1, 94, 49, -1, 94, 32, 92, + 94, -1, 94, 33, 92, 94, -1, 94, 48, 94, + -1, 94, 49, 94, -1, 95, -1, 96, -1, 22, + 96, -1, 97, 96, -1, 97, 22, 96, -1, 22, + 97, 96, -1, 97, 91, -1, 96, 52, 92, 96, + -1, 96, 47, 92, 96, -1, 67, -1, 23, -1, + 23, 24, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 369, 369, 380, 389, 404, 414, 416, 420, 425, - 430, 435, 440, 445, 450, 456, 462, 467, 472, 477, - 482, 487, 492, 497, 502, 507, 512, 519, 526, 531, - 536, 541, 546, 551, 556, 561, 566, 571, 578, 580, - 582, 586, 590, 601, 603, 607, 609, 611, 627, 629, - 633, 635, 637, 639, 641, 643, 645, 647, 649, 651, - 653, 657, 662, 667, 672, 677, 682, 687, 692, 699, - 704, 709, 714, 721, 726, 731, 736, 741, 746, 753, - 758, 763, 770, 773, 776, 780, 782, 813, 820, 825, - 842, 847, 864, 871, 873, 875, 880, 884, 888, 892, - 894, 896, 900, 901, 905, 907, 909, 911, 915, 917, - 919, 921, 923, 925, 929, 931, 940, 948, 949, 955, - 956, 963, 967, 969, 971, 978, 980, 982, 986, 987, - 990, 992, 994, 998, 999, 1008, 1021, 1037, 1052, 1054, - 1056, 1063, 1066, 1070, 1072, 1078, 1084, 1090, 1096, 1116, - 1118, 1140, 1144, 1146 + 0, 373, 373, 384, 393, 408, 418, 420, 424, 430, + 436, 442, 448, 454, 460, 466, 472, 478, 484, 490, + 496, 502, 508, 514, 521, 528, 535, 542, 549, 556, + 562, 568, 574, 580, 586, 592, 598, 604, 610, 616, + 622, 628, 634, 640, 646, 652, 658, 664, 670, 676, + 682, 688, 696, 698, 700, 704, 708, 719, 721, 725, + 727, 729, 745, 747, 751, 753, 755, 757, 759, 761, + 763, 765, 767, 769, 771, 775, 780, 785, 790, 795, + 800, 805, 810, 817, 822, 827, 832, 839, 844, 849, + 854, 859, 864, 871, 876, 881, 888, 891, 894, 898, + 900, 931, 938, 943, 960, 965, 982, 989, 991, 993, + 998, 1002, 1006, 1010, 1012, 1014, 1018, 1019, 1023, 1025, + 1027, 1029, 1033, 1035, 1037, 1039, 1041, 1043, 1047, 1049, + 1058, 1066, 1067, 1073, 1074, 1081, 1085, 1087, 1089, 1096, + 1098, 1100, 1104, 1105, 1108, 1110, 1112, 1116, 1117, 1126, + 1139, 1155, 1170, 1172, 1174, 1181, 1184, 1188, 1190, 1196, + 1202, 1208, 1214, 1234, 1236, 1259, 1263, 1265 }; #endif @@ -894,8 +908,8 @@ static const char *const yytname[] = "$end", "error", "$undefined", "IF", "THEN", "ELSE", "ELIF", "FI", "CASE", "ESAC", "FOR", "SELECT", "WHILE", "UNTIL", "DO", "DONE", "FUNCTION", "COPROC", "COND_START", "COND_END", "COND_ERROR", "IN", - "BANG", "TIME", "TIMEOPT", "WORD", "ASSIGNMENT_WORD", "NUMBER", - "ARITH_CMD", "ARITH_FOR_EXPRS", "COND_CMD", "AND_AND", "OR_OR", + "BANG", "TIME", "TIMEOPT", "WORD", "ASSIGNMENT_WORD", "REDIR_WORD", + "NUMBER", "ARITH_CMD", "ARITH_FOR_EXPRS", "COND_CMD", "AND_AND", "OR_OR", "GREATER_GREATER", "LESS_LESS", "LESS_AND", "LESS_LESS_LESS", "GREATER_AND", "SEMI_SEMI", "SEMI_AND", "SEMI_SEMI_AND", "LESS_LESS_MINUS", "AND_GREATER", "AND_GREATER_GREATER", "LESS_GREATER", @@ -922,51 +936,53 @@ static const yytype_uint16 yytoknum[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 38, 59, 10, - 302, 124, 62, 60, 45, 123, 125, 40, 41 + 295, 296, 297, 298, 299, 300, 301, 302, 38, 59, + 10, 303, 124, 62, 60, 45, 123, 125, 40, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 59, 60, 60, 60, 60, 61, 61, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, - 63, 64, 64, 65, 65, 66, 66, 66, 66, 66, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 68, 68, 68, 68, 68, 68, 68, 68, 69, - 69, 69, 69, 70, 70, 70, 70, 70, 70, 71, - 71, 71, 72, 72, 72, 73, 73, 74, 75, 75, - 75, 75, 75, 76, 76, 76, 77, 78, 79, 80, - 80, 80, 81, 81, 82, 82, 82, 82, 83, 83, - 83, 83, 83, 83, 84, 84, 85, 86, 86, 87, - 87, 87, 88, 88, 88, 88, 88, 88, 89, 89, - 90, 90, 90, 91, 91, 92, 92, 92, 93, 93, - 93, 93, 93, 94, 94, 94, 94, 94, 94, 95, - 95, 95, 96, 96 + 0, 60, 61, 61, 61, 61, 62, 62, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 64, 64, 64, 65, 65, 66, 66, 67, + 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, + 69, 69, 69, 70, 70, 70, 70, 71, 71, 71, + 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, + 74, 75, 76, 76, 76, 76, 76, 77, 77, 77, + 78, 79, 80, 81, 81, 81, 82, 82, 83, 83, + 83, 83, 84, 84, 84, 84, 84, 84, 85, 85, + 86, 87, 87, 88, 88, 88, 89, 89, 89, 89, + 89, 89, 90, 90, 91, 91, 91, 92, 92, 93, + 93, 93, 94, 94, 94, 94, 94, 95, 95, 95, + 95, 95, 95, 96, 96, 96, 97, 97 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 2, 1, 2, 1, 1, 2, 2, 2, - 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, - 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, - 2, 3, 2, 2, 3, 2, 2, 3, 1, 1, - 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, - 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, - 1, 6, 6, 7, 7, 10, 10, 9, 9, 7, - 7, 5, 5, 6, 6, 7, 7, 10, 10, 6, - 7, 6, 5, 6, 4, 1, 2, 3, 2, 3, - 3, 4, 2, 5, 7, 6, 3, 1, 3, 4, - 6, 5, 1, 2, 4, 4, 5, 5, 2, 3, - 2, 3, 2, 3, 1, 3, 2, 1, 2, 3, - 3, 3, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 0, 2, 1, 2, 2, 4, 4, - 3, 3, 1, 1, 2, 2, 3, 3, 2, 4, - 4, 1, 1, 2 + 3, 3, 3, 3, 2, 3, 3, 2, 3, 3, + 2, 3, 3, 2, 3, 3, 2, 3, 3, 2, + 3, 3, 2, 3, 3, 2, 3, 3, 2, 3, + 3, 2, 3, 3, 2, 3, 3, 2, 3, 3, + 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, + 1, 2, 1, 1, 1, 1, 5, 5, 1, 1, + 1, 1, 1, 1, 1, 6, 6, 7, 7, 10, + 10, 9, 9, 7, 7, 5, 5, 6, 6, 7, + 7, 10, 10, 6, 7, 6, 5, 6, 4, 1, + 2, 3, 2, 3, 3, 4, 2, 5, 7, 6, + 3, 1, 3, 4, 6, 5, 1, 2, 4, 4, + 5, 5, 2, 3, 2, 3, 2, 3, 1, 3, + 2, 1, 2, 3, 3, 3, 4, 4, 4, 4, + 4, 1, 1, 1, 1, 1, 1, 0, 2, 1, + 2, 2, 4, 4, 3, 3, 1, 1, 2, 2, + 3, 3, 2, 4, 4, 1, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -974,95 +990,101 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 133, 0, 0, 0, 133, 133, 0, 0, - 0, 0, 152, 38, 39, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, - 0, 133, 133, 0, 40, 43, 45, 151, 46, 50, - 60, 54, 51, 48, 56, 49, 55, 57, 58, 59, - 0, 135, 142, 143, 0, 4, 117, 0, 0, 133, - 133, 0, 133, 0, 0, 133, 38, 92, 88, 0, - 144, 0, 153, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 14, 22, 18, 30, 16, - 24, 20, 28, 26, 32, 33, 35, 36, 8, 9, - 0, 0, 1, 38, 44, 41, 47, 128, 129, 2, - 133, 133, 136, 137, 133, 133, 0, 131, 130, 132, - 148, 145, 133, 134, 116, 118, 127, 0, 133, 0, - 133, 133, 133, 133, 0, 133, 133, 0, 0, 90, - 89, 98, 147, 133, 13, 15, 23, 19, 31, 17, - 25, 21, 29, 27, 34, 37, 10, 11, 96, 87, - 42, 0, 0, 140, 141, 0, 0, 146, 0, 133, - 133, 133, 133, 133, 133, 0, 133, 0, 133, 0, - 0, 0, 0, 133, 0, 133, 0, 0, 133, 85, - 84, 91, 0, 138, 139, 0, 0, 150, 149, 133, - 133, 93, 0, 0, 0, 120, 121, 119, 0, 102, - 133, 0, 133, 133, 0, 6, 0, 133, 0, 71, - 72, 133, 133, 133, 133, 0, 0, 0, 0, 52, - 53, 0, 86, 82, 0, 0, 95, 122, 123, 124, - 125, 126, 81, 108, 110, 112, 103, 0, 79, 114, - 0, 0, 0, 0, 61, 7, 133, 0, 62, 0, - 0, 0, 0, 73, 0, 133, 74, 83, 94, 133, - 133, 133, 133, 109, 111, 113, 80, 0, 0, 133, - 63, 64, 0, 133, 133, 69, 70, 75, 76, 0, - 99, 0, 0, 0, 133, 115, 104, 105, 133, 133, - 0, 0, 133, 133, 133, 101, 106, 107, 0, 0, - 67, 68, 0, 0, 100, 65, 66, 77, 78 + 0, 0, 147, 0, 0, 0, 147, 147, 0, 0, + 0, 0, 166, 52, 53, 0, 0, 111, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, + 0, 0, 147, 147, 0, 54, 57, 59, 165, 60, + 64, 74, 68, 65, 62, 70, 63, 69, 71, 72, + 73, 0, 149, 156, 157, 0, 4, 131, 0, 0, + 147, 147, 0, 147, 0, 0, 147, 52, 106, 102, + 0, 158, 0, 167, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 23, 38, 32, 47, + 29, 41, 35, 44, 26, 50, 51, 20, 17, 8, + 9, 0, 0, 1, 52, 58, 55, 61, 142, 143, + 2, 147, 147, 150, 151, 147, 147, 0, 145, 144, + 146, 162, 159, 147, 148, 130, 132, 141, 0, 147, + 0, 147, 147, 147, 147, 0, 147, 147, 0, 0, + 104, 103, 112, 161, 147, 16, 25, 40, 34, 49, + 31, 43, 37, 46, 28, 22, 19, 12, 13, 15, + 24, 39, 33, 48, 30, 42, 36, 45, 27, 21, + 18, 10, 11, 110, 101, 56, 0, 0, 154, 155, + 0, 0, 160, 0, 147, 147, 147, 147, 147, 147, + 0, 147, 0, 147, 0, 0, 0, 0, 147, 0, + 147, 0, 0, 147, 99, 98, 105, 0, 152, 153, + 0, 0, 164, 163, 147, 147, 107, 0, 0, 0, + 134, 135, 133, 0, 116, 147, 0, 147, 147, 0, + 6, 0, 147, 0, 85, 86, 147, 147, 147, 147, + 0, 0, 0, 0, 66, 67, 0, 100, 96, 0, + 0, 109, 136, 137, 138, 139, 140, 95, 122, 124, + 126, 117, 0, 93, 128, 0, 0, 0, 0, 75, + 7, 147, 0, 76, 0, 0, 0, 0, 87, 0, + 147, 88, 97, 108, 147, 147, 147, 147, 123, 125, + 127, 94, 0, 0, 147, 77, 78, 0, 147, 147, + 83, 84, 89, 90, 0, 113, 0, 0, 0, 147, + 129, 118, 119, 147, 147, 0, 0, 147, 147, 147, + 115, 120, 121, 0, 0, 81, 82, 0, 0, 114, + 79, 80, 91, 92 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 33, 216, 34, 35, 106, 36, 37, 38, 39, - 40, 41, 42, 43, 190, 44, 45, 46, 47, 48, - 49, 202, 208, 209, 210, 251, 56, 57, 124, 125, - 109, 120, 58, 50, 163, 126, 53, 54 + -1, 34, 241, 35, 36, 117, 37, 38, 39, 40, + 41, 42, 43, 44, 215, 45, 46, 47, 48, 49, + 50, 227, 233, 234, 235, 276, 57, 58, 135, 136, + 120, 131, 59, 51, 188, 137, 54, 55 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -188 +#define YYPACT_NINF -212 static const yytype_int16 yypact[] = { - 293, -26, -188, 7, 41, 43, -188, -188, 46, 629, - -17, 485, 11, 23, -188, 675, -188, 65, 68, 96, - 77, 119, 92, 124, 127, 140, 143, -188, -188, 149, - 154, -188, -188, 98, -188, -188, 662, -188, 208, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - 24, 12, -188, -36, 341, -188, -188, 177, 389, -188, - 142, 8, 147, 169, 185, 148, 200, 662, 208, 181, - -36, 581, -188, 146, 184, 189, 130, 192, 135, 197, - 198, 202, 207, 209, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - 180, 167, -188, -188, -188, -188, 208, -188, -188, -188, - -188, -188, 437, 437, -188, -188, 581, -188, -188, -188, - -188, -36, -188, -188, -188, 227, -188, -12, -188, 20, - -188, -188, -188, -188, 122, -188, -188, 179, 37, 208, - 208, -188, -36, -188, -188, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, - -188, 389, 389, 53, 53, 533, 533, -36, 224, -188, - -188, -188, -188, -188, -188, 40, -188, 171, -188, 233, - 190, 48, 73, -188, 247, -188, 239, 267, -188, 208, - -188, 208, 37, -188, -188, 437, 437, -36, -36, -188, - -188, -188, 276, 389, 389, 389, 389, 389, 275, 226, - -188, 42, -188, -188, 270, -188, 231, -188, 230, -188, - -188, -188, -188, -188, -188, 272, 389, 231, 234, -188, - -188, 37, 208, -188, 282, 287, -188, -188, -188, 76, - 76, 76, -188, -188, -188, -188, 229, 63, -188, -188, - 274, -27, 280, 241, -188, -188, -188, 99, -188, 285, - 246, 292, 252, -188, 227, -188, -188, -188, -188, -188, - -188, -188, -188, -188, -188, -188, -188, -22, 288, -188, - -188, -188, 131, -188, -188, -188, -188, -188, -188, 133, - 129, 389, 389, 389, -188, -188, -188, 389, -188, -188, - 297, 258, -188, -188, -188, -188, -188, 389, 302, 266, - -188, -188, 308, 268, -188, -188, -188, -188, -188 + 318, -40, -212, 11, 10, 32, -212, -212, 34, 661, + 39, 514, 52, 21, -212, 255, 706, -212, 65, 79, + 47, 98, 55, 133, 134, 139, 151, 152, -212, -212, + 156, 157, -212, -212, 142, -212, -212, 232, -212, 693, + -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, 49, 213, -212, -28, 367, -212, -212, 150, 416, + -212, 135, -3, 137, 184, 194, 158, 31, 232, 693, + 191, -28, 612, -212, 166, 199, 202, 69, 209, 128, + 210, 214, 218, 219, 225, 227, 247, 165, 248, 181, + 256, 257, 258, 259, 262, -212, -212, -212, -212, -212, + -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, 237, 236, -212, -212, -212, -212, 693, -212, -212, + -212, -212, -212, 465, 465, -212, -212, 612, -212, -212, + -212, -212, -28, -212, -212, -212, 205, -212, -13, -212, + 116, -212, -212, -212, -212, 117, -212, -212, 240, 53, + 693, 693, -212, -28, -212, -212, -212, -212, -212, -212, + -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, -212, -212, -212, -212, -212, 416, 416, 75, 75, + 563, 563, -28, 15, -212, -212, -212, -212, -212, -212, + 72, -212, 120, -212, 281, 249, 105, 118, -212, 279, + -212, 290, 292, -212, 693, -212, 693, 53, -212, -212, + 465, 465, -28, -28, -212, -212, -212, 303, 416, 416, + 416, 416, 416, 302, 174, -212, 0, -212, -212, 297, + -212, 179, -212, 263, -212, -212, -212, -212, -212, -212, + 299, 416, 179, 265, -212, -212, 53, 693, -212, 308, + 312, -212, -212, -212, 80, 80, 80, -212, -212, -212, + -212, 224, 43, -212, -212, 300, 33, 309, 270, -212, + -212, -212, 129, -212, 317, 276, 322, 282, -212, 205, + -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, + -212, -212, 46, 313, -212, -212, -212, 149, -212, -212, + -212, -212, -212, -212, 161, 115, 416, 416, 416, -212, + -212, -212, 416, -212, -212, 327, 291, -212, -212, -212, + -212, -212, 416, 334, 293, -212, -212, 336, 301, -212, + -212, -212, -212, -212 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -188, -188, 141, -30, -25, -62, 322, -188, -5, -188, - -188, -188, -188, -188, -185, -188, -188, -188, -188, -188, - -188, 49, -188, 123, -188, 82, -171, -6, -188, -187, - -188, -58, -32, -188, 5, 2, 10, 329 + -212, -212, 148, -36, 1, -62, 350, -212, -5, -212, + -212, -212, -212, -212, -211, -212, -212, -212, -212, -212, + -212, 50, -212, 131, -212, 92, -194, -6, -212, -200, + -212, -45, -48, -212, 5, 2, 12, 362 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1072,156 +1094,164 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 63, 64, 52, 132, 68, 51, 140, 233, 105, 174, - 114, 104, 225, 69, 228, 115, 237, 238, 239, 240, - 241, 70, 130, 55, 278, 100, 101, 127, 129, 278, - 134, 279, 59, 138, 176, 72, 294, 123, 105, 264, - 2, 177, 104, 110, 111, 3, 267, 4, 5, 6, - 7, 248, 261, 262, 212, 10, 117, 118, 119, 112, - 113, 139, 221, 131, 121, 16, 60, 249, 62, 123, - 61, 65, 276, 107, 108, 178, 160, 191, 161, 162, - 73, 142, 165, 166, 110, 111, 123, 223, 249, 123, - 84, 123, 31, 85, 32, 213, 175, 123, 102, 250, - 181, 182, 89, 222, 239, 240, 241, 169, 170, 105, - 160, 192, 123, 283, 52, 52, 168, 93, 164, 217, - 250, 86, 123, 87, 179, 180, 167, 232, 224, 186, - 187, 312, 313, 189, 304, 200, 183, 203, 204, 205, - 206, 207, 211, 184, 90, 298, 91, 302, 123, 94, - 88, 226, 95, 226, 284, 146, 231, 147, 256, 105, - 150, 160, 151, 52, 52, 96, 193, 194, 97, 265, - 214, 123, 218, 92, 98, 197, 198, 185, 247, 99, - 123, 122, 123, 135, 148, 257, 299, 189, 303, 152, - 128, 226, 226, 234, 235, 133, 215, 52, 52, 136, - 141, 164, 160, 2, 143, 137, 252, 253, 3, 144, - 4, 5, 6, 7, 145, 259, 260, 149, 10, 117, - 118, 119, 153, 154, 282, 159, 189, 155, 16, 199, - 200, 201, 156, 289, 157, 15, 158, 188, 291, 292, - 293, 17, 18, 19, 20, 21, 220, 297, 219, 22, - 23, 24, 25, 26, 229, 31, 255, 32, 169, 170, - 29, 30, 307, 290, 243, 244, 245, 273, 274, 275, - 226, 226, 215, 296, 171, 172, 173, 300, 301, 117, - 118, 119, 230, 236, 242, 254, 258, 263, 306, 268, - 266, 269, 308, 309, 1, 280, 2, 281, 314, 249, - 285, 3, 286, 4, 5, 6, 7, 287, 288, 8, - 9, 10, 310, 295, 311, 11, 12, 315, 13, 14, - 15, 16, 316, 317, 318, 227, 17, 18, 19, 20, - 21, 67, 277, 246, 22, 23, 24, 25, 26, 305, - 71, 0, 27, 28, 2, 29, 30, 0, 31, 3, - 32, 4, 5, 6, 7, 0, 0, 8, 9, 10, - 0, 0, 0, 116, 0, 0, 13, 14, 15, 16, - 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, - 0, 0, 22, 23, 24, 25, 26, 0, 0, 117, - 118, 119, 2, 29, 30, 0, 31, 3, 32, 4, - 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, - 0, 11, 12, 0, 13, 14, 15, 16, 0, 0, - 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, - 22, 23, 24, 25, 26, 0, 0, 0, 123, 0, - 2, 29, 30, 0, 31, 3, 32, 4, 5, 6, - 7, 0, 0, 8, 9, 10, 0, 0, 0, 11, - 12, 0, 13, 14, 15, 16, 0, 0, 0, 0, - 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, - 24, 25, 26, 0, 0, 0, 0, 0, 2, 29, - 30, 0, 31, 3, 32, 4, 5, 6, 7, 0, - 0, 8, 9, 10, 0, 0, 0, 0, 12, 0, - 13, 14, 15, 16, 0, 0, 0, 0, 17, 18, - 19, 20, 21, 0, 0, 0, 22, 23, 24, 25, - 26, 0, 0, 0, 0, 0, 2, 29, 30, 0, - 31, 3, 32, 4, 5, 6, 7, 0, 0, 8, + 64, 65, 53, 116, 69, 52, 258, 151, 199, 273, + 56, 141, 138, 140, 250, 145, 253, 143, 149, 125, + 224, 225, 226, 71, 126, 274, 111, 112, 262, 263, + 264, 265, 266, 116, 2, 61, 60, 134, 115, 3, + 62, 4, 5, 6, 7, 292, 128, 129, 130, 10, + 134, 289, 301, 142, 286, 287, 2, 63, 275, 66, + 17, 3, 150, 4, 5, 6, 7, 132, 274, 115, + 70, 10, 97, 186, 187, 98, 73, 190, 191, 74, + 101, 185, 17, 102, 153, 303, 237, 32, 216, 33, + 95, 200, 304, 134, 157, 206, 207, 158, 303, 118, + 119, 275, 99, 134, 96, 319, 217, 121, 122, 32, + 103, 33, 194, 195, 116, 185, 264, 265, 266, 246, + 329, 225, 134, 100, 159, 53, 53, 193, 238, 189, + 201, 208, 248, 337, 338, 204, 205, 202, 209, 192, + 211, 212, 113, 308, 214, 240, 228, 229, 230, 231, + 232, 236, 257, 161, 133, 134, 162, 242, 104, 105, + 251, 247, 251, 323, 106, 256, 134, 134, 134, 128, + 129, 130, 203, 210, 249, 327, 107, 108, 116, 134, + 185, 109, 110, 163, 139, 309, 144, 272, 53, 53, + 171, 218, 219, 172, 282, 239, 281, 243, 146, 134, + 251, 251, 222, 223, 280, 324, 175, 290, 147, 176, + 152, 134, 214, 268, 269, 270, 148, 328, 259, 260, + 173, 185, 53, 53, 155, 154, 189, 156, 128, 129, + 130, 277, 278, 307, 160, 164, 177, 194, 195, 165, + 284, 285, 314, 166, 167, 121, 122, 316, 317, 318, + 168, 214, 169, 196, 197, 198, 322, 114, 14, 15, + 16, 123, 124, 298, 299, 300, 18, 19, 20, 21, + 22, 332, 170, 174, 23, 24, 25, 26, 27, 251, + 251, 178, 179, 180, 181, 30, 31, 182, 315, 75, + 76, 77, 78, 79, 183, 184, 244, 80, 321, 213, + 81, 82, 325, 326, 240, 254, 245, 255, 83, 84, + 261, 267, 279, 331, 288, 293, 294, 333, 334, 1, + 283, 2, 291, 339, 305, 274, 3, 306, 4, 5, + 6, 7, 310, 311, 8, 9, 10, 312, 320, 313, + 11, 12, 335, 13, 14, 15, 16, 17, 336, 340, + 341, 342, 18, 19, 20, 21, 22, 252, 343, 68, + 23, 24, 25, 26, 27, 330, 271, 302, 28, 29, + 2, 30, 31, 72, 32, 3, 33, 4, 5, 6, + 7, 0, 0, 8, 9, 10, 0, 0, 0, 127, + 0, 0, 13, 14, 15, 16, 17, 0, 0, 0, + 0, 18, 19, 20, 21, 22, 0, 0, 0, 23, + 24, 25, 26, 27, 0, 0, 128, 129, 130, 2, + 30, 31, 0, 32, 3, 33, 4, 5, 6, 7, + 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, + 0, 13, 14, 15, 16, 17, 0, 0, 0, 0, + 18, 19, 20, 21, 22, 0, 0, 0, 23, 24, + 25, 26, 27, 0, 0, 0, 134, 0, 2, 30, + 31, 0, 32, 3, 33, 4, 5, 6, 7, 0, + 0, 8, 9, 10, 0, 0, 0, 11, 12, 0, + 13, 14, 15, 16, 17, 0, 0, 0, 0, 18, + 19, 20, 21, 22, 0, 0, 0, 23, 24, 25, + 26, 27, 0, 0, 0, 0, 0, 2, 30, 31, + 0, 32, 3, 33, 4, 5, 6, 7, 0, 0, + 8, 9, 10, 0, 0, 0, 0, 12, 0, 13, + 14, 15, 16, 17, 0, 0, 0, 0, 18, 19, + 20, 21, 22, 0, 0, 0, 23, 24, 25, 26, + 27, 0, 0, 0, 0, 0, 2, 30, 31, 0, + 32, 3, 33, 4, 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, 0, 0, 0, 0, 13, 14, - 15, 16, 0, 0, 0, 0, 17, 18, 19, 20, - 21, 0, 0, 0, 22, 23, 24, 25, 26, 0, - 0, 0, 123, 0, 2, 29, 30, 0, 31, 3, - 32, 4, 5, 6, 7, 0, 0, 8, 9, 10, - 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, - 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, - 0, 0, 22, 23, 24, 25, 26, 0, 0, 0, - 0, 0, 2, 29, 30, 0, 31, 3, 32, 4, - 5, 6, 7, 0, 0, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 66, 14, 15, 16, 0, 0, - 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, - 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, - 0, 29, 30, 0, 31, 0, 32, 103, 14, 15, - 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, - 0, 0, 0, 22, 23, 24, 25, 26, 74, 75, - 76, 77, 78, 0, 29, 30, 79, 0, 0, 80, - 81, 0, 0, 0, 0, 0, 0, 82, 83 + 15, 16, 17, 0, 0, 0, 0, 18, 19, 20, + 21, 22, 0, 0, 0, 23, 24, 25, 26, 27, + 0, 0, 0, 134, 0, 2, 30, 31, 0, 32, + 3, 33, 4, 5, 6, 7, 0, 0, 8, 9, + 10, 0, 0, 0, 0, 0, 0, 13, 14, 15, + 16, 17, 0, 0, 0, 0, 18, 19, 20, 21, + 22, 0, 0, 0, 23, 24, 25, 26, 27, 0, + 0, 0, 0, 0, 2, 30, 31, 0, 32, 3, + 33, 4, 5, 6, 7, 0, 0, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 67, 14, 15, 16, + 17, 0, 0, 0, 0, 18, 19, 20, 21, 22, + 0, 0, 0, 23, 24, 25, 26, 27, 0, 0, + 0, 0, 0, 0, 30, 31, 0, 32, 0, 33, + 15, 16, 0, 0, 0, 0, 0, 18, 19, 20, + 21, 22, 0, 0, 0, 23, 24, 25, 26, 27, + 85, 86, 87, 88, 89, 0, 30, 31, 90, 0, + 0, 91, 92, 0, 0, 0, 0, 0, 0, 93, + 94 }; static const yytype_int16 yycheck[] = { - 6, 7, 0, 61, 9, 0, 68, 192, 38, 21, - 46, 36, 183, 30, 185, 51, 203, 204, 205, 206, - 207, 11, 14, 49, 51, 31, 32, 59, 60, 51, - 62, 58, 25, 65, 14, 24, 58, 49, 68, 226, - 3, 21, 67, 31, 32, 8, 231, 10, 11, 12, - 13, 9, 223, 224, 14, 18, 48, 49, 50, 47, - 48, 66, 14, 55, 54, 28, 25, 25, 25, 49, - 29, 25, 9, 49, 50, 55, 106, 139, 110, 111, - 57, 71, 114, 115, 31, 32, 49, 14, 25, 49, - 25, 49, 55, 25, 57, 55, 128, 49, 0, 57, - 132, 133, 25, 55, 291, 292, 293, 31, 32, 139, - 140, 143, 49, 14, 112, 113, 122, 25, 113, 177, - 57, 25, 49, 27, 130, 131, 116, 189, 55, 135, - 136, 302, 303, 138, 5, 6, 14, 169, 170, 171, - 172, 173, 174, 21, 25, 14, 27, 14, 49, 25, - 54, 183, 25, 185, 55, 25, 188, 27, 216, 189, - 25, 191, 27, 161, 162, 25, 161, 162, 25, 227, - 176, 49, 178, 54, 25, 165, 166, 55, 210, 25, - 49, 4, 49, 14, 54, 217, 55, 192, 55, 54, - 48, 223, 224, 199, 200, 48, 25, 195, 196, 14, - 19, 196, 232, 3, 58, 57, 212, 213, 8, 25, - 10, 11, 12, 13, 25, 221, 222, 25, 18, 48, - 49, 50, 25, 25, 256, 58, 231, 25, 28, 5, - 6, 7, 25, 265, 25, 27, 56, 58, 270, 271, - 272, 33, 34, 35, 36, 37, 56, 279, 15, 41, - 42, 43, 44, 45, 15, 55, 25, 57, 31, 32, - 52, 53, 294, 269, 38, 39, 40, 38, 39, 40, - 302, 303, 25, 279, 47, 48, 49, 283, 284, 48, - 49, 50, 15, 7, 9, 15, 56, 15, 294, 7, - 56, 4, 298, 299, 1, 15, 3, 56, 304, 25, - 15, 8, 56, 10, 11, 12, 13, 15, 56, 16, - 17, 18, 15, 25, 56, 22, 23, 15, 25, 26, - 27, 28, 56, 15, 56, 184, 33, 34, 35, 36, - 37, 9, 250, 210, 41, 42, 43, 44, 45, 290, - 11, -1, 49, 50, 3, 52, 53, -1, 55, 8, - 57, 10, 11, 12, 13, -1, -1, 16, 17, 18, - -1, -1, -1, 22, -1, -1, 25, 26, 27, 28, - -1, -1, -1, -1, 33, 34, 35, 36, 37, -1, - -1, -1, 41, 42, 43, 44, 45, -1, -1, 48, - 49, 50, 3, 52, 53, -1, 55, 8, 57, 10, - 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, - -1, 22, 23, -1, 25, 26, 27, 28, -1, -1, - -1, -1, 33, 34, 35, 36, 37, -1, -1, -1, - 41, 42, 43, 44, 45, -1, -1, -1, 49, -1, - 3, 52, 53, -1, 55, 8, 57, 10, 11, 12, + 6, 7, 0, 39, 9, 0, 217, 69, 21, 9, + 50, 14, 60, 61, 208, 63, 210, 62, 66, 47, + 5, 6, 7, 11, 52, 25, 32, 33, 228, 229, + 230, 231, 232, 69, 3, 25, 25, 50, 37, 8, + 30, 10, 11, 12, 13, 256, 49, 50, 51, 18, + 50, 251, 9, 56, 248, 249, 3, 25, 58, 25, + 29, 8, 67, 10, 11, 12, 13, 55, 25, 68, + 31, 18, 25, 121, 122, 28, 24, 125, 126, 58, + 25, 117, 29, 28, 72, 52, 14, 56, 150, 58, + 25, 139, 59, 50, 25, 143, 144, 28, 52, 50, + 51, 58, 55, 50, 25, 59, 154, 32, 33, 56, + 55, 58, 32, 33, 150, 151, 316, 317, 318, 14, + 5, 6, 50, 25, 55, 123, 124, 133, 56, 124, + 14, 14, 14, 327, 328, 141, 142, 21, 21, 127, + 146, 147, 0, 14, 149, 25, 194, 195, 196, 197, + 198, 199, 214, 25, 4, 50, 28, 202, 25, 25, + 208, 56, 210, 14, 25, 213, 50, 50, 50, 49, + 50, 51, 56, 56, 56, 14, 25, 25, 214, 50, + 216, 25, 25, 55, 49, 56, 49, 235, 186, 187, + 25, 186, 187, 28, 242, 201, 241, 203, 14, 50, + 248, 249, 190, 191, 25, 56, 25, 252, 14, 28, + 19, 50, 217, 39, 40, 41, 58, 56, 224, 225, + 55, 257, 220, 221, 25, 59, 221, 25, 49, 50, + 51, 237, 238, 281, 25, 25, 55, 32, 33, 25, + 246, 247, 290, 25, 25, 32, 33, 295, 296, 297, + 25, 256, 25, 48, 49, 50, 304, 25, 26, 27, + 28, 48, 49, 39, 40, 41, 34, 35, 36, 37, + 38, 319, 25, 25, 42, 43, 44, 45, 46, 327, + 328, 25, 25, 25, 25, 53, 54, 25, 294, 34, + 35, 36, 37, 38, 57, 59, 15, 42, 304, 59, + 45, 46, 308, 309, 25, 15, 57, 15, 53, 54, + 7, 9, 15, 319, 15, 7, 4, 323, 324, 1, + 57, 3, 57, 329, 15, 25, 8, 57, 10, 11, + 12, 13, 15, 57, 16, 17, 18, 15, 25, 57, + 22, 23, 15, 25, 26, 27, 28, 29, 57, 15, + 57, 15, 34, 35, 36, 37, 38, 209, 57, 9, + 42, 43, 44, 45, 46, 315, 235, 275, 50, 51, + 3, 53, 54, 11, 56, 8, 58, 10, 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, -1, 22, - 23, -1, 25, 26, 27, 28, -1, -1, -1, -1, - 33, 34, 35, 36, 37, -1, -1, -1, 41, 42, - 43, 44, 45, -1, -1, -1, -1, -1, 3, 52, - 53, -1, 55, 8, 57, 10, 11, 12, 13, -1, - -1, 16, 17, 18, -1, -1, -1, -1, 23, -1, - 25, 26, 27, 28, -1, -1, -1, -1, 33, 34, - 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, - 45, -1, -1, -1, -1, -1, 3, 52, 53, -1, - 55, 8, 57, 10, 11, 12, 13, -1, -1, 16, + -1, -1, 25, 26, 27, 28, 29, -1, -1, -1, + -1, 34, 35, 36, 37, 38, -1, -1, -1, 42, + 43, 44, 45, 46, -1, -1, 49, 50, 51, 3, + 53, 54, -1, 56, 8, 58, 10, 11, 12, 13, + -1, -1, 16, 17, 18, -1, -1, -1, 22, 23, + -1, 25, 26, 27, 28, 29, -1, -1, -1, -1, + 34, 35, 36, 37, 38, -1, -1, -1, 42, 43, + 44, 45, 46, -1, -1, -1, 50, -1, 3, 53, + 54, -1, 56, 8, 58, 10, 11, 12, 13, -1, + -1, 16, 17, 18, -1, -1, -1, 22, 23, -1, + 25, 26, 27, 28, 29, -1, -1, -1, -1, 34, + 35, 36, 37, 38, -1, -1, -1, 42, 43, 44, + 45, 46, -1, -1, -1, -1, -1, 3, 53, 54, + -1, 56, 8, 58, 10, 11, 12, 13, -1, -1, + 16, 17, 18, -1, -1, -1, -1, 23, -1, 25, + 26, 27, 28, 29, -1, -1, -1, -1, 34, 35, + 36, 37, 38, -1, -1, -1, 42, 43, 44, 45, + 46, -1, -1, -1, -1, -1, 3, 53, 54, -1, + 56, 8, 58, 10, 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, -1, -1, -1, -1, 25, 26, - 27, 28, -1, -1, -1, -1, 33, 34, 35, 36, - 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, - -1, -1, 49, -1, 3, 52, 53, -1, 55, 8, - 57, 10, 11, 12, 13, -1, -1, 16, 17, 18, + 27, 28, 29, -1, -1, -1, -1, 34, 35, 36, + 37, 38, -1, -1, -1, 42, 43, 44, 45, 46, + -1, -1, -1, 50, -1, 3, 53, 54, -1, 56, + 8, 58, 10, 11, 12, 13, -1, -1, 16, 17, + 18, -1, -1, -1, -1, -1, -1, 25, 26, 27, + 28, 29, -1, -1, -1, -1, 34, 35, 36, 37, + 38, -1, -1, -1, 42, 43, 44, 45, 46, -1, + -1, -1, -1, -1, 3, 53, 54, -1, 56, 8, + 58, 10, 11, 12, 13, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, - -1, -1, -1, -1, 33, 34, 35, 36, 37, -1, - -1, -1, 41, 42, 43, 44, 45, -1, -1, -1, - -1, -1, 3, 52, 53, -1, 55, 8, 57, 10, - 11, 12, 13, -1, -1, -1, -1, 18, -1, -1, - -1, -1, -1, -1, 25, 26, 27, 28, -1, -1, - -1, -1, 33, 34, 35, 36, 37, -1, -1, -1, - 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, - -1, 52, 53, -1, 55, -1, 57, 25, 26, 27, - -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, - -1, -1, -1, 41, 42, 43, 44, 45, 33, 34, - 35, 36, 37, -1, 52, 53, 41, -1, -1, 44, - 45, -1, -1, -1, -1, -1, -1, 52, 53 + 29, -1, -1, -1, -1, 34, 35, 36, 37, 38, + -1, -1, -1, 42, 43, 44, 45, 46, -1, -1, + -1, -1, -1, -1, 53, 54, -1, 56, -1, 58, + 27, 28, -1, -1, -1, -1, -1, 34, 35, 36, + 37, 38, -1, -1, -1, 42, 43, 44, 45, 46, + 34, 35, 36, 37, 38, -1, 53, 54, 42, -1, + -1, 45, 46, -1, -1, -1, -1, -1, -1, 53, + 54 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1229,37 +1259,40 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 0, 1, 3, 8, 10, 11, 12, 13, 16, 17, - 18, 22, 23, 25, 26, 27, 28, 33, 34, 35, - 36, 37, 41, 42, 43, 44, 45, 49, 50, 52, - 53, 55, 57, 60, 62, 63, 65, 66, 67, 68, - 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, - 92, 93, 94, 95, 96, 49, 85, 86, 91, 25, - 25, 29, 25, 86, 86, 25, 25, 65, 67, 30, - 95, 96, 24, 57, 33, 34, 35, 36, 37, 41, - 44, 45, 52, 53, 25, 25, 25, 27, 54, 25, - 25, 27, 54, 25, 25, 25, 25, 25, 25, 25, - 86, 86, 0, 25, 63, 62, 64, 49, 50, 89, - 31, 32, 47, 48, 46, 51, 22, 48, 49, 50, - 90, 95, 4, 49, 87, 88, 94, 91, 48, 91, - 14, 55, 90, 48, 91, 14, 14, 57, 91, 67, - 64, 19, 95, 58, 25, 25, 25, 27, 54, 25, - 25, 27, 54, 25, 25, 25, 25, 25, 56, 58, - 62, 91, 91, 93, 93, 91, 91, 95, 86, 31, - 32, 47, 48, 49, 21, 91, 14, 21, 55, 86, - 86, 91, 91, 14, 21, 55, 86, 86, 58, 67, - 73, 64, 91, 93, 93, 47, 48, 95, 95, 5, - 6, 7, 80, 91, 91, 91, 91, 91, 81, 82, - 83, 91, 14, 55, 86, 25, 61, 90, 86, 15, - 56, 14, 55, 14, 55, 85, 91, 61, 85, 15, - 15, 91, 64, 73, 86, 86, 7, 88, 88, 88, - 88, 88, 9, 38, 39, 40, 82, 91, 9, 25, - 57, 84, 86, 86, 15, 25, 90, 91, 56, 86, - 86, 85, 85, 15, 88, 90, 56, 73, 7, 4, - 47, 48, 49, 38, 39, 40, 9, 84, 51, 58, - 15, 56, 91, 14, 55, 15, 56, 15, 56, 91, - 86, 91, 91, 91, 58, 25, 86, 91, 14, 55, - 86, 86, 14, 55, 5, 80, 86, 91, 86, 86, - 15, 56, 85, 85, 86, 15, 56, 15, 56 + 18, 22, 23, 25, 26, 27, 28, 29, 34, 35, + 36, 37, 38, 42, 43, 44, 45, 46, 50, 51, + 53, 54, 56, 58, 61, 63, 64, 66, 67, 68, + 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, + 80, 93, 94, 95, 96, 97, 50, 86, 87, 92, + 25, 25, 30, 25, 87, 87, 25, 25, 66, 68, + 31, 96, 97, 24, 58, 34, 35, 36, 37, 38, + 42, 45, 46, 53, 54, 34, 35, 36, 37, 38, + 42, 45, 46, 53, 54, 25, 25, 25, 28, 55, + 25, 25, 28, 55, 25, 25, 25, 25, 25, 25, + 25, 87, 87, 0, 25, 64, 63, 65, 50, 51, + 90, 32, 33, 48, 49, 47, 52, 22, 49, 50, + 51, 91, 96, 4, 50, 88, 89, 95, 92, 49, + 92, 14, 56, 91, 49, 92, 14, 14, 58, 92, + 68, 65, 19, 96, 59, 25, 25, 25, 28, 55, + 25, 25, 28, 55, 25, 25, 25, 25, 25, 25, + 25, 25, 28, 55, 25, 25, 28, 55, 25, 25, + 25, 25, 25, 57, 59, 63, 92, 92, 94, 94, + 92, 92, 96, 87, 32, 33, 48, 49, 50, 21, + 92, 14, 21, 56, 87, 87, 92, 92, 14, 21, + 56, 87, 87, 59, 68, 74, 65, 92, 94, 94, + 48, 49, 96, 96, 5, 6, 7, 81, 92, 92, + 92, 92, 92, 82, 83, 84, 92, 14, 56, 87, + 25, 62, 91, 87, 15, 57, 14, 56, 14, 56, + 86, 92, 62, 86, 15, 15, 92, 65, 74, 87, + 87, 7, 89, 89, 89, 89, 89, 9, 39, 40, + 41, 83, 92, 9, 25, 58, 85, 87, 87, 15, + 25, 91, 92, 57, 87, 87, 86, 86, 15, 89, + 91, 57, 74, 7, 4, 48, 49, 50, 39, 40, + 41, 9, 85, 52, 59, 15, 57, 92, 14, 56, + 15, 57, 15, 57, 92, 87, 92, 92, 92, 59, + 25, 87, 92, 14, 56, 87, 87, 14, 56, 5, + 81, 87, 92, 87, 87, 15, 57, 86, 86, 87, + 15, 57, 15, 57 }; #define yyerrok (yyerrstatus = 0) @@ -2074,7 +2107,7 @@ yyreduce: switch (yyn) { case 2: -#line 370 "/Users/chet/src/bash/src/parse.y" +#line 374 "/Users/chet/src/bash/src/parse.y" { /* Case of regular command. Discard the error safety net,and return the command just parsed. */ @@ -2088,7 +2121,7 @@ yyreduce: break; case 3: -#line 381 "/Users/chet/src/bash/src/parse.y" +#line 385 "/Users/chet/src/bash/src/parse.y" { /* Case of regular command, but not a very interesting one. Return a NULL command. */ @@ -2100,7 +2133,7 @@ yyreduce: break; case 4: -#line 390 "/Users/chet/src/bash/src/parse.y" +#line 394 "/Users/chet/src/bash/src/parse.y" { /* Error during parsing. Return NULL command. */ global_command = (COMMAND *)NULL; @@ -2118,7 +2151,7 @@ yyreduce: break; case 5: -#line 405 "/Users/chet/src/bash/src/parse.y" +#line 409 "/Users/chet/src/bash/src/parse.y" { /* Case of EOF seen by itself. Do ignoreeof or not. */ @@ -2129,285 +2162,441 @@ yyreduce: break; case 6: -#line 415 "/Users/chet/src/bash/src/parse.y" +#line 419 "/Users/chet/src/bash/src/parse.y" { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } break; case 7: -#line 417 "/Users/chet/src/bash/src/parse.y" +#line 421 "/Users/chet/src/bash/src/parse.y" { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } break; case 8: -#line 421 "/Users/chet/src/bash/src/parse.y" +#line 425 "/Users/chet/src/bash/src/parse.y" { + source.dest = 1; redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (1, r_output_direction, redir); + (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); } break; case 9: -#line 426 "/Users/chet/src/bash/src/parse.y" +#line 431 "/Users/chet/src/bash/src/parse.y" { + source.dest = 0; redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (0, r_input_direction, redir); + (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); } break; case 10: -#line 431 "/Users/chet/src/bash/src/parse.y" +#line 437 "/Users/chet/src/bash/src/parse.y" { + source.dest = (yyvsp[(1) - (3)].number); redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_output_direction, redir); + (yyval.redirect) = make_redirection (source, r_output_direction, redir, 0); } break; case 11: -#line 436 "/Users/chet/src/bash/src/parse.y" +#line 443 "/Users/chet/src/bash/src/parse.y" { + source.dest = (yyvsp[(1) - (3)].number); redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_input_direction, redir); + (yyval.redirect) = make_redirection (source, r_input_direction, redir, 0); } break; case 12: -#line 441 "/Users/chet/src/bash/src/parse.y" +#line 449 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (1, r_appending_to, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_output_direction, redir, REDIR_VARASSIGN); } break; case 13: -#line 446 "/Users/chet/src/bash/src/parse.y" +#line 455 "/Users/chet/src/bash/src/parse.y" { + source.filename = (yyvsp[(1) - (3)].word); redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_appending_to, redir); + (yyval.redirect) = make_redirection (source, r_input_direction, redir, REDIR_VARASSIGN); } break; case 14: -#line 451 "/Users/chet/src/bash/src/parse.y" +#line 461 "/Users/chet/src/bash/src/parse.y" { + source.dest = 1; redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (0, r_reading_until, redir); - redir_stack[need_here_doc++] = (yyval.redirect); + (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); } break; case 15: -#line 457 "/Users/chet/src/bash/src/parse.y" +#line 467 "/Users/chet/src/bash/src/parse.y" { + source.dest = (yyvsp[(1) - (3)].number); redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_reading_until, redir); - redir_stack[need_here_doc++] = (yyval.redirect); + (yyval.redirect) = make_redirection (source, r_appending_to, redir, 0); } break; case 16: -#line 463 "/Users/chet/src/bash/src/parse.y" +#line 473 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (0, r_reading_string, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_appending_to, redir, REDIR_VARASSIGN); } break; case 17: -#line 468 "/Users/chet/src/bash/src/parse.y" +#line 479 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_reading_string, redir); + source.dest = 1; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); } break; case 18: -#line 473 "/Users/chet/src/bash/src/parse.y" +#line 485 "/Users/chet/src/bash/src/parse.y" { - redir.dest = (yyvsp[(2) - (2)].number); - (yyval.redirect) = make_redirection (0, r_duplicating_input, redir); + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_output_force, redir, 0); } break; case 19: -#line 478 "/Users/chet/src/bash/src/parse.y" +#line 491 "/Users/chet/src/bash/src/parse.y" { - redir.dest = (yyvsp[(3) - (3)].number); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_input, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_output_force, redir, REDIR_VARASSIGN); } break; case 20: -#line 483 "/Users/chet/src/bash/src/parse.y" +#line 497 "/Users/chet/src/bash/src/parse.y" { - redir.dest = (yyvsp[(2) - (2)].number); - (yyval.redirect) = make_redirection (1, r_duplicating_output, redir); + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); } break; case 21: -#line 488 "/Users/chet/src/bash/src/parse.y" +#line 503 "/Users/chet/src/bash/src/parse.y" { - redir.dest = (yyvsp[(3) - (3)].number); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_output, redir); + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_input_output, redir, 0); } break; case 22: -#line 493 "/Users/chet/src/bash/src/parse.y" +#line 509 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (0, r_duplicating_input_word, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_input_output, redir, REDIR_VARASSIGN); } break; case 23: -#line 498 "/Users/chet/src/bash/src/parse.y" +#line 515 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_input_word, redir); + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); + redir_stack[need_here_doc++] = (yyval.redirect); } break; case 24: -#line 503 "/Users/chet/src/bash/src/parse.y" +#line 522 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (1, r_duplicating_output_word, redir); + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); + redir_stack[need_here_doc++] = (yyval.redirect); } break; case 25: -#line 508 "/Users/chet/src/bash/src/parse.y" +#line 529 "/Users/chet/src/bash/src/parse.y" { + source.filename = (yyvsp[(1) - (3)].word); redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_output_word, redir); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); + redir_stack[need_here_doc++] = (yyval.redirect); } break; case 26: -#line 513 "/Users/chet/src/bash/src/parse.y" +#line 536 "/Users/chet/src/bash/src/parse.y" { + source.dest = 0; redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection - (0, r_deblank_reading_until, redir); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); redir_stack[need_here_doc++] = (yyval.redirect); } break; case 27: -#line 520 "/Users/chet/src/bash/src/parse.y" +#line 543 "/Users/chet/src/bash/src/parse.y" { + source.dest = (yyvsp[(1) - (3)].number); redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection - ((yyvsp[(1) - (3)].number), r_deblank_reading_until, redir); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); redir_stack[need_here_doc++] = (yyval.redirect); } break; case 28: -#line 527 "/Users/chet/src/bash/src/parse.y" +#line 550 "/Users/chet/src/bash/src/parse.y" { - redir.dest = 0; - (yyval.redirect) = make_redirection (1, r_close_this, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); + redir_stack[need_here_doc++] = (yyval.redirect); } break; case 29: -#line 532 "/Users/chet/src/bash/src/parse.y" +#line 557 "/Users/chet/src/bash/src/parse.y" { - redir.dest = 0; - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_close_this, redir); + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); } break; case 30: -#line 537 "/Users/chet/src/bash/src/parse.y" +#line 563 "/Users/chet/src/bash/src/parse.y" { - redir.dest = 0; - (yyval.redirect) = make_redirection (0, r_close_this, redir); + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_string, redir, 0); } break; case 31: -#line 542 "/Users/chet/src/bash/src/parse.y" +#line 569 "/Users/chet/src/bash/src/parse.y" { - redir.dest = 0; - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_close_this, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_string, redir, REDIR_VARASSIGN); } break; case 32: -#line 547 "/Users/chet/src/bash/src/parse.y" +#line 575 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (1, r_err_and_out, redir); + source.dest = 0; + redir.dest = (yyvsp[(2) - (2)].number); + (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); } break; case 33: -#line 552 "/Users/chet/src/bash/src/parse.y" +#line 581 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (1, r_append_err_and_out, redir); + source.dest = (yyvsp[(1) - (3)].number); + redir.dest = (yyvsp[(3) - (3)].number); + (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, 0); } break; case 34: -#line 557 "/Users/chet/src/bash/src/parse.y" +#line 587 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_input_output, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.dest = (yyvsp[(3) - (3)].number); + (yyval.redirect) = make_redirection (source, r_duplicating_input, redir, REDIR_VARASSIGN); } break; case 35: -#line 562 "/Users/chet/src/bash/src/parse.y" +#line 593 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (0, r_input_output, redir); + source.dest = 1; + redir.dest = (yyvsp[(2) - (2)].number); + (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); } break; case 36: -#line 567 "/Users/chet/src/bash/src/parse.y" +#line 599 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (1, r_output_force, redir); + source.dest = (yyvsp[(1) - (3)].number); + redir.dest = (yyvsp[(3) - (3)].number); + (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, 0); } break; case 37: -#line 572 "/Users/chet/src/bash/src/parse.y" +#line 605 "/Users/chet/src/bash/src/parse.y" { - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_output_force, redir); + source.filename = (yyvsp[(1) - (3)].word); + redir.dest = (yyvsp[(3) - (3)].number); + (yyval.redirect) = make_redirection (source, r_duplicating_output, redir, REDIR_VARASSIGN); } break; case 38: -#line 579 "/Users/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } +#line 611 "/Users/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); + } break; case 39: -#line 581 "/Users/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } +#line 617 "/Users/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, 0); + } break; case 40: -#line 583 "/Users/chet/src/bash/src/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } +#line 623 "/Users/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_duplicating_input_word, redir, REDIR_VARASSIGN); + } break; case 41: -#line 587 "/Users/chet/src/bash/src/parse.y" +#line 629 "/Users/chet/src/bash/src/parse.y" { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); + source.dest = 1; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); } break; case 42: -#line 591 "/Users/chet/src/bash/src/parse.y" +#line 635 "/Users/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, 0); + } + break; + + case 43: +#line 641 "/Users/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_duplicating_output_word, redir, REDIR_VARASSIGN); + } + break; + + case 44: +#line 647 "/Users/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } + break; + + case 45: +#line 653 "/Users/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } + break; + + case 46: +#line 659 "/Users/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); + } + break; + + case 47: +#line 665 "/Users/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } + break; + + case 48: +#line 671 "/Users/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, 0); + } + break; + + case 49: +#line 677 "/Users/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.dest = 0; + (yyval.redirect) = make_redirection (source, r_close_this, redir, REDIR_VARASSIGN); + } + break; + + case 50: +#line 683 "/Users/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_err_and_out, redir, 0); + } + break; + + case 51: +#line 689 "/Users/chet/src/bash/src/parse.y" + { + source.dest = 1; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_append_err_and_out, redir, 0); + } + break; + + case 52: +#line 697 "/Users/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 53: +#line 699 "/Users/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 54: +#line 701 "/Users/chet/src/bash/src/parse.y" + { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } + break; + + case 55: +#line 705 "/Users/chet/src/bash/src/parse.y" + { + (yyval.redirect) = (yyvsp[(1) - (1)].redirect); + } + break; + + case 56: +#line 709 "/Users/chet/src/bash/src/parse.y" { register REDIRECT *t; @@ -2418,28 +2607,28 @@ yyreduce: } break; - case 43: -#line 602 "/Users/chet/src/bash/src/parse.y" + case 57: +#line 720 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } break; - case 44: -#line 604 "/Users/chet/src/bash/src/parse.y" + case 58: +#line 722 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } break; - case 45: -#line 608 "/Users/chet/src/bash/src/parse.y" + case 59: +#line 726 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } break; - case 46: -#line 610 "/Users/chet/src/bash/src/parse.y" + case 60: +#line 728 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 47: -#line 612 "/Users/chet/src/bash/src/parse.y" + case 61: +#line 730 "/Users/chet/src/bash/src/parse.y" { COMMAND *tc; @@ -2457,261 +2646,261 @@ yyreduce: } break; - case 48: -#line 628 "/Users/chet/src/bash/src/parse.y" + case 62: +#line 746 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 49: -#line 630 "/Users/chet/src/bash/src/parse.y" + case 63: +#line 748 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 50: -#line 634 "/Users/chet/src/bash/src/parse.y" + case 64: +#line 752 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 51: -#line 636 "/Users/chet/src/bash/src/parse.y" + case 65: +#line 754 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 52: -#line 638 "/Users/chet/src/bash/src/parse.y" + case 66: +#line 756 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } break; - case 53: -#line 640 "/Users/chet/src/bash/src/parse.y" + case 67: +#line 758 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } break; - case 54: -#line 642 "/Users/chet/src/bash/src/parse.y" + case 68: +#line 760 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 55: -#line 644 "/Users/chet/src/bash/src/parse.y" + case 69: +#line 762 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 56: -#line 646 "/Users/chet/src/bash/src/parse.y" + case 70: +#line 764 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 57: -#line 648 "/Users/chet/src/bash/src/parse.y" + case 71: +#line 766 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 58: -#line 650 "/Users/chet/src/bash/src/parse.y" + case 72: +#line 768 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 59: -#line 652 "/Users/chet/src/bash/src/parse.y" + case 73: +#line 770 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 60: -#line 654 "/Users/chet/src/bash/src/parse.y" + case 74: +#line 772 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 61: -#line 658 "/Users/chet/src/bash/src/parse.y" + case 75: +#line 776 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 62: -#line 663 "/Users/chet/src/bash/src/parse.y" + case 76: +#line 781 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 63: -#line 668 "/Users/chet/src/bash/src/parse.y" + case 77: +#line 786 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 64: -#line 673 "/Users/chet/src/bash/src/parse.y" + case 78: +#line 791 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 65: -#line 678 "/Users/chet/src/bash/src/parse.y" + case 79: +#line 796 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 66: -#line 683 "/Users/chet/src/bash/src/parse.y" + case 80: +#line 801 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 67: -#line 688 "/Users/chet/src/bash/src/parse.y" + case 81: +#line 806 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 68: -#line 693 "/Users/chet/src/bash/src/parse.y" + case 82: +#line 811 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 69: -#line 700 "/Users/chet/src/bash/src/parse.y" + case 83: +#line 818 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); if (word_top > 0) word_top--; } break; - case 70: -#line 705 "/Users/chet/src/bash/src/parse.y" + case 84: +#line 823 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); if (word_top > 0) word_top--; } break; - case 71: -#line 710 "/Users/chet/src/bash/src/parse.y" + case 85: +#line 828 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); if (word_top > 0) word_top--; } break; - case 72: -#line 715 "/Users/chet/src/bash/src/parse.y" + case 86: +#line 833 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); if (word_top > 0) word_top--; } break; - case 73: -#line 722 "/Users/chet/src/bash/src/parse.y" + case 87: +#line 840 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 74: -#line 727 "/Users/chet/src/bash/src/parse.y" + case 88: +#line 845 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 75: -#line 732 "/Users/chet/src/bash/src/parse.y" + case 89: +#line 850 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 76: -#line 737 "/Users/chet/src/bash/src/parse.y" + case 90: +#line 855 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 77: -#line 742 "/Users/chet/src/bash/src/parse.y" + case 91: +#line 860 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 78: -#line 747 "/Users/chet/src/bash/src/parse.y" + case 92: +#line 865 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 79: -#line 754 "/Users/chet/src/bash/src/parse.y" + case 93: +#line 872 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 80: -#line 759 "/Users/chet/src/bash/src/parse.y" + case 94: +#line 877 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 81: -#line 764 "/Users/chet/src/bash/src/parse.y" + case 95: +#line 882 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); if (word_top > 0) word_top--; } break; - case 82: -#line 771 "/Users/chet/src/bash/src/parse.y" + case 96: +#line 889 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } break; - case 83: -#line 774 "/Users/chet/src/bash/src/parse.y" + case 97: +#line 892 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } break; - case 84: -#line 777 "/Users/chet/src/bash/src/parse.y" + case 98: +#line 895 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } break; - case 85: -#line 781 "/Users/chet/src/bash/src/parse.y" + case 99: +#line 899 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 86: -#line 783 "/Users/chet/src/bash/src/parse.y" + case 100: +#line 901 "/Users/chet/src/bash/src/parse.y" { COMMAND *tc; @@ -2742,24 +2931,24 @@ yyreduce: } break; - case 87: -#line 814 "/Users/chet/src/bash/src/parse.y" + case 101: +#line 932 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL; } break; - case 88: -#line 821 "/Users/chet/src/bash/src/parse.y" + case 102: +#line 939 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } break; - case 89: -#line 826 "/Users/chet/src/bash/src/parse.y" + case 103: +#line 944 "/Users/chet/src/bash/src/parse.y" { COMMAND *tc; @@ -2778,16 +2967,16 @@ yyreduce: } break; - case 90: -#line 843 "/Users/chet/src/bash/src/parse.y" + case 104: +#line 961 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } break; - case 91: -#line 848 "/Users/chet/src/bash/src/parse.y" + case 105: +#line 966 "/Users/chet/src/bash/src/parse.y" { COMMAND *tc; @@ -2806,126 +2995,126 @@ yyreduce: } break; - case 92: -#line 865 "/Users/chet/src/bash/src/parse.y" + case 106: +#line 983 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; } break; - case 93: -#line 872 "/Users/chet/src/bash/src/parse.y" + case 107: +#line 990 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } break; - case 94: -#line 874 "/Users/chet/src/bash/src/parse.y" + case 108: +#line 992 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } break; - case 95: -#line 876 "/Users/chet/src/bash/src/parse.y" + case 109: +#line 994 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } break; - case 96: -#line 881 "/Users/chet/src/bash/src/parse.y" + case 110: +#line 999 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } break; - case 97: -#line 885 "/Users/chet/src/bash/src/parse.y" + case 111: +#line 1003 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } break; - case 98: -#line 889 "/Users/chet/src/bash/src/parse.y" + case 112: +#line 1007 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(2) - (3)].command); } break; - case 99: -#line 893 "/Users/chet/src/bash/src/parse.y" + case 113: +#line 1011 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } break; - case 100: -#line 895 "/Users/chet/src/bash/src/parse.y" + case 114: +#line 1013 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } break; - case 101: -#line 897 "/Users/chet/src/bash/src/parse.y" + case 115: +#line 1015 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } break; - case 103: -#line 902 "/Users/chet/src/bash/src/parse.y" + case 117: +#line 1020 "/Users/chet/src/bash/src/parse.y" { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } break; - case 104: -#line 906 "/Users/chet/src/bash/src/parse.y" + case 118: +#line 1024 "/Users/chet/src/bash/src/parse.y" { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } break; - case 105: -#line 908 "/Users/chet/src/bash/src/parse.y" + case 119: +#line 1026 "/Users/chet/src/bash/src/parse.y" { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } break; - case 106: -#line 910 "/Users/chet/src/bash/src/parse.y" + case 120: +#line 1028 "/Users/chet/src/bash/src/parse.y" { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } break; - case 107: -#line 912 "/Users/chet/src/bash/src/parse.y" + case 121: +#line 1030 "/Users/chet/src/bash/src/parse.y" { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } break; - case 108: -#line 916 "/Users/chet/src/bash/src/parse.y" + case 122: +#line 1034 "/Users/chet/src/bash/src/parse.y" { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } break; - case 109: -#line 918 "/Users/chet/src/bash/src/parse.y" + case 123: +#line 1036 "/Users/chet/src/bash/src/parse.y" { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } break; - case 110: -#line 920 "/Users/chet/src/bash/src/parse.y" + case 124: +#line 1038 "/Users/chet/src/bash/src/parse.y" { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } break; - case 111: -#line 922 "/Users/chet/src/bash/src/parse.y" + case 125: +#line 1040 "/Users/chet/src/bash/src/parse.y" { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } break; - case 112: -#line 924 "/Users/chet/src/bash/src/parse.y" + case 126: +#line 1042 "/Users/chet/src/bash/src/parse.y" { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } break; - case 113: -#line 926 "/Users/chet/src/bash/src/parse.y" + case 127: +#line 1044 "/Users/chet/src/bash/src/parse.y" { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } break; - case 114: -#line 930 "/Users/chet/src/bash/src/parse.y" + case 128: +#line 1048 "/Users/chet/src/bash/src/parse.y" { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } break; - case 115: -#line 932 "/Users/chet/src/bash/src/parse.y" + case 129: +#line 1050 "/Users/chet/src/bash/src/parse.y" { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } break; - case 116: -#line 941 "/Users/chet/src/bash/src/parse.y" + case 130: +#line 1059 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(2) - (2)].command); if (need_here_doc) @@ -2933,15 +3122,15 @@ yyreduce: } break; - case 118: -#line 950 "/Users/chet/src/bash/src/parse.y" + case 132: +#line 1068 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(2) - (2)].command); } break; - case 120: -#line 957 "/Users/chet/src/bash/src/parse.y" + case 134: +#line 1075 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(1) - (3)].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[(1) - (3)].command), (COMMAND *)NULL, '&'); @@ -2950,18 +3139,18 @@ yyreduce: } break; - case 122: -#line 968 "/Users/chet/src/bash/src/parse.y" + case 136: +#line 1086 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } break; - case 123: -#line 970 "/Users/chet/src/bash/src/parse.y" + case 137: +#line 1088 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } break; - case 124: -#line 972 "/Users/chet/src/bash/src/parse.y" + case 138: +#line 1090 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(1) - (4)].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '&'); @@ -2970,38 +3159,38 @@ yyreduce: } break; - case 125: -#line 979 "/Users/chet/src/bash/src/parse.y" + case 139: +#line 1097 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } break; - case 126: -#line 981 "/Users/chet/src/bash/src/parse.y" + case 140: +#line 1099 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } break; - case 127: -#line 983 "/Users/chet/src/bash/src/parse.y" + case 141: +#line 1101 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 130: -#line 991 "/Users/chet/src/bash/src/parse.y" + case 144: +#line 1109 "/Users/chet/src/bash/src/parse.y" { (yyval.number) = '\n'; } break; - case 131: -#line 993 "/Users/chet/src/bash/src/parse.y" + case 145: +#line 1111 "/Users/chet/src/bash/src/parse.y" { (yyval.number) = ';'; } break; - case 132: -#line 995 "/Users/chet/src/bash/src/parse.y" + case 146: +#line 1113 "/Users/chet/src/bash/src/parse.y" { (yyval.number) = yacc_EOF; } break; - case 135: -#line 1009 "/Users/chet/src/bash/src/parse.y" + case 149: +#line 1127 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); if (need_here_doc) @@ -3016,8 +3205,8 @@ yyreduce: } break; - case 136: -#line 1022 "/Users/chet/src/bash/src/parse.y" + case 150: +#line 1140 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(1) - (2)].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[(1) - (2)].command), (COMMAND *)NULL, '&'); @@ -3035,8 +3224,8 @@ yyreduce: } break; - case 137: -#line 1038 "/Users/chet/src/bash/src/parse.y" + case 151: +#line 1156 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (2)].command); if (need_here_doc) @@ -3051,18 +3240,18 @@ yyreduce: } break; - case 138: -#line 1053 "/Users/chet/src/bash/src/parse.y" + case 152: +#line 1171 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } break; - case 139: -#line 1055 "/Users/chet/src/bash/src/parse.y" + case 153: +#line 1173 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } break; - case 140: -#line 1057 "/Users/chet/src/bash/src/parse.y" + case 154: +#line 1175 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(1) - (3)].command)->type == cm_connection) (yyval.command) = connect_async_list ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), '&'); @@ -3071,23 +3260,23 @@ yyreduce: } break; - case 141: -#line 1064 "/Users/chet/src/bash/src/parse.y" + case 155: +#line 1182 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } break; - case 142: -#line 1067 "/Users/chet/src/bash/src/parse.y" + case 156: +#line 1185 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 143: -#line 1071 "/Users/chet/src/bash/src/parse.y" + case 157: +#line 1189 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 144: -#line 1073 "/Users/chet/src/bash/src/parse.y" + case 158: +#line 1191 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(2) - (2)].command)) (yyvsp[(2) - (2)].command)->flags |= CMD_INVERT_RETURN; @@ -3095,8 +3284,8 @@ yyreduce: } break; - case 145: -#line 1079 "/Users/chet/src/bash/src/parse.y" + case 159: +#line 1197 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(2) - (2)].command)) (yyvsp[(2) - (2)].command)->flags |= (yyvsp[(1) - (2)].number); @@ -3104,8 +3293,8 @@ yyreduce: } break; - case 146: -#line 1085 "/Users/chet/src/bash/src/parse.y" + case 160: +#line 1203 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(3) - (3)].command)) (yyvsp[(3) - (3)].command)->flags |= (yyvsp[(1) - (3)].number)|CMD_INVERT_RETURN; @@ -3113,8 +3302,8 @@ yyreduce: } break; - case 147: -#line 1091 "/Users/chet/src/bash/src/parse.y" + case 161: +#line 1209 "/Users/chet/src/bash/src/parse.y" { if ((yyvsp[(3) - (3)].command)) (yyvsp[(3) - (3)].command)->flags |= (yyvsp[(2) - (3)].number)|CMD_INVERT_RETURN; @@ -3122,8 +3311,8 @@ yyreduce: } break; - case 148: -#line 1097 "/Users/chet/src/bash/src/parse.y" + case 162: +#line 1215 "/Users/chet/src/bash/src/parse.y" { ELEMENT x; @@ -3142,22 +3331,23 @@ yyreduce: } break; - case 149: -#line 1117 "/Users/chet/src/bash/src/parse.y" + case 163: +#line 1235 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } break; - case 150: -#line 1119 "/Users/chet/src/bash/src/parse.y" + case 164: +#line 1237 "/Users/chet/src/bash/src/parse.y" { /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ COMMAND *tc; - REDIRECTEE rd; + REDIRECTEE rd, sd; REDIRECT *r; - tc = (yyvsp[(1) - (4)].command); + tc = (yyvsp[(1) - (4)].command)->type == cm_simple ? (COMMAND *)(yyvsp[(1) - (4)].command)->value.Simple : (yyvsp[(1) - (4)].command); + sd.dest = 2; rd.dest = 1; - r = make_redirection (2, r_duplicating_output, rd); + r = make_redirection (sd, r_duplicating_output, rd, 0); if (tc->redirects) { register REDIRECT *t; @@ -3172,24 +3362,24 @@ yyreduce: } break; - case 151: -#line 1141 "/Users/chet/src/bash/src/parse.y" + case 165: +#line 1260 "/Users/chet/src/bash/src/parse.y" { (yyval.command) = (yyvsp[(1) - (1)].command); } break; - case 152: -#line 1145 "/Users/chet/src/bash/src/parse.y" + case 166: +#line 1264 "/Users/chet/src/bash/src/parse.y" { (yyval.number) = CMD_TIME_PIPELINE; } break; - case 153: -#line 1147 "/Users/chet/src/bash/src/parse.y" + case 167: +#line 1266 "/Users/chet/src/bash/src/parse.y" { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } break; /* Line 1267 of yacc.c. */ -#line 3193 "y.tab.c" +#line 3383 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3403,7 +3593,7 @@ yyreturn: } -#line 1149 "/Users/chet/src/bash/src/parse.y" +#line 1268 "/Users/chet/src/bash/src/parse.y" /* Initial size to allocate for tokens, and the @@ -3873,10 +4063,11 @@ save_token_state () { int *ret; - ret = (int *)xmalloc (3 * sizeof (int)); + ret = (int *)xmalloc (4 * sizeof (int)); ret[0] = last_read_token; ret[1] = token_before_that; ret[2] = two_tokens_ago; + ret[3] = current_token; return ret; } @@ -3889,6 +4080,7 @@ restore_token_state (ts) last_read_token = ts[0]; token_before_that = ts[1]; two_tokens_ago = ts[2]; + current_token = ts[3]; } /* @@ -4042,7 +4234,7 @@ read_a_line (remove_quoted_newline) { static char *line_buffer = (char *)NULL; static int buffer_size = 0; - int indx = 0, c, peekc, pass_next; + int indx, c, peekc, pass_next; #if defined (READLINE) if (no_line_editing && SHOULD_PROMPT ()) @@ -4051,7 +4243,7 @@ read_a_line (remove_quoted_newline) #endif print_prompt (); - pass_next = 0; + pass_next = indx = 0; while (1) { /* Allow immediate exit if interrupted during input. */ @@ -4135,7 +4327,7 @@ read_secondary_line (remove_quoted_newline) prompt_again (); ret = read_a_line (remove_quoted_newline); #if defined (HISTORY) - if (remember_on_history && (parser_state & PST_HEREDOC)) + if (ret && remember_on_history && (parser_state & PST_HEREDOC)) { /* To make adding the the here-document body right, we need to rely on history_delimiting_chars() returning \n for the first line of @@ -4491,6 +4683,7 @@ shell_getc (remove_quoted_newline) because we have fully consumed the result of the last alias expansion. Do it transparently; just return the next character of the string popped to. */ +pop_alias: if (!uc && (pushed_string_list != (STRING_SAVER *)NULL)) { pop_string (); @@ -4505,6 +4698,17 @@ shell_getc (remove_quoted_newline) if (SHOULD_PROMPT ()) prompt_again (); line_number++; + /* XXX - what do we do here if we're expanding an alias whose definition + ends with a newline? Recall that we inhibit the appending of a + space in mk_alexpansion() if newline is the last character. */ +#if 0 /* XXX - bash-4.2 (jonathan@claggett.org) */ + if (expanding_alias () && shell_input_line[shell_input_line_index+1] == '\0') + { + uc = 0; + goto pop_alias; + } +#endif + goto restart_read; } @@ -4652,7 +4856,7 @@ gather_here_documents () static int open_brace_count; #define command_token_position(token) \ - (((token) == ASSIGNMENT_WORD) || \ + (((token) == ASSIGNMENT_WORD) || (parser_state&PST_REDIRLIST) || \ ((token) != SEMI_SEMI && (token) != SEMI_AND && (token) != SEMI_SEMI_AND && reserved_word_acceptable(token))) #define assignment_acceptable(token) \ @@ -4715,7 +4919,11 @@ mk_alexpansion (s) l = strlen (s); r = xmalloc (l + 2); strcpy (r, s); +#if 0 /* XXX - bash-4.2 */ + if (r[l -1] != ' ' && r[l -1] != '\n') +#else if (r[l -1] != ' ') +#endif r[l++] = ' '; r[l] = '\0'; return r; @@ -4909,6 +5117,12 @@ reset_parser () dstack.delimiter_depth = 0; /* No delimiters found so far. */ open_brace_count = 0; +#if defined (EXTENDED_GLOB) + /* Reset to global value of extended glob */ + if (parser_state & PST_EXTPAT) + extended_glob = global_extglob; +#endif + parser_state = 0; #if defined (ALIAS) || defined (DPAREN_ARITHMETIC) @@ -4926,6 +5140,7 @@ reset_parser () FREE (word_desc_to_read); word_desc_to_read = (WORD_DESC *)NULL; + current_token = '\n'; /* XXX */ last_read_token = '\n'; token_to_read = '\n'; } @@ -5173,6 +5388,7 @@ tokword: #define P_DQUOTE 0x04 #define P_COMMAND 0x08 /* parsing a command, so look for comments */ #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ +#define P_ARRAYSUB 0x20 /* parsing a [...] array subscript for assignment */ /* Lexical state while parsing a grouping construct or $(...). */ #define LEX_WASDOL 0x001 @@ -5185,6 +5401,7 @@ tokword: #define LEX_INHEREDOC 0x080 #define LEX_HEREDELIM 0x100 /* reading here-doc delimiter */ #define LEX_STRIPDOC 0x200 /* <<- strip tabs from here doc delim */ +#define LEX_INWORD 0x400 #define COMSUB_META(ch) ((ch) == ';' || (ch) == '&' || (ch) == '|') @@ -5220,7 +5437,7 @@ parse_matched_pair (qc, open, close, lenp, flags) char *ret, *nestret, *ttrans; int retind, retsize, rflags; -/* itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */ +/*itrace("parse_matched_pair[%d]: open = %c close = %c flags = %d", line_number, open, close, flags);*/ count = 1; tflags = 0; @@ -5387,6 +5604,8 @@ parse_matched_pair (qc, open, close, lenp, flags) APPEND_NESTRET (); FREE (nestret); } + else if ((flags & P_ARRAYSUB) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + goto parse_dollar_word; } /* Parse an old-style command substitution within double quotes as a single word. */ @@ -5403,6 +5622,7 @@ parse_matched_pair (qc, open, close, lenp, flags) else if MBTEST(open != '`' && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ /* check for $(), $[], or ${} inside quoted string. */ { +parse_dollar_word: if (open == ch) /* undo previous increment */ count--; if (ch == '(') /* ) */ @@ -5426,6 +5646,7 @@ parse_matched_pair (qc, open, close, lenp, flags) ret[retind] = '\0'; if (lenp) *lenp = retind; +/*itrace("parse_matched_pair[%d]: returning %s", line_number, ret);*/ return ret; } @@ -5437,7 +5658,7 @@ parse_comsub (qc, open, close, lenp, flags) int open, close; int *lenp, flags; { - int count, ch, peekc, tflags, lex_rwlen, lex_firstind; + int count, ch, peekc, tflags, lex_rwlen, lex_wlen, lex_firstind; int nestlen, ttranslen, start_lineno; char *ret, *nestret, *ttrans, *heredelim; int retind, retsize, rflags, hdlen; @@ -5458,7 +5679,7 @@ parse_comsub (qc, open, close, lenp, flags) retind = 0; start_lineno = line_number; - lex_rwlen = 0; + lex_rwlen = lex_wlen = 0; heredelim = 0; lex_firstind = -1; @@ -5501,6 +5722,8 @@ eof_error: { tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC); /*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/ + free (heredelim); + heredelim = 0; lex_firstind = -1; } else @@ -5512,6 +5735,25 @@ eof_error: if (ch == '\n' && SHOULD_PROMPT ()) prompt_again (); + /* XXX -- possibly allow here doc to be delimited by ending right + paren. */ + if ((tflags & LEX_INHEREDOC) && ch == close && count == 1) + { + int tind; +/*itrace("parse_comsub: in here doc, ch == close, retind - firstind = %d hdlen = %d retind = %d", retind-lex_firstind, hdlen, retind);*/ + tind = lex_firstind; + while ((tflags & LEX_STRIPDOC) && ret[tind] == '\t') + tind++; + if (retind-tind == hdlen && STREQN (ret + tind, heredelim, hdlen)) + { + tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC); +/*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/ + free (heredelim); + heredelim = 0; + lex_firstind = -1; + } + } + /* Don't bother counting parens or doing anything else if in a comment */ if (tflags & (LEX_INCOMMENT|LEX_INHEREDOC)) { @@ -5520,11 +5762,54 @@ eof_error: ret[retind++] = ch; if ((tflags & LEX_INCOMMENT) && ch == '\n') +{ +/*itrace("parse_comsub:%d: lex_incomment -> 0 ch = `%c'", line_number, ch);*/ tflags &= ~LEX_INCOMMENT; +} continue; } + if (tflags & LEX_PASSNEXT) /* last char was backslash */ + { +/*itrace("parse_comsub:%d: lex_passnext -> 0 ch = `%c' (%d)", line_number, ch, __LINE__);*/ + tflags &= ~LEX_PASSNEXT; + if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ + { + if (retind > 0) + retind--; /* swallow previously-added backslash */ + continue; + } + + RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); + if MBTEST(ch == CTLESC || ch == CTLNUL) + ret[retind++] = CTLESC; + ret[retind++] = ch; + continue; + } + + /* If this is a shell break character, we are not in a word. If not, + we either start or continue a word. */ + if MBTEST(shellbreak (ch)) + { + tflags &= ~LEX_INWORD; +/*itrace("parse_comsub:%d: lex_inword -> 0 ch = `%c' (%d)", line_number, ch, __LINE__);*/ + } + else + { + if (tflags & LEX_INWORD) + { + lex_wlen++; +/*itrace("parse_comsub:%d: lex_inword == 1 ch = `%c' lex_wlen = %d (%d)", line_number, ch, lex_wlen, __LINE__);*/ + } + else + { +/*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/ + tflags |= LEX_INWORD; + lex_wlen = 0; + } + } + /* Skip whitespace */ if MBTEST(shellblank (ch) && lex_rwlen == 0) { @@ -5545,13 +5830,24 @@ eof_error: { if (lex_firstind == -1 && shellbreak (ch) == 0) lex_firstind = retind; +#if 0 + else if (heredelim && (tflags & LEX_PASSNEXT) == 0 && ch == '\n') + { + tflags |= LEX_INHEREDOC; + tflags &= ~LEX_HEREDELIM; + lex_firstind = retind + 1; + } +#endif else if (lex_firstind >= 0 && (tflags & LEX_PASSNEXT) == 0 && shellbreak (ch)) { - nestret = substring (ret, lex_firstind, retind); - heredelim = string_quote_removal (nestret, 0); - free (nestret); - hdlen = STRLEN(heredelim); + if (heredelim == 0) + { + nestret = substring (ret, lex_firstind, retind); + heredelim = string_quote_removal (nestret, 0); + free (nestret); + hdlen = STRLEN(heredelim); /*itrace("parse_comsub:%d: found here doc delimiter `%s' (%d)", line_number, heredelim, hdlen);*/ + } if (ch == '\n') { tflags |= LEX_INHEREDOC; @@ -5564,7 +5860,7 @@ eof_error: } /* Meta-characters that can introduce a reserved word. Not perfect yet. */ - if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && shellmeta(ch)) + if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && (shellmeta(ch) || ch == '\n')) { /* Add this character. */ RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); @@ -5574,7 +5870,7 @@ eof_error: { RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); ret[retind++] = peekc; -/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch); */ +/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/ tflags |= LEX_RESWDOK; lex_rwlen = 0; continue; @@ -5582,8 +5878,8 @@ eof_error: else if (ch == '\n' || COMSUB_META(ch)) { shell_ungetc (peekc); - tflags |= LEX_RESWDOK; /*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/ + tflags |= LEX_RESWDOK; lex_rwlen = 0; continue; } @@ -5613,22 +5909,35 @@ eof_error: if (STREQN (ret + retind - 4, "case", 4)) { tflags |= LEX_INCASE; -/*itrace("parse_comsub:%d: found `case', lex_incase -> 1", line_number);*/ +/*itrace("parse_comsub:%d: found `case', lex_incase -> 1 lex_reswdok -> 0", line_number);*/ } else if (STREQN (ret + retind - 4, "esac", 4)) { tflags &= ~LEX_INCASE; -/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0", line_number);*/ +/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0 lex_reswdok -> 0", line_number);*/ } tflags &= ~LEX_RESWDOK; } - else if (shellbreak (ch) == 0) + else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 0 || ((tflags & LEX_INWORD) && lex_wlen == 0))) + ; /* don't modify LEX_RESWDOK if we're starting a comment */ + else if MBTEST((tflags & LEX_INCASE) && ch != '\n') + /* If we can read a reserved word and we're in case, we're at the + point where we can read a new pattern list or an esac. We + handle the esac case above. If we read a newline, we want to + leave LEX_RESWDOK alone. If we read anything else, we want to + turn off LEX_RESWDOK, since we're going to read a pattern list. */ { - tflags &= ~LEX_RESWDOK; + tflags &= ~LEX_RESWDOK; +/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', lex_reswordok -> 0", line_number, ch);*/ +} + else if MBTEST(shellbreak (ch) == 0) +{ + tflags &= ~LEX_RESWDOK; /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/ } } + /* Might be the start of a here-doc delimiter */ if MBTEST((tflags & LEX_INCOMMENT) == 0 && (tflags & LEX_CKCASE) && ch == '<') { /* Add this character. */ @@ -5652,36 +5961,23 @@ eof_error: } else shell_ungetc (peekc); - tflags |= LEX_HEREDELIM; - lex_firstind = -1; + if (peekc != '<') + { + tflags |= LEX_HEREDELIM; + lex_firstind = -1; + } continue; } else - ch = peekc; /* fall through and continue XXX - this skips comments if peekc == '#' */ + ch = peekc; /* fall through and continue XXX */ } - /* Not exactly right yet, should handle shell metacharacters, too. If - any changes are made to this test, make analogous changes to subst.c: - extract_delimited_string(). */ - else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank (ret[retind - 1]))) + else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (((tflags & LEX_RESWDOK) && lex_rwlen == 0) || ((tflags & LEX_INWORD) && lex_wlen == 0))) +{ +/*itrace("parse_comsub:%d: lex_incomment -> 1 (%d)", line_number, __LINE__);*/ tflags |= LEX_INCOMMENT; +} - if (tflags & LEX_PASSNEXT) /* last char was backslash */ - { - tflags &= ~LEX_PASSNEXT; - if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ - { - if (retind > 0) - retind--; /* swallow previously-added backslash */ - continue; - } - - RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); - if MBTEST(ch == CTLESC || ch == CTLNUL) - ret[retind++] = CTLESC; - ret[retind++] = ch; - continue; - } - else if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ + if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ { RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); ret[retind++] = CTLESC; @@ -5698,7 +5994,10 @@ eof_error: /*itrace("parse_comsub:%d: found close: count = %d", line_number, count);*/ } else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && (tflags & LEX_INCASE) == 0 && ch == open) /* nested begin */ +{ count++; +/*itrace("parse_comsub:%d: found open: count = %d", line_number, count);*/ +} /* Add this character. */ RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); @@ -6114,7 +6413,13 @@ cond_term () /* binop */ tok = read_token (READ); if (tok == WORD && test_binop (yylval.word->word)) - op = yylval.word; + { + op = yylval.word; + if (op->word[0] == '=' && (op->word[1] == '\0' || (op->word[1] == '=' && op->word[2] == '\0'))) + parser_state |= PST_EXTPAT; + else if (op->word[0] == '!' && op->word[1] == '=' && op->word[2] == '\0') + parser_state |= PST_EXTPAT; + } #if defined (COND_REGEXP) else if (tok == WORD && STREQ (yylval.word->word, "=~")) { @@ -6150,8 +6455,13 @@ cond_term () } /* rhs */ + if (parser_state & PST_EXTPAT) + extended_glob = 1; tok = read_token (READ); - parser_state &= ~PST_REGEXP; + if (parser_state & PST_EXTPAT) + extended_glob = global_extglob; + parser_state &= ~(PST_REGEXP|PST_EXTPAT); + if (tok == WORD) { tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); @@ -6196,6 +6506,7 @@ parse_cond_command () { COND_COM *cexp; + global_extglob = extended_glob; cexp = cond_expr (); return (make_cond_command (cexp)); } @@ -6506,7 +6817,7 @@ read_token_word (character) ((token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) || (token_index == 0 && (parser_state&PST_COMPASSIGN)))) { - ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAYSUB); if (ttok == &matched_pair_error) return -1; /* Bail immediately. */ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, @@ -6668,6 +6979,19 @@ got_token: yylval.word = the_word; + if (token[0] == '{' && token[token_index-1] == '}' && + (character == '<' || character == '>')) + { + /* can use token; already copied to the_word */ + token[token_index-1] = '\0'; + if (legal_identifier (token+1)) + { + strcpy (the_word->word, token+1); +/*itrace("read_token_word: returning REDIR_WORD for %s", the_word->word);*/ + return (REDIR_WORD); + } + } + result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT)) ? ASSIGNMENT_WORD : WORD; @@ -6707,6 +7031,7 @@ reserved_word_acceptable (toksym) case '}': /* XXX */ case AND_AND: case BANG: + case BAR_AND: case DO: case DONE: case ELIF: @@ -6857,7 +7182,7 @@ prompt_again () { char *temp_prompt; - if (interactive == 0 || expanding_alias()) /* XXX */ + if (interactive == 0 || expanding_alias ()) /* XXX */ return; ps1_prompt = get_string_value ("PS1"); @@ -6953,7 +7278,7 @@ decode_prompt_string (string) WORD_LIST *list; char *result, *t; struct dstack save_dstack; - int last_exit_value; + int last_exit_value, last_comsub_pid; #if defined (PROMPT_STRING_DECODE) int result_size, result_index; int c, n, i; @@ -7140,6 +7465,13 @@ decode_prompt_string (string) } t_string[tlen] = '\0'; +#if defined (MACOSX) + /* Convert from "fs" format to "input" format */ + temp = fnx_fromfs (t_string, strlen (t_string)); + if (temp != t_string) + strcpy (t_string, temp); +#endif + #define ROOT_PATH(x) ((x)[0] == '/' && (x)[1] == 0) #define DOUBLE_SLASH_ROOT(x) ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0) /* Abbreviate \W as ~ if $PWD == $HOME */ @@ -7294,11 +7626,13 @@ not_escape: if (promptvars || posixly_correct) { last_exit_value = last_command_exit_value; + last_comsub_pid = last_command_subst_pid; list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0); free (result); result = string_list (list); dispose_words (list); last_command_exit_value = last_exit_value; + last_command_subst_pid = last_comsub_pid; } else { @@ -7441,7 +7775,7 @@ report_syntax_error (message) parser_error (line_number, "%s", message); if (interactive && EOF_Reached) EOF_Reached = 0; - last_command_exit_value = EX_USAGE; + last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE; return; } @@ -7456,7 +7790,7 @@ report_syntax_error (message) if (interactive == 0) print_offending_line (); - last_command_exit_value = EX_USAGE; + last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE; return; } @@ -7487,7 +7821,7 @@ report_syntax_error (message) EOF_Reached = 0; } - last_command_exit_value = EX_USAGE; + last_command_exit_value = parse_and_execute_level ? EX_BADSYNTAX : EX_BADUSAGE; } /* ??? Needed function. ??? We have to be able to discard the constructs diff --git a/y.tab.h b/y.tab.h index 552d7ad..13e8550 100644 --- a/y.tab.h +++ b/y.tab.h @@ -63,27 +63,28 @@ TIMEOPT = 279, WORD = 280, ASSIGNMENT_WORD = 281, - NUMBER = 282, - ARITH_CMD = 283, - ARITH_FOR_EXPRS = 284, - COND_CMD = 285, - AND_AND = 286, - OR_OR = 287, - GREATER_GREATER = 288, - LESS_LESS = 289, - LESS_AND = 290, - LESS_LESS_LESS = 291, - GREATER_AND = 292, - SEMI_SEMI = 293, - SEMI_AND = 294, - SEMI_SEMI_AND = 295, - LESS_LESS_MINUS = 296, - AND_GREATER = 297, - AND_GREATER_GREATER = 298, - LESS_GREATER = 299, - GREATER_BAR = 300, - BAR_AND = 301, - yacc_EOF = 302 + REDIR_WORD = 282, + NUMBER = 283, + ARITH_CMD = 284, + ARITH_FOR_EXPRS = 285, + COND_CMD = 286, + AND_AND = 287, + OR_OR = 288, + GREATER_GREATER = 289, + LESS_LESS = 290, + LESS_AND = 291, + LESS_LESS_LESS = 292, + GREATER_AND = 293, + SEMI_SEMI = 294, + SEMI_AND = 295, + SEMI_SEMI_AND = 296, + LESS_LESS_MINUS = 297, + AND_GREATER = 298, + AND_GREATER_GREATER = 299, + LESS_GREATER = 300, + GREATER_BAR = 301, + BAR_AND = 302, + yacc_EOF = 303 }; #endif /* Tokens. */ @@ -111,34 +112,35 @@ #define TIMEOPT 279 #define WORD 280 #define ASSIGNMENT_WORD 281 -#define NUMBER 282 -#define ARITH_CMD 283 -#define ARITH_FOR_EXPRS 284 -#define COND_CMD 285 -#define AND_AND 286 -#define OR_OR 287 -#define GREATER_GREATER 288 -#define LESS_LESS 289 -#define LESS_AND 290 -#define LESS_LESS_LESS 291 -#define GREATER_AND 292 -#define SEMI_SEMI 293 -#define SEMI_AND 294 -#define SEMI_SEMI_AND 295 -#define LESS_LESS_MINUS 296 -#define AND_GREATER 297 -#define AND_GREATER_GREATER 298 -#define LESS_GREATER 299 -#define GREATER_BAR 300 -#define BAR_AND 301 -#define yacc_EOF 302 +#define REDIR_WORD 282 +#define NUMBER 283 +#define ARITH_CMD 284 +#define ARITH_FOR_EXPRS 285 +#define COND_CMD 286 +#define AND_AND 287 +#define OR_OR 288 +#define GREATER_GREATER 289 +#define LESS_LESS 290 +#define LESS_AND 291 +#define LESS_LESS_LESS 292 +#define GREATER_AND 293 +#define SEMI_SEMI 294 +#define SEMI_AND 295 +#define SEMI_SEMI_AND 296 +#define LESS_LESS_MINUS 297 +#define AND_GREATER 298 +#define AND_GREATER_GREATER 299 +#define LESS_GREATER 300 +#define GREATER_BAR 301 +#define BAR_AND 302 +#define yacc_EOF 303 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 316 "/Users/chet/src/bash/src/parse.y" +#line 320 "/Users/chet/src/bash/src/parse.y" { WORD_DESC *word; /* the word that we read. */ int number; /* the number that we read. */ @@ -149,7 +151,7 @@ typedef union YYSTYPE PATTERN_LIST *pattern; } /* Line 1489 of yacc.c. */ -#line 153 "y.tab.h" +#line 155 "y.tab.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -- 2.7.4

    CAy7sOSh-jo8Og?tb%sn}Pa75sXl= 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℞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 Vu#Y~H;Xohx1x)qdO?#LA_y2Z2oBRL( literal 638296 zcmeEv34B~ty?-+IrfpKXP;g@t3bqZVp-I}Nizw+H=tdJZOSO|^(u_@J!YpmWrosb3 zX~^w`@zOyHf+&lC?2CvGS)Nb$KNUnlXRx-4%0reuR|Njw@9&&*=gy>kEk4w4em?J& z%)R$4zkNHu^QTbxg&V$e*vvBg&-%@wN47>zKQf+9^`=ut)=!!=y>?Q4ZQZmPbyFG| zzJNE%`P$C@_cs2we$(q^W&PKLE^Ih<{WWhLy79N`oiPW_-!|`&XBS^ncJQ}8RdxVI z8PeXZb{6ga z^x0jJRHmY{b6L12(wBYfhRzyyb~qVvPxB(lR3s5|mqn71#F~wlJsELNiAC3VoHph4 z^=}%D<Wlyek!-$bE`eTM+kfL|{hqAMx@Qemq!CS=)i~Azecj8B^35?{zWIXo{{DXcg%P&RJZfys#-g?K)lK^K z2)qG~IiWmPH+|Z)a|j5|H!lln^-1E6ql6^nL4hP{+~!z&ZNFN+@T`@; zBbs!q{5Mx6!oW;MBH5y?ci`-5e*=GP}n+G7>lQ(5D1tABmo2xRsPCc^VE<}Ldc}U z1y_baHEMd`y*X*cCT7EWfZt*1gP+~lMG1#4psxnW5eYtz8lRLxRJW zd5(4UBhi@G5fN7E1_Q@d@gqHppy-B9@NN${6OWSAGFqfiGI7lv@t)eT{hJQ&>=b#n z)X*bg*an1i?S^2qqVm>?5-27|&IzeGMTD3_d{1w8#9i7QZjaQsE$L_~;x;r)GU9bs zJei8eL?{lNLR7U}gRtrYX z>7~=_oY4*S%`xciR3bi*Z0JY}mpNtE&sgu2H`H%CW8R3_nKD`qv~z~hZc0V#CcSh< zZGUFyMIVrtYWv-NmR<+lT9{nwBF^xNy5sRz!_)z#KHRokYV22+A02HvJ7{+LsK z$?@x*vfp~!ro34;enwDR5`4b^^eSqfkv9Z-cys^1prXGE4o=mIo?Ko3jbfYuDNt4= zI0?IA%YDo#yYp)@$$kX98wBT6Uh-1_e$(N;JgKKVnG-o6CQc0$&xB?X4g09PFmllu zebB=%o!-#D=}5{ANbUy036dh(o~h{UY!OFeo&z^Z`z8Ymf4w)r%^5N6%$H7|LM2FH z*`S1_Y?lhVrBC_B>zwkhAGe<`sYd@U0l2H*IaTL*uV@qDKWg#0$@Z|& zB?ZRpu5cpU4(HP;f9~Wx5a>?Ttrz5`k^%iq3MI9`o#}?7d_yN`Dw1@{a?kC7+bhLs z>EBM}os}iqZy=86#NnnDZU6f(??u~pDz81FWZRRu?WV;o%@b!Etb+uc@@dEH!TWZq zMx0Wz&nevJLWZu|!`+dIExm4}J$gVp_bg5|qIyY0lMvV$=s4kDuyv<$`dPWgfJPL0 zoE`7cVf&;L8guNwU|pr0v#0#+RK2)d!4vjggYv_C`+{Ia5GU!BKXuW5nEu~2X4O~j z4$!XFmn~7osYF>CaF_k+;(ZX@PUQpl#N#E`v1%o%!iTzC%vgH!d!hLUZG0gni~%HuP?2tNgh zD!s4r<36(+?8~XLZ_m|D@;wjYL)dkGBA#ZRrHCZU`XAU0)?6y5oXYm!^L$)AgXp`l_1m0J4fw?YcJi)zv^$NYUT;Ky2*s07-&KRzJVqwuyjl%S_ckL8I1j* z@^>XvK5TO=2zXHmKH!%keTv9NPXwV2kZ@$%eiHt>&0~=G(YZPavPhIuD;}0$#8JHj zS5wL8rAT!fh?m_xWiN!dQ~CMMVo0c9lUTs*Q4NM7(hDuSb1wu$skC*5kKd{RBT`WG zh|i33*YzSQ!CDh=;_LeWI7-3uZv72T9Gj~vL|3LL6L1znxZ;$^`DZK^mwP(gk%D#%q0*i_|nl%QgX zoWpa<$Ngp>K!#KKxAznH>Ts7PPzj7S$q|JJLi;>DLZB*~07lr}CjY zxFhI!y&dr-%<}baT2gQ`Zd)F3+8+{E@l(X#tEX zN2!EBee@~v+>g@T_*BJUl!{rh0H?fY$Q7USLaoAAZ{H0i%|DAjoXWF*QB42h6B=N( z;0S1JRdQg)+j@SCM*i*G1Y91uiMt2u(X`FCgZf0py)NcZQEx zmTQ>g3%y3=da5c(+Vr|cEs!?|9dhYz3`nQymHUe~qzjOw)Q&r9iG&mFaQV7~tu?VA zWl;8|hjxQ~IhBc*i`Or%mPP~D@2}XM%M<-;qBz-)a%?x{lvlt1U$6tG@~!4vLtTJ` z#G4wlxDBy?!Q$R2Km4=bcdAxx$~DvnfG3X2+;!0utz0-PsdRE+$o>;lJ3s#I4Ex!_ zVo-|1&=OsRiWbL>8dPkzj zsY-q{*D$&N#=^1k$viHt^8FQ^owL%>ZkRuX@^WidWOqC*?TnuIJWhR2LAxx|E{Rx08ho8lU3;2M7#%4Mfs@sepvQ9m0PdL zO&03~5=~cq!!1^we6({YtmV#%bcLBajK*=k_WM8Ihk@r*T{|K-#dr+>n(`XZP)Qls zDOXe5KzQ3e3??JNoyx|ei@_y6i2+wvyw?YqQ~v0i`w+yOs*MwKQzrWoOO<^W72x`^ zzx;vyR>jV(U_)~|`q!zt{P^4yDHcRp6wOC`)4_r1a4LJOu%#T%nJ5|8vGmr%y$n9^VWxmAEBlh;;n(p|fIN%*5}AtjzCDW&No+z*3nYx?-0m z2))@N_&MbV{wtytW}$oAzfR?^n+bTFToS&Xsyirkk*$NRlTaFq#%kc4y}aj?Giv3D zFP+{PWNTel(=1^#H@;ejh=n{u=hW;&diNhq{m$^ED{_Fn5(B!3#&{wKY9&(XUYDsf z9Be)K^!RF|ALkmypGKV!fUVq|Kr>6U-rW)K(c^MeVmGF2r|Kiu6>m|7+3Lb&rF9Q?=$qy<-GArmEvJMkEK$ z=QGpC4#et!-@4E4fm_`f^38LnYSA}yjZ=LsRea7daLOhW`{rH@1_O?N)W6Q~*_(5X zQk*B0Cuy0c?kKKOK(62yC+!FAF02247>cUyJ~!8B>L{kxN*zU0BEfiPA8fR9hwewx zzaB}$Pj1Xjlc=lkktE-A5OI#2)rcqhTv*qvZdi@8E!XWw+D?&%voFu&rkU!6spd44 z4^J@xG)PTUJ2`OD{Jj9QPUVs7a?_;tKleRidbwdl{}9N<`7u zwZj#geBhJk?*-)dZlR%c9H(;fZMkWa^?4NqO=*>DjNPS6TAELHRgN#>l>Kgham~)t z3Qpz2C*`J12^JkRGQxObyo~`yN)5RqquU8xzGPnrFM{fdvJcLvvmblu^l8%rSp;26 z2@p|<6a*`;z=*cP^nHA9Jg#5Lj_=mrPF41n9N?=$ijAtcVLPx@#V^T$v!eTDv5- zY3Q1~`{rPr(MNB3>GbKiki$=j>MjAe3rVa)*2k#3kSN=55mwRm%D4PwAD|GY>i+5+ zfTSeSG;>lo+`;a-48kj5skl4~%%9(#3+LZ0IsJbf$Em#SehpOw-2qi|7+%4ZF;T|f&`DZXgAuo zQ`vJ~Zn~87XxvFu-Ry(7J1HuTWuZ8={Jf^!Xa_r@UZ-kVqIhTe$asO}p55-P!L>)qS7KO*e@#@~8@(o0By5?iD&eo~W?Sj}X+*?(4 z;i-Etu${`&FD~A+K1=2|v!+B7(t>wqI$DQ%C+)_2c81RlqtmrHaRgRT%+eC(y$Jq( zSexOLr?1$Jck+*7EvM?lM**RNT_=)$Rus)Zcx5OsZm8ZDZUZaOFJ_O+2=5GlPG!ST z0HVP3`gDd7=>&zk6*j?W8Y|=3ac*>a4~B(P^{X37_N;kcUDZ&u=Ws0Ao96XAI3kWv zt*_h4NB%vAzEip7eoSrJ(o8cg=!?M3D~YL9yTY+mGOdRTik(n&{B8hqXZS}?#|BIn z7H&XTN1J>ET@x+~KZA`5!!fD8E8Dg=UVPzH{>N_?+j@n!uu0()$D;j^YYP-2GB8?@vdS48-g7^DmZ?4>D4+7;~*-rWN zvv&uwtQvV!$xbA_eNv>4_maoa;)%}sqHud6o*bBc*>14pok`|*>$y|;{%-*^1!G`x ztvb;e?-50}D4J|X9bq^YiKmkVZMWwC?FKM%Do=XLtX*t=VKGCKq|Y@`KgqMd$n>3b z>p+p|r2wrtmNU(7xVs8B0`$-dBEvv0!D5uV>AG*)4G7}hVv3!O<5V_159pX{Hr;N<@1)Big4VskXsC&RK}ZCePOqK52Z@G%77>=t z;|yOI1wh3$hfzA+ROHWHgW$NdzyVOvoQ*9%5M@Ldc2jmA0IO4#da?v8;U8{79 z-cr5g zj9PvSt(M0A8~v1f-6Y>^Q8#^PFvxw-PN?;`{iHjn3Zs;?o#E9hLAs`UH5^4i)kO4q z5#&zDc_(ywc9-Z%cUQ5t=Q-~%Fl zB@OkWDcl#3#^IrXMA>c#LZ@>6By7zbM8Vc1JXyq5upbuVMi5ZJ4VUbOTPP*(f7Rbk z)j5b&2SKR=oEsPAaf7`d;AHK1OJ6b->2Xz%(2ES5dE#CSSf{e?>|(&ECUjkB8=)GK z&WUt}!8f2VH@6o9;@zf9rz$!UfHn1>U|tF0swTb(r4qrsg(}Q%s{ajsEQO&)pqtT4zN4Yp_MxnD0n5=968N>|vJdVNuvA`*r81 z;t9qB=R}92HGd4(OuN!<1Sf_hDXMz;p^~%=HbMQ`o8<(HQ})aqyTew2w|8Ww|FhnA zMto;HQ6QIt!f4ISQm#NVL+&U6WD%~&JcgQ!AdlRtfqcuU%g_T*9T{@UKle`Rt(>Ye zXW=?#M*p@?#IuC}<}W^ls8{%opf7$LG~F&$aEJ-Z0#O*;9*HF*ngFJxaNKwAaohe` z^kC+3M*ZeJpo__<%-#`e&JoNs$2ubGAhxZMAKsJU?Tq@%HQ4VI>1#wjn4|fC+avAA zI~9GKB#WP#OE z6wyLA^j`oR=8Wnb<%|X|v?WOBy$6q|ASVU#aLPCQX%D0TusSNqwv$Y#>Kb1J3UOY= zMoY)g_y-3J01CbHwh?>L&UXZnf7I_zRpUniX_Nk*ql$OnS+qxR2HF65;5{4m!+56# z@y>AM4Ex=80qdy@EhDU4zH6c7flM&8jAFQ6B%q0zx*3k0%MCuHw4r=j{nEO?4S(0* zhCgN5EU9xU?>o6U=DeML1jpW;vdz$)$q{-!iUw9>&%vxXgJ!2n9w&ALAEN41uqT1t9L+GKNW>q@8DuR-D z+HsKt`t9KV%WEu|$A{jwX_rm>^TB0R+ZxKM0F$BZJ?+W%x=CAB#nNsrF11#4dSk1+ zq=Z*$9s9?_QG=-U24d&D*fwLmei;|@`g$~~Vto@Q?CbILEbhv@vd$+qtqMm)ezYvW zf^*|*9J?YD_IlGXHy%SviAZl(B<87?pX#un@@J-u=oEuer;D&-^-z{ZNn*_4ljy}E%0ee z#H9GpN%Dz<s@bd0(VpXKOk0|N|SW)5Pt;HSNT$`JNdciW<;|YR24zR<;Nhc$n>29}E zyT@K9jczXVqvE7T%h7z>L5X}IbfiB7zy-2hiR0T@2s>2c&O(MTksXYP$Bqw6yE*#F3h z&n4HLv`Xj}QM!0{((U!=e=6|!A3OHgC*(^vm+bWr%sYUWU*V+*GPavTgAsKvV%?-k zI0jH%>kMhJnp1kxIJ`g!sds9v6z+Dh+(hvB5~X#pd435?UQ9kf)Gc>r`wxcVToj$S$JhaMgN} z@y?XD)&nhrZw`ubBo}BtD~({es|YH^iYghPIpr!I@lqhhL^_7`8X}K@s=NC#)=6K8 ztl=zZ^-@aS#IR$X^!YI8a;;uPyq6(aB`Y*MlJ2j|+*}kS2K?gx3rBYMO-!bHg(4yy zhJb|LQ-aROIvm`QOR=`}Bqw&nlerpqOFVg8J^sbC?r9j0P+kkNLP<1Z1}@&x@RAeXhDxiv}p?{mX$4`rH5 z^e)On)FeShsjhI!h3kVGpnz>Ha+9^ru&#Ssfi%e39=$vHIAeY4o5An1)~9aoL3MJ{ zEzoZ?g*ElLYe6_1U|ot-30U^vXQ5iK5>F&X*7f3n;@kEFBtyg%xsuQm;yEH|(pb&V zaFb&n>rgUf?PKo}fsnC}y%Y3dxPhE6TEhqitt?~-VQ$^92If*~1^oD_$C{ENGgc;(6b2Mk zk<8d5KGYKisQVP)xquE$2GV8JgSK?+5#z9=SUfgS5lG<)qEH~iF^4qAia&CD5y3w5s)PqP*fd6S^gn;?!d0bht*fI-y&xTfauk=O3o+^>M40| z$OB?))?YOjg9Kt?*}wpcr<2`%ihE0crE0F#%K^P*tcz?lt#whwTF9C(MIu#Y@rV9S zXfI%T7Uf1noks97%rt>8m1htC6d2ERtbq@OF^=JtcF=N{T3$AE->=OsoX~y00(ZHv zG~ILr6X3Xsh*qfS44(Cd697o0TdXB9KxD-pOgWfP(UeE9f(xLN1Y2 znKE|O$!0zfP30!+-Q5h^Pg>+=DQo z;zZ)eR34SE8jWL7P~!iG?pAlUXZKy%|pV2Twzq1L3S7tnhch)SAH9+lv*BY z2}TGd3@zOlcNL3rCzQSMHcD4_O%!T4LX<;@_`(^s>jA$q$G{@%iU(8yzOtSKFV$zPEg4#LP(yzjm|i6d8?t$5$PkkzqxN{f4A=W-*EKfqoR zMx1dc6jI1zk@heI6zQ+eRb52Q(N`7W3@IG3Em z(ytiEuZpB_DFbZ-fr;TlSGA=9b&-vUh~ilQP3aoq#7%KnpoLq8%Fs(GAvZ|JT&_v^ zMVcQpymW&cF{s2QCl){R$4o0NtAPd|DYa}cOKd`@BD_>g5G)khVq$H z>Xp02Geey!OXMyJlV8)}?h>!OVA|W)EzklM(DjKO#u1FDh}bb`{Q!vl@-sd0WXiFx zYt|bTiiXh*%Vh#pJidic#FctpUp0k;03um%m0{D{2S3)47VE}7_;COq3Nj+52C1t9 zM%{KzE!YM_CcFW&--DQqdC-UlKi(Bx)itp@0tV{#O)@NU(h7{KX4aSjhl2^l*rMWD zx^7s}&=J5q$O{&pZXlk)rywpDj1HR@w20_|7!a#;>Pf^a)^7xgu|YFdzQtH} zu>UT)p;ZjI(&4Rqt8tvO_(FML5%*K^Hpnz1#bE*c_Y#eDmt8PCXaw1KF{KlBnt8<$ zfpBAES)u>AVP#k;y1ENkj40u2K9wmj@|65Ra;tc+{N80cbx! zPTEj@!smY8P(txK4pq-MRN++wmX7FsuX2h6jNE94Ka#L7kkkQOz$RSP1>q=YNkn=e ztUG`=*)=wbJt^>1~Cd!qC%8xF-+D!v41pelD@ zVv56$Y*ND^bjcuzV=A8F*!RYbOWT`>_JDpRih{roE^zDUzi|X<@}ytRU^ImrAQK3E z3a(Bu&VuoTsqGcA+$}l?p`r|~SwwCB^#{FPt@h9cT3fC5z_F9PbWlLfFo|8Ux1g%f zH8Ej~s=OAJ&VlYCY}-EWc1>US&mYlo%-F|04S*R*4fdqkQN}GS6>P1|>k}x82;pZ@ z(Ia5+Wwk+e!Fx0xvGZ_@Yg2-Zj=m8jZW3OH@+l#B2^ZL$8stFKL9e4j6cI&*2}^_4 zL%f%cJVI`2WNabSJ2an)ua3YN>peBcEo4KzrwD^5z}P)7y#g%d8vRNOHLn;Ck_mHBheg>%9kt;~-bhyR4fqW_tx{+g-(<$HK| zu6{a!e*!lv^VPZWK0+vzxierF-jdlD$US3qZB!DmI}P8g>nemuc_$$JHPABL24nqD zFaZZ%JJ176JNEbH;B(LamV1QPt@~%vM2ru?N!N?u_-ZXX2e%>tjzdLV%GFhQQRsE2c-m7s0BaD?bVW!5Klw zKt%)``@vh9Izg?4A8YgyK_wufF~bYm&<_hhN*;GFCULAWRcam@d_C3z`S z{~$qj8n^O!J$eMetbm zQ#}#!k6=nBd$OVIt!*wE*ko^Gz}oF%Ofo?NjCn9AX)+fm=sxs?*Oa~AI~oaCFP3QOL241gcJQ{tTUIp0UnjyZi0(PC?;qN z(;}m7h4Er;o*V=QibfJSAL~ZyD?W7WOCL2lLBi--CuHnP--ZCk9i=jp6@o)PIZ?rQ@-{@y*{y2RseDr+|i3PRn|WBEA>-rB=Qi>*r#5HaFa;0 zz$7pku2f-WoVtQh{CiZ>Bf2k#u=t5K>tL98kc-`saMFlhkP=~GNYpJRazLS=3BkPN zeKM(p!3<4`Y-)$LQrjXyBqE4G1F{8vhs20zYp^Sf5GUw|GI6_70a=ue0{r!~T%}Cw zHqR-V8PXpflL$W=3{e~`!qC`eBEopD3I_ludK@Kq++0UmgekNStlLhUqwev8KR_Qu z${NHqFefSBpU<(P(-kjR(FIE1ThZn&QjcfsdL&#J!Nv}$?XXFe?VxHre-Rud>LZK} zHbJNwX#xlV47-40QlulYpGG|hS##qfB<`_&e+1D>uZsknrz^oUmz$UP4?w8=Mtj$+ z==(n#w4x`!Q@@eMlClyAHf>R;G8&j+T7&f=LP!ImNBkbd9il0kmM}iB+8Ym|waRhi z1Yx)HzGZ)+{Q1GJixhzU!+IzH#<(E;9s7q3NR;||#p?+}Ip9YTKptWlAczi+8UsHP z8>_(>F@($*gu=HmF9Ll5;8V(Dp`xIe1p)#IdZWHnnwOLy3+zQ^PL=5f{D0Y}W8HM8 zM%+zz>4!%5DhhygU?l8hXSfxa(CFjSHZ@OEVT4WPrj003EWQdtM&^SXx z8rLI6sJ4jgD?X-z2W3E=vBB} zpuHAC$PHF$Zzw-#^Ux{VcP|_0Udo4=A!pxdzI`h^U#GD9QOI!4%gW!ROP8_ce22;L zIS&`r4u~4qVch@#_0Y+!AQ)9Dpfmi+4)#)su!;GK_gDzPC~~!jAV3|3J{C`FZ6XS# z9@F-|E(#dpblBV zMD%Q|lVb@0$0xm&6HvgIRet9w!GQ~aE{DmrsEcvTs zwLf(KMGwfBS^JF9#)^T}B)@sT=*_&{dw&>w2b&Ql6@#YweT4aqM^oeeBEk2NDQ7gz zRk1{dQZIUdvJ*?|VqV+}LkmG@LR)DxsSvIben<$3DWxO#Dm?=g1Jy>Os)LS(GUwbb zKY6GrK^fJ`xj+yE#x4@l2fk(!((GY~ik=p-k%N++mOg1>A6`dRcp4pynU7|I31u`F z0LrMNxljNA4T`J=QXp6ywo`E_1eehO5jb8tB14@l!Bj>i;QT4KTqp@PQpF?n&8lWY z#?f0x@^Sf_RRpVPdHNJyq2IHPQ6^4}t|I6ejmf*F-+9XXGo^QtvI5bJzUB$dlE@-_b&_l_Yk##48;-f~sNj#14H0039>fAs@Q$5IzAHmZUge}cN_raDljul)0h`P%71(06b*2*-oKfqf z6t{?Ap`!*Kl;{A+14ujcXX6y7Zwo*2?BZ+6MjZWBfe*3ne> zLXiJ38bL9zIfXlfA`EbqWdmDELlmks$BIIT0|XwK83b(f=}o+)K2r33qaf!q=t|L zTY*en&p3L5Zo^~BKg9b^#SuSHz)@8)aV;CN_+6MJ z;Nt=e=e`tgb0d^R)0oJvY=&(ev^SOdXdc^^cP{h+EfKZAea%+Q59qp6bY+r*2S^7H}P; z0;Xi2^w`%uTkKuS2#=j#J-UQ!li_zqZ@>Y2!pjtDvS)pH1YuYRftW}1ci z3XJ$6t8t1`&!}){7Tl5+XbbSqrnwFYyU(1olTV6{NSRYCm&zZJ(J)1ELg_ zjqY;wCT#_fktQES$qkbV#M7vTH3wgj1helN9@J!6`>q4HBQp_f4E(36vLWzwHAnG@9|ax7sqZjmBC!Oe2JM5uerTX+wnNU6rZ!nZcq(o>O2sSw9GXQ8i0VtBZwo|-fha1{j8D3(TQ( zFevhSk~4%NG*es6CnLC?wVIcTF|2YLz(PkfNhdBiulVsMNlgc?U_rSmgs+064f&( zonfq9JS32X=49xgQJ+6vK&z9}nb4-sAQTkZ^l2Xkuv!u5FT~P?lCpS12LfEk$3mhQ z5-Rk}!6FkIsu90W1~;v3Ms3+q7(aL$=E>R*-Y(!4c9e7%0)r}Kb(Z7`+-N5Vnic8T zl8IzOz#`}&8BbKy9)3TaqoASZ>O{Pr&fj&$e(MEPkLt=$a5)z6)-QZ$3P}Z3fQx2L z-tq+y0KCz%_!^ZJHQ9>RH)Xr%1Xf)`<*Vo0tf$XdH-Fck8`Wc2w#iGtDE`JF=_FG8 z$Q-Q9ABEh5$2yO+*}jxlC<^xx=~y>EqK6J((y?FuA4Jpj+(xg5E*gVwgW1qU2Q8$cdRY0a7-8AbJmTD?e%UH9A zwW&)>lL$qkrg(Pc%KVu$5|wpJKze~y%cgW{-?6{-Z3GA<(w+d{sV`9A2G!E-U?da4 zp%1P%04QXvx~pSM)CR?pW7U00TwgJ#y|t7Q3;x8EP*$F>#GBQsqSJ6bKqt<{?s}!U z6aIewOh1|48-|Jto0BYlT^KY5&Meqi0?sT{1h=gji!6uOqQsfR|M~_GIJkk4qi{B1 zx2kw0;-^v^18RYy2j*QBt8y^O1a3y}IjWM}P&pXCAiE1Subf0#zcA|~;U19;k>Qfh zq+tbqf$NOuLI-rzjUT8uq8Rm}KUy^Xyu9dS3X!BJlCzW|nTvB4IFLe{>6A|gSrR4v zr<{*c=MTsec%+y|g?1%1jWE31=0#F~>{>U%DvLkAzi62tkVF0ukvj1h4+tO{ z0M$UpSs@E{9|BL~H>vnoDNfF0!Lht4EWCH_*x4lDD=P@1mHuf#u&^`Yg$!!beOtHk;#aT-F0>=x%A~%ig#Qqy~gq1i5))+0)_a+IZ zNI*kKv6V9XY3hn?223d1?8X#K@vL=YT6@5AjoPLYY~3_X3G7B3d9q&|hV^+x{HqoM zuLpKu!0s^Xh{wP}q!A5X5i*Lhke>e1bId6r8;bA&RT@+R%5Pkz)jgz{3TgErPkvWH zI&1&z9tG@-{juLR7zb(aQX>P|fswR_0H@f0=VI0kf0e zYqD2T5y8+Pauok*C>hHM%cdjTV0`f4DgS~)Zd|2$x^ROnkja#!O^aKaC*q8ylB57u zKU0Dd%~zf4VA9)FjHcUF8weAk#myfxe%tgHe)o}e{;Atx?LEovRH|;$Ru$=T%I75W zPKtf0+>{g4#f{u?Es;x17HHKH=sw6^-}JW?ozJOSMj=I}~gP-KOTy)5=Wr z%t)-Q6xk{9u*(UE8USWx--hTefi27Wzaz5CL zRG~Y8XM=h&A%o=$`9a2p(F3gdFFPtean7z`L_P-r3kF>#q&qVV3 zPq)TmF-et!h)4~rk%T-Sd1PiymZj<_%rpkNL~+rf6(>^V=gk<-%}t=9 zfcL2Uk`82cQ^^7l*KJ*}z@O4yjQsxpGNofL{^FonyKveBgo&!-!o(P};`~F@)QB-C z%Pn50L&i4*TIpiix2|(op$N4j6@WCQksY15d7WdgdMsDq!v0O~`veY<17qNEffP*y zat4A2tn!3lRY2Cx4fqFsCPoY>_ z7{4-l1h5{N*n;9J7VuNVwK{J-dL6=Ouq7f1sf_FOfTAk9N_zDCFVDa~Z%E|U7Oq*RUpCQ@{jv7WyIXU-5f zf#l6v&tEAdfMihN^uNkYV<)f>&W=Kxg6y{YoX${ww#OO|Rk04)X}x$YUe{~&1ej4N z9mWE*hXRuTT_DhrK*b{Ujxm<3R+WZPff^hV<=U4!h-jsgwB3g z704qjcJ{Xs!;oE|&M(PeIg+^H?l{^rNJ%K@L&EJ8(r$j?>`yM5+tSiBe{Ks7*)y4= z>y;rMU<+gQeQ!v{)oe?hSYF>;A1xX^AOep7-0$Ko3!t+TU2!rSH#BDsOM?^kxJ2F1$k?Wv0VR_f~#8Iv3 zR5aZW^z}g<#M3N<6}O;ho}w8X>j$Ae2$pzS7tug=qMyU%txEF%!D+(!eNl znwPn`;6O^OM4Zr#mmnjIItQVBh8qds5*$d00DyWaqOBxm$-zq1GR#^0p{EUwFCjl> zFJRiaosgs8EUCOHUR3V5ATD#qEu4*(Fpqxp(z3F3ca~WT{@jlWuauw~00Op;3w)jf z1clYF4zjvI@^_#lDyw$C8v6mygEGV3AKU%8eRSLwV>mBCe7B+g~!9{o5@uAiWeu5N|QoxC!^(hy|=s-C~4srrb!o^sfrnoh%+?>8AT0$)RtcIfVP^l_9gd= zd@+>|w3c9RqI5yYBIessqhO3IGBey*m`FVQLi4!Ttzfka-be62RFa-iX28*}2YsSfl9}^?<>BoecyFcX=zJd z)ga%6Lc8y}7Rm+qyIJd@dO=a+6p2s5;ZPY(6aV6PYl#Gt$HyBoqn^El1WjUN*sd9i zTfY`G7N`APiH*}ienk~NWGs*hxa!8kFMHBglKBCZpTzOCO$yOg{>x+pk`>BZ$tgT( ziF2l1Qn?M^%Wdb|rW_sB7g~wwuc8tpS5Cb4@g2MmAHR^_&{;d$S^5M@QFb>;Ta_hC zqtDnVOXcC@jP<}FSQ(Eq>LMq-PUU*@5tFOP(KyxvJjFQ zpeSep8b}Je;SU|iQ^7_*D2v(Yg&>aE0T%?N1Fl#J@m^MT@K=3Yoc|4lj?3pI*^f7Q zkV##0 z$C`RrGKhLSJWL(C$T0-Ha0A9?1p_0#V0(V6VlY{}$b|{fqWlk_;cDbyxNT@eI`Mx9ccN3yFOVR@t>ogwePsTD&XkiZ6vm|Yc#F|3X_mI=)q0A%`yk*Jjs zZ-L7zJp%lg9%ZJn#aLx#^t1thN<2|&i%{3#1@ttBP&$$gt`a<9RT*pR)yjj)T3fTK ztf*M^NRHJj&apby|4dNZYp5o_qC8LN!Qhj|Ciqt4h?(4s-91%}?%3UpkN~JK0=u$^ zO)!zguY|uTkJe`u^J~$np*Pxr#zwjc5;XIdZUPOgB>vct4HN=mP)uZV^trQV?l5Aqyjw> z6U9J)`%)l95R-)av~(luZI8b6^5wJ-@r;eCgMUco7GX__U(tg^%D75oh`_z}FIVT6 z^C(27;^CW?PwZW>!d-sU3U{l9Q(bnbeRzJkyZl@Vg>%Ohp46}R^0l>>mm`_~{@I7E z&_WZ&Y);62N)$pJ$JkH;f=qX`oiRekZvT{WtZ^C=W+6T$I|X1N8kebI$SMszoGyn3;JK^g ze=Bnz`fy-S<#*G{fZV3?#AE=6V;}k*oRaEgImZMj`0nnBNYH`)k)^8U+DJd>ta9jg zuvq#OY7AQ~oG??NY~kc4U_IsMRfK@Cr#>xvf&L-+9*pkhTbmcnowsD!qNdgopHYr& zDB!}`bnKH)0A-?AnoQ*fHZY5xHlX7&);Wh3%F7+=oI^D7qN*()_XjP^o*&eJS-gPi z6ohMG`}Luq1jPAYaoFG-N88}u6qdP3jlijlN}JXXs;rT2IKl`St7G2OItY%lK7(au zt&aIcR=BY`w^t?$@PQ)iC!QuyfI@PBrauIa!;DuIp8|6*mogfRm4Gfg5H6>VO)*)0 z>d|`37)R_4bI^i?#+|Ar+CN~9N@EZVKMKfHF6X<4!M}p6L}5d?+pI^64h?qI0Y>Zv z5+NqX;&EaSodr~fB;O!rgs1!sSzYW&?FUR6ZHYGHsTim0lE! zH?RjPAbO`)*(XhCkVcMA9tmnenTcPlO{&51wj#wyK`QTv=t|S~;ZJ%>M4h4Ujyhf= zHESL9k-=~QMbFHuESShPu~Irw_G0{8*?u6VV9u<1j49N)j49~(T5z7+K78^l)z$`n zt3BgILEjYF(X4rhPX&f&F75CJlf4t25ZE0wld>!I)<8*o9lI;4H_&;H%3X71fB#I- zm3?P4 z(69UiW3-5l`CY-7fdkBHQM5ZX8LpwP9!CS=md_F{0XdSjZ@EAYa`2f-YpQ&zKBW`@ zG-&Vl!}z(Zk=hDY4+~rH6T+rUZfN|*BC900m$ARHlo`9PoNPYR=Lx{wNKHu}BN{;n z1R<&ixr;(R93TAQms%Mz{mN2d83&)^uo0MvC07{oWNh3hD>86^kg-~hM|~^82#E~i zhPjaO_@0|*R|;zJaDhNzqaV>XJ7}XzR8Pc91`&H$OPWhrAoIbahxzX3=kCd~>NR71 z?%QIjf9|1TQypF(k9kO$SOA!?igs+X2T#$!EN6EP$6Eh_YTKbg}40 zHTNsSnq&yZ1o94i<;SvO_)h~3#&geD1Ji*x*)tUJz%)UEPV}+Ij#$%vy_ZBVJi(@$ z11olbj@YzLb0>X)E544oqic+^MK(m7D@|)ed`}d$#W0+-Lq~Pj@^Zo3hK2~@M64n5 z1}rk9r`ZRu5ChQYfsU7IGNnJXei6gVtW1MwkjBhd$<0v|;U<5Hm1zY8eg4!?WpXFI z)iI@>$c}1Y<sW(?0;XXdLq}r2X`N;eDD8 zI*^*hFQR3&)OH)aH?UO@u$WIbTg+6< zI#G3+e{NvYf#Y*3xyf?5Y1@f&I_^&9;KoJG}><&W!# ztT`?Q$&J7PI8o8H5k8sFMQ;WK2kFNNU4%5C@Q~#FHHEsT~Nq0z{Q#hH#p|&Vg;2PD3SlPhW8?o9X z)eCAwZWaPl@iTDIL&1TNiXT347(N*{&Ova+{3cgxz}xUW^sIf+CMX|~jXI8p{I#lX zml8JqVcxFua*Ev$tD{{H38!^AFh<+LAV)9Lpk(K(Jonsx%qk0pP++xYm7v9p_1Aw> zTgqC0y|AzuLfDh$7QmUO=n4i4$uejQ(_S`|>We8usRf&ght5@Qnm8M5Fi05__>@sS zO39Lt^#_k0s%!>%MIENX0kmT^Yv7pQ5g#Vab0xx~Jf3Wt^ie;k06HA9%DKmCe}rVN zenw;nb`LUd5|RULNc`5m`3uHrgrtC+k&p(e;VuJG@$F!hLnEi zI>o>~%qL|4Bei{sW{}X@Ovu``Aa~TVbwFQf*VmzhTY9l-W1fYd_@Ehgi z=v^5R4p~4`OBtys3POWPU&}Khkf}I(0Wb!!A?Kx0B+;ysA%vBWD0to#uQcJ$KyE}O zxWxTN9$W`kSpUyKuyoZqM>(^GTu6&VmZnpZO%K2WJh3N-N!;-sie32Mo122(PTiyp zYR@s#H7{@p7d|$sfB`TCH z7+{FA4?GcG2Tx~W7ILu=ebUuPU@TLALIjA&SLUTM@QrPWH6E0BL{*8U(H*K=+N`uv zR3Tx8o&_*o!mP@W9mA`}D{Psp(w9+G>0Lj1LHl~A>pw474;fqEit7B-L_+{s7BULg7FH^2rl$%r)@5p z(922Bq9T<+Wrg8QX+p;S8v4Oy?XM+ikBKgEhHegF->mqC^7%bzSk2`%{rvR0e?sdyjficKfv@&qul_v zr{}|>oUKp%d^308SZ{2}QGJUJg1G0mg#-XJf*BjO_u~}^jjcqv36+uBGPi}$JhV2M zPE`SWY95TFF(xpxK7YLrPQ5cFatqtD-Wn&{bF9yQRqqf|qRXXMijzQ$nIoy`7nftL z2)!#IK>M@tW<=?+#YH~==S9)^r12)R*s;f)fYS~zA`yyU-#HY}BvnZy`wukUTw({{ z7EJUs5NDW8v)o{1IRd_VPKktuHXVUu-T=5s8?DlBIq{92z5xAP;xLI%8phWI=o#Qo<~-chDS_x|Ntqz+9R^gC@W}6DGJ@ zvG#;Y(9TqU)KhWD&kbI_y4o$~AYZE}jOXS>QE32vx$JQ6!2U!H5+bQCoPdj-Jih zcwR1Is-}Tseu{%Np$F&s!C+OdjRVBLJ2AkwwNLPfgP~sl6}BN^DVr4E7aJ7JWUa`( zft^~Bdt~kg$DZ@*Amo6n{$mk(9_g%V;X4HTy*Q#{AS@7b;s$J4To4ndg99(F2xg5U z2KEpN$x)rw6$GE`tq!GbV>c5Wn)+2SlPXjfw=CfEnVJR~3BG!QR#NEOO!?|qTRNr5 zqF4(B^)J>zCzt{`Sd@`4d?am138TWUz|_LmdJ$1H%TtCNj7_XDW1W~*mm}z&i7=&7 zycwZzxq#n6K+=mahmkLgvkS6r{ibssayacwp-H!4O0|wfawD)$339+(%foKIqN7 zgWS!?RXuferO6v^Ll)wBLbjrO6w@%k zZTaXyJCPnU;0gIc?Fb^1JB1YSZBvn$@(L(Q&r}+N$k-Q;+gywtZWP|jU%n=?Oh?1A z_QfC46493%FzF=6i-^k5^A2s6gXRF)N~{~WqF5tTu)QL>X6w&==LZoD2F%(uUkJ>jjfx^?tU!l)Y}Hn};BZk&sh|eJ zM@d$}FoF*Ob>LMf0;Jp3j(Z5?_z+hD01tMA`9_Jz8P&N;nJs)KLWhRFnEkN&QCBtr z6=l6)Hj|Edc~qI1KZHqFtk)H02Y&SJYQH9JA~gk!nVJ6M_r7&wBpGhk_Lxi+x^hL1 z2WhgQE6-FXLQGKDfI`%h(ZMpN6Z+8#NX+6undzb>Wtp4xQZ*1oRb}mM>rwh4%}#Lt zx4o@@v!rBEAT#W-7HD5!D1%>BSWwsCd~iZE89v3K7a$q7a=5#>_tz7y;O$?uw+GuMgd$Mq%}D|RiU1U znThbO4b@7|QijEa#tqF#~4F*NIH9x}1keU8WwJ$>b&8Q|l z73qYOiq)E-#j--+yeJfDA{Igf6xxBz8phwOm>UTlWjMnGypmGV{^J3f?d?B~=)oS@ zOc(YfZ|>8@!*WX(UL1jd7W2TFisnD8%-86=EmNm6@!uenC;toZ@{IrCRCIhIhnQw0 zVQjxu44mSSxc$CE5p3!Zt4H74x^M9u4eW0fS3hRZhkHEwW9xEQ*jk1Y=hLYaQvv zITesXW~!8FWMlq@u6wL>Ls@&vVcXk~V{bX!$mF8ku<}W7qp&aP0Dn^kbpSFe`ZxYj zWskGg#y`kjKo)Q)aP%^P7F{l@cKn9+;6n!=i1_ogoF|2T=>%v?+(l48HeX{x97h^A z{!t@bFAIOEy!fPZDR>XEe9YUoJcvbQt%E`$U^JaVX5j3M;ZhWHphb-km8$D7s!2&g zzN_Z}5@g$|8rqa}iNm<(|va zgVi|V*%f!Ws!kaFV`t9fOn4a)0IIHY-PJhA5l+P8Zs66_+IZp3W2^b1KMb~#jzO5L zjk&ROPa8HG@6<12SE91i2F+f^qSeBxWbIh0T^vDyK_iDM51|f0h3-{~s)|G*JUL2N zP~_Bp1T4rH5=~}!Rph*f0uX*n2h(RySITWg1(NPG9yRr4toLpp?O}*6xRBrY?^A?M z6cNK5;(fD{DQBFX#UIvt^%*g(TjAPh#|QaqTH#x5-~__Eg6CE((M+2$GH3jSqHj8f}T{`$>l(2jI{=Vfwx2_I%)V-r5l~|z4jze-~@#2E}We@wGym~;>(|qe_2w)nP%8-iBHLDbUxSJJyLZtpBTIz1upskC@C_$xe zUeMaekIkudh?)C;k8TtH74|F|G1&^c32Qbt$OJmo@D0S1J>@Pj98OVCvHU)>Tc(3> z2ooDao?IfIur~hGi@~)ugOG2={;#(&yl6|FvoXPR>U8@DWqw^exf*+ik0)I&)M*5B z^bDD7^svI*heV(lJvrkG`2`0{x-)?v?okb2c&=sHN%IQ}TCZX>ykf^pFe^(*xZ0L&5Y&WWnWnC}; zFmasx(v}7nfgw43a&|F z_+cSjhYwXg!~W(EKuoA_1S`b#oU|}-3H$4sFks(r{j^%OW4-yB*(eP^+{nnj$+&p^ z8BD>ay6Ge!!?Rp?g+EdksWp0iC_#{)R^c2mNB#_)d1Ywl=PsF-2|fEm5;vg;9an}P zN#MQ$!>gPt7|}!nZ10vPA|3HTyqYK!i8`TYf5cIYs*>&MnNToDfvs#owRM+4M$~bE z4phmMY*Plna+0{whMj@5l2C9|%>>;1vbjqao&k3Ox*Z(QN(O#!w z#Cju4l{#idiaHmSQ|4x!G*E@)a+oih*rl<7RSyQtU`CNvyqnV4wFJ8ggD7U5du-BWUCm0e85W;{WLrKW~&WAyK%j=B-IZTxSjG9&~fZcPKJja zLcO%Jc!n6S^q~g=R=XN#J4U^J=7eJeS7*wlV0g6+_+4EX00!=+gQ8K1e@vJV3`SHV zn!0$2%rjwvgbpD+O~!;ZU)9ogg$5k)Zx4U8;F+Kwr2np{?O<5_e@UnW3a;C5S)1TO z1C{}Vj6LxwebU86B1JcK!mm#@`OY3sAT0TsLZ%t9c8VBZ`yC9R;hb{v}0 zyOL^MbsdPR)TMKy?yMm4aR(V8KUNZ6I$6cgt{DG>yd3`-QfGjI*t$Oc6Aa^z`-p&J zGSB>so5?&J4k&@|gRvNhRmDM=(oYsJxu9tyzkGRsI99CC0T{ksAb3C~B z^Zz&3r$Kmy5XTguaP@eQJ!@Ups0Q|+L3!&5GFjU5lPn(UzBTX_RZN%(_ES?Gd{vPa5#W=E| z-`~x(BX#Zt16XiPMF9B*lL&SQMps%&{{9|NErKu0m%~@U9Qe-_D{|vOt{;9)f)R%P z%se=6b<3~)kOU6xZ^TzPm48){-1nCSufXRxWmORiHO6b#qZfrRGWH9HsR`IcI3d^x zVDvz&BNa%y44$jZCV@Z58))EQ2WFozjGAMacP4blN=l8D`QwjQpv{Kv2;*D||0@ag%q6413IC$DYb17_wO<=mT;b;BCH%|yjGrejZS&&!XR(}$+4spR5ct&&+K8Qd zXLzIhL-j!i?H%Ub8cOqS5O2&(J@GAb?#rndJ(_qnh{@VdJP11~NVgI!Ma&tLrUTB( zia@}bspF!6bD_3CNZ2&%gk*cWhhaYQvr3ZudlA0!!uZ94D75&18 zm1xC1P&N8njE@>!kx~5BXFEM1bW%HAqfX@4z#qy;HE@J61NNo-~p`MV%#?MD^THHN+0!vH*Oj> zbv!QN*9j=-Wvuj<0fnrU{*nR{F!Iz!$_5;srt73*RiCDuK=GhvdO>u6>E-XhGMPhA zylw*G2sT0@zNd@<&4b_O`BvQ%ZdDo`-%ucKtT7SrL1>wJ6WOg7=!5v8iVG5#pWNa)HC=?&)N^aK<<1v zUyoqGu?y5X)EQ$G?2=w^M|D9?6%thX*q?d@bgX0(q7N}WhY^|9-D`H7oyuDG&oDxY z9;wuOsmtXpB6Ux~6HM!BK7mX-Ag~|_smMt7Yv)zxG*@hZv<10E6MBoXCPzgwPcyIzyiMWD9dHB=Mxg^68U-Ur~^+XTlnk zVGH@gs|_+03(kVxXT;s7UmPu1(92ybR};!#=p=w=sZC4r;5%(^B9G@tUO^%mm8=dxnvQP25?K4@YbquRxZ_5G@WDb&1h{{p{ZT1Y}Qs|t&OG0;4q=Vo~bpV;nue+-e5S;=9Kb=6 z=|&nYblJq>Kmm-@0cWg7|BX~2qtZ=cQ1ZzG%wbSSK65hJu^zpMZWE6%;gUA(+3;5- z@)b~2_>w$di&oOpK{`D z&R{1(oG_9m(RzSiLx<#6b(Wu6 z@K+*o!oR=46M4$DqW=y*Qt3BD3+dlVBi2Z9lMGFB49ITkkilHlj1^6D5alxUFF0%# z?7rbxo7(3}xfqqt;JzEyHQ%Sjf!8|FcSGO`*#i#GSc@wWc7@H0UV4kGG}ZdMfpw@0 zQ@>EjQ{_qu8j7Kmme8o#49vRkbhW@hLlFqjBcBGDDE>(B(*h7cL}%Y#q@0mEM2}1; zVyq150L9Lzi}|iIg%0+dQ#_}&O;65AEqne;#1Vc$AY3R76nKeH#ks5H9kdUtc#CDU>OD5 zZ74T_-=-;w@D}nP#McF1k%vI**YM522@Rn_$|sa^tV`8q?R%#!R(W)3`2yjq>95vn z#g~4Q0CxfyRUa8M!QSBMH*##Ds2Rf~7|#Shg6qcIt8S!1kJ*aV&lx8zTe13i&=}U| z$&|{D3h)ZDYq=?SjBfZC52j|iEd^%ohz`e3B)Veeb1*jEP6}y&#}y3G+UcH4=uAPU zw3D=uo@X1ZdoESCD$vWoTEj`a0{39#Z0=ganxYR^zO#=Jvo<(G$74G=1V8@j;J^YV z>r)k7s-ysO%8D{}_?Jn)VTQRa(y_x^6oBk6|1zhNgQf{1W1uR3qtH`wKNpPE(aX3l z5ijI5w)ev7$OM#T=5BI1$uaU5V00(++cLb63H|2n;z*WR7=U1IlI4+EjH!Y*I1B(| zm7gnhiPN-z0#EChFQxbhvvOm^IzKI7UbW~#P6j0gY%nS&i>XLwjZ&d(7F17o(Hc>L z2vPF@rf3IX=#npFCblU&WZvkYCY286v*U~^qKP@8igG*9;S*LX4cg?`)&2Q)KIg-X zU40u34Wurs^+jcx0Zpq8bo*eAhD-4DcP^@mNegf`2X(!mU=zX?yhAQtc|4tT6|&JQ!aZ&5hyv})u1dwlc3hsGO?r`_>1G)~ zh!v`S6C>Xam`R}9>T%-HgkAK!@ZuAt@2X>ud|UUTaZwh6KFjR(M#rsiF%iNkZ(}MB zul56_sOW{&Xn|D(!GP|JA`%POhdT*xMA~fd1au(;4Btx13fP}fA&D|{`PRivi{{GV z(LyIi(b3Dd8ck0d#LKT>a1k_#^b??7anKt|hylUH(=etEGnd2WYF$JE|R6|*PU(TuONQ{Pb?n#0< z$S!3VdFX{?a-)tl=S%e7KmgJw)I`jSI*m&6FfmOrL2t2a)@&Aj=c;X>Dqt<+!T0RwEjriQii9`f%$%;Orpt36Cqp}gG&|q z{^?8jyZ~GYZ0G`Zka36?kZFP9qXML^opbGrY0tdK(3x6`n>Cy89vT7{x2mfc{l>IO z)%sR;jkmi##6mu`5>@-KE``|ZU$tRVLaV6KJpAfbF3i+)sP2~#KYF)5YV7Z#{1|X+ z{TA3sb?MC7tq-D6C-_yjMxsqEd0; z^tsft(%O8sU6!sBUA<^DLRnO_bcH`)^Ox;r>CAc;eNtF4P5!`g>sClm5kxC2Y5n*f z4YjQGQm@I6Ku&CkjX||OEJ00d7>qQ-eT#^vY{Wx$s?K2 zwe{%D07zc^Bp{g$U0YYYBN|vSwICP8!`+NiiKi5}0hf4JdRi~S2z)?^3bAPQDiY!o zoMts>HJ#Lx`*a;6A~%kQOoXFFE#gL{88lFW3fl>4La0<|rL_#P0Nh%&X!^&Op85_* z!CUHNo{DO71jX^@3KgH^F+NIkw-%Y>g2(kv`KrePR}EC8-pDO&o>PnJ-CqHAu5=;x z^TQxH<=rWN%zzO2RjyPwSYkY}u-am638Re0gwb!%@M1F?$dsNq1<{wtb`TZz0-zLG z7=|-wG92NX4Cvh6P}I47p7R!tu*Kv`@MJ$aKN!QIg=TTaTJQ`1Y1Ufs0&SwO$Al|< zZ$1S{DA(JNglv^JfiOC+JCv%h7%g0JOFdC30EuBsD%k12mvLZNcxwS=F~73*^j9>l zJEY?`{Lt0FFxP-<*>prPKh{5uB40}y0uWKtNQIRUk)F-$Cu867Ay&ZLaSW3c5J0j% zdQ!eV;yPhG{NZ4ZCSC_dGaIGID)c##tQPR#H#zmEu@3$T$H`g;KTG!4x&oZ|jnf6j zh2EYL;WaN9fm*1p(RK$!-2Z3pJ;3a$%D!)$y(a+y5y3)N2#|ynl0YaT5RxFFC6HKS zAd}1_8JNt3DUc9AMJ%X94hN3|M~w=CC`BGnLBT?^pfr7?$Q&ILtf&YA7R2xOzgO97 zp9u)x`(5w#z1QfwYbeovlb8kWoj+H%*f&X&5=XU+q@tF^|W6h7v509BkVYMQaMBjjjUG3joo** z)=Q0rmJZ}!uc9Uykd>1&*3}TLQmKCEoI%l1b%g4K5y3W`>XiNY#`cb_=<+S+iCKi< z0xQ{{Z_u|QVdn&togHE&i^b4bq!aK%!azwQuiZ&(%l`0v(KTCX~4NPUTKp2Eu`sNi`O z4DdrGf4&B8k7&*#M&f$!1YlNLyMAlYY`s#5AiR3kCe=Oc*O?jBwMzD%Gffm_f4Yi+ z_m$Qgu3P}QME=Px{QTg0_9q6ic$;zjRYTakOgQBNOr=a*1b@1!vDWpDYMhOA$^uJ> zD?3K)*S9tX^=uwW2vkFRpn3Cj9@1G!2;slv?$aMd-I91qg3lWQ{oX!ycA07kDpj&? ze?i)7AXL4522MoHyY6+_m40ngq}J@+XAWEI4PMXJ?Bx|u;gb3I!Y(j&-@cpAX-p+) zX{0?`@$_nwjQ6WK*j}+Lv|y4nwH8bM6*(;*mW!ipj3 zUgQK^l@29jusJ_O_+l-4=tkL@_3WXq>9C5To8FEmSFex+yBa)G&Z5bL!^TXcEDzGY2)Us8}tq&`&b`y$wWAQ=R8!;&$=yaqn4j_I|tOO z;fRBNUb@$zqTeN^RS%{wo10=Vc#_nUr!-U}@0>fg?wWeC`^??$cc7c^NJ@WNezo4i)Ir^>U~qqb>b zYKgqi6P21lXjD~f^39Q(-f@O9q61k8X=~YYI~I7EG6{60Z9lAo`uQT#Q;;o2_eGBNtpB3`6+elKDJMUCpYNv{e)g%tNE{ zA0l(B^@Pdd5_)xtOrgyidoPIcFfeICn)%y~LBP8A7@>W%n~o)vR=x>np(7dMhQxhk zOZKXQP_I_w`ihG9<@JlwVpdh#rH|>KF2fZ&vA1JureW0b11>cjQTl);38BkYR?qjc z17B_YShcaQBBPc3fJ;y}@RDilke*({aok*)5Zu=@-X+jD@@>b@l>f)$Olj;}Et|F; z9tabzXVX6CFDytXb~PACR7vMp!rEx~lbEN!7c!G7`8Vn_2wOR?Zkq>d9R8vKJr8c= z^?LT;V@}VCcS;ZuyW;fNM_uZ0g{O)7A(!N@c8nn;c=A($hUShFiYR%8%P@Bz>-f{g zf!ej~zH4-q_3XZ@b&AHU*+;zXtzL;ZarT0@oyZ73>O)t-0MM$SN1P3iByL^An2i@M z^DH$2@J>p<)^b;Z4xK!(r=9eHy&8Oxe3BvZ341%yQIr*lDP&)2c$K#he~1{{+C;Mq z4bJX$pR_Y_NuOF%%P)UlIJl}O`s?}S?+sEF;@miDEIeFw1ID{7mqszhaFt4vva`DN z4K%)qiUUo+9Rm;~H2Rrqm3^IGd$pI-c<8?JVsg5YKXHo})$HeqTM;<6R`3V;Scn~8 zi-ZN2xGwa84Jn)bT$`EVf2il@GBCp#;zTa2jhz(mAYZvem{~X{OW%AOYZPeByDo$# zwjXiEo3FK&N81q)4CClCU8>&ls3v^D8&?I1bq(J1cKA5{_=;4)2gPa>meRvVftS` zSS*7`Px>8VO}}q+bRd^lTuiZ(12t)=pQvE|sN!!I}ei(*$cD3hJ9Gl@7sbOEs&%0ZK1S~u6 z$NE52x;t7Ej;|1)rzrw=!7p%AVjnYV@yJ#i5X&(|#V#TF<9F7&lpRl*Zza zkV~x|Px(7+AmiYEHrV1rlYo-!lp|?s5$zOzzhMKleEt*kg{kNB{~9)+q&ax0&S5Mq zfX&=c*bRc{SRmlP3E%b6M~cvi>B=3;uYMirT=ne9PX!G_QLtWi+Iksr6i{c7)WQDt zjwJ)j{lHoO)k^jx@;Hphl$Cwks`NUPp-Arnvx=q7pybKyr4_b>qF+4Z7NC7)54H{T z_Yk}CNvWZ8n0{d!EA2Xwj7`_(y%7O}l;_Aog@oIbf%oWn2#$L8=m$!@xYB#d{;;KF z$Dqu-O6&WkA5Ujl+qd_O1&EvOUYh*t__p_Vz51p3yXJ14`n#q~|9_Dk0fcJV#lMsp zSkEqQm_p^<#A4Z+YTZ3(nz?U{B2|Y(D(Nt5ChBo|2lEG2=I8^?0ONK`dJ+>4ez^*n zLhqHrzhs4utnWYr1G5BrdWw)i04o?8nkn@rOjZ(lRr}jc<kP{qeVv`Uj;NIpQ+^W2`n>?HTEle23>3U;tpa5^_DO0 zC?rTU!4Q`XUx@re+FbBES`Sj2_LY?TwLIi%&cxBZYy}Ov-X1}PB0xPVih)E2c?ZuV5>Ix$;-$;D9B@&a zV2@(5lJL`g2e|15Vn8)za=m5Y#?#x>?Xk!=kOscjHN&9`CKz-3*MyNEU?tz{+Mtpl zvX1b%Ets}iW>k7ebKN!78W$}(vS zy%W%opNw+W%BzIHib(wLUSgf%1{*L9;uovc`>hf_|?DrMk3r?Ql(`)}} zpQUT4UdKm3{F6v-75E+_%~>Oa{y8c{S;Fk75QSueSI`G%?Rk>`atNz}4QD$FkV zg%HapKFJz2nO(^)d4#HdM`BjwVRnnB^+_w+B6aEgydu0~Wj)t168k!m)K1!3V$Ko>1U5lg=+ zDI)p1e@ODAIF~-+cI>zbiVYaAXd9HU|!z$kMT*GlVbu1%03t zimc_IdP|gf)^W;vdW>@;0ece$*t*{=F+kD?JwmHbnO=q3sp;odz(O53k;tT-cs z?3DZ<$w0#1JEUAo+8e%fhnIy`0&iV(m-b)9b8yg(I;YSxtp$)<@RNTRG$?*H&_i?u zG~gEOtyf7CA(WA>OKQ%ePW&KhM5glQ7igtqyK=I283X7>bw|Vi*a5wgum2v{>OlZf0!zsd z$9fV7z5vm=ub`3d5H)h@IxyhW)_C40Ys1ltq{hbc*gC9O4*jxbp0C_x*buAFm#^0H zl_x|AUTK|vrsQ0{a-P~h`cIH_W?C+H$-PL)R!q(m)b>s~SW{n>uiw%fIa28D8vQwi zKwXg6PwucMX{mc>V_#I+&FBAJt?T2Si^V)f1!X1VG`j!|IFSZA9F|(%VZdoK)XX_T z0ZINvxH2)N-rJoGE+i%JhN1gC)aHy@4X}VGm;ST5r3PvsQ|-Z<9NU3kTWoA z*@5>Mv%-v8=F-MRy7lb9pESm-J>J6Q$KNb8MFAOeJkAS|ScCsSn)Knr@V$u~$jChh zvIz2<-}XX)^2z?QB|y4A5gKm!yc5aNnu$B(BelS=*ss ztYlM@>D=(2hS^%QNZOB*f_7}T-rl(0v05}7!vQ1Y$S2-($&$p$U} zKze4#DuE>E6XEw`$fRAwYz)|xi#3KsqHSNAW2Noisbj@okiIglQT)gZH}BFcDDTaMXC~sl#HUW} zv>K#}%frU?gW*8aDf}z1neahZ=PHGR$$qsp9RxRo81)S;ub&s z4-{DHbh&ylF0o2T_~E|@Z%iKBjY~Dw9aAV3vm9#K$$uB6a>eaE19*Gt*~$MfyGK1y zyI%!%IBc=#ZbYS!aJe_>jZL!~d`2 zbtqYl_;}bM9<`E~lt)h~fS{*GFH6UzlnD&^pJ8E$zZCGKlAUpunU%Hd)Z3(VWT$>_ zL}MxmFd+$;bj7mW$4uS*f~v=m?H^NOVE&^Mh*fb{`iR@*MAuUwu|gw}`NiG2YT35p znruL@M8Ke_%sMbV+qa z_Pl@$OR4y9gT47C8)FWyI;Vwc7U&yl(Ni7UIjLikA-XH!l9%R_icxj6JIRUrxUokW zfddzgtr*Qd)hz?CO}C(gPViMORmWrV!0D@py}(zKIAL(LSrbw`+^+Hy#leLwY zS2uJrL)786TMnK6^8M#vM^#A&CPe0|knyP<^vXhbdGpY(UVKj%&nKz1cT7A$=2Y-Y zznR)F!OEtzk?{3+M{g=``r#9`>4)dP$fjQq9R^E7oe3b4nP{FWh}xnDy*=GM1AXIE zLy$Uzg^v4{w$bvLr4B3VEuU$(P?SHNoklj4`wunCS|wfogE+e(bp8kZdJu8ye(zMS zCl0PN4NE3@;NcH$ojb|=@G#HTxsxNzpga9!I)SSiVqL#g+A$>_B$VI-gPK0ycHt|b zjDbd zAC+#27K>z+%?Wm#?w=?0MeK&w{BTpr51`bXf6U;1F`-6oENQ)+*o(F7+J9QoNIkpO z<{wb0%lCzo#=sF7%I`3z==E>xbR*JH)8#*MT!TA$_R_hm+UvVN^O&mM1eCy&V;m5G z7=VJGEx8||w2nmXpCwbkRXB(R37l&a2BJVv#P5?m55oGG^=Wg;_tC4U11^-`I%|eB zDvv7$@_|*zmUoU%Zi*q?JzdIzT1DEac11;Cz1SE%S9=IWh9e+WT0V2TAs?uF8(hZz zJ2bI3V2SYucqu*8#Y0V(kqou_D-z3S{lyof-_|dr*c*J~qYLK4En;(Zr}A^ZlaBB@ z1x@@mc>Zc)(SHXZ`M*Ywq{s5WN$s|4`Q-UgrsJMl{RL%o>dNZ*WEh3yFL_C15(MCc zZY)H-9D^p;qN1$&6%?tCa5T6TRT7#Vc&>=z?q7=H znh29cQnJ?KUom~Ql5TeCmS&RqK_=K-CQJOLNw38x#Mpd@nQ&ZA1lx)iXJ%K2U;kjASU|6vm+=2y(f9V${+)8* z%S1TCcy+pjMoTxZ(I8hnQlBB^I{Cgiqcw`RLlOwVu)u zZ=v3LO1ppy>HN}It`v;jOumbd#K>0&Wr=p9Wz6BaZ@rHO62Z${M z3&6N?O0$$*Ipx8X&0kR;Mp3eY%doTL-Z6qkAOA<`4YmCA?uV9cz@rBak!9)m*N8Yps>u*(9%phc7ytYRo1L$``iFJ%&QZbyKQC zR4}0H3>ClDS~oi$*H^MrX0X5g`wbUtXF-{9Bq5YPUTNKIu0qiVRTrKxKXKVT4k4VMqTnR~%fOz=BV9D@EM0L}~itF89x^)POmqPXV^3xrZP^~>y zk)mG9a!YdN%O=Os4Bcc6H0bUQ{V)9c7`D=x@+%)Ly5$-Ino{Q6!|qCnE>$hT%B?94ac|H(J66e{r-=eZGpMMtJ4v5FGNng_hPdMi` z+Xy?;Rw_JXbD+9oMkiUJXZd(mzcZuYhoc^Q6XdEeb(=iu910cPpPWB#wOVnv{#)eH z?Z4GKvanUm7Vx#cF2lh&iUhy7rR*FHP&1GUtr=|MmX#5}b4ZvX7791`U;UT zARrA<+Ou16g1;^OMY2gONU~|LKTxZ~{(SK@5&H?yExtM}`y(i;VoEsGR@dw3ZV_El z@Bv4h@K+=UkWx;neU^`E6PX}M?LfQqn=r$|B)epmuFw3GBA1~d3l(4+#GY!7^{cVU z5@hNal?&U%rna^16P8X`a<(A?Kex5p#6s0)v@Nl5DTs?9{3~m(cUFM9@~*w5z!%}M zOe6!b$69KjwtifZH5V>L~vlK)+n56~7PtmS{7X*X|GP;rz+ zGU%ncBM=d>Zm6SDH1%_Bq zo4Q}n@!4etjJkEK-EAqi6!C*wuBapLR-TDpIlbHu9^fw*_s@ZB)w7Cf65HU1F8DrO z;;Bv{`-DUK)J64HQm-b#@W`4jTwk#}&u{r-xO1fek3RE+;}O?>1JY0{*_vK8q(?KV zWo!CGDF@#lDW&tHLp~ZQ?5gvuQ>zA@9x2Vj#5$bdo?*LG-Ao_?es*q=c>e6%RnAi) zrvv_ixDnHBVxu+Zh>2pM4l4p6ej1>0odqys-zW+5+|e98rf}0tk<^(ug^!B~_tNu8 z#n_2P>KW;*9~#6(Ta|p)kHpx_`79BM%;dQI7eqMgM`0c|M-!X#nu*dKx|WEz$QgmD z%=%GrSMu_P&}BFx4xxLV9ie|pQS=NIXen>yo@cz%z;SQL^NpeNVr z{sG+I{PYQPvZc+`m6)=|8^+tc1hbgl^yiig5IVetU2SQ5OzaxNkk9t6-b%9-9fM|bRB2|&tSj@b)wzKencMiB# z%{`qYjlT1AKEE|kBb5nmk7^N;S>iHW<9YwkI!+Md7$39Nrm9*hCa;GH2uvbgt{NS2 zJb$USiIPFAa{Y&&HGLIHwvHL!GoD^}&8)sh+u;XI3F2#%aQ<)iC3xFC%+Qe3^>_+5tRU#VJk>hb0UH zhKi?YBZWBBP4#d+KH1K5o3g;it0&NW ztN-i?U7hx?!zLXzegY4l+_Cy>dYtZj+(%L~ajNp%7AOt9*-YGZ>v7IZR7B*M3){k& zJ%=vRA}X!NR9rMfb3;AKIrme+x;3YQX$|rN-S~*~2rL}l)9n`zks+|EfHA+-^1WRy zLj0~nU-dB6M@l*Y==4@boJ$9BULaZtmEXg}=a&Mps%`!{hi$tP?apQ5Tzrh`0S^2a zGo!4j37@Rz2Y$4)9OBpvmE=`vB`%Dw^teUVW@%IJ_*IiPNpG8yc3~y2ZK_~nkJx7| zqsN3hti~BfuC#HutA|^#syv14Z+;UYBKb=O?eAvmdh^LI>&rb*KzDO^jZONa<8;LA z_FZj3QA|kua%!pe;`!TvAR<{&Z5%cCxY?wwSV~yx=7QPnH=1qO1J(%KWqyQn>tdH2 zvx1fh=$1#v@oM3_(5Dmvs|Hp8iKSeGgl$E~Bf12**H4-`>esd(OTtEZWhSqLwS?2| zVnwda2eTX0M#u=1Kw-$6()+A+TXVA+^0=+(4P*|$4X}adfGyddu4GkO{ale;D}Y3! zKW87>PteWh44ouG(dR$-C}j%1!N$CI%us?k1HYMNG!ODvw z3(lFSo)@-a%!v2CJAYxIl~v|e8*`7H#fn&6P!ACXf!Qi~O5je<`l+M&a3%ZHF(o?= zVP?r*GPbp_?TO*D$83U9j0h!6)&8wyBMc57FE7cbjt<6OY)fP0iFcvp$FFhGc(wKb zw)K`DZzqPpzjWwI%d@w}_&+&jZ%Y16mhc|5>l@%!AuW%G>X_!%V*w6 z6j0|r6&gQvXXFSV!@pTfolZtXRzpwT24BE?JTvCNg1tU2m_%?BR_GT_nL;hU>^29} z{Ic&kn5K9E;<^NQt0vbe$|;%C@NC+WP z7a!Ff5gCXMVig3ai|tf0m?x{wcI)$^hYV7MvQb?|z^>0xg!4x8YEZ30(-ALUXM2ZI ze%_~3y3~eTcXMK+yv=QOpiyZOXnx*jq>@B&laM2RmCltML+k`2qo5Ig@HPs&7A=c0?oQ3egVU&7q7=xpcV}`p7X1}Qgy=6H zK(zTCgbeH54urtQ`Kdy*pZDW8RDfM~Pk!p4B*R#++l_KkM1S zGiAaxX3lbdkcM61%Q~B}pKy5lAf*!SVomRrYc+Doz;zZlHfPY|y3a5kqrL*t;szP+ zssHU#BYf`brtgBWBim1Wm&^J)$HM;p%W*}qq{bMDwsn_pCz}H%d(Px#Jw26OUi0}O zbX5JMf4fu*er=qiR-yXSy7gN#7s7^5_|GD*uvjDe&;;h5n1|COcszSH@z>BNy}7yl zOEWhsJ!u?v>b@^C4y$t_s_dk%Kk-?e6rtb`dik~|-{gTdF@0jK6CD%xK4;?IXZvTb z+Vgb;UdMvqAwu<=Z1TIt> zz&@{JN8ht4gQ}h_+HF&T!wDGuY0NQN_tDTqbNtv9TE6AF?-XBl2@fQwtT9)={8?SH z9r5Bg&MI0Bu5$e?bT&jfc{{q&GQ52#N()4W7lS8?_VNkH2tCZG-gQ*{N z%y?mm1#5A+fMRyPlhjRGcENA`k}2O1vysTg*EhHVYoNeF0ol1yIF<|KnugL3*Aghy zB4Ezxc2#o9)mpp0=T2E~?fR~Ce@GY2zqRppy^+pqqIydl%bxbyxNF(Hm`;y-Td1I; zZ)ux(w_?4!-@DJ4Gs~xz-}q6k(uYncm%s6RZ*T=wKL7i6;=Hn;-BZ#DI_&xcHx+Ru zm{7>a;PCM1BOpax8|&J{YJnI9-VllAdE4 zYm+VpoBePckid6-!)(4&@PBE^$z!cw{~wZ>Jz(Pg6q{+Cc7QgJ-S)7%5;OI}?23AJ z+aqS+C!fkc-l9x$DzSh|tT-rKSt0u#TSTm|*)m+wVzG7s?_b7CX-{&c4#14fL+?br{4!hIlw$VM*W^xj68d7%R zvT;c1n(atEn!`jeNNCQZ)($=;3fWfa{)FTxy3uXu zF?9#v1rap7*Z7b&;*YAFh|x!C-w_8zBb9u&bEpEAKU>I>a4&tXe1QDERYP1MImBpb zn~?#*YW&Zs-8LYb{1q#tcQE#=MxujGw)pqE7I5m;g+%R_c37UV+*2&6bk&6yiW_Nv z@g1vwgXV_bqh8;1`qYMkwt9da!!tj7)k>-QeE z1VhPoiO{(3KDLn}(I7o|T)1n{jZa9FUq=tsGb-784`p+MQoo(Q6`v>~iX10MAfS^4 zl_Da^eU{){&h4t-h@Ya@ayD?mFyIBQ<8W#1@4-UTbZ8MN)AJfbeIxwrvI!T!|qZ z%zK3U*v$#>c)F?%fGV={0N|TM+JP5jF_Ze%Dr#87Q`gKEcAT9)fKx|8q~m=MXDH zl(kx3hei#tyr=O_*k_^h0}0)R2LcQue+9mf;`sdDBcNzAEgL@MHbbl7Hatdt0|s-6 zO>1?+#)?(Z8>0S9dQkx=H6uCrH=AwLJff;2IC8^>#L6%GW^#hPfzsSiSa}VpM-+0O1|Yj&Bv*F!p%G0u6LXf3gW}=iZ9Z1&K+fej&jr8 z=~3$0O+PB0tmN*`sJ5 z6xIedyFSy7-1xI>AaM26`_0AZ^_{So{C_Ckif2;RWC@`vF;XJ)&`^P^Mvv*eCf8rd zH-Vz-KK?OG=hwb8^Lc$EHJ@Kzw07#0O+;%6cs7&zKJj9m1?Gu8pSfjnx2;?4XTZiB zQrdiRvH2s&`Qc&g8aWO}zOemGS|j;}c$8*v%L_1a z;~RUHEmOfmR0>|?k%Ko7S`I%otkmhGzZhPXsf?hwE><3;z(7qZsGy2_^_?@^ez3vD4 z3}0^9Q-$K-mt%X7oFbesnHz6ZE^0ly@oOOya{8qG2YoAm88LTz5u|q0QI-XHz=3Km zxcLvHV2bQ|)jk2=l5CAQ1%19!o^@bpS$0`2qPl*YWy?%H_#ICg4)8kR8dCrz9%nK~@f<*H7UCP__{C)M}?ULaHGL7!S zE1ud?t#fXNmWcBluHZxdjlKDV8n9bG#6AXbdOR=LnSRYgfaKTjWm1FKl5!I2`Sp8) z?FHIAziZR7XU-J~16Awaf;cOU)J5R z9P{&ZWI)GYK!l@zB#@Grh)W4rGJi*sfv0~6mSKQ1q=yCv9j1Gk`l6iM@qg3hW#gZ+ z&NgD7zPC*bwV8j#1@Qu~T#{LSjoeoJ-CT4? zW3`6mS{zVSZ@$g4^ixn0_N}v&=|Cm!>-hiw`D-R)7G# z{mIuApfOaFrQ)10fZh`L@cAe%_tT?XNAY^gPv0tZDq(!#SpjLIudL``x+_qk%u`gWkPlPg8{Lm*fk&Yaev<`i-^2H9OA9$v17}_hp@{ty*Awu$afJE&cs)`@3X)kb^DH zAI7x^M6$U>RF#(J4|P1p1!dK)l+t7WdteOCC*=%y1zmRgRe>0W34ZTFU7q-s@$iI<6KyApw>qG9!0EG|{l@2r}fvBihvT>7be3 zMd`W*44RWtseOz7fvqk{Sz6DI>0P>VV<1Sv!TgE5;!*;=`72~XsZ2x9aVG+O@%QoW z?_SNyrX6P^k1E-H^BwD~XVZ=ijG(k3V0-ilc1o8QEYeUtrHrfig4_`};|IsO?pJ-J zmsmK1PIvj$z-Hcn^)mxG;SOAXZKl`1Nj`jR!zi0gvQAHI- zxNbc(mQ*IEs(6Hu?9oBb?nzt-TJQ$J!(?Vi9ZwCt>@dYnz%rvb?lAF z=Y;=&E@~f^(5f#Z43lmOe$j%ppm;5=%b36aU&$Ww`W_DZ?A{4x;ugODpF&zYf)$FJ zTgU$1yw&W{Uur9HtA5dBx4M|74V&!N-`TKBa$s2;AZC=}6tPxsCJ7Y*-=qn!M>Jgm zp%oWvRRVjIo)F3DhO_^DV_|g6?9;)+eM0BVkbF}iGv$j{-g$4g8;*y*#s+;UP=dEo zf&H<)7EF@CajJGYu$~`w>dtpx~ zAHN)V0927*mCisDj?L);?^FYqE-BAnfE9WGLfu^${&h9K*n?1QG;QUB9an34`XTg8 z{cP!x<@W>pD=kky7(T%_Ob-}`lhej+A&oA}#5yBoRkH8A!qGA0>rnwWXSU*Oug_-v zqLO;H;+(KS)!QL={B0GkL@`2CO@vohr}HTV0aa2M3hf1)^ebxE0=N9g(=cS_ubd{p zX7}|PVEyIVxt#)N1KawY0#Rvw&t~NV<(JeskYaT~7?k8uLgk)6)be}2X{vU9&$pVj z`PMhwD|q{(qd&jc(L*;;*<}9cel^s7*o0I3J@e3K9k(#vApn>-(%)b3++@pGFM=2I zFzor?*vp=!CjxuPj~G+1m#+?_?4_O`u?I&g*b7QUfXFEWprN{PZi2nQ9j<>}Y&xYo zZ5@A_f3e;=UW2bqOrf?he!G{fBBKLXEZM}urj*7NR*DRw9LsdQaveRQKYe2iOV#sl z?BQ*&^eaN95H*fp(>e)7w7%~+BUNKxmf7sXRjd%UEUiEL*dGE(h~Vnk$Nspuv1cSX zN2=tGlF7VjQmyJW^uj&kOCDV!wYJ`QqlDg5*CyM`Z+Vc*p~dqx&B&UM-b^11n|g6% zP3Y9G>QR>R?5~yxmb>;f3HAK+>m}%nTJta8CiO`xz97EBCIX#~KK_=73h8MsXtmSa zPDKxSw2y9*W~onF5-e|1+`TegSl!v(V#Y6Ubbr1W^8g1Jp`!VjWnKk|uAopiSm=^M ze6*QLD_QN${@^7-^{eoPD10QRD(P}f5`QxPcHF-)d81G6DSUnlBxY8B52)EQ^?bGZ zkfqXpleB4~zf7COhJ%tjEH{0)-%9JdH`i_C7yc^9v|4`QFT*uAqq3(PxACF2<&=eh z=$(|Z6r>fc+mHoa%l`Rh6NJO=oVYJqA712Gxc^eH(R@|i;>KiitZcI{iRuhhI3y6E znR}9DVF%d4y&XZ+`kz_3tp5jbS$JB64EFR6Tufa78_T{o8Rt37f*()eQmF>LBj%gf-O&s($ZQ_%zXh)k+E9jk1^P5l`ZHL|7R7{yGzxb0CbSfv)&vp+i?isg`CKR2&W6!dBcK%MqUgfC>Q$N8dc+w0Oq*ba0VUnb$rxvR>jXdQF5 z!0Ppv!8P@K;Q~ibKFR#QGQ<2M7jj^KtZ2>{*ZabwDHp6~U-*TViW=KsFj7lgu)PJt+PYS)peU(>(n0-Hwzv_KCF&Wy{r@b8 zcM^!Amfi5M_-%H>LxJDQJ60%KDp2vbOT!hgLZhhmMBIFB9_jj>{}WV|PU z`28D_6)V~IZv>gC$n`vlr0MV9SmcW-O@{r~^w?^bwNywgvKAhCH@{+rv9SC-{)Beg zTFWDM6ziG|XPScufgMnb0DP_6Z>8mt+w~cjLl&FB8r$H{Vc|lrP56BF-Gt9Wq#@2$ z&+Zay=P$mF35&qIW;BG!zPoC1<1mD!xq+QJWAX<{sq`~Sa*B8#a(AESH>r~Kj0Y*9 z-&X_$lUPgB~ZZc@E0Ig7j$#Trh6I@zGI ztp59{!&;7^*0KYBr_mV){C<;cRqB9#jBGU=`}h{mQwst&h#v5JZ6cg}&{F7NTFxSL zzK_?xG~dUqx2L|3ml>g-))b*PH<#;?v!99|XS!*dDu0|G9EsdC+1b0S{JP7|_K(!E zuUP}mD3;O5EFBJN{+hK=pw?v-sZQdy(3YFx377DinJHA^&z=320_Y0|VEA#7a{g^H zv0J&O$%mn-n0AfFEGi~_2d}&Q)d!#F%0$PErDWO-hnK^A9Ocvpf51SXT2efEswG`q zdSLH^PgDT19x~hw2n{k z%0UG=Ke4DackWw>{QTz!8%k@Dm{L-JRe$!MAWLue$@Z){Sg7LnCV3e3+!ypWV^ctQ zb}1RUmfiJbQ7IjSyAk| z1*EJ|+6}cPV_`)Kyl-5_j31N!;}~0jD&7s?g z>1M^pT&OIc{;M=E9o%MC6h&d+GpwCm#L*xtJLvPIaO1_Bxm49ke(@^|hturnIzOxX zkd;1Q3EaDUabvL=Q1`MCUWTo|XJ~K2?^k>Un7RTfzXRK{wG|*3x3ohhiJ{|Q$V^Ok zTFdW0iS4bVS2T$Q_5A*m1BNCE~e$rin7e|(6q2~Z?iAcC8!3iYXd1u&wCWHD%tx# z(A*dOBO81akTxK`vz<8~M>Grb`vZ8|pQyRuT_6XdUK?;CNpbm|UZuW`T%3~!`%4}a z$u!Ls@lhTWkI+Fs;e}Bi*fJrZg+vx98S3n{@glR6u)rB2L$L&Gl+C!9oO4cj=$OvI zzR27ZSL86x{`Gsuyd6@M#ZrPXl0ijSSo&Gl?F~6h-CH6I#;WJQ#$wsZ=zN#PxN*Mx z(E>O5mZucIr;3}RGAa`$Q}a~ahl=gRe^G#%E-WAO6>+7u(%(@d)%hbup##r1asYj} z76_t}9rzI#jqWXIiz9HKLia;wbg3AL$YeJ}#w+exlU-XYU*_vYMGZ&?kotBrBpWW- z+S6P;oA*qLmFC*6W%HhO45sXv1oq!sT3|roO>CM2?0biK&~jO|{D?0!;RJ^*^1wmR zwxyINTfq=^6)>sfM|{3_fK(^*ql>+Td77nu(=>P9zdUrM*x#ZF_3TSWDgsu^uKbN9 zh2_7N1B=fm_*coUe2m>#5r=n&QBpf-N#%6>QPdd*uf~9VmOE-8a1a}@uKHT$nuLpu zjhdtQE;2%C%#gyl&}~N2;&jpCJkn}9cU4!Y7gNu83Zqv~)$(o2GL|E$SrqwaFw#oC z?ZFUYsh?>0)e;e`QT?Dy=WP!jyJ1=9vJ1a=W6u!bediqaC&a%<6IBWG`V8HSLhG8>JUJ9U$mmg@ShIrhXPmwcPuF zGrx6u5*_u8Y^w+4k?9@ic3C5x7VkB^ls14)L&fl;+ZHg90pC^)XQe>3x7w$!2&x2z zu9CB+t%1b}w0`IgnN3uAUxlr9q2QbIa60uIf^Q=eYrVg2Md zvjEAzJh&li$IO^2a<|%ZWZl>4*+vN{P8^F}`HY@5KU0FTF2gTt8|?n7&9)ZI@GQWN zIHVvW25Qh7GVf`zdZTnRbllm+qeFUVqny1hRN`7to6Z`HG>&azk_`M#i(P zo+Z+qbXK|uc+0^@h2QYfETenAlUhbo_j|cfVML5Sb|wGce;lv$v~1lsm7WF{rr*-d zeaa@oX<%AD7P2xR+7S9_Ydm`c{dwKZjYABB8i%^-A|1>s?TyWgg}~-*MoIPbn6+G3 z0sJb00ypus4^RYZS?CdLTvfSBvkiQSwPc(x8(+(3_M`m>0C8XP}R=7s)~>RYdMHtGTin0GF6Ek61%BH&{0JPD8n zbw^Z{%EKTBnP>kCPl@F%TH=sxF^Eo6T1uw_cR`hQT3<52Rx>#@N^-roizCS_YlOsL|0}`PQ%BDQASKiN;c(HMy}v z`l{zChJ3aB&a>k+0j)dFautv`8dZ|UE8Y4dAjE-MYyg(N`J2^iCrmf0^N_E=Xx;h< z7)d9~c^NvO9;t{~DjZ@rlg1%NREHkY-?rq?L%a!ksOF{Ke>{uTvme~-JMmf5if%Q0 z9Z(IEb%!0@vs?Ip#;@8(tZiodU?YCaACoz}O#Za)w;}XmaU6lDh^eFqB78w5b#q8l z;CyNsN_CYU5R}ELF6*b4>m$zc_N#?$;wJg1qA6edn1fK+(+r+y1cw$%_hcF3x;bAC zZv7?w#fJPcAm6&>(KyZAcj<@kS7s)4GZ+?%u4pj8(0wF%%W)lG(ocP|s7;_8VAMnTjBdI)^P!S& znJ@36ck!J=&q7&Ull~HpTYMA8$eXTg)7ER*W~;pe#=IkK?WZ6tVA3P@QOPztBcULD z;!FN=(Gv9QRvlfcP`hFsncXU%#%9qp!C0Gs`T03cO!W}sN z07-cU?Gf;+N@b!=pdy3$yra8AF{-~YF}=d}417)|EM0H8?@6I>B-awBS6UmG8T!ZSCA9E(eo}K={&ksXTUHL(Lbyd2QTqmT)>h%^ zC^P(J=*9((^eY0sEiV_$CT&8L%n?wDj7L<$7a~Bs&E(V(HHhH=n4YYdoKaF7Rg%s= zvMPc|)OQLYZo>4zRG1zpVH&!Jk1+7xdW{pNzLWd*e;*;Q5HYLjF4^4>iS9+q^Ete#_%lQw&uIhHW0QS{gkEApl1LBrj;u;J|ctNL#mG z(M2NVmcj=jr&cZhe%@y$T0Q@MtBe?-F#5C=w8*Y@nOCOGn-k6A?Fiz-ZsIuHfAYkj z^l+IbePKCq>T~yB)`M4oCRR6()7At!r);>ZtK{cSZ*)Wc%e#7(7&D-mm)Z-@zRH;*k4(J>T|n-X)70{xU(el5E?8eQ226fIQG>NZO)) z=VOD(lF{P~58LgMIW$k$)=JMBvc0uqzp`t|SIefp-mjWXeM49^o1>|Cco!qE%ByB` z79v5Mt?sRS34&n!>y~{Qgx41Rnu@)x__owP7X&c&@xyrzA|)7C8{IvM#6=J@$jKmF z$p*F)ki#t+5nJ%q>EebzSV(?Fhj!vY!J;gMxIJQ(bIOCBX>RbAE4OH?w_LgTDj%%o zm{ttKYQi3~YkhxDyl-&GM|RToQpEs*nxt5((`2kn5u7E{(7*4uiU+&p{T!ip8gaYbTxPE z2+pB6P5-BPwDnqi`>z?$%5Vhs!kr+sNBH{+2|K?7^YC5gaTE3IT_1G4DID9CNq~X9 ziuuaeh$*w3>Kfn8w;v;;tz;{V(N_20kCU(1sC$>9U`czy*lBXSCb%oTJFp7%@n}a=`+=KlY4+U^IG65 zs2CRvxCj#y0~~iG+~{n*74*vPL~p_DYMnmIK&FjFBu*FeI)h)+R$`mioJ7nF+CZYO zzKcJSG3T`z;bAr4pXJg~ zChg4oWNp|<6DgI)K}1y%kvud99psft-8;5d_U**>a+I}d)hAs6o$`EQ5*6p&X*+ix zJm%tueXFY0ha!+%$yn^8EHbb!@v_jl=WFAZsB;g?(+?-R>0w<~6{Q19eQc-8L#VXA za!&v>xBelAZr~*C~g8nKIy+ zgYUc#-@pG?CiGcvupz}jdWt7~uQLc*B;_Cr@)aARK9*nderc#?Ow{ug8oMF|No5ml zfj1Pkn7Y8SOU)GkWiL5b@ot!j^9EFj7p~Y~Uo!E)V)|4qKj%>~t8;!q#V7kW-?>YS z7C(s>Yu&zK5UP-Aw^DxvW7M3DVIr<^Gh>s)TK!3gFQEV?zX67?_Rhf{wd-DK-hu1N zw(Fj4WFA<;c6Jc#sQ8h>In!3or1)xwk#^KZ|Ha`njRx^_G7*ylDBCv#bUH&I& zMweeGE@{S@{2@bVQ1$HcPl$AtA32zAFSIvf4ZSFGGkaV1lkn?JmYoN~v;<9&KipHq z8Y*j3wnW`rMOs3qz#)+PVZ^G5}5-Y zX_@G(>kq0EP}#s3gsM$`P1l#~)G3|W@bCs0`#(=y+*tI&Yw-qCkSuJy>4mnxdJ_v& zvhBZOYvk7)y+G@!iVALsdx5MH;bzQ0g#@?%3fnSd6W{U3Ca0f2QG18W?NK*^+wLr~ zrDCu#B89189I(=I+g)ixLOXQh*qJBKoO|rCGZqy6?L)hCbHIsL;xvZHv8o6;NdWLS zKeUV5r*DV3UG;qQYdt8v2fC6y^_`jguP?{FOc0*5O>AF1@l3%NbSY(bfg#vlPkjeL zr013_ZC|}c4~D$k2J0YIj}(}hy6Zt1I})EayzRJJ(GSiIXI0gmDW z9-`^aYWc_e*<8QeysP{$4a3pX20Fb0YJT75jUv$hvlg6KX_MES5?DTBObhKNZ{V3R zTJ(q|GndY4U;WNC@6uV3D6iaJ&MpsEl#QRf!7G?W{IrrivnTm~%)NjI(bFJpqZ!g~ z{J9K?An?bZ=j>`3is&K@i+%}@|0h8$7{T+G1FZo)shm9au#}uEFctYF{M3JPosa)1 zg3hr`QI0U#ug7E34N92BarEyQ#~xc9YMy1xvuO{@5We=UDHk_p>i#K60PEgi**CS8 zAJ9e|_nt7j((;3oj9Bqn{O!)+l*v`;_t|GzHgEow%Q7^@rw@0j>x^OyRUgpF7&IjG zYg=7yEIfGFUcIpI+{VF+V)-Hpn9H+rzgF@cekVQIITsB&B}a!}9W&dSqj=KTu!;_> ztI1yjfwYs#szqbpNUJhp2>@JY^ z4A&BdH|4PE*NdwdozstJSOIKuKwv8BwpV%G^IuwR@8Ve))oO5LNM8PYJ>}^2{Q0MB z!~F0!@l~nIis>_$>iNGV`n#Dd3Wi9&sPN!h~q?xk8Y&khj4?FM`FR_7a11RTOPL}7mo$mwzpt9443!{0C9)Q z7H=<17<4Ld!~}h!ND53b;Vr{UE1P{eZ@eW%gHD4S)KlFgoLV3Z%&2e%#kWEsIG^gGh&EOec>e5~l61nKDkwk!= z@s*YzzF%PFc>1Uz`lMkRUYiT9r|ZJ*6C0BjRVnB)sfrN3=qS5}piZbcwtu#oyvNcm zxqZi%=8E{!wy7&(>hzbJ!a)|OoI4+Vg3Z;lkN&lR8ty!-CEp;GW?sFAe;KlJcIP!4 z99lBaso|OMybGBbVEwqs<3+8b!Jqv5tDI?DcpU^3pe7Tyme2lSQc7chp?0iU!x?JMMG_bQ2{Am5`!83bSDkD@~p9`-Qv?pE6izoOz=^uFAIGbZ; zq0y&S62W@jU*c}){7f@614b#A+r4iyukMcx)m`pHE(zZmU8cqhin7G7Sf++bNN2aE zG+2l65UXEsc_+pr&6@o(s2|&@OB>K=jDPvd=rl27gQR5g3tn&`#En+j=cTV=Qovo# z%UtB}m$`@NwixBRC6_BEuxnb*z=vnGq+y*evfyD?YtI>_fy$b-|xQilP(LB*vG zAEdbA2^!rj|IdkPyiglPHJW%E`S9zm+C?1}Z5*r3h|V@VCsu+UOV+w*DBJKabPt#3 zCS&KRCGy3ENf!M4T=2YiLPaerrZHpUw^IsAjo?aF=c6aHDl1_*gm#~8# zt>z@wayyaRZIWs}7%a>zwq{|fG*Y~7{cfPT1H?P0O`2ZWe1}U;EV8ot*7;cO&=EHN zv6lU9VJwZQXMcN-R9+kSWLYJnAL_(9w3Ixv_kC7epik3RhC|Yq5;~V$JLCuzFM{bY zvHAe@)D*vZ_KWBI6jqy+sF9Gr_?H(gu01K7;hfJVo7MwzdYQ+&rl$c1dHV8zpy4`Z zCkw6}F|S@-=AVFXcvy3_=(3L#0?S9i+(A)Lg-WM)_V#qIl-A7h_a3wWbVwLuIHMje zF;_G99Nq*^m-?T4xS!lS?GpcvGYU*QGbd_icP0DqfZQyk79jb31&&y!Y)8K;{$>9Q z7UoYcNWftn-5;&Up2N@rGrSh(Y&On~oaX?rOk znfK&Lbb<7T4O10Rk)E7waD(Z;!8|G#ikvbtBEN2Qld1rsdFoIe4{>^x1a{G}_d8!cw7QWCH$_ZkB2y3DYl>^wEf0@jI?($DG94B9UUbO19`?lK@NGWch2^ zrV}Vr11n@D6WEQ7t{ODQp43#k_Vkqi8~Y+Mqx`|}tB`>&hTC*R5VsU8jGbPZh4JrC zrxwP`40ayS9P9-BtS~g&^E04sJFfY9w&$k{t09K-N_A@%Tode&s+`$mDZ(Qh&~u5y zPU6sxa~OQu3yVWBWg)y57r@8F1sR!L9SWT6^J}N0`r3@i8<$0cTjmk?vy7Z>*ZsOJ zr@Y5`4`*8S8j$~neeXy2zGcYC|Mv&hZk{~%%?_I#|;dO&WUQQKlMqYh2X z^*{P$6*VYE#<#A#rl+^wy7Fq}1k-QRXR5UR@@%V0k`<&u^@&P`skdO}yh`iJ1ATo9 zXqE61pzJ3<5^Z&pAI+1?AbS>;4{*f&4z&OO6-Ls9neVaa2f)7xKzDzx1R$$4K`HC5 zv@ZH#TlHyWTz4zD5RI)kzqnh4)**SsfUR5C~mVSDi`$I$N%1EUN3Z@NnY zh-aXmI#%Eu>4Rhd?ELF*+YyK2?<#cP?F?z5yPfW|#sW@?ufi=u58zn9AR|pjDU=(` z^}*qwbmSNOkj5wed=~hx=X-v&hjam2QP=W4uSeGKEnMX0*05Cyunso5N!!e4f56R% zF9ckn)8d$OP0hsC#tovDH@d|h{gS9~Mogwdn?D(1+UB~C+Q}Cyj%S2a^6z zApqEwTT3OYUYsx7*liVYiw?0Sf$P>c0o{gIN1!^O&$U9T7lL~BMH)Q?AzQ%Q5Wrww z$-cOQ<^MU;n6?Ul-DG}L_T(igz`k8qGuX2qz2Ac!eYkhfm!aWJ5X=)O4h{?E*-t<0 zU>+xE_*$?*=|$<|Qv`HgDg(WiZ@H?^%Ca2LE2Fmhx68exPWLn;o*qgXm1I}v4>k~o zc%VX)j!@eP(!Avvt`l#1ySxlIy3?m9#p*WUCr&CKmA~*lTziS>AX@q__vF!wmOb)ZvUojvikpes|Rp_Ra{zHVInDbooFRmOQtIG5(u--F>EDNbN6g7UJRro4$I(oX@(x47kAnI5q_81m7_{qU#8rWQ)-jl#bzrvC>t|drVIq*Tb13`1M3p z<}+}?*)ZA%jm!ZdD78DkB&D`xi|13NcItsI(`{~IK(4##lWbP!4BRK3yW;JZH_kkG z?tI9Tz)`N+WwPUDB|e_@9I9fcp2Grm%Mu16wB%SJ^`p#W=ydd77<<|kh4;zodqQ&J zm46MWLnFH*U^!Le@m#HE@UMJA?6l2!f$SJ?oF>8MI8HuhJD${aM>EFnT^z^XR>AB= z*cfgwh~aKaWdt2?wn_i+90#M)V`z!pAgJWBhphk(&ub(To_ptikqPM`0H^0ePeyEUsmCP$Ye42H?Vr zV*PcKLW+pgianBw_#A4&$%znrC+9uq~Uj90qmZh4x zAj%Kj%UzWJWp1>KoA%%n#mzg$necSFsWnQ$p*;nE;(z)&=rDxM?aN1+GYSA(T-H{# zE*Iv$Sl@&vuH#1&?MI||5ky%ZnZf@RTyf*2rFm(1!*n z?C#!+w8o_dXbvU{jn{t2Aq#)AS;Omfpw)YxdECEZ&)XK!0%HYtAs&W~ zr~kn7w5;|%-CFki?<04kjO(>qhCoKir>kVGq`QubsM!>37^YMZeRM=Km|8ylLB*M; zKV-<@TL9peMPcKz@UD_VKI#)w5OWxvu^c9H(Jkdcb@U&2e}12o;58Xv)Gns zcGz#y7w?z$_f~89*LzD>SIKs{R^p|&K^}QuymL_g^2g>_7D1g?N$Dh*W5q@6c9&}e zi!>SajraIUd(nW->MJ%}evL&=V;5v6bB#VAC3hkA{URgL$6EP6Ol%L|pl?~w zVt09ITI}{eO|{sU>6$%g6RuhAwdLAN*=)V#+Iqs!QoBhal;GAO%zGkB>{sJ?n!Ik9 z38SQ>|1y4SNePzd_n?u|&YgPMZpAy!UN18^Oqr){AZdO9aPVMvHSpz_@}bYWJmk)$l0itC3?D7DlhP z0Ww*FHV!M>C5_uppJdH7j`9*?z9rTpDX!Wz#_RQ2m*Pl2W8>W7x!R?(mW_{5;cdMd zf@eb<@bYaH=#+_j$RUSV+pUlUhHOQZaY2npfX*`=$kfG2$XW}tDFn>G@L&d=u-P)t zwxcaibzm!Xp5=Yd-mH;}x;iU5a*FW0-_HwRjA*E2tRGTV=Tts0wqFEO&&LixGtuSk zkfh1mL?ZgA_RT3UFZfUGF3dm@AS^Pb%nLk;gBBpOTs{2B`B8rt5M-i6nVMKB`R0$g z%yg31VVuleG;5`jZ~hyL%dja&){<)kXq@E43uQJ-ga|upUFfYDw{pSVJtrAzM`QkQ zZ)yfDBktYwAqY;%I?|_2royByxUAH%#+d~{??Cqx?XW@}aH?%eGC>lT;yAB;3hOi;4;Q>Q3#{hEtQ#+$r6X1uYh>)Hg?fJ{jcJGEl=9p_g^ zNe6mX(@bIZ*@3}vrCy3mUb zaG^S=g=9E+di{gd*#TC(vCFuPE@G$h$y$D7`-tp039us>*VwUiK&eZWyt`dTFa=dF z6n3ODuq`tRbIFnx;c;i)Dpwo2zDVqY`PVf<;&=^7b?<_T_a|G-3ke}Ae zAVJ?nwVt1LTEvIGMcmTm``Zw~DF=|mH~KKmaPu{e6fDv!uEy(_?3g&7TgNNbyZae- zQ*-BG=2PtI*>~@dKK0!@{k&rlrFfmZ#WnscfD$#*KV#!`Fv9-rRs(Dy?aU5oKdJ3h zIGem*f=G%Z(;R$HOaN4C8NNYqO}o)nT896pEvDlbn!q5i(ny8Y^8t(kUsb8UJijpg zC~(WRc%>V@INj0=?Rxhst~YDhUsc2PtYtqZoYnW(GWw4^=#zVC{o@fHdF!obysqSmsI~raM&X92w4U+$;ysyWZmg~TEH#eRtzvC zO_x)pM=h%v?F9p_nOBXQ8}fo=OE{?b729h0`d1efpZXb?wzZr8mGU~rNpLL=F~`Gc zxRreUHX-r8Z-S+y+a`SqHNpvAV;Ll_J4YHGC;fZ?vU9;~UFzr`;LzRVjn?xwzHtP* zDkKQwrCcGfHThly+VGCx#?VKLOi3ip0)rZ*QkZTJD_!F4d)vxIz7oakgsBZ)zU;=5O$0T z!HO3qY8GBQ0?IAF`$qyd$6yQOP|icudSP_{RHD3Z|?9EP* z<-$OiK0;1TMQW?HJkjsoUZ$E_ykx*R{iON>T_=zT545G zJcd43(2<1h9bIJ>n7ftc{l9nZm`}-$3Up@c(#o9_t0upalogX;3 z0$K?h!^3jiZV?{1*@Z4vL?s(y(5_t!#R~RBf_8Eb3SVfbP83QSFtKQhaFr|MfpIPH zxKaS)AJ(4>NCXG_ZZFLa8`qoKVK2|YK5a^qgWc2@uRRHF53Af2*+Ol;jHVvx4XDbgD`}oGPV4|UC@dc6Xu3_Q!-00 zrToHO8)N3pSa8&!dXvMmo#NZmy9SCPVB#I`ZQXj(@m^(3TRNI6gmSS$))E51h`zCp zrFiGF#^VuV)mi(r$zE8Y$N=U6B#qwF5y$D66J&51-4m;;@Fwab>QxLC$UF*b1&2M$ zIBTG%lQ_Xo`c_t{LF>dCt7JdvZ@6>VnX6V9`ICMrnubxqy8r>{^9|b)E#Cqu4DP4y znnw_Uh566dC3v(u!qvB$CjYh`5koDXx^mk7YKi;)r>Op(dbI66B6B^T+U>b~048l_ zU5$5LtUuR`1&6N{=xuptInd$uFG#vHw6dwd~=y3V306d#i#FM_u;t zkxoK8KR-t#BCZD$;qB$JBT%AGr@z;qH2~1Vsg`|fr3M{-t4nw0K*{>wy;k3I)E)X_ zT2}yb-p1J&Y!dp=*kO)?CMj*oZ_UYKfH-C90jh;-d(tsuZxe~Byy8?_M3)v>o|5d!)5yE5XIJ(*d%>xP)YMA7 zQPugCiWwS-N3#|)KTc1u9Di-iP`GM0m&8L?0TU!H-bs(XovaJFKJ9)8 zH>VuCvZdZ>+7m$WN`l}qZPI~WPpHnfS@N($`1SIR>NL>L`(CCOFuCk*R;uTh{m4Vz zD%4m;XE&%UC&{Ia_6a8bsb=lbhy-`4e8U)C_KZqeY#T%^7zv1xC%6DEyJQ9UzlKk! z3|oS+s|y1bxzGPk=$G5u>6_1|+N&jR&MdUo+0F;Z4bJYSC10qrt@f|Ot9Scj&a1aT zb}a~E(3RQ>l@2>#ZUVK3n4m+QzzXIyt&l+NlWK?jF?Lo|JZjL=h0?8d+VY{_Y-3(H za%kn5pmOQAdw~p6V^9!iJ>X-MmF%~&vHfkL@i;Yy+jlc6p^RrKV1SAd=>)g*yqmXI zvK9lPBbPm*@lhR+RuCOaW4d#|{A7RjT>G6#`jXOEPDP8ZWbJoFOcin|ahkqTb^hL1 z+OBB@r#;qKHPE+$|CYP0v8rd4`_Ed|erIw}F5lXC#8U>oAmaeh0fgLX4F#Jwcf~SM zk$HV}H8@*n?xvo6eW%7wbmnr}tu#t4NDjvAn z&_6c;JI6n>^DmArCIrU$XwuvxtH3iwCOUlTKM|QbCoezI=9>Bdq$Z6x;AW-0yA%s9 z$b-w4qoEo5vqOl@aZ)GYQXfh4+1x%`4?7_UOr~ZWHqWaEZh)cZV*;==_=uzepK)cs zxUzbjKT()k?5#-_Yyw!m6E6K;|LjxjX$kumAQcpdhy{9Ntkm~E}~xiW5z)F;@0*P%@PKPCF}3==FOQ!3zYAimc~$ayMU1QZtI+-9|UG zL9kFj5s$$)?o|+rxxD2;6P>zqB9;M_q>I*C8vUK!^_GVE9(d&?!SW`A1(lhU!YhHh za}LA%G-`utTtDz_-LP>KERJk$Qol4JkqsH|5SS|eX`dx>FR2 zB|H6}sUdTBMmJpQfQ_6muC+m84%k5rLNoSGAKc%0D+cDduFA;GvtoWw zT)@_BtuH1hAfPNewfsq6N;8B#w0-cQ?u=yvB zb(g+UJcd2w)g8D)5-9WTm_9O13id5Y==*_Gttzp^90+et+ON70g(iJ0aqLW+s^EDU zD3W3I?AFz&uFF^OA_mf}XO!BW)cAu06`nXm74!x0i=pC)vSOmh=)ogQAqN1)?aDjx zXEezvGVsZj4j&4Xcl6+f2(4Sc{oCGV90L3MU%&D=QO}<{FePN95i4T|7gXF`EntNM zyBp#gG@rN~AZ#(JbJ`l*p^4Rd&YzbFJ?`sg#)GhoV`27^6g zjNF8wAd8zqM3Y~%1CVeUadm~$hv`uBG$)(rH=)7Ei14TXs`g(43`o)EU+)vKm=CWO;lN26N46BcY6g@8L<-Itx_MdGpN^v z8iSk*K(U>K$>WhY?dGGr3GNM&13L(zIz7klPr6*K<&1}gDp8H&50BVh5pHWT>lF<( z=`l3R(3;Wf+@uQM_#U|h>%6p-RAF_%;bW!6Xf^e#%n0g{R=0dt~gI-Z%-E$5K6uql$YN+0q4W-5hi*q zF{Z5rEL074E&rfqJk;|KKBgUeR-;-9y{Rq&CgzZRtZNMm7O_ zL2oozHy;77r&= z)gl5xc~7%P*tomy{Xn91Wp`#!iSy*tvpaK6oNm6x@1{YizZnLF(!lwj-d^>E(rmOl zb0vLuFDG!uc7>N5Xt)&ZRTB3>UsDoyIKQ1d_Ukiu(!>Hq)p?pU77qn(WhLdhcqQL* zx-=%T*&MDIqUE>Jvdc0KnAAxk%B@IE?p&=2&wvH4fm-P~qcJ+&ovWyrrKg`Z*hH$3 z_Z}^CyY)KQnOdBLGP3=3qjm{?|9y}(AAXpDa9oxU6ZY|NC$K5Rj(!F=on0z5PZE(s zD5u4g1(&&CXGaaNsXncHjcp?}8Yhu!pzD{DmH~uo*-qPY6?z#@gwiljH7eOVw^wqV z(Gv}ibd`g01~XQ>l3%ydIXk!(kAY>jFaiwubzKYoAKv~v%&xM^`-idiJ_$Gg3M!~T z3n&CqAqintF@`8nAR#G41(ZrsAw?=xp@s|yBD5lifX9Q!0|!BDL~%eHS_H9C5k)2& z(8fokN~6(k2Sn6X!B&2s?^^5Ld!I^Bc%JKh|KK8Z_TKlf?sczuK%aDeh;2XxKj@?I zELoM>`TDI+Mzf|aDCsM3@b2|ckYZfL=ZiL#`;^h7A}xttno&pvK#+a-ljkuPsV{&A zp?vKFg+{*l>ehc20>LXf!V+IV6i~Q;ZlUpVFqQM*GjQ7}m97xP>W1?fC>B8KM>G4@ zRmG_7>{}mq!=71*gQIK-c@S{E^9Ao?WvBG5tF$~iT7dSixfpP6#u%8V;D<5&QWlHl zO=nk_|vR6QA5VDE7*c2KU^f_HFCqWS@JQj=7f!_$BQQuEk6AW+edU9ZpAWnjlD z^hXE;&kZas#9;zn8lWT1WW5;ZFrgoG=k$AFj@f2*-6sild+vHsXs%_F_u`88CL50O zKI+*QZi0M2wRaZLeTm6)i?Cb!2vV_qI#;pJ-Feo5-01J_%pOO$e&_B~Oks8&c@J>7 zAqsQtEVQSnVAVm4^`+7S8(8XqFXC1lN`fIbEIVG^#l*H(6*7YC&r$-aYDYageyp=! zT_fZ)wG=<)HD)t+^xQ03ZVt?u66P&aO*un>YFM)2&02P@l%1@;fBK2o~ClXl5 z2tfD4uZG<>P8}na+^re5FAqhu;#o0S>{RF|ev)=9p{AWR&l5wbXU+Fj_@DG!i~S=HFhm4Ln0H_x_uCxeFn~(xd0gyQaVpi+{n6UevSc0Zd(gyHE!D zcGur7Dtug!{xG(bya^OD`dZLn$c$WM+`|+LfoMUGvHsCD{m`9(ACG&Zb`w3yC}g=f z?_SqY&KkzV{CBTUsyjF7lAmhT5we5h7E9cK^QWTggoc?Z39~W#fCHvCyZ$s6^g>t0 zrbX^QQ_$E9ZyGx=!r}Z6zM}WcC<~N~iZ=5-^VPke_y*;Vl&lMZWzU+IQnjuxvt}Pq z#QU=x^OWF!e)E?)mTCdM`qIWuHZkY6pcAd^ktQT0F@2yH(#r84(#^8|r``+MR0#8F zS-pGad93$1vg62@>>HMsu$~`ZU)DcN`WnZk;=d@c|4jSWq)1ww6ZR8RrGgJ0hf^G) z>~f$m?FCfwDGG=$Gw<0L3zFjkS%s*RC`dy(Ao_TN+#zKop(=Tzzq-H|HP^@wal@egm5070| zt_;9I`rG-j%R_|D&)8jGSH)o&5@eB$ynu@0+~S}MFMJ>gYDX+p{`YDOQliw%X_ImB za89_h)1@_83Ed3tqoyHwY1VAqrtovuakIZ%SnQ#l{pBKaB|8yuKe9wx2&5IibO#Io zDH1h0BGNEAcY4Wg1LMQqR+S~K7Jo`?v5rg0)K?;D}f!`Al#KGl^o%5OZv zODeeRB{M?_RDod9wjs&2?bt&>;$u=@w~5OhJCYEMrO)mlx43zRu#*$$JvIV>08K}I zw1WuA$40QkuJK5fZ(CMNcG6t}SUWrEZcy07A`q!Ct7HR<+{f4C#onbODiAMIV`vIy zK15dHE$)d~bVphfOBTGLXa3@&<=m2dg#3B(#46f(#nxu31okRP&2a%wF5B zL{hHc7%e)v*aU**SIsiYXjr7e?5eg8-)+RKO8DFH+w68JS8f%=5&~iHK-6{$A!Wfr zLWkD4%?r#`mFv6TE9pbYo6;7(cdvu}?sEfdHo>vSE$ERc<>hY?PlR!ay9<&$$`HMHqum;Jxk0Y593D4nGt0$SvV}82 zmso%qN0T)-?vHWCRp4dc22qnC+8lOA7h>d!*lf!%!XZ2oC#b`WxymDT0^)n=sh(<& zbepeTXW-?uJ}(ZTj%<=&lM&Ti9nd_x2DH@`p4;s{@;K0=UYmZSm-9D94%&m(cf1y! zHi?QTV$S9%Awg9l{MI|&XZI5@Ghjm|F5M8e$OWm5oeBU|90zxPy|&YTjEoL>e@tvH z+Z^!HCHhk?UPjRu=2L<^=?WM?<}DP7@K_kGLLU*7DtYz0B_c@e>~}rPy}`F;0ce7I zb#q_;M6{Pe$6PC+4VlkB582p5Gnmq9X;!|bjS(1Cv>;HX{x456>lHRXtLVpqfz@9) zc`Ptx;Zjypm|XNtVI{K-deE)eAPj6YEFD@$4sqN~)7k^VMYz|;zH!iu+3oCOw@;!F zt` z3%9b+cK(HbpIAAz2H{sixA!@wV4cYmNb7Ep0lK0O+8xyyy@|7kTxT2S)(Jfjbc?@; zNn;-sFDQW+LF;rhiE>XyFfT;CImgj`85lZ+3-5%-u0;~2w5QKZH@cmF2I1F3;m`v> zQnNo5_ZqtZSKNZxBvVw-j0Mr-(L`#QIFeR_)L{WeF0%ucX5M|DWxzOOAY%(Ztz*|) zfQfq|Du*B*TnE}PX2?&uDZQ5{Oj?GB)96b})`p?pGnsdPdbWk*eq6OJ>_6uj#vMpc zwfg7=t!BRV*=FED(^&f)qt2~xl@<#R+hCg)jDr`54k)huy|yUCbTmRC!mn3AwKNkX z@HX=~xkFgd)-Ht?C}&(5dD!6AIhXE0NRXB8?QRGJd4wH-h#@3Smc`L}2s~X)L}xz& zI$ESBIHq;kly;?~fQxC#AX~GGl ztarK0eYg{^p#p~ahDVaAxKNnoBF*mqC0lK0_x}RN9W?S`MZx-k1FYJ~D`gy@GL0$J zVvI_lr)LOGUVY?xsECgsG>IQN>|+!Zn)`oQ<&FYvGuvlIC9c1n?X#b*3rnyPIxdk% zlB5`3nd%YI#Pg=GN$-F8ms3O4_F6y`nTX5YXFW+-pp^= z!}Qt7Z`!O#2wN={F7dRU-?FD$ji4^p__3IcRbqg0(bJ~!$nvDS3OV!7eLQd%E-y=d z{^%N-d*+|JiW_cy3Zm~5BIoZvNV%dx)IJ`DK!_JIK5q~YEVmgC6Uy3PtgzLwyx3;B zNR!f7XEYag8v^k#x1Q{`I=}VWxYhZspGs|z5Dxp`)&wayCd)G60$g-0)4UVQR<0hR ze?ejgGFVF=Rz>{6ei=8Rng8yprAlGj`nHR7+V%W*AGgzfuJ|Z~0il$1Kyzh7z?jW& zw59fM23t>xX(;_j-xlT%&T9VWOG>#$y7D@_t6*6r90O7t3&9lbRvFgGD&dlp@OZ-uqu7)Tr8Dg1`=Zkl2 zY-jcDR6(w=a@zsefwla!*u;Zhb1Py5ctC-|mq*!b?&au6-@ppU%ZGbHV>Oa!ic27g zOl-Y3t4DV4mzBT(?OYecdnIKa&ES9%WF#g<5%B?AOy%m4UvX4$!-{+Q!HWth(tDh7 zX?O!Yy~K$Dk+z8RYj*wQic)DY&tTtbF3VC#9?=?IKl!M_hImP{6dIblk@S;0#R^t! z30tOAB`QwBR%|!YwsdYw%v)9ps*J28g#)N9!Bt^XVU`D(nhSiiBWu0q1|El8#X*If9DWQC(18nmn%Qgi^0~Hml#82G)fN45ip+KD?dv|r8 zT?~Q`Mpi@AA3a54;8v)`zS0Bu}2$gO<^d zke%M4cbsxzyAM#wzjTwi$!&&2Yo9A?1--s*`fk64PWE}fGml8nI1vcKQeXJ;o|VuF z@bBMOZ@{CVj|h9ffG^szte=Wjy8px~{`=~Q-gT?65G>-z2NIoDLo4zp%%;c43b_|I zDrOXUR=F6LtWbap2saqNmdj1Aja#U3xdWRH2eFw7eD9bE z*=D4lcHE|+j&N)cCl@11@(i9RvVsr>A~w|}fWZn9*g0M^dwfJ>rJX%KivG)M-t9Xb zrB+aGffL&HppN(@J}=zmk6VkBNE8Va5EoBC?ELUf3^~LG+&QQz0%CS~t8n1xUjHYf z%+`?JPRojw8a`W0lw$bFj`T-}B~WNbS5?)vic5ITq4Ill&{!;pZWjB{R*#>s&He{$(ILEWPJNr3j=KYd=*yVON+{OZh%3M9jdvqcc^Up{6EE4%j?D!blG zJ&RZLxKbrw_Pl0x0a#?qjAZx!OA8hrc*A+bAI}G zKrk*(0%9{?b{Rly=gZoIsK6s5z4UVz!`H3|50MyK1ig@EGOC!~WtZ_-_Qa79S-O=* zBgcVjPJM$4Y*RQxofo~IdQ7V28kJAEpJUY5LClsv_uB0jct2CgIL&O$?IU<0Oaof; zjiq=ipC?nIP~NVmX$4d;u^z+lzU0r<V%`@4%21Yn?XnpJbUKC#!ie|C*fH6nTmevy8*zCIJR}4|_ zy64wMQ>3`{4X+?lrp-^m`>+P43nae)Pvb;7TxcyUf94oy%_|%ODRd`td!TZXshar> zzsL9o8~c;h%uH(HhIW3#AE1lc&MKGYlE8N0jDw|kAJLBuhCZAdT1(PvuPbuw+YDzS z+rhIvI;azkn_c%k0@~>7cGrEsmSSHd@E@Y38vu^yWt$QEeRY2wf=&V^@#7a8x(cWZLV?&xm z4C1Iqo)XjK7EB@4Af#iRb2rZ_YIdErpP`ZJFG(@CFvibMrQicdva;TF+RT`wkVwnQ z>tKtDgy^MSVjvK?VR|$|BaGD9A8&#y!q~dStD-=jA41fy7pI z&&hRm&p%CqqFV||r;fRtv=N^Ot1~o*9WQ(yqjECPfn-H6nxlP)-Xtn4xyBBo5T`As z+amJ%3KZaa4KByU1LfJF=U!7=Ck{1`>@D?~%B)rpbLCwZPaG;G_k>a{^`2M|;n%=# z)jIHqp=Ry*?~|~=sn=`IKiBBe1{Q(~8d@jQoA6;{NM5SyS9|Z)mQ7yDkb0vd=Dfbm zZilmFof)%~erc9YAtX$M5pZzj4&nyTl!+N>18eB82U({Obg>H{_|;EuN?Nw{aM*lL z+y`xFG3Git-#o&)X?^pX;I9eo3FnHYT&<1B(`E+9Kluj=?-#kCuoXjHPb8DZ;M_X) z0{gR5TCe8Ivy_;S-8QEj>m7%s(z#^9?GId;8G4M`Dbp84omPV2cd9s)o?FS1#&`Er5TA3DGfXIgNvobu|GAnO zU>S}=3ia$(40C-O>I`ov##Kn@!SBuNibq}22y0wByW+Q{t;>zW<+2X@la`faUxdCN zp1hDzEU(gtO~+UP!*aNGZNGh4U9+~|bgFi6#HcZ+sC@G_>$`h^mg8#_-Y9ZCW3!5eRU9pqX;BdQ}&mT)t&QP0oXlwQS3cxn%jEOuCX*)Id| zF}{Z}wYzR+`>+T3Qg zu9y!jTOz60j}aCFfez8ye#g48f5+@@E0Y>mHZr#4y?{m4Zhtgp3IZ zGohtAq^OxcaD9B=&L6nJFh!LUFj6kPZ6n36ReeZ7!3MgHu8?wO0uN%>xPG(r!8b~T z2)H;7h+HwU9j^DMPK(r4?1-%b2P$KR3vJJ*r;CmJzN(Auf8hUx3yqo!G;#X=v+cN+ z;rxapbRTs__o9;;Cs4ULq_N-(PO!&O`nVCzd~kc9OrhE5R|rT-t8Mdh@wwnd1?m_K z(lB)nmC)(fkbbJy-o7^|ZPm|<@-5+XDN_Igt*5vM#oD zefJ|}K?JNfo`fu@v7V!fh<-NxkyhuXvu}Js4k+QB_ z0a)k7t4n6ZPA|y?Qu`M9EkVM$AmsW5r*Cv}jRb;BKV}(CQ0(;Q7K!#^D#gm&_5 zcJ_lqh``{iQ7Fw%>0x|`^+9SARnLC*n}VumKYO%7)zvpsB%LB#hZa;l;3?th-yYeF zwr4k8BtSTGL=BT|Pd^y3ZE;SoBTEJPsGvPIMZ2R@NqKOlVgUPe1?j1r{mI6j~cQ zaUBQoCpM&uieE+L-U)6HNkGAgXG)8*!|phSbVsUKtpz85@=s@L%LZU-grRRTOZ>Br z7?}{03-ill#i2EE(n(2J5s_MY@y7IKe&0rspiz6|FJev<^i2&fNCQNe;uQP-m zWZpJ8Ofa13?pi(pz|ah9C8dgzks%z4sYKl3bw=DBQ|P|FSN+&vvRNWj@ws}H3)L>2Da zgDHB&BJbP113=kBA7Yu|%(PvN(3(`<+PS>#EMg)%%Xaq5xsy}1>a}av zxZr}WB#k8d^ zncx0DVUB~5S@=Qk|CV>8yrAxpuIIP^p`;;l`NlCTj& ziE%;_q{1b~(uz(24v|tHQ9KHPn`dJIlLKTJw4M6MOkh1o@%hi3V<(6uY`08ijw%8F z^|$>)Bvt_3=3UmYrd$W7QK&!l{MX;^#rK4TUVxS@wot?7r&?5V>J$nF2=M{MGj!LRa z(!HUyGXy!Lt~^h|U2i?R^8Bb-#xQ|qkm!E1(Fp?V?qmOr5aU-4c(nN>aq@`vbmc}c zm+)l+$Np_Z*;k6pQv~)O4!XdORL8-k@I^XL|(1TlmraY+F4z!1)X)BBbmR4BG(xp&Jc%?mOJi775|Cz}D|6dWMqohZvHZVwslr9ZsxONJ9mQ9e^&#zklV+Pok%CoE8{LZI^9Nzi|KpYVKgwHqvoua~&)LL_WGkfyvbmdr0J$v$;ii~O~ zf}sOEOm#}+8wF=WjHr@$eLJym5t&FB8S1rP%!of?hoC&o2%cXoTeX26*`9G`6~ta( z)B;0}R2c}r<0(Q1jH&_`L*TzY?BR`%Jim9a6O{QO`wYtxf)3iw57`&_wz4sf<)j~` zV`-FUf-nHi$#zU z5ddk8ca)7e48zV#z?@KyJ&6Le6qqr2Qpdu{pp5}{{iLC3k@emxs;yHxZD2r^m0M|N zt#J>?sOQVCF}OlK9Jq3)R14=&=)9G#wAEH27>pHz8YRsUzbj~lThN@ax#Q#UB}~!I zA7AX=#UMLmxQm+(ykHP6EMQi`+|Uz9v>*=^n!OA;k=PijxuwIBitz5GD%q}! zszS=|UbaqQ{ao2X&Y%iFNMEvRv?u^SB4X({uo?JeKC579MIFswe4e59i#zIv*ma)2 zc(HKLY6EleWwpR;I>vK{9#;- zhBpKDIIcMOssy7863$N|B8nO`F}PPC;wVZiD(d+&ib~+Ya1qd%Zr}f?_*CB$w2At*qCk~;n273A7EJFkiPU2<5it_r z3_|VvM>DLTSUvyIe&*?FDC`3fkrJh+U^o2He(bSG3{uLElvCzss>12N^?3(s64yH; z@hY5}uY7tofs0;SwF&Hh@H2I40ybi9`pG+i27LC1tQqb{DfGg52Z(>OURS4ds4w^l z2<65)Vx98OT3;sf5_`geD4yRA#O=pk#STkj09zfFRpqUh1X&AnrzQ?X?yVn&gL6vI z7fVPc@ZOu;NT@{=A-f-`NlJk{mluD>42r%&0(==ffpSE=h#l2Y4UmrhTrEB?Lzkk(E)W2`}fs|hMBLV6Rd zoDM?LMVfr+2%a4{2bGX=5|#r%+>nW4smqBdU$VC%xzAA&NObLKXHV`QcjWTJ(jAG6 zDD;InX-RH4_SKu@Q+@=IC?|5p$0;PNXB*AzH=h&%5(rahrM+<0Y=!=+-7 z_rpys#M!rB#}0N1*{U;e5@cmsAv8Yw_FdBTA;f0g_U|^gsm$MI0ans)-&uM@tT-EX zBrHP+2awJCfv23F<{@F@EH8j4Mdn0yK}v3#3)zR#Bv zm6CK_!VIEu>h}c%7l>mPH@%u**y#Z4O&Z|5)w)jwvywZ<1Oa$NAqWIV)r4um1OV@F zPsFUPS+^Wv@~kHHiN?VY!t4*6#vFdK&1~*(!${9mavQX>xsR2WGZ&+H)G3|n*5goIE@KeM5E5&( zGSP&z1^hMcZm1kU0rvtiN@;nEXn}&K&?0#yh4dw2q+gte_s(6jA~EacWPAIC!k`&5 zE`AmX4&wX+iDa*rb^i90wqojwWGq^O^bU`39LhNLmrTe&JOhlWWZn_TokdW5;52HUymB0 z4KX4+?yciysyD@(m=mf0FNlqDsEpyA2)2h~#Gi0h-xk)0koI_+Itwv3-Iq7BhgVD-)r(XjVCcNCbc| z*C@H|qIUW`$_6{#a1$%E`PRL-s)JS&4Tc{__JwaIKB4P?xVgivGQbDnY-h7}aKb4Z zWqlal>)8(fUeQKUKq3~OFuVu94!m<#Wk*f;)7#*U`QQmvayj*YF9YFD@rMdMV%w8> z29i|8Xm7(|i!?)gVTBjNXm?(OVv^K(0!eP98VMm4*)cMkp8t&PM;(=;e zp$QkM#7oj_#ol8NiU*&2&iLM(TZ%xP2ERHx0`L)$j{Ab|(?%iT2#20xJL8}`H)=-k z>MmoJG<&nQ<~44>Y}eLUSKL@9?17QlL=|i{n!hlk{_Mk6xYId>n8(l}bIOKR2@k^2 zmj9c^*I=~Ax?y7R{GQ_$AA^%zj%v;(Eu^uu)hGEiegJHG9m$&LCQNtaEgBxj9O-D< z`31j|*YSeir&Ue8=$sx7)*)1h7D)boWXl%3)=Z#Mv~_NZRU09ns4%sq;lWrz*Cd^+xW>echE5_KU2$nfR`#zLE$@u|`BYbCiQaAIf4YUq$P4=NQ+cQi z-#8@e8EtMFzb;$f|3hHVSw#VfDmk_i49&~)(g!vUPV75A>%w~e%^PPlyFOW;(V(5( zPFIgi?70U99!`X=G7u9hjykcYz4)c^>YJmyIgUmo8~tluz6kbIOvSh4(TvF0!~jv` zFXmS=ovLGEIK@@g%nsX*aoX8o+bT97hSbX7$f?#tJ^%6xHxFa>0L#I?Q^Z#pw68VT zC_k#y zM+~(ffi#|*gXF0&LG}(|X{ouF@sdn(?MoF}^vhRlq}<9cUzyaG3K9Lw3n9YXM(%FW zPf_R6A`+ah%NrFWG%>$8N@sz(EwPiyJFq)pY|@TF8=cO2%NWiSyLs&nDxe}RqiiP) z&%aNo&w2iW@%f3SLszIZz6pME9rg9fdXacS!8O$`XsI2*uo%am-ZDSh3KZGh09e+x z^f%YL(=C)#+mXoOY-YRPUvXwI==IN>aFF)DLUUQv`g9@rzvRXBSk`q(yX7DB`^+sKnz7ku7kju?Mq!Mc_X|KG{LH^|V ziG5=QBL3)>#dr?_rbZzhW0EO-;^l%eSu|^g>pKq|Hg3iD$Q+dA#Bjf!4_&N#ZfS(Y zS9>e&!oSLY`GbjR^=-d?6M17|hNS8L>JF_dts9HOufD}O7FX%YPg%@lXo02FBmK$x zjmRHiS-C!tyPMd<9Iho_t%S}NLrK0bFQ4G(mEbobD5 z==25ohTTOPgWPUQ5t^rL%~k~^ESx!&0!E%lgiG>>5EP+;GBiMccnqqU@PJ~de!E;g z?ZBXbYK2f0P@O4ARv#pIYRNn*r`K)lz?fN+KK;923K~K{Nla$GV;+k2~&eD z%#rETXHS|$`!$>q)4KkJ4AIW6-?2!1AmKs8NG#~&2`l-MeQ_&ZLRL*+WFJIA+G>&v^ah<=N8ewZERZz?M%^#{BBstx-X#5=S*QNJW9P`}5j z)1HBc?K$>|TFSBzyC~-nPoPa-UT5wr8`(y9a<2AkZb1${JDatoq!evSM7!hh+#4%5lK@E#?7ve?eh#6 zYP;)umj^@jbw+|BA5lo?zv&1~v_ z`D)tP)Sp*jj<$?Q7F4ftip_lL$I3Of^Ql*EE@^WxtMNb>=d7d-Asj#J{p`IMHUS~u zRz#k;{0CZox1M=V&;&fhR@ z^VJUeqXc*B9$<3L-a)7!)B3$30TI7cWsLe(pU%fsj@q-Wg`n^V=$0S@6qEla+wb($ zl7{LU^=!Wlz9f=VWUp_LLoPqP-QN8+a9?rhBiw6Sg;t=@SCvvs8;;Xdf~c1qVm{7F zh3@5m-%pWJ?>WbJHhQUc#>YJ!f0&B|d2nv_hKr%GNw_-N={K*(90kv%&rEc>B+( z?!GqTy^I@sb;T9IZt+P)i==wK`0ai!0%du^P;#%jOV0w1VdFR8cfQisjcKLGK>Ab? zmKJ7*4q$Pu#ALYF5uJ85U8s*N$R~FzZ7TT-k1FsX+#$e-%mjY*G@Y~%y5AO#A*hAS zr72!F=BeyfMvd=`fG^qlX=G$%>-VnEN;5`OjpJvp1Syg$oplR?@EBpDGiUqRE2%ew z9hRgwAVKvC2Gyda{KnK$aF_fbEw!C3d1%Y4WyqDFrj_bOx_3{obmS!uVNQ3~517=e z7y-c{T!|uCM&ePO91Ul}*Y0^TDlqSQCIJ79jZx%QzHAKqt!XF%Jiqbn3Jq z^IvlKF%f(0AFgMA{zU|DV3&~ujwvAf^M5C`itqu6U;nuR3lc#eJn>^_^(~{n>LVaX zn-M}qOl8WgrJ39@>4%sx4Qe7Aqu#K~5`$GUd*q$wa+4Tl?JnBcBWDnCO2s@bqZg77 z0$>H@m7qwEJ#j0yu=J|T&JDYOy2)@=!IpZSDV&S|o)1sVY!k*~wrS;tDZ+i_V}|Yd zg3s|zkxph;+ocIhi;@cfKoGj4IXdW0p6N!nCXSf@y5rv9{S>(VK)0QL=dr+6SGCj}!phDsQ1OhSAa5dQlv*7@6*~8osZuYVt`A&V zVhF|bS0S`M7nBBy8cz(0>b5bN+hAz>u#~ zgH-(DQnakNe=54=W%oD$sWQ#{p7&AQzn$N69=pYeMZU^_x%4^B=!+7TC_g@T$q?_q zXfE68%@-s(s6;WVujB_$}%YQ9qtFxc8R>wpvw%Vkm5V z@c#%t6Baz2d`;466Z*+eQSL(Rrlc?Rd?Ot*n2I#WbUn9YhS6NhtC zYj_O+nY`0kTOxE~o`1sm(zKuq{Bfxg*q@6#M2R7^nc?%$ZYZsWlQ)Zmt%v<()^ zaIJ~H0o+$a6(D9A5r$h`9d*k-s7Z&=);0$^Of z$UA`)D`?2=9q76?kjieEWn9%SWd1U>orif@x&bCS=mwD?iRsvmBa zXdci)`ZsZ!OX~C=)$|=VhRo6!vlhn0b(?|9%T#IyF1tkGqx>CTT&h~k@NJ6dW7`^* zX4R)O&28>=JFq{AZ8!^Lo+YP?{kHQZ8*~=B3+W6Su>dPbj1}(3tl0ROT;&!QmI3ibJL0z4-uEQJ0STepS1egO_uC!6)u=$JN;C-jP)lzWMc8rk2>B zu9rwH>0Y8BE~?D;MdIR>+x_}ou7ND+!@P1nMLJ+@=ilXrUV?S65$k5))fS-Knnhe@ zW3*L}VE8>NrDY8y>-j719|uv2Vm+kB+@%orQ~Jp#D0C9#o4@uji88MxvKS(UpB({1 z-dYi6YIMq#ug-=^f6m%bkSx*?QHZ(lM~$=C91&3UR2TR^EVQAXUF%hfLQ?oU9zbI; zQNcw57!I+ro{!TGt2_t!lEJzRb}QgVm~BO~(e16k-71;#)#eUlcg7q;A<$<2wqF|} zB~=x~1DTgAgPWaij_dXOZI2MEJ_*@5x$~X}n`lsQ@NK{L$O7(w{^-c*&UZc2u6jG) z^$c6-Qb@G2a;->jYvLej`mcX^&q^j%75V&C=kyY$0RBrboR~R#c0-IE`=Sw8H*8xz z753aXZPl0{f9{|I4p3FPlH#B)5L;q|1Vf1Bv^d3Cu{MQ_cBDyybT&lf3Q}H*H={@)yjKV!&qwNO0uB)Wb?5vtxKZi%|c? z5ysoh9{RS^7!T_dF-81(=#FCixNG9X9t7jbNI>_UUFGE}LzwJl#kR_Ti%DVWGEPa~ zw~*e8uH1FspQO%6G$OS^u$C0G;#Syif2%a<@VSeB43($O_sm`M=6iaOHT4rV+#!64>TSf@6ouDXldUN_e2#hQ8? z>PWvz!$yo=D*K6enkvH<*Mef+n52qpVSkp4c#DNgDsj~H7ya$pA|>j0bVtZ0bu<4O zL`g&)PD8g99@T66{Y_Zn#-X?pC`un%N{AqfC=D#}qUjK9(w-I$Ug|FA$C5~a#24G4 zkMEs{Tz6Vg$cnWX60;{!-D0T2pd#iSq&$ojh$8sAolRNqau@aTMH=KrFTOBK?6RwMs;v zM#YvgxD0Jc72?wT1u@t4UERBkSTt=7olK=z7hNE;H>Qe3?=L>65^@T&K717XlNnZ; z-NG3fSXk7o)9vX^Dzsh2(a?VOd3xH&^ug74bu!P^#DER&rC85LSgwTO6PNN!gS2-V+Y*r+t zatNIcC0}dW8*QM8?$wgJf()=cbDWMJM_l`qbyGHa`&ki)DfdiG-P)YTBIJxL_Iu;Ogr_D5AipL{biALE?j@4Uqp9VrMO>rOLZ(N;LP6S(_4PMeFK&E z57H!2gxU61?kB|z;S8wHIQGi%qcB~iV|0iZR~^{=vKQe{IB@J!r&1g{HmApi6PmZP z$4)Cqi;ZZ0)^sl1Ap9$a-(2x^;8Aab;zExNOVcQpPPuO_N|hn}wfj{pNqT@4vs~a_b|Nt+RZR&d;i)tv7T}+xb~j z607ibrxdBMcz5Ft&?fz5Vi^+1Dbg+MPHEfC{J9U85?TPLo*Xcnq{&7lG z)#7Xpe9u0rP&FO+-yavRk+T7?r5JT_p#)MIhjbBY!4)D;K!SpC!>x^yVfe7J&h?e? zHWSgD$$0uye&`_^J4Cp8{;3O!8jAJ&&_heBG*0wBZ{ye4XdCQ1t)9PgH>1utc@-EY z5#5GAo|l`o_f4HNct$`9d&E%-j+y_CG^GA$ z=I5Q!+1nxfS{VKznN}_u!_|3bsKwxUXKJ8?^7x)9QMYvLIUY!&gH9utb1ho9;Fz9f z{)zvXJV`tM#CJ4Wg-pWPQ)|W)CFQ&ekvxqo@o32F+`!OwJy5F4iuY)s1Xk(|{&Pq$ zR=16$SC9QG?1*|phMX+}Bx|?L^;$f&Er@4-^meZ@L`kTMjUBa;2F6+Ya;Kxieb2KB zZ{iyjh|nilva+y9{uzRcTmtWrxqJHcZk}sr)BjaZt^0^oO~ue)DKX%xDO9nCqH3U` z1d>{4zU)B^Uc+!L10}F^UaI(;Fa?BoyYJHzZy$VTRlI#h#{K;#8~4$_(jq*a%CAYR zt1Nsx;yTeubbuM3aC`gWG4$<|b`7sjY7Bu5_5F8CECsLxyQJb!#sk9M*)I=jnHUGk zbmbNs58UANlv*g|WEmfu+0{Fk-N+-mQB{A|klGoFx; zPgCqS<5`6PmCnnjy-4ESpo$}+Q)7$-PnS}{g9rJ0514xxj_U7^;DYjZFzY*lHP!W&bCjrT`PB2s%KhfK73oOGayi1Z8M)x z1ijPV%4(;#Yy1AZvH-2sizSuo=X{2-TN?>AMI2?jz)mu}^Su_>GljD#w#*1vwJnby zg`U~zL8_LuR zyTbhWX50d)HoWSodMQ;h{{}}#F2tQ}g(OmdWQAN}75-CR6b#S%jLwbvaArv`9TZr+RkfGIEq$y@_jW0MW6WTn=&k7(_dTV>% zlhQJn?mI{S;j3ZqUH5*O6T|$8*Rt#0TP9Nsmn~Zp15&HI9^Z}*?lKAx4j!|M8rxLPz5LQN^%CS#=V zx~-M4nEZM7sOa?b?xro5YDNUPDy-D4vdd+C%8uKzobU`5&I>Uf?uEj(Vk`163_NSr z?1S3bKo{1T0;{rzmZ+p+;T1u4mNLdlq5GX;2$C#Zaoy*WdM2KnrYwAO#lZQFH;oVJ z(A6q1QFKrt%QtusUpvd!3+TY{&5AU%3deY@BIXe2R6{HGM8lgD-BnDL4c{gCxni%5 zUF)Q>6CZSMSojHm3g?5xupyCyW~1J0h4|bPzc16Kif08n1l9-`a1NIgMEPQL9n!4d zRm!(E^I5+y7L|YOh(crNtj|Gt)OD%@sMpixy?nHXA1oiEodX6sE2-)6bfz;EhgpFG z!q8F2E}q;dP^TI@sA7uquPCM%FKNZ+Xs#^WA71b3&41t{)!|gVl!CA6FrY9+Arl4e$rh7* zi9s$B7We4&rN=n|NN8omrxZzu*|2`4nHk%ZrpYCr9R}NufqE(*|fw2hA646|09J=L?@q>W9sNe3x9&k6>Ue4ehe| zpS}W@z8!o6ZUk}iElUhG652bOMA>vKWbEDrPLaNQcjxX!+By$+rDB!W#`SAeKv#7| zdgTR<%=TQ&hNz-s|4&^X+XtSTz9zT%r~XxLbKXaxauc-$UZpL2K@f)qw6gpq^<#Y(5u*^d?$cLS2`9O zla;dzL6NaK**cn`$9YYEdaB^Yw^dcaIdlFmJRPjPnXkH-<-fjMeyWmaC{V6h*C_E+ zb8wnaO2T#iojol~o{bhSluDdr6#^=$a1H+}uD4y}3XP{s&0XAf4Wa1X<$X)XPH9B< zw&2Jx1q6N!`jLqqK=p9nX7=3Lc!vX~jP#|UDnpc!zU^$EpP3Jn7+>#xSdqxJTwU%M zT{=iRKkwKS!6nDbFpX~zf20o<(aXvcb*C>znZ;1jxJnH*ULZ-KwXT8Y3W5LUD;(G@ zg=GqmZfBr_g7vrs0fA=WW<*B#?Nb+&wyqzC533Q?^X7W3D; z?wHtY2^B~8)1H5Y&3~NAGnMTaOsaqx6hS0zQkv-Qx3_h&`AILW&fm^YdKv32LJ&rW z`>;g`VR7sib9}ZK^;{nAnnziOU9Y9 zUB3tBHLBlB@!RZUmUGDOL}RJ5W;d)`(r$D&kA4QC7-^qw3dIYlsOg}k1Bxc%mJQpt z+$2*|^{{i$0+qEAsGCuga`nS@Qb+fiIiAkpS5&1B4yTL|s^`tiIMGz%Pj^#-HyciO zwAiPgI8Z9wA68ITHgD8hcc0+o_xI5x`M2aes=@M4;=G3m48n3;u5#2?`38>wqv77Z z2p=@3i0ij@HYy2`@20R*%OO!+9HVQyBg~op+y(Jc&>R#E1%S^Ij6JiVnJv24t1(oI zPf6DwQd=0#h+`9vH&zDJzkXZ~zuL?txldz~u%H8hg(otEIu}l3GeA_YM#bqkX4`d? zT4BixPY0z&_7X~U;zc`KaXgTUqVWjke;=tjP$%Kkq#?DV0>oQJs`Y_XG<3=uJB5$G zoi%oj1Dm;NHm1H6o`QoHJWtZk;dBoUY(N1x#LStpdB6>j0EC@CC5o6 zYGx;2cruls_JR&uC4RVgJv&+YF29+rurcI8M3p`GtK7=La|;7s-+JrvPCzB+ZvI+n z?2JuneKWg!m#FNPUA}9neoDX6UeIwyX>BL55~{YvDv@R*W;9ABdpUYWsl*79VWC=t z>{hd;dk8fDQY@R}`Totq5!sOy zyx}B>okCl{+O8k{Ops`I{b-Y*Ps2N&SA(hB*IVXK6@iT#h`1Uncj~mf&PZEmc{Ejr zs%PHvDE6sT6c4kQjPHuGfm@d?kFKmXi_MR?Ym4e)JwM{^qU0hFf^7$BD*P8hV6Wxs z?k=>10ZAQzSq=DNVX{Cx@T}Fn1OzMU{DCf$eP9L&+EKkhVvSh$ilL!bFYV=QIfaM+ zyBv<$2*$Tjf-A%Xz0KNoXB1?!UE7Y7FS zy<(WcBVi&iz{Gam?>kOTXN^Er&(8bZn68nNx~NhmlS)CVF@TP2z(muFKk~fabx5EG z&NwLMF_}i_uWBT<_kG^NerkISBGJ&pdJqfLUaLKk$w@da!pnXuIYyTt_0f8Y@|9*+ z#-)fQC+*6Qic*N@mY|>v;(M)dAGbY0u@S}u(VnM-ZFbxZC2V5`9e>{=0&+X+`wb9H zBd4pKEJ-#pClhsHCmmZh{D5XIPOgFtF_CK@ene1N;6XRw_5DyXKwcu75vdTNC5Onn z*0*fsP}#v+f4Mnhuy4NNy3vF;&uDk77++{X{=^Mksk?5uPh0(Vr*TC!|M9vMX_ay- zM%G{zw@07DK1s1-$!{)ov);aS(jZ{GSDfF&Sbi(Z9DP54cK*$OlHul?yY&u4Sj}BMh0mf$b&a2r5QD#X?W;ZAskVT6yf6pv=H#~vHLhAGZ8mCUc=qE^E zF=k8U;;`1)-F+j=dQDy=F`a1X;qFrF^d4BveDynI6IuQC&>T^~X5XQMU@7xU>tu+5 z=6Om&x25uUaGzgI1ifOyKu<5?90Dqoa>>5dETx&x{3yN_uj8NyZyC$k2;5Irb9c$5 zR3QS|s7ZH47?|)WuY~HEvvtgQDl9nv^u2|^St6yiMbQaGuUz+Vr zFg770xwItcC4Sb~gb9n*c9&jid$l3;7G`~pJTSse#_<5@0D4@UL=mS-(BaiD*vbpQ zPn_tQDRFVb5b}}4jfq`iO(TNk6nn(sRL6%q99WEX%vqv&1=>};nE5?XX6Yz{M zTy*X8pQQXe2QzVEpS@eGrWnK3L+Mk-{%F%tJQ}o5xT|_1>X0<26J7UM2DPM_imALo zFZ`S)PIR%Kx&-~F51EI7me33`+PkzE-DB0<&`iGe<}aMsv2m&fTFVpL%*;)LgM;;5 zUT~Gvhh{cDy|4e2l{$oOnr2j6?s*Km%Oq$u(CvCQZbddt?^-Jl(3P@G`@Ur&4~VAi8GI2a_{uIIllqxFEd0MpKpUV^F_JrWI>PG`J!5i z3~*Cn^4~!w9=hp>ekrfI4ZSGYHm1FG0lB}F1C1W2TyZEs0cJ$1EaUQ#eXR<@&k*rQxX-bT5%8MOB zt%^=8cuaI2v3F}}34+=x_?_eW!C$mF6yGOGh}71%u^>9Dlq4Z7fQf(pW9_h_#rtmf zt}nq^Sy}7b3wh7{Td}XoC+*s?UxsuyYscPFFp_P4^w8^-Da1O#G1XpxA%Ep!pvAuslQD!|Ru>h;%a)J}qAHm8C?@H~a-8!5DjUw)ym<6k8QfEB) zu`Mpvp3bM4zyH7C<|$&ps@Ghw?095oP2kr0@I0tfJLNF8(V18x52l-8NL>&3 zCft(Ys+s*_ZJLUc`s8zaoPncwwzFT1g?TtRY;D*SN1sqA?rKBUob) z0co#LJNA=~I%q4iHuL*G08BCUxAXfuJjGHg28Mb);Z5OavEU+;!Lg|}c*(e#PDT({ z;0eBfp`tW`)#C(FhuezfmN0^&gY)KJ!;%mFVJ$SuM4Iw}U{?{J{bjl_{Y@VJE zKGpKR0Yn0AwV)aHaS~a5cgByMGRet%^UpZ0VPyTA5u0(HQnNJD1M1nW-z<6&8`5_m zFNUSfdJxxkdMhiG$Al1oI%E4-vA$%^hVAx`29me4{xNx9SwySIS+jdUo%Deer6rHy zogY96_mL9?u#*q}3;-Sb1fxhSkNM)51Q6v|Q%TWErXy!ls)o_iIhv`uuoKTw^~oja zmDhPXAi7<{-3o_br*@XjPC3%8osCoJc$-P?+Z0R~^eOx5c4&PjphZ+g+MV3itlWYw zFqL5DB&IO-AiU%7{ZK2o=SDgWBwTBhSeE=uGoGF@@Yk1K^_65LcTC{ZQ_>tHR7KTxD z4l&;}x&l(q&Wk7sm~vz)1}<=XhGu~+qA(Q)Se)g;|Hr(Wt9Q6^cNa~&mz$vH5M)Ol z91b!-I;z1Ja_eCOQ;uSQi7I9$oKA*hI&|d70{e$`xu%S3PJ2=TdoN(H(2T%!3 zA&xo-q&xm)d3t35!H9>g{NUK?gw<-`<$t|dL$ve1emRvc7S<$*tnj~xTNt@%Ktsao z0*2AY`pZr~tHvk@+txq*{(MgiD>2rB;LuMH3@9$}Vp)rxqM%_tyYWR%KD{Jz3b_b3 z1wH20p_J;a(hrxMMsZ#puA|y7&(gUzYimzG=wNDO9`h3S+_r0L-)U9ID@$vPR~KcD zE}D?me)%rJN!57V1U)M?2`a9SuF6c^5r0K-_n;-XZO0_*YdR?X+lYz!oCA%>AGI9i z*2D>~-n7=5$WNSfVI#UcL5G6Agap^lcE%=V+I&6R`LvK#X#CyG4){3y&2$v0Qahhk zJsB%lwmiHp*^TQ(yQ5@_<$T##;V5gBX}m?eo-j8*^S5eS%et{9L)cBot>lE=^gjl~FxfxSk3*jDU@wpxQzj;^@VC}!hI+lFwXU7F zh>x=ZmhRyz3RvFoHy{!Ro-Bx9fGLm8DHHiH^E>v6{{ZCe{K5OQH)-c8-doujV(#w0 z034Gd^+OgL`Mxeq3LTklk)^Vx)@%MG)g?*hQmNWiuoy-{C>`vHI4$`h1OKg?*OybqD|SelmLesx=!|EU)LE{)T$a3!{+>$0WGF z>a@6TmBUA$zVd%Tz77L*W8&z!i(bFrsQC)lw@VSWub9hLq)V!BukrDPPtCej`oq>> zmQ1%`h1*kRtCDBCZD`)mnu1|-Eom{W5YI78-u3LKD=0YzByCE`HkAi#XeNY5PEWmJ z)<$k7`d*SpC%P9JLw}uW8yONBc@oxvWws#+Te!C0h1-~eA$Fs&(XqvMsT&$#h{u|> z9KYb}n6cb7&j+dl=qqLP$|gX1>kVGY8*bq$)583sBn!9g%f(vAwYa$d;=_cMtlPcC ziy2y9J17k46!)0~7sLs}4+2|D�YICt4<1dB3M6D`(r>Ta}fck>UKHEf~%xy64$> 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