• Shell入门1


    `


    Shell概述

    • Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
      Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。 Alt

    `

    一、Shell脚本入门

    1.Linux提供的Shell解释器

    /etc/shells
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash
    /bin/tcsh
    /bin/csh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    bash和sh的关系↓

    grep bash -rwxr-xr-x. 1 root root 941880 511 2016 bash lrwxrwxrwx. 1 root root	4 527 2017 sh -> bash
    
    • 1

    2.脚本格式

    脚本以*#!/bin/bash*开头
    是用来指定解析器的

    例子说明

    需求:创建一个Shell 脚本,输出 helloworld

    $ touch helloworld.sh 
    $ vim helloworld.sh
    
    • 1
    • 2
    helloworld.sh中内容如下:
    
    • 1
    #!/bin/bash echo "helloworld"
    
    • 1
    1. 脚本的常用执行方式第一种:采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限) sh+脚本的相对路径
    $ sh ./helloworld.sh 
    
    • 1
    sh+脚本的绝对路径
    
    • 1
    $ sh /home/atguigu/shells/helloworld.sh 
    
    • 1
    bash+脚本的相对路径
    
    • 1
    $ bash ./helloworld.sh 
    
    • 1
    bash+脚本的绝对路径
    
    • 1
    $ bash /home/atguigu/shells/helloworld.sh 
    
    • 1
    1. 采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)
    • 首先要赋予 helloworld.sh 脚本的+x 权限
    • 执行脚本相对路径或绝对路径
    $ chmod +x helloworld.sh
    $ ./helloworld.sh 
    $ /home/atguigu/shells/helloworld.sh 
    
    • 1
    • 2
    • 3
    注意:第一种执行方法,本质是 bash 解析器帮你执行脚本,所以脚本本身不需要执行权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。
    
    • 1

    二、系统预定义变量

    1.常用系统变量

    如下:

    $HOME$PWD$SHELL$USER
    • 1

    查看系统变量的值:

    $ echo $HOME
    
    • 1

    显示当前Shell中所有变量:set

    $ set
    BASH=/bin/bash
    BASH_ALIASES=()
    BASH_ARGC=()
    BASH_ARGV=()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.自定义变量

    1、基本语法

    (1) 定义变量:变量名=变量值,注意,=号前后不能有空格
    (2) 撤销变量:unset 变量名
    (3) 声明静态变量:readonly 变量,注意:不能 unset

    2、变量定义规则

    (1) 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
    (2) 等号两侧不能有空格
    (3) 在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
    (4) 变量的值如果有空格,需要使用双引号或单引号括起来。

    代码如下(示例):

    #定义变量A
    $ A=1024
    #撤销变量A
    $ unset A
    #声明静态的变量 B=2,不能撤销
    $ readonly B=2
    #在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算
    $ C=1+2
    #变量的值如果有空格,需要使用双引号或单引号括起来
    $ D="I love banzhang"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    牛客网语法篇之Java入门
    开发者职场“生存状态”大调研报告分析 - 第一版
    Lyapunov optimization 李雅普诺夫优化
    【跟学C++】C++集合——set/multiset类(Study16)
    外包干了3个多月,技术退步明显。。。。。
    智慧社区管理系统:构建未来的生活模式
    阿里云服务器安全组开放指定端口无法访问问题记录
    [USACO24JAN] Cannonball B 题解
    tsne 学习使用
    Netty Review - 探究Netty优雅退出原理和源码解读
  • 原文地址:https://blog.csdn.net/m0_56969616/article/details/125491238