📄 news
字号:
* new command line -l option tells shell it is a login session.* os2 changes completed.* uses autoconf 2.x (was using 1.x).Version 5.1.3* bug fixes * fixed bug in arithmetic expression evaluation (||,&& caused core dump). * ulimit code now uses rlim_t or quad_t, if appropriate. * vi: file completion in command mode of single character filename works. * vi: file completion with markdirs set resulted in two trailing /'s. * vi: completion/expansion/listing acts like at&t ksh when expand fails. * vi: ~ takes count. * lines from history file are no longer negative (easy history). * Makefile now uses manual extension consistently. * fc now allows out of range relative (negative) numbers. * functions with elif now printed correctly. * FPATH now searched if PATH search fails, as in at&t ksh.* typeset -f output is readable (and more correct)* compiles under SCO unix* more os/2 changes integratedVersion 5.1.2* bug fixes * for i; do ...; done now accepted. * leading non-white-space IFS chars no longer ignored (now delimit fields). * fixed globbing code so echo /usr/*/make works.Version 5.1.1* bug fixes * { ..;} allowed instead of do ..;done in for/select loops * EOF after ; or & no longer causes syntax error * complex history: when shrinking history file, keeps inside buffer space. * vi editing: `v' on modified line no longer changes command numbering. * ^C in vi/emacs no longer prints two newlines. * long arguments (> 255) with globbing characters don't cause core dumps.* new (un)option, KSH, which compiles out ksh code (for producing minimal sh).* os/2 changes partly merged.Version 5.1.0* bug fixes * problem caused by _POSIX_VDISABLE on BSDI machines fixed * exit status set to 127 if command file could not be opened * profile files processed if basename argv[0] starts with (was $0) * PWD now imported properly from environment. * emacs code now either uses dynamic buffers or does overflow checking. * emacs forward-word and delete-forward-word now work like other emacs's. * ^C/^\ in vi/emacs work like at&t ksh (prompt reprinted, even if trapped). * history number to command mapping now constant (numbers used to change). * configuration: BSD tty now used on ultrix (avoids type ahead problem) * eof in the middle of multiline commands now ignored if ignoreeof set. * vi space command now works again. * pointer mismatch compiler warning for waitpid() call dealt with. * emacs internal memory error in command completion fixed. * autoloaded functions now work first try. * SECONDS parameter now acts like in at&t ksh.* sense of vi-show8 option changed: 8-bit characters are printed as is by default; turning on vi-show8 now causes chars with 8th bit set to be prefixed with M-.* missing sections in man page added (now basicly complete)* emacs ^V command added: prints ksh version* vi g command added: moves to most recent historyVersion 5.0.10* bug fixes * [[ ]] construct unbroken. * the newline after a here document marker is now read properly. * blank lines no longer cause $? to be set to 0. * mail checking now uses atime/mtime instead of size. * changing attributes of exported parameters no longer causes core dump. * the last command in a file does not have to end in a newline. * empty expressions now treated as 0 (previously generated an error). * nul bytes stripped from input. * 0241 (M-!) in a command substitution no longer lost. * when read used in startup file, line continuation no longer causes crash. * very long commands in history no longer cause vi to overwrite memory. * easy history: when saving history, avoid going past the end of history. * emacs mode no longer entered if EDITOR/VISUAL set to null string. * command -p disabled in restricted mode. * closed file descriptors are re-closed after a redirection. * lone [ (test command) no longer causes globbing code to search directory. * if TIMES_BROKEN is defined, ksh_times no longer recurses infinitely. * `r r' no longer repeats r command forever. * make depend no longer generates backslash followed by a blank line. * globbing code now deals with symlinks that point to non-existent files. * if the ] is missing in a pattern, the [ matches the [ character. * syntax errors in test no longer have two newlines. * in vi, G now goes to the oldest history (was newest). * configuration: test for sys_siglist now harder for optimizers to break. * configuration: look for clock_t in sys/times.h. * configuration: use _SIGMAX, if available, for # of signals. * SIGHUP now causes builtin read command to exit. * wait builtin now returns whenever a traped signal occurs as per POSIX.* v command now works in vi; anchored searches now work in vi mode (/^ptrn); multi-line commands displayed correctly by history.* echo is now schizophrenic: accepts -n/-e/-E and backslash sequences.* test -H file added (checks for context dependent files on HPs).* set -o gmacs and markdirs honoured.* ansi arrow keys in default emacs key bindings.* ulimit now takes arithmetic expression (as per Korn book).* co-processes changed to be more compatible with at&t ksh.Version 5.0.9* bug fixes * FOO is put in the environment for FOO=bar exec blah. * compiles under QNX and with dmake. * the file pattern [!a--]* is now invalid (POSIX) (used to match everything) * echo "${foo:-"a"}*" no longer the same as echo a*. * alternation (brace expansion) fixes: * brace expansion done after variable expansion, as in csh/at&t ksh. * `echo a{b,c' no longer gives "Missing }" error (it echos a{b,c). * expansion only done if there is a comma (ie, `echo {a}' prints {a}). * globbing/expansion code passes 0x80 unharmed. * "echo ${XX=a*b}" no longer sets XX to "a\200*b". * "echo ${unset-a*b}" no longer has \200 in the error message. * bad substitution error generated for things like ${x:a}, ${x^a}, etc. * `x="a cdef"; echo ${x#a c}' now prints "def" instead of "a a cdef". * on systems where /etc/passwd//// is a valid name, echo /etc/pass*/ no longer matches /etc/passwd. * trace output (set -x) flushed correctly, PS4 initialized. * ulimit output ungarbled, code to use {set,get}ulimit (if available) enabled. * tilde expansion done in word part of ${foo-~/bar} * when reading stdin (ie, ksh -s), no longer reads too much. * shell handles i/o redirection and errors in builtin commands as per POSIX (still have to sort out variable assignment errors). * starting jobs that save/change/restore tty settings in the background no longer messes up tty settings when job finishes. * the pattern [a'-'z] now matches three characters, not 26, and the pattern [ab']'] also matches three characters.* a mostly complete man page! (work is still in progress)* quoting inside $(..) mostly works.* error reporting has been orthogonalized.* brace expansion on by default (can be disabled with set +o braceexpand, or set -o posix).* output of "set -o" now fits on a normal screen.* co-processes added (|&, read -p, print -p, etc.).* restricted mode added (for what its worth).* vi now prints meta characters with M- prefix, unless vi-show8 option is on.Version 5.0.8* bug fixes * two problems in fc (introduced in 5.0.7) * install target in Makefile missing a dollarVersion 5.0.7* POSIX command command added* a few bug fixes * now compiles with various options undefined (eg, VI, EMACS, JOBS). * fixed typos in Makefile.in (maxext -> manext) and ksh.1 (\f -> \fP). * CLK_TCK defined to correct value for FreeBSD 1.1.5 (and earlier?). * original process group restored when an exec is done. * the exit value of set is that of the last $(...) on the command line. * ditto for a command with no command (eg, x=`false`). * command variable assignments done before path search (so PATH=... x works) and are added as they are processed (so A=1 B=$A works). * variable assignments infront of function calls are exported to programs inside the function. * aliases with trailing space are only honoured in command contexts if in posix mode.* make depend target added; install target warns if ksh not in /etc/shells.* set -o bgnice now does something.* vi mode: ESC is no longer a file completion command (too annoying).Version 5.0.6* most reported bugs/problems fixed (all but two).* temporary files now created in $TMPDIR (if it is a sane path).Version 5.0.5* function parsing POSIXized (function bodies can be any compound command, redirections after functions effect function invocation, not the instantiation, the () in a function definition now parsed as two tokens).* exit bultin now does stopped jobs check.* set -p/-o priviliged supported.* test builtin now believed to be completely posix.* a default path is now used when PATH is not set (defined in options.h).Version 5.0.4* configuration checks for buggy opendir()s and setpgrp()s.* autoloading functions now supported.* functions can safely redefine themselves.Version 5.0.3* hash command changed to "alias -t"; whence -p added; print -s added (all as in at&t ksh); unalias -a added (POSIX).* test builtin POSIX complient* TMOUT parameter supported (at&t ksh: timeout interactive shells)Version 5.0.2* trap/error handling changed to eliminate longjmp()s from signal handlers; trap ERR added.* ksh conditional expressions ([[ .. ]]) supported.* arithmetic expressions (let, $((..)), etc.) now understand full C integer expressions (except ++/-- and sizeof()).* typeset -L -R -Z -u -l added (as in at&t ksh)* at&t/posix $(( .. )) arithmetic expansions supported.Version 5.0.1* set -e no longer effects commands executed as part of if/while/until/&&/||/! condition.* posix ! keyword now recognized.* posix getopts; if not in posix mode, getopts will accept options starting with + (at&t kshism)* syntax error messages improved (says what was unexpected/unmatched)Version 4.9+mun.5* all known bugs related to job control fixed: * fg,bg,jobs,wait,kill commands fully POSIX complient * signals are no longer reported for foreground jobs killed by SIGINT and SIGPIPE * pipeline process groups now created more reliablely (was a problem if first process exited before second process exec'd). * "(: ; cat /etc/termcap) | sleep" nolonger hangs* save/restore tty mode if command succeeds/fails, respectively. Edit mode (emacs,vi) no longer use old tty mode information* test command: added -h* alternations option renamed to braceexpand (eg, use set -o braceexpand). Old usage (set -o alternations) still accepted (will disappear in next version).* trap/kill now accept upper and lower case signal names.Version 4.9+mun.3* here documents in functions now work properly* read command: added -s option, use REPLY if no variable specified* don't accept "while command; done" as a valid command* fg,bg,jobs,wait,kill commands mostly POSIX complient.* unset command: added POSIX -v option* set command: added -A option* handle ${array[@]} and ${array[*]}* compiles with old bsd 4.2 compiler (pcc)* new versions of etc/profile and etc/ksh.profileVersion 4.9+mun.2 (versus 4.9)* directory/file structure has been re-arranged: * moved files from sh directory up a level, deleted sh directory * created misc directory, old ChangeLog,README,.. files moved to misc* now uses GNU autoconf for compilation.* no longer uses stdio FILE *'s for I/O redirection (most stdio usage has been removed). Solves many porting problems caused by dup'd file descriptors, forked processes and exiting.* removed lint from code (compiles with very few warning with gcc -O -Wall -Wno-comment)* has array support (needs work but is pretty functional).* ulimit command now more functional on more machines. Compatable with at&t ksh.* command line and set option parsing cleaned up, POSIXized.* POSIX IFS handling.* many many small bug fixes (see ChangeLog)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -