0
点赞
收藏
分享

微信扫一扫

Linux变量的定义、赋值、查看、删除(export、echo、unset)


一、变量


  • 概念:​变量就是一个字符串,可以指向一个内容,该内容可以是路径、命令、数字、字符串等...
  • 变量的分类:

  • 环境变量:​或者叫做全局变量
  • 自定义变量:​或者叫做局部变量


二、变量的定义与赋值

  • 定义:​直接使用变量名指向一个内容,该变量就即时创建/赋值:​变量名=变量所指内容

Linux变量的定义、赋值、查看、删除(export、echo、unset)_环境变量

  • 提示:

  • 通常大写字符的变量为系统默认变量,自行设置的变量建议使用小写字符(根据自己的喜好与设定)
  • 变量名称只能是英文字母和数字的组合,且不能以数字开头

注意事项

  • ①等号两边不能有空格​。例如下面是一个错误演示案例
myname = dong

Linux变量的定义、赋值、查看、删除(export、echo、unset)_环境变量_02


  • ②变量的内容有空格时,使用双引号或者单引号括起来
  • ③变量所指的内容使用""(双引号)括起来,双引号内的特殊字符如&等,可以保持原有的特性。​下面是一个演示案例:$LANG内容为en_US.UTF-8,则var="lang is $LANG" 等价于 var="lang is en_US.UTF-8"

Linux变量的定义、赋值、查看、删除(export、echo、unset)_export_03

  • ④变量所指的内容使用''(单引号)括起来,单引号内的特殊字符仅为一般字符(纯文本)。​下面是一个演示案例:var='lang is $LANG' 就是 var='lang is $LANG',并没有替换

Linux变量的定义、赋值、查看、删除(export、echo、unset)_export_04

  • ⑤可以使用\转义字符将特殊字符(ENTER、$、空格、'、\等)变为一般字符,类似于C语言。​下面是一个演示案例:var=lang\\dong等价于var=lang\dong。\\转义为一个\

Linux变量的定义、赋值、查看、删除(export、echo、unset)_echo_05

演示案例(双引号与单引号案例)


  • 单引号与双引号配对问题要注意
  • 正确案例(双引号配对):

myname="dong's name"

Linux变量的定义、赋值、查看、删除(export、echo、unset)_子进程_06

  • 错误案例(单引号不配对):​按ctrl+c结束
myname='dong's name'

Linux变量的定义、赋值、查看、删除(export、echo、unset)_子进程_07

  • 错误案例:​myname=dong's name回车之后,系统还会让你一直输入内容,因为前面个单引号找不到配对的单引号,此时可以按ctrl+c结束

Linux变量的定义、赋值、查看、删除(export、echo、unset)_export_08

演示案例

  • 设置一个变量内容为路径,并使用
work="/home/dongshao/Desktop/"

cd ${work} ==>相当于cd /home/dongshao/Desktop/

Linux变量的定义、赋值、查看、删除(export、echo、unset)_环境变量_09

三、数组变量类型的定义


  • 公式:​数组名[索引]=内容
  • 注意事项:​索引为数字,自己决定,可以随意取,但建议有顺序

使用案例

  • 逐个赋值,然后echo查看

Linux变量的定义、赋值、查看、删除(export、echo、unset)_子进程_10

  • 删除数组,然后再查看为空

Linux变量的定义、赋值、查看、删除(export、echo、unset)_unset_11

四、环境变量的定义与设置(export)


  • 概念:

  • 使用export可以使该变量成为环境变量,使变量在子进程下也可以执行
  • 普通变量类似于局部变量。环境变量类似于全局变量

  • 格式:

export 变量名

父进程和子进程的关系


  • 概念:​当我们登录Linux取得一个bash之后,这个bash就是一个独立的进程(拥有独特的PID),在这个bash下执行的任何命令都是由这个bash衍生出来的子进程
  • 两者之间的关系:​当我们在命令行执行bash这个命令之后,就会进入一个子进程。此时父进程处于等待状态,所执行的操作都在子进程中操作,输入exit或者logout可以退出这个子进程,恢复来到父进程当中
  • 特点:​子进程只会继承父进程的环境变量,而不会继承父进程的自定义变量。所以环境变量在子进程中可以使用,自定义变量不可以使用。此时就可以使用export命令设置环境变量
  • 为什么环境变量可以被子进程所使用:​当启动一个shell时,操作系统会分配一内存区给shell使用,使用export可以使自定义变量的内容写入上述的内存区域当中。当加载子进程时,子shell可以将父shell的环境变量所在的内存区域导入自己的环境变量区块当中

Linux变量的定义、赋值、查看、删除(export、echo、unset)_子进程_12

演示案例

  • 第一步:​使用bash可以进入一个子进程。然后echo ${name}发现子进程识别不了这个自定义变量

Linux变量的定义、赋值、查看、删除(export、echo、unset)_unset_13

  • 第二步:​exit退出这个子进程,然后export设置环境变量,再bash进入查看,可是识别了

Linux变量的定义、赋值、查看、删除(export、echo、unset)_echo_14

五、变量内嵌入命令的执行


  • 概念:​如果我们执行一个命令时,需要其他额外的命令来提供信息或辅助,可以使用`命令`或者$(命令)
  • 方法:

  • 方法一:​变量名=`命令`  ==>注意:`是键盘上方数字键1左边的那个按键
  • 方法二:​变量名=$(命令)


演示案例


  • uname  -r可以查看当前的Linux版本信息
  • ①我们将version变量的内容变为uname -r,然后查看version变量

version=$(uname -r)

echo ${version}

Linux变量的定义、赋值、查看、删除(export、echo、unset)_echo_15

  • ②利用这一特性,我们进入Linux内核版本的目录下。​Linux内核版本目录为:/lib/modules/4.4.0-31-generic/kernel
方式一:cd /lib/modules/`uname -r`/kernel

方式二(建议使用):cd /lib/modules/$(uname -r)/kerne

Linux变量的定义、赋值、查看、删除(export、echo、unset)_echo_16

Linux变量的定义、赋值、查看、删除(export、echo、unset)_echo_17

  • ③利用这一特性,查看crontab相关的文件信息。​locate可以查找所有相关的文件,下面我们使用locate查找与crontab然后再配合ls -ld列出来
方式一:ls -ld `locate crontab`

方式二:ls -ld $(locate crontab)

Linux变量的定义、赋值、查看、删除(export、echo、unset)_export_18

六、查看变量内容(echo)

  • 方法:​使用echo进行查看

  • 第一种:​echo  $变量名
  • 第二种(推荐):​echo  ${变量名}
  • 查看多个变量:​echo  "${变量1},${变量2}..."

Linux变量的定义、赋值、查看、删除(export、echo、unset)_子进程_19

Linux变量的定义、赋值、查看、删除(export、echo、unset)_unset_20


  • 提示:​一个变量没有指向内容时,使用echo查看时会显示为空或出现错误信息
  • echo命令相关选项:

  • -e:激活转义字符
  • -n:显示的内容不换行


七、删除变量(unset)

  • 方法:​如果不想要一个变量,可以使用unset直接删除
unset 变量名
  • 例如: 

Linux变量的定义、赋值、查看、删除(export、echo、unset)_环境变量_21

  • 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。

Linux变量的定义、赋值、查看、删除(export、echo、unset)_环境变量_22


举报

相关推荐

0 条评论