2011-02-09 150 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作爲輸出。