感谢 github docs,我已经存储了多行环境变量。
- name: copy
run: |
echo 'CONTENT_ENV<<EOF' >> $GITHUB_ENV
cat README.md >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
我想得到它,但这段代码只给出一行:
- name: paste
run: echo $CONTENT_ENV > index.md
工作流程显示变量正确存储在 env 中(带空格):
您的变量已正确存储,但如果您想保留换行符,则需要添加引号:
- name: paste
run: echo "$CONTENT_ENV" > index.md
- name: test
run: cat index.md
简短的解释是,默认字段分隔符是 空白(空格、制表符和换行符),因此如果不使用引号,
echo
会将所有换行符分隔的字符串视为不同的参数。请参阅这篇文章了解更深入的解释
您可以使用这样的选项
- name: Output file
id: read-file
run: |
FILE_CONTENT="$(<${FILE_NAME})"
printf "npmrc_content<<EOF\n%s\nEOF" "${FILE_CONTENT}" >> "$GITHUB_OUTPUT"