• Linux下的Shell编程(2)环境变量和局部变量


    Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型。

    局部变量在本地数据区分配内存进行存储,这个变量归当前的Shell所有,任何子进 程都不能访问本地变量。这些变量与环境变量不同,环境变量被存储在另一内存区,叫做用户环境区,这块内存中的变量可以被子进程访问。变量赋值的方式是:

    variable_name = variable_value

    如果对一个已经有值的变量赋值,新值将取代旧值。取值的时候要在变量名前加$,$variable_name可以在引号中使用,这一点和其他高级语言是明显不同的如果出现混淆的情况,可以使用花括号来区分

    例如:echo "Hi, $as",不会输出“Hi, hello worlds”,而是输出“Hi,”。这是因为Shell把$as当成一个变量,而$as未被赋值,其值为空。正确的方法是:echo "Hi, ${a}s"

    单引号中的变量不会进行变量替换操作。

    变量无需事先声明,需要给变量赋值时,可以这么写: varname=值 [var2=val2 ....]

    请注意这边等号左右不能有空格。 要取用一个变量的值,只需在变量名前面加一个 $: # assign a="hello world"  # 等号两边均不能有空格存在 # print printf '%s ' "A is: $a"

    其输出结果如下: A is: hello world

    有时候变量名可能会和其它文字混淆,比如: num=2 echo "this is the $numnd"   # 输出 this is the       — shell 尝试寻找 $numnd 的值 echo "this is the ${num}nd" # 输出 this is the 2nd   — 修好了!

    # 花括号可以隔开变量名,但是放歪了的话… echo "this is the {$num}nd" # 输出 this is the {2}nd — 切是切开了,但是…

    var=1
    var=$(expr "$var" + 1) # expr 收到三个参数 '1' '+' '1',

    关于变量,还需要知道几个与其相关的Linux命令。

    env用于显示用户环境区中的变量及其取值;

    set用于显示本地数据区和用户环境区中的变量及其取值;

    unset用于删除指定变量当前的取值,该值将被指定为NULL;

    export命令用于将本地数据区中的变量转移到用户环境区。

  • 相关阅读:
    requests模块获取cookie和禁止重定向
    python 获取当前,上级,上上级路径
    jmeter正则表达提取器以及全局变量
    Linux性能监控软件netdata中文汉化版
    windows下搭建jenkins+allure+pytest
    Flask 重写wtforms验证器异常信息
    redis info 详解
    centos 安装setup命令的方法
    redis 配置
    linux 使用 vim 玩python
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6421450.html
Copyright © 2020-2023  润新知