================================
while 循环
init
while [ con ]
do
cmd
add
done
while 嵌套
while [ con ]
do
while [ con ]
do
.....
done
.....
done
练习:
1:
1 + 2 + 3 + ... + 100
2:
实现99乘法表
3 :
012345678
####****\n
9
####****
####****
####****
一个循环 每次打印一个字符
死循环
1 必须有延迟
2 必须有退出条件
break : 退出整个循环,只对当前的循环起作用
continue: 退出本次循环,对当前循环
homework:
1 实现死循环,用户检测服务状态 如果服务为启动,则启动服务,如果启动,则不关心
nfs
2 实现百元百鸡
公鸡 5元1只
母鸡 3元1只
小鸡 1元3只
问共有多少种组合
放在后台运行
./filename &
查看后台进程
ps -ef
进程:就是一段可执行的代码,并放在内存中运行
init 进程 祖先进程 所有的进程都是由1号进程间接或者直接创建
杀死进程:
kill -9 pid
管道命令:|
前一个命令输出作为后一个命令输入
文本操作命令
grep : 查找匹配关键字
案例:
查找匹配字符串
[root@localhost sh]# cat /etc/passwd | grep root 完全匹配
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
表示显示行号
[root@localhost sh]# cat /etc/passwd | grep -n root 显示行号
1:root:x:0:0:root:/root:/bin/bash
12:operator:x:11:0:operator:/root:/sbin/nologin
表示不去分大小写显示
[root@localhost test]# cat test | grep -i root
al;dsjrootkflk
lkjdsflkRootljfd
表示查找匹配单词
[root@localhost test]# cat test | grep -w root
kjfd root kjfjdk
表示匹配不含有root字符串的行
[root@localhost test]# cat test | grep -v root
flkjsdkf
lkjdsflkRootljfd
cut : 切割
-d : 表示分割符
-f : 表示字段
案例
cut -d : -f 1 passwd 表示取出第一列
cat passwd | cut -d: -f 1,7 表示取出第一列和第七列
sort : 排序 默认升序
-r : 表示绛序
wc : 统计
-l : 表示统计行
-w : 表示统计单词
-c : 表示统计字符
uniq : 重复的行只显示一行
练习:
统计/etc/passwd 有多少中shell
[root@localhost sh]# cat /etc/passwd | cut -d : -f 7 | sort | uniq | grep -v ^$ | wc -l
5
======================================
函数
format :
funname (){
cmd
}
or
function funname (){
cmd
}