精华内容
下载资源
问答
  • 2021-05-16 02:14:57

    Shell变量的作用域(Scope),就是Shell变量的有效范围(可以使用的范围)。

    在不同的作用域中,同名的变量不会相互干涉,就好像A班有个叫小明的同学,B班也有个叫小明的同学,虽然他们都叫小明(对应于变量名),但是由于所在的班级(对应于作用域)不同,所以不会造成混乱。但是如果同一个班级中有两个叫小明的同学,就必须用类似于“大小明”、“小小明”这样的命名来区分他们。

    Shell变量的作用域可以分为三种:

    有的变量可以在当前Shell会话中使用,这叫做全局变量(globalvariable);

    有的变量只能在函数内部使用,这叫做局部变量(localvariable);

    而有的变量还可以在其它 Shell 中使用,这叫做环境变量(environmentvariable)。

    全局变量

    所谓全局变量,就是指变量在当前的整个Shell会话中都有效。每个Shell会话都有自己的作用域,彼此之间互不影响。在Shell中定义的变量,默认就是全局变量。

    想要实际演示全局变量在不同Shell会话中的互不相关性,可在图形界面下同时打开两个Shell,或使用两个终端远程连接到服务器(SSH)。

    首先打开一个Shell窗口,定义一个变量a并赋值为99,然后打印,这时在同一个Shell窗口中是可正确打印变量a的值的。然后再打开一个新的Shell窗口,同样打印变量a的值,但结果却为空,如图1所示。

    这说明全局变量a仅仅在定义它的第一个Shell中有效,对其它Shell没有影响。这很好理解,就像小王家和小徐家都有一部电视机(变量名相同),但是同一时刻小王家和小徐家的电视中播放的节目可以是不同的(变量值不同)。

    需要强调的是,全局变量的作用范围是当前的Shell会话,而不是当前的Shell脚本文件,它们是不同的概念。打开一个Shell窗口就创建了一个Shell会话,打开多个Shell窗口就创建了多个Shell会话,每个Shell会话都是独立的进程,拥有不同的进程ID。在一个Shell会话中,可以执行多个Shell脚本文件,此时全局变量在这些脚本文件中都有效。

    例如,现在有两个Shell脚本文件,分别是a.sh和b.sh。a.sh的代码如下:

    #!/bin/bashecho$ab=200

    b.sh的代码如下:

    #!/bin/bashecho$b

    打开一个Shell窗口,输入以下命令:

    $a=99

    $../a.sh

    99

    $.b.sh

    200

    $

    从输出结果可以发现,在Shell会话中以命令行的形式定义的变量a,在a.sh中有效;在a.sh中定义的变量b,在b.sh中也有效。

    局部变量

    Shell也支持自定义函数,但是Shell函数和C/C++、Java等其他编程语言函数的一个不同点就是:在Shell函数中定义的变量默认也是全局变量,它和在函数外部定义变量拥有一样的效果。请看下面的代码:

    #!/bin/bash#定义函数functionfunc(){a=99}#调用函数func#输出函数内部的变量echo$a

    输出结果:

    99

    a是在函数内部定义的,但是在函数外部也可以得到它的值,证明它的作用域是全局的,而不是仅限于函数内部。

    要想变量的作用域仅限于函数内部,那么可以在定义时加上local命令,此时该变量就成了局部变量。请看下面的代码:

    #!/bin/bash#定义函数functionfunc(){locala=99}#调用函数func#输出函数内部的变量echo$a

    输出结果为空,表明变量a在函数外部无效,是一个局部变量。

    Shell变量的这个特性和JavaScript中的变量是类似的。在JavaScript函数内部定义的变量,默认也是全局变量,只有加上var关键字,它才会变成局部变量。

    环境变量

    全局变量只在当前Shell会话中有效,如果使用export命令将它导出,那么它就在所有的子Shell中也有效了,这称为“环境变量”。

    环境变量被创建时所处的Shell被称为父Shell,如果在父Shell中再创建一个Shell,则该Shell被称作子Shell。当子Shell产生时,它会继承父Shell的环境变量为自己所用,所以说环境变量可从父Shell传给子Shell。不难理解,环境变量还可以传递给孙Shell。

    注意,环境变量只能向下传递而不能向上传递,即“传子不传父”。

    在一个Shell中创建子Shell最简单的方式是运行bash命令

    通过exit命令可以一层一层地退出Shell。

    下面演示一下环境变量的使用:

    $a=22#定义一个全局变量

    $echo$a  #在当前Shell中输出a,成功

    22

    $bash  #进入子Shell

    $echo$a  #在子Shell中输出a,失败

    $exit  #退出子Shell

    exit

    $exporta  #将a导出为环境变量

    $bash  #重新进入子Shell

    $echo$a  #在子Shell中再次输出a,成功

    22

    $exit  #退出子Shell

    exit

    $exit  #退出父Shell,结束整个Shell会话

    可以发现,默认情况下,a在子Shell中是无效的;使用export将a导出为环境变量后,在子Shell中就可以使用了。

    exporta这种形式是在定义变量a以后再将它导出为环境变量,如果想在定义的同时导出为环境变量,可以写作exporta=22。

    注意,本节我们一直强调的是环境变量在子Shell中有效,并没有说它在所有的Shell种有效;如果你通过终端创建一个新的Shell,那么它就不是当前Shell的子Shell,环境变量对这个Shell就是无效的。

    此外,通过export命令导出的环境变量是临时的,关闭Shell会话后它就销毁了。所以,这种环境变量也只是在局部范围内起作用,并不影响所有Shell。

    如果想让环境变量在所有Shell中都有效,并且能够永久保存,在关闭Shell后也不丢失,那么就需要把环境变量写入启动文件。至于如何写入文件,请大家自行百度,这里就不再赘述了。

    更多相关内容
  • 设置全局环境变量:先创建局部变量,通过export命令到处到全局变量。 1.修改子shell中全局环境变量不影响该变量在父shell中的值。 2.子shell无法通过使用export命令改变父shell中全局环境变量的值 ...

    设置全局环境变量:先创建局部变量,通过export命令导出到全局变量。
    1.修改子shell中全局环境变量不影响该变量在父shell中的值。
    在这里插入图片描述
    2.子shell无法通过使用export命令改变父shell中全局环境变量的值
    在这里插入图片描述
    3.删除环境变量:unset myname
    在这里插入图片描述
    4.显示个别环境变量的值:printenv 变量名 不要用:env 变量名
    5.linux系统没有一直只显示全局环境变量的命令。
    set命令会显示为某个特定进程设置的所有的环境变量,包括局部变量、全局变量一级用户定义变量。
    (摘自:linux命令行与shell脚本编程大全)

    展开全文
  • Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围)。 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他们都叫小明(对应于变量...

    来自:http://c.biancheng.net/view/773.html

    Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围)。

    在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他们都叫小明(对应于变量名),但是由于所在的班级(对应于作用域)不同,所以不会造成混乱。但是如果同一个班级中有两个叫小明的同学,就必须用类似于“大小明”、“小小明”这样的命名来区分他们。

    Shell 变量的作用域可以分为三种:

    • 有的变量可以在当前 Shell 会话中使用,这叫做全局变量(global variable);
    • 有的变量只能在函数内部使用,这叫做局部变量(local variable);
    • 而有的变量还可以在其它 Shell 中使用,这叫做环境变量(environment variable)。

    全局变量

    所谓全局变量,就是指变量在当前的整个 Shell 会话中都有效。每个 Shell 会话都有自己的作用域,彼此之间互不影响。在 Shell 中定义的变量,默认就是全局变量。

    想要实际演示全局变量在不同 Shell 会话中的互不相关性,可在图形界面下同时打开两个 Shell,或使用两个终端远程连接到服务器(SSH)。

    首先打开一个 Shell 窗口,定义一个变量 a 并赋值为 1,然后打印,这时在同一个 Shell 窗口中是可正确打印变量 a 的值的。然后再打开一个新的 Shell 窗口,同样打印变量 a 的值,但结果却为空,如图 1 所示。
     

    打开两个Shell会话
    图1:打开两个 Shell 会话


    这说明全局变量 a 仅仅在定义它的第一个 Shell 中有效,对其它 Shell 没有影响。这很好理解,就像小王家和小徐家都有一部电视机(变量名相同),但是同一时刻小王家和小徐家的电视中播放的节目可以是不同的(变量值不同)。

    需要强调的是,全局变量的作用范围是当前的 Shell 会话,而不是当前的 Shell 脚本文件,它们是不同的概念。打开一个 Shell 窗口就创建了一个 Shell 会话,打开多个 Shell 窗口就创建了多个 Shell 会话,每个 Shell 会话都是独立的进程,拥有不同的进程 ID。在一个 Shell 会话中,可以执行多个 Shell 脚本文件,此时全局变量在这些脚本文件中都有效。

    例如,现在有两个 Shell 脚本文件,分别是 a.sh 和 b.sh。a.sh 的代码如下:

    
    #!/bin/bash
    echo $a
    b=200

    b.sh 的代码如下:

    #!/bin/bash
    echo $b

    打开一个 Shell 窗口,输入以下命令:

    $ a=99
    $ . ./a.sh
    99
    $ . b.sh
    200
    $

    从输出结果可以发现,在 Shell 会话中以命令行的形式定义的变量 a,在 a.sh 中有效;在 a.sh 中定义的变量 b,在 b.sh 中也有效。

    局部变量

    Shell 也支持自定义函数,但是 Shell 函数和 C/C++Java 等其他编程语言函数的一个不同点就是:在 Shell 函数中定义的变量默认也是全局变量,它和在函数外部定义变量拥有一样的效果。请看下面的代码:

    #!/bin/bash
    
    #定义函数
    function func(){
    a=99
    }
    
    #调用函数
    func
    
    #输出函数内部的变量
    echo $a

    输出结果:
    99

    a 是在函数内部定义的,但是在函数外部也可以得到它的值,证明它的作用域是全局的,而不是仅限于函数内部。

    要想变量的作用域仅限于函数内部,那么可以在定义时加上local命令,此时该变量就成了局部变量。请看下面的代码:

    
    #!/bin/bash
    
    #定义函数
    function func(){
    local a=99
    }
    
    #调用函数
    func
    
    #输出函数内部的变量
    echo $a

    输出结果为空,表明变量 a 在函数外部无效,是一个局部变量。

    Shell 变量的这个特性和 JavaScript 中的变量是类似的。在 JavaScript 函数内部定义的变量,默认也是全局变量,只有加上var关键字,它才会变成局部变量。

    环境变量

    全局变量只在当前 Shell 会话中有效,如果使用export命令将它导出,那么它就在所有的子 Shell 中也有效了,这称为“环境变量”。

    环境变量被创建时所处的 Shell 被称为父 Shell,如果在父 Shell 中再创建一个 Shell,则该 Shell 被称作子 Shell。当子 Shell 产生时,它会继承父 Shell 的环境变量为自己所用,所以说环境变量可从父 Shell 传给子 Shell。不难理解,环境变量还可以传递给孙 Shell。

    注意,环境变量只能向下传递而不能向上传递,即“传子不传父”。

    在一个 Shell 中创建子 Shell 最简单的方式是运行 bash 命令,如图 2 所示。
     

    进入子 Shell
    图2:进入子 Shell


    通过exit命令可以一层一层地退出 Shell。

    下面演示一下环境变量的使用:

    $ a=22      #定义一个全局变量
    $ echo $a    #在当前Shell中输出a,成功
    22
    $ bash    #进入子Shell
    $ echo $a    #在子Shell中输出a,失败
    
    $ exit    #退出子Shell
    exit
    $ export a    #将a导出为环境变量
    $ bash    #重新进入子Shell
    $ echo $a    #在子Shell中再次输出a,成功
    22
    $ exit    #退出子Shell
    exit
    $ exit    #退出父Shell,结束整个Shell会话

    可以发现,默认情况下,a 在子 Shell 中是无效的;使用 export 将 a 导出为环境变量后,在子 Shell 中就可以使用了。

    export a这种形式是在定义变量 a 以后再将它导出为环境变量,如果想在定义的同时导出为环境变量,可以写作export a=22

    注意,本节我们一直强调的是环境变量在子 Shell 中有效,并没有说它在所有的 Shell 种有效;如果你通过终端创建一个新的 Shell,那么它就不是当前 Shell 的子 Shell,环境变量对这个 Shell 就是无效的。

    此外,通过export命令导出的环境变量是临时的,关闭 Shell 会话后它就销毁了。所以,这种环境变量也只是在局部范围内起作用,并不影响所有 Shell。

    如果想让环境变量在所有 Shell 中都有效,并且能够永久保存,在关闭 Shell 后也不丢失,那么就需要把环境变量写入启动文件。至于如何写入文件,请大家自行百度,这里就不再赘述了。

    展开全文
  • 变量类型:全局变量(环境变量)和局部变量...1、全局变量(环境变量):环境变量可用于定义shell的运行环境,环境变量可以在配置文件中定义与修改,也可以在命令行中设置,但是命令行中的修改操作在终端重启时就会丢失,

    变量类型:全局变量(环境变量)和局部变量(本地变量)
    环境变量可以在定义它们的shell及其派生出来的任意子进程的shell中使用。局部变量只能在定义它们的函数/脚本中使用。还有一些变量是用户创建的,其他的则是专用的shell变量。

    1、全局变量(环境变量):

    环境变量可用于定义shell的运行环境,环境变量可以在配置文件中定义与修改,也可以在命令行中设置,但是命令行中的修改操作在终端重启时就会丢失,因此最好在配置文件中修改(用户家目录的“.bash_profile“文件或者全局配置“/etc/profile”、“/etc/bashrc”文件或者“/etc/profile.d”文件中定义。)将环境变量放在profile文件中,每次用户登录时这些变量值将被初始化。比如HOME、USER、SHELL、UID等再用户登录之前就已经被/bin/login程序设置好了。

    常见系统环境变量:

    TMOUT:设置自动退出的误操作等待时间
    HOSTTYPE:系统文件系统类型
    HISTSIZE:历史命令记录条数
    HOME:用户登录时进入的目录,家目录
    UID:当前用户的id
    SHELL:当前shell解释器
    PWD:当前所在路径(每改变一次目录,该值就会改变)
    PATH:可执行文件默认路径
    等等。

    可以用echo来显示查看全局变量(eg:echo $HOME)。env(或printenv)、set也可以用来查看系统的环境变量,但不是单独查看。而用unset临时取消环境变量(eg:unset USER),要永久生效还是要写到配置文件中

    自定义环境变量(采用export):
    ①export 变量名=value
    ②变量名=value;export 变量名
    ③declare -x 变量名=value
    这里依旧是临时生效,在shell终端关闭后就消失了,写到配置文件中则永久生效(注意:写到配置文件中后需要运行一遍配置文件的脚本才可生效,否则等重启时生效)

    命令行的三种方式测试如下:
    这里写图片描述

    关于环境变量PATH与export的更详细的内容,可参考: Linux环境变量与系统编程学习笔记

    2、局部变量(本地变量):

    本地变量在用户当前的shell生存期的脚本中使用。在一个函数中将某个变量声明为local,则该变量就是一个局部变量,只在本函数中有效。
    定义:

    变量名=value
    变量名=’value’
    变量名=”value”
    shell中变量名的要求:一般遵循字母、数字、下滑线组成,不能以数字开头

    eg:以下脚本执行后(交互式非交互式都可以测试)输出什么( c {c}等同)?

    a=192.168.1.1
    b='192.168.1.2'
    c="192.168.1.3"
    echo "A=$a"
    echo "B=$b"
    echo "C=${c}"
    a=192.168.1.1-$b
    b='192.168.1.2-$b'
    c="192.168.1.3-$b"
    echo "A=$a"
    echo "B=$b"
    echo "C=${c}"

    输出结果如下:

    A=192.168.1.1
    B=192.168.1.2
    C=192.168.1.3
    A=192.168.1.1-192.168.1.2
    B=192.168.1.2-$b
    C=192.168.1.3-192.168.1.2-$b

    总结分析:
    单引号与双引号的区别在于:单引号内若存在变量,存在的变量当做字符串不会被解析,原样输出;而双引号中若存在变量,该变量会被解析出其具体的值再加入到字符串中。①不加引号可以直接定义内容包含数字、字符串、路径名等,适合定义数字②单引号适合于纯定义字符串,③而双引号适合于字符串的内容中包含有变量的内容的定义。(习惯:数字以及不带空格的简单字符串不加引号,其它长的特别是有空格的字符串加双引号;遇到“$变量名”,但不想解析的加单引号,但一般出现$都是为了解析变量,所以单引号较少使用)

    注意:单引号与双引号的特点不具有普遍性,如下:
    在普通shell中:

    ETT=123
    echo '$ETT'	//打印$ETT(单引号不解析)
    echo "$ETT"    //打印123(双引号解析)

    而在awk中调用shell变量:

    awk 'BEGIN {print '$ETT'}'//打印123(单引号解析)
    awk 'BEGIN {print "$ETT"}'//打印$ETT(双引号不解析)

    虽然在awk中不具有普遍性,但是在普通Shell中还是具有普遍性的。

    3、关于局部变量的其它一些问题

    ①用反引号将命令的结果作为变量名是常用的方法,eg:cmd=`date +%F`
    ②用$符号将命令的结果作为变量名也比较常用,eg:cmd=$(date +%F)
    ③变量在大括号上的使用:在以时间、主机名等为包名一部分来打包的时候常用

    eg1:用时间作为文件名的一部分打包

    cmd=$(date +%F)    //由于`date +%F`的反引号不容易辨认,就不太使用`date +%F`
    tar -zcf code_$(date+ %F)_kang.tar.gz /etc //没有问题
    tar -zcf code_`date +%F`_kang.tar.gz /etc   //没有问题
    tar -zcf code_kang_$cmd.tar.gz /etc    //没有问题
    tar -zcf code_$cmd_kang.tar.gz /etc	//会有歧义,因为系统会不清楚是应该解析$cmd还是cmd_kang
    tar -zcf code_${cmd}_kang.tar.gz /etc  //不会有歧义

    对后两种测试结果如下(不加{}的与理想结果是不符的):
    这里写图片描述
    eg2:用主机名与时间打包

    cmd=$(date +%F)
    host=$(hostname)
    tar -zcf code_${cmd}_${host}.tar.gz /etc   

    测试:
    这里写图片描述
    养成将字符串括起来使用的习惯防止不易发现的错误。

    4、Shell的特殊变量:

    $0:获取当前执行的shell脚本的文件名(执行时给定的是完整路径则获取到的也是完整路径)

    两个命令与$0的组合测试:获取一个带路径的文件的路径名与文件名两部分

    dirname(获取目录名部分)
    basename(获取文件名部分)

    测试:
    这里写图片描述

    $n:获取当前执行的shell脚本的第n个参数,如果n=0则获取的是脚本的文件名。如果n>9则需要用大括号括起来,eg:${21}

    测试$n:

    这里写图片描述

    $*:获取当前执行的shell的所有参数,将所有的命令行参数视为单个字符串
    $#:获取当前shell命令行中参数的总个数
    $@:这个程序的所有参数"$1" "$2" "$3" "...",这是将参数传递给其它程序的最佳方式,因为它会保留所有内嵌在每个参数里的任何空白
    
    $*与$@的区别:
    $*将命令行的所有参数视为一个字符串:"$1$2$3..."
    $@将命令行的每个参数视为单个的字符串:"$1" "$2" "$3" ...

    基本测试如下:
    这里写图片描述

    获取状态变量:
    $$:获取当前的shell进程号
    $?:获取执行上一个指令的返回值(0为成功,非零为失败),可以对上一个命令执行是否成功进行判断。
    $_:在此之前执行的命令或脚本的最后一个参数

    $?变量其实获取的是上一个程序返回给父进程shell的返回值(该值在0-255之间:0表示运行成功,2表示权限拒绝,1~125为运行失败原因是脚本命令、系统命令错误或参数传递错误,126为找到该命令但是无法执行,127为无该命令/程序,>128表示命令被系统强制结束)

    $?的不同返回值测试:
    这里写图片描述
    $?的值范围测试如下:

    这里写图片描述

    $?在脚本中的应用:
    常用来判断上一步是否成功(压缩失败打印ERROR压缩成功打印OK):
    这里写图片描述

    展开全文
  • Shell中局部变量和全局变量

    千次阅读 2021-12-12 22:07:52
    shell编程过程中,不同于其他编程...不做特殊声明,Shell中变量都是全局变量 Tips:大型脚本程序中函数慎用全局变量 2、局部变量: 定义变量时,使用local关键字 函数内和外若存在同名变量,则函数内部变量覆...
  • 全局变量:不仅对当前shell,对其子进程也可见 局部变量:只能在定义他们的进程中可见 1.定义一个局部变量tom tom=test 2.定义一个全局变量jack export jack=test //export 表示全局 3.env或者printenv命令可以查看...
  • Shell 变量的作用域可以分为三种: ...Shell 也支持自定义函数,但是 Shell 函数和 C++、Java、C# 等其他编程语言函数的一个不同点就是:在 Shell 函数中定义的变量默认也是全局变量,它和在函数外部定
  • 使用shell全局变量出现的问题

    千次阅读 多人点赞 2014-04-11 17:33:16
    原因及使用全局变量的方法: cat $C | grep -v '^#' | while read LINE你的这句开启了一个子shell, do  if [ "x$A" = "x1" ]; then  export B=$A  echo $B  fi done ...
  • shell局部变量和全局变量

    千次阅读 2019-06-18 13:09:51
    定义局部变量是可以用local关键字 函数内和外若存在同名变量,则函数内部变量会覆盖外部变量 脚本举例: #! /bin/bash var1="hello world" function test { var2=87 } test echo var1 #hello world echo ...
  • 1.作用域不同:全局变量的作用域为整个程序,它的声明在后面的各个部分都可以发生作用,而局部变量仅仅为定义的某个函数。且局部变量只能在局部进行使用。 2.优先级不同:局部变量优先于全局变量。 3.生命周期不同:...
  • Shell全局变量

    千次阅读 2010-12-10 22:06:00
    Shell全局变量
  • shell 变量 全局变量

    2021-11-24 11:00:24
    环境变量也可称为全局变量,是系统预先定义好的,可以在创建它们的 shell 及其派生出来的任意子进程 shell 中使用。 比如: [root@node1 ~]# echo $USER root 局部变量只能在创建它们的 shell 函数或脚本中使用...
  • 环境变量:当前shell和子shell有效本地变量:函数的生命周期;函数结束时变量被自动销毁 注意: 如果函数中定义了普通变量,且名称和局部变量相同,则使用本地变量 由于普通变量和局部变量会冲突,建议在函数中只...
  • 一、全局变量: 任何地方都生效的变量,默认情况下,脚本主体内定义全局变量,函数内可以用,函数外也可以用 [root@server ~]# vim overall.sh #!/bin/bash function fun1() { temp=$[ $value + 5 ] ...
  • Shell变量的作用域(Scope),就是Shell变量的有效范围(可以使用的范围)。在不同的作用域中,同名的变量不会相互干涉,就好像A班有个叫小明的同学,B班也有个叫小明的同学,虽然他们都叫小明(对应于变量名),但是由于...
  • 详解shell 变量

    千次阅读 2021-05-14 12:15:21
    脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。在Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。这意味着,Bash ...
  • 最近实现了一个shell脚本,功能简单来说就是从文件中按行读取然后将所有行拼接成一行写入一个文件,关键代码如下 path_all="" cat $1 | while read line ...按照常理shell中的变量默认是全局变量,不会存在变量
  • 1、什么是变量保存变化的数据——变量名:名称固定,由系统预设或用户自定义——变量值:根据用户设置、系统环境变化而变化2、如何定义变量——变量名=变量的值2.1变量名的规则(1)数字、字母、下划线(2)字母区分大小...
  • shell脚本中环境变量(全局变量) 普通变量(局部变量) 在shell脚本设置了环境变量,如export LIBRARY_PATH=./lib/,执行了此脚本后, 在执行生成的可执行文件,提示错误 error while loading shared libraries: ...
  • shell局部变量与全局变量 [root@bigdata111 shell]# linux=7.2 [root@bigdata111 shell]# echo $linux 7.2 [root@bigdata111 shell]# bash [root@bigdata111 shell]# echo $linux #变成了空 [root@bigdata...
  • Shell变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围)。在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他们都叫小明(对应于变量名)...
  • 在bash shell中,环境变量分为:全局和局部二类环境变量。 概述 全局环境变量 全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则只是创建它们的shell可见。在linux系统中有系统环境变量,...
  • 全局变量在当前 shell 与 子shell 环境中都有效。 定义格式:$ export 变量名=值 举例使用 # 定义局部变量 $ name=dzm $ echo $name dzm # 进入子shell $ sh # 输出变量为空 sh-3.2$ echo $name # 退出 sh-3.2$ ...
  • w 命令 变量 $ SSH_TTY表示登录终端 bash命令 pstree进程树 export设定全局变量(向下兼容) unset取消全局变量
  • 配置全局变量常用命令配置全局变量 3.新建android变量 4.将自己SDK路径下的tools和platforms-tools加进新建的android变量 5.打开Path变量 6.将配置的环境变量加进到Path里面 %android% 常用命令...
  • 本文介绍了bash shell命令行参数与命令行选项的操作方法,有关shell 命令行参数的实例教程,有需要的朋友参考下。
  • 什么是shell? 个人觉得,接触linux的人,或多或少接触过shell名词,但是如果要问到shell具体是个什么东西,相信很多人,比如我,说不出一个子丑寅卯来. 这一篇blog的目的就是好好学习一下什么是bash shell. 我们先看一下...
  • shell 编程实战–全局变量、局部变量 全局变量 全局变量可以在脚本中定义,也可以在某个函数中定义。在脚本中定义的变量都是全局变量,其作 用域为从被定义的地方开始,一直到Shell脚本结束或者被显式地删除 如下...
  • shell-变量定义、变量赋值

    千次阅读 2020-09-14 15:44:02
    Shell 中,当第一次使用某变量名时,实际上就定义了这个变量。创建和设置变量的语法: varName=varValue 如果没有给出变量值,则变量会被赋予一个空字符串。 注意,在赋值操作符“=”的周围不要有任何空格...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,395
精华内容 45,758
关键字:

shell全局变量

友情链接: ssh_excelUpload.rar