Ruby检查是否安装在if条件中

时间:2014-04-22 20:18:46

标签: ruby

a.rb的内容是:

if system("mount | grep /boot") != ""
  print "true"  # or do something
else 
  print "false" # or do something else 
end

运行此代码不会打印“true”或“false”,而是打印系统调用的输出。

]$ ruby a.rb 
/dev/sda1 on /boot type ext4 (rw)

检查if条件的正确语法是什么?

3 个答案:

答案 0 :(得分:5)

if `mount | grep /boot` != ""
  print "true"  # or do something
else 
  print "false" # or do something else 
end

答案 1 :(得分:0)

在红宝石中,反引号导致进程分叉,这是昂贵且缓慢的。相反,您可以阅读/ etc / mtab并查看阻止分叉的内容。

if File.read('/etc/mtab').lines.grep(/boot/)[0]
  # not nil, its mounted
else
  # its nil, not mounted
end

答案 2 :(得分:0)

不要使用系统调用,而是可以尝试这个(fromFile path取决于  您的操作系统,在RedHat中是/ proc / mounts):

fromFile='/proc/mounts'
toFind='/boot'
if File.readlines(fromFile).grep(toFind).size > 0
    print "true"  # or do something
else
    print "false" # or do something else 
end