zoukankan      html  css  js  c++  java
  • shell编程之export

    shell 与 export命令
    用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令

    或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。

    此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建

    的shell。当一个脚本程序运行完毕,脚本shell将终止,返回到执行该脚本之前的shell。

    从这种意义上来说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。

    在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,

    当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,

    要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。

    export命令将使系统在创建每一个新的shell时,定义这个变量的一个拷贝。

    这个过程称之为变量输出。

    [例]

    在本例中,变量myfile是在dispfile脚本程序中定义的。

    然后用export命令将变量myfile输出至任何子shell,例如当执行printfile脚本程序时产生的子shell。

    dispfile脚本程序清单:

    myfile=”List”
    export myfile
    echo “Displaying $myfile”
    pr –t –n $myfile
    printfile

    printfile脚本程序清单:

    echo “Printing $myfile”
    lpr $myfile&

    运行结果:

    $dispfile
    Displaying List
    1 screen
    2 modem
    3 paper
    Printing List
    $

    export 功能说明:设置或显示环境变量。
    语  法:export [-fnp][变量名称]=[变量设置值]
    补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。
    参  数:
     -f  代表[变量名称]中为函数名称。
     -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
     -p  列出所有的shell赋予程序的环境变量。

     所以得出的结论是:

    1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;

    2、一个shell中的系统环境变量会被复制到子shell中(用export定义的变量);

    3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失
    (并不能返回到父shell中)。

    3、不用export定义的变量只对该shell有效,对子shell也是无效的。

  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/lfxiao/p/9438474.html
Copyright © 2011-2022 走看看