printargs 0.0.0-20071004-014647

printargs does for command line arguments what printenv does for the environment.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
2.5/5 4
Valentin Hilbig
ROOT \ Utilities
printargs project does for command line arguments what printenv does for the environment. The output is bash friendly such that you can assemble the arguments to stdout in a way that bash can parse them on shell level without additional help.

This works even for meta-characters or line feeds in arguments. The code also is optimized to compile into a small static executable.

Actually, it does print a little bit more than just args and was designed for easy shell usage for argument manipulation and transmitting.

The output can be parsed by bourne shells again and is splitted onto stdout and stderr, such that you can use following code to save the arguments into a single line:

< pre >
saveargs="`printargs args... 2>/dev/null`"
eval cmd $saveargs
< /pre >

The full output can be parsed as follows. However you must be prepared that future versions may add more information right before the arg0 line:

< pre >
printargs args... 2>&1 |
while read -r what arg
eval data="$arg"
< /pre >

Note that printargs prints linefeeds to stderr and not stdout. This behavior is intentional to be able to concatenate argument lists on stdout from a loop.

Also note that printargs does not pad arguments with blanks at the beginning nor at the end, so you have to add these blanks yourself.

In args chars $, ' and blanks are escaped such that you can easily remove those ANSI sequence characters with '| tr -d "' $"'. This feature is intentional with a little readability tradeoff.

Last updated on October 16th, 2007

#static executables #parse arguments #stdout parser #printenv #stdout #argument #parser

Add your review!