`

关于脚本定义环境变量问题的解决

 
阅读更多

偶然碰到一个脚本定义环境变量后,echo 显示为空值。

在网上搜索了一下各种解决方法,始终没有解决。。

 

后偶然发现脚本里缺少了#!/bin/bash 一行。。。加上后,问题解决。。

 

(因还不熟悉shell script 脚本的规则,暂不知道具体原因,记录下来,以便以后查阅。)

 

虽未碰到其他情况,但仍附上一点关于脚本定义环境变量的问题解决方法,以供学习之用:

/home/lee#cat Test //脚本内容
#!/bin/bash
export a=abc
echo $a

/home/lee#sh Test // 在子shell里运行此脚本

abc
/home/lee#echo $a //没有被export出来

/home/lee#. ./Test //在当前shell运行此脚本

abc
/home/lee#echo $a //出来了!!!
abc

(***注意***:在当前shell运行脚本时,两个点之间是有空格的,即:.空格./Test)

下面讨论.空格./xx.sh和./xx.sh的区别:

 

. ./xx.sh  中 第一个点代表source

无论是 . 还是source 都是在当前shell下执行这个脚本,不会在子shell中

 

如果用./xx.shbash xx.sh这会在子shell中执行。

 

 

 . 空格 ./....
第一个相当于二楼所述,第二个是相对路径.
如果是 ../.... 没有空格的话就是指相对路径

 

 

例子说明:

[iscs@linux-sp1]:/users/iscs>$ AAA='outside'
[iscs@linux-sp1]:/users/iscs>$ echo $AAA
outside
[iscs@linux-sp1]:/users/iscs>$ cat ss.sh
#!/bin/sh

AAA='inside'
export AAA
[iscs@linux-sp1]:/users/iscs>$ ./ss.sh
[iscs@linux-sp1]:/users/iscs>$ echo $AAA
outside
[iscs@linux-sp1]:/users/iscs>$ . ./ss.sh
[iscs@linux-sp1]:/users/iscs>$ echo $AAA
inside

 

. ./x

分享到:
评论

相关推荐

    自定义添加linux系统java环境变量脚本及安装包

    本资源为二狗自己编写的快速定义java环境变量的脚本,可以帮助你剩下不少时间,操作前建议备份/etc/profile文件:mv /etc/profile{,.bak} 防止脚本问题覆盖掉文件的内容 资源分为脚本和安装包两部分内容,放置在同一...

    linux-oracle环境变量及自启动脚本

    在Linux系统中,Oracle数据库的运行依赖于一系列的环境变量设置和自启动脚本的配置。这些要素确保了数据库服务的稳定性和可管理性。本文将深入探讨与"linux-oracle环境变量及自启动脚本"相关的知识点。 一、Oracle...

    <Linux>shell 脚本环境变量问题深层探索【实践+实验】

    Linux shell 脚本环境变量问题深层探索 shell 脚本环境变量是 Linux 系统中一个非常重要的概念,它对 shell 脚本的执行和调试产生了深远的影响。本文将深入探索 shell 脚本环境变量的问题,从实践和实验的角度来...

    在Linux中用批处理设置环境变量的方法

    Linux操作系统是众多IT专业人员工作中的重要平台之一,环境变量作为Linux系统中一个非常重要的概念,它被用于定义系统运行环境的动态属性,诸如系统路径、系统变量等,这些属性会影响到应用程序的运行。在Linux中...

    自动配置环境变量_批处理

    批处理(Batch Script)是一种在Windows操作系统中执行一系列命令的脚本方式,非常适合用于自动化任务,包括环境变量的设置。本文将详细探讨如何通过批处理脚本来自动配置环境变量。 首先,我们需要了解什么是环境...

    VB获取系统环境变量

    常见的环境变量有“PATH”,它指定了操作系统在何处寻找可执行文件,还有“TEMP”和“TMP”,它们定义了临时文件的存储位置。 在VB中,我们可以利用内置的`Environ`函数来访问这些环境变量。`Environ`函数接受一个...

    系统环境变量的添加、修改、删除

    在IT领域,系统环境变量是操作系统为应用程序提供的一组预定义的环境参数,它们对于软件运行至关重要,尤其是在涉及路径配置、编程语言环境等场景中。本文将深入探讨如何通过批处理脚本的方式对Windows系统环境变量...

    JAVA JDK 系统环境变量一键修改脚本.zip

    在Windows操作系统中,环境变量是用来存储系统和用户定义的信息,如路径、库位置等。JAVA_HOME是一个特定的环境变量,它指向Java Development Kit(JDK)的安装目录。当我们在命令行中运行Java相关命令时,系统会...

    联想拯救者23y7000p出厂环境变量

    2. **PSModulePath环境变量**:这个环境变量是专门为PowerShell设计的,它定义了PowerShell模块的默认搜索路径。PowerShell模块是一组相关的函数、类型和别名,可以被PowerShell脚本或命令行调用。当用户尝试导入或...

    Houdini添加HOUDINI_OTLSCAN_PATH环境变量的bat脚本

    在这个例子中,`setx`命令用于设置环境变量,`if not defined`语句检查变量是否已定义,`delayedexpansion`则允许我们在批处理脚本中动态改变变量的值。最后,`pause`命令是为了让用户看到脚本执行的结果,防止窗口...

    Linux Shell脚本系列教程(三):变量和环境变量.docx

    Linux Shell 脚本系列教程(三):变量和环境变量 本文主要讲解了 Linux Shell 脚本系列教程(三):变量和环境变量,涵盖了普通变量、环境变量、获取字符串的长度等内容。 变量 在 Linux Shell 脚本中,变量是必...

    一键切换java环境变量批处理.zip

    "一键切换java环境变量批处理.zip"中的文件就是这样一个解决方案。它包含一个批处理脚本,这个脚本会根据用户的需求,自动修改系统环境变量,实现64位和32位JDK的切换。脚本的工作原理可能是这样的: 1. 首先,脚本...

    用BAT设置WINDOWS系统环境变量,如java的jdk环境变量

    总的来说,了解并正确设置这些环境变量对于任何Java开发者都是至关重要的,它不仅可以帮助我们顺畅地进行开发工作,还能避免因为路径问题导致的诸多困扰。通过学习和使用这些批处理脚本,可以提升我们的系统管理能力...

    java环境变量一键配置

    在编写这样的批处理脚本时,通常会使用`setx`命令来设置用户级环境变量(适用于当前用户),或`reg add`命令来直接修改注册表中的系统环境变量(适用于所有用户)。注意,修改注册表需要谨慎,错误的操作可能导致...

    linux 系统管理篇--环境变量

    #### 知识点一:环境变量的作用与定义 环境变量在Linux系统中起着非常关键的作用,它们是用于存储系统配置信息的一种机制,能够被多个程序共享,并且可以在系统运行过程中进行修改。通过设置环境变量,可以方便地为...

    unix环境变量编程

    环境变量存储了关于用户环境的信息,如路径、shell类型、语言设置等。本篇文章将深入探讨Unix环境变量编程,旨在帮助你理解和利用这些变量进行更高效的系统管理与软件开发。 1. **环境变量的基本概念** - **定义**...

    将sqlcmd与脚本变量结合使用定义.pdf

    最后,描述中提到了一些Cmd.exe环境变量的规则,以及sqlcmd中预定义的一些脚本变量,如`SQLCMDUSER`, `SQLCMDPASSWORD`等,它们与sqlcmd的运行方式和行为紧密相关。 总结来说,将sqlcmd与脚本变量结合使用是一种...

    环境变量的先后顺序对同一软件不同版本的影响

    环境变量是在操作系统环境中定义的一系列特殊变量,用于存储有关系统配置的信息。这些变量可以由应用程序读取或直接使用,以确定路径、库位置等关键信息。环境变量对于系统管理员来说非常重要,因为它们可以用来控制...

    linux超级基础系列——shell变量(本地变量和环境变量

    Linux shell编程中,变量是存储信息的基本单元,它们可以保存路径名、文件名、数字或其他任何类型的文本...理解本地变量和环境变量的区别,以及如何在脚本中正确使用它们,是成为一名优秀的Linux shell程序员的基础。

Global site tag (gtag.js) - Google Analytics