SH-SEXPRS(1) SH-SEXPRS(1)
NAME
sexprs, islist, els, text, textels, mktext, mklist,
mktextlist - parse and generate S-expressions
SYNOPSIS
load sexprs
getsexprs command
islist sexpr
${els sexpr}
${text sexpr}
${textels sexpr}
${mktext val}
${mklist [ val...
${mktextlist [ val...
DESCRIPTION
Sexprs is a loadable module for sh(1) that provides the
facility to parse and generate S-expressions (see
sexprs(2)). The following primitives are provided:
getsexprs Getsexprs works similiarly to getlines in sh-
std(1). It reads S-expressions from the standard
input, and for expression read, it invokes command
with $sexp set to the text representation of that
expression. Getsexprs recognises the usual loop
break and continue exceptions.
islist sexp
Islist yields a nil (true) status if sexp, which
must be a well-formed S-expression, is a list ele-
ment.
${els sexp}
If sexp is an S-expression containing a list, then
els returns a list of the S-expressions it con-
tains. It is an error if sexp is not a valid S-
expression.
${text sexp}
If sexp is an S-expression containing a simple
element, then text returns the value of that ele-
ment. If sexp is a list, the return value will be
an empty string. Note that elements containing
binary data will likely be corrupted by conversion
to utf-8. It is an error if sexp is not a valid
S-expression.
${textels sexp}
If sexp is an S-expression containing a list, then
Page 1 Plan 9 (printed 10/27/25)
SH-SEXPRS(1) SH-SEXPRS(1)
textels returns a list of the text values in that
S-expression, converted as with ${text}. It is an
error if sexp is not a valid S-expression.
${mktext val}
Mktext returns a text representation of the S-
expression containing the simple value val.
${mklist [sexp...]}
Mklist returns a text representation of the S-
expression list containing its arguments, which
must be well-format S-expressions.
${mktextlist [val...]}
Mktextlist returns a text representation of the
S-expression list containing one simple element
for each val.
SOURCE
/appl/cmd/sh/sexprs.b
SEE ALSO
sh(1), sh-std(1), sexprs(2)
Page 2 Plan 9 (printed 10/27/25)