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/exist
error
builtin (status 10 is default)(If you updated this doc, feel free to add your name to the end of this list.)