Linux基础--shell脚本(5)


================================
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
        }


 

猜你喜欢

转载自blog.csdn.net/qq_40788199/article/details/84671884