我有一个重新包装android内核的二进制文件(不是mkbootimg)。 我正在编写一个脚本来自动化该过程。
我不想在屏幕上显示任何输出。所以我将输出重定向到名为foo.log的文件。
我当前的工作文件夹是data/local/working/
。
命令是 - kernel_make "$zImage" "$ramdisk" "$cmdline" "$image" &> data/local/working/foo.log
我要做的是,如果输出的最后一行(foo.log)是这个 -
"targed file $1 is patched sucesfully, enjoy new kernel"
然后返回0并退出。否则返回1并退出。
我尝试使用grep,但由于我是命令行的新手,所以不要以正确的方式做任何事情。
如果需要更多内容,请随时询问..
答案 0 :(得分:1)
它的常见用法是grep -q 'pattern'
,它不会生成任何输出,但您可以检查命令的返回值以确定是否找到了模式。见这个例子:
kent$ echo "foo"|grep -q bar
kent$ echo $?
1
kent$ echo "bar"|grep -q bar
kent$ echo $?
0
希望这就是你要找的东西。
要提取最后一行,您可以使用tail
命令。
事实上,您也可以一次性使用awk
:
..cmd with..output|awk 'END{if (!/pattern/)exit 1}'
然后您可以查看$?