2016-06-14 2 views
0

Я пытаюсь выполнить подстановку переменных в SCons, за которой сразу следуют символы, которые могут быть частью имени переменной. Если VARIABLE='first' Я хочу, чтобы "$VARIABLE.name" расширился до first.name вместо того, чтобы поднимать ошибку. $(VARIABLE).name и ${VARIABLE}.name, похоже, не работают. Я пропустил что-то очень очевидное?В SCons, как вам избежать переменной замены?

+0

Пожалуйста, добавьте простой MWE к вашему вопросу, вместе с полным дословным выводом ошибок ... тогда я мог бы быть в состоянии помочь вам в дальнейшем. – dirkbaechle

ответ

0

Это фигурные скобки. В частности, также возможно использовать доступ к атрибутам в подстановке переменных.

SConstruct:

class Bag: 
    def __init__(self, d): 
     self.__dict__ = d 

env = Environment(FOO='foo', BAR=Bag({'baz':'quux'})) 

env.Command('dummy1', None, 'echo ${FOO}.bar') 
env.Command('dummy2', None, "echo $BAR.baz") 

Выходы

scons: Building targets ... 
echo foo.bar 
foo.bar 
echo quux 
quux 
scons: done building targets. 
+0

Не уверен, что вызывало проблему с {} раньше. Наверное, просто опечатка. – joeforker

+0

Если это решение, то отметьте его ответом? – bdbaddog

Смежные вопросы