shell 编程

正则表达式

 
shell 编程_第1张图片
 
shell 编程_第2张图片
 
shell 编程_第3张图片
 
shell 编程_第4张图片
 
shell 编程_第5张图片
 

 

字符串截取命令

 cut 命令

按列提取字符串命令

语法:cut [选项] 文件名

选项:

-f 列号: 提取第几列

-d 分隔符   按照指定分隔符分割列  默认以制表符分割

eg: cut -f 2 -d : /etc/passwd  提取/etc/passwd文件的第2列以":"分割

et: cat /etc/passwd | grep '/bin/bash' | cut -f 1,2 -d :

 

printf 命令

格式化打印命令


shell 编程_第6张图片
 
shell 编程_第7张图片
 

eg:printf %s 1  2  3  4  5  6

eg:printf '%s %s' 1  2  3  4  5  6    #两个字符作为一组字符串输出

eg:printf '%s %s %s' 1  2  3  4  5  6    #三个字符作为一组字符串输出

eg:printf '%s %s %s\n' 1  2  3  4  5  6   #两个字符作为一组字符串且换行输出

 

 awk 命令

 强大的文本分析工具
shell 编程_第8张图片

BEGIN   在执行数据读取之前先执行BEGIN后面的那个动作

END  在执行数据读取结束后执行END后面的那个动作

 

sed 命令

行编辑器命令


shell 编程_第9张图片
 
shell 编程_第10张图片
eg:sed '1,3d' read.sh  删除第1~3行的内容,不会修改文件本身

eg:sed -n '2p' sum.sh  查看sum.sh第二行的内容

eg:sed '2a nihao' sum.sh  查看sum.sh的内容,并在第2行后面加入"nihao" 字符串

 

sort 命令

排序

shell 编程_第11张图片

eg:sort /etc/passwd  # 按字符串排序显示"/etc/passwd"文件内容
 eg:sort -r sum.sh  # 倒序显示sum.sh的文件内容。

 

wc 命令:

统计指定文件的行数、字数、字符数、字节数

语法:wc [选项] [文件名]

    -c  统计字节数

    -m  统计字符数

    -w  统计单词数

    -l    统计行数

eg: wc -c repl1.conf   统计 repl1.conf 文件中的字节数。

ctrl+d 结束控制台字数统计。


 

条件判断

 

条件判断的两种格式

判断当前路径下是否存在read.sh文件

格式一:test -e read.sh   

格式二:[ -e read.sh ]

 

[ -e read.sh ] && echo yes || echo no

 

shell 编程_第12张图片

eg:

[  -e read.sh ] && echo yes || echo no 判断当前路径下read.sh文件是否存在。存在输出yes,不存在输出no

 
shell 编程_第13张图片

 

[  -x read.sh ] && echo yes || echo no 判断当前路径下read.sh文件是否存在,并且是否拥有执行权限

 

 
shell 编程_第14张图片
 eg:

[ read.sh -nt sum.sh ] && echo yes || echo no  

 
shell 编程_第15张图片
 eg:

[ 2 -gt 1 ] && echo yes || echo no 

 

shell 编程_第16张图片
 eg:

[ "abc" == "abc" ] && echo yes || echo no 


shell 编程_第17张图片

aa=23

[ -n "$aa" -a $aa -gt 21 ] && echo yes || echo no

 

aa=20

[ -n "$aa" -a $aa -gt 21 ] && echo yes || echo no

 

 

流程控制

 

 if


shell 编程_第18张图片
 
shell 编程_第19张图片
 
shell 编程_第20张图片
 
shell 编程_第21张图片
 

 

case


shell 编程_第22张图片
 

for 循环


shell 编程_第23张图片

eg: for1.sh

#!bin/bash

for i in $(ls)

do

echo $i;

done

 
shell 编程_第24张图片
 eg: for2.sh

#!bin/bash

sum=0;

for((i=1;i<=100;i++))

do

sum=$(($sum+$i));

done

echo "the sum is :$sum";

 

while 循环


shell 编程_第25张图片
 

eg:while.sh  while 1+2+3+...+100的和

#!/bin/bash

i=1;

sum=0;

while [ "$i" -le 100 ]

do

sum=$(($sum+$i));

i=$(($i+1));

done

echo $sum

 

until 循环

unti循环和while循环刚好相反,当循环不成立则进行until循环。

 

 

你可能感兴趣的:(linux,正则表达式,字符串截取命令(cut,printf,awk,sed),条件判断,流程控制(if,case,for,while,until))