如何在GitHub Actions的Elixir脚本中向环境变量指定文件追加内容?
在Elixir中实现GitHub Actions输出值的写入
你之前的尝试都没命中核心逻辑:
IO.puts仅会把字符串输出到控制台,不会执行命令或写入文件;System.cmd默认不通过shell解析重定向符号,所以>>会被当成echo的参数,无法实现追加写入文件的效果。
推荐方案:用Elixir原生文件操作(更高效安全)
直接用Elixir内置的文件函数完成追加写入,不需要依赖shell,还能避免路径特殊字符的转义问题:
# 获取环境变量中的文件路径 output_file = System.get_env("GITHUB_OUTPUT") # 以追加模式写入内容,末尾加换行符保证格式正确 File.write(output_file, "key=value\n", [:append])
备选方案:通过shell命令实现
如果一定要用shell逻辑,需要让System.cmd调用shell来解析重定向语法:
output_file = System.get_env("GITHUB_OUTPUT") System.cmd("bash", ["-c", "echo 'key=value' >> #{output_file}"])
内容的提问来源于stack exchange,提问作者djfinnoy
相关产品推荐
相关产品推荐

