• 02 Shell变量


    什么是Shell变量
      数学中有方程,方程的原理就是用一个名称(未知数)代替未知数进行运算。同理,在Shell中,变量就是代替一个东西的名称。
      定义:Shell中的变量是一个字符或字符串。
      变量的作用:变量是一个名称,用来代替一个复杂的内容。这个内容可以是任何东西,比如其他变量、路径、数值、函数、表达式等。使用变量可以大大简化代码书写,我们甚至可以直接对变量进行操作而不用知道变量表示什么内容。

    定义变量
      定义(产生)变量的唯一方法是赋值。赋值就是用等号连接变量和内容,变量写在等号左边,内容在右边,即“变量=内容”的格式。注意等号两边不能有空格,变量的内容要加双引号。

    变量的分类和特性
      Shell变量分为两类:环境变量(全局变量)和普通变量(局部变量)。
      环境变量可以在定义它们的Shell和子Shell中使用。bash中内置了一些环境变量,你也可以自定义环境变量。
      普通变量只能在定义它们的Shell函数或Shell脚本中使用,一般由开发者在开发脚本程序时定义。

    环境变量
      环境变量一般是指用export命令导出的变量,用于定义Shell的运行环境,保证Shell命令的正常执行。Shell通过环境变量来确定登陆的用户名、命令路径、终端类型、登录目录等。
      规范的环境变量的名字全部大写。并且定义环境变量之前要用export命令导出定义。
      自定义环境变量的方法有三种

    export 变量名=内容
    变量名=内容 ; export 变量名
    declare -x 变量名=内容
      系统环境变量保存在家目录的.bash_profile中或/etc/profile中。修改环境变量只要重新定义就行了。如果想让环境变量永久生效,将环境变量放到上面的系统配置文件中。
      查看变量使用set、env、declare命令。set显示所有环境和普通变量。env只显示所有环境变量,declare输出所有变量、函数、整数。
      输出环境变量用$ 变量名。(echo输出是要加双引号的,但是有$的变量输出不用双引号)。比如

    echo $变量名
    printf “$变量名”
      无引号和双引号输出效果相同。
      删除环境变量使用unset命令。格式:unset 变量名。

    普通变量
      普通变量只在当前Shell的生存期内有效,新进程或关闭Shell则普通变量消失。
      普通变量定义有三种写法。

    变量名=内容
    变量名=‘内容’
    变量名=“内容”
      引号问题是Shell编程的重点!无引号、单引号、双引号的含义是不同的。当内容为连续数字、字符串、路径是可使用无引号,无引号时特殊字符会转义,有变量时变量会被解析出来。单引号内不转义,引号内是什么就输出什么,就是一个字符串。双引号作用和无引号一致,双引号内会转义,适合断续内容输出。
      不仅变量定义时有引号之分,输出时也有引号之分,引号作用同上。
      引号的规范:数字可以不打引号,想解析后输出统一打双引号,想原样输出打单引号。
      普通变量输出也是$ 变量名,或$ {变量名},两种写法没区别,效果相同。

      如果你想把命令的执行结果赋值给变量,格式是:

    变量名=`命令`
    变量名=$(命令)
    1
    2
    变量名定义规范
      变量名只能由数字、字母、下划线(_)组成,不能以数字开头,其中不能有空格。

  • 相关阅读:
    关于systemgenerator的学习方法
    关于FPGA的非HDL设计方法比较
    vivado simlation post-implementation "not found module"问题分析
    快速重启tomcat的shell脚本
    python2 和python3报错:No module named ‘MySQLdb'”
    CentOS生产环境无网络安装percona-xtrabackup2.4【RPM安装教程】
    磁盘system ID解释
    对硬盘进行扩容,LVM逻辑卷创建案例实记
    LVS的原理
    毕业1年,我是如何走向运维工程师的
  • 原文地址:https://www.cnblogs.com/Nonstopcoding/p/11183106.html
Copyright © 2020-2023  润新知