The dollarat program
dollarat prints the positional parameters of an execline script.
Interface
dollarat [ -n ] [ -0 | -d delimchar ]
- dollarat reads the number n of "positional parameters" in the # environment variable. If that variable is not set or does not contain a valid n, dollarat exits 100.
- dollarat prints the value of the 1 environment variable, then delimchar, then the value of the 2 environment variable... and so on until n. If one of these variables is not set, dollarat exits 100.
- If everything runs OK, dollarat exits 0. This makes it one of the rare "exiting" execline commands.
Options
- -n : chomp. Do not print the last delimchar.
- -d delimchar : use the character delimchar as separator between the arguments. Default: \n. If delimchar has more than one character, only the first one is used. If delimchar is the empty string, then dollarat will output the positional parameters as a sequence of netstrings (and the -n option will be ignored).
- -0 : use the null character as separator. If this option and the -d option are given concurrently, the rightmost one wins. Warning: -0 should only be used to feed data to programs that know how to handle null-separated lists.
Notes
- You can use dollarat -d "" along with the
forbacktickx command to reliably loop
over the positional parameters:
#!/command/execlineb forbacktickx -d "" ARG { dollarat -d "" } dosomething $ARGwill call dosomething in turn on each argument to the script. That will work even if those arguments contain spaces, newlines, or other fancy characters. - Alternatively, instead of encoding data into a netstring, you can
use a null-separated list, which will work the same way:
#!/command/execlineb forbacktickx -0 ARG { dollarat -0 } dosomething $ARG
