GitHub Actions执行echo "$ABC" >> repo/abc报目录不存在错误如何解决
GitHub Actions 目录不存在报错问题解答
问题诱因
- 重定向操作符
>>仅支持自动创建不存在的目标文件,无法自动创建路径中缺失的父级目录。执行echo "$ABC" >> repo/abc时,当前工作路径下的repo/目录不存在,因此直接触发目录不存在报错,和abc文件本身是否存在无关。 - 相同操作在其他仓库可正常运行的原因是:对应仓库的工作流在执行该写入命令前,已经通过代码拉取、手动创建等操作完成了
repo/目录的初始化,父目录存在时重定向即可正常创建并写入abc文件。
修复方案
执行写入命令前先确保父级目录存在即可,可选两种常用实现方式:
- 方案1:用
mkdir -p提前创建目录,-p参数可避免目录已存在时报错,适配所有场景:mkdir -p repo echo "$ABC" >> repo/abc - 方案2:用
install命令一步完成目录创建与空文件初始化,适合需要同时指定文件权限的场景:install -D /dev/null repo/abc && echo "$ABC" >> repo/abc
内容的提问来源于stack exchange,提问作者qwerty
相关产品推荐
相关产品推荐

