我在Dttape0.3的可变作业中遇到了一些问题。我有一个全局变量块,我希望一个变量引用另一个bash样式。foo=$bar赋值工作正常,但如果我试图将字符串与变量引用连接起来,则将忽略引用。
task do_it :: x=$bar f=$f {
echo $x
echo $f
}
global {
foo="foo"
bar=$foo
cwd=/usr
f="$cwd/bin"
}输出:
foo
$cwd/bin如果不用引号将赋值包装为变量f,则会得到以下异常:
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
^我怎样才能做更聪明的可变作业?
发布于 2014-07-10 03:38:10
字符串内插(例如,“字符串中的$thing”)不支持作为全局变量和参数的右侧,在外管工作流定义中。
但是,每个任务中的命令式代码块都由bash解释,bash支持字符串内插。解决方案是将需要字符串插补的部分移动到任务块中:
task do_it :: x=$bar f=$f {
f2="$f/bin"
echo $x
echo $f2
}
global {
foo="foo"
bar=$foo
cwd=/usr
f=$cwd
}https://stackoverflow.com/questions/24655501
复制相似问题