• Linux环境变量之shell中export定义全局变量和echo 变量的区别


    目录

    1、环境变量和用户变量

    2、env

    3、export

     4、echo

    1、环境变量和用户变量

    shell的变量,可以分为环境变量和自定义变量两种类型,两者的区别在于作用范围不一样。环境变量可以在其进程的子进程中继续有效,而自定义的变量的范围不能生效到其进程的子进程当中。

    /etc/profile涉及系统的环境,即环境变量相关。这里进行修改的话会对所有的用户都起作用。/etc/profile首先会执行/etc/profile.d目录下的所有*.sh文件。

    .bashrc文件(在用户的家目录下)则只对当前的用户有用。~/.basrc、~/.bash_file为当前用户目录下的配置信息。修改后使用source命令进行更新。

    使用env命令:显示的是当前用户的环境变量。但是不会显示其自定义变量。

    使用export命令:功能如同env一样,也是显示当前用户的环境变量,只不过该命令的输出是按照变量名进行排序的。

    使用declare命令:显示当前shell中定义的所有变量,包括用户的环境变量和自定义的变量,改命令的输出是按照变量名进行排序的。

    使用set命令:功能如同declare命令,显示当前shell中定义的所有变量,包括用户的环境变量和自定义的变量。

    2、env

    env是一个外部命令,程序文件/bin/env,用于列出所有环境变量及其赋值。但不会显示其自定义变量。显示出所有的环境变量。

    1. [root@sc-slave mysql]# env
    2. XDG_SESSION_ID=2
    3. HOSTNAME=sc-slave
    4. SHELL=/bin/bash
    5. TERM=xterm
    6. HISTSIZE=1000

    3、export

    设置环境变量。使用export设置的变量就成为了环境变量,而没有使用export 设置的则是自定义变量。但是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时定义这个变量的一个拷贝,这个过程就称之为变量输出。

    使用export就是为了我们定义一个变量时可以在子shell中被调用,而不需要重复去定义。Linux export命令用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。

    生成环境变量的两种方法:环境变量可以在其进程的子进程中继续有效,而自定义变量则无效。

    1. var1=“hello"
    2. export var1
    export $var1="hello

    例如:增加临时环境变量。

    1. [root@localhost ~]# LIANXI=aa
    2. [root@localhost ~]# export PATH LIANXI=aa
    3. [root@localhost ~]# env

     4、echo

    echo用显示文字、打印文字。

    echo $HOME

    显示环境变量HOME的值。

    命令格式:

    echo 【选项】【输出内容】

    选项:-e :支持反斜线控制的字符转换,前面有斜线的字符将作为转义字符。

    控制字符:

    \a:输出警告音

    \b: 退格键,也就是向左删除

    \n: 换行符

    \r:回车键

    \t:制表符,tab键

    \v:垂直制表符

    \0nnn :按八进制ASCII码表输出字符,其中0为数字0,nnn是3位八进制数

    \xhh :按十六进制ASCLII码表输出字符,其中hh是两位十六进制数

    echo 输出字符串

    给字符串加上单引号或双引号,或者什么都不加。

    echo ‘aaa’

    echo “aaa”

    echo aaa

    1. [root@sc-slave mysql]# echo 'aaa'
    2. aaa
    3. [root@sc-slave mysql]# echo "aaa"
    4. aaa
    5. [root@sc-slave mysql]# echo aaa
    6. aaa

     echo输出含转义字符的字符串

    ! 选项加上-e,字符串加双引号。

  • 相关阅读:
    CNN网络结构-VGG
    学习C++图像处理最快最好的途径
    快速上手 TypeScript
    Spring Security CSRF 保护指南
    MATLAB算法实战应用案例精讲-【图像处理】机器视觉(补充篇)
    计算机网络
    Android studio 实现生成二维码和扫描二维码
    测试必备工具 —— Postman实战教程
    【学习笔记之Linux】云服务器搭建
    面向全局搜索的自适应领导者樽海鞘群算法-附代码
  • 原文地址:https://blog.csdn.net/m0_52165864/article/details/126433079