[LTP] new shell library

Cyril Hrubis
2016-10-31T10:39:06Z

Hi!
> I don't recall original ROD email thread, but did we consider eval and
> passing entire command as single argument? For most commands it would
> seem to be as simple as adding quotes around, awk though needs some
> escaping:
>
> #!/bin/sh
>
> ROD_BASE()
> {
> eval $@
> }
>
> ROD()
> {
> ROD_BASE "$@"
> if [ $? -ne 0 ]; then
> tst_brk TBROK "$@ failed"
> fi
> }
>
> ROD_SILENT()
> {
> ROD_BASE "$@" > /dev/null 2>&1
> if [ $? -ne 0 ]; then
> tst_brk TBROK "$@ failed"
> fi
> }
>
> sleep 1 &
> ROD jobs
> ROD "ps | awk '{print \$1}' > tempfile"

I wanted to avoid putting the whole command line into "" as well as the
need to escape $ signs inside of '', etc.

For instance if I wanted to print literal '\n' I would have to do:

ROD echo "\\\\n"

whereas with the C helper we can do just:

ROD echo "\\n"

I'm not saying that the C binary is the best solution to the problem but
I do not thing that using eval does not seem to be much better, it's
certainly shorter to implement though.