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命令用于将本地数据区中的变量转移到用户环境区。

  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6421450.html
Copyright © 2011-2022 走看看