Ruby 有什么方法可以同步这个吗?

Ruby 有什么方法可以同步这个吗?,ruby,Ruby,ruby中是否有同步的exec?我尝试了下面的代码,当我打开文件时,我什么也没有得到,这可能是因为exec没有完成文件的编写 exec "sort data.txt > data.sort" File.foreach("data.sort") { |line| puts line} Ted将当前进程替换为您正在执行的进程;运行exec之后,什么都没有!您可能需要system。exec将当前进程替换为您正在执行的进程;运行exec之后,什么都没有!你可能想要系统。你要找的是系统,而不是ex

ruby中是否有同步的exec?我尝试了下面的代码,当我打开文件时,我什么也没有得到,这可能是因为exec没有完成文件的编写

exec "sort data.txt > data.sort"
File.foreach("data.sort") { |line| puts line}

Ted将当前进程替换为您正在执行的进程;运行
exec
之后,什么都没有!您可能需要
system

exec
将当前进程替换为您正在执行的进程;运行
exec
之后,什么都没有!你可能想要
系统

你要找的是
系统
,而不是
exec
。但是,如果使用返回命令输出的backticks,则要容易得多

puts `sort data.txt`
如果需要迭代,则可以直接迭代返回值:

sorted = `sort data.txt`
sorted.each do |line|
  puts line
end
甚至:

`sort data.txt`.each do |line|
  puts line
end

您正在查找的是
系统
,而不是
exec
。但是,如果使用返回命令输出的backticks,则要容易得多

puts `sort data.txt`
如果需要迭代,则可以直接迭代返回值:

sorted = `sort data.txt`
sorted.each do |line|
  puts line
end
甚至:

`sort data.txt`.each do |line|
  puts line
end

您确定这是因为这个原因,而不是因为命令无法执行吗?我对Ruby了解不多,但我非常怀疑
exec
不能完成。你确定这是因为这个原因,而不是因为命令一开始就无法执行吗?我对Ruby了解不多,但我非常怀疑
exec
是否被允许完成。