2017-01-28 9 views

ответ

3
local result = os.execute("pgrep -x foo") 
if result ~= true and result ~= 0 then 
    -- My lines here (no such process) 
end 
+0

@JoeC Что-то подсказывает мне, Егор уже некоторое время;) –

+0

могли бы вы объяснить, почему вы используете два условия, пожалуйста? Я думаю, что ты за правильным ответом, но я не понимаю его полной части. – xvlaze

+0

@xvlaze - 'os.execute' возвращает разные результаты для Lua [5.1] (https://www.lua.org/manual/5.1/manual.html#pdf-os.execute) и [5.2 +] (https: //www.lua.org/manual/5.2/manual.html#pdf-os.execute). Условие 'result ~ = true и result ~ = 0' работает повсеместно. –

1

Может быть, попробуйте проверить на nil:

if os.execute('pgrep -x foo') == nil then 
    print('empty') 
end 

Если вы не хотите, чтобы матч быть «точным», а затем удалите опцию -x.