码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Shell脚本


    文章目录

    • Shell脚本学习
      • 1. Shell概念
        • 1.1Shell脚本的好处
        • 1.2 Shell脚本的入门
          • 1.2.1 Linux环境中默认Shell版本
          • 1.2.2 Shell脚本
    • 1.2.3 编写简单的hello,world 脚本
        • 1.2.4 Shell 脚本的多种执行方法
          • 1.2.4.1 第一种 bash 或 sh 加文件的路径
          • 1.2.4.2 第二种 文件的路径直接执行
          • 1.2.4.2.1 赋权,可执行文件
          • 1.2.4.3 第三种 文件的路径前加 . 或 source 执行
          • 1.2.4.3.1 ./ 和 . 的区别是
          • 1.2.4.4 Shell 脚本涉及父子Shell 脚本
        • 1.3 变量:系统标量,自定义变量,全局变量,局部变量
          • 1.3.1 系统变量
          • 1.3.2自定义变量
          • 1.3.2.1 注意定义变量时,两边不能有空格,例如:
          • 1.3.2.2 变量赋值时可以使用 单引号'' 或双引号'"
          • 1.3.2.3 父子bash
          • 1.3.2.4 声明全局变量
          • 1.3.2.4.1 注意全局变量是父子继承规则,子变量值更改,父变量值不变
          • 1.3.3
      • 1.4 变量的运算![在这里插入图片描述](https://img-blog.csdnimg.cn/4dff446f030f4e13b48abe13f68f3eb4.png)

    Shell脚本学习

    1. Shell概念

    Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
    在这里插入图片描述

    1.1Shell脚本的好处

    在这里插入图片描述

    1.2 Shell脚本的入门

    1.2.1 Linux环境中默认Shell版本
    echo $SHELL
    
    • 1

    在这里插入图片描述

    1.2.2 Shell脚本
    #号 在sell 脚本中代表的是注释
    
    • 1

    在这里插入图片描述

    1.2.3 编写简单的hello,world 脚本

    #!/bin/bash
    echo "hello,world"
    
    • 1
    • 2

    在这里插入图片描述

    1.2.4 Shell 脚本的多种执行方法

    1.2.4.1 第一种 bash 或 sh 加文件的路径

    在这里插入图片描述

    1.2.4.2 第二种 文件的路径直接执行

    在这里插入图片描述

    1.2.4.2.1 赋权,可执行文件
    chmod +x scripts/hello.sh # x 代表可执行文件,r 是读,w 是 写
    
    • 1

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

    1.2.4.3 第三种 文件的路径前加 . 或 source 执行

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

    1.2.4.3.1 ./ 和 . 的区别是

    ./ :中 . 指的是相对路径
    . : 指的是 点命令,后面跟的是他的参数
    在这里插入图片描述

    1.2.4.4 Shell 脚本涉及父子Shell 脚本

    推荐使用这个命令 执行shell脚本命令 不会生成子shell进程,可以避免应为父子shell权限导致shell脚本执行不全

    source /app/helloworld.sh #执行shell脚本命令
    . /app.helloworld.sh #执行shell脚本命令 
    
    • 1
    • 2

    在这里插入图片描述

    2. #执行shell脚本命令,会生成子shell进程 
    sh ./helloworld.sh #执行shell脚本命令
    bash ./helloworld.sh #执行shell脚本命令
    ./helloworld.sh  #执行shell脚本命令 
    /app/helloworld.sh #(绝对路径执行,相对路径也可以执行)执行shell脚本命令,问题:遇到权限不足,办法:加执行权限,chmod +x /app/helloworld 
    #推荐使用这个命令  执行shell脚本命令 不会生成子shell进程
    source /app/helloworld.sh #执行shell脚本命令
    . /app.helloworld.sh #执行shell脚本命令 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.3 变量:系统标量,自定义变量,全局变量,局部变量

    1.3.1 系统变量

    在这里插入图片描述

    3.echo $HOME #查看系统定义的$HOME变量的值
    4.env #查看系统定义的全局所有变量
    env | less #更加清楚查看系统定义的全局所有变量
    printenv | less #查看全局所有变量
    printenv USER #打印$USER变量值(命令时,不用加$符号)
    echo $USER #使用系统定义的$USER变量值 (命令时,加$符号)
    set | less #查看所有定义的变量(全局,局部,用户自定义变量)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    1.3.2自定义变量

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

    #定义变量公式 变量名=变量值 (=两边不能有空格,字符串中有空格时,加双引号)
    #变量是数字时 
    a=2 #定义变量a=2 
    echo $a #查看变量$a的值 显示2
    #变量是字符串时
    my_bianliang=hello
    echo $my_bianliang #hello
    my_bianliang="hello, world"
    echo $my_bianliang #hello, world
    #全局变量声明 export my_bianliang (导出,声明)
    #全局变量是父子继承规则,
    readonly b=5 #只读变量(也就静态变量,可以理解为常量),b不能在被赋值,也不能被撤销
    unset 变量名 #撤销变量
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    1.3.2.1 注意定义变量时,两边不能有空格,例如:

    在这里插入图片描述

    1.3.2.2 变量赋值时可以使用 单引号’’ 或双引号’"

    在这里插入图片描述

    1.exho "hello,world $0" #xshell服务器窗口打印名命令 ,$0是变量
    exho 'hello,world $0' #xshell服务器窗口打印名命令,直接输出,$0是字符串
    
    • 1
    • 2
    1.3.2.3 父子bash
    env #查看系统定义的全局所有变量
    set #查看所有的变量(系统,自定义,全局,局部)
    
    • 1
    • 2

    在这里插入图片描述

    1.3.2.4 声明全局变量

    语法: export 变量名
    #全局变量声明 export my_bianliang (导出,声明)
    注意#全局变量是父子继承规则,子变量值更改,父变量值不变
    在这里插入图片描述

    1.3.2.4.1 注意全局变量是父子继承规则,子变量值更改,父变量值不变

    在这里插入图片描述

    1.3.3

    1.4 变量的运算在这里插入图片描述

  • 相关阅读:
    Notion Like 笔记软件使用教程·学习资源汇总·知识管理方案
    论文阅读-多目标强化学习-envelope MOQ-learning
    Golang笔记:使用serial包进行串口通讯
    位运算解决简单逻辑推理问题
    解决开了burp suite ,火狐访问不了其他网站的问题
    JAVA:如何优雅地书写if-else(策略模式、函数式接口、卫语句)
    未来展望:Starday供应链火力全开,为跨境电商再添动力!
    【uniApp学习之六】vuex
    SAP GUI 里的收藏夹事务码管理工具
    巧用字典树算法,轻松实现日志实时聚类分析
  • 原文地址:https://blog.csdn.net/zzh18334820165/article/details/127934901
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号