bash中的变量

作者: 学习编程王同学 | 来源:发表于2018-06-29 23:04 被阅读1次

局部变量与环境变量

在bash中,变量是一个用来存储数据的实体。每个变量都有一个名称和一个值,名称是变量的标识符,值是变量的数据。

举个例子,终端的类型被存储在变量TERM中,使用echo命令查看TERM的值:

$ echo $TERM
xterm

也可以使用{}将变量名括起来:

$ echo ${TERM}
xterm

在使用echo查看变量中的数据时,需要在变量名前加$号,如果没有加,则echo认为其是一个字符串:

$ echo TERM
TERM

echo命令中,变量被双引号" "括起来,会显示变量的数据;如果被单引号' '括起来,会将变量名显示为字符串:

$ echo "I am using ${TERM}."
I am using xterm.
$ echo 'I am using ${TERM}.'
I am using ${TERM}.

在bash中,变量分为环境变量(全局变量)和局部变量。

环境变量可以被子进程读取和修改,父进程对环境变量的修改会传递到子进程,而子进程对变量的修改不会传递到父进程。

局部变量只能在本进程中被读取和修改。

设置变量

使用变量名=值的格式来为变量赋值,需要注意的是=左右没有空格:

$ zhang=22
$ echo $zhang
22
$ zhang=55
$ echo $zhang
55

使用unset命令删除变量:

$ echo $zhang
55
$ unset zhang
$ echo $zhang

$

环境变量

在交互式bash中,还是使用环境变量多一些。

bash有一些默认的环境变量,使用env查看:

$ env
XDG_SESSION_ID=39513
TERM=xterm
SHELL=/bin/bash


# 省略

在bash中,环境变量的变量名一般全部采用大写字母。

bash中有一些默认的环境变量,比如HOSTNAME的值为计算机名称,HOME的值为用户的家目录,LOGNAME的值为当前的用户表示,PATH的值为搜索程序的目录等。

用户同样可以自己定义环境变量,使用export命令:

$ ZHANG=23
$ export ZHANG
$ bash              # 进入子进程
$ echo $ZHANG
23
$

可见,在export变量后,该变量可以被当前进程和当前进程的子进程读取和使用,也就是说,该变量成为了环境变量。

相关文章

  • bash中的变量

    局部变量与环境变量 在bash中,变量是一个用来存储数据的实体。每个变量都有一个名称和一个值,名称是变量的标识符,...

  • Shell脚本介绍

    1. bash的基础特性 1.1 变量类型 1.2 bash中的变量的种类 根据变量的生效范围等标准 1.2.1 ...

  • Shell-Bash变量与运算符

    1、Bash中变量定义的规则 说明: 变量名称,有字母,数字和下划线组成,但是不能以数字开头 在 Bash 中变量...

  • 软件安全-ShellShock攻击

    Shellshock Attack 概述认识环境变量&&bash1.普通shell变量和bash 从上述实验中我们...

  • Shell进阶脚本-内部变量

    内建变量 影响 Bash 脚本行为的变量 $BASH Bash程序的路径 $BASH_ENV 这个环境变量会指向一...

  • Bash脚本编程(2)——编程入门

    @(Bash)[编程入门] 1. Bash中的变量 1.1 变量类型 字符型 数值型 整型 浮点型 语言类型: 强...

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • shell编程基础

    Bash变量 · 在Bash中,变量的默认类型都是字符串型 如果需要要转换,用declare命令 decl...

  • bash脚本内部变量

    bash脚本内部变量 $BASH bash的程序文件的路径,如/bin/bash $BASH_ENV 该环境变量保...

  • Bash 中的数组变量

    间接声明一个数组变量的语法格式: 显式地声明一个数组变量的语法格式: 创建和使用数组的示例: 在示例中我们可以看到...

网友评论

    本文标题:bash中的变量

    本文链接:https://www.haomeiwen.com/subject/gvuzyftx.html