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条件的正确语法是什么?
答案 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