Yu Zhang
AboutThoughtsNotes
notes/programming-language-stack/shell

Shell

  • K2A-E-1Shell BasicsJun 3, 2020

    What a shell is, sh vs bash vs other shells, shebangs, ways to run a script, comments, exit codes, and the strict-mode flags worth turning on

  • K2A-E-2Shell Variables and ParametersJun 3, 2020

    Variable assignment, expansion, scope, environment vs shell-local, command substitution, and the special parameters (`$?`, `$$`, `$@`, `$*`, etc.)

  • K2A-E-3Shell Strings and ArraysJun 3, 2020

    Quoting rules, parameter expansion (length, substring, pattern removal, replacement, defaults, case), and indexed + associative arrays

  • K2A-E-4Shell Arithmetic and Test OperatorsJun 3, 2020

    Integer arithmetic forms (`$((...))`, `((...))`, `let`, `expr`), the three test commands (`test`, `[`, `[[`), and numeric / string / file operators

  • K2A-E-5Shell Control FlowJun 3, 2020

    `if`, `for` (list and C-style), `while`, `until`, `case`, `select`, infinite loops, and `break` / `continue`

  • K2A-E-6Shell Functions and I/O RedirectionJun 3, 2020

    Function definition, arguments, return status, `local` scope, file descriptors, redirects, heredoc / here-string, pipes, process substitution, and the `echo` / `printf` / `read` builtins

© 2026 Yu Zhang