diff --git a/start.md b/start.md index 65a32a9..5d6327d 100644 --- a/start.md +++ b/start.md @@ -32,88 +32,88 @@ only there to prevent SPAM. - [Bash v4 - a rough overview](bash4.md) (unmaintained, since Bash 4 is more or less standard) -- [style](/scripting/style.md.md) -- an assorted collection of style and optic +- [style](/scripting/style.md) -- an assorted collection of style and optic hints -- [basics](/scripting/basics.md.md) -- [newbie_traps](/scripting/newbie_traps.md.md) -- [bashbehaviour](/scripting/bashbehaviour.md.md) -- [posparams](/scripting/posparams.md.md) -- [processtree](/scripting/processtree.md.md) -- [obsolete](/scripting/obsolete.md.md) -- [nonportable](/scripting/nonportable.md.md) -- [debuggingtips](/scripting/debuggingtips.md.md) -- [terminalcodes](/scripting/terminalcodes.md.md) -- [tutoriallist](/scripting/tutoriallist.md.md) +- [basics](/scripting/basics.md) +- [newbie_traps](/scripting/newbie_traps.md) +- [bashbehaviour](/scripting/bashbehaviour.md) +- [posparams](/scripting/posparams.md) +- [processtree](/scripting/processtree.md) +- [obsolete](/scripting/obsolete.md) +- [nonportable](/scripting/nonportable.md) +- [debuggingtips](/scripting/debuggingtips.md) +- [terminalcodes](/scripting/terminalcodes.md) +- [tutoriallist](/scripting/tutoriallist.md) ## Code snippets -There is a [section that holds small code snippets](/snipplets/start.md.md). +There is a [section that holds small code snippets](/snipplets/start.md). -See also [some Bash source code excerpts](/misc/readthesourceluke.md.md). +See also [some Bash source code excerpts](/misc/readthesourceluke.md). ## How to -[Doing specific tasks: concepts, methods, ideas](/howto/start.md.md): +[Doing specific tasks: concepts, methods, ideas](/howto/start.md): -- [Simple locking (against parallel run)](/howto/mutex.md.md) -- [Rudimentary config files for your scripts](/howto/conffile.md.md) -- [Editing files with ed(1)](/howto/edit-ed.md.md) -- [Collapsing Functions](/howto/collapsing_functions.md.md) -- [Illustrated Redirection Tutorial](/howto/redirection_tutorial.md.md) +- [Simple locking (against parallel run)](/howto/mutex.md) +- [Rudimentary config files for your scripts](/howto/conffile.md) +- [Editing files with ed(1)](/howto/edit-ed.md) +- [Collapsing Functions](/howto/collapsing_functions.md) +- [Illustrated Redirection Tutorial](/howto/redirection_tutorial.md) - [Calculate with dc(1)](/howto/calculate-dc.md) -- [Introduction to pax - the POSIX archiver](/howto/pax.md.md) -- [getopts_tutorial](/howto/getopts_tutorial.md.md) (*under construction!*) -- [dissectabadoneliner](/howto/dissectabadoneliner.md.md) An example of a bad +- [Introduction to pax - the POSIX archiver](/howto/pax.md) +- [getopts_tutorial](/howto/getopts_tutorial.md) (*under construction!*) +- [dissectabadoneliner](/howto/dissectabadoneliner.md) An example of a bad oneliner, breakdown and fix (by `kojoro`) -- [Write tests for ./your-script.sh](/howto/testing-your-scripts.md.md) by +- [Write tests for ./your-script.sh](/howto/testing-your-scripts.md) by using bashtest util ## Bash syntax and operations -- [Bash features overview by version](/scripting/bashchanges.md.md) -- [Basic grammar rules](/syntax/basicgrammar.md.md) -- [Quoting and character escaping](/syntax/quoting.md.md) -- [Parsing and execution](/syntax/grammar/parser_exec.md.md) -- [Some words about words...](/syntax/words.md.md) -- [Patterns and pattern matching](/syntax/pattern.md.md) -- [Arithmetic expressions](/syntax/arith_expr.md.md) -- [List of shell options](/internals/shell_options.md.md) -- [Redirection](/syntax/redirection.md.md) -- [Special parameters and shell variables](/syntax/shellvars.md.md) -- [Arrays](/syntax/arrays.md.md) +- [Bash features overview by version](/scripting/bashchanges.md) +- [Basic grammar rules](/syntax/basicgrammar.md) +- [Quoting and character escaping](/syntax/quoting.md) +- [Parsing and execution](/syntax/grammar/parser_exec.md) +- [Some words about words...](/syntax/words.md) +- [Patterns and pattern matching](/syntax/pattern.md) +- [Arithmetic expressions](/syntax/arith_expr.md) +- [List of shell options](/internals/shell_options.md) +- [Redirection](/syntax/redirection.md) +- [Special parameters and shell variables](/syntax/shellvars.md) +- [Arrays](/syntax/arrays.md) ## Compound commands -| **[Compound commands overview](/syntax/ccmd/intro.md.md)** | | +| **[Compound commands overview](/syntax/ccmd/intro.md)** | | |:-----------------------------------------------------|------------------------------------------------------------------| | Grouping | | -| `{ ...; }` | [command grouping](/syntax/ccmd/grouping_plain.md.md) | -| `( ... )` | [command grouping in a subshell](/syntax/ccmd/grouping_subshell.md.md) | +| `{ ...; }` | [command grouping](/syntax/ccmd/grouping_plain.md) | +| `( ... )` | [command grouping in a subshell](/syntax/ccmd/grouping_subshell.md) | | Conditionals | | -| `[[ ... ]]` | [conditional expression](/syntax/ccmd/conditional_expression.md.md) | -| `if ...; then ...; fi` | [conditional branching](/syntax/ccmd/if_clause.md.md) | -| `case ... esac` | [pattern-based branching](/syntax/ccmd/case.md.md) | +| `[[ ... ]]` | [conditional expression](/syntax/ccmd/conditional_expression.md) | +| `if ...; then ...; fi` | [conditional branching](/syntax/ccmd/if_clause.md) | +| `case ... esac` | [pattern-based branching](/syntax/ccmd/case.md) | | Loops | | -| `for word in ...; do ...; done` | [classic for-loop](/syntax/ccmd/classic_for.md.md) | -| `for ((x=1; x<=10; x++)); do ...; done` | [C-style for-loop](/syntax/ccmd/c_for.md.md) | -| `while ...; do ...; done` | [while loop](/syntax/ccmd/while_loop.md.md) | -| `until ...; do ...; done` | [until loop](/syntax/ccmd/until_loop.md.md) | +| `for word in ...; do ...; done` | [classic for-loop](/syntax/ccmd/classic_for.md) | +| `for ((x=1; x<=10; x++)); do ...; done` | [C-style for-loop](/syntax/ccmd/c_for.md) | +| `while ...; do ...; done` | [while loop](/syntax/ccmd/while_loop.md) | +| `until ...; do ...; done` | [until loop](/syntax/ccmd/until_loop.md) | | Misc | | -| `(( ... ))` | [arithmetic evaluation](/syntax/ccmd/arithmetic_eval.md.md) | -| `select word in ...; do ...; done` | [user selections](/syntax/ccmd/user_select.md.md) | +| `(( ... ))` | [arithmetic evaluation](/syntax/ccmd/arithmetic_eval.md) | +| `select word in ...; do ...; done` | [user selections](/syntax/ccmd/user_select.md) | ## Expansions and substitutions -| **[Introduction to expansions and substitutions](/syntax/expansion/intro.md.md)** | | +| **[Introduction to expansions and substitutions](/syntax/expansion/intro.md)** | | |:----------------------------------------------------------------------------|------------------------------------------------------| -| `{A,B,C} {A..C}` | [Brace expansion](/syntax/expansion/brace.md.md) | -| `~/ ~root/` | [Tilde expansion](/syntax/expansion/tilde.md.md) | -| `$FOO ${BAR%.mp3}` | [Parameter expansion](/syntax/pe.md.md) | -| `` `command` $(command) `` | [Command substitution](/syntax/expansion/cmdsubst.md.md) | -| `<(command) >(command)` | [Process substitution](/syntax/expansion/proc_subst.md.md) | -| `$((1 + 2 + 3)) $[4 + 5 + 6]` | [Arithmetic expansion](/syntax/expansion/arith.md.md) | -| `Hello <---> Word!` | [Word splitting](/syntax/expansion/wordsplit.md.md) | -| `/data/*-av/*.mp?` | [Pathname expansion](/syntax/expansion/globs.md.md) | +| `{A,B,C} {A..C}` | [Brace expansion](/syntax/expansion/brace.md) | +| `~/ ~root/` | [Tilde expansion](/syntax/expansion/tilde.md) | +| `$FOO ${BAR%.mp3}` | [Parameter expansion](/syntax/pe.md) | +| `` `command` $(command) `` | [Command substitution](/syntax/expansion/cmdsubst.md) | +| `<(command) >(command)` | [Process substitution](/syntax/expansion/proc_subst.md) | +| `$((1 + 2 + 3)) $[4 + 5 + 6]` | [Arithmetic expansion](/syntax/expansion/arith.md) | +| `Hello <---> Word!` | [Word splitting](/syntax/expansion/wordsplit.md) | +| `/data/*-av/*.mp?` | [Pathname expansion](/syntax/expansion/globs.md) | ## Builtin Commands @@ -137,7 +137,7 @@ datastructures.
typeset
typeset -r
readarray
echo
."test
simple command.