case语句:
case语句为多选择语句
case 值in
模式1)
命令1
;;
模式2)
命令2
;;
esac
for example:
#!/bin/bash
#case select
echo -n"Enter a number from 1 to 3:"
read ANS
case $ANS in
1)
echo "You select 1"
;;
2)
echo "You select 2"
;;
3)
echo "You select 3"
;;
y|Y)当输入y或者Y他会打印出y或者Y
echo "You select $ANS"
;;
*)除了1.2.3之外的所有字符
echo "`basename$0`:This is not between 1 and 3">&2
exit;
;;
esac
for循环:
举例说明:
#!/bin/bash
#forlist1
for loop in1 2 3 4 5
do echo $loop
done
#!/bin/bash
#forlist2
for loop in "orange red bue grey" 打印一行字符串。
do echo $loop
done
#!/bin/bash
#forlist2
for loop in `cat myfile`
do echo $loop
done
until循环:
#!/bin/sh
#until_mon
#监控分区
Part="/backup"
#得到磁盘使用的百分比
LOOK_OUT=`df|grep "$Part"|awk'{print $5}'sed 's/%//g'`
echo $LOOK_OUT
until ["$LOOK_OUT" -gt "90"]
do
echo "Filesystem/backup is nearly full" |mail root
done
while循环:
举例:
#!/bin/sh
#whileread
echo "按下<ctr>+D退出输入:"
while echo -n "输入你喜欢的电影:";read FILM
do
echo "Yes,${FILM} is a good film"
done
#!/bin/sh
#whileread
while read LINE
do
echo $LINE
done <names.txt
#!/bin/sh
#whileread
while read LINE <names.txt
do
echo $LINE
done
break和continue控制:
break
退出循环
continue:
跳过循环步。
continue命令类似于break命令,只是一点重要的差别,它不会跳出循环
只是跳过这个循环步。
#!/bin/bash
#breakout
while:
do
echo -n "Enter any number [1.....5]:"
read ANS
case $ANS in
1|2|3}4|5)
echo "You enter a number between 1 and 5."
;;
*)
echo "Wrong number,Bye."
break
;;
esac
done
#!/bin/bash
#breakout
while;
do
echo -n "Enter any number[1......5]:"
read ANS
case $ANS in
1|2|3}4|5)
echo "You enter a number between 1 and 5."
;;
*)
echo -n "Wrong number,continue(y/n)?:"
read IS_CONTINUE
case $IS_CONTINUE in
y|yes|Y|Yes)
continue
;;
*)
break
;;
esac
esac
done
第五章 文本过滤
正则表达式
find介绍
grep介绍
awk介绍
sed介绍
合并与分割
(sort ,uniq,join,cut,paste,split)
5.2 元字符及含义
^只能匹配行首
$只能配行尾
*匹配0个或多个此单字符
[]只能匹配[]内字符,可以是一个单字符,也可以是字符序列,可以使用
-表示[]内字符序列范围,如用[1-5]代替[12345]
/用来屏蔽一个元字符的特殊含义
.只匹配任意单字符
pattern/{n/} 只用来匹配前面pattern出现次数,n为次数
pattern/{n,/} 含义同上,但次数最少为n。
pattern/{n,m/}含义同上,但pattern出现次数在n与m之间。
...x..x..x
drwxrwxrw- 不匹配
-rwx-r-xr-x 匹配
^d
drwxr--r-- 匹配
^...1
^$
^.$
10133*1
用/屏蔽一个特殊字符
特殊字符
",',||,^,*,+等
/*/.pas
正则表达式中匹配以*。pas结尾的所有字符或文件。
IP地址匹配:
[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}
find命令:
查找具有某些特征文件的命令
可以遍历当前目录甚至于整个文件系统来查某个文件或目录
遍历大的文件系统,一般放在后台。
find pathname -options [-print -exec -ok]