yom 2.0.0

A modern, easy to install competitor to the dash shell, built solely to execute files.
.TH YOM 1 "2026-06-29" "v2.0.0" "YOM User Manual"
.SH NAME
yom \- lightweight, non-interactive micro-shell and systems glue
.SH SYNOPSIS
.B yom
[\fISCRIPT_FILE\fR]
.br
.SH DESCRIPTION
.B yom
is a lightweight, high-performance, micro-shell and systems glue 
written in Rust. Designed as a modern, memory-safe alternative to \fBdash\fR, 
it delivers near-native scripting speed while eliminating the toolchain and 
compilation headaches associated with traditional C-based shells.
.PP
When invoked with a \fISCRIPT_FILE\fR, \fByom\fR parses and executes the commands 
contained within the file sequentially. If no arguments are provided, \fByom\fR 
silently fails with exit code 0.
.PP
Because \fByom\fR compiles down to a single, static binary, it can be used 
drop-in execution processor inside minimal Unix environments, containers, 
and custom \fBinitramfs\fR images (with extra tools).
.SH SYNTAX
.B yom
uses a \fIPOSIX-inspired\fR syntax that will be immediately familiar if you have ever
written a bash script. To execute a command you do 
.B /bin/program
to wait for it to finish
.B /bin/program &
to continue with the script (ignoring the child when it becomes a zombie). And
.B exec /bin/program
to morph 
.B yom
into the program.
.PP
.B yom
also has most standard shell builtins:
.B echo \(dqtext\(dq
to echo text back to you
.B read \(dqprompt \(dq
read to give a prompt.
cd to change your directory,
.B cd /path/
exit to well... exit
.B exit <code>
then
.B pwd
to print your working directory. and finally
.B export <name>=<value>
to create an env variable, that can be used in creating processes or in exec
as follows:
.br
.B export ls=/bin/ls
.br
.B \fB$\fRls
.br
.B \fB$\fRls &
.br
.B exec \fB$\fRls
.PP
.B If Statements
.br
.B yom
can do standard, POSIX-style if statements, you simply just do:
.PP
.B if [ 1 == 1 ]
.br
.B then
.br
.B \ \ echo \(dqone is equal to one\(dq
.br
.B fi
.PP
It can also be done using export to create variables, just remember to
append $ to the start or else you'll be comparing strings!
.SH NOTES
.B yom
is allergic to indentation; if you use any indentation, it will explode, 
or it will cause weird behaviour, it also doesn't like anything at the
end of a line.
.PP
If you want to pass
.B &
as an argument, surround it in quotes like this:
.B \(dq&\(dq
then you can run it with 
.B & 
as an argument.
.PP
in
.B yom
if you don't surround the operands with quotes and they arn't integers
then
.B yom
will treat them as strings, pretty cool.
.br
Another neat thing,
.B [
isn't a alias for the
.B test
command, it is a bit of syntax to emulate the look of POSIX, so that
.B yom
could execute some POSIX scripts.
.SH LICENSE
.B yom
is licensed under the GPLv2 license only.
.SH AUTHORS
Maintained by G0o53 and the open-source community. 
Development repository located at: \fIhttps://github.com/G0o53/yom\fR.
.SH SEE ALSO
.BR sh (1),
.BR dash (1),
.BR bash (1)