shell的if命令如何判断一个文件中所含指定字符串?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell的if命令如何判断一个文件中所含指定字符串?相关的知识,希望对你有一定的参考价值。
我想写个判断脚本,用cat /var/log/1.log显示文件中所有值,再用if命令判断显示的值中是否存在为真的字符串,比如80
1、字符串判断
1)str1 = str2 当两个串有相同内容、长度时为真 ;
2)str1 != str2 当串str1和str2不等时为真 ;
3)-n str1 当串的长度大于0时为真(串非空) ;
4)-z str1 当串的长度为0时为真(空串) ;
5)str1 当串str1为非空时为真。
2、数字的判断
1)int1 -eq int2 两数相等为真;
2)int1 -ne int2 两数不等为真;
3)int1 -gt int2 int1大于int2为真;
4)int1 -ge int2 int1大于等于int2为真;
5)int1 -lt int2 int1小于int2为真;
6)int1 -le int2 int1小于等于int2为真。
3、文件的判断
1)-r file 用户可读为真;
2)-w file 用户可写为真;
3)-x file 用户可执行为真;
4)-f file 文件为正规文件为真;
5)-d file 文件为目录为真;
6)-c file 文件为字符特殊文件为真;
7)-b file 文件为块特殊文件为真;
8)-s file 文件大小非0时为真;
9)-t file 当文件描述符(默认为1)指定的设备为终端时为真。
参考技术A grep "80" /var/1.log >/dev/nullif [ $? -eq 0 ]; then
echo "Found!"
else
echo "Not found!"
fi
用$?取上条grep命令的返回结果。
本回答被提问者采纳shell判断
退出shell脚本
exit n (n的数值自定义)
if后面跟命令,if指令会直接取命令状态的返回结果,0为真,其他数为假。
文件测试
-e filename :测试文件是否存在,单目操作符。
-f filename :测试文件是否为普通文件。
-d filename :测试指定路径是否为目录。
-r、-w、-x :测试当前用户对指定文件是否用rwx权限。
测试脚本是否有语法错误
bash -n 脚本名称
bash -x 单步执行脚本
特殊变量
$?:上一个命令状态返回值
$#:参数的个数
$*:参数列表
[email protected]:参数列表
位置变量
$1
shift:引用一个参数后,执行shift,下一个参数成为$1
练习:
写一脚本,能接受1个参数
判断该参数存在,显示“ok”,否则显示“No Such File”
练习:
给脚本传递2个参数(整数),计算和与积。
以上是关于shell的if命令如何判断一个文件中所含指定字符串?的主要内容,如果未能解决你的问题,请参考以下文章
shell中条件判断文件, 判断数值, 判断字符; 逻辑比较, test的使用