Differences between Brash and the Bourne and GNU Bash Shells
Version 1.1.27 lacks or limits the following bash features:
- brash command line options are unique to it, and only barely reflect
those of bourne or GNU bash. Use brash -h for more details.
- array variables are not included in release 1.*.* of brash.
- the tilde character, "~", when used as the leading part of a filename,
works -- but only for the current user. The ~username/ syntax is not
supported.
- the keyboard handling lacks the depth of bash's configurability, but
is fairly full featured. See "Console Window Edit Keys", below.
- the set command is very limited. Use the command "builtins" to get a list
of what is supported.
- if and while statements only allow 1 command in the conditional clause, but
that command can be ( ... ) or { ... } so multiple commands are possible,
its just that they must be surrounded by braces or parens.
- shopt
- bg not available ( but the & operator works to execute commands in the background
the jobs command lists background jobs
)
- caller
- enable
- env only lets you list the environment, not manipulate it
- exec
- help
- history (instead use fc -l range...)
- jobs command is very limited -- it only lists running background jobs
- local
- mapfile ( but read -f can simulate )
- printf
- readarray is completely missing, but read -f approximates it (poorly)
- readonly
- suspend
- test ( though [ expression ] does work )
- times
- trap
- typeset
- umask
- ulimit
- wait
Here are some other diferences
- Brash has different builtin functions. Use the command builtins to get a list.
- Brash reads ~/.brashrc not ~/.bashrc. ~ will be the same as $HOME which will be the same as $USERPROFILE.
- The final stage of a pipe command is executed in the current shell environment, not in a sub-shell. Usually this will
only be beneficial, but if the final stage polutes your environment, you will have to remember to put the commands in
parenthesis.
- Brash pre-defines the following variables:
BRASH_DIR_SEPARATOR=\
BRASH_HOSTNAME=BOGLOWES99
BRASH_OS=MSWindows
BRASH_PATH_SEPARATOR=;
BRASH_PIPE_DEPTH=1
BRASH_SHELL=c:\users\lowell\bin\brash.exe
BRASH_SYSROOT=C:\
BRASH_THREAD_COUNT=20
BRASH_USER=lboggs57
BRASH_USER_HOME=c:\Users\lowell
BRASH_VERSION=01.01.33