Reference

osh(1)

command language interpreter

NAME

osh – command language interpreter

SYNOPSIS

osh [options] script [args]

osh [options] -c [command_string] [args]

DESCRIPTION

The osh utility is a bash(1)-compatible command language interpreter: it reads commands either from standard input, a script file or command-line arguments and executes them.

osh accepts POSIX sh(1) arguments, with the following differences:

-n

Only validate the syntax. Also prints the AST.

--ast-format

What format the AST should be in.

ENVIRONMENT

OILS_HIJACK_SHEBANG
OILS_CRASH_DUMP_DIR

FILES

The interactive shell only sources ~/.config/oils/oshrc on startup.

EXIT STATUS

The osh utility exits with one of the following values:

1

One or more runtime errors occurred.

2

One or more parsing errors occurred, either due to incorrect script syntax or improper invocation of a shell builtin.

126

Permission was denied when running a command.

127

The referenced command or script could not be found.

SEE ALSO

bash(1), busybox(1), sh(1)

Docs: https://oils.pub/release/0.38.0/doc/

AUTHORS

The osh utility was written by Andy Chu ⟨[email protected]⟩

History

--ast-format since Arch Linux 2026-11-01; -n since Debian 12 (Bookworm).

--absname until Debian 13 (Trixie); --all-dependencies until Debian 13 (Trixie); --configure until Debian 13 (Trixie); --depend until Debian 13 (Trixie); --dotomake until Debian 13 (Trixie); --flush-includes until Debian 13 (Trixie); --force-dotomake until Debian 13 (Trixie); --help until Debian 13 (Trixie); --help-all until Debian 13 (Trixie); --help-debug until Debian 13 (Trixie); --install until Debian 13 (Trixie); --install-all until Debian 13 (Trixie); --install-force until Debian 13 (Trixie); --output-at-end until Debian 13 (Trixie); --output-normal until Debian 13 (Trixie); --output-only-errors until Debian 13 (Trixie); --output-postpone until Debian 13 (Trixie); --print-dependencies until Debian 13 (Trixie); --print-exit until Debian 13 (Trixie); --print-status until Debian 13 (Trixie); --progress until Debian 13 (Trixie); --project until Debian 13 (Trixie); --save-interval until Debian 13 (Trixie); --server until Debian 13 (Trixie); --shell until Debian 13 (Trixie); --show-dependencies until Debian 13 (Trixie); --verbose until Debian 13 (Trixie); --verbose-dependencies until Debian 13 (Trixie); --version until Debian 13 (Trixie); -P until Debian 13 (Trixie); -R until Debian 13 (Trixie); -S until Debian 13 (Trixie); -U until Debian 13 (Trixie); -Wdeclare until Debian 13 (Trixie); -allow-exceptions until Debian 13 (Trixie); -c until Debian 13 (Trixie); -debug-active-rules until Debian 13 (Trixie); -debug-ast-lex until Debian 13 (Trixie); -debug-build until Debian 13 (Trixie); -debug-cache until Debian 13 (Trixie); -debug-db until Debian 13 (Trixie); -debug-deps until Debian 13 (Trixie); -debug-eval until Debian 13 (Trixie); -debug-exec until Debian 13 (Trixie); -debug-hash until Debian 13 (Trixie); -debug-implicit until Debian 13 (Trixie); -debug-lex until Debian 13 (Trixie); -debug-lexgen until Debian 13 (Trixie); -debug-notify until Debian 13 (Trixie); -debug-parse until Debian 13 (Trixie); -debug-parsegen until Debian 13 (Trixie); -debug-parsing until Debian 13 (Trixie); -debug-pos until Debian 13 (Trixie); -debug-remote until Debian 13 (Trixie); -debug-rule until Debian 13 (Trixie); -debug-scanner until Debian 13 (Trixie); -debug-shell until Debian 13 (Trixie); -debug-thread until Debian 13 (Trixie); -extended-rusage until Debian 13 (Trixie); -i until Debian 13 (Trixie); -instrument until Debian 13 (Trixie); -j until Debian 13 (Trixie); -k until Debian 13 (Trixie); -o until Debian 13 (Trixie); -p until Debian 13 (Trixie); -print-ast until Debian 13 (Trixie); -print-files until Debian 13 (Trixie); -print-ir until Debian 13 (Trixie); -print-loc until Debian 13 (Trixie); -print-rules until Debian 13 (Trixie); -s until Debian 13 (Trixie); -t until Debian 13 (Trixie); -trace-pos until Debian 13 (Trixie); -w until Debian 13 (Trixie); -warn-error until Debian 13 (Trixie).