我在 Notepadd++ 中创建了一个 Bash 脚本,但在 下错误地执行了EOL conversion > Windows
。然后我在 Bash 上运行它,但出现了很多问题和错误(例如,每个带有单个制表符缩进的空行都显示为一个点)。
深度检查发现cat -v
文件中存在一些类似 Windows 格式的隐藏字符,这些字符是由 Notepad++ 插入的一些隐藏的 Windows 格式字符造成的,导致文件被 bash 误解。
尽管我已经将 EOL 模式更改为 Unix,但整个文件似乎仍以 Windows 格式格式化。我现在可以删除所有制表符和回车符并重新保存,但您知道有没有一种自动将其更改为 Nix 格式的方法吗?
谢谢,
答案1
你可以尝试dos2unix将您的文件转换为 Unix 格式。
或者,在 Notepad++ 中检查编码设置为什么 - 理想情况下您需要 UTF-8(在编码选项卡中使用“转换为 UTF-8”)。
答案2
使用基本的文本操作工具很容易修复此问题。以下任何命令都可以修复您的文件:
sed:
sed -i 's/\r//' file.sh
perl
perl -i -pe 's/\r//' file.sh
tr
tr -d $'\r' < file > newfile && mv newfile file