Shell基础之变量的补充+变量的运算

本文介绍了Shell脚本中扩展变量的使用方法,包括变量运算(算术运算、字符串运算符、文件测试运算符),以及test、中括号和双中括号条件测试的详细用法实例,帮助读者理解和掌握Shell编程中的变量处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

扩展变量

变量的运算

基本语法

test 条件测试

中括号条件测试

双中括号条件测试

双园括号

算术运算

字符串运算符

文件测试运算符


扩展变量

扩展变量的使用方法:

${变量:-word}

如果变量值为空,则返回 word 字符串,如果不为空则返回变量本身的值
${变量:=word} 如果变量值为空,则将 word 替换变量后并返回
${变量:?word} 如果变量值为空,则 word 将当作 stderr 输出,否则输出变量的值
${变量:+word} 如果变量值为空,则什么都不做,否则返回 word

示例:

# ${变量:-word}
[root@openEuler ~]# name=lisi
[root@openEuler ~]# echo $name
lisi
[root@openEuler ~]# name1=${name:-wangwu}
[root@openEuler ~]# echo $name1
lisi
[root@openEuler ~]# unset name
[root@openEuler ~]# echo $name

[root@openEuler ~]# name1=${name:-wangwu}
[root@openEuler ~]# echo $name1
wangwu

# ${变量:=word}
[root@openEuler ~]# name=lisi
[root@openEuler ~]# echo $name
lisi
[root@openEuler ~]# name1=${name:=zhangsan}
[root@openEuler ~]# echo $name1
lisi
[root@openEuler ~]# unset name
[root@openEuler ~]# name1=${name:=zhangsan}
[root@openEuler ~]# echo $name
zhangsan
[root@openEuler ~]# echo $name1
zhangsan

# ${变量:?word}
[root@openEuler ~]# name=haha
[root@openEuler ~]# echo $name
haha
[root@openEuler ~]# name1=${name:?hehe}
[root@openEuler ~]# echo $name
haha
[root@openEuler ~]# echo $name1
haha
[root@openEuler ~]# unset name
[root@openEuler ~]# name1=${name:?hehe}
-bash: name: hehe

# ${变量:+word}	
[root@openEuler ~]# name=xiaowang
[root@openEuler ~]# echo $name
xiaowang
[root@openEuler ~]# name1=${name:+xiaoli}
[root@openEuler ~]# echo $name
xiaowang
[root@openEuler ~]# echo $name1
xiaoli
[root@openEuler ~]# unset name
[root@openEuler ~]# name1=${name:+xiaoli}
[root@openEuler ~]# echo $name

[root@openEuler ~]# echo $name1

[root@openEuler ~]# 

这四个一般用于对变量值的判断处理

实际案例:

        判断变量的值,如果值为空则返回后面的字符信息

[root@openEuler ~]# echo $hana

[root@openEuler ~]# result=${hana:-haha}
[root@openEuler ~]# echo $result
haha
[root@openEuler ~]# hana="nihao"
[root@openEuler ~]# result=${hana:-haha}
[root@openEuler ~]# echo $result
nihao

变量的运算

        在Shell中包含以下运算

算术运算
字符串运算符
文件测试运算符
关系运算
布尔运算
逻辑运算

        对于原生的 bash 是不支持数字运算的,但是可以通过其他的命令来实现这个功能,例如 expr 命令

使用方式

[root@openEuler ~]# a=1 + 2
-bash: +: command not found
[root@openEuler ~]# expr 1 + 3
4
[root@openEuler ~]# expr hello
hello
[root@openEuler ~]# expr length hello
5

注意:

        在使用 expr 来计算时,在数字的中间使用运算符,但是运算符之间有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值