DOLLARAT(1)

NAME
dollarat - print the positional parameters of an execline script

SYNOPSIS
dollarat [-n] [-0 | -d delimchar]

DESCRIPTION
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.

You can use ‘dollarat -d ""’ along with the forbacktickx(1) command to reliably loop over the positional parameters:

    #!/command/execlineb
    forbacktickx -d "" ARG { dollarat -d "" }
    dosomething $ARG

will 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

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 ( cf. execline-transform(7)) 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.

SEE ALSO
elgetopt(1), forbacktickx(1), shift(1), execline-transform(7)

This man page is ported from the authoritative documentation at: https://skarnet.org/software/execline/dollarat.html

AUTHORS
Laurent Bercot Alexis <flexibeast@gmail.com> (man page port)