<code id='hu706'><strong id='hu706'></strong></code>
<span id='hu706'></span>
  1. <tr id='hu706'><strong id='hu706'></strong><small id='hu706'></small><button id='hu706'></button><li id='hu706'><noscript id='hu706'><big id='hu706'></big><dt id='hu706'></dt></noscript></li></tr><ol id='hu706'><table id='hu706'><blockquote id='hu706'><tbody id='hu706'></tbody></blockquote></table></ol><u id='hu706'></u><kbd id='hu706'><kbd id='hu706'></kbd></kbd>

    <dl id='hu706'></dl>
      <i id='hu706'></i>
      <i id='hu706'><div id='hu706'><ins id='hu706'></ins></div></i>

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

        <ins id='hu706'></ins>
        <fieldset id='hu706'></fieldset>

        1. Linux Shell脚本系列教程(四):使用函数添加环境变量

          • 时间:
          • 浏览:5
          • 来源: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的值  ,这样可以制止添加空变量的情形  。