精华内容
下载资源
问答
  • Linux Shell 判断环境变量 是否存在

    千次阅读 2017-03-16 08:10:02
    #!/bin/bash if [ 0"$PATH" = "0" ]; then echo "not found" ...比如这里判断环境变量PATH是否存在,存在这输出该环境变量,不存在则输出 not found 作者:jiankunking 出处:http://blog.csdn.net/jiankunking
    #!/bin/bash
    if [ 0"$PATH" = "0" ]; then
        echo "not found"
    else 
        echo $PATH
    fi
    

    比如这里判断环境变量PATH是否存在,存在这输出该环境变量,不存在则输出 not found

    这里写图片描述

    在方括号的两侧都有空格,在-f、-lt、=等符号两侧同样也有空格。如果没有这些空格,Shell解释脚本的时候就会出错。

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking

    展开全文
  • linux shell获取环境变量运算

    千次阅读 2018-12-09 22:11:23
    很多shell运算需要获取环境变量,例如a+b,其中a或者b可能都来自于环境变量。但是环境变量可能出现不存在的情况,这时运算就会出错。 所以在计算前需要判断其是否存在 [ -z $test ] 更复杂的 i ...

    很多shell运算需要获取环境变量,例如a+b,其中a或者b可能都来自于环境变量。但是环境变量可能出现不存在的情况,这时运算就会出错。
    所以在计算前需要判断其是否存在

    [ -z $test ]
    

    更复杂的
    i

    nput=$1
    test_mode=$2
    if [ -z $test_mode ]; then
    	ret=1
    elif [ $test_mode -eq 1234 ] && [$input -eq 5678 ];then
    	ret=1
    else
    	ret=0
    fi
    echo $ret
    

    测试结果

    [zl@localhost test]$ ./test.sh 
    1
    [zl@localhost test]$ ./test.sh 1234
    1
    [zl@localhost test]$ ./test.sh 1234 5678
    0
    [zl@localhost test]$ 
    
    展开全文
  • linux shell export 环境变量

    千次阅读 2013-11-22 20:27:31
    用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。 此时,系统中将有两个shell,一...

    shell 与 export命令
    用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令

    或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。

    此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建

    的shell。当一个脚本程序运行完毕,脚本shell将终止,返回到执行该脚本之前的shell。

     

    从这种意义上来说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。

    在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,

    当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,

    要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。

     

    export命令将使系统在创建每一个新的shell时,定义这个变量的一个拷贝。

    这个过程称之为变量输出。

    [例]

    在本例中,变量myfile是在dispfile脚本程序中定义的。

    然后用export命令将变量myfile输出至任何子shell,例如当执行printfile脚本程序时产生的子shell。

    dispfile脚本程序清单:

     

    myfile=”List”
    export myfile
    echo “Displaying $myfile”
    pr –t –n $myfile
    printfile

     
    printfile脚本程序清单:

    echo “Printing $myfile”
    lpr $myfile&

     

    运行结果:

    $dispfile
    Displaying List
    1 screen
    2 modem
    3 paper
    Printing List
    $

     

    export 功能说明:设置或显示环境变量。
    语  法:export [-fnp][变量名称]=[变量设置值]
    补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。
    参  数:
     -f  代表[变量名称]中为函数名称。
     -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
     -p  列出所有的shell赋予程序的环境变量。

     

    从学习export命令理解到的Shell环境和变量生存期

      最近在学习BASH的export命令时碰到了一个难道(书上说export是将自定义变量变成

    系统环境变量):我在一个脚本文件中定义一个了变量,然后export变量,按照我自己的想法,

    执行完这个脚本后,在提示符下一定可以用echo显示出它的值,可结果却不是这样,脚本执行完后

    用set根本看不到有这个变量存在。为什么呢?我百思不得其解,最后将问题贴出来,一位前辈告诉

    我说用source+脚本文件就可以了,我试了一下果然可以,但一个新的问题又出来了。我将脚本中

    export命令删除后,用source一样可以。那这个export好像没有什么用呀。

      在经过多次尝试后发现了一些东西,是我自己猜的,如果有什么不对的地方,请指正,谢谢。

      执行一个脚本时,会先开启一个子shell环境(不知道执行其它程序是不是这样),然后将父

    shell中的所有系统环境变量复制过来,这个脚本中的语句就在子shell中执行。(也就是说父shell

    的环境变量在子shell中可以调用,但反过来就不行,如果在子shell中定义了环境变量,只对该shell
    或者它的子shell有效,当该子shell结束时,也可以理解为脚本执行完时,变量消失。)

    为了证明这一点,请看脚本内容:

      test='value'
      export test
      这样的脚本执行完后,test实际上是不存在的。接着看下面的:
      test='value'
      export test
      bash

      这里在脚本最后一行再开一个子shell,该shell应该是脚本文件所在shell的子shell,这个脚本

    执行完后,是可以看到test这个变量的,因为现在是处于它的子shell中,当用exit退出子shell后,

    test变量消失。

      如果用source对脚本进行执行时,如果不加export,就不会在子shell中看到这个变量,

    因为它还不是一个系统环境变量呀,如脚本内容是:
      test='value'
     
     用source执行后,在shell下是能看到这个变量,但再执行bash开一个子shell时,test是不会

    被复制到子shell中的,因为执行脚本文件其实也是在一个子shell中运行,所以我再建另一个脚本

    文件执行时,是不会输入任何东西的,内容如:echo $test。所以这点特别注意了,明明在提示符

    下可以用echo $test输出变量值,为什么把它放进脚本文件就不行了呢?

      所以得出的结论是:

    1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;

    2、一个shell中的系统环境变量会被复制到子shell中(用export定义的变量);

    3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失
    (并不能返回到父shell中)。

    3、不用export定义的变量只对该shell有效,对子shell也是无效的。

     

    整理了一下贴子:为什么一个脚本直接执行和用source执行不一行呢?这也是我自己碰到的一个问题。manual原文是这样的:

    Read and execute commands from filename in the current shell environment and
    return the exit status of the last command executed from filename.

    明白了为什么不一样了吧?直接执行一个脚本文件是在一个子shell中运行的,而source则是在

    当前shell环境中运行的。根据前面的内容,你也已经明白其中的道理了吧。

    转自
    展开全文
  • Linux Shell中的变量-环境变量

    千次阅读 2015-10-07 15:12:10
    参考:《Linux命令 / 编辑器与Shell编程》 ################################################ note that :与其他编程语言不同,Bash中的变量没有数据类型的区别,变量中的值都是以字符串的形式保存...环境变量:用

    参考:《Linux命令 / 编辑器与Shell编程》


    ################################################

    note that :与其他编程语言不同,Bash中的变量没有数据类型的区别,变量中的值都是以字符串的形式保存的,如果要进行数值计算,需要进行特殊转换


    Linux Shell下的变量按其使用目的可分为3种类型:

    环境变量:用于保存操作系统运行时使用的环境参数

    位置变量:Bash将传递给脚本的参数保存在位置变量中,以便于在脚本中引用这些参数

    预定义变量:由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等

    自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等


    #########################################################


    保存系统运行情况的环境变量


    系统环境变量是用户登陆系统时,由系统自动生成并设置的一组变量。所有的进程 / 脚本都可以引用这些变量,因此环境变量的值通常与系统息息相关。

    可使用set命令查看环境变量

    # set

    1.系统中常见的环境变量


    (1)家目录位置变量HOME

    HOME变量用于保存当前登陆用户的家目录位置,这个变量的值是由系统用户文件/etc/passwd中的用户家目录字段定义的。查看当前用户的家目录如下:

    #使用echo命令查看变量HOME的值
    # echo $HOME
    

    (2)系统语言变量LANG

    LANG变量用于保存系统当前使用的语言,如果要临时修改当前系统使用的语言,通常可以通过修改该变量的值来实现。查看当前系统使用的语言如下:

    #查看变量LANG中保存的系统语言
    # en_US.UTF-8表示英语 zh_CN.UTF-8表示简体中文
    # echo $LANG
    

    临时修改系统语言可以重新指定此变量的值:

    #修改环境变量LANG的值为zh_CN.UTF-8
    # LANG=zh_CN.UTF-8

    (3)交互程序变量SHELL

    SHELL变量用于保存用户当前使用的Shell。可以通过查看该变量值的方法,快速查看当前使用的Shell

    #快速查看当前用户使用的Shell
    # echo $SHELL

    (4)命令搜索路径变量PATH

    PATH变量用于保存当前用户使用的命令搜索路径。当用户输入命令时,系统会尝试在该变量保存的目录中查找命令文件

    #通过查看变量PATH值的方法查看当前用户的命令搜索路径
    # echo $PATH

    note that:PATH使用冒号":"将不同的目录分隔开


    2.只读环境变量

    只读环境变量的值是无法更改的

    #使用readonly命令查看只读环境变量
    # readonly

    3.如何修改环境变量


    可以在命令提示符中修改环境变量,但在命令提示符中修改的环境变量将在用户重新登录 / 系统重启后消失,这是可以在配置文件中修改环境变量:

    /etc/profile:全局用户配置文件。如果修改了此文件的设置,修改的设置将会影响系统中的所有用户

    ~/.bash_profile:用户个人配置文件。如果修改了此文件中的变量,修改的设置只会影响单个用户

    /etc/bashrc:全局环境变量配置文件。此文件中定义了所有用户的环境变量

    ~/.bashrc:个人环境变量配置文件。此文件中定义了用户的环境变量


    note that:~表示家目录 .bash_profile和.bashrc是隐藏文件(.开头的为隐藏文件) 以上四个文件单独修改一个即可,且有时可能某个文件不存在

    如果想让修改后的环境变量立即生效,可以运行命令:

    # source xxx  #xxx表示你修改的文件
    例如 source /etc/profile


    展开全文
  • linuxshell脚本设置环境变量

    千次阅读 2016-12-28 16:13:11
    linuxshell脚本设置环境变量 ——怎样用脚本来设置环境变量 我想编一个脚本程序,用来对一组环境变量进行设置或取消 但由于脚本程序对变量的设置在退出脚本后就消失了,有没有间接办法能够实现这个功能? ...
  • HISTFILESIZE 与 HISTSIZE都是history命令需要用到的两个shell变量,这两个变量到底有什么区别呢? HISTFILESIZE 定义了在 .bash_history 中保存命令的记录总数,可以理解为.bash_history文件中最多只有HISTFILES.....
  • 如何在LinuxShell设置环境变量

    千次阅读 2017-12-19 17:21:47
    1. 使用如下命令,即可将NEW_VAR定义为当前Shell环境变量。  export NEW_VAR="Testing export" 2. 使用如下命令检查NEW_VAR是否已存在于环境变量中。  printenv | grep NEW_VAR
  • shell命令和编程设置环境变量

    千次阅读 2018-05-19 17:13:07
    linux系统使用shell设置环境变量 变量简介 定制环境变量 设置环境变量 小结 在编程中设置环境变量 getenv()读取环境变量 setenv()设置环境变量 linux系统使用shell设置环境变量 变量简介 Linux是一个多...
  • 1、shell环境变量命令 显示变量 root# echo $HOME 查看环境变量HOME 设置、变量 root# export WELCOME=“HE” 设置环境变量WELCOME为HE 查看所有变量 ...
  • linux shell环境变量总结

    千次阅读 2016-05-28 13:52:51
    所以每次登陆一个终端都是重新打开一个shell进程,会重新加载环境变量,因此之前设置环境变量都会失效。 当在此shell下打开一个shell脚本时就是重新打开一个shell进程,其可以继承父进程的全局变量,也可以...
  • Linux用户在登陆到Linux服务器时,一些登陆的提示欢迎信息,以及特定的...Linux中的这个shell环境会读取很多不同的配置文件来达成上述目的,同时还有登陆shell与非登陆shell的区分。本文对此作简要描述,供大家参考!
  • LinuxShell环境变量总结

    千次阅读 2011-10-20 20:01:10
    Shell环境变量在shell编程方面起到很重要的作用。分析下Shell中几个比较重要的环境变量很重要。所以下面分析一下。 1、BASH :记录当前bash shell的路径。 举例:[root@localhost awK]# echo $BASH /bin/bash 2...
  • Linux shell 环境变量及有效范围

    千次阅读 2018-11-23 00:02:58
    每当我们使用ssh客户端远程登陆一个服务时,操作系统就会给我们分配一个新的shell,并且这个shell继承了操作系统的永久环境变量。在当前的shell执行一个sh文件,都会临时产生一个子shell,该文件执行完毕后,将自动...
  • linux shell 使用变量和环境变量

    千次阅读 2018-12-08 13:23:41
    1. 使用env或printenv命令查看当前shell中定义的全部环境变量 2. 查看进程相关环境变量。首先根据进程名获取进程ID: ps -ef | grep sshd  ># root 1795 1 0 11:55 ? 00:00:00 /usr/sbin/sshd -D  ...
  • shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以...
  • 文章目录什么是环境变量PATH及作用Linux下读取当前的环境变量Linux下如何来配置环境变量方式一:在控制台bash中设置 export PATH方式二:在当前用户家目录下的.bashrc中设置 vim ~/.bashrc方式三:在当前用户家目录...
  • linux shell java lib(linux shell脚本加载java环境变量)
  • outptlinux export 转换 自定义变量 为 shell 环境变量input鸟哥-鸟哥的Linux私房菜 基础学习篇 3ed|307 declare 鸟哥-鸟哥的Linux私房菜 基础学习篇 3ed|309 全局变量 局部变量 环境变量 自定义变量algosu user...
  • 这个年代, 大家写点书, 也无非就是为了搞点钱, 基本... 关于linux shell环境变量, 我看了四本linux相关书的介绍, 结果, 没有一本书的讲解让我完全满意, 总感觉没有说清楚。所以呢, 我打算自己来写一下,如有不
  • Shell环境变量

    千次阅读 2016-05-04 21:59:38
    习惯了在Windows设置PATH的你,被Linux上各种文件可以设置环境变量头疼不已!对于可以在当前用户执行的命令,但是sudo就无法执行困惑不堪!下面,我们就系统的和大家讲解下Linux环境变量,让大家豁然开朗; 一、...
  • Linux设置环境变量的方法

    千次阅读 2013-11-14 11:11:39
    1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH=/...2.环境变量设置 一般来说,配置交叉编译工具
  • Linux设置环境变量小结

    万次阅读 2012-02-26 21:59:08
    1、总结背景  在linux系统下,如果你下载并安装了应用程序...这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。 2、变量
  • linux系统设置环境变量

    千次阅读 2007-11-05 17:56:00
    Linux环境变量及路径的设置shell运行起来后,会自动设置很多变量,这些变量是可以通过命令行来修改和添加。最重要的几个变量有: PATH, LD_LIBRARY_PATH和INCLUDE。变量中存储的是一个字符串,用 echo 命令可以...
  • Linux Shell中的变量-自定义变量

    千次阅读 2015-10-07 15:39:21
    参考:《Linux命令 / 编辑器与Shell编程》 ################################################ note that :与其他编程语言不同,Bash中的变量没有数据类型的区别,变量中的值都是以字符串的形式...环境变量:用
  • Linux Shell中的变量-位置变量

    千次阅读 2015-10-07 15:15:27
    参考:《Linux命令 / 编辑器与Shell编程》 ################################################ note that :与其他编程语言不同,Bash中的变量没有数据类型的区别,变量中的值都是以字符串的形式...环境变量:用
  • php 执行 shell 脚本环境变量设置

    千次阅读 2018-03-09 21:22:24
    设置环境变量问题 当使用php的脚本执行命令(如:shell_exec())时,若脚本需要系统环境变量PATH支持(如:python使用import等),则会出现找不到的错误。并且查看系统PATH,如下: echo(shell_exec('echo $PATH...
  • Linux设置环境变量

    2014-07-09 12:24:33
    yu 1、总结背景 在linux系统下,如果你下载并安装了...这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本案例基于RedHat AS4讲解环境变量定制的问题。 2、变量简介
  • Linux设置环境变量的几种方法

    千次阅读 2014-11-12 14:10:09
    1.Linux变量种类 ... 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效。 2.设置变量的三种方法  2.1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】  用VI在文件/etc/profile文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,180
精华内容 74,472
关键字:

linuxshell设置环境变量

linux 订阅