- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在使用 Port.open
运行 shell 命令时设置环境变量。无论我传入什么,它都会引发错误 ArgumentError
。
port = Port.open({ :spawn_executable, "/usr/local/bin/cool" },
[:stream, :in, :binary, :eof, :hide,
{:env, [{"COOL_ENV", "cool"}]},
{ :args, ["test.js"] }])
根据 Port.open 的 Elixir 文档,它应该接受 Erlang 函数 :erlang.open_port 接受的任何参数。 Erlang 文档提到:
{env, Env} Only valid for {spawn, Command}, and {spawn_executable, FileName}. The environment of the started process is extended using the environment specifications in Env.
Env is to be a list of tuples {Name, Val}, where Name is the name of an environment variable, and Val is the value it is to have in the spawned port process. Both Name and Val must be strings. The one exception is Val being the atom false (in analogy with os:getenv/1, which removes the environment variable. (http://erlang.org/doc/man/erlang.html#open_port-2)
即使我尝试像这样直接调用 erlang 函数也会出现此错误:
:erlang.open_port({:spawn_executable, "/usr/local/bin/cool"}, [:stream, :in, :binary, :eof, :hide, {:env, [{"COOL", "cool"}] },{:args, ["test.js"]}])
如果我删除 {:env, [{...}]
参数,错误就会消失。
最佳答案
:env
选项要求名称和值都是 Erlang 字符串,这在 Elixir 中称为 charlist,并且使用单引号而不是双引号构造。
Opt =
...
{env, Env :: [{Name :: string(), Val :: string() | false}]} |
...
以下应修复错误:
port = Port.open({ :spawn_executable, "/usr/local/bin/cool" },
[:stream, :in, :binary, :eof, :hide,
{:env, [{'COOL_ENV', 'cool'}]},
{ :args, ["test.js"] }])
:args
接受 Erlang 字符串和 Erlang 二进制文件(Elixir 字符串),因此您无需更改它。
关于erlang - 尝试指定 :env in Elixir Port. 打开时出现参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222418/
这个问题已经有答案了: env-cmd error failed to locate ./.env file in gatsby? (14 个回答) 已关闭 3 年前。 我正在学习 Gatsby 教程
我正在尝试使用 mgcv-package,但 mgcv::gam-function 只返回一条错误消息 Tmean = c(1,3,10,5,7) prec = c(300,500,700,600,5
在 Laravel 6 中 Documentation Application Key的第二段是这样写的 Typically, this string should be 32 characters
我试图在创建消息时传递 sns 主题。但根据创建的变量,arn 可能会有所不同。 例如,在环境变量中,我将有 3 个人及其主题。 john = arn:xxxxxxxx sally= arn:xxxx
我开始学习 Angular2,我发现在示例中它们覆盖了配置文件中的 process.env.NODE_ENV 和 process.env.ENV 变量。此代码来自 this example 的 web
我从头开始创建了一个Kotlin原生应用程序,我得到了上面的错误。我怎么才能解决这个问题呢?这是一款简单的“Hello World”应用程序。我有其他计算机,但该错误没有出现在那里。我认为这与科南没有
我有一个 Dockerfile,我在其中设置了一些环境变量(在我运行容器时使用)。一些环境变量依赖于以前的环境变量。当我可以替换为一个变量时,我想保持干爽并避免多次对环境变量的值进行硬编码。 在这个简
我正在学习 Docker 并面临将一个 env 变量的值替换为另一个 env 变量的问题。 这是我的 Dockerfile FROM ubuntu ENV var_env=Tarun ENV comm
我正在将一个项目从 Symfony 2.3 升级到 Symfony 3.4,我对 .env 和 .env.dist 文件之间的关系有点困惑。据我了解,它们之间的关系与Symfony2中paramete
在 python 中,有没有办法从特定的 .env 文件中检索 env 变量的值?例如,我有多个 .env 文件,如下所示: .env.a .env.a ... 我在 .env.b 中有一个名为 IN
我假设我的身份验证服务无法加载配置文件,从而导致错误。我正在关注 AUTH0 上的教程。这是链接 https://auth0.com/blog/real-world-angular-series-pa
我正在使用 base.env 作为我的几个 docker 服务的 env_file。在这个 base.env 中,我有几个部分的环境变量在整个文件中重复。例如,对于三个不同的环境变量,port 和 i
我正在尝试使用 values.SecretValue() 设置我的 aws 存储桶名称。要设置 Django 的媒体 url,我过去使用过: AWS_STORAGE_BUCKET_NAME = val
我通过从PowerShell运行$env:path ="$($env:path);."来“解决”一个问题。显然,它将当前目录添加到了我的路径。请添加到哪个路径变量?在我的环境变量对话框中,我会在哪里看
我有一个很长的自定义应用程序配置文件,用于在工作站上运行的应用程序,其中一些文本元素必须在系统之间手动更改。 这个脚本是为了让我的生活更轻松 - $content = Get-Content("C:\
因为我使用docker和docker-compose而不是Homestead和任何基于Vargrant的开发解决方案,所以我想避免与laravel在.env文件的使用上发生冲突。因此,我希望larav
当我尝试最后一个例子时 perlfaq5: How-do-I-count-the-number-of-lines-in-a-file?我收到一条错误消息。我应该怎样做才能使脚本正常工作? #!/usr
我试图理解为什么当我从我的 .env 文件中明确删除或注释掉它们时,我的 Docker 容器中的 env 变量仍然出现。我是 Docker 的新手,不知道这是预期的行为还是异常。 我的系统设置方式是,
我正在使用 PHP 和 Laravel 框架,我使用 .env 来设置我的环境变量。然后我从我的 PHP 环境调用 python 脚本,并将结果返回给 PHP。我的问题是,在 Python 中设置的默
我安装了 Anaconda 并创建了一个新环境(“dell_proj”)。然后我用我的新环境在 Pycharm 中创建了一个新项目。我的期望是我只能在这个项目中使用我通过 Conda 在特定环境中安装
我是一名优秀的程序员,十分优秀!