shell脚本--逻辑判断与字符串比较
2018-01-11 00:06
288 查看
逻辑判断使用
&&(且)、||(或)、!(取反)
字符串的比较不能使用前面的数值比较(-gt -lt -ge)等。
字符串的比较使用以下三个比较运算符:
==表示等于 ,左右两边的值相等时,返回true,否则返回false
!=表示不等于,左右两边的值不相等时,返回true,否则返回false
-z表示后面的值是否为空,为空则返回true,否则返回false
下面的一个例子:
运行测试:
注意:
比较运算符的两边都有空格分隔,同时要注意比较运算符两边的变量是否可能为空,比如下面这个例子:
运行:
可以看到,在代码中想要判断shell命令的第二个参数是否为hello或者no,但是在测试的时候,如果没有第二个参数,那么就变成了 if [ == 'hello' ],这个命令肯定是错误的了,所以会报错,比较好的做法是在判断之前加一个判断变量是否为空。
&&(且)、||(或)、!(取反)
字符串的比较不能使用前面的数值比较(-gt -lt -ge)等。
字符串的比较使用以下三个比较运算符:
==表示等于 ,左右两边的值相等时,返回true,否则返回false
!=表示不等于,左右两边的值不相等时,返回true,否则返回false
-z表示后面的值是否为空,为空则返回true,否则返回false
下面的一个例子:
#!/bin/bash #文件名:test.sh read -p 'please input name:' name read -p 'please input password:' pwd if [ -z $name ] || [ -z $pwd ] then echo "hacker" else if [ $name == 'root' ] && [ $pwd == 'admin' ] then echo "welcome" else echo "hacker" fi fi
运行测试:
ubuntu@ubuntu:~$ ./test.sh please input name:root please input password:admin welcome ubuntu@ubuntu:~$ ./test.sh please input name:root please input password: hacker ubuntu@ubuntu:~$ ./test.sh please input name:root please input password:beyond hacker ubuntu@ubuntu:~$
注意:
比较运算符的两边都有空格分隔,同时要注意比较运算符两边的变量是否可能为空,比如下面这个例子:
#!/bin/bash #文件名:test.sh if [ $1 == 'hello' ] then echo "yes" elif [ $1 == 'no' ] then echo "no" fi
运行:
ubuntu@ubuntu:~$ ./test.sh ./test.sh: line 4: [: ==: unary operator expected ./test.sh: line 7: [: ==: unary operator expected ubuntu@ubuntu:~$ ./test.sh hello yes ubuntu@ubuntu:~$ ./test.sh no no ubuntu@ubuntu:~$ ./test.sh test ubuntu@ubuntu:~$
可以看到,在代码中想要判断shell命令的第二个参数是否为hello或者no,但是在测试的时候,如果没有第二个参数,那么就变成了 if [ == 'hello' ],这个命令肯定是错误的了,所以会报错,比较好的做法是在判断之前加一个判断变量是否为空。
相关文章推荐
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
- shell 脚本中实现字符串大小写不敏感的比较方法
- shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
- Shell字符串比较、判断是否为数字
- 脚本乐园 Shell字符串比较相等、不相等方法小结
- shell脚本中的逻辑判断-文件目录属性判断-if特殊用法-case判断
- shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句
- linux的shell脚本下判断一个变量值或字符串是否为整数
- day 70 shell脚本逻辑、条件判断
- shell脚本结构、date命令、变量 shell脚本中的逻辑判断 文件目录属性判断 if特殊用法 case判断
- 20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)
- shell脚本之判断字符串是否相等
- shell字符串比较判断是否为数字
- Linux系统shell脚本对字符串、数字、文件的判断
- Shell脚本:时间相关、遍历目录、for、if、字符串比较、数字比较