前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell表达式与运算符

Shell表达式与运算符

原创
作者头像
入门笔记
修改2021-01-05 10:24:16
3880
修改2021-01-05 10:24:16
举报
文章被收录于专栏:入门小站入门小站

只用于数值比较

该类型的操作会把两边的的变量变成整形加法运算,字符串abcd无法按整形进行运算,所以以下操作符不能用于字符串比较.

参数

说明

-eq

等于则为真

-ne

不等于则为真

-gt

大于则为真

-ge

大于等于则为真

-lt

小于则为真

-le

小于等于则为真

字符串比较,也可以用于数值比较

参数

说明

==

相等则为真

!=

不相等则为真

字符串测试运算

参数

说明

-z 字符串

字符串的长度为零则为真

-n 字符串

字符串的长度不为零则为真

文件测试运算

参数

说明

-e 文件名

如果文件存在则为真

-r 文件名

如果文件存在且可读则为真

-w 文件名

如果文件存在且可写则为真

-x 文件名

如果文件存在且可执行则为真

-s 文件名

如果文件存在且至少有一个字符则为真

-d 文件名

如果文件存在且为目录则为真

-f 文件名

如果文件存在且为普通文件则为真

-c 文件名

如果文件存在且为字符型特殊文件则为真

-b 文件名

如果文件存在且为块特殊文件则为真

  • if语句中,数值比较的写法是if $var1 -ge $var2 ;字符串比较的写法是if "$var1" != "$var2" ,其中加双引号只是兼容$var2处为空的情况
  • 在各种运算中,test命令的运算和中括号是等效的
代码语言:txt
复制
#!/bin/bash
  
A=10
B=30

if test $A -gt $B;then
   echo "A大于B"
else
   echo "A小于B"
fi

C=40
D=50

if test $A -lt $B && test $C -lt $D;then
   echo "A大于B且C大于D"
fi
  • 赋值时等号两边没空格,比较或测试时运算符两边都要有空格
  • shell默认是字符运算,如果想当数值进行运算要在前边加上expr,如:var3=expr $var1 + $var2(注意运算符+两边一定要加空格)
wx.jpg
wx.jpg

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 只用于数值比较
  • 字符串比较,也可以用于数值比较
  • 字符串测试运算
  • 文件测试运算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com