gpt4 book ai didi

ruby - 使用 JRuby 在 Windows 上编写 Unix 换行符

转载 作者:可可西里 更新时间:2023-11-01 13:52:28 28 4
gpt4 key购买 nike

我正在编写一个 Ruby 脚本来生成一个 Unix shell 脚本,但我无法让 JRuby 在 Windows 上编写 Unix 换行符。

我写了一个文件test.rb,其中包含:

File.open("test.sh", 'w') do |f|
f.write("#!/bin/sh\n")
f.write("echo hello\n")
end

当我使用命令 java -jar jruby-complete-1.6.5.jar test.rb 执行它时,生成的文件包含 \r\n 换行符而不是 \n 换行符。

如何强制 JRuby 使用 Unix 换行符编写文本文件?

最佳答案

我设法通过在 File.open 的参数中添加“b”来修复它

File.open("test.sh", 'wb') do |f|
f.write("#!/bin/sh\n")
f.write("echo hello\n")
end

IO class 的文档说了以下内容:

Mode |  Meaning
-----+--------------------------------------------------------
"b" | Binary file mode (may appear with
| any of the key letters listed above).
| Suppresses EOL <-> CRLF conversion on Windows. And
| sets external encoding to ASCII-8BIT unless explicitly
| specified.
-----+--------------------------------------------------------

关于ruby - 使用 JRuby 在 Windows 上编写 Unix 换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064175/

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