在ruby中运行linux命令

Run linux command in ruby

我正在做以下的工作……

1
2
3
4
   if"ps | grep -e file" then
      true;
   else
      false;

我需要做什么才能使if语句中的字符串n执行列出的linux命令?


只需使用system("command")。如果命令成功执行,它将返回true。

编辑再读一遍你的问题,我相信你要找的是:

1
2
3
4
5
if `ps | grep -e file`.empty? # no matches
  true
else
  false
end


这里已经有人问过:从Ruby调用shell命令

简单的答案是

1
2
3
4
5
if `ps | grep -e file` then
    true
else
    false
end


不用打电话给grep。打电话给ps,让ruby找到你想要的东西。

1
2
3
4
5
if `ps`["file"]
  ...
else
  ...
end

您可以这样运行Linux命令

1
`echo"done"`

这将把done打印为输出。


Linux PS有一个-c开关来检查特定的程序名:

1
2
3
4
if"ps -C file" then
   true;
else
   false;

但是-如果你有一个像

1
if (predicate) then true; else false;

它应该和

1
(predicate)