Up Next Previous


When a suspended command is restarted, the shell prints the directory it started in if this is different from the current directory. This can be misleading (i.e. wrong) as the job may have changed directories internally.

Shell builtin functions are not stoppable/restartable. Command sequences of the form `a ; b ; c' are also not handled gracefully when stopping is attempted. If you suspend `b', the shell will then immediately execute `c'. This is especially noticeable if this expansion results from an alias. It suffices to place the sequence of commands in ()'s to force it to a subshell, i.e. `( a ; b ; c )'.

Control over tty output after processes are started is primitive; perhaps this will inspire someone to work on a good virtual terminal interface. In a virtual terminal interface much more interesting things could be done with output control.

Alias substitution is most often used to clumsily simulate shell procedures; shell procedures should be provided rather than aliases.

Commands within loops are not placed in the history list. Control structure should be parsed rather than being recognized as built-in commands. This would allow control commands to be placed anywhere, to be combined with `|', and to be used with `&' and `;' metasyntax.

It should be possible to use the `:' modifiers on the output of command substitutions.

The screen update for lines longer than the screen width is very poor if the terminal cannot move the cursor up (i.e. terminal type "dumb").

HPATH and NOREBIND don't need to be environment variables.

Glob-patterns which do not use `?', `*' or `[]' or which use `{}' or `~' are not negated correctly.

The single-command form of if does output redirection even if the expression is false and the command is not executed.

ls-F includes file identification characters when sorting filenames.

New bugs should be sent to Christos Zoulas <christos@ee.cornell.edu>, preferably with fixes.

Up Next Previous