Linux shell条件表达式
Shell脚本中的条件测试语法可以判断表达式能否成立,若条件成立则返回数字0,否则便返回其余随机数值。
按照测试对象来划分,条件测试语句可以分为4种:
文件测试语句;
逻辑测试语句;
整数值比较语句;
符串比较语句。
文件测试
文件测试即便用指定条件来判断文件能否存在或者权限能否满足等情况的运算符
例子
1、判断/etc/fstab能否为一个目录类型的文件,而后通过Shell解释器的内设$?变量显示上一条命令执行后的返回值。假如返回值为0,则目录存在;假如返回值为非零的值,则意味着目录不存在。
huanyu@ubuntu:~/shell$ [ -d /etc/fstab ]huanyu@ubuntu:~/shell$ echo $?
结果返回 1 ,表示这个文件不是目录。
2、判断/etc/fstab能否为一般文件,假如返回值为0,则代表文件存在,且为一般文件
huanyu@ubuntu:~/shell$ [ -f /etc/fstab ]huanyu@ubuntu:~/shell$ echo $?
3、判断/dev/cdrom文件能否存在,若存在则输出Exist
huanyu@ubuntu:~/shell$ [ -e /etc/fstab ] && echo "Exist"
- Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行它后面的命令
4、判断当前登录的客户能否为非管理员身份
huanyu@ubuntu:~/shell$ [ $USER = root ] || echo "user"
- 逻辑“或者”,它在Linux系统中的运算符号为 ||,表示当前面的命令执行失败后才会执行它后面的命令
5、判断当前客户能否为一个非管理员的客户
huanyu@ubuntu:~/shell$ [ $USER != root ] || echo "administrator"
- 第三种逻辑语句是“非”,在Linux系统中的运算符号是一个叹号( ! ),它表示把条件测试中的判断结果取相反值
6、综合应用:判断客户类型
huanyu@ubuntu:~/shell$ [ $USER != root ] && echo "user" || echo "administrator"
整数比较
整数比较运算符仅是对数字的操作,不能将数字与字符串、文件等内容一起操作,而且不能想当然地使用日常生活中的等号、大于号、小于号等来判断。由于等号与赋值命令符冲突,大于号和小于号分别与输出重定向命令符和输入重定向命令符冲突。
例子
1、判断10能否等于15
huanyu@ubuntu:~/shell$ [ 10 -eq 15 ] huanyu@ubuntu:~/shell$ echo $?
返回是 1 ,说明表达式的值为错
字符串比较
字符串比较语句用于判断测试字符串能否为空值,或者两个字符串能否相同。它经常用来判断某个变量能否未被定义(即内容为空值)。
例子
1、判断String变量能否为空值
huanyu@ubuntu:~/shell$ [ -z $String ]huanyu@ubuntu:~/shell$ echo $?
返回 0 , 说明这个字符串未定义
2、判断当前系统语言的值
huanyu@ubuntu:~/shell$ [ $LANG != "en.US" ] && echo "Not en.US"
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Linux shell条件表达式
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Linux shell条件表达式