zoukankan      html  css  js  c++  java
  • 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命令用于将本地数据区中的变量转移到用户环境区。

  • 相关阅读:
    Nginx 禁止IP访问
    Nginx服务优化详解
    adb不响应
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)
    内存泄露情况
    AndroidManifest笔记
    RecyclerView设置verticalSapcing等
    Fragment回调顺序及getActivity()为NullPointerException解决方法
    git tag
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6421450.html
Copyright © 2011-2022 走看看