Bash-1.14 released

Skip to first unread message

Chet Ramey

Jun 2, 1994, 4:16:24 PM6/2/94
Version 1.14 of BASH, the GNU Bourne-Again SHell, has been released. It
is available for anonymous FTP with the following URL:

It will be available for FTP from soon.

Due to the source reorganization, diffs from bash-1.13.5 are too large
to be useful.

Use the new program `bashbug' for reporting bugs, or mail them to:

Here is the RELEASE file from the distribution:

This file details the changes between the previous release of bash (1.13.5)
and this release.

1. New Features in Bash

a. The source has been reorganized: nearly all extern function
declarations have been moved to header files, function prototypes
have been added to most header files, function declarations have
been moved to file scope, dead code has been removed, the
bash history code has been isolated in bashhist.[ch], and several
new header files have been created

b. `set -o posix' puts bash into Posix.2 mode

c. If $POSIX_PEDANTIC exists in the initial environment or is assigned
a value, bash enters Posix.2 mode

d. Bash sets $OSTYPE to a string describing the UNIX version

e. The file was completely rewritten and now reflects
the current state of things

f. A manual page for readline is in documentation/readline.{3,ps}

g. The `test' builtin emulates /dev/fd/x for systems without /dev/fd

h. `dirs' has -n and +n options to access members of the directory stack

i. Prompt string expansion handles invisible characters in the prompt;
\[ and \] are used (and required) to start and end sequences of
invisible chars

j. NO_PROMPT_VARS has been removed

k. New machine descriptions have been added: IBM AIX/ESA, NEC EWS, NetBSD,
FreeBSD, QNX 4.2, concurrent, MIPS SVR4.2, Lynx 2.1

l. RESTRICTED_SHELL is no longer defined by default in config.h

m. The version string in $BASH_VERSION has changed to dist.patch(build)

n. $history_control has been renamed to $HISTCONTROL and now takes the
value `ignoreboth' ($history_control is still accepted for backwards

o. There is a new program `bashbug' for reporting bugs. Eventually I will
probably switch to gnats.

p. auto_resume can take the values `exact' and `substring'

q. `set -P' (`set -o physical') enables the same physical view of the
file system that `nolinks' enables (`nolinks' will remain for one
more release)

r. There is a `mkmachtype' program to generate a GNU-style machine type
string (e.g., `sparc-sun-sunos4.1.2') suitable for assigning to

s. The variable $HISTCMD returns the current history number

t. Variables in directory names are now expanded while doing completion

u. The test suite has been expanded and is runnable as a regression test
with `make tests'

v. `bye' is no longer a builtin synonym for `exit'

w. The ksh `select' control construct has been implemented

x. The `ignoreeof' attribute can be inherited if $IGNOREEOF is exported

y. The `USG-style' echo is now a configuration option. Define
DEFAULT_ECHO_TO_USG for default \-interpretation without the -e flag

z. There is a copy of an article I wrote about bash for the Linux
Journal in documentation/article.{ms,ps}

aa. The `pwd' builtin now obeys the setting of `set -o physical' (`nolinks')

bb. Process substitution is no longer performed when the shell is in
`posix mode'

cc. Users may change the debugging and optimization flags to cc by specifying
CFLAGS to make

2. New Features in Readline

a. Readline now understands sequences of invisible characters in the prompt
string, as long as they are escaped (e.g., by the bash \[ and \] escapes)

b. A `set keymap' variable assignment

c. A `bell-style' variable that can be set to `visible', `audio', or `none'

d. A `show-all-if-ambiguous' variable, which causes non-unique completion
to immediately list the possible completions

e. An `output-meta' variable to make readline directly output chars
with the eighth bit set

f. New bindable readline commands: kill-whole-line, tilde-expand,
vi-redo, vi-tilde-expand, emacs-editing-mode,

g. New history-search-forward and history-search-backward to search for
the characters between the start of the current line and point

h. Readline takes the name of the startup file from the INPUTRC variable
before defaulting to ~/.inputrc

i. isearch no longer finds identical lines multiple times in succession

j. M-C-H bound to backward-kill-word in emacs mode

k. M-~ bound to tilde-expand in emacs mode

l. History expansion is now fully csh-compatible: missing modifiers and
substitutions have been added, and bugs fixed

m. When asking whether or not to display the possible completions, readline
now accepts space as equivalent to `y' and rubout for `n'

n. Readline now attempts to find and bind the arrow keys into the vi mode
movement keymap

3. Bugs fixed in Bash

a. Portability fixes: `index' and `rindex' are gone completely, many
OS-specific defines have been replaced with feature-test macros,
the use of alloca has been reduced, and other platform-specific fixes
(e.g. cray) have been made

b. The man page has been fixed up and brought up to date

c. Speed improvements: here documents, variable expansion, history
expansion, command substitution

d. If history is stifled, the history list replaces the history file at

e. Asynchronous jobs re-run with fc -s now print the job number

f. Output redirections do not perform filename expansion in Posix.2 mode
when the shell is not interactive

g. operate_and_get_next now works on the most recent line even if the
history is unstifled

h. $PROMPT_COMMAND execution no longer causes recursive invocations
of yyparse()

i. An error message is printed if job control initialization fails

j. A command found in $PATH from the temporary environment is not hashed

k. Errors display the name of the script if the shell is not interactive

l. Fixed expression evaluation so blank expressions return 0

m. Fixed a bug that caused SIGINT and SIGQUIT not to be ignored in some
asynchronous children

n. Pipes used for /dev/fd process substitution are now closed on errors

o. Fixed /dev/null redirection so that ( list ) subshells inherit the
`stdin-has-been-redirected' flag as in sh

p. Process substitution now works only when unquoted

q. Fixed a bug where the async flag was added inappropriately in a command
like `a;b;c;d &'

r. Fixed off-by-one bug which caused negative history offsets in `fc' to
be wrong

s. Shell now remembers mail dates at startup on all systems

t. Posix systems without job control no longer create so many zombies

u. $ENV is now sourced by shells forked to execute scripts without a
leading `#!' line

v. Non-root users can now use the `unlimited' argument to ulimit and have
the resource value set to the hard limit

w. Made bash more sh-compatible by assigning the first argument after
`-c command' to $0

x. Fixed mail checking bug to note that *new* mail has arrived

y. Fixed off-by-one error in mailcheck.c:free_mail_files()

z. Fixed a bug where command strings passed to `bash -c' would be truncated
after executing the first disk command in the string

aa. Fixed a bug which caused redirections passed to executable commands with
input or output pipes to be closed before the command was executed

bb. Fixed a bug which caused bash to search for files supplied on the command
line in the $PATH if the initial open failed, even if the names contained
a slash

cc. The initial argument parsing was fixed up so that other options can
be supplied with -c (that is, `sh -ec command' now works as make
intends), and so `bash -o' lists all the shell options at startup.

dd. Error messages are consistently prefixed with the name of the shell
or shell script when non-interactive.

ee. Fixed up a problem with the `read' builtin that occurred when more
variables than arguments were supplied.

ff. Unset the variables passed to `read' as arguments when EOF is
read from stdin (sh, Posix.2 compatibility).

gg. Fixes to the command printing code to make the output of `type'
available as legal shell input.

ii. Fixes so that command completion is attempted after all of the shell
command separator characters.

jj. Fixes to the shell completion code so that it handles quoted characters
and substrings better.

kk. Bash no longer looks through $PATH for a shell script passed as an
argument if the name contains slashes.

ll. Bash now checks that the `name' in a `name[=value]' argument to `declare'
(and thus `typeset', `export', and `readonly') is a legal shell variable

4. Bugs fixed in Readline

a. The ^W and ^U bindings in non-incremental search mode have been changed
to be closer to what Posix specifies

b. Tries to initialize the keypad to enable the arrow keys

c. Multiple words are now killed and yanked in the right order

d. rl_read_init_file now reads filenames in a more regular order: the last
one read, $INPUTRC, then ~/.inputrc

e. yank_nth_arg inserts a space in the right place in vi mode

f. Fixed a bug in the history library that tried to write to a file opened

g. Binding of `0' in vi command mode is now right

h. The VISIBLE_STATS completion listing code now follows symlinks

i. Memory allocated with alloca() is no longer passed to other functions

j. Error messages are now printed for unrecognized history modifiers

k. Fixed a problem with history library and `!#'; now it is more csh-like.

l. Fixed a csh incompatibility in the history library: now only an end of
line or `?' terminates a ?string history search string.

m. Fixed a problem with readline completion that sometimes caused possible
matches to be listed one per line when `show-all-if-ambiguous' was set.

n. Fixed a problem in the readline display code that caused divide-by-zero

o. Fixed an off-by-one error in the kill ring reallocation code.

"I believe every human has a finite number of heartbeats. I don't intend
to waste any of mine running around doing exercises." - Neil Armstrong

Chet Ramey, Case Western Reserve University Internet: ch...@po.CWRU.Edu

[ Most GNU software is packed using the GNU `gzip' compression program.
Source code is available on most sites distributing GNU software.

For information on how to order GNU software on tape, floppy, or
cd-rom, check the file etc/ORDERS in the GNU Emacs distribution or in
GNUinfo/ORDERS on prep, or e-mail a request to:

By ordering your GNU software from the FSF, you help us continue to
develop more free software. Media revenues are our primary source of
support. Donations to FSF are deductible on US tax returns.

The above software will soon be at these ftp sites as well.
Please try them before as prep is very busy!


AUSTRALIA: (archie.oz or for ACSnet)

Reply all
Reply to author
0 new messages