shell编程
流程控制
if语句
1。单分支if条件语句
if[条件判断式];then.
程序
fi
或者
if [条件判断式]
then
程序
fi
else语句
else
条件不成立时,执行的另一个程序
2。多分支if条件语句
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
...省略更多条件…
else
当所有条件都不成立时,最后执行此程序
fi
case语句
case $变量名 in
值1)
如果变量的值等于值1,则执行程序1
;;
值2)
如果变量的值等于值2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
for语句
方法一
for 变量 in 值1 值2 值3 ...
do
程序
done
方法二
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
while语句和until语句
while [ 条件判断式 ]
do
程序
done
while是条件成立就执行程序,until是条件不成立就执行程序
跳出循环
break 命和continue
条件判断
正则表达式
正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、 awk、sed等命令可以支持正则表达式。 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、 find、 cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了
字符处理
排序命令sort
[root@localhost ~]# sort [选项]文件名 选项: -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型排序 -1 反向排序 -t 指定分隔符,默认是分隔符是制表符 -k n[,m] 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)
统计命令WC
[root@localhost ~]# wc [选项]文件名 选项: -l 只统计行数 -W 只统计单词数 -m 只统计字符数
字符截取或处理命令
grep命令-查找行
[root@localhost ~]# grep [选项] "搜索内容" 文件名 选项: -i:忽略大小写 -n:输出行号 -V:反向查找 --color= auto:搜索出的关键字用颜色显示
cut命令-查找列
[root@localhost ~]# cut [选项]文件名 选项: -f列号:提取第几列 -d分隔符:按照指定分隔符分割列 无法使用复杂的分隔符
printf命令-格式化打印命令
printf '输出类型输出格式’ 输出内容 类似c swk命令 # awk ‘条件1{动作1}条件2 {动作2}..’文件名
条件(Pattern) : 一般使 用关系表达式作为条件 x> 10 判断变量x是否大于10 x>=10 大于等于 x<=10 小于等于 动作(Action) : 格式化输出 流程控制语句
sed命令
sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。 [root@localhost ~]# sed [选项]“[动作]’文件名 选项: -n 一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。 -e 允许对输入数据应用多条sed命令编辑 -I 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作: a \ 追加,在当前行后添加一行或多行。添加多行时,除最后-行外,每行末尾需要用“\” 代表数据未完结。 c \ 行替换,用c后面的字符串替换原数据行,替换多行时,除最后- -行外,每行末尾需用“\”代表数据未完结。 i \ 插入,在当期行前插入一行或多行。插入多行时,除最后- -行外,每行末尾需要用“\” 代表数据未完结。. d 删除,删除指定的行。 p 打印,输出指定的行。 s 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”( 和vim中的替换格式类似)。