Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: protect spaces and/or globs

On 2021-02-10 8:29 a.m., Peter Stephenson wrote:

As always, that depends what you're actually doing, which is a superset of
what you're telling us you're doing,
It's hard to put it briefly and still accurately.  I went down a certain path when I first got involved and it might not have been the right path nevertheless it has a certain power.  My wrappers evolve and evolve with more and more filtering and coloring
and columnizing and massaging and end up with some monstrous actual command
strings to execute.  By being able to recall the actual command, I can edit it to find some bug very quickly.  My function assembled: " grep-i -- arg arg " when what was wanted was: " grep -i -- arg arg " . Once I know where the bug is, I can figure out where it came from in my function very quickly.   So I assemble my string, save it to history (optionally) and then eval it to fire it off.  Up arrow, and voila!  I have the
guts of what my function did, available to tweak.  So:

9 /aWorking/Zsh/Source/Wk 3 $ l ,H l,*

LISTING of "l,*": all file types, INsensitive. Sorting upside down by: Mod. Time:

 11434 [2021-01-07--08:49] l,6,NO H
 10516 [2021-01-07--08:49] l,4,BUG and case now insensitive
 15988 [2021-02-03--20:06] l,51,colorize all matches if leading wildcard
 15614 [2021-02-04--16:34] l,52,bug with totals

Items found: 52
Total bytes in this directory: 3.5M
Total including subdirs: 16M

... and how did that actually happen?  " ,H " orders a write to history so up arrow and:

9 /aWorking/Zsh/Source/Wk 3 $ ls -AFrGgdt --time-style='+[%F--%H:%M]' --group-directories-first --color=always  (#i)l,* 2> /dev/null   | sed -r "s|^(.{10} {1,2}[[:digit:]]{1,2} )| |"  | egrep -v '^total' | egrep -i --color=always "^|] l,*"                      | sed -r "s/\x1b\[01;31m\x1b\[K\] /\] \x1b\[01;31m\x1b\[K/g"

... that's the actual guts of the thing.  No, I'm not insane, I just like color, prefer to remove all the permissions stuff since it it irrelevant to me, etc.  But the whole show requires the whole command to exist as a string so it can be saved and thus it needs 'eval' to fire it off ... unless I'm mistaken.

If that makes any sense.  It all works quite fine but there are these quoting issues now and then.

Messages sorted by: Reverse Date, Date, Thread, Author