• shell脚本


    创建sh文件

    touch test.sh	//创建sh文件
    vi test.sh			//编辑sh文件
    
    • 1
    • 2

    在这里插入图片描述

    shell脚本开头(#!/bin/bash)

    #!/bin/bash
    echo "helloword"
    
    • 1
    • 2

    shell执行多行命令操作

    #!/bin/bash
    
    cd /home/test
    touch test01.txt
    echo "I LOVE SHELL" >> test01.txt
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Esc退出insert模式

    :wq编辑状态-保存退出

    cat 打印文件内容-(适合内容少文件)

    cat  test.txt   	//展示文件内容
    
    • 1

    shell系统变量

    在这里插入图片描述
    在这里插入图片描述

    自定义变量(变量名=变量值)

    在这里插入图片描述

    静态变量

    在这里插入图片描述

    变量定义规则

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    示例:
    在这里插入图片描述

    定义helloword.sh脚本内容
    #!/bin/bash
    
    echo "helloword dahaihaige"
    echo $D
    
    • 1
    • 2
    • 3
    • 4
    • 5
    定义变量D
    D="banzhang love mm"
    
    • 1
    • 2

    在这里插入图片描述

    export??

    在这里插入图片描述

    特殊变量

    $数字

    $0	//文件名
    $1	//第一个参数
    $2	//第二个参数
    .....
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    $# 控制台输入参数的总个数-常用于循环

    在这里插入图片描述
    打印出参数的个数
    在这里插入图片描述

    $* 和 $@ 所有参数

    在这里插入图片描述

    在这里插入图片描述

    执行结果:
    
    • 1

    在这里插入图片描述

    $? 判断上一个命令是否执行成功(0-成功,非0-失败)

    在这里插入图片描述
    结果:
    在这里插入图片描述

    运算符 expr

    在这里插入图片描述
    示例:
    在这里插入图片描述

    条件判断

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    整数间比较大小

    -lt	小于
    -le	小于等于
    -eq	等于
    -gt	大于
    -ge	大于等于
    -ne	不等于
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例:

    [ 3 -ge 2 ]			//判断是否  3大于等于2
    echo $?			//是一个命令操作是否成功
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    文件权限-读、写、执行

    [ -w test.sh ]			//判断test.sh文件是否具有写权限   -r 读   -w 写  -x 执行
    echo $?				//输出   0-成功    非0-失败
    
    • 1
    • 2

    在这里插入图片描述

    文件状态判断-f -e -d

    -f文件存在,常规文件
    -e文件存在
    -d文件存在,是目录
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    多条件判断&& ||

    在这里插入图片描述

    流程控制

    if判断

    if [ 3 -gt 2 ]:then			//[]与3和2之间有空格,if与[]之间也有空格,3前面和2后面都有空格
    	echo '"3大于2"
    fi
    或者
    if [ 5 -eq 6 ]
    then
    	echo "5等于6"
    elif [ 5 -gt 6 ]
    then
    	echo "5大于6"
    el
    	echo "5小于6"
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    注意事项:
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    注意: $1 代表控制台输入的第一个参数,实现动态赋值

    在这里插入图片描述

    if [ 条件表达式1 ]
    then
    	程序1
    elif [ 条件表达式2 ]
    then
    	程序2
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    case语句

    case $1 in
    18)
    	echo "18岁"
    	;;							//等价于break
    10)
    	echo "10岁"
    	;;
    *)							//等价于default
    	echo "其他"
    	;;
    esac
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    for循环

    s=0
    for((i=1;i<=100;i++))
    do
    	s=$[$s+$i]
    done
    echo $s
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    “$*” 和 "$@"
    在这里插入图片描述

    在这里插入图片描述

    while循环

    在这里插入图片描述

    
    touch while.sh	//创建sh文件
    vim while.sh	//编辑内容
    
    
    bash while.sh	//执行sh文件
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    在这里插入图片描述

    读取控制台输入

    -p "提示信息"
    -t 7 	//等待时间7秒
    
    • 1
    • 2

    read控制台输入

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    basename函数-获取文件名

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    dirname函数-获取文件绝对路径

    在这里插入图片描述
    在这里插入图片描述

    自定义函数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    cut指定剪切的分割符,输出指定列的内容

    在这里插入图片描述
    在这里插入图片描述

    示例:输出人名中的姓			//姓和名中间有空格,根据空格分割
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    sed流编辑器

    
    -e	//直接在指令模式上进行sed操作
    
    a	//新增
    d	//删除
    s	//查找并替换
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    新增:
    在这里插入图片描述
    删除:
    在这里插入图片描述
    查找并替换:

    g	表示global,全部替换
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    awk文本分析工具

    在这里插入图片描述
    在这里插入图片描述

    sudo	表示以管理员身份执行命令
    cp 		复制
    ./		表示当前路径
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    更改所有者

    在这里插入图片描述
    在这里插入图片描述

    执行脚本

    sh 执行sh文件(方法1)

    不用具备可执行权限x

    sh hello.sh	
    sh+绝对路径
    sh /aa/bb/hello.sh
    sh+相对路径
    
    • 1
    • 2
    • 3
    • 4

    bash 执行sh文件(方法2)

    不用具备可执行权限x

    bash hello.sh
    bash+相对路径
    bash /aa/bb/hello.sh
    bash+绝对路径
    
    • 1
    • 2
    • 3
    • 4

    chmod 加权限

    chmod 777 hello.sh  
    777 表示:可读、可写、可执行
    
    • 1
    • 2

    ./hello.sh 相对路径执行脚本(方法3)

    需先赋予可执行权限

    .hello.sh
    
    • 1

    /aa/bb/hello.sh 绝对路径执行脚本(方法4)

    需先赋予可执行权限

    /aa/bb/hello.sh
    
    • 1
  • 相关阅读:
    Tomcat下载安装以及配置(详细教程)
    UOS1050e rpm安装oracle 19c
    PyCharm 常用快捷键
    【web-攻击访问控制】(5.1.1)常见漏洞:完全不受保护的功能、基于标识符的功能
    Vue语法模板续篇
    bazel远程缓存(Remote Cache)
    如何为WPF应用程序制作一个虚拟键盘?这里有答案(Part 1)
    Python 用列表实现模拟手机通讯录(简易版)
    YOLOv5涨点优化:backbone改进 | TransXNet:聚合全局和局部信息的全新CNN-Transformer视觉主干| CVPR2024
    kotling构造函数
  • 原文地址:https://blog.csdn.net/weixin_38919176/article/details/126700599