Simple Commands
Just like any other shell scripting language. Bunster allows you can run external progams.
The format is as follows:
command-name [arguments...]
The command-name
can be a full path to a program. or just the name of the binary. In that case, the binary must be accessible in $PATH
.
Separator
You can separate the command list by a new line. a semicolon ;
, an ampersand &
or logical operators &&
and ||
.
command argument argument
command2 argument argument; command3 argument argument
command4 argument argument;
we will talk more about ampersand &
and logical operators later in the documentation.
Quotes
Quotes in bunster work the exact same as in bash.
Double Quotes
double quotes are used to preserve the literal meaning of tokens except the dollar sign $
.
"command name" "foo bar"
This will run the comand command name
and pass the argument foo bar
.
Dollar sign
Dollar sign is a special token that is used for substitution. It does not lose it's meaning in double quotes:
echo "$HOME"
This will run echo
. and passes an argument which is the value of the HOME
variable. (we will learn more about variables later).
Escaping quotes
You can escape double quotes within double quotes:
echo "\"foobar\""
This will run the command echo
with the argument "foobar"
.
Single Quotes
Single quotes are also used to preserve the literal meaning of tokens. However, unlike double quotes, all tokens within single quotes loose their special meaning. Including the $
dollar sign. And you cannot use escaping within single quotes
echo '$VAR\'
Runs the command echo
with the argument $VAR\
Escaping
Escaping is the same as in bash. you use the backslash \
to preserve the literal meaning of the next token. The backslash it self is removed and the escaped token is treated literally.
Newline \n
is a special case. when you scape a newline. the newline is removed as well:
command\ name \
argument argument2
This will run the command command name
. and pass the argument
and argument2
arguments.
Comments
Comments in bunster are (as you may guess) the exact as in any other shell. Lines starting with #
are ignored. Parts of lines that start with #
are treated as comments as well and are ignored.
# full line comment
command # inline comment
Examples
echo foo bar
echo "Hello World"
echo 'Hello World'
echo; echo
echo \
foo bar