首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >达特普0.3:全局变量分配

达特普0.3:全局变量分配
EN

Stack Overflow用户
提问于 2014-07-09 13:49:34
回答 1查看 35关注 0票数 0

我在Dttape0.3的可变作业中遇到了一些问题。我有一个全局变量块,我希望一个变量引用另一个bash样式。foo=$bar赋值工作正常,但如果我试图将字符串与变量引用连接起来,则将忽略引用。

代码语言:javascript
复制
task do_it :: x=$bar f=$f {
    echo $x
    echo $f
}

global {
    foo="foo"
    bar=$foo
    cwd=/usr
    f="$cwd/bin"
}

输出:

代码语言:javascript
复制
foo
$cwd/bin

如果不用引号将赋值包装为变量f,则会得到以下异常:

代码语言:javascript
复制
ducttape tmp.tape 
ducttape 0.3
by Jonathan Clark
ERROR: Illegal character in variable name. Adding a space after the variable name may fix this error.
/path/to/tmp.tape:10
    f=$cwd/bin
      ^

我怎样才能做更聪明的可变作业?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-10 03:38:10

字符串内插(例如,“字符串中的$thing”)不支持作为全局变量和参数的右侧,在外管工作流定义中。

但是,每个任务中的命令式代码块都由bash解释,bash支持字符串内插。解决方案是将需要字符串插补的部分移动到任务块中:

代码语言:javascript
复制
task do_it :: x=$bar f=$f {
    f2="$f/bin"
    echo $x
    echo $f2
}

global {
    foo="foo"
    bar=$foo
    cwd=/usr
    f=$cwd
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24655501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档