27.shell编程-变量

Posted HJingLei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了27.shell编程-变量相关的知识,希望对你有一定的参考价值。

shell的变量

  • shell变量介绍

    1. linux shell中的变量分为系统变量和用户自定义变量
    2. 系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME 等等
    3. 显示当前shell中所有变量:set
  • shell变量的定义的基本语法

    1. 定义变量:变量=值
    2. 撤销变量:unset 变量
    3. 声明静态变量:readonly 变量 【注意:不能unset】
  • #!/bin/bash
    #案例1:定义变量A
    A=100
    #输出变量需要加$
    echo A=$A
    echo "A=$A"
    #案例2:撤销变量A
    unset A
    echo A=$A
    #案例3:声明静态的变量B=2,不能unset
    readonly B=2
    echo B=$B
    
  • 定义变量的规则

    1. 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
    2. 等号两侧不能有空格。
    3. 变量名称一般习惯为大写
  • 将命令返回的值赋给变量

    1. A=`date` 反引号,运行里面的命令,并把结果返回给变量A
    2. A=$(date)等价于反引号

设置环境变量

  • 语法:
    1. export 变量名=变量值 【将shell变量输出为环境变量】
    2. source 配置文件 【让修改后的配置立即生效】
    3. echo $变量名 【查询环境变量的值】

多行注释

:<<!
注释的内容
注释的内容
!

位置参数变量

  • 介绍:

    当执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息

  • 语法

    • $n 【n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,10以上参数需要用大括号包含,如:${10}】
    • $* 【这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体】
    • $@ 【这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待】
    • $# 【这个变量代表命令行中所有参数的个数】
  • 案例:

编写一个shell脚本position.sh,在脚本中获取到命令行的各个参数信息

#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有的参数=$*"
echo "$@"
echo "参数的个数=$#"
./position.sh 100 200

预定义变量

  • 介绍:shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
  • 语法:
    • $$ 【当前进程的进程号(PID)】
    • $! 【后台运行的最后一个进程的进程号(PID)】
    • $? 【最后一次执行的命令返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确】
  • 案例:

在shell脚本中简单使用一下预定义变量,preVar.sh

#!/bin/bash
echo "当前执行的进程id=$$"
#以后台的方式运行一个脚本,并获取他的进程号
/root/shcode/myshell.sh &
echo "最后一个后台方式运行的进程id=$!"
echo "执行的结果是=$?"
./preVar.sh

以上是关于27.shell编程-变量的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用 Pygments 检测代码片段的编程语言

面向面试编程代码片段之GC

如何在 Django Summernote 中显示编程片段的代码块?

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?