• Shell基础入门


    一、Shell变量

    1.1、定义变量时, 变量名不加美元符号

    • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
    • 中间不能有空格,可以使用下划线(_)。
    • 不能使用标点符号。
    • 不能使用bash里的关键字(可用help命令查看保留关键字)

    1.2、变量的类型

    局部变量

    • 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

    环境变量

    • 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行

    Shell变量

    • shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量
    # 变量的声明
    name = "zhangsan" 
    # 变量的调用
    echo $name
    echo ${name}
    # 只读变量 /bin/sh: NAME: This variable is read only.
    url = "https://www.google.com"
    readonly url
    url = "https://www.runoob.com"
    # 删除变量
    unset name

    二、Shell的字符串

    字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不
    用引号。
    单引号: 
    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
    • 单引号字串中不能出现单独一个的单引号,但可成对出现,作为字符串拼接使用。

    双引号:  

    • 双引号里可以有变量
    • 双引号里可以出现转义字符
    # 声明字符串
    str1 = "hello world 1"
    str2 = 'hello world 2'
    str3 ='hello world3
    # 字符串拼接 -- 双引号
    name = 'sunwukong'
    name1 = "hello, " $name ""  //可以拼接
    name2 = "hello, ${name} "  //可以拼接
    # 字符串拼接 -- 单引号
    passwd = '123456'
    passwd1 = 'hello, ' $passwd ''   //可以拼接
    passwd2 = 'hello, ${passwd}'  //不能拼接 
    echo $passwd2                  # hello, ${passwd} !
    # 字符串的长度
    email = "123456@qq.com"
    echo ${#email}          //获取字符串的长度
    echo ${email:1:4}      //获取email字符串从1开始, 取4个字符(字符串的计数是从开始的) 

    三、Shell数组

    • bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
    • 数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于 0
    # 定义数组 括号来表示数组,数组元素用 " 空格 " 符号分割开
    数组名 = ( 1 2 ... n)
    favs = ( " 足球 " " 蓝球 " " 乒乓球球 " " 保龄球 " )
    # 读取数组 ${ 数组名 [ 下标 ]}
    fav = ${favs[1]}
    # 使用 @ 符号可以获取数组中的所有元素
    echo ${favs[@]}
    # 获取数组的长度
    length1 = ${#favs[@]}
    length2 = ${#favs[*]}

    四、Shell的注释 

    • # 开头的行就是注释,会被解释器忽略。
    • 通过每一行加一个 # 号设置多行注释
    #--------------------------------------------
    # 这是一个注释
    # author
    # site
    #--------------------------------------------
    ##### 服务器配置 -start #####
    #
    #
    #
    #
    #
    ##### 服务器配置 -end #####
    # 特殊的多行注释
    :<<EOF
    注释内容 ...
    注释内容 ...
    注释内容 ...
    EOF
    :<<!
    注释内容 ...
    注释内容 ...
    注释内容 ...
    ! 
    注: 这里EOF和!都是可以更改的, 但是得保证前面和后面都得是一样的

    五、Shell参数传递

    执行Shell脚本时, 向脚本传递参数, 脚本内获取参数的格式为: $n, n代表一个数字. 

    #!/bin/bash
    echo "Shell 传递参数实例! " ;
    echo " 执行的文件名: $0 " ;
    echo " 第一个参数为: $1 " ;
    echo " 第二个参数为: $2 " ;
    echo " 第三个参数为: $3 " ;
    # ./hello.sh 11 22 33 44 

     

  • 相关阅读:
    同一网段内两台电脑ping不通,诡异问题记录
    fpga bitstream userid
    ChatGPT:革命性的自然语言处理技术
    Ubuntu18.04下opencv基础操作(打开图片及视频)
    《向量数据库指南》——用 Milvus Cloud和 NVIDIA Merlin 搭建高效推荐系统结论
    依赖的作用域范围
    艾美捷ProSci丨ProSci I kappa B 激酶检测套装解决方案
    关于WebMvcConfigurer
    基于Java纯净水商城配送系统设计与实现 开题报告
    论文解读(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》
  • 原文地址:https://blog.csdn.net/m0_50370837/article/details/125499655