Bash 检查Lua中shell命令的输出是否为空
我正在尝试仅当pgrep-xfoo的输出为空时激活一些Lua行。我尝试了以下方法:Bash 检查Lua中shell命令的输出是否为空,bash,shell,lua,command,conditional,Bash,Shell,Lua,Command,Conditional,我正在尝试仅当pgrep-xfoo的输出为空时激活一些Lua行。我尝试了以下方法: if os.execute("pgrep -x foo") then -- My lines here end 然而,这似乎不是正确的解决方案,即使在语法上是正确的。也许可以尝试检查nil: 如果不希望匹配精确,请删除-x选项。可以尝试检查nil: 如果不希望精确匹配,请删除-x选项。local result=os.executepgrep-x foo 如果结果~=true且结果~=0,则 -我这里的台词
if os.execute("pgrep -x foo") then
-- My lines here
end
然而,这似乎不是正确的解决方案,即使在语法上是正确的。也许可以尝试检查nil:
如果不希望匹配精确,请删除-x选项。可以尝试检查nil:
如果不希望精确匹配,请删除-x选项。local result=os.executepgrep-x foo
如果结果~=true且结果~=0,则
-我这里的台词没有这样的过程
终止
本地结果=os.executepgrep-x foo
如果结果~=true且结果~=0,则
-我这里的台词没有这样的过程
终止
@JoeC告诉我Egor已经存在了一段时间;你能解释一下为什么要用两个条件吗?我认为您给出了正确的答案,但我不完全理解其中的全部内容。@xvlaze-os.execute为Lua和返回不同的结果。条件result~=true和result~=0在任何地方都有效。@JoeC告诉我Egor已经存在了一段时间;你能解释一下为什么要用两个条件吗?我认为您给出了正确的答案,但我不完全理解其中的全部内容。@xvlaze-os.execute为Lua和返回不同的结果。条件result~=true和result~=0适用于任何地方。
if os.execute('pgrep -x foo') == nil then
print('empty')
end