• Linux之shell脚本编程、多命令、脚本、bc计算器、反引号、if语句、for语句


    1 使用多命令
    在shell下,可以分步执行:
    cd
    ls

    在shell下,也可以连续执行:
    cd;ls

    说明:上述2种方法 完全等价


    2 使用shell脚本 的 方法
    自定义1个文件script01.sh
    使用vi 进行编辑,内容为:
    cd
    ls

    3 运行脚本的方法
    sh script01.sh

    注意:如果script01.sh不在当前目录下,则需要制定 目录,如可以进行如下操作
    sh ../script01.sh


    4 在shell下,不能直接进行 四则运算
      windows的cmd下,也不能
      
      在shell下,运行Linux下的计算器后,就可以了
      在windows下,运行calc计算器,也就可以了
      
    5 在shell下,使用bc计算器
    bc  -q                //运行bc计算器,-q参数 代表 不需要显示bc版本信息----此时,自动打开了1个子进程,子进程名为 bc
    scale=2                //修改 小数点位数为 2
    a=10.1                //定义1个变量a,并赋值为10.1
    b=20.1
    c=a+b                //可以进行四则运算,并将结果赋值给c
    print a                //bc下,输出变量的值方法----------shell下,则使用echo进行变量的输出
    quit                //退出bc计算器----子进程bc将结束
    返回到父进程shell下


    6  在shell脚本里,使用bc计算器
       注意:windows里,你无法将windows带的计算器 放进 什么windows shell里
       
    vi script02.sh
    内容如下:
    #!/bin/bash            //告诉调用者,如下内容符合 bash shell脚本语法-----调用者执行该脚本后,将打开1个新的进程(进程名为 sh 或 script02.sh)
    a=10                //下面都是在新的进程里执行的shell命令
    b=20
    c=`bc< $a+$b                //反单引号中的内容,都是 子进程bc下的命令
    EOF
    `                    //子进程bc 要结束了。将返回到sh进程
    echo c is $c          //在sh进程里,执行的命令
       
       
    7 反引号的用法
        注意1:脚本中,如果要使用bc,则必须使用 反引号
        注意2:还有其它 应用场合
               date1=`date +%y%m%d`
               touch log.$date1            //则新建立的文件名 可能为  log.140415

       
       
       
    7 bash shell的if语句

    7.1 数值比较

    编写if001.sh脚本,内容如下:
    #!/bin/bash
    echo please input your age:
    read age                        //同过键盘,输入数值给 age年龄
    if [ $age -gt  20  ]            //这是整型数的比较----float double string不能这么用----age是变量,前面要加$------不能用大于号,这是新语法
    then                            //注意 中括号2头的空格
        echo your age \> 20            //加反斜杠,是因为 shell语法中,大于号是 输出重定向命令
    else
        echo your age \<= 20        //要加反斜杠
    fi
    exit 0   

    注意点:必须进行整数值间的比较,否则有错误提示。  []内有空格,需注意

    数值比较的运算符:            
    -eq
    -ne

    -ge
    -gt

    -lt
    -le


    7.2 字符串比较
    题目:判断姓名是否为 lisi
    #!/bin/bash
    echo please input your name:
    read name
    if [ $name =  "lisi"  ]
    then
        echo your name is lisi
    else
        echo your name is not lisi
    fi
    exit 0

    字符串比较的运算符: 
    \>
    \<
    =
    !=
    -z
    -n

    注意点:字符串变量 未初始化、为空时,如果进行比较,是十分危险的。所以,先要进行 -z比较 


    7.3 文件的比较  ----Linux shell所擅长的
    题目:判断在当前目录下,是否存在一个目录文件 dir1
    #!/bin/bash
    name_dir=dir1
    if [ -d $name_dir  ]
    then
        echo have the dir
    else
        echo not have the dir
    fi
    exit 0


    文件比较的运算符:  
    -d         是否存在,并且是1个目录
    -f        是否存在,并且是1个文件
    -e        是否存在
    -s        是否存在,并且不为空
    -r        是否存在,并且可读
    -w        是否存在,并且可写
    -x        是否存在,并且可执行
    -O        是否存在,并且被当前用户所拥有
    -G        是否存在,并且默认组是当前组

    file1 -nt file2                file1 比 file2 新----注意:前提是文件要存在
    file1 -ot file2                file1 比 file2 旧----注意:前提是文件要存在


    8for
    用法1:----遍历 常量
    题目:将3个人名 依次遍历打印出来
    #!/bin/bash
    for temp in zhangsan lisi wangwu
    do
        echo name is $temp
    done
    exit 0


    用法2:----遍历 变量
    题目:将3个人名 依次遍历打印出来。事先,使用变量保存了3个姓名
    #!/bin/bash
    names="zhangsan lis wangwu  liwei"
    for temp in $names
    do
        echo name is $temp
    done
    exit 0

    用法3:----遍历 1个shell命令的结果
    题目:将当前目录下的所有文件打印输出
    #!/bin/bash
    #names="zhangsan lis wangwu  liwei"
    for temp in `ls`
    do
        echo file: $temp
    done
    exit 0

    用法4:----遍历 某个目录下的所有文件
    题目:将/root目录下的所有文件打印输出
    #!/bin/bash
    #names="zhangsan lis wangwu  liwei"
    for temp in /root/*
    do
        echo file: $temp
    done
    exit 0

    班级委员会和敏捷开发团队的建设、工作安排:

    1、团队负责人
       第1组:陈朋博  刘龙龙
       第2组: 孙艳虎 尹新辉
       第3组:马超琪
       第4组:邵晶
       第5组:刘碧琦 胡淳伟
       
    2、4月16日 14时,各个小组 开敏捷团队 日例会(时间需控制在15分钟以内)  
       为保证 日例会质量,请 各个小组负责人,写一份日例会草案,于4月16日11时前,发送到我的邮箱2873814441@qq.com
    3、敏捷开发不但可以运用在软件项目上,也可以运用在其它项目上。作为开端,我们先运用在学习项目上,下次,再运用在老师的大作业上。
       本次的学习项目 任务是:
       1)本组组员学业情况汇总,分为A(优秀,可以为本组的骨干)、B(良,学习进步很大,也很有信心学好后续课程,只是还需要磨练)、C级(中,学习感到很吃力,自信心不足)
       2)针对本组的上述实际情况,制定互助计划。如,一带一、配对编程、一起分析课堂笔记或视频等
       3)先制定1个本周的总目标(到周日),再分解到每1天。
       4)每日的例会,就是不断总结、修正计划的过程,从而避免计划与实际严重脱节的问题。----这是敏捷开发的主要原则之一      

  • 相关阅读:
    Java基础32 this关键字
    【云原生之kubernetes实战】在k8s环境下部署Teleport堡垒机系统
    css 实现导航菜单
    ARM汇编之程序状态寄存器传输指令
    【Mysql】查询mysql的版本
    数据结构与算法之动态规划算法(DP)
    恶补《操作系统》2_3——王道学习笔记
    Git 忽略文件大小写
    C++入门(1)—命名空间、缺省参数
    SpringBoot项目启动时预加载
  • 原文地址:https://blog.csdn.net/qq_38220914/article/details/127711980