Shell:变量

介绍

变量用于存储管理临时数据,这些数据都是在运行内存中的。

变量类型

  1. 系统环境变量
  2. 自定义变量
  3. 特殊符号变量

系统环境变量

介绍

是系统提供的共享变量.是linux系统加载Shell的配置文件中定义的变量,共享给所有的Shell程序使用

Shell的配置文件分类

1.全局配置文件
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

2.个人配置文件
当前用户/.bash_profile
当前用户/.bashrc

一般情况下,我们都是直接针对全局配置进行操作。

在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。

系统级环境变量:Shell环境加载全局配置文件中的变量共享给所有用户所有Shell程序使用, 全局共享

用户级环境变量:Shell环境加载个人配置文件中的变量共享给当前用户的Shell程序使用, 登录用户使用

查看当前Shell系统环境变量:

env

Shell:变量

查看Shell变量(系统环境变量+自定义变量+函数):

set

Shell:变量

常用系统环境变量

变量名称 含义
PATH 与windows环境变量PATH功能一样,设置命令的搜索路径,以冒号为分割
HOME 当前用户主目录:/root
SHELL 当前shell解析器类型:/bin/bash
HISTFILE 显示当前用户执行命令的历史列表文件:/root/.bash_history
PWD 显示当前所在路径
OLDPWD 显示之前的路径
HOSTNAME 显示当前主机名
HOSTTYPE 显示主机的架构,是i386、i686、还是x86、x64等:x86_64
LANG 设置当前系统语言环境:zh_CN.UTF-8

Shell:变量

自定义变量

分类

  1. 自定义局部变量
  2. 自定义常量
  3. 自定义全局变量

自定义局部变量

就是定义在一个脚本文件中的变量, 只能在这个脚本文件中使用的变量, 就是局部变量

定义语法

var_name=value

变量定义规则

  1. 变量名称可以有字母,数字和下划线组成, 但是不能以数字开头
  2. 等号两侧不能有空格
  3. 在bash环境中, 变量的默认类型都是字符串类型, 无法直接进行数值运算
  4. 变量的值如果有空格, 必须使用双引号括起来
  5. 不能使用Shell的关键字作为变量名称

查询变量值语法

# 语法1: 直接使用变量名查询
$var_name
# 语法2: 使用花括号
${var_name}
# 区别: 花括号方式适合拼接字符串

Shell:变量

变量删除

unset 变量名

Shell:变量

自定义常量

设置变量值后就不可以修改的

语法

readonly 变量名

Shell:变量

自定义全局变量

就是在当前脚本文件中定义全局变量, 这个全局变量可以在当前Shell环境与子Shell环境中都可以使用

父子Shell环境介绍

例如: 有2个Shell脚本文件 A.sh 和 B.sh

如果 在A.sh脚本文件中执行了B.sh脚本文件, 那么A.sh就是父Shell环境, B.sh就是子Shell环境

定义语法

export name

测试:

Shell:变量

执行shell1.sh

Shell:变量

特殊符号变量

特殊变量:$n

语法

$n

含义

用于接收脚本文件执行时传入的参数
$0 用于获取当前脚本文件名称的
$1~$9, 代表获取第一输入参数到第9个输入参数
第10个以上的输入参数获取参数的格式: ${数字}, 否则无法获取

执行脚本文件传入参数语法

sh 脚本文件 输入参数1 输入参数2 ...

Shell:变量

特殊变量:$#

含义:获取所有输入参数的个数

Shell:变量

特殊变量:$*、$@

含义都是获取所有的输入参数,用于输出所有输入参数

$*$@区别

1.不使用双引号括起来, 功能一样
  $*和$@获取所有输入参数,格式为: $1 $2 ... $n
2.使用双引号括起来
  "$*"获取的所有参数拼接为一个字符串, 格式为: "$1 $2 ... $n"
  "$@"获取一组参数列表对象, 格式为: "$1" "$2" ... "$n"
  使用循环打印所有输入参数可以看出区别

循环语法

for var in 列表变量
do 
	命令
done

测试:

Shell:变量

特殊变量:$?

含义:用于获取上一个Shell命令的退出状态码, 或者是函数的返回值

每个Shell命令的执行都有一个返回值, 这个返回值用于说明命令执行是否成功

一般来说, 返回0代表命令执行成功, 非0代表执行失败

Shell:变量

特殊变量:$$

含义:用于获取当前shell环境的进程ID

Shell:变量

Shell:变量

上一篇:Linux实验总结分析报告


下一篇:CentOS7在VMware下设置成桥接模式