All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiko Gerstung <heiko@am-anger-1.de>
To: Eric Blake <eblake@redhat.com>
Cc: dash@vger.kernel.org
Subject: Re: Dashhh
Date: Thu, 17 Nov 2011 21:40:21 +0100	[thread overview]
Message-ID: <4EC57135.2030609@am-anger-1.de> (raw)
In-Reply-To: <4EC54ABA.6050607@redhat.com>

Am 17.11.11 18:56, schrieb Eric Blake:
> On 11/17/2011 09:17 AM, Heiko Gerstung wrote:
>> What this tiny patch does:
>> - shift does not return a critical error when no arguments are left, it simply does nothing
> This came up in the Austin Group (the folks in charge of POSIX), and the
> consensus there was that dash is compliant (POSIX says that the problem
> is with the script, not the shell, if you call shift with too few
> positional parameters set; and that you should rewrite your script to
> avoid tickling unspecified behavior).
>
> http://austingroupbugs.net/view.php?id=459
Thanks for providing the link. I disagree with POSIX ;-) in this 
respect. Since shift often deals with user input (parameters provided 
when invoking a script) it is not really foreseeable if a certain number 
of parameters exists when shift comes to the party. I will try to 
rewrite my scripts, but it is a PITA to do so (as all of us most 
probably know) and if it is not really a POSIX violation to allow it, I 
see no benefit from not allowing it. But hey, that's just me.

>
>> - "[[" works exactly as "["
> Wrong.  [[ is NOT exactly like [.  And the Austin Group is currently
> considering a proposal to add [[ to the shell (if that is done, then
> dash will HAVE to implement it as specified by POSIX; but the jury's
> still out on whether the proposal will be accepted):
>
> http://austingroupbugs.net/view.php?id=375
Yep, Stefano already pointed that out. My mistake!

>> - "==" works like "="
> That same Austin Group proposal is also talking about adding [ a == b ];
> this particular addition is much less controversial than the [[
> addition, so it is likely that the proposal will be split and each
> separate addition individually balloted for inclusion.
I hope they accept it. Really a no-ressource-consuming, no existing 
script breaking thing and therefore a worthwhile addition IMHO.
>> - the variable FUNCNAME contains the name of the currently running shell function or nothing (when not inside a function)
> That's fluff - POSIX doesn't speak either way, and dash prefers to be as
> light as possible when POSIX doesn't require it, so I'm not sure if
> you'll get any enthusiastic response on this front.
I do not expect any enthusiastic responses, but I consider this a 
valuable addition for debugging large scripts with lots of functions 
usage. I have no problem if you think it's fluff, nobody is forced to 
use something she/he doesn't like.

One more thing I'd like to add is something like $SECONDS, but maybe 
with a little bit more resolution (maybe $RUNTIME representing the 
amount of milliseconds  since script invocation). Fluff as you probably 
would say ;-), but it would give me a good idea where in my (larger) 
scripts I am doing something that costs a lot of time.

Thank you for your interesting comments, that was exactly what I was 
hoping for! Got me thinking and I already have a few nice ideas how to 
rewrite parts of my scripts.

Regards,
   Heiko

  reply	other threads:[~2011-11-17 20:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-17 16:17 Dashhh Heiko Gerstung
2011-11-17 17:21 ` Dashhh Stefano Lattarini
2011-11-17 20:07   ` Dashhh Heiko Gerstung
2011-11-18 10:50     ` Dashhh Stefano Lattarini
2011-11-17 17:56 ` Dashhh Eric Blake
2011-11-17 20:40   ` Heiko Gerstung [this message]
2011-11-17 20:11 ` Dashhh Stephane CHAZELAS
2011-11-17 20:38   ` Dashhh Eric Blake
2011-11-18  8:18     ` Dashhh Stephane CHAZELAS
2011-11-17 20:46   ` Dashhh Heiko Gerstung

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=4EC57135.2030609@am-anger-1.de \
    --to=heiko@am-anger-1.de \
    --cc=dash@vger.kernel.org \
    --cc=eblake@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.