shell 脚本中的变量一

变量的定义

变量就是内存一片区域的地址

变量存在的意义

命令无法操作一直变化的目标,用一串固定的字符来表示不固定的目标可以解决此问题。

shell脚本中变量的定义方法

1.环境级别
export a=1
在环境关闭后变量失效,无法保存。
实验步骤:
(1)编辑test.sh文件
发现直接在该shell下调用能够打印出来a的值,使用其他两种方式会开启子shell则不能打印出来a的值,即父进程和子进程的信息不是共享的。
在这里插入图片描述
(2)共享信息
在这里插入图片描述
(3)关闭父shell
但是一旦这个父shell关闭后,变量信息就被回收了。
在这里插入图片描述
2.用户级别
vim ~/.bash_profile
export a=2
实验步骤:
编辑.bash_profile文件
.bash_profile:shell环境信息的配置
.bash.rc:shell本身的配置
这个文件默认不生效,要使用source .bash_profile使文件生效。
由于a的值定义在red用户家目录下的.bash_profile文件,只有当red用户登录时才会加载这个文件,因此使用red用户可以打印出a的值,使用root用户则不行。
在这里插入图片描述
3.系统级别
vim /etc/profile
export a=3

vim /etc/profile.d/lyueyue.sh
export b=3
实验步骤:
(1)编辑/etc/profile文件
在这里插入图片描述
(2)测试
发现使用root用户打印出来a的值为3,使用red用户打印出来a的值仍为2,即red用户自己家目录的配置生效(首先读取全局的,再读取用户的,用户的信息会将全局信息覆盖)。
在这里插入图片描述
我们再执行一次source,发现使用red用户打印出来的值为3了,即哪个文件后被读取哪个文件就生效。
在这里插入图片描述
(3)编辑/etc/profile.d/lyueyue.sh文件
在这里插入图片描述
4.变量名称
“字符” “_” “数字”
不能用数字开头 建议: 变量名称短全用大写字符
变量名称长用_区分子类
LYUEYUE
Lyueyue_Linux
lyueyuE_Linux

变量的转义

\ :转译单个字符
“” :弱引用,批量转译多个字符 不能转译"" “`” “$” “!”
‘’ :强引用
在这里插入图片描述

变量的声明

a=1
echo $ab
echo ${a}b:表示只有a是变量,而b不是。
在这里插入图片描述

变量的数组

a=(1 2 3 4 5)
echo ${a[0]}:第一个字符
echo ${a[-1]}:最后一个字符
echo ${a[ * ]}:表示所有(所有元素是一个整体)
echo ${a[@]}:表示所有(所有元素单独的)
实验步骤:
在这里插入图片描述
我们可以写一个test.sh脚本来详细观察*和@的不同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
举例:
在这里插入图片描述

Linux中命令的别名设定

alias xie=‘vim’(临时设定)
vim ~/.bashrc:只针对指定用户生效
vim /etc/bashrc:针对系统所以用户生效
unalias xie:删除当前环境中的alias
实验步骤:
(1)查看当前被定义过别名的命令
在这里插入图片描述
(2)临时设定
\转义一下,执行的就是真的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)vim ~/.bashrc
之前的设定是临时的,当打开一个新的shell时,这个命令就失效了。
在这里插入图片描述
编辑root用户的.bashrc文件
在这里插入图片描述
新打开一个shell仍能执行写命令
在这里插入图片描述
但是注意,当切换到red用户时命令失效。
在这里插入图片描述
(3)vim /etc/bashrc文件
在这里插入图片描述
在这里插入图片描述
(4)unalias xie
此命令删除当前环境中的alias
在这里插入图片描述

脚本练习

create_user.sh userfile passfile
userfile用的用户会被全部建立
passfile中的密码会被全部设定
自己:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值