-2

我不会在 Linux 服务器上用 Ruby 编写一些脚本。我需要来自服务器的统计数据,而且我是 Ruby 的初学者。

我对 Linux 命令有问题,因为如果我使用 exec 来使用 Linux 命令,我的程序就会没有错误。

disks = ["sda", "sdb"]

代码:

disks.each do |disk|
  puts "disk test start"
  exec "smartctl -a /dev/#{disk} > /tmp/sestavy/#{disk}"
  puts "disk test end"
end

输出:

[root@banan sestavy]# ruby test.rb
disk test start
[root@banan sestavy]#

谢谢洪扎

4

2 回答 2

1

当您使用exec时,它会将当前进程替换为您要执行的进程。所以它不会返回到您的 Ruby 脚本。有关shell 执行的不同方法,请参阅此说明。

于 2013-07-26T12:16:56.767 回答
1

这就是它的exec作用:它用一个新的程序替换当前正在运行的程序。这不是 Ruby 特有的,它在 shell、C 和几乎任何其他环境中的工作方式都是一样的。

于 2013-07-26T12:17:09.647 回答