📄 news
字号:
Version 5.2.14* bug fixes * test: -nt(-ot) now succeed if second (first) file doesn't exist and the other does. * time: now accepts the -p (posix) option. * vi: failed redo (.) commands no longer return the line to the shell. * emacs: bind commands in .profile/$ENV no longer overridden by tty settings. * heredocs: now saved in memory to avoid temp files disappear too soon. * time: commands at the end of a pipeline can now be timed. * on startup: MAILCHECK,TMOUT,SECONDS values from environment are honoured. * trap: exit traps now executed in subshells (without explicit exit call). * eval: if given empty command while in non-posix mode, exit status is that of last command substitution (if any). * trap: if first argument is "exit", it is taken as a command not a signal. * pwd: config test & code to work around bug in hpux 10.x getcwd(). * RANDOM: seed based on both time and pid; different sequence in sub shells. * typeset -f: now pretty-prints $(..) and $((..)) correctly. * fixed bug in memory allocation which can lead to core dumps. * set -o: no longer prints options that have no names. * emacs: <esc>. in very fist command no longer dumps core. * .: can now dot non-regular files (eg, /dev/null). * parsing: bar(); no longer dumps core when function bar is run. * variable substitution: ${#array[*]} now prints number of set elements in the array (used to print largest index, not what ksh88 did). * job control: resuming suspended gnu su no longer hoses su'd shell. * job control: fixed possible core dump when waiting for jobs.* LINENO variable now supported.* port to cygwin environment on win95/winnt.Version 5.2.13* bug fixes * functions: $0 in sh-style functions is now the same as the shell's $0. * .: fixed possible core dump on clean up. * test: a lone -t argument now does a isatty(1) test if not in posix mode. * alias: PS2 no longer printed when expanding alias foo="cmd; ". * set/typeset/getopts: can have options prefixed with both + and -. * typeset -f: now reproduces functions correctly ("function F" vs "F()"). * alias: options can start with +. * set -A: a -- marking end of options is now skipped. * errexit option (-e) ignored when reading profile and $ENV files. * test: '-x f' now fails for root if f is a file and has no x bits set. * $_: set to last arg in interactive shells only. * PATH: if $PATH not set on startup, it is set to the default path. * extended globbing: allow (pat|pat) within @(...) and ${foo#...} patterns. * emacs: ^[_ now behaves as it does in at&t ksh (word from _last_ command). * MAIL/MAILCHECK: fixed bug that prevented the `new mail' messages. * ${..%..} and ${..#..} now work if compiled as sh. * sh: fd's greater than 2 are passed on to executed commands. * syntax: accepts "if (( 1 )) then" (also [[ ]]): no ; required before then. * substitution: accepts (and ignores) leading : in %, %%, #, ## substitions. * .: doting directories no longer allowed. * editing: completion after "cmd " now completes files (was command).Version 5.2.12* bug fixes * editing: shell recognizes window resizes on Dec alphas (config problem). * alias: no longer dumps core if alias is in a command substitution. * alias: everything after ;\n or \n\n was ignored in aliases. * exec: temp files used by here docs in functions now cleaned up on exec. * possible core dump when cleaning up environment fixed. * vi: set -o vi-show8 now does what it was supposed to do (cat -v like). * job control: process group synchronization (needed on systems with broken setpgrp()) now works when the pipeline contains built in commands. * vi: if set -o vi-tabcomplete, tab works in command mode as well. * set/typeset: unset parameters are only reported if they have attributes.Version 5.2.11* bug fixes * aliases: expansion was reading an extra character (bug added in 5.2.10).Version 5.2.10* bug fixes * parsing: handling of backslash-newline fixed (esp. in here documents). * read: prints prompt if non-interactive and input is a tty.Version 5.2.9* bug fixes * config: using LDSTATIC no longer generates config error. * config: can compile as sh again (--enable-shell=sh). * config: should compile on machines with broken "gcc -g" * config: fixed test for broken S_IFIFO. * config: fixed test for getwd() routine. * config: better NeXT support (signal list generated correctly, clock_t type detected, enable job control in rlogin sessions) * parsing: assignments containing brackets ([]) not treated as commands. * editing: terminal column width determined correctly on startup. * vi: long prompts truncated (more or less) correctly. * file completion: files of the form ~user (no /'s) expanded correctly.* at&t ksh method for delimiting hidden characters in prompt added (i.e., start prompt with non-printing char and \r, use char to delimit esc codes).Version 5.2.8* bug fixes * configuration: handle FreeBSD's strange S_ISSOCK. * test: added == operator. * configuration: fixed opendir/dirent usage. * redirections before subshells handled correctly. * COLUMNS/LINES are no longer exported when they are automatically set. * mail checks and PS1/PS4 expansions removed if compiled as sh. * subcommands in PS1 no longer generate bogus warning messages. * environment variables not longer messed up on 16-bit machines. * unset: now returns non-zero if variable/function isn't set. * select: only prints menu first time, if REPLY is null or on blank line. * check for `cannot execute' improved, error message says why. * typeset: now reports variables with attributes but now value. * vi/emacs file completion: does directory listing on zero length names. * arithmetic: non-numeric parameters expanded recursively. * arithmetic: identifiers in unevaluated part of ?:,&&,|| parsed correctly. * functions: unsetting a function within itself is now safe. * arrays: unsetting element 0 of an array no longer kills the whole array. * co-processes now behave like ksh93 co-processes (and less like ksh88).* functions declared with "function foo" are treated differently (from those declared with "foo()"): $0 is (not) set to the function name, assignments before function calls aren't (are) kept in the parent shell.* vi: added vi-esccomplete option for people who want ESC-ESC completion.* vi/emacs: now notice window size changes (but not while editing a line).* emacs: <esc># now does the comment/uncomment thing.* arithmetic: ++, -- and , added.Version 5.2.7* bug fixes * vi: commands can be longer that 16 chars...Version 5.2.6* bug fixes * break/continue: if too big a number is given, last enclosing loop is used. * set: set +o now generates a set command that can be saved and executed. * COLUMNS/LINES are now exported when they are automatically set. * emacs: completion: space not added after directory names. * vi: # command inserts # after each newline; # on commented line undoes the commenting. * some regression tests made less sensitive to their environment. * should compile on os/2 again.Version 5.2.5* bug fixes * configuration: if sig_setjmp() being used, use sigjmp_buf. * configuration: test for times() fixed. * configuration: ANSI usage of setjmp() and offsetof(). * echo/print: octal number in \ sequence must start with a 0. * echo: don't treat a lone minus as an option. * typeset -f: correctly prints functions with select statements. * vi: / with no pattern repeats last search. * vi: repeat counts no longer effect file completion/expansion. * vi: tab-completion now also works in command mode. * emacs/vi: ^O key now read as ^O on suns/alphas (was eaten by tty driver). * emacs: now has file expansion (^[*). * emacs: ^O goes to next command, not next next command. * COLUMNS/LINES: environment variables now set on start up. * variables: command line assignments can't change readonly variables. * arithmetic: giving multiple bases (5#4#3) no longer allowed. * arithmetic: when assigning a non-integer variables, base no longer shown. * history: fixed replacement bug introduced in last release. * history: -1 refers to the previous command, not current fc command. * parsing: correctly handles command substitutions starting with a newline.* full command completion added (both vi and emacs).Version 5.2.4* bug fixes * PS1 imported from environment again. * vi handles prompts with embedded newlines. * errors redirecting stderr aren't lost. * redirection errors for <&n no longer reported as to >&n. * don't do globbing on re-direction targets if not interactive (POSIX). * pattern matching in [[ foo = foo*bar ]] now works again. * HUP signals are passed on to jobs running in the foreground. * $? now valid (ie, not 0) in trap handlers, `...` expressions, etc. * noclobber doesn't effect redirections to non-regular files (eg, /dev/null) * \newline in here-document delimiters handled correctly. * typeset -f now reports unloaded autoload functions properly. * ~,~+,~- are not expanded if HOME,PWD,OLDPWD are unset. * vi completion/expansion: * not appeded if word contains $. * cd: error message contains correct directory string. * vi expansion list: printed in column form ala at&t ksh. * ^C while reading .profile/$ENV nolonger causes shell to exit. * option errors for build-in commands now include command name. * emacs completion/expansion: ' and " are treated as word delimiters. * fc: replacements (a=b) no longer truncates the command. * alias: alias -t -r now cleans out the tracked alias table.* compile-time configuration changed: configure script --enable-XXX options replace the old options.h file. Use "configure --help" for information on what the options do (they are basicly the same as what was in the options.h file). Shell can be configured as a (almost) plain bourne shell using the --enable-shell=sh (also generates appropriate man page). Installed name of program (ksh or sh) can be modified using configure's --program-* options.* ulimit: added -p (maxproc) option.* case statements can use the old syntax of {,} instead of in,esac.* extended file globbing added (eg, f*(bar|Bar) matches f, fbar fBarbar, etc).* trim expressions can be of the form ${parameter#pattern1|pattern2|...}.* if compiled as sh, $ENV included only if posix option is set.* vi: U command added (undo all changes on line).* the Bugs script has been replaced by a new regression testing system, kept in the tests/ directory (contains a perl script which sets up a test environment and runs tests, and a bunch of tests).Version 5.2.3* bug fixes * arrays: set -A and unset now unset whole array. * history(complex version): fixed core caused by uninitialized hist_source. * getopts: will continue parsing options if called after error. * getopts: doesn't print shell name twice in error message. * posix: if posix option is set, $0 is always the name of the shell. * history: "fc -s foo" now finds foo if it is the most recent command. * let: expression errors no longer cause scripts to exit. * PS1: does not go into infinite loop if there is an expansion error. * configure: memmove/bcopy test has a change of working now. * configure: check for flock(), undefine COMPLEX_HISTORY if not found. * substitution: tilde substitution works in word part of ${var[-+=?]word}. * history: "fc <number>" now edits <number>, not <number> to most recent. * cd: two argument form works again. * special commands taking assignments (alias,set,etc.): field splitting, file globbing, etc. suppressed only for args that look like assignments. * command: -V now finds reserved words.* added support for Korn's /dev/fd tests* new compile time option: DEFAULT_ENV - if defined, it names a file to include if $ENV is not set.* test -o option: if option starts with a !, the test is negated. The test always fails if the option doesn't exist (so [ -o foo -o -o !foo ] is true iff option foo exists).* new option: set -o nohup (currently on by default) - if set, running jobs are not kill -HUP'd when a login shell exits; if clear, they are. In future, this will be clear by default (to act like at&t ksh) - if you don't (won't) like this, add "[ -o !nohup ] && set -o nohup" to your .profile.Version 5.2.2* bug fixes * included c_test.h in distribution (opps).Version 5.2.1* bug fixes * emacs: buffer no longer overflowed when completing file names/commands. * emacs: <ESC><tty-erase-char> now bound to delete-back-word (was ...-char). * emacs: ignores a space char after ^V (version), as in at&t ksh. * emacs: ^O bound to newline-and-next, ^X^Y bound to list-file. * emacs: emacs words now include underscore. * vi: set -o markdirs, directories and ^[= now get along. * cd: -P no longer leaves .. and . in PWD. * cd: if CDPATH set and can't cd, error doesn't contain any of CDPATH. * cd: sets PWD properly, on machines without getwd(). * configuration: unistd.h test fixed (include sys/types before dirent.h). * configuration: detects memmove/bcopy's that don't handle overlaps. * [[ ... ]] does lazy evaluation (eg, [[ ! -f foo || $(<foo) = bar ]] does not evaluate $(<foo) if foo doesn't exist).Version 5.2.0* bug fixes * vi: completion now allows globbing characters. * vi: can deal with very long prompts. * vi: . (redo) works after j, k, return. * vi: [dyc]% causing backwards motion now gets correct start/end position. * vi: complete_word (<ESC>\) no longer rings bell on ambiguous matches. * vi: globbing doesn't append * if last component of file has globbing chars. * emacs: most commands now take arguments, arguments can be multi digit. * emacs: newline-and-next command works more correctly. * after set -u, trimming substitutions no longer automatically fail. * set -i no longer reports an internal error. * FPATH: no longer incorrectly complains about function not being defined. by a file; when it connectly complains, shell name in error is correct. * set -a; set -o allexport: these now do something. * shell deals with non-blocking input (clears non-blocking flag). * autoconf: fixed memmove/memcpy tests. * ! translation in prompt now done before parameter substitution. * siglist.sh works around bug in bash 1.4.3. * correct positional parameters accessible in local assignments. * (sleep 100&) no longer waits for sleep to complete.* fc -s option added (same as -e -).* vi: ^V command (version) added.* vi: @<char> macros added (@X executes vi commands in alias _X).* emacs: bind -l lists all command names.* emacs: goto-history command added.* emacs: search-char function changed to search-char-forward; added search-char-backward (bound to <ESC>^]).* cd and pwd take -L and -P options; added set -o physical option (PWD,OLDPWD no longer readonly).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -