Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 朱莉娅:不带单引号的美元登录命令_Julia - Fatal编程技术网

Julia 朱莉娅:不带单引号的美元登录命令

Julia 朱莉娅:不带单引号的美元登录命令,julia,Julia,我正在尝试从Julia运行以下命令: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/.julia/v0.3/Smile/deps/downloads 当我按原样运行它时,它试图用局部变量替换$LD_LIBRARY_PATH。 当我转义$时,它会在命令周围加引号,从而使命令无效 julia> cmd = `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tim/.julia/v0.3/Smi

我正在尝试从Julia运行以下命令:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/.julia/v0.3/Smile/deps/downloads
当我按原样运行它时,它试图用局部变量替换$LD_LIBRARY_PATH。 当我转义
$
时,它会在命令周围加引号,从而使命令无效

julia> cmd = `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tim/.julia/v0.3/Smile/deps/downloads`
ERROR: LD_LIBRARY_PATH not defined

julia> cmd = `export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/home/tim/.julia/v0.3/Smile/deps/downloads`
`export 'LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/tim/.julia/v0.3/Smile/deps/downloads'`
我希望以类似以下的形式运行该命令:

run(`export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$newpath`)
如何正确处理美元符号

多谢各位


*注意:将命令直接粘贴到终端并运行它确实有效

在Julia中,backticks并不完全等同于在shell中运行相应的命令。不能使用
$
插入环境变量(尽管
$(get(ENV,“varname”和“”)
应与shell的行为匹配),并且
export
是一个内置的shell,而不是命令,因此我认为您无法运行它。此外,即使反勾号被去掉,
export
也只会更改子shell的环境,而不会更改调用进程

您应该能够从Julia中将
LD_LIBRARY_PATH
设置为:

ENV["LD_LIBRARY_PATH"] = "$(get(ENV, "LD_LIBRARY_PATH", "")):$newpath"

但如果可能,您应该避免这种情况。如果您的目的是
ccall
特定库,您可以将库路径直接传递到
ccall
,如果您不知道完整路径的前进方向,可以使用
find_library
,如您在注释中所示。如果您需要设置
LD_library_路径,因为库需要要加载其他库,我不确定是否有更好的方法,但请注意,
LD\u LIBRARY\u PATH
是特定于平台的。您可以先
dlopen
依赖库,但我还没有测试过它。

跳过它。
。=\$LD…
。不知道julia,但因为您正在执行一个外部shell来进行导出调用时,shell将解析/扩展该变量。对其进行转义可以防止这种情况发生。不,我确实尝试过对其进行转义。我会在问题中进一步说明这一点。在相关注释中,可以这样做:
global const LIB_SMILE=find_library([“libsmilejl”],[pathtoad])
而不是弄乱LD_library_路径。