Re: trap DEBUG and $_

2015-10-12 Thread Geir Hauge
On Mon, Oct 12, 2015 at 07:24:00AM +0200, isabella parakiss wrote:
> On 10/11/15, Dan Stromberg  wrote:
> > Is there a way of outputting a datestamp to shell stderr at the _beginning_
> > of the execution of a command, that won't wipe out $_?
> >
> > I use $_ quite a bit for the last argument to the previous command,
> > interactively.  And I'd like to datestamp all my commands. Datestamping
> > after with $PS1 is easy, but datestamping before is a little harder.
> >
> > I've tried using:
> >
> >function preexec { if tty -s; then echo "$(tput smso)cmd started $(date
> > +%Y\ %a\ %b\ %d\ %r)$(tput rmso)"; fi; }
> >trap preexec DEBUG
> >
> > ...but as you might suspect, I'm finding that $_ is always "preexec" with
> > this enabled.
> >
> > Any suggestions?
> >
> > Thanks!
> >
> trap '__=$_; preexec; : "$__"' DEBUG

And since the preexec function ignores its arguments, it can be
shortened to:

trap 'preexec "$_"' DEBUG

-- 
Geir Hauge



Re: trap DEBUG and $_

2015-10-11 Thread isabella parakiss
On 10/11/15, Dan Stromberg  wrote:
> Is there a way of outputting a datestamp to shell stderr at the _beginning_
> of the execution of a command, that won't wipe out $_?
>
> I use $_ quite a bit for the last argument to the previous command,
> interactively.  And I'd like to datestamp all my commands. Datestamping
> after with $PS1 is easy, but datestamping before is a little harder.
>
> I've tried using:
>
>function preexec { if tty -s; then echo "$(tput smso)cmd started $(date
> +%Y\ %a\ %b\ %d\ %r)$(tput rmso)"; fi; }
>trap preexec DEBUG
>
> ...but as you might suspect, I'm finding that $_ is always "preexec" with
> this enabled.
>
> Any suggestions?
>
> Thanks!
>
trap '__=$_; preexec; : "$__"' DEBUG

---
xoxo iza



trap DEBUG and $_

2015-10-11 Thread Dan Stromberg
Is there a way of outputting a datestamp to shell stderr at the _beginning_
of the execution of a command, that won't wipe out $_?

I use $_ quite a bit for the last argument to the previous command,
interactively.  And I'd like to datestamp all my commands. Datestamping
after with $PS1 is easy, but datestamping before is a little harder.

I've tried using:

   function preexec { if tty -s; then echo "$(tput smso)cmd started $(date
+%Y\ %a\ %b\ %d\ %r)$(tput rmso)"; fi; }
   trap preexec DEBUG

...but as you might suspect, I'm finding that $_ is always "preexec" with
this enabled.

Any suggestions?

Thanks!