From f316a2ed52195135a35e32d7096e876357c48c69 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Thu, 18 Sep 2014 20:03:23 +0000 Subject: initial commit: rc for execline-2.0.0.0 --- doc/execlineb.html | 246 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 doc/execlineb.html (limited to 'doc/execlineb.html') diff --git a/doc/execlineb.html b/doc/execlineb.html new file mode 100644 index 0000000..64f29bd --- /dev/null +++ b/doc/execlineb.html @@ -0,0 +1,246 @@ + + + + + execline: the execlineb command + + + + + + +

+execline
+Software
+skarnet.org +

+ +

The execlineb program

+ +

+execlineb reads and executes a script. +

+ +

Interface

+ +
+     execlineb [ -q | -w | -W ] [ -p | -P | -S nmin ] -c script [ args... ]
+
+ +

+or +

+ +
+     execlineb [ -q | -w | -W ] [ -p | -P | -S nmin ] scriptfile [ args... ]
+
+ +

+or in an executable file: +

+ +
+#!/command/execlineb [ -qwWpPSnmin ]
+script
+
+ +

+ Parsing phase. +

+ + + +

+ Environment management phase. +

+ + + +

+ Execution phase. +

+ + + +

Options

+ + + +

+ See below for the other options. +

+ +

Syntax of scripts

+ +

+ An execlineb script is a string that must not contain the null character. +execlineb parses it and divides it into words. + + The parser recognizes the following components: +

+ + + +

+ You can see an example of distinct execlineb components +here. +

+ +

+ In addition to that simple lexing, +execlineb performs the following higher-level parsing: +

+ + + +

+For proper execution, the sequence of words must follow +the execline grammar. +

+ +

Options for block syntax checking

+ +

+ External execline commands that read blocks, like +foreground, use the EXECLINE_STRICT +environment variable: if it is set to 1, they will print a warning message +on stderr if they find their blocks not to be properly quoted. If it is set +to 2, they will also die. If it is set to 0, or unset, they won't complain +at all. +

+ +

+ Normally the EXECLINE_STRICT environment variable is +inherited from the caller. You can +force it unset, set to 1, or set to 2 by giving respectively the +-q, -w or -W option to execlineb. +

+ +

Options for environment management

+ +

+ Normally, execline scripts are reentrant: environment variables +potentially overwritten by execlineb, such as # or +0, are +pushed. This is the standard, safe +behaviour. Nevertheless, it is rather costly, and may be unneeded for +small scripts: for those cases, execline comes with two options +that bypass the environment management. Be warned that the purpose +of these options is optimization, and you should not +use them if you're not familiar with the way execlineb uses the +environment to store positional parameters. Alternatively, there's also +an integrated substitution mechanism that doesn't make use +of the environment at all. +

+ + + +

Current limitations

+ +

+ execlineb builds and executes a unique +argv with the script: hence scripts are subject to OS-dependent +limitations such as the kernel buffer size for argv and envp + - at least 64 kB on most systems. This means that execlineb cannot +execute arbitrarily large scripts. Be careful with deeply nested scripts too: +without the -p/-P/-S option, each execlineb +invocation uses up some space in the environment. +

+ + + -- cgit v1.3.1