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 | ๐ |
๐ | 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.
- blog articles
- Rustใงใทใงใซไฝใฃใ | ฮบeenใฎHappy Hacฮบing Blog
- Rustใงๅงใใ่ชไฝใทใงใซ ใใฎ1 | ใถใฆใใฎใญใฐใงใถใญใฐ
- Rustใฎใฟใผใใใซๆไฝcrateใใใใ | meganehouser
- ๅ็ๅๅใง็่งฃใใใใฉใขใฐใฉใฆใณใใใญใปในใจใใใฏใฐใฉใฆใณใใใญใปในใฎ้ใ | @tajima_taso
- Bashใฟใ่ฃๅฎ่ชไฝๅ ฅ้ | Cybouzu Inside Out
ยฉ 2022-2024 shellgei group
- Ryuichi Ueda: @ry@mi.shellgei.org, @ryuichiueda@misskey.io
- @caro@mi.shellgei.org