当grep匹配失败时,仍然从命令打印输出

时间:2017-09-21 09:50:31

标签: ruby bash rspec

这是在一个Rakefile中我正在对命令的输出执行grep,当输出失败时,grep命令打印出它查找的语句之前和之后的输出。但是当它成功时它不打印任何输出,只是“Rspec成功”。即使grep匹配不成功,我也需要打印整个输出。

system( "cd site-modules/profiles && rspec | grep -A 1000 -B 1000 -Ee 'Code coverage. Must be at least [0-9]+(\.?[0-9]?[0-9]?)?% of code coverage' -e 'profiles::linux' ")

if $?.success?
  abort "Rspec FAILED"
else
  print "RSpec Succeeded"
end

1 个答案:

答案 0 :(得分:0)

要捕获shell输出,可以使用CREATE OR REPLACE FUNCTION trunc(dtval timestamp with time zone, formatter text) returns timestamp with time zone AS $body$ BEGIN RETURN date_trunc((CASE WHEN formatter IN ('MI') THEN 'minute' WHEN formatter IN ('HH','HH12','HH24') THEN 'hour' WHEN formatter IN ('DAY','DY','D') THEN 'day' WHEN formatter IN ('DDD','DD','J') THEN 'day' WHEN formatter IN ('W') THEN 'week' WHEN formatter IN ('IW') THEN 'week' WHEN formatter IN ('WW') THEN 'week' WHEN formatter IN ('MONTH','MON','MM','RM') THEN 'month' WHEN formatter IN ('Q') THEN 'quarter' WHEN formatter IN ('IYYY','IY','IY','I') THEN 'year' WHEN formatter IN ('SYYYY','YYYY','YEAR','SYEAR','YYY','YY','Y') THEN 'year' WHEN formatter IN ('CC','SCC') THEN 'year' ELSE 'day' END),dtval); END; $body$ LANGUAGE PLPGSQL SECURITY DEFINER STABLE; sigil和/或反引号:

%x