ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell – 如果从文件匹配模式,如何返回0?

2019-08-16 17:23:53  阅读:230  来源: 互联网

标签:android shell grep kernel shell-script


参见英文答案 > Can grep return true/false or are there alternative methods                                    6个
我有一个二进制文件重新包装android内核(而不是mkbootimg).
我正在编写一个脚本来自动化该过程.

我不希望屏幕上有任何输出.所以我将输出重定向到名为foo.log的文件.

该命令是 – kernel_make“$zImage”“$ramdisk”“$cmdline”“$image”&>数据/本地/工作/ foo.log

我当前的工作文件夹是data / local / working /.
我要做的是,如果输出的最后一行(foo.log)是这样的 –

“targed file $1是sucesfully修补,享受新内核”

然后返回0并退出.否则返回1并退出.

我正在尝试使用grep,但是由于我是命令行的新手,所以不要以正确的方式做到这一点.

解决方法:

grep是要走的路,如果找到匹配则返回0.您实际上不需要输出该行,因此只需丢弃该行并使用该测试.在你的情况下,它只是

lastline=$(tail -n1 logfile)
if grep pattern <<<"$lastline" &>/dev/null; then
    echo "yay, found pattern"
else
    echo "darn"
fi

观察“here string”结构<<<它将字符串显示为grep读取的文件,并且&>它重定向标准输出和错误输出(在这种情况下重定向到null).模式可以是“享受”或其他东西.用自定义处理替换回声.

但是,如果kernel_make失败则检查kernel_make是否返回1会更有意义.无需解析用户友好的日志输出(可能会更改或不再是最后一条消息).如果是这种情况(最有可能),我就是这么做的

kernel_make [...arguments...] && echo "yay" || echo "nay"

(或if语句,如grep情况).您可能熟悉exit语句,如果失败,您可能会在表单exit 1中使用它.

如果kernel_make是脚本的最后一行,你甚至不需要做任何事情……

标签:android,shell,grep,kernel,shell-script
来源: https://codeday.me/bug/20190816/1669543.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有