使用环境变量的eval表达式

时间:2017-09-04 14:19:52

标签: bash shell julia

版本0.6

我想在环境变量中使用julias -e(val)选项。我怎么能这样做?

示例:

y=10
echo $y
julia -e 'println($y)'
按预期,回声有效。但朱莉亚线不起作用。 ERROR: unsupported or misplaced expression $。现在我该如何做这项工作?

我用ENV [“y”]尝试了它,但它找不到变量。

2 个答案:

答案 0 :(得分:3)

这个问题并不是真正与朱莉娅有关,而是与贝壳有关。 shell不会替换由'(单引号)包围的字符串中的环境变量,而是用双引号字符串替换它们(由"包围)。所以解决方案就是:

julia -e "println($y)"

如果您想在Julia表达式中使用$符号或"本身,问题会变得更加复杂 - 因为这些符号记录了转义规则。例如,见:

答案 1 :(得分:2)

您也可以使用ENV变量。环境变量是not available to subprocesses unless they are exported。所以修改你的代码,

export y=10
echo $y
julia -e 'println(ENV["y"])'

会正常工作。