Why Sponsor Oils? | source | all docs for version 0.19.0 | all versions | oilshell.org
Warning: Work in progress! Leave feedback on Zulip or Github if you'd like this doc to be updated.
These are links to topics in the Oils Reference.
Siblings: YSH Topics, Data Topics
[Usage] osh-usage config startup line-editing prompt
exit-codes
[Lexing] comment # line-continuation \
[Commands] simple-command semicolon ;
[Conditional] case if true false colon :
bang ! and && or || dbracket [[
[Iteration] while until for for-expr-sh ((
[Control Flow] break continue return exit
[Grouping] sh-func sh-block { subshell (
[Concurrency] pipe | X |&
ampersand &
[Redirects] redir-file > >> >| < <> X &>
redir-desc >& <&
here-doc << <<- <<<
[Other Command] dparen (( time X coproc X select
[Literals] sh-array array=(a b c) array[1]=B "${a[@]}"
sh-assoc assoc=(['a']=1 ['b']=2) assoc['x']=b
[Operators] sh-assign str='xyz'
sh-append str+='abc'
[Builtins] local readonly export unset shift
declare typeset X let
[Quotes] quotes 'abc' $'\n' "$var"
[Substitutions] com-sub $(command) `command` @(split command)
var-sub ${var} $0 $9
arith-sub $((1 + 2))
tilde-sub ~/src
proc-sub diff <(sort L.txt) <(sort R.txt)
[Var Ops] op-test ${x:-default}
op-strip ${x%%suffix} etc.
op-replace ${x//y/z}
op-index ${a[i+1}
op-slice ${a[@]:0:1}
op-format ${x@P}
[Arithmetic] arith-context Where legacy arithmetic is allowed
sh-numbers 0xFF 0755 etc.
sh-arith 1 + 2*3 a *= 2
sh-logical !a && b
sh-bitwise ~a ^ b
[Boolean] dbracket [[ vs. the test builtin
bool-expr [[ ! $x && $y || $z ]]
test ! $x -a $y -o $z
bool-infix [[ $a -nt $b ]] [[ $x == $y ]]
bool-path [[ -d /etc ]]
bool-str [[ -z '' ]]
bool-other [[ -o errexit ]]
[Patterns] glob *.py
extglob ,(*.py|*.sh)
regex [[ foo =~ [a-z]+ ]]
[Other Sublang] braces {alice,bob}@example.com
histsub !$ !! !n
char-escapes \t \c \x00 \u03bc
[I/O] read echo printf
readarray mapfile
[Run Code] source . eval trap
[Set Options] set shopt
[Working Dir] cd pwd pushd popd dirs
[Completion] complete compgen compopt compadjust compexport
[Shell Process] exec X logout
umask X ulimit times
[Child Process] jobs wait ampersand &
fg X bg X kill X disown
[External] test [ getopts
[Introspection] help hash type X caller
[Word Lookup] command builtin
[Interactive] alias unalias history X fc X bind
X [Unsupported] enable
[Errors] nounset pipefail errexit inherit_errexit
[Globbing] noglob nullglob failglob dashglob
[Debugging] xtrace X verbose X extdebug
[Interactive] emacs vi
[Other Option] X noclobber
[Shell Options] SHELLOPTS X BASHOPTS
[Other Env] HOME PATH
[POSIX Special] $@ $* $# $? $- $$ $! $0 $9
[Other Special] BASH_REMATCH @PIPESTATUS
[Platform] HOSTNAME OSTYPE
[Call Stack] @BASH_SOURCE @FUNCNAME @BASH_LINENO
X @BASH_ARGV X @BASH_ARGC
[Tracing] LINENO SOURCE_NAME
[Process State] X BASHPID X PPID UID EUID
X [Process Stack] BASH_SUBSHELL SHLVL
X [Shell State] BASH_CMDS @DIRSTACK
[Completion] @COMP_WORDS COMP_CWORD COMP_LINE COMP_POINT
COMP_WORDBREAKS @COMPREPLY X COMP_KEY
X COMP_TYPE COMP_ARGV
[History] HISTFILE
[cd] PWD OLDPWD X CDPATH
[getopts] OPTIND OPTARG X OPTERR
[read] REPLY
[Functions] X RANDOM X SECONDS
[Shell Vars] IFS X LANG X GLOBIGNORE
[Signals] SIGTERM X SIGINT X SIGABRT SIG...
[Traps] EXIT X ERR X DEBUG X RETURN
[Words] PS1 X PS2 X PS3 PS4
[Completion] complete
[Other Plugin] X command_not_found PROMPT_COMMAND