Berserk Docs
Scalar FunctionsString Functions

parse_command_line

Tokenize a command-line string into a dynamic array of arguments.

Two parsers are supported:

  • "windows" (mirrors Microsoft Kusto): whitespace separates tokens, double-quoted substrings are preserved literally (quote characters removed), and single quotes are plain characters.
  • "linux" (Berserk extension): POSIX shell lexing via shlex — both single and double quotes act as grouping quotes, backslash escapes are honoured, and unclosed quotes yield null.

Empty / whitespace-only input yields null; any other parser value is an error.

Syntax

parse_command_line(command, parser)

Parameters

Prop

Type

Given a dynamic field

This parameter is string-only. In permissive mode — the default — almost every field arrives as a dynamic, so passing one works because Berserk injects asstring: extract-or-null, the value when it really is a string and null otherwise, so the call yields null (a predicate yields false). A property bag or array is therefore not matched, and tostring() is never applied implicitly — use it explicitly to match a bag's JSON text, keys included. Strict mode rejects the dynamic instead of coercing it. See String coercion and the asXXX family.

Returns: dynamic

Examples

Example 1

print parse_command_line("ls -la \"/my path\"", "windows")
print_0 (dynamic)
["ls","-la","/my path"]

On this page