| 1 | ---
|
| 2 | title: OSH Table of Contents
|
| 3 | all_docs_url: ..
|
| 4 | css_files: ../../web/base.css ../../web/manual.css ../../web/ref-index.css
|
| 5 | preserve_anchor_case: yes
|
| 6 | ---
|
| 7 |
|
| 8 | <div class="doc-ref-header">
|
| 9 |
|
| 10 | [Oils Reference](index.html) —
|
| 11 | **OSH Table of Contents** | [YSH](toc-ysh.html) | [Data Notation](toc-data.html)
|
| 12 |
|
| 13 | </div>
|
| 14 |
|
| 15 | [OSH]($xref) is a POSIX- and [bash]($xref)-compatible shell.
|
| 16 |
|
| 17 | <!--
|
| 18 | <div class="custom-toc">
|
| 19 |
|
| 20 | [OSH Types](#type-method) <br/>
|
| 21 | [Builtin Commands](#builtin-cmd) <br/>
|
| 22 | [Front End](#front-end) <br/>
|
| 23 | [Command Language](#cmd-lang) <br/>
|
| 24 | [OSH Assignment](#osh-assign) <br/>
|
| 25 | [Word Language](#word-lang) <br/>
|
| 26 | [Mini Languages](#mini-lang) <br/>
|
| 27 | [Shell Options](#option) <br/>
|
| 28 | [Special Variables](#special-var) <br/>
|
| 29 | [Plugins and Hooks](#plugin) <br/>
|
| 30 |
|
| 31 | [type-method](#type-method)
|
| 32 | [builtin-cmd](#builtin-cmd)
|
| 33 | [front-end](#front-end)
|
| 34 | [cmd-lang](#cmd-lang)
|
| 35 | [osh-assign](#osh-assign)
|
| 36 | [word-lang](#word-lang)
|
| 37 | [mini-lang](#mini-lang)
|
| 38 | [option](#option)
|
| 39 | [special-var](#special-var)
|
| 40 | [plugin](#plugin)
|
| 41 |
|
| 42 | </div>
|
| 43 | -->
|
| 44 |
|
| 45 | <h2 id="type-method">
|
| 46 | OSH Types <a class="group-link" href="chap-type-method.html">type-method</a>
|
| 47 | </h2>
|
| 48 |
|
| 49 | ```chapter-links-type-method
|
| 50 | [OSH] BashArray BashAssoc
|
| 51 | ```
|
| 52 |
|
| 53 | <h2 id="builtin-cmd">
|
| 54 | Builtin Commands <a class="group-link" href="chap-builtin-cmd.html">builtin-cmd</a>
|
| 55 | </h2>
|
| 56 |
|
| 57 | ```chapter-links-builtin-cmd
|
| 58 | [I/O] read echo printf
|
| 59 | readarray mapfile
|
| 60 | [Run Code] source . eval trap
|
| 61 | [Set Options] set shopt
|
| 62 | [Working Dir] cd pwd pushd popd dirs
|
| 63 | [Completion] complete compgen compopt compadjust compexport
|
| 64 | [Shell Process] exec X logout
|
| 65 | umask ulimit times
|
| 66 | [Child Process] jobs wait
|
| 67 | fg X bg X kill X disown
|
| 68 | [External] test [ getopts
|
| 69 | [Introspection] help hash cmd/type X caller
|
| 70 | [Word Lookup] command builtin
|
| 71 | [Interactive] alias unalias history X fc X bind
|
| 72 | X [Unsupported] enable
|
| 73 | ```
|
| 74 |
|
| 75 | <h2 id="stdlib">
|
| 76 | Standard Library <a class="group-link" href="chap-stdlib.html">stdlib</a>
|
| 77 | </h2>
|
| 78 |
|
| 79 | ```chapter-links-stdlib
|
| 80 | [bash-strict]
|
| 81 | [two] log die
|
| 82 | [no-quotes] nq-capture nq-capture-2 nq-assert
|
| 83 | [byo-server] byo-maybe-run byo-must-run
|
| 84 | [task-five] taskfile
|
| 85 | ```
|
| 86 |
|
| 87 | <!--
|
| 88 | repo-root is left off because there are questions about
|
| 89 |
|
| 90 | pwd -P
|
| 91 | readlink -f $0
|
| 92 |
|
| 93 | There is not one way to do it when symlinks are involved. And most of our
|
| 94 | scripts don't have it.
|
| 95 |
|
| 96 | -->
|
| 97 |
|
| 98 |
|
| 99 |
|
| 100 | <h2 id="front-end">
|
| 101 | Front End <a class="group-link" href="chap-front-end.html">front-end</a>
|
| 102 | </h2>
|
| 103 |
|
| 104 | ```chapter-links-front-end
|
| 105 | [Usage] oils-usage osh-usage config
|
| 106 | startup line-editing exit-codes
|
| 107 | [Lexing] comment # line-continuation \ ascii-whitespace [ \t\r\n]
|
| 108 | ```
|
| 109 |
|
| 110 | <h2 id="cmd-lang">
|
| 111 | Command Language <a class="group-link" href="chap-cmd-lang.html">cmd-lang</a>
|
| 112 | </h2>
|
| 113 |
|
| 114 | ```chapter-links-cmd-lang
|
| 115 | [Commands] simple-command semicolon ;
|
| 116 | [Conditional] case if dbracket [[
|
| 117 | true false colon :
|
| 118 | bang ! and && or ||
|
| 119 | [Iteration] while until for for-expr-sh ((
|
| 120 | [Control Flow] break continue return exit
|
| 121 | [Grouping] sh-func sh-block { subshell (
|
| 122 | [Concurrency] pipe | X pipe-amp |& ampersand &
|
| 123 | [Redirects] redir-file > >> >| < <> not impl: &>
|
| 124 | redir-desc >& <&
|
| 125 | here-doc << <<- <<<
|
| 126 | [Other Command] dparen (( time X coproc X select
|
| 127 | ```
|
| 128 |
|
| 129 | <h2 id="osh-assign">
|
| 130 | Assignments and Expressions <a class="group-link" href="chap-osh-assign.html">osh-assign</a>
|
| 131 | </h2>
|
| 132 |
|
| 133 | ```chapter-links-osh-assign
|
| 134 | [Literals] sh-array array=(a b c) array[1]=B "${a[@]}"
|
| 135 | sh-assoc assoc=(['a']=1 ['b']=2) assoc['x']=b
|
| 136 | [Operators] sh-assign str='xyz'
|
| 137 | sh-append str+='abc'
|
| 138 | [Builtins] local readonly export unset shift
|
| 139 | declare typeset X let
|
| 140 | ```
|
| 141 |
|
| 142 | <h2 id="word-lang">
|
| 143 | Word Language <a class="group-link" href="chap-word-lang.html">word-lang</a>
|
| 144 | </h2>
|
| 145 |
|
| 146 | <!-- linkify_stop_col is 33 -->
|
| 147 |
|
| 148 | ```chapter-links-word-lang_33
|
| 149 | [Quotes] osh-string 'abc' $'line\n' "$var"
|
| 150 | [Substitutions] command-sub $(command) `command`
|
| 151 | var-sub ${var} $0 $9
|
| 152 | arith-sub $((1 + 2))
|
| 153 | tilde-sub ~/src
|
| 154 | proc-sub diff <(sort L.txt) <(sort R.txt)
|
| 155 | [Var Ops] op-test ${x:-default}
|
| 156 | op-strip ${x%%suffix} etc.
|
| 157 | op-replace ${x//y/z}
|
| 158 | op-index ${a[i+1}
|
| 159 | op-slice ${a[@]:0:1}
|
| 160 | op-format ${x@P}
|
| 161 | ```
|
| 162 |
|
| 163 | <h2 id="mini-lang">
|
| 164 | Other Mini Languages <a class="group-link" href="chap-mini-lang.html">mini-lang</a>
|
| 165 | </h2>
|
| 166 |
|
| 167 | <!-- linkify_stop_col is 33 -->
|
| 168 |
|
| 169 | ```chapter-links-mini-lang_33
|
| 170 | [Arithmetic] arith-context Where legacy arithmetic is allowed
|
| 171 | sh-numbers 0xFF 0755 etc.
|
| 172 | sh-arith 1 + 2*3 a *= 2
|
| 173 | sh-logical !a && b
|
| 174 | sh-bitwise ~a ^ b
|
| 175 | [Boolean] bool-expr [[ ! $x && $y || $z ]]
|
| 176 | test ! $x -a $y -o $z
|
| 177 | bool-infix $a -nt $b $x == $y
|
| 178 | bool-path -d /etc
|
| 179 | bool-str -n foo -z ''
|
| 180 | bool-other -o errexit -v name[index]
|
| 181 | [Patterns] glob-pat *.py
|
| 182 | extglob ,(*.py|*.sh)
|
| 183 | regex [[ foo =~ [a-z]+ ]]
|
| 184 | [Other Sublang] braces {alice,bob}@example.com
|
| 185 | histsub !$ !! !n
|
| 186 | char-escapes \t \c \x00 \u03bc
|
| 187 | ```
|
| 188 |
|
| 189 | <h2 id="option">
|
| 190 | Global Shell Options <a class="group-link" href="chap-option.html">option</a>
|
| 191 | </h2>
|
| 192 |
|
| 193 | <!-- linkify_stop_col is 20 since we only want section links -->
|
| 194 |
|
| 195 | ```chapter-links-option_22
|
| 196 | [Errors] nounset -u errexit -e inherit_errexit pipefail
|
| 197 | [Globbing] noglob -f nullglob failglob X dotglob
|
| 198 | dashglob (true)
|
| 199 | [Debugging] xtrace X verbose X extdebug
|
| 200 | [Interactive] emacs vi
|
| 201 | [Other POSIX] X noclobber
|
| 202 | [Compat] eval_unsafe_arith ignore_flags_not_impl
|
| 203 | ```
|
| 204 |
|
| 205 | <h2 id="special-var">
|
| 206 | Special Variables <a class="group-link" href="chap-special-var.html">special-var</a>
|
| 207 | </h2>
|
| 208 |
|
| 209 | ```chapter-links-special-var
|
| 210 | [POSIX Special] $@ $* $# $? $- $$ $! $0 $9
|
| 211 | [Shell Vars] IFS X LANG X GLOBIGNORE
|
| 212 | [Shell Options] SHELLOPTS X BASHOPTS
|
| 213 | [Other Env] HOME PATH
|
| 214 | [Other Special] BASH_REMATCH @PIPESTATUS
|
| 215 | [Platform] HOSTNAME OSTYPE
|
| 216 | [Call Stack] @BASH_SOURCE @FUNCNAME @BASH_LINENO
|
| 217 | X @BASH_ARGV X @BASH_ARGC
|
| 218 | [Tracing] LINENO
|
| 219 | [Process State] UID EUID PPID X BASHPID
|
| 220 | X [Process Stack] BASH_SUBSHELL SHLVL
|
| 221 | X [Shell State] BASH_CMDS @DIRSTACK
|
| 222 | [Completion] @COMP_WORDS COMP_CWORD COMP_LINE COMP_POINT
|
| 223 | COMP_WORDBREAKS @COMPREPLY X COMP_KEY
|
| 224 | X COMP_TYPE COMP_ARGV
|
| 225 | [History] HISTFILE
|
| 226 | [cd] PWD OLDPWD X CDPATH
|
| 227 | [getopts] OPTIND OPTARG X OPTERR
|
| 228 | [read] REPLY
|
| 229 | [Functions] X RANDOM SECONDS
|
| 230 | ```
|
| 231 |
|
| 232 | <h2 id="plugin">
|
| 233 | Plugins and Hooks <a class="group-link" href="chap-plugin.html">plugin</a>
|
| 234 | </h2>
|
| 235 |
|
| 236 | ```chapter-links-plugin
|
| 237 | [Signals] SIGTERM SIGINT SIGQUIT
|
| 238 | SIGTTIN SIGTTOU SIGWINCH
|
| 239 | [Traps] DEBUG ERR EXIT X RETURN
|
| 240 | [Words] PS1 X PS2 X PS3 PS4
|
| 241 | [Completion] complete
|
| 242 | [Other Plugin] PROMPT_COMMAND X command_not_found
|
| 243 | ```
|