Rusty Bash (a.k.a. sushi 🍣 shell)
IMPORTANT: the main branch is switched to the shell develped for articles on SoftwareDesign .
(今までのメインブランチは、連載のものに比べて散らかりすぎなので、連載のものをmainに切り替えました。)
A clone of Bash, which is developed as a hobby of our group and for monthly articles on SoftwareDesign magazine published by Gijutsu-Hyohron Co., Ltd.
$ git clone https://github.com/shellgei/rusty_bash.git
$ cd rusty_bash
$ cargo run
・・・
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
Running ` target/debug/sush`
ueda@uedaP1g6:main🌵~/GIT/rusty_bash(debug)🍣
$ git clone https://github.com/shellgei/rusty_bash.git
$ cd rusty_bash
$ cargo build --release
# ## ↓ Change /bin/ to /usr/local/bin/ or another path in $PATH if you are using Mac or BSD ###
$ sudo cp target/release/sush /bin/
$ cp .sushrc_for_linux ~ /.sushrc # edit if some errors occur
$ sush
ueda@uedaP1g6:main🌵~/GIT/rusty_bash🍣
Please give us issues or pull requests in a way you think sensible. We do not have a rigid rule at this stage.
✔️ :available
🚧 :partially available (or having known bugs)
🙅 : not implemented
features
status
features
status
features
status
command
✔️
substitutions
✔️
function definition
✔️
features
status
features
status
features
status
if
✔️
while
✔️
()
✔️
{}
✔️
case
✔️
until
🙅
for
✔️
[[ ]]
✔️
features
status
features
status
features
status
||
✔️
&&
✔️
;
✔️
;;
✔️
|
✔️
&
✔️
|&
✔️
features
status
features
status
features
status
brace {a,b}
✔️
brace
✔️
tilde
✔️
arithmetic
✔️
word splitting
✔️
path name
✔️
command substitution
✔️
parameter/variable $A ${A}
✔️
${name:offset}, ${name:offset:length}
✔️
features
status
features
status
features
status
$
✔️
?
✔️
*
✔️
@
✔️
#
✔️
-
✔️
!
🙅
_
✔️
features
status
features
status
features
status
cd
✔️
pwd
✔️
read
🚧
exit
✔️
source
✔️
set
🚧
shopt
🚧
:
✔️
.
✔️
alias
✔️
bg
🚧
bind
🙅
break
✔️
builtin
🙅
caller
🙅
command
🙅
compgen
🚧
complete
🚧
compopt
🙅
continue
✔️
declare
🙅
dirs
🙅
disown
🙅
echo
🙅
enable
🙅
eval
✔️
exec
🙅
fc
🙅
fg
🚧
getopts
🙅
hash
🙅
help
🙅
history
🚧
jobs
🚧
kill
🙅
let
🙅
local
✔️
logout
🙅
mapfile
🙅
popd
🙅
printf
🙅
pushd
🙅
read
🙅
readonly
🙅
return
✔️
shift
🙅
suspend
🙅
test
🙅
times
🙅
trap
🙅
true
✔️
type
🙅
typeset
🙅
ulimit
🙅
umask
🙅
unalias
🙅
unset
🚧
wait
🚧
export
🙅
false
✔️
features
status
features
status
features
status
-c
✔️
-i
✔️
-l, --login
🙅
-r
🙅
-s
🙅
-D
🙅
[-+]O
🙅
--
🙅
--debugger
🙅
--dimp-po-strings
🙅
--help
🙅
--init-file
🙅
--rcfile
🙅
--noediting
🙅
--noprofile
🙅
--norc
🙅
--posix
🙅
--restricted
🙅
-v, --verbose
🙅
--version
✔️
-e
✔️
--pipefail
✔️
-B
✔️
features
status
features
status
features
status
autocd
🙅
cdable_vars
🙅
cdspell
🙅
checkhash
🙅
checkjobs
🙅
checkwinsize
🙅
cmdhist
🙅
compat31
🙅
compat32
🙅
compat40
🙅
compat41
🙅
dirspell
🙅
dotglob
🙅
execfail
🙅
expand_aliases
🙅
extdebug
🙅
extglob
✔️
extquote
🙅
failglob
🙅
force_fignore
🙅
globstar
🙅
gnu_errfmt
🙅
histappend
🙅
histreedit
🙅
histverify
🙅
hostcomplete
🙅
huponexit
🙅
interactive_comments
🙅
lastpipe
🙅
lithist
🙅
login_shell
🙅
mailwarn
🙅
no_empty_cmd_completion
🙅
nocaseglob
🙅
nocasematch
🙅
nullglob
🙅
progcomp
🙅
promptvars
🙅
restricted_shell
🙅
shift_verbose
🙅
sourcepath
🙅
xpg_echo
🙅
Born Shell Variables
features
status
features
status
features
status
CDPATH
🙅
HOME
✔️
IFS
🙅
MAIL
🙅
MAILPATH
🙅
OPTARG
🙅
OPTIND
🙅
PATH
✔️
PS1
✔️
PS2
✔️
Bash Variables
features
status
features
status
features
status
_
✔️
BASH
🙅
BASHOPTS
🙅
BASHPID
✔️
BASH_ALIASES
🙅
BASH_ARGC
🙅
BASH_ARGV
🙅
BASH_ARGV0
🙅
BASH_CMDS
🙅
BASH_COMMAND
🙅
BASH_COMPAT
🙅
BASH_ENV
🙅
BASH_EXECUTION_STRING
🙅
BASH_LINENO
🙅
BASH_LOADABLES_PATH
🙅
BASH_REMATCH
🙅
BASH_SOURCE
🙅
BASH_SUBSHELL
✔️
BASH_VERSINFO
✔️
BASH_VERSION
✔️
BASH_XTRACEFD
🙅
CHILD_MAX
🙅
COLUMNS
🙅
COMP_CWORD
🙅
COMP_LINE
🙅
COMP_POINT
🙅
COMP_TYPE
🙅
COMP_KEY
🙅
COMP_WORDBREAKS
🙅
COMP_WORDS
🙅
COMPREPLY
🙅
COPROC
🙅
DIRSTACK
🙅
EMACS
🙅
ENV
🙅
EPOCHREALTIME
✔️
EPOCHSECONDS
✔️
EUID
🙅
EXECIGNORE
🙅
FCEDIT
🙅
FIGNORE
🙅
FUNCNAME
🙅
FUNCNEST
🙅
GLOBIGNORE
🙅
GROUPS
🙅
histchars
🙅
HISTCMD
🙅
HISTCONTROL
🙅
HISTFILE
✔️
HISTFILESIZE
✔️
HISTIGNORE
🙅
HISTSIZE
🙅
HISTTIMEFORMAT
🙅
HOSTFILE
🙅
HOSTNAME
🙅
HOSTTYPE
✔️
IGNOREEOF
🙅
INPUTRC
🙅
INSIDE_EMACS
🙅
LANG
✔️
LC_ALL
🙅
LC_COLLATE
🙅
LC_CTYPE
🙅
LC_MESSAGES
🙅
LC_NUMERIC
🙅
LC_TIME
🙅
LINENO
✔️
LINES
🙅
MACHTYPE
✔️
MAILCHECK
🙅
MAPFILE
🙅
OLDPWD
✔️
OPTERR
🙅
OSTYPE
✔️
PIPESTATUS
✔️
POSIXLY_CORRECT
🙅
PPID
🙅
PROMPT_COMMAND
🙅
PROMPT_DIRTRIM
🙅
PS0
🙅
PS3
🙅
PS4
✔️
PWD
✔️
RANDOM
✔️
READLINE_ARGUMENT
🙅
READLINE_LINE
🙅
READLINE_MARK
🙅
READLINE_POINT
🙅
REPLY
🙅
SECONDS
✔️
SHELL
✔️
SHELLOPTS
🙅
SHLVL
✔️
SRANDOM
✔️
TIMEFORMAT
🙅
TMOUT
🙅
TMPDIR
🙅
UID
🙅
features
status
branch display in prompt
✔️
Partially in Japanese.
© 2022-2024 shellgei group