zsh-users
 help / color / mirror / code / Atom feed
From: Ray Andrews <rayandrews@eastlink.ca>
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: Zsh Users <zsh-users@zsh.org>
Subject: Re: convolutions
Date: Fri, 06 Nov 2015 22:33:56 -0800	[thread overview]
Message-ID: <563D9B54.9010604@eastlink.ca> (raw)
In-Reply-To: <CAH+w=7bzDJV5bLSr3=bVkAoOm-Yov3DU9w58eqr6daJFCNvw-w@mail.gmail.com>

On 11/06/2015 09:38 PM, Bart Schaefer wrote:
> On Fri, Nov 6, 2015 at 6:15 PM, Ray Andrews <rayandrews@eastlink.ca> wrote:
>> Gentlemen:
>>
>>      echo "$(eval echo "\${$(cat in_file)}")" >! out_file
>>
>> That's the best I've been able to do expanding color variables, eg. " ${red}
>> " into their native " \e[31;1m " in a file.
> Just as an aside, this is the second code example you've posted
> recently that can't possibly work in practice.  I can only assume
> you're mis-transcribing in an attempt to simplify whatever your real
> code is.
>
I did indeed edit it a bit.  Here's the pasted actual test file:



test2 ()
{
     echo "$(eval echo "\${$(cat junk1)}")" >! junk2
     cat junk2
}

... which works as advertised.
> If I understand this correctly, you have a file that contains text
> which looks like
>
>     The following ${fg[red]}text is red${reset_color} and this is not
>
> and you want to end up with the variables expanded in out_file as the
> actual escape sequences?
>
>      print -R "${(e)$(<in_file)}" >| out_file

Does the trick, thanks, it's no shorter, but much more respectable. 
print has many tricks up it's sleeve.
>
> Of course that will also replace other possible expansions that may
> appear in the text of in_file.  If you really want to replace exactly
> and only the specific references to color variables, you needs
> something like Zyx's sed expression.
Yeah, my snippet would have the same issue so that's fine.  It seems so 
laborious tho.  Too bad there wasn't some way of forcing expansions in a 
prescribed order to avoid the echoing and evaling.
>


  reply	other threads:[~2015-11-07  6:34 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-07  2:15 convolutions Ray Andrews
2015-11-07  2:49 ` convolutions ZyX
2015-11-07  4:10   ` convolutions Ray Andrews
2015-11-07  5:37 ` convolutions Mikael Magnusson
2015-11-07  6:16   ` convolutions Ray Andrews
2015-11-07  6:38     ` convolutions Mikael Magnusson
2015-11-07 15:35       ` convolutions Ray Andrews
2015-11-07 17:26         ` convolutions ZyX
2015-11-07  5:38 ` convolutions Bart Schaefer
2015-11-07  6:33   ` Ray Andrews [this message]
2015-11-07  9:32     ` convolutions Bart Schaefer
2015-11-07  9:40       ` convolutions Bart Schaefer
2015-11-07 16:09       ` convolutions Ray Andrews
2015-11-07 17:33         ` convolutions Bart Schaefer
2015-11-07 18:28           ` convolutions Ray Andrews
2015-11-07 17:17   ` convolutions Martin Vaeth
2015-11-08 15:27     ` convolutions Ray Andrews
2015-11-08 19:14       ` convolutions Bart Schaefer
2015-11-08 21:06         ` convolutions Ray Andrews
2015-11-09  8:50       ` convolutions Martin Vaeth

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=563D9B54.9010604@eastlink.ca \
    --to=rayandrews@eastlink.ca \
    --cc=schaefer@brasslantern.com \
    --cc=zsh-users@zsh.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).