On Mon, Oct 12, 2015 at 07:24:00AM +0200, isabella parakiss wrote: > On 10/11/15, Dan Stromberg <dstrombergli...@gmail.com> 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