• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > Linux Shell脚本系列教程(四):使用函数添加环境变量

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

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了linux shell脚本,linux shell脚本攻略,linux shell脚本实例,linux常用shell脚本,linux编写shell脚本等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、简介

环境变量通常用于存储路径列表,这些路径用于搜索可执行文件、库文件等。例如:$PATH、$LD_LIBRARY_PATH,它们通常看起来像这样:
PATH=/usr/bin;bin
LD_LIBRARY_PATH=/usr/lib;lib
</div>

这意味着只要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=""   #默认情况下,该变量未定义
</div>

二、添加环境变量

当你必须使用源代码编译生成程序并将其安装到某个特定路径中时,有项极其常见的任务就是讲该程序的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
</div>

三、使用函数添加环境变量

当要添加的路径较少的时候,可以逐个手动添加,但是,当路径较长较多时,手动添加就会变得耗时耗力,而且出错的可能性会增大。其实大可不必如此做,我们可以在.bashrc-中加入可以添加环境变量的函数,由函数完成对环境变量的添加,例如我们可以用下面的函数完成1.4.2节的任务:
prepend() { [ -d "$2" ] && eval $1=\"$2':'\$$1\" && export $1; }
</div>
这个函数需要两个参数,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
</div>

用以上函数添加环境变量确实方便不少,但这个函数本身不够完善,当环境变量为空时,这是将会在末尾添加一个多余的冒号(:),需要作如下改变,使得函数更加严谨:
prepend(){ [ -d "$2" ] && eval $1=\"\$2\$\{$1:+':'\$$1}\" && export $1 }
</div>
改动的地方仅有第二个语句,这里用到了一种shell参数扩展的形式:
${parameter:+expression}
</div>
当且仅当parameter有值而且不为空,才使用expression的值,这样可以避免添加空变量的情况。

</div>

您可能想查找下面的文章:

  • 使用Linux shell脚本实现FTP定时执行批量下载指定文件
  • Linux shell脚本输出日志笔记整理(必看篇)
  • shell脚本 自动创建用户详解及实例代码
  • Linux Shell中三种引号的用法及区别
  • linux脚本判断条件总结(必看)
  • linux shell发送Email邮件的方法详解
  • Linux shell 之 提取文件名和目录名的一些方法总结
  • shell脚本实现输入密码显示星号
  • linux shell在while中用read从键盘输入的实现
  • shell脚本通过expect实现自动单边无密登录功能

相关文章

  • 关于Shell脚本效率优化的一些个人想法
  • 一个简单的linux命令 mv
  • linux下定时执行任务的方法及crontab 用法说明(收集整理)
  • Shell脚本创建指定大小文件的测试数据
  • Shell脚本一次读取文件中一行的2种写法
  • 利用linux的timerfd_create实现计时器示例分享
  • 一个ping检测告警函数代码
  • Shell脚本中使用function(函数)示例
  • Shell脚本查看进程内存真实占用情况
  • linux下批量删除utf8 bom的实现方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Shell中实现字符串反转方法分享
    • 分享awk变量$0的妙用
    • Linux du命令查看文件夹大小并按降序排列
    • Shell脚本批量重命名文件后缀的3种实现
    • linux下保留文件系统下剩余指定数目文件的shell脚本
    • 备份shell脚本实例代码
    • shell中的数组操作小结和冒泡排序实现脚本分享
    • Shell脚本实现防止国外ip访问服务器
    • Shell脚本实现自动输入密码登录服务器
    • 一个监控网卡流量的shell脚本

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有