轻松理解Shel脚本中的变量(一)

1.变量的定义

1)定义本身
变量就是内存一片区域的地址
在这里插入图片描述
2)变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题

2.shell脚本中变量的定义方法

在这里插入图片描述
由上面我们可以看出三种执行脚本的方法只有source的方法可以看出效果,因为source方法是在当前shell执行脚本,sh 和 /mnt/test.sh的方法会打开一个新的子 shell,不在当前环境,所以不能执行出 a 的内容。

1)环境级别,在当前环境生效

export a=1          export:让子进程可以访问父进程的变量。

在这里插入图片描述
在环境关闭后或更换环境后变量失效,生命周期短。如:
在这里插入图片描述
开启一个新的 shell 执行内容又显示不出来。

2)用户级别,在当前用户生效

每个用户的家目录下都有一个这样的文件,定义当前用户的环境配置。
在这里插入图片描述

vim ~/.bash_profile

export a=1
在这里插入图片描述

source   ./bash_profile           source调用后才可以生效

在这里插入图片描述
当我们切换用户后:
在这里插入图片描述
无法执行出内容

3)系统级别,在当前系统生效

vim /etc/profile

最后一行加上 export a=2
在这里插入图片描述
在这里插入图片描述
当我们切换至thermal 用户时,显示的a的值竟然为1,这是因为系统默认读取的文件顺序为
全局设定----->用户设定,所以在读取用户的设定时覆盖了全局设定,需重新source才可以使用全局设定,具体操作如下图。
在这里插入图片描述
————————
我们也可以编辑 /etc/profile.d/ 底下的文件来设定

vim /etc/profile.d/westos.sh

export b=3
在这里插入图片描述
在这里插入图片描述
重新打开一个shell后,依然生效。
在这里插入图片描述

4)变量名称的设定。

模式:

"字符" "_" "数字"         不能用数字开头

建议:
变量名称短全用大写字符
变量名称长用_区分子类
例如:

WESTOS       全部大写
Westos_Linux       波型
westoS_Linux		峰型

3.变量的转译

1)转译

\               转译单个字符

在这里插入图片描述

""            弱引用,批量转译个数字符 不能转译 "\"  "`"  "$"  "!"

在这里插入图片描述

''               强引用

在这里插入图片描述

2)声明变量

a=1
echo $ab
echo ${a}b

在这里插入图片描述
声明了a是变量b不是

3)变量的数组

{} 为声明变量,[ ] 是变量的下标,默认从0开始,0是数组的第一个字符,1是第二个。

a=(1 2 3 4 5)
echo ${a[0]}		显示第一个
echo ${a[-1]}		显示最后一个
echo ${a[*]}       显示所有的内容,但是视为一个整体
echo ${a[@]}		显示所有内容,视为单个单个的字符

在这里插入图片描述
编写脚本测试 @ 和 * 的区别
在这里插入图片描述
在这里插入图片描述
@执行了三次
在这里插入图片描述
在这里插入图片描述
*只执行了一次,将123视为一个整体。

4.Linux中命令的别名设定

在这里插入图片描述
这是系统中已经定义过的别名。

alias  cc='vim'            临时设定,新环境中不生效

在这里插入图片描述

vim ~/.bashrc							只针对当前用户生效
source  ~/.bashrc

alias cc=‘vim’   
在这里插入图片描述           
在这里插入图片描述
在新的环境中也生效了。
在这里插入图片描述
但是切换用户后失效。

vim /etc/bashrc             针对系统所有用户生效
source /etc/bashec

alias cc=‘vim’
在这里插入图片描述
所有用户都可以用cc执行vim命令。

unalias cc               ##删除当前环境中的alias
在这里插入图片描述

发布了41 篇原创文章 · 获赞 15 · 访问量 2858

猜你喜欢

转载自blog.csdn.net/thermal_life/article/details/105193568
今日推荐