Why Sponsor Oils? | source | all docs for version 0.21.0 | all versions | oilshell.org
This doc lists errors from Oils (both OSH and YSH), with hints to help you fix them.
Each error is associated with a code like OILS-ERR-42, a string that search
engines should find.
If you see an error that you don't understand:
#oil-help on Zulip. What's the problem,
and what's the solution?grep the source code for the confusing error message. Tag it with a
string like OILS-ERR-43, picking a new number according to the conventions
below.test/{parse,runtime,ysh-parse,ysh-runtime}-errors.sh. Add an HTML
comment <!-- --> about that.Note that error messages are hard to write, because a single error could result from many different user intentions!
Right now I use this command:
build/doc.sh split-and-render doc/error-catalog.md
Then paste this into your browser:
file:///home/andy/git/oilshell/oil/_release/VERSION/doc/error-catalog.html
(Replace with your home dir)
Roughly speaking, a parse error means that text input was rejected, so the shell didn't try to do anything.
Examples:
echo ) # Shell syntax error
type -z # -z flag not accepted
These error codes start at 10.
setvar x = true
^
[ -c flag ]:3: setvar couldn't find matching 'var x' (OILS-ERR-10)
Related help topics:
echo $'\z'
^
[ -c flag ]:1: Invalid char escape in C-style string literal (OILS-ERR-11)
$'\\z'? Backslashes must be escaped in $'' and u'' and
b'' strings.$'\n'? Only valid escapes are accepted in YSH.Related help topics:
echo "\z"
^
[ -c flag ]:1: Invalid char escape in double quoted string (OILS-ERR-12)
"\\z"? Backslashes must be escaped in double-quoted strings."\$"? Only valid escapes are accepted in YSH.Related help topics:
echo \z
^~
[ -c flag ]:1: Invalid char escape in unquoted word (OILS-ERR-13)
\\z? Backslashes must be escaped in unquoted words.\$? Only valid escapes are accepted in YSH.These errors may occur in shells like bash and zsh.
They're numbered starting from 100. (If we have more than 90 parse errors,
we can start a new section, like 300.)
Example TODO: Command not found.
$PATH? That variable controls where the shell shell
looks for executable files.proc?These errors don't occur in shells like bash and zsh.
They may involve Python-like expressions and typed data.
They're numbered starting from 200.
cat ("myfile")
^
[ -c flag ]:1: fatal: 'cat' appears to be external. External commands don't accept typed args (OILS-ERR-200)
echo hi > /does/not/existerror builtin (status 10 is default)(If you updated this doc, feel free to add your name to the end of this list.)