Я пытаюсь сделать следующее ..
if "ps | grep -e file" then true; else false;
Что мне нужно сделать, чтобы строка n в операторе if выполнила перечисленную команду linux?
Просто используйте system("command"). Он вернет true, если команда была успешно выполнена.
system("command")
EDIT Просто прочитайте ваш вопрос еще раз, и я считаю, что вы ищете это:
if `ps | grep -e file`.empty? # no matches true else false end
это уже было задано здесь: Вызов команд оболочки из Ruby
Простой ответ будет
if `ps | grep -e file` then true else false end
Не нужно звонить grep. Просто позвоните ps и позвольте Руби найти то, что вы хотите.
grep
ps
if `ps`["file"] ... else ... end
Вы можете запустить свою команду Linux следующим образом:
`echo "done"`
Это выведет done как вывод.
done
Linux ps имеет ключ -C, чтобы проверить конкретное имя программы:
if "ps -C file" then true; else false;
однако - если у вас есть конструкция типа
if (predicate) then true; else false;
, она должна быть такой же, как
(predicate)