gpt4 book ai didi

bash - 如何在 Google Cloud Build 步骤中使用之前从 bash 脚本文件中删除所有 CR (\r) 字符?

转载 作者:行者123 更新时间:2023-12-04 19:00:14 24 4
gpt4 key购买 nike

我的cloudbuild.yaml中有一个步骤处理 Ubuntu 镜像中的 bash 脚本文件的文件。如果文件在 Linux 中编辑它工作得很好,但如果在 Windows 中编辑它会失败,因为 Windows 文本编辑器通常使用 CRLF 处理 EOL,而不是 LF。

- name: 'ubuntu'
args: ['bash', './my-script.sh']

脚本中的命令之一创建 my-folder .我希望为每个构建创建该文件夹,但在 Windows 中最后一次编辑脚本时它会失败并显示以下消息(请注意 EOL 处的 \r):

mkdir: 无法创建目录 './my-folder/\r': 没有这样的文件或目录

我该如何改进 cloudbuild.yaml摆脱这个?

最佳答案

假设这是 Ansible,您可以使用 shell模块将文件转换为 unix 格式。请参见下面的示例:

- name: Execute dos2unix on several files
shell: dos2unix “{{ scripts_dir }}/*.sh"
args:
chdir: "/home/yourdir/"

这应该将脚本转换为 unix 格式。然后,您可以像使用 Ansible 一样执行脚本。

编辑
如果您没有可用的 dos2unix 实用程序,您可以在执行之前使用 Ansible 安装它:
- name: Install dos2unix
apt:
name: dos2unix
state: present

关于bash - 如何在 Google Cloud Build 步骤中使用之前从 bash 脚本文件中删除所有 CR (\r) 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57351245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com