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/null
if [ $? -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判断

shell中条件判断文件, 判断数值, 判断字符; 逻辑比较, test的使用

续写vim,shell脚本基础编辑,read命令,if与case判断语句,文件查找方式,压缩与解压,

shell 如何判断一个变量是数字还是字符串?

Shell编程Shell中的流程控制之if语句

Shell条件判断语句与if