Linux的Shell编程Part3:基本运算(算术运算、关系运算、布尔运算、文件测试运算及字符串运算)

一、算术运算

1、+ 加

expr求值操作

# 定义两个变量
a=6
b=4
# 加法 expr求值
value=`expr $a + $b`
echo "$a+$b=$value"

输出:6+4=10

:不是单引号 而是斜撇 键位在数字1的左边
若为单引号会输出1+2=expr 1 + 2 会把expr当作字符串输出


2、- 减

$[ ]

# 定义两个变量
a=6
b=4
# 减法 另一种数值运算
value=$[a-b]
echo "$a-$b=$value"

输出:6-4=2


3、* 乘

$[ ]

# 定义两个变量
a=6
b=4
# 乘法
value=$[a*b]
echo "$a*$b=$value"

输出:6*4=24


4、/ 除

$[ ]

# 定义两个变量
a=6
b=4
# 除法
value=$[a/b]
echo "$a/$b=$value"

输出:6/4=1


5、% 取余

$[ ]

# 定义两个变量
a=6
b=4
# 取余
value=$[a%b]
echo "$a%$b=$value"

输出:6%4=2


二、关系运算

-eq:相等(equal)

if [ $a -eq $b ]
then
   echo "$a -eq $b : a等于b"
else
   echo "$a -eq $b : a不等于b"
fi

-ne:不相等(not equal)

-gt:大于(greater than)

-ge:大于等于(greater equal)

-lt:小于(less than)

-le:小于等于(less equal)


三、布尔运算

!:非运算
! false 即为true

-o:或运算(or)

-a:与运算(and)
[ $a -lt 100 -a $b -gt 15 ] 即为 a小于100并且b大于15

&&:逻辑与
注:两个方括号[[ ]]
[[ $a -gt 100 && $b -gt 100 ]] 即为 a大于100并且b大于15且第一个表达式为false则不判断第二个表达式 具有短路的功能

||:逻辑或

==:相等(数字判断)

!=:不等(数字判断)


四、文件测试运算

当前文件:

file=$0
echo "当前文件是:$file"

-d:是否为目录(document)

if [ -d $file ]
then
   echo "该文件为文档"
else
   echo "该文件不为文档"
fi

-f:是否为普通文件(file)

if [ -f $file ]
then
   echo "该文件为普通文件"
fi
-r 是否可读(read)
if [ -r $file ]
then
   echo "该文件可读"
fi

-w:是否可写(write)

-x:是否可执行(execute)

-s:文件是否为空

-e:文件是否存在

if [ -e $file ]
then
   echo "该文件存在"
fi

五、字符串运算

1、字符串引号的区别

单引号:原样输出内容 变量无效
双引号:可以包含变量

2、字符串表达式

${#字符串变量名}:计算字符串长度

str="piconjo"
echo "长度:${#str}"

输出结果:长度:7


${字符串变量名:起始位置:截取的字符个数}:截取字符串

例一:

${str:1:3}

获取字符串变量str中的第一个字符开始到第三个字符

例二:

str="piconjo"
echo "截取出on:${str:3:2}"

输出结果:截取出on:on


'expr index "$字符串变量名" 要查找的字符' :查找字符串中的子串的位置
注:不是单引号 是斜撇

str="piconjo"
result=`expr index "$str" on`
echo "查找on的位置:$result"

输出结果:查找on的位置:4


代码:
在这里插入图片描述
输出:
在这里插入图片描述


3、字符串运算符

=:字符串是否相等
用法:[ $a = $b ]

!=:字符串是否不相等
用法:[ $a != $b ]

-z:字符串长度是否0(zero)
用法:[ -z $a ]

if [ -z $str ]
then
  echo "字符串长度为零"
fi

-n:字符串长度是否不为0(not zero)
用法:[ -n “$a” ]

if [ -n $str ]
then
  echo "字符串长度不为零"
fi

$:字符串是否为空
用法:[ $a ]


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值