Re: trap DEBUG and $_
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 $_
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 $_
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!