我是shell脚本新手。让我知道如何编写下面的senario脚本。
名为file1.txt的文件包含一些批处理执行详细信息,最后2行将包含当前日期作业的成功或失败。现在我需要搜索成功一词,然后在文件的最后两行中有当前日期。如果使用当前日期成功,则设置变量$ f1,其值为1,否则为0.如何进行?
对文件的最后2行进行采样:
Trankey|BVCFG-B|989898|success|12/01/2016|01:34:07|12/01/2016|01:36:08
|file1.txt|ct32000001dev|transform
答案 0 :(得分:0)
为当前日期静静地grep file1.txt
的最后两行。
tail -n 2 file1.txt | grep -q "success|$(date "+%d/%m/%Y")"
根据f1
是否找到模式(grep
中最后执行的命令的返回码)设置$?
:
if $? ## could replace this with the pipe line above
then
f1=1
else
f1=0
fi
最后一个很奇怪。你可能会以某种方式否定$?
中的值,但更一般地说,bash的成功是0,而不是1.(反过来说它是如何用C,C ++,Java等。)
因此,如果你使用f1
的语义,事情会变得更容易:
f1=$?