我是靠谱客的博主 繁荣太阳,最近开发中收集的这篇文章主要介绍【shell】条件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先shell中只有字符串这一种类型,没有整形或者浮点型。

但是在定义变量时,可以采用单引号,双引号和不加引号。不加引号,如果变量内部有空白字符,则会被截断,所以这种情况必须加引号,单引号和双引号的区别就是变量替换,单引号不会替换。

shell中用作条件测试的语法有两种[]和test。一般用[]更多,如果为了避免太多的[],可以用test。

用[]时要注意,括号前后都必须有空格,否则报错。


在测试块内部,所能用的我们在其他语言里使用的比较符只有四种:== != > <,而且,shell中只有字符串,所以这四种比较符也是针对字符串的,也就是基于字典序的。

除了以上四种比较符外,我们还可以使用其他的比较参数,分为字符串,数字和文件三类:

字符串:

if [-n str],测试非空,str非空返回true。这个很常用,比如我们判断一个环境变量是否存在。

但是需要注意的一点是,这里的str必须上双引号,否则始终为true。

或者,根据《shell脚本攻略》一书的作者的建议,凡是对字符串的if,全部放在双中括号中[[]],即if [[-n str]],也只是可行的。


数字:

主要有以下六种:

-eq

-nq

-lt

-le

-gt

-ge


文件:

-f 是文件或者目录

-d 是目录

-e 是文件


如果有多个条件,可以使用|| &&连接每一个[]。但是不能出现在[]内部,内部也只能只用命令-a或者-o。

if [ $a -gt 10 ] && [ $a -lt 12 ];then
	echo "valid"
fi

if [ $a -gt 10 -a $a -lt 12 ];then
	echo "valid"
fi



最后

以上就是繁荣太阳为你收集整理的【shell】条件的全部内容,希望文章能够帮你解决【shell】条件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部