Erlang Escript:设置相对于脚本目录的代码路径
当我尝试在一个带有-pz的escript中设置相对代码路径时,如下所示Erlang Escript:设置相对于脚本目录的代码路径,erlang,erlang-escript,Erlang,Erlang Escript,当我尝试在一个带有-pz的escript中设置相对代码路径时,如下所示 #!/usr/bin/env escript %% -*- erlang -*- %%! -pz ../dir-of-some-beams 该路径是相对于运行escript的目录进行解释的,这使得它无法设置相对于脚本位置的路径 我目前的“变通方法”是使用绝对路径,这很烦人,因为所有这些都是存储库的一部分,我不希望它依赖于位置 那么,如何设置相对于escript所在目录的代码路径呢?我自己刚刚发现: 在main的开头添加如下
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pz ../dir-of-some-beams
该路径是相对于运行escript的目录进行解释的,这使得它无法设置相对于脚本位置的路径
我目前的“变通方法”是使用绝对路径,这很烦人,因为所有这些都是存储库的一部分,我不希望它依赖于位置
那么,如何设置相对于escript所在目录的代码路径呢?我自己刚刚发现: 在main的开头添加如下代码:
true = code:add_pathz(filename:dirname(escript:script_name())
++ "/../dir-of-some-beams"),
我建议总是使用这些code
函数测试true
,因为它很容易键入code:add_pathsz
,它需要一个字符串列表,并且总是返回ok
,即使只传递一个字符串,但它不会将代码路径设置为单个目录(顺便说一句,这是非常烦人的行为)