Process
Operators and functions for working with processes and applications are described here. The Args and ArgCount functions work with any command line format. For the correct operation of other Arg... functions, the command line must have the following format.
CmdLine = [ CmdOptions ] ["-"] [ CmdParameters ]
CmdParameters = { CmdParameter }
CmdParameter = ParamWithoutSpace | "Param With Spaces" | 'Param With Spaces'
CmdOptions = {CmdOption}
CmdOption = "-" | "--" {letter} [ CmdOptionValue | CmdOptionValues ]
CmdOptionValue = "=" | ":" CmdParameter
CmdOptionValues = " " CmdParameters
-p="my value" --flag - one two three
-i:10 -n:Bob "one par" two three
--ext "*.txt" .js .html -o=/home/ak/dest /home/ak/in1 /home/ak/in2

Operator
Result
Description
$ command line
Executes the command line.
str = $ command line
Executes the command line and returns its output.

The Arg function returns the value of the parameter with the specified name. If the parameter was not specified at the start of the script, an empty string will be returned. You can omit the initial character - in the name parameter.

The Arg function returns the value of the parameter with the specified name. If the parameter was not specified at the start of the script, def will be returned. You can omit the initial character - in the name parameter.

The Arg function returns the numeric value of the parameter with the specified name. If the parameter was not specified at the start of the script, def will be returned. You can omit the initial character - in the name parameter.

The ArgCount function returns the number of command line parameters with which the script was run.

The Args function returns a list of all command-line parameters and options with which the script has been run.

The Args function returns a list of parameter values named name. You can omit the initial character - in the name parameter.
// --ext .txt .js .html -o=/home/ak/dest /home/ak/in1 /home/ak/in2
list = Args(`--ext`)
// list == [.txt, .js, .html]

The ArgsTail function returns the list of command line parameters after the options. You can explicitly specify the beginning of such parameters with -.
// --ext .txt .js .html -o=/home/ak/dest /home/ak/in1 /home/ak/in2
list = ArgsTail() // list == [/home/ak/in1, /home/ak/in2]
// -i=false - val0 -value1 "value 2"
list = ArgsTail() // list == [val0, -value1, value 2]

The IsArg function returns true if the command line has an option with the specified name. Otherwise, it returns false. You can omit the initial character - in the name parameter.

The Open function opens a file, directory, or URI using the OS's default application for that object type. Don't wait for the open command to complete.

The OpenWith function opens a file, directory, or URI using the specified application. Don't wait for the open command to complete.

Optional parameters
  • buf stdin - the buffer that will be passed to the application as standard input.
  • buf stdout - the buffer into which the standard output of the application will be written.
  • buf stderr - the buffer into which the standard error output of the application will be written.
The Run function starts the specified cmd program with parameters and waits for it to finish. Additionally, you can override the standard input and output.
buf dirout
Run("dir", stdout: dirout)
Run("bash", stdin: buf(
|`echo "dirs"
#comment
echo "%{str(dirout)}"`
))

The SplitCmdLine function parses the input string with command line parameters and returns an array of parameters.
run str {
return SplitCmdLine(`param1 "second par" "qwert\"y" 100 'oo ps'
-lastparam`).Join(`=`)
}
// returns param1=second par=qwert"y=100=oo ps=-lastparam

Optional parameters
  • buf stdin - the buffer that will be passed to the application as standard input.
The Start function starts the specified program cmd with parameters and runs the script further. Additionally, you can pass the buffer as standard input.
Start("echo", "hello, world!")
Start("bash", stdin: buf(
|`./myscript1.sh
./myscript2.sh`
))
Copy link
On this page
Operators
Functions
Arg(str name) str
Arg(str name, str def) str
Arg(str name, int def) int
ArgCount() int
Args() arr.str
Args(str name) arr.str
ArgsTail() arr.str
IsArg(str name) bool
Open(str path)
OpenWith(str app, str path)
Run(str cmd, str params...)
SplitCmdLine(str cmdline) arr.str
Start(str cmd, str params...)