gpt4 book ai didi

bash - 在 Windows 上开发但在 UNIX docker 容器上运行时出现行尾问题

转载 作者:行者123 更新时间:2023-12-05 00:44:53 34 4
gpt4 key购买 nike

我的团队正在构建我们的第一个基于 docker 的 .NET 应用程序,并编写了一个 bash 脚本,该脚本作为构建过程的一部分运行(来自 dockerfile)。我们都在 Windows 10 机器上。

当 bash 脚本运行时,它会抛出一个错误:/bin/bash^M: bad interpreter: No such file or directory.

根据我的研究,这似乎是因为行尾是 Windows 行尾,而不是基于 UNIX。我可以通过使用 Notepad++ 转换结尾来解决这个问题,并且脚本运行良好。但是,当我进入 SourceTree 查看已更改的文件时,它会短暂显示为已更改的文件(有一些东西说它无法检测到更改)。一旦我点击了暂存文件按钮,它就消失了,好像没有任何更改的文件一样。

我该如何解决这个问题?我可以在 GIT 中看到行尾设置,但不确定正确的设置应该是什么。

最佳答案

使用 dos2unix将帮助您解决这个问题。 dos2unix 的作用是删除您遇到的隐藏 windows 字符 (^M)。

Windows-based text editors put special characters at the end of linesto denote a line return or newline. Normally harmless, someapplications on a Linux server cannot understand these characters andcan cause the service to not respond correctly.

如果你的 linux 机器上还没有 dos2unix:

安装dos2unix

apt install dos2unix

对有问题的文件运行 dos2unix

dos2unix your_problematic_file.txt

关于bash - 在 Windows 上开发但在 UNIX docker 容器上运行时出现行尾问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65320180/

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