• 6. shell的变量


    目录

    一、shell的变量的介绍

    二、shell变量的分类

    三、shell变量的管理

    32位的计算机只能认识4G的内存

    2的32次幂是4294967296,计算机会把内存分成0-4294967295 B个单位,4294967296/1024/1024/1024 = 4G

    正文

    一、shell的变量

    1.变量介绍

    在编程中,总有一些数据需要临时放在内存中,以待后续使用。变量名对应的value存在对应内存地址的空间里。

    变量名是存的value的逻辑地址,内存地址是value的物理地址

    举例:

    定义变量name并赋值,name = 'zhangsan' ,value要临时存在内存中,其对应的物理地址是0x78 , ‘zhangsan'是存储在内存里的字符串数据

    name就是逻辑地址, 是对人来说的;

    0x78内存的物理地址,是计算机寻址的依据;

    读取该变量时:

    当调用name时,计算机会根据对应关系,找到物理地址,定位内存地址,读取数据并返回

    二、shell变量的分类

    1.本地变量

    • 本地变量是用户登陆之后,开始加载到内存中,等待被使用
    • 用户私用的变量,只有本地用户可以使用,保存在家目录下面的.bash_profile、.bashrc文件中

    为什么有两个文件呢?

    其实.bash_profile文件是调用了.bashrc文件,所以写在其中一个文件中即可。

    2.全局变量

    • 所有用户都可以使用,全局变量保存在/etc/profile、/etc/bashrc 文件中
    • 全局变量是在用户登陆之前,将所有的全局变量加载到内存中等待被使用

    3.临时变量

    在终端中临时定义的变量,只作用于本终端,关闭终端后,该临时变量就没有了

    4.用户自定义变量

    用户自定义的变量,比如脚本中定义的变量

    脚本中定义的变量,建议大写,与命令区分开来

    举例:

    NAME='zhangsan'

    echo $NAME 

    三、变量的定义

    1.变量定义格式

     变量名=value

    2.变量定义的注意事项

    变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

    • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
    • 中间不能有空格,可以使用下划线 _。
    • 不能使用标点符号。
    • 不能使用bash里的关键字(可用help命令查看保留关键字)。
    • 字符串要用单引号/双引号 引起来
    • shell 区分大小写

    3.读取变量内容

    读取变量内容符号$

    读取方法: $变量名

    4.取消变量 unset

    1)取消临时变量

    终端定义了临时变量如下,取消:

    NAME='zhangsan'

    unset NAME

    • 变量被删除后不能再次使用。unset 命令不能删除只读变量。

    2)脚本中定义了私有变量

    demo_unset.sh

    #!/bin/bash
    
    NAME='lisi'
    echo $NAME

    source demo_unset.sh 生效

    sh demo_unset.sh 运行

    取消NAME, unset NAME

    再运行,没有NAME的值了

    但是只要重启计算机,会重新加载文件,NAME值还是存在内存中的,只是临时取消了

    3)定义全局变量

    格式: export NAME='XXXX'

    如果不加export就是局部变量,source生效后,切换用户的话还要再次source,但是用export定义全局就不需要那么麻烦了

    以上在终端中都是一次性变量,系统重启会丢失。那么如何定义永久变量呢?

    4) 定义永久变量---写在配置文件中,就是永久变量

  • 相关阅读:
    js 基础(面试前必看)
    typescript 使用的几种情况
    flutter 命令卡主的问题
    React 通过注释自动生成文档
    jest 测试入门(一)
    react hooks 全面转换攻略(三) 全局存储解决方案
    缓存穿透、击穿、雪崩区别和解决方案
    java8 lambda表达式
    maven中snapshot快照库和release发布库的区别和作用
    初识 Nacos 以及安装
  • 原文地址:https://www.cnblogs.com/ananmy/p/15652604.html
Copyright © 2020-2023  润新知