位置: 编程技术 - 正文
推荐整理分享bash脚本编程学习之算术运算与文件查找(bash脚本语法),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:bash脚本语法,bash shell脚本编程经典实例(第2版),bash脚本编写,编程bash脚本实现以下功能,bash脚本语法,编程bash脚本实现以下功能,编程bash脚本实现以下功能,编程bash脚本实现以下功能,内容如对您有帮助,希望把文章链接给更多的朋友!
算术运算
相对于其他编程语言来说在bash里面不能直接以变量加上变量的形式来表现;比如我们先声明两个变量num1和num2然后再做运算。
这里我们显示的结果直接为2+3只是做了变量的替换,而不是做两个变量的加法运算;在bash里面变量默认是以字符串类型来存储的;就算我们在这里声明的这两个变量为整数也不会做运算;declare命令-i可以声明我们定义的变量为整型bash也只会做变量替换;
对于bash来说要做算数运算必须使用特殊的算术运算格式:
1.使用let命令;
例如
这里不会显示任何数据let命令默认是不会输出结果至屏幕的;所以我们这里需要做变量赋值;将$num1+$num2的运算后的值,赋值个另外一个变量sum;
2.算术运算表达式用[]直接赋值给一个变量;这里可以赋值也可以直接使用
也可以做赋值;
3.使用两个小括号和[]用法相似
4.使用expr命令进行运算;将变量和运算符做参数传递给expr做运算;
注意这里既然是作为命令的参数运算的那个参数之间需要空格;
bash的运算符有+,-,,/,*(次方),%(取模)
乘法符号在bash里面有特殊含义,所以在有些场景里面需要使用转义符
文件查找
在文件系统上查找符合条件的文件可使用的命令有:locate,find
locate
文件查找命令,其工作原理是依赖于事先构建好的索引库.系统性的历遍文件系统的所有文件路径下的文件来构建这个库,用户在查找文件的时候不是直接去历遍目标路径而是直接来搜索这个索引库;以节省系统资源;但是我们手动去更新索引库的时候会消耗大量资源;
他的工作特性是:查找熟读快,模糊查找,非实时查找;
手动更新索引库updatedb
find命令
实时查找工具,通过遍历指定的起始目录下文件系统层级结构完成文件查找;与前面locate不同的是find是属于实时查找,可以指定搜索目标的起始路径,默认的是当前目录;find的匹配条件是精确查找,可以根据文件名,大小,类型,从属关系,权限等;而且可以对符合条件的文件作出删除等操作,默认的是输出至标准输出;
工作特性:查找速度略慢;精确查找;实时查找
fnind:
查找条件;
根据文件名查找:
pattern支持glob风格的通配符;
根据文件从属关系查找:
根据文件类型找找:
根据文件的大小查找:
根据时间戳查找:
根据权限查找
组合测试:
处理动作:
练习:
1、找出/tmp目录下属主为非root的所有文件;
2、找出/tmp目录下文件名中不包含fstab字符串的文件
3、找出/tmp目录下属主为非root,而且文件名不包含fstab字符串的文件;
1、查找/var目录下属主为root,且属组为mail的所有文件或目录;
2、查找/usr目录下不属于root, bin或hadoop的所有文件或目录;用两种方法
3、查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录;
4、查找当前系统上没有属或属组,且最近一周内曾被访问过的文件或目录;
5、查找/etc目录下大于1M且类型为普通文件的所有文件;
6、查找/etc目录下所有用户都没有写权限的文件;
7、查找/etc目录至少有一类用户没有执行权限的文件
8、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件;
总结
标签: bash脚本语法
本文链接地址:https://www.jiuchutong.com/biancheng/371509.html 转载请保留说明!友情链接: 武汉网站建设