`

Shell脚本最好都能自定义自己所需的环境变量,无论什么情况

阅读更多

这样做的好处:

1、很清楚的查到自己脚本使用到的环境变量对应的值;

2、不因为任务外部情况的变化而导致shell脚本无法执行;

 

现实中,常常有开发同学写的shell脚本的环境变量依赖于系统设置的值(譬如设置在/etc/profile),殊不知这种情况是有特定机制的,那就是:需要执行脚本的是当前用户,因为环境变量设置在/etc/profile,意味着当用户登录系统时这些环境变量才生效,这里的前提是登录。如果执行这个脚本的不是当前用户,脚本依赖的环境变量就是无效的。

 

具体场景 写道
用A用户登录,echo $JAVA_HOME,会显示出值/usr/xxx/java
当A用户执行一个脚本xxx.sh,这个脚本直接使用了$JAVA_HOME,执行命令:sudo -u admin ./xxx.sh,$JAVA_HOME并不是预期的/usr/xxx/java
原因:用admin用户执行xxx.sh,登录用户是A

 

分享到:
评论

相关推荐

    Tony老师聊shell—环境变量配置文件

    在Linux中,环境变量可以通过`export`命令来设置,并且可以在shell脚本中进行读取和修改。 #### 三、环境变量配置文件详解 1. **/etc/environment** - 这个文件包含了全局的环境变量设置。它被`login`程序读取并...

    shell脚本学习指南

    综上所述,《Shell脚本学习指南》这本书涵盖了从基础到进阶的全部内容,是学习和提升Shell脚本技能的良好资源。通过阅读和实践,你将能熟练掌握编写高效、实用的Shell脚本,从而提升Linux环境下的工作效率。

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

    本教程主要探讨如何在Shell脚本中使用函数来添加环境变量,这对于管理自定义的软件安装路径和依赖库至关重要。 环境变量在Linux中起着至关重要的作用,它们存储了操作系统在执行各种任务时所需的信息。例如,`PATH`...

    手把手图解,详解Jenkins ,svn ,maven 项目持续集成 SHELL 脚本

    3. **与Jenkins结合**:在Jenkins中,可以通过SHELL脚本来执行构建前后的自定义任务,如代码格式检查、环境变量设置等。 4. **在持续集成中的作用**:SHELL脚本可以用来自动化部署过程,例如打包、发布、启动服务等...

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

    在本教程中,我们将深入探讨如何在Shell脚本中使用函数来添加环境变量,这对于自定义系统行为和优化软件的可访问性至关重要。 首先,环境变量是Linux系统中的关键组成部分,它们是全局变量,存储着与用户环境相关的...

    hadoop 部分 shell 脚本

    3. **环境变量**:使用`export`定义环境变量,确保子进程能继承这些变量。 4. **函数**:创建自定义函数,提高代码复用性和可读性。 5. **脚本参数**:通过$1, $2...访问脚本传入的参数,方便脚本的灵活调用。 四、...

    Linux环境变量.docx

    在Linux系统中,环境变量扮演着至关重要的角色,它们提供了系统和用户程序所需的各种配置信息。环境变量是在系统启动或用户登录时初始化的全局变量,对所有子进程都是可见的,因为它们具有继承性。了解并正确管理...

    《Linux命令行与Shell脚本编程大全》 学习笔记

    本书旨在帮助读者掌握在Linux环境中高效工作所需的技能,无论是日常使用还是进行系统管理、自动化任务,都能得心应手。下面我们将深入探讨其中的关键知识点。 一、Linux命令行基础 Linux命令行是Linux系统的核心...

    mysql-shell-安装脚本

    5. **环境变量**:安装脚本可能涉及设置环境变量,如`MYSQL_ROOT_PASSWORD`和`MYSQL_USER`,来存储用户的登录信息。这些变量在后续的Shell会话中可以被引用,方便连接到MySQL服务器。 6. **脚本执行**:运行安装...

    shell脚本自动安装mysql-5.5.30实用.pdf

    在Linux环境中,编写Shell脚本自动化安装MySQL数据库是一个常见的需求,特别是对于系统管理员和开发者来说,能够快速、一致地部署MySQL服务是至关重要的。这个名为“shell脚本自动安装mysql-5.5.30实用.pdf”的文档...

    Shell 构建flutter + Navtive 生成APK 脚本

    根据给定的信息,本文将详细解释如何通过Shell脚本来构建Flutter与Native相结合的应用,并最终生成APK文件。本文档不仅提供了具体的步骤指南,还将深入探讨关键配置细节和技术要点。 ### 一、概述 Shell 脚本是...

    Linux环境变量

    Linux环境变量是一组预定义的变量,它们用于存储操作系统运行所需的信息。环境变量可以被程序访问并利用这些信息来进行某些操作,比如路径设置、语言偏好等。环境变量有两种类型:全局环境变量和局部环境变量。 - *...

    mac_os-config:用于自定义macOS计算机设置和配置的Shell脚本

    首先,让我们了解什么是Shell脚本。在Unix和类Unix系统(如macOS)中,Shell是命令行解释器,它接收用户输入的指令并执行。Shell脚本是一系列命令的集合,可以被保存为一个文件并像程序一样运行。通过编写Shell脚本...

    java 环境变量设置大全

    它涉及到Java开发、编译和运行的全过程,确保Java应用程序能够正确地找到所需的资源。本文将详细介绍如何配置Java环境变量,包括JDK安装路径、JAVA_HOME、PATH、CLASSPATH等关键变量的设定。 首先,Java ...

    Shell知识结构图

    在编写脚本时,可以使用环境变量来获取系统信息,如 PATH(系统路径)、MAIL(邮件目录)、HOSTNAME(主机名)等。此外,还有预定义变量,如 $0(脚本名)、$1、$2、$3(位置参数)、$#(位置参数的数量)、$*(所有...

    Learning the bash Shell

    总的来说,通过学习《Learning the Bash Shell》,读者将能够熟练掌握Bash shell的各个方面,无论是日常的命令行操作,还是编写复杂的shell脚本,都能游刃有余。这不仅可以提升Linux系统的使用效率,还能为成为一名...

    Shell Scripting

    - **变量设定**:允许脚本存储和引用数据,如环境变量和用户自定义变量。 - **I/O重定向**:允许更改命令的输入来源和输出目的地。 - **管道**:连接多个命令,形成数据流处理链。 - **环境定制**:用户可以修改...

    批处理设置JAVA环境变量

    此外,VBScript可以增强批处理的能力,比如通过WScript.Shell对象来调用系统API设置全局环境变量,这比批处理文件仅能设置当前会话的环境变量更为持久。下面是一个VBScript示例: ```vbscript Set WshShell = ...

    linux shell

    此外,Shell脚本支持参数传递,允许自定义参数,增强了灵活性。例如,当需要定期执行一系列特定操作,如备份文件或监控系统状态时,Shell脚本就显得尤为实用。 要开始使用Shell,你需要知道如何进入和退出Shell环境...

Global site tag (gtag.js) - Google Analytics