cmd
is a basic command interpreter for Fuchsia. It provides basic line-editing facilities and can invoke command-line programs.
Eventually, cmd
will be replaced by a command interpreter that interacts directly with Fuchsia system concepts, such as kernel objects, components, and services.
Tokens are separated by whitespace, which are space (U+20), tab (U+09), carriage return (U+0D), and newline characters (U+0A) and cannot contain "
(U+22).
A token that begins with a #
(U+23) begins a comment. Comments cause the current token and all subsequent tokens to be ignored.
A token that begins with a "
(U+22) is a quoted token. Within a quoted token a \
(U+5C) initiates an escape sequence. The following escape sequences are available:
Sequence | Value |
---|---|
\t | U+09 |
\n | U+0A |
\r | U+0D |
\" | U+22 |
\\ | U+5C |
Rather than terminating by whitespace, a quoted token terminates at the first unescaped A "
(U+22), which must be followed either by whitespace or by the end of the command.
Syntax: cd PATH
If one argument is provided, changes the current working directory to the given path.
It is an error to supply more or fewer than one argument.
Syntax: getenv [VARIABLE_NAME]
If zero arguments are provided, prints all the variables in the current environment.
If one argument is provided, prints the value of that environment variable with the given name.
It is an error to supply more than one argument.
Syntax: setenv VARIABLE_NAME VARIABLE_VALUE
If two arguments are provided, sets the value of the environment variable with the given name to the given value.
It is an error to supply more or fewer than two arguments.
Syntax: unsetenv ENVIORNMENT_VARIABLE
Removes the given ENVIORNMENT_VARIABLE
from the current environment.
Exit the interpreter. The interpreter always exits with a return code of 0.
If a command is not implemented internally, then cmd
will run the command by running an executable with the given arguments.
cmd
finds executables by resolving the command name (the first token in the command sequence) against the value of the PATH
environment variable, split on :
(U+3A).
To run an executable, cmd
creates a child job and runs the executable in a new process within that job with the same namespace as cmd
itself.
cmd
does not support variable expanstion.
cmd
does not support any control flow.