shell 编程

正则表达式

 
shell 编程
 
shell 编程
 
shell 编程
 
shell 编程
 
shell 编程
 

字符串截取命令

 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 编程
 
shell 编程
 

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 编程

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

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

sed 命令

行编辑器命令


shell 编程
 
shell 编程
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 编程

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 编程

eg:

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

 
shell 编程

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

 
shell 编程
 eg:

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

 
shell 编程
 eg:

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

shell 编程
 eg:

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


shell 编程

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 编程
 
shell 编程
 
shell 编程
 
shell 编程
 

case


shell 编程
 

for 循环


shell 编程

eg: for1.sh

#!bin/bash

for i in $(ls)

do

echo $i;

done

 
shell 编程
 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 编程
 

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循环。

相关推荐