zoukankan      html  css  js  c++  java
  • 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) 定义永久变量---写在配置文件中,就是永久变量

  • 相关阅读:
    将Apache2.4手动安装成Windows的服务
    [译文]PHP千年虫(y2k compliance)
    Apache2.4 authz_core_module模块使用
    Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.错误
    [转载]开启debug调试模式
    thinkphp 去掉URL 里面的index.php
    在WINDOWS下安装PEAR
    php5.5.15注释问题PHP Deprecated: Comments starting with '#' are deprecated in *.ini 警告解决办法
    Maven 与 IntelliJ IDEA 的完美结合
    JavaRebel 2.0 发布,一个JVM插件
  • 原文地址:https://www.cnblogs.com/ananmy/p/15652604.html
Copyright © 2011-2022 走看看