欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux编程 21 shell编程(环境变量,用户变量,命令替换)

程序员文章站 2023-11-09 16:52:16
一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用。 1.1 环境变量 在前面章节到了linux系统的环境变量,也可以在脚本中访问这些值。下面使用set 命令来查看当前系统的环境变量 ......

一.概述

  这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用。

  1.1 环境变量

    在前面章节到了linux系统的环境变量,也可以在脚本中访问这些值。下面使用set 命令来查看当前系统的环境变量列表:

    [root@hsr ~]# set

    截图一小部分,如下所示:

    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    使用echo 在环境变量这前加上美元符($)来使用这些变量,如下图所示:
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
     如果使用echo输出的字符串里含有$符号时,要加上返斜杠,不然当作了变量,如下图所示:
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)

  1.2 用户变量

    除了系统环境变量,shell脚本允许在脚本中定义和使用自己的变量。定义变量允许临时存储数据并在整个脚本中使用。 用户变量可以由任何字母,数字,下划线组成的文本字符串,长度不超过20个,变量区分大小写。
    使用 = 号将值赋组用户变更,在变更,等号和值之间不能出现空格。shell脚本会自动决定变量值的数据类型,如下图所示:
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
  在脚本的整个生命周期里, shell脚本中定义的变更会一直保持着它们的值,当shell脚本结束时会被删除掉。shell脚本中定义变量,重点要注意引用一个变量值时需要使用$符号,如下图所示:
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)

  1.3 命令替换

    命令替换在shell编程中处理数据很方便,会经常用到。是指把命令输出赋给变量,能过$()符号,使用如下图所示:
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    下面来一个例子,通过脚本命令替换获得当前日期并用它来生成唯一文件名,生成日志文件路径与test3脚本文件路径一致。实现如下图所示:
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    总结:注意1:命令替换会由该脚本创建一个独立的子shell 来运行对应的命令。正因如此,子shell所执行命令是无法使用脚本中所创建的变量的,如下所示, var1变量放入独立子shell中无法识别
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    注意2:在命令行提示符下使用路径 ./ 运行命令的话,也会创建出子shell。(要运行命令的时候不加入路径,就会不会创建子shell,有疑点以后再看)。
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)