一个liunx命令题目引发的对shell的回顾
来源:互联网 发布:还原数据库找不到文件 编辑:程序博客网 时间:2024/06/18 13:13
原题回顾:打印当前文件夹下所有的.txt文件的最后一行到新文件newFile.txt中
其答案最后解答如下
#!/bin/bashfor file in `ls .`doif [ -f $file ] && [[ $file =~ .*\.txt ]]thentail -1 $file >> newFile.txtfidone
在实现的过程中遇到了一些问题,也是一些重要的知识点。
shell脚本的头部加上bash所在的位置
如#!/bin/bash
使用for遍历一个命令返回的列表
可以使用**`**符号包围一个命令来获取其返回值,如
ls .`返回当前目录下所有的文件(包括目录),for循环取得其下所有的文件名称。
for的基本语法格式是
for variant in `cmd`dovariant do sth.done
使用if语句进行判断变量的值
引用变量的值使用$variant,其中if语句的格式为
if conditionthen do sth.elif condition do sth.else do sth.fi
condition可以用test condition,或者[ condition ]或者[[ condition ]]注意方括号condition左右都有空格,其中[[]]可以直接使用>,<等符号,而[]能够使用的符号比较少。
在[[]]condition中使用正则表达式进行匹配,例如[[ $file =~ .*.txt ]],匹配文件名后缀名为txt的文件,注意=~符号的前后也要右空格,并且正则表达式是不加引号的,如果要加,前面的变量也要加上。
正则表达式.*代表任意一串字符,*是代表前面的字符重复0-1次而已。^pattern
[ -f $file ]代表文件是一个文件而不是目录,两个表达式可以用&&,||连接
读一个文件的最后一行
tail -number file显示文件的后几行
head -number file显示文件的前几行
重定向符号
单个>代表重定向到文件,但是会覆盖原来的内容,两个>>代表后来添加
阅读全文
0 0
- 一个liunx命令题目引发的对shell的回顾
- 一个c++题目引发的思考
- 一个shell脚本引发的(tomcat)血案
- liunx的管道命令
- 常用的liunx命令
- liunx的awk命令
- 一个简单的小题目引发的血案
- 一个枚举算法题目引发的Qt小游戏
- 一个shell脚本引发的对于分号的使用说明
- 一个shell脚本引发的对于分号的使用说明
- liunx下的解压缩命令
- 我的liunx命令集合
- 查看liunx版本的命令
- liunx的基础命令-02
- liunx的基础命令-03
- 一个问题引发的对类成员指针的思考
- 一个异常引发的对Hashtable和HashMap的思考
- 从一个demo引发的对import、require的思考
- php+layui创建表格使用实例
- 面试OR笔试16——1的个数
- Spyder在debug过程中会卡死
- 二级指针作为函数参数传递初始化的一点总结
- soj2427: Daizi's path system_最短路Floyd
- 一个liunx命令题目引发的对shell的回顾
- HDU6178 Monkeys
- 五分钟理解一致性哈希算法(consistent hashing)
- 12.c++调用Lua函数
- HDU
- Varnish后端主机的健康状态检查
- 利用Pythonj进行数据分析学习笔记——第五章 pandas入门
- 洛谷 P2163 [SHOI2007]Tree 园丁的烦恼
- view.post执行时机以及可能产生的内存泄露问题