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

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

概述参见英文答案>Cangrepreturntrue/falseoraretherealternativemethods                                    6个我有一个二进制文件重新包装android内核(而不是mkbootimg).我正在编写一个脚本来自动化该过程.我不希望屏幕上有任何

参见英文答案 > 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是脚本的最后一行,你甚至不需要做任何事情……

总结

以上是内存溢出为你收集整理的shell – 如果从文件匹配模式,如何返回0?全部内容,希望文章能够帮你解决shell – 如果从文件匹配模式,如何返回0?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1111878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存