meta variable substitution

F

Felipe Contreras

Hi,

I'm creating a meta script that can generate both a shell script and a
Makefile. I want the script to be human readable, so I don't want to
substitute all the variables, so $(top_srcdir) =
"/my/obsenely/huge/directory/name" doesn't get substituted in for
example $(srcdir) = $(top_srcdir)/foo.

The problem is that bash doesn't use the same syntax for variable substitution.

I guess the easiest thing to do is just s/$()/${}/ but I was wondering
if there's a better way to do that.

Since I know Rubyists can always find better ways to write code I
decided to ask here.

Is there a better way to implement meta variable substitution?

Best regards.
 
R

Robert Dober

Hi,

I'm creating a meta script that can generate both a shell script and a
Makefile. I want the script to be human readable, so I don't want to
substitute all the variables, so $(top_srcdir) =
"/my/obsenely/huge/directory/name" doesn't get substituted in for
example $(srcdir) = $(top_srcdir)/foo.

The problem is that bash doesn't use the same syntax for variable substitution.

I guess the easiest thing to do is just s/$()/${}/ but I was wondering
if there's a better way to do that.

Since I know Rubyists can always find better ways to write code I
decided to ask here.

Is there a better way to implement meta variable substitution?
Are you parsing the files? I had the impression that you are
generating them. In that case I would just generate the variable names
rather late and somehow factorize
the code into

def var_name name
"${#{name}}"
end

def var_name name
"$(#{name})"
end

if this polymorphic approach is not suitable for your design an if
statement shall do.

HTH
Robert
 
F

Felipe Contreras

Are you parsing the files? I had the impression that you are
generating them. In that case I would just generate the variable names
rather late and somehow factorize
the code into

Yeah, I'm generating them.
def var_name name
"${#{name}}"
end

def var_name name
"$(#{name})"
end

if this polymorphic approach is not suitable for your design an if
statement shall do.

A polymorphic approach is fine, but I want this in my code:

foo="<var_start>var_name<var_end>/bar"

So you are suggesting something like:

foo="#{pseudo_var_name}/bar"

Right?
 
M

mortee

Felipe said:
A polymorphic approach is fine, but I want this in my code:

foo="<var_start>var_name<var_end>/bar"

So you are suggesting something like:

foo="#{pseudo_var_name}/bar"

Right?

Do you really want such a XML-like verbose syntax?

Actually, I'm not sure what exactly you want to achieve as output, using
what syntax. Could you give some excamples?

mortee
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top