前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >季更43/90

季更43/90

作者头像
编程随想曲
发布2022-04-21 14:55:16
1810
发布2022-04-21 14:55:16
举报
文章被收录于专栏:编程随想曲编程随想曲

编程随想

Bash 条件判断

if语句

代码语言:javascript
复制
if commands; then
commands
[elif commands; then  commands...]
[else  commands]
fi

if结构的判断条件,一般使用test命令,有三种形式。

代码语言:javascript
复制
# 写法一
test expression
# 写法二
[ expression ]
# 写法三
[[ expression ]]
//上面三种形式是等价的,但是第三种形式还支持正则判断,前两种不支持。
//注意,第二种和第三种写法,[和]与内部的表达式之间必须有空格。

文件判断

代码语言:javascript
复制
[ -a file ]:如果 file 存在,则为true。
[ -d file ]:如果 file 存在并且是一个目录,则为true。
[ -e file ]:如果 file 存在,则为true。
[ -w file ]:如果 file 存在并且可写(当前用户拥有可写权限),则为true。
[ -x file ]:如果 file 存在并且可执行(有效用户有执行/搜索权限),则为true。

字符串判断

代码语言:javascript
复制
[ string ]:如果string不为空(长度大于0),则判断为真。
[ -n string ]:如果字符串string的长度大于零,则判断为真。
[ -z string ]:如果字符串string的长度为零,则判断为真
[ string1 = string2 ]:如果string1和string2相同,则判断为真。
[ string1 == string2 ] 等同于[ string1 = string2 ]。
[ string1 != string2 ]:如果string1和string2不相同,则判断为真。
[ string1 '>' string2 ]:如果按照字典顺序string1排列在string2之后,则判断为真。
[ string1 '<' string2 ]:如果按照字典顺序string1排列在string2之前,则判断为真。
//注意,test命令内部的>和<,必须用引号引起来(或者是用反斜杠转义)。否则,它们会被 shell 解释为重定向操作符。

整数判断

代码语言:javascript
复制
[ integer1 -eq integer2 ]:如果integer1等于integer2,则为true。
[ integer1 -ne integer2 ]:如果integer1不等于integer2,则为true。
[ integer1 -le integer2 ]:如果integer1小于或等于integer2,则为true。
[ integer1 -lt integer2 ]:如果integer1小于integer2,则为true。
[ integer1 -ge integer2 ]:如果integer1大于或等于integer2,则为true。
[ integer1 -gt integer2 ]:如果integer1大于integer2,则为true。

正则判断

代码语言:javascript
复制
[[ string1 =~ regex ]] //regex是一个正则表示式,=~是正则比较运算符。

逻辑运算

代码语言:javascript
复制
AND运算:符号&&,也可使用参数-a。
OR运算:符号||,也可使用参数-o。
NOT运算:符号!。

算术判断

代码语言:javascript
复制
((...))作为算术条件,进行算术运算的判断。
if ((3 > 2)); then
  echo "true"
fi
//算术判断不需要使用test命令,而是直接使用((...))结构。这个结构的返回值,决定了判断的真伪。
//如果算术计算的结果是非零值,则表示判断成立。这一点跟命令的返回值正好相反,需要小心。

case结构

代码语言:javascript
复制
case expression in
  pattern )
    commands ;;
  pattern )
    commands ;;
  ...
esac
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程随想曲 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档