2011-02-09 245 views
1

我尝试做以下..运行Linux命令

if "ps | grep -e file" then 
     true; 
    else 
     false; 

什么会我需要做的,使字符串n if语句执行的Linux命令中列出的?

+0

可能重复[从Ruby调用Bash命令](http://stackoverflow.com/questions/2232/calling-bash-commands-from-ruby) – 2011-02-09 15:15:28

回答

8

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

编辑 刚刚看了一遍你的问题,我相信你正在寻找的是这样的:

if `ps | grep -e file`.empty? # no matches 
    true 
else 
    false 
end 
+0

是否即将添加空?请致电,请添加结束语。 – igorw 2011-02-09 12:12:30

1

不必调用grep。只需拨打ps,让Ruby找到你想要的东西。

if `ps`["file"] 
    ... 
else 
    ... 
end 
0

Linux的PS具有-C开关,检查是否有特定的程序名称:

if "ps -C file" then 
    true; 
else 
    false; 

但是 - 如果你有一个像结构

if (predicate) then true; else false; 

它应该是一样的

(predicate) 
0

你可以运行你的李nux这样的命令

`echo "done"` 

这将打印done作为输出。