工作中遇到的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、正则表达式


0 0
原创粉丝点击