解决方案:
给 grep 命令 加上 -a ;
例如 grep xxx.log ----> >>> grep -a xxx.log
缘由:
最近 将 以前写的 日志分析 脚本 从 阿里云 转移到 腾讯云上。。。。今天 一看 邮件 发现 少了 很多 内容。。。就知道 shell 脚本 出问题了。。。
出问题了。。。。。怎么办。。。。。。
如何定位问题:
1. 因为 这个 shell 是 加在 定时 任务里,并且 设置了 输出 重定向。。所以 果断 去 查看 错误 日志。。。结果 毛 都没有
2. 只有 定位 程序,错误 出现在 这一句话上
遇到 一大串 命令 通过 管道 结合 在一起的 语句 ,我们在调试的 时候 可以 将 语句 分割
1.cat "/home/log/game."${nowDate}*
2.cat "/home/log/game."${nowDate}* | grep -a "\[info\]"
3....
4...
555.
结果 在 执行 第二条 命令的时候 报错了,“ grep:Binary file (standard input) matches”
百度了一下,搞定。。。
感慨:
1.linux 系统 的 差异性 ( 腾讯云 和 阿里云 都是 debian 系统)
2.关于 shell 脚本 ,自己 还算 一个 初学者。。
反思:
到底是 什么 差异 导致的 ?
搜索了 一番 也没找到 正确答案,后来 认为 有可能是 命令的 别名 导致的。
结果 发现 不是 这么回事。。。
alias 使用
例如 vi ~/.bashrc ---》》》 加上 alias grep='grep --color=auto' 这句话,设置 grep 的 默认 参数。 ---》》source ~/bashrc
设置 之前:
设置之后: