<i id='i96ii'><div id='i96ii'><ins id='i96ii'></ins></div></i><span id='i96ii'></span>

    <acronym id='i96ii'><em id='i96ii'></em><td id='i96ii'><div id='i96ii'></div></td></acronym><address id='i96ii'><big id='i96ii'><big id='i96ii'></big><legend id='i96ii'></legend></big></address>

    <code id='i96ii'><strong id='i96ii'></strong></code>

    <fieldset id='i96ii'></fieldset>

    <i id='i96ii'></i>
    <dl id='i96ii'></dl>

    <ins id='i96ii'></ins>

      1. <tr id='i96ii'><strong id='i96ii'></strong><small id='i96ii'></small><button id='i96ii'></button><li id='i96ii'><noscript id='i96ii'><big id='i96ii'></big><dt id='i96ii'></dt></noscript></li></tr><ol id='i96ii'><table id='i96ii'><blockquote id='i96ii'><tbody id='i96ii'></tbody></blockquote></table></ol><u id='i96ii'></u><kbd id='i96ii'><kbd id='i96ii'></kbd></kbd>
        1. Linux Shell脚本系列教程(四):使用函数添加环境变量

          • 时间:
          • 浏览:10
          • 来源:124软件资讯网

              这篇文章主要先容了Linux Shell剧本系列教程(四):使用函数添加情况变量,本文对情况变量的一知识作了先容,并给出通俗添加情况变量和使用函数添加情况变量的要领,需要的朋侪可以参考下

              一、简介

              情况变量通常用于存储路径列表 ,这些路径用于搜索可执行文件、库文件等 。例如:$PATH、$LD_LIBRARY_PATH  ,它们通常看起来像这样:

              代码如下:

              PATH=/usr/bin;bin

              LD_LIBRARY_PATH=/usr/lib;lib

              这意味着只要shell需要运行二进制可执行文件时 ,它会首先查找/usr/bin,然后查找/bin  。在ubuntu14.04中  ,PATH和LD_LIBRARY_PATH存储的路径如下所示:

              代码如下:

              PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

              /sbin:/bin:/usr/games:/usr/local/games

              LD_LIBRARY_PATH="" #默认情形下 ,该变量未界说

              二、添加情况变量

              当你必须使用源代码编译天生法式并将其安装到某个特定路径中时  ,有项极其常见的使命就是讲该法式的bin目录加入PATH情况变量 ,将其所依赖的库目录加入LD_LIBRARY_PATH情况变量  ,以便可以从下令行终规矩确运行软件  。假设我们将testApp安装到/opt/testApp目录中 ,它的二进制文件在bin目录中  ,库文件在lib目录中  ,则添加情况变量的要领如下:

              代码如下:

              export PATH=/opt/testApp/bin:$PATH #路径之间以冒号(:)分开

              export LD_LIBRARY_PATH=/opt/testApp/lib:$LD_LIBRARY_PATH

              三、使用函数添加情况变量

              当要添加的路径较少的时间  ,可以逐个手动添加  ,可是 ,当路径较长较多时 ,手动添加就会变得耗时耗力  ,而且堕落的可能性会增大  。实在大可不必云云做  ,我们可以在.bashrc-中加入可以添加情况变量的函数  ,由函数完成对情况变量的添加 ,例如我们可以用下面的函数完成1.4.2节的使命:

               代码如下:

              prepend() { [ -d "$2" ] && eval $1=\"$2':'\$$1\" && export $1; }

              这个函数需要两个参数 ,1和2  ,其中1用于存放情况变量的名称  ,如PATH ,2用于存放将要添加的情况变量  ,例如/opt/testApp/bin  。

              该函数首先执行[ -d “$2”]语句  ,判断将要添加的路径是否存在 ,存在则执行后面的语句  ,否则函数竣事;接着执行第二条语句  ,该语句将要添加的路径添加在对应情况变量的开头部门 ,纵然用前插法添加路径;最后使用export $1使得情况变量生效  。

              注重:语句eval $1=\”$2':'\$$1\”比力难以明白 ,$$1可以写成\${\$1}  ,这样比力容易明白 ,表现首先取得函数的第一个参数 ,然后再提取该参数的内容  。例如1.4.2节中的情况变量可以用如下的方式添加:

              代码如下:

              prepend() PATH /opt/testApp/bin #$1为PATH ,$2为/opt/testApp/bin

              prepend() LD_LIBRARY_PATH /opt/testApp/lib #$1为LD_LIBRARY_PATH  ,$2为/opt/testApp/lib

              用以上函数添加情况变量确实利便不少  ,但这个函数自己不够完善 ,当情况变量为空时 ,这是将会在末尾添加一个多余的冒号(:) ,需要作如下改变  ,使得函数越发严谨:

               代码如下:

              prepend(){ [ -d "$2" ] && eval $1=\"\$2\$\{$1:+':'\$$1}\" && export $1 }

              改动的地方仅有第二个语句  ,这里用到了一种shell参数扩展的形式:

               代码如下:

              ${parameter:+expression}

              当且仅当parameter有值而且不为空 ,才使用expression的值 ,这样可以制止添加空变量的情形 。