• shell基础编程


    shell基础编程


    1创建:

    使用 vim 命令创建以.sh结尾的 脚本文件

    #!/bin/bash——第一行写上
    
    2执行:
    • 要给脚本可执行权限

    • 直接在命令行输入shell脚本路径(包括后缀)

    注意:如不给可执行权限,也可执行,就要在脚本前使用命令sh执行

    以后台的方式运行:可在一个脚本中执行另一个shell脚本

    如在yourshell.sh中写入:

    ./myshell.sh &&
    
    3变量

    系统变量

    如HOME PATH USER等

    set指令可用查看全部

    • 定义变量:变量=值

    • 撤销变量:unset 变量

    引用变量:$变量

    输出:echo “内容”

    • 静态变量定义:readonly 变量=值

    • 静态变量不能 unset

    4定义变量的规则
    1. 变量名不能以数字开头
    2. 等号两侧不能有空格
    3. 变量名一般习惯大写
    5将命令的返回值赋给变量
    A=`ls -la /home` 反引号,运行里面的命令,并把结果返回A
    A=$(ls -la /home)等价反引号
    
    6设置环境变量

    在/etc/profile文件定义环境变量

    export 变量名=变量值——将shell变量设置为环境变量

    需要使用source /ect/profile使环境变量生效

    7位置参数变量
    如:./myshell.sh 100 200——在shell脚本内部可以获取到这两个参数
    
    $n——$0代表参数本身,$1-$9代表1至9个参数,10以上的参数要用{}包,如${10}
    
    $*——代表命令行中的所有参数,把所有参数当成一个整体
    
    $@——代表命令行中的所有参数,不过把每个参数分别对待
    
    $#——命令行中的参数个数
    
    8预定义变量
    shell设计者事先定义好的变量,可直接在shell中使用
    
    $$——当前进程的进程号
    
    $!——后台运行的最后一个进程的进程号
    
    $?——最后一次执行命令的返回状态(0即执行正确,非0则执行不正确,具体为哪个值由命令决定)
    
    9运算符

    基本语法

    1. $((运算式))   或   $[运算式] 
    2. expr m + n——注意,运算符之间要有空格,为一命令,需要用反引号括起来``
    3. expr m - n
    4. *,/,%——乘号需要反斜杠
    
    10条件判断

    基本语法:

    [ condition ]——注意:condition前后要有空格

    非空则返回true,可以使用$?验证(返回0为true)

    #判断字符串是否相等
    if [ "ok" = "ok" ]
    then
        echo "equal"
    fi
    
    #判断数字大小
    if [ 23 -gt 22 ]
    then
        echo "大于"
    fi
    
    #判断文件时=是否存在
    if [ -e /root/shell/a.txt ]
    then 
        echo "存在"
    fi
    
    11流程控制
    • if判断
    if [ condition ];then 
        程序
    fi
    或者
    if [condition]
        then 
            程序
        elif [ condition ]
            then
                程序
    fi
    推荐使用第二种
    
    • case
    case $变量名 in
        "值1")
        如果变量等于值1,则执行程序1
        ;;
        "值2")
        如果变量等于值2,则执行程序2
        ;;
        ···省略其他分支···
        *)
        如果变量的值都不是以上的值,则执行此程序
        ;;
    esac
    
    • for循环
    基本语法1
    #这里可以看出$*和$@的区别
    for 变量 in 值1 值2 值3···
        do
            程序
        done
    基本语法2
    for((初始值;循环控制变量;变量变化))
        do
            程序
        done
    
    • while循环
    基本语法1
    while [ condition ]
        do
            程序
        done
    
    12获取控制台输入

    read (选项) (参数)

    选项:
        -p——指定读取值时的提示符
        -t——指定读取值时的等待时间,超时输入将不等待
    
    13系统函数(部分)
    • basename——返回完整路径的最后/后面的部分,常用于获取文件名
    basename /home/aaa/a.txt //输出a.txt
    basename /home/aaa/a.txt .txt //输出a
    
    • dirname——获得除去/及后面的部分的前面的路径
    dirname /home/aaa/a.txt //输出/home/aaa
    
    14自定义函数
    基本语法([]中的可不写)
    [function] funname[()]{
        Action;
        [return int;]
    }
    调用直接写函数名 function[值]
    
    #一个函数
    function getSum(){
        SUM=$[$n1+$n2];
        echo "和是=$SUM"
    }
    
    #从键盘缓存读入
    read -p 请输入第一个数 n1
    read -p 请输入第一个数 n2
    
    #调用
    getSum $n1 $n2
    
  • 相关阅读:
    【javaFX学习】(二) 面板手册
    Android开发从系统图库中选择一张图片的方法
    用Android studio进行 OpenCV 开发的第一个项目
    【Android学习入门】Android中activity的启动模式
    Android Studio快捷键【Android学习入门】
    【Android学习入门】Android studio基本设置
    安装Android模拟器Genymotion【Android学习入门】
    Android studio 安装与配置【Android学习入门】
    【知乎】日常生活中有哪些十分钟就能学会并可以终生受用的技能?(一)
    C++学生信息处理
  • 原文地址:https://www.cnblogs.com/fruitknife/p/9720494.html
Copyright © 2020-2023  润新知