Eshell has different
$ expansion syntax from other shells. There
are some similarities, but don’t let these lull you into a false sense
Expands to the value bound to
var. This is the main way to use
variables in command invocations.
Expands to the length of the value bound to
var. Raises an error
if the value is not a sequence
(see Sequences in The Emacs Lisp Reference Manual).
Expands to the result of evaluating the S-expression
its own, this is identical to just
(lisp), but with the
it can be used in a string, such as ‘/some/path/$(lisp).txt’.
Returns the output of
command, which can be any valid Eshell
command invocation, and may even contain expansions.
Expands to the
ith element of the value bound to
the value is a string, it will be split at whitespace to make it a list.
Again, raises an error if the value is not a sequence.
As above, but now splitting occurs at the colon character.
$var[: i j]
As above, but instead of returning just a string, it now returns a list of two strings. If the result is being interpolated into a larger string, this list will be flattened into one big string, with each element separated by a space.
Separate on backslash characters. Actually, the first argument – if it doesn’t have the form of a number, or a plain variable name – can be any regular expression. So to split on numbers, use ‘$var["[0-9]+" 10 20]’.
"hello", expecting it to be
an alist (see Association Lists in The Emacs Lisp Reference Manual).
Returns the length of the cdr of the element of
var who car is equal