linux之shell——变量

1、变量的定义

  • 变量即在程序运行过程中它的值是允许改变的量
  • 变量是用一串固定的字符来标示不固定的值的一种方法
  • 变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息
  • 在 shell 中变量是不能永久保存在系统中的,必须在文件中声明

2、变量的命名规则

  • 变量名称中通常包含大小写字字母,数字,下划线
  • 变量名必须以字母或下划线开头,变量名的长度不能超过255个字符。

3、变量的调用

echo $变量名称
echo ${变量名称}

在这里插入图片描述

4、变量的种类

在 shell 中变量分为环境级变量,用户级变量,系统级变量。

1 环境级变量

a=8 #该定义方式之能在当前shell中使用。

[root@client mnt]# vim test.sh
[root@client mnt]# cat test.sh
#!/bin/bash
echo $a                        #编写脚本 输出变量a的值
[root@client mnt]# a=8        #定义变量
[root@client mnt]# echo $a    #当前shell中调用变量的值输出
8        #输出结果
[root@client mnt]# sh test.sh      #该方式运行脚本 会在当前shell中开启一个子shell 运行
                                   #所以无法输出a的值

在这里插入图片描述
export a=8 #定以环境变量,可以在当前shell以及其子shell中使用改变变量

[root@client mnt]# export a=5     # 定义环境变量
[root@client mnt]# echo $a        #当前shell中调用变量的值
5
[root@client mnt]# sh test.sh     # 运行脚本在但前的子shell中调用变量
5

在这里插入图片描述

2、用户级变量

定义的环境级变量,在当前shell关闭之后无法使用。可以定义用户级变量,只要时该用户使用shell 就可以一直使用该变量。
vim /root/.bash_profile #修改用户家目录下的.bash_profile 文件。
export a=8 #在文件中定义变量(增加一行)
source /root/.bash_profile # 扫描文件 加载新增配置

[root@client ~]# echo $a     #设置完成后直接使用变量  输出值
8
[root@client ~]# su - student    # 切换到其他用户之后,无法使用该变量
[student@client ~]$ echo $a     # 无法使用

在这里插入图片描述

3、系统级变量

定以系统级变量,系统中的所有用户均可以任何shell中使用该变量。
注意:用户级变量的优先级高于系统级,因为用户级的配置文件后读
vim /etc/profile # 编辑系统文件
export a=5 # 文件中增加一行定义变量
source /etc/profile #修改之后一定要source重新加载文件

[root@client ~]# echo $a     # 定义完成之后 超级用户可以使用该变量
5
[root@client ~]# su - student    #切换到普通用户
Last login: Thu May 16 09:01:35 EDT 2019 on pts/0
[student@client ~]$ echo $a    # 普通用户也可以使用该变量
5

在这里插入图片描述

4、PATH 环境变量

PATH 环境变量:用来指定系统查找存放命令的目录。
例如存在一个脚本在/mnt中,无法在别的目录中使用脚本名称直接运行该脚本,将/mnt 添加到PATH 环境变量 中去之后,就可以使用该脚本名称直接运行该脚本。
相当于告诉系统可以在/mnt寻找该脚本。

在这里插入图片描述
在这里插入图片描述

5、字符的转译

对于在系统中存在特定意义的字符以及字符串 在使用的时候会造成冲突,达不到预期的效果,使用转译可以忽略其特定的意义,只是把其当作字符进行处理。

\      转译单个字符
""     弱引用,批量转义 “” 中出现的字符, 
''     强引用,批量转义 ” 中出现的字符 
''     与"" 两者的区别在于,"" 不能转义 "\","`","!","$" 
${}    变量声明,表明括号中的内容为变量名称

在这里插入图片描述

6、变量值的传递

1 、 $n的方式
$1    脚本后的第一串字符串
$2    脚本后的第二串字符串
$3    脚本后的第三串字符串
$#    脚本后所跟字符串的个数
$*    脚本后跟的所有字符串,模式为“ 1 2 3 ”  输出一个字符串
$@    脚本后跟的所有字符串,模式为“1”“2”“3”输出多个字符串
$$    当前进程的pid 
$0    该脚本文件的名称

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、read 的方式

该方式需要交互式输入变量的值
read name #定义变量name 接下来需要输入变量的值
read -s name # 定义变量name 接下来需要输入变量的值 -s 输入的值加密不显示
read -p "input username" name # -p 先输出 引号中的内容 然后需要输入变量name的值
在这里插入图片描述

7、linux 系统中命令别名的设定

1 只能在当前环境中使用的别名

alias shijian=“date” #直接在命令行中输入 设定当前shell中的命令别名

在这里插入图片描述

2 设定某一个用户可以永久使用的命令别名

vim /root/.bashrc # 编辑用户家目录下的 .bashrc 文件
alias shijian="date" # 写入设定命令别名
source /root/.bashrc #重新加载添加配置

在这里插入图片描述

3 设定系统中用户都可以使用的命令别名

vim /etc/bashrc #编辑配置文件
alias shijian="date" # 写入设定命令别名
source /etc/bashrc #重新加载添加配置
在这里插入图片描述

4 取消系统中命令的别名

1 删除文件中的设定。
2 unalias shijian # 删除系统已经加载的配置
在这里插入图片描述

8、利用命令执行结果设定变量

将命令运行的结果赋值给变量 的两种方式:
在这里插入图片描述

$? 命令执行之后产生的退出值,范围是[0−255] ,0表示命令没有错误输出,其他表示命令存在错误输出。
这个值可以使用exit n 进行修改i。例如 exit 88
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值