Запустите команду Linux в ruby - PullRequest
       16

Запустите команду Linux в ruby

1 голос
/ 09 февраля 2011

Я пытаюсь сделать следующее ..

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

Что мне нужно сделать, чтобы строка n в операторе if выполнила перечисленную команду linux?

Ответы [ 5 ]

8 голосов
/ 09 февраля 2011

Просто используйте system("command"). Он вернет true, если команда была успешно выполнена.

EDIT Просто прочитайте ваш вопрос еще раз, и я считаю, что вы ищете это:

if `ps | grep -e file`.empty? # no matches
  true
else
  false
end
3 голосов
/ 09 февраля 2011

это уже было задано здесь: Вызов команд оболочки из Ruby

Простой ответ будет

if `ps | grep -e file` then
    true
else
    false
end
1 голос
/ 09 февраля 2011

Не нужно звонить grep. Просто позвоните ps и позвольте Руби найти то, что вы хотите.

if `ps`["file"]
  ...
else
  ...
end
0 голосов
/ 30 марта 2015

Вы можете запустить свою команду Linux следующим образом:

`echo "done"`

Это выведет done как вывод.

0 голосов
/ 24 марта 2012

Linux ps имеет ключ -C, чтобы проверить конкретное имя программы:

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

однако - если у вас есть конструкция типа

if (predicate) then true; else false; 

, она должна быть такой же, как

(predicate) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...