4月24 利用shell脚本添加环境变量
利用shell脚本添加环境变量
在shell脚本设置了环境变量,如export LIBRARY_PATH=./lib/,执行了此脚本后, 在执行生成的可执行文件,提示错误
error while loading shared libraries: libww.so: cannot open shared object file: No such file or directory
但是如果把export那句话单独在命令行运行,在gcc编译代码后不会出现问题
怎么也想不通,为什么脚本执行了,设置了环境变量,但是运行可执行文件总是失败。
查看大牛博客,终于发现
原因是执行脚本用./test.sh的方式,如果采用source test.sh,则环境变量会生效。
./XXX.sh的时候,脚本里面打印PATH是改了,但是在终端echo $PATH却没有看到变化,因为这样执行等于说不在当前进程
那么。这是为什么呢?
关键:直接执行一个脚本文件是在一个子shell中运行的,而source则是在当前shell环境中运行的。
1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;
2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量)
3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。
4、不用export定义的变量只对该shell有效,对子shell也是无效的。
另:
---- 在UNIX系统中,我们在运行shell程序或系统命令的过程如下:
---- 假设在当前的shell环境下,我们运行ps -f命令.
---- 首先,当前的shell会调用:fork()命令,产生一个subprocess,该子进程完全复制了父进程的所有环境;
---- 之后,当前的shell会调用:exec ps -f命令,在新的子进程的环境中,运行ps -f 命令.子进程的环境变量会根据新的应用进行调整,并使之运行,当应用完成之后,子进程结束,返回到父进程.
---- 因此,通过上述过程分析,$cbpsprofile的运行的结果就可以预见,该shell程序的运行,环境变量重新赋值仅仅在子进程中,程序运行完后,返回到父进程,父进程的环境变量是不会受到影响的
参考:
https://blog.csdn.net/xhz_1983/article/details/73250033
https://blog.csdn.net/wgembed/article/details/22385469
https://www.cnblogs.com/fdd566/p/6692595.html
https://blog.csdn.net/moqingxinai2008/article/details/53909464
4月24 利用shell脚本添加环境变量相关推荐
- 利用shell脚本添加环境变量
在shell脚本设置了环境变量,如export LIBRARY_PATH=./lib/,执行了此脚本后, 在执行生成的可执行文件,提示错误 error while loading shared lib ...
- shell脚本基础(环境变量、重定向、数学运算、退出脚本)
一.使用环境变量 1.环境变量 所谓环境变量,就是用来存储有关shell会话和工作环境信息的特性,这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们.这也是存储持久数据 ...
- Shell脚本,环境变量,位置变量,预定义变量,自定义变量,单引号双引号反引号用法,一般变量和交互式变量read定义,密文输入变量信息
Shell脚本,变量,系统预设的环境变量,位置变量,预定义变量,用户的自定义变量 一.定义变量 1.以固定的名称存放可以变化的值 2.格式为 变量名=变量值 3.取消变量的格式 unset 变量名 4 ...
- 【263】Linux 添加环境变量 全局 shell 脚本
Linux电脑添加环境变量 方法一:通过修改 profile 文件添加环境变量 1. 打开终端,输入[vi /etc/profile],如下所示,点击回车 [ocean@ygs-jhyang-w1 L ...
- shell for循环命令行_精心汇总的24道shell脚本面试题
虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到 shell 脚本的问题,它有助于你在工作环境中自动完成很多任务. 如下是一些面试过程中,经常会遇 ...
- linux中利用shell脚本条件执行linux命令
linux中利用shell脚本条件执行命令 在linux环境中,我们总会有一些命令需要经常用,例如经常跳转到某些目录下或者执行某些命令,输入一连串的命令是很烦的,此时我们可以预先写一些脚本然后根据我们 ...
- linux shell ddos木马,利用Shell 脚本解决DDOS攻击问题
思路:主要利用 awk ,if结构,sort,uniq #!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | ...
- springboot 远程调用shell脚本,环境为windows
springboot 远程调用shell脚本,环境为windows pom.xml配置 yml配置文件 实体类 配置服务器SSH 具体业务 测试 由于需要调用shell脚本实现一些自动化控制操作,特记 ...
- linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...
环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...
- 解决Linux下无法利用shell脚本启动conda虚拟环境问题
解决Linux下无法利用shell脚本启动conda虚拟环境问题 问题 直接在脚本中激活conda环境时遇到了一个问题 解决 查看.bashrc文件 .bashrc文件在 /home/用户名 里面,因 ...
最新文章
- 大型AI已有自主意识了?LeCun开喷Open AI首席科学家
- hdu 3064
- 【Android RTMP】NV21 图像旋转处理 ( 问题描述 | 图像顺时针旋转 90 度方案 | YUV 图像旋转细节 | 手机屏幕旋转方向 )
- Android华容道之一步一步实现-8-开始游戏
- C语言程序运行慢是什么问题,为什么cgo的表现如此缓慢?我的测试代码有什么问题吗?...
- 单片机原理及其应用——单片机控制按键依次点亮8只发光二极管
- 利用URL拼接爬取获取有道翻译内容
- Vue系列vue-router的配置使用(一)
- mysql数据库做关联查询_mysql 数据库join关联查询using(xxx)的作用
- activex控件方法和事件
- 自动摘要学习计划(英语)
- ViewState - 页面状态保留
- IntelliJ IDEA汉化解决方案教程
- Windows部署的gogs开机自启动
- C语言——今天星期几(详细注释)
- godaddy mysql不存在_Godaddy免费空间问题及解决方案总结
- android为什么会用流量,手机流量为什么会偷跑?
- PowerBI实用技巧:案例一(动态切换坐标轴列值,例如交叉表头、列,图表坐标轴等)
- 自动驾驶仿真实验流程--以PanoSim仿真软件为例
- Win10修改MySQL数据库密码示例
热门文章
- Retrofit之CallAdapter简单解析
- 程序员转行杀猪是种什么体验?
- Android Multimedia框架总结(二十六)利用FFmpeg进行解码直播流
- 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑
- python的变量在使用前不需要先赋值_每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。_学小易找答案...
- 11年瑞纳手动挡值多少钱_1个本科学历,值多少钱?
- mysql 加锁 索引_把MySQL中的各种锁及其原理都画出来
- npm,yarn对比
- c语言编程菜单流程图,C语言课程设计————写下流程图! 谢谢
- oracle里的字符串类型,Oracle中的字符串類型及相關函數詳解