读取文件的每一行

for line in `cat filename(待读取的文件)`
doecho $line
done

如果文本内容如下

1111
2222
3333 4444 5555

那么for循环读取,打印内容如下

1111
2222
3333
4444
5555

采用while

cat file(待读取的文件) | while read line
doecho $line
done

将打印每一行,如下

1111
2222
3333 4444 5555

删除普通空文件

当前目录下 新建 rm_empty_file.sh ,运行后删除当前目录下的空文件

#!/bin/bash

ls > filesfor file in `cat files`
doif [ ! -s $file ]thenrm -i $filefi
donerm -rf files
#!/bin/bash

for file in $(ls)
doif [ ! -s $file ]thenrm -i $filefi
done

目录可以自己任意输,所以写了下面程序rm_empty_file2.sh。没有参数 就是当前目录;输入参数目录就是参数目录;错误目录当然会有错误

#!/bin/bash
if [ $# -eq 1 ]
thendir=$1 # $1为 ./xx.sh 后面的第一个参数
elsedir=""
fi
# 目录错误?
for file in $(ls $dir)
dofiletmp=${dir}${file} #字符串连接
#       echo $filetmpif [ ! -s $filetmp ]thenrm -i $filetmpfi
done

参考:
bash shell命令行选项与修传入参数处理: http://www.jb51.net/article/48686.htm
linux shell 编程 删除空文件 : http://blog.163.com/gaga_blog/blog/static/214068175201211129020225/

查找目录下 大于100字节的文件,显示文件名和其大小

利用ls -l 命令 和 awk命令

#!/bin/bash
# 用逗号隔开文件名 和 文件大小
for files in `ls -l | awk '$5>100 {print $9","$5}'`
do
#echo $files
echo $files | awk -F , '{print $1" "$2}'
done


awk命令参考:https://linux.cn/article-3945-1.html
非常好的十道Linux shell脚本面试题:http://www.2cto.com/os/201309/241532.html

3 设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

题目解答:http://www.yjbys.com/bbs/361072.html
Linux下shell脚本判断文件相关属性:http://www.cnblogs.com/lr-ting/archive/2013/02/27/2935449.html

  • test 测试命令
  • echo $? 可以查看上一条执行命令执行是否成功
  • 这题会有还会有权限问题,因为在根目录下创建文件夹

统计c代码量

查看目录下有多少个.c 文件

进一步编写如下shell脚本 c.count.sh

#!/bin/bash                                                                     

cfiles=`find . -name "*.c"`
for file in $cfiles
do                                                                              echo $file                                                              #cat $file                                                              file_l=`cat $file | wc -l`                                              echo $file_l
done 

在目录下运行

shell算数运算
http://blog.csdn.net/taijianyu/article/details/6907288
http://oldboy.blog.51cto.com/2561410/767862
修改脚本

#!/bin/bash
sum_l=0
cfiles=`find . -name "*.c"`
for file in $cfiles
do#echo $file#cat $filefile_l=`cat $file | wc -l`#echo $file_l((sum_l=$sum_l+$file_l))
done
echo $sum_l

空行问题

shell 编程实例学习相关推荐

  1. shell编程基础(2)---与||

    shell 编程重要的应用就是管理系统,对于管理系统中成千上万的程序而言,查询某个文件名是否存在,并且获取该文件名所指代文件基本信息是系统管理员的基本任务.shell命令可以很轻松的完成这项任务. # ...

  2. 如让自己想学不好shell编程都困难?

    众所周知,shell是linux运维必备的技术,必须要掌握,但是shell语法复杂,灵活,网友掌握了语法也不知道如何应用到实际运维中,老男孩培训shell编程给所有linux运维人员带来了学好shel ...

  3. shell编程系列7--shell中常用的工具find、locate、which、whereis

    shell编程系列7--shell中常用的工具find.locate.which.whereis1.文件查找之find命令语法格式:find [路径] [选项] [操作]选项 -name 根据文件名查 ...

  4. shell 不等于_关于shell编程中的整数值比较的两种方式的简单操作实例

    谈一谈关于shell编程中的整数值比较的两种方式 Shell编程有时处理一个对象时,需要我们对对象进行测试. 只有符合要求的才采取下一步操作,这样做的好处可以避免程序出错. 这个测试的对象可以是文件. ...

  5. Linux学习(十四)---大数据定制篇Shell编程

    文章目录 一.为什么要学习shell编程 二.Shell 是什么 三.shell 编程快速入门-Shell 脚本的执行方式 3.1 脚本格式要求 3.2 编写第一个 Shell 脚本 3.3 脚本的常 ...

  6. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printfprintf的格式说明符格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印 ...

  7. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  8. Linux Shell常用技巧(十二) Shell编程

    二十三. Bash Shell编程:  1.  读取用户变量:     read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如 ...

  9. Linux Shell编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

最新文章

  1. if __name__ == __main___Python的if __name__==#x27;__main__#x27;你都懂了吗
  2. Asp.net MVC突然变慢,缓存消失的一种原因
  3. android aspectj 编译,Android AOP方案(一)——AspectJ
  4. Memcached的使用
  5. 深入浅出理解神经网络召回模型的优势
  6. 大咖聊数据,视频抢先看
  7. html5语义化标记元素_语义HTML5元素介绍
  8. php time java_java 时间戳和PHP时间戳 的转换 php time()
  9. VMware的宿主模式
  10. oracle如何快速查找,Oracle 如何快速查找和删除重复记录
  11. 手机MODEM 开发(28)--- VoLTE介绍
  12. HttpClient4文件上传
  13. Linux注册服务(chkconfig)
  14. python数据分析 制图_Python与开源GIS:数据处理、空间分析与地图制图
  15. 要闻君说:小米手机部组织架构突现大调整;河南联通重启VDC扩容工程招标;英特尔已收购Ineda Systems,剑指独显;...
  16. 芯片工程师常用英文黑话
  17. Skype for Linux下载地址
  18. python数据分析练手小项目-汽车销售偷漏纳税人识别
  19. ImportError:cannot import name ‘namedtuple‘from ‘collections‘(C:\Python\Pyth...
  20. 释放智能边缘广阔机遇,英特尔携手生态伙伴构建万物互联未来

热门文章

  1. 主流服务器虚拟化技术 xen,主流的服务器虚拟化技术包括哪些
  2. P5535 【XR-3】小道消息
  3. linux centos 7 服务器指令,Linux命令ntpdate
  4. 阿里达摩院自动驾驶负责人陈俊波离职,进军户外清洁机器人!
  5. Virtual Box Ubuntu16.04中导入SEED LABS虚拟机后无法全屏显示
  6. 元宇宙商标的致富路,断了
  7. 2019牛客多校第九场AThe power of Fibonacci(广义BM)
  8. c语言十进制数转二进制数
  9. Mac如何利用qq提取图片上的文字
  10. FLASH 透明区域抠图