使用ruby实现这样的功能
本帖最后由 CU达人 于 2012-02-01 20:54 编辑有个文件,如下所示:
test@test ~: cat tmp
/dev/sda3
/dev/mapper/vg_genius-lv_home
想要使用ruby来实现 对里面的目录统一执行"ls"命令,
类似于:
test@test ~: ls /dev/sda3/dev/mapper/vg_genius-lv_home
/dev/mapper/vg_genius-lv_home/dev/sda3
以下是我自己写的,仅仅是对每一行进行"ls" ,这样做的效率不高.
如何改善呢?
各位达人们,帮看看,谢谢....
#!/usr/bin/ruby
#Example -Read file and run "ls" commmand
#Read from the file
file = File.new("tmp", "r")
while ( line = file.gets)
cmd = `ls #{line}`
puts cmd
end
你这得开多少进程啊 思路应该是这样才对:
先把命令字串做成 ls dir1 dir2 dir3 .. 的形式,然后再用system来执行。
而不是在while里面循环调用 ls#!/usr/bin/ruby
lines = File.new("tmp", "r").lines.map{|line| line.strip }
system "ls #{lines.join(" ")}" 学习学习:lol
页:
[1]