public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Cyril Hrubis <chrubis@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] new shell library
Date: Mon, 31 Oct 2016 11:39:06 +0100	[thread overview]
Message-ID: <20161031103906.GE30590@rei.lan> (raw)
In-Reply-To: <827120068.2432301.1477908222614.JavaMail.zimbra@redhat.com>

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.

-- 
Cyril Hrubis
chrubis@suse.cz

  reply	other threads:[~2016-10-31 10:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-03 14:58 [LTP] new shell library Cyril Hrubis
2016-10-04  8:23 ` Jan Stancek
2016-10-04  8:45   ` Cyril Hrubis
2016-10-04  9:02     ` Jan Stancek
2016-10-04  9:35       ` Cyril Hrubis
2016-10-04  9:54         ` Jan Stancek
2016-10-04 11:50           ` Cyril Hrubis
2016-10-12 10:08           ` Cyril Hrubis
2016-10-12 10:32             ` Jan Stancek
2016-10-12 12:36               ` Cyril Hrubis
2016-10-12 13:17                 ` Cyril Hrubis
2016-10-12 14:54                   ` Jan Stancek
2016-10-12 15:06                     ` Cyril Hrubis
2016-10-13 15:43                     ` Cyril Hrubis
2016-10-27 14:58                     ` Cyril Hrubis
2016-10-31 10:03                       ` Jan Stancek
2016-10-31 10:39                         ` Cyril Hrubis [this message]
2016-11-14 13:12                         ` Cyril Hrubis
2016-11-22  6:50                           ` Cyril Hrubis
2016-11-22  7:54                             ` Jan Stancek
2016-11-22  8:02                               ` Cyril Hrubis
2016-11-22 10:47                                 ` Jan Stancek
2016-11-22 11:21                                   ` Cyril Hrubis
  -- strict thread matches above, loose matches on Subject: below --
2016-11-22 12:20 Jan Stancek
2016-11-22 13:27 ` Cyril Hrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161031103906.GE30590@rei.lan \
    --to=chrubis@suse.cz \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox