shell脚本中的变量

变量的定义

定义本身:
变量是内存一片区域的地址。
变量存在的意义:
命令无法操作一直变化的目标,用一串固定的字符来表示不固定的目标可以解决此问题。

shell脚本中变量的定义方法:

1.环境级别的变量,在环境关闭后,变量就会失效。
2.用户级别变量,只有该用户生效,其他用户不生效。
3.系统级变量除了该系统外,在其余系统不生效。为了使得切换用户后变量生效,可以对系统级别的配置文件进行修改。

1.直接定义:
在这里插入图片描述
也可以建立一个脚本,写入脚本,然后再使用命令调用脚本。如下图显示。
在这里插入图片描述
注意,该情况下,使用sh westos.sh不会显示。因为sh命令会默认重新开启一个shell运行,而变量在当前的环境中,因此使用sh命令时不会显示。使用. westos.sh或source westos.sh都是在当前的shell中运行脚本,所以可以显示变量值:
在这里插入图片描述
环境变量级别:
环境级别的变量,在环境关闭后,变量就会失效。定义方法为export a=1。
定义环境级别的变量,并分别使用不同的命令运行脚本:
在这里插入图片描述
使用exit命令退出当前环境:
在这里插入图片描述
使用echo命令输出,可见无法输出:
在这里插入图片描述
用户级别:
编辑~/.bash_profile文件设定用户级别的变量:
在这里插入图片描述
source ~/.bash_profile使该设定生效,在当前环境下调用脚本,发现变量生效:
在这里插入图片描述
exit退出后继续运行脚本:
在这里插入图片描述

切换用户,使用该用户运行该脚本就没有结果:
在这里插入图片描述
系统级别:
主要有两种变量定义的方式,一个是编辑 /etc/profile主配置文件。一个是/etc/profile.d/目录下再建立一个脚本文件,通常是在/etc/profile.d/目录中新建脚本文件。
编辑vim /etc/profile.d/zzy.sh,写入系统级变量,运行source /etc/profile.d/zzy.sh使该设置生效,切换用户运行脚本,变量成功:
在这里插入图片描述
在这里插入图片描述

变量名称:

变量名称可包含的字符
字母、下划线、数字
变量名称定义规则
不能用数字开头
变量命令建议:变量名称短全用大写字符、变量名称长用下划线区分子类

变量的转译:

\		##转译单个字符
“ ”		##弱引用,批量转译个数字符,不能转	译“\”,"`","$","!"
’ ’		##弱引用

\只能转译单个字符,双引号可以批量转译:
在这里插入图片描述
双引号不能转译的特殊字符:
在这里插入图片描述
双引号的引用性要弱于单引号:双引号叫”部分引用"或“弱引用”,可以引用出除$符、反引号、转义符之外的所有字符;单引号又叫“全引用”或“强引用",可以引用所有字符
在这里插入图片描述

变量的声明:

A=1      ##定义一个变量
echo $AB  ##此时表示AB是一个变量名,而系统中不存在该变量,所以输出值为空
echo ${A}B ##此时会输出1B,表示系统将A看作变量

在这里插入图片描述

变量的数组:

echo ${a[0]}	##数组中第一个元素
echo ${a[-1]}	##数组中最后一个元素
echo ${a[*]}	##数组中所有元素,*表示所有的数组元素是一个整体
echo ${a[@]}	##数组中所有元素,@表示每个元素都是个体
echo ${a[@]:0:3}	##数组中1-3个元素
echo ${#a[@]}	##数组中元素的个数

在这里插入图片描述

linux中命令别名设置:

1.临时设定输入alias xie='vim
2.用户级别设定编辑vim ~/.bashrc文件,写入别名设定,输入source ~/.bashrc使设定生效
3.系统级别编辑vim /etc/bashrc 文件,输入别名设定。
4.删除。

直接输入alias命令,可以查看命令的别名:
在这里插入图片描述
临时设定:
输入alias zzy=‘vim’:
可见最后一行为alias zzy=‘vim’。
在这里插入图片描述
退出后重新登录,设定失效:
在这里插入图片描述用户级别:
编辑vim~/.bashrc文件,写入别名设定,输入source ~/.bashrc使设定生效:
在这里插入图片描述
该命令可以使用:
在这里插入图片描述
切换用户后,则无法使用:
在这里插入图片描述
系统级别:
只在当前系统中生效:
编辑vim /etc/bashrc文件,输入别名设定。成功生效,切换用户后,查看依然生效:
在这里插入图片描述
在这里插入图片描述
切换用户westos后,依然成立:
在这里插入图片描述
删除:
将文件/etc/bashrc和~/.bashrc两个文件中的别名设定都设定,再次查看,发现别名设定依然存在:
在这里插入图片描述使用unalias命令进行删除:
在这里插入图片描述
在这里插入图片描述

用户环境变量设置:

用户在操作系统时使用的命令搜索路径称为环境变量

编辑~/.bash_profile文件,输入export PATH=$PATH:/mnt;
利用命令的执行结果设定变量:
在这里插入图片描述
使用echo P A T H , 可以看到 / m n t 。 ! [ 在这里插入图片描述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 499 a d d 86 c e 2149 e 0 a f 9025 c 3 e d 77 c c 40. p n g ) 直接利用命令执行结果:输入“ d a t e + ! [ 在这里插入图片描述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / a 9 b 0 b 68 a 6 a e 7497797 e d c 5 b 4 b e a f c 6 d 5. p n g ) 将该命令的执行结果赋给变量可以给命令加上 PATH,可以看到/mnt。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/499add86ce2149e0af9025c3ed77cc40.png) 直接利用命令执行结果: 输入“date +%H:%M:%S”命令,表示显示时间,几点几分几秒;将该值赋值给TIME,可以看到赋值失败: ![在这里插入图片描述](https://img-blog.csdnimg.cn/a9b0b68a6ae7497797edc5b4beafc6d5.png) 将该命令的执行结果赋给变量可以给命令加上 PATH,可以看到/mnt![在这里插入图片描述](https://imgblog.csdnimg.cn/499add86ce2149e0af9025c3ed77cc40.png)直接利用命令执行结果:输入date+![在这里插入图片描述](https://imgblog.csdnimg.cn/a9b0b68a6ae7497797edc5b4beafc6d5.png)将该命令的执行结果赋给变量可以给命令加上(),但是这种方式只适合shell,输出该参数查看:
在这里插入图片描述
可以用反向单引号引起来,这种方式适合于多种语言和环境,输出该参数查看:
在这里插入图片描述
脚本的传参:

$0	脚本本身
$1	脚本后输入的第一串字符
$2	脚本后输入的第二串字符
$3	脚本后输入的第三串字符
$*	脚本后所输入的所有字符,*表示将所有字符当一个字符串输出 eg:“westos linux python”
$@	脚本后所输入的所有字符 ,@表示将所有字符分别看作多个字符 eg:‘westos’ ‘linux’ ‘python’
$#	脚本后输入的字符串个数

在这里插入图片描述
运行该脚本,其结果如下:
在这里插入图片描述
交互模式:

交互模式
命令	含义
read WESTOS	对WESTOS赋值
read -P “please input word”	输出提示语
-s	隐藏输入内容,即没有回显的显示

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


脚本函数:

```shell
定义:程序的别名
设定方式:
WORD( )
{
action1
action2
}
函数的使用可以简化代码,使得代码的结构更清晰。

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值