我试图让我的输出看起来像这样:
$100.00
teddy bear,$5.00
shirt,$22.75
pants,$50.35
但是,当我运行命令将输入写入文件时,格式错误:
ruby start.rb '$100.00\nteddy bear,$5.00\nshirt,$22.75\npants,$50.35'
start.rb:
input = ARGV.first
File.open('./data_files/list.txt', 'w') {|file| file.write(input)}
最终输出(在我的data_files / list.txt文件中):
$100.00\nteddy bear,$5.00\nshirt,$22.75\npants,$50.35
知道如何编写文件以便以正确的格式显示吗?
由于
答案 0 :(得分:2)
shell不会将\n
识别为常规单引号字符串中的换行符;你正在将文字反斜杠-n传递给Ruby。 (并且Ruby不像处理Ruby代码中的文字字符串那样处理输入字符串。)
如果你的shell是bash,你可以使用$'...'
ANSI字符串代替:
ruby start.rb $'$100.00\nteddy bear,$5.00\nshirt,$22.75\npants,$50.35'
否则,您可以使用文字换行符:
ruby start.rb '$100.00
teddy bear,$5.00
shirt,$22.75
pants,$50.35'