• shell编程--变量和if语句的使用


    一、什么是Shell?

            shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。

     

    二、什么是脚本?

           脚本就是由Shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

     

    三、Linux中有哪些脚本解释器?

           有dash和bash两种,但dash没有bash功能全面,所以通常使用bash。

           可以通过命令来查看系统中的脚本解释器:  ls  -l  /bin/*sh

    注意:执行之前首先要为脚本文件添加可执行权限,不然就得用root权限才能执行!

    添加可执行权限: chmod  +x  name.sh   回车

    四、shell脚本的执行方式

    1)   ./name.sh     这种方式脚本第一行一定要加#!/bin/bash

     

    2)    /bin/bash name.sh

     

    3)   bash name.sh

     

    4)   sh name.sh

    在编译的时候用空格分割  依次传入参数
    
    ./name.sh  1234 abcd
                 参数1  参数2
    
    

    shell 脚本 常用参数

     

    #!/bin/sh         # 在脚本第一行脚本头 # sh为当前系统默认shell,可指定为bash等shell
    sh -x             # 执行过程
    sh -n             # 检查语法
    (a=bbk)           # 括号创建子shell运行
    basename /a/b/c   # 从全路径中保留最后一层文件名或目录
    dirname           # 取路径
    $RANDOM           # 随机数
    $$                # 进程号
    source FileName   # 在当前bash环境下读取并执行FileName中的命令  # 等同 . FileName
    sleep 5           # 间隔睡眠5秒
    trap              # 在接收到信号后将要采取的行动
    trap "" 2 3       # 禁止ctrl+c
    $PWD              # 当前目录
    $HOME             # 家目录
    $OLDPWD           # 之前一个目录的路径
    cd -              # 返回上一个目录路径
    local ret         # 局部变量
    yes               # 重复打印
    yes |rm -i *      # 自动回答y或者其他
    ls -p /home       # 区分目录和文件夹
    ls -d /home/      # 查看匹配完整路径
    time a.sh         # 测试程序执行时间
    echo -n aa;echo bb                    # 不换行执行下一句话 将字符串原样输出
    echo -e "s	ss
    
    
    "                 # 使转义生效
    echo $a | cut -c2-6                   # 取字符串中字元
    echo {a,b,c}{a,b,c}{a,b,c}            # 排列组合(括号内一个元素分别和其他括号内元素组合)
    echo $((2#11010))                     # 二进制转10进制
    echo aaa | tee file                   # 打印同时写入文件 默认覆盖 -a追加
    echo {1..10}                          # 打印10个字符
    printf '%10s
    '|tr " " a              # 打印10个字符
    pwd | awk -F/ '{ print $2 }'          # 返回目录名
    tac file |sed 1,3d|tac                # 倒置读取文件  # 删除最后3行
    tail -3 file                          # 取最后3行
    outtmp=/tmp/$$`date +%s%N`.outtmp     # 临时文件定义
    :(){ :|:& };:                         # 著名的 fork炸弹,系统执行海量的进程,直到系统僵死
    echo -e "e[32m颜色e[0m"             # 打印颜色
    echo -e "33[32m颜色33[m"          # 打印颜色
    echo -e "33[0;31mL33[0;32mO33[0;33mV33[0;34mE	33[0;35mY33[0;36mO33[0;32mUe[m"    # 打印颜色

     

    if语句的使用

    一、比较数字的大小----双括号

     

     

    二、判断目录是否存在   -d

    三、判断文件是否存在

    四、多个if判断

     

     逻辑运算符解析:

    逻辑运算符解析:
    -f     判断文件是否存在 eg: if [ -f filename ]
    -d     判断目录是否存在 eg: if [ -d dir     ]
    -eq    等于 应用于:整型比较
    -ne    不等于 应用于:整型比较
    -lt    小于 应用于:整型比较
    -gt    大于 应用于:整型比较
    -le    小于或等于 应用于:整型比较
    -ge    大于或等于 应用于:整型比较
    -a    双方都成立(and) 逻辑表达式 –a 逻辑表达式
    -o    单方成立(or) 逻辑表达式 –o 逻辑表达式
    -z    空字符串
  • 相关阅读:
    计算任一输入的正整数的各位数字之和,并分析算法的时间复杂度
    10万数组去重,排序,找最多出现次数,(复杂度没有前一个博客好,随手写,有点烂)
    Maven环境搭建
    Tomcat内部结构及请求原理(转)
    Tomcat环境搭建
    斐讯面试记录—三线程交替打印ABC
    斐迅面试记录—SSL和TLS的区别
    斐迅面试记录—Http协议中的Header
    斐讯面试记录—强+软+弱+虚引用
    斐讯面试记录—TCP滑动窗口及拥塞控制
  • 原文地址:https://www.cnblogs.com/-citywall123/p/13190159.html
Copyright © 2020-2023  润新知