bash中的变量

bash中的变量

<span style="display: inline !important;float: none;background-color: transparent;color: rgb(51, 51, 51);font-family: " 0px;"="" sc","helvetica="" pingfang="">

本文目录

  • 1 局部变量与环境变量
  • 2 设置变量
  • 3 环境变量

局部变量与环境变量

在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变量后,该变量可以被当前进程和当前进程的子进程读取和使用,也就是说,该变量成为了环境变量。

原文发布于微信公众号 - mwangblog(mwangblog)

原文发表时间:2018-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python快速计算Fibonacci数列中第n项的方法

from time import time from functools import lru_cache def fibo1(n): '''递归法''' ...

33670
来自专栏Golang语言社区

C和Go相互调用

C可以调用Go,并且Go可以调用C, 如果更进一步呢, C-->Go-->C 或者 Go-->C-->Go的调用如何实现?

23830
来自专栏c#开发者

[原创]PipelineTools 文件传输工具

功能模块只有 1/文件目录-〉文件目录 2/文件目录-〉MSMQ 3/MSMQ-〉MSMQ 4/MSMQ -〉文件目录 在传输MSMQ是文件不能超过4M 下载文...

38170
来自专栏mathor

线程的基本概念

14340
来自专栏七夜安全博客

无线安全专题_破解篇03--打造个人字典

12840
来自专栏Python小屋

回调函数原理与Python实现

回调函数的定义与普通函数并没有本质的区别,但一般不直接调用,而是作为参数传递给另一个函数,当另一个函数中触发了某个事件、满足了某个条件时就会自动调用回调函数。下...

41180
来自专栏JetpropelledSnake

Python学习笔记之Python对象反射、类反射、模块反射

24540
来自专栏娱乐心理测试

vue 方法回调通知执行下一个方法

在项目中有很多这样的需求,在一个方法执行完成拿到数据后才可以执行下一个方法,这就需要在第一个方法执行完后有个回调函数通知下一个方法可以执行了。

26320
来自专栏我的技术专栏

Java Thread wait、notify与notifyAll

15720
来自专栏JackeyGao的博客

Django小技巧08: Blank or Null

Django Model API 中提供了blank和null两个参数, 非常容易混淆。当我第一次使用 Django 的时候, 总是不能恰当的使用这两个参数。

8130

扫码关注云+社区

领取腾讯云代金券