工作中遇到的shell脚本知识(4)
来源:互联网 发布:楚楚街和淘宝 编辑:程序博客网 时间:2024/06/07 13:03
项目中用到的30多个脚本基本写完了,有些地方需要记录一下,后续扩展性的学习一下。
1、脚本中定义了一些函数,单独放在一个文件中,当引用时需要在脚本中source一下库文件,然后这些函数在脚本中就可用了,与linux命令一样使用。
2、case中可以把两个匹配模式放在一起,比如 R|r)
3、clear用于清空当前终端屏幕显示
4、字符串拼接,"sbc"`date +'%Y%m%d'`
5、文件比较,判断文件的属性等
-e 文件是否存在
-s 文件是否存在且不为空
-d 是否存在且为目录
-f 是否存在且为文件
-r 文件是否可读
-w 文件是否可写
-x 文件是否可执行
其他有关文件的判断还有很多,不一一列举,比如文件拥有者,组,时间比较等等。
6、date命令获取系统时间,-d可以显示指定的时间比如:date -d '-90 day' +'%Y%m%d'显示90天前的日期
7、cat /dev/null > file 清空文件内容
8、字符串比较判断,注意将字符串加“”是个好习惯,不加的话有可能会不安全
-z 字符串是否为空
-n 字符串是否不为空
还可以直接使用= != 等直接比较两个字符串的大小
9、sed -i ‘1d’ file
-i是在原文件上直接操作,1d表示删除第一行,sed后续需要好好展开看看
10、unix2dos dos2unix
将unix和dos两种文本格式互转
11、iconv转换文本的编码格式
12、awk '{print $0;exit}'
13、按行循环读取文件
while read myline
do
.....
done < $filename
14、多个判定条件时,每个[ ]只放一个,关系运算符放在外面
15、=~表示正则匹配,^表示最前面匹配,$表示最后面匹配
16、ipcs 查看进程间通信的情况,ipcs -m查看共享内存;ipcrm删除进程间通信
ipcs -m | grep betadmin | awk '$4==660' | awk '{print $2}' | wc -l
ipcs -m | grep betadmin | awk '$4==660' | awk '{print $2}' | xargs -i ipcrm -m {}
17、xargs作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题,-i指定前面的结果放到{}的位置。
18、ps -e 列出全部进程
19、set -e脚本中任一命令返回值不为零,立刻退出shell
20、case中;;表示分支结束,break跳出循环
21、nohup p >> log 2>&1 &
忽略SIGHUP挂起信号,启动某进程,标准错误输出重定向到标准输出,同时输出到log文件, &后台运行
22、kill -9 强制杀死某进程
22、wget网络下载
wget -q -t 1 -T 30 -O file url
23、模式匹配中的## %%
24、read -p “请回车以继续” value
-p参数后面跟一字符串,在字符串后面跟n个shell变量。n个shell变量用来接收从shell界面输入的字符串,当n为0时,使用默认变量REPLY接收shell界面内输入的字符串
[-p]用法:read –p “string” var1 var2…varn
输入字符串个数与变量相等时一一对应,字符串个数少时则后面的为空,多时则多余的都赋值给最后一个变量。
25、ftp -i -n IP 2>log<<EOF
user usrname passwd
bin
lcd 'dirname file'
put 'basename file'
close
bye
EOF
26、basename获取除路径外的文件名,dirname获取文件目录
27、$$当前进程ID号
28、length取字符串长度
29、正则表达式
- 工作中遇到的shell脚本知识(4)
- 工作中遇到的shell脚本知识(1)
- 工作中遇到的shell脚本知识(3)
- 工作中遇到的shell脚本知识(5)
- 工作中遇到的shell脚本知识(2)-不注意的用法
- 工作中遇到的linux 知识整理
- shell脚本中遇到密码中包含#的处理
- shell脚本的一些知识
- shell脚本遇到的需求
- shell脚本中字符串比较经常遇到的一个问题
- Shell脚本中遇到的一些细节问题
- 工作中遇到的
- 工作中实用shell脚本与语句
- [转载]Shell脚本初学者的入门知识
- 由一段shell脚本想到的知识
- 关于shell脚本变量的一些知识
- 学习shell脚本遇到的问题
- 编写shell脚本遇到的问题
- 3WordPress的内容管理
- 1017. A除以B (20)
- iOS 添加Cordova到已存在的Xcode 工程里
- HDU 2102 A计划
- 排水沟(Drainage Ditches)——最大流水题
- 工作中遇到的shell脚本知识(4)
- 【java编程】String之字符串反转
- hdu 2639 Bone Collector II 01背包问题 求第K大最优值。。
- Java之道系列:Annotation实现浅析
- 一个项目中初始化的问题
- Java NIO系列教程(二) Channel
- 关系型数据库 V.S. 非关系型数据库
- C语言及程序设计提高例程-19 越界的后果
- Spring定时任务的几种实现