shell 脚本编程之比较运算符
来源:互联网 发布:制作vpn客户端软件 编辑:程序博客网 时间:2024/05/17 08:51
测试
测试是用于判断某个条件是否成立,比如测试某个文件是否存在,测试两个字符串是否相等。要特别注意的是,shell 中返回 0 代表测试成功;条件语句、循环语句等结构经常会以“真假”为判断条件,shell 用字符串 true 来表示真,但对于测试来说返回 0 才表示真。这里可能有点绕,其实不用太在意 0 或者非 0 ,只需要知道以 “真” “假” 作为判断条件即可。测试有两种结构,
1. test expression
2. [ expression ] 或 [[ expression ]]
第二种结构 expression 和中括号之间要有空格,两对中括号和一对中括号的区别是两对中括号能够处理特殊字符,而一对中括号里的特殊字符要加上转义字符来处理。
文件操作运算符
文件操作运算符用于文件测试,包括
#learn_file_compare.sh#!/bin/bashif ! test -e file; then echo "file no exits!" touch filefiif ! [ -d dir ]; then echo "dir no exits!" mkdir dirfi[ -x file ]echo $?[ -f file ]echo $?[ -r file ]echo $?[ -w file ]echo $?if [ ! -e file2 ]; then touch file2fi[ file -nt file2 ]echo $?[ file -ot file2 ]echo $?
执行结果
file no exits!dir no exits!100010
返回 0 表示测试成功,返回非 0 表示测试失败,if 条件为 0 时成立。第一个测试判断文件 file 是否存在,如果不存在则返回非 0,取非之后就是 0;if 条件为 0 时表示真,则执行 if 逻辑,创建文件 file。第二测试判断目录 dir 是否存在,不存在返回非 0,取非之后就是 0,执行 if 逻辑,创建目录。file 是普通的可读可写文件,不是可执行文件,所以接下来的输出是 1 0 0 0。file2 创建时间比 file 晚,所以 file -nt file2 返回 1,file -ot file2 返回 0。
字符串比较运算符
字符串比较运算符用于字符串测试,主要有字符串大小比较,是否为空等测试
#learn_string_compare.sh#!/bin/bashstr1=""str2="hello"test -n "$str1"echo $?test -z "$str1"echo $?[ "$str1" = "$str2" ]echo $?str1="hellp"[ "$str1" > "$str2" ]echo $?[ "$str1" < "$str2" ]echo $?[ "$str1" \> "$str2" ]echo $?[ "$str1" \< "$str2" ]echo $?[[ "$str1" > "$str2" ]]echo $?[[ "$str1" < "$str2" ]]echo $?
执行结果
101000101
str1 和 str2 必须加上 str1>str2
和 str1<str2
都返回了真;正确的写法是后面的两种,一对中括号加上转义字符或者两对中括号。
整数比较运算符
整数比较运算符用于整数测试,判断两个整数的大小关系
#learn_int_compare.sh#!/bin/bashnum1=100num2=99[ $num1 -eq $num2 ]echo $?[ $num1 -ne $num2 ]echo $?[ $num1 -gt $num2 ]echo $?[ $num1 -lt $num2 ]echo $?num2=$num1[ $num1 -eq $num2 ]echo $?[ $num1 -ne $num2 ]echo $?[ $num1 -ge $num2 ]echo $?[ $num1 -le $num2 ]echo $?
执行结果
10010100
- shell 脚本编程之比较运算符
- shell 脚本编程之算术运算符
- Linux Shell脚本编程--比较运算符
- shell脚本比较运算符总结
- shell脚本之运算符
- shell编程之运算符
- Shell编程之运算符
- shell编程之运算符
- shell脚本之运算符(四)
- shell脚本之基本运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- Linux 之 shell 比较运算符
- 通过继承HystrixCommand来创建请求命令遇到的问题
- git基础
- 算法-->复数运算
- 康拓展开
- 抽象的概念和使用
- shell 脚本编程之比较运算符
- HDU 3486 Interviewe(RMQ+二分)
- 窗口前端显示和置顶,发送消息
- MOOC清华《程序设计基础》第8章:链表的基本操作
- react-leaflet-draw绘图工具栏显示错乱
- 电赛准备
- 32位和64位下,SYSTEM_THREADS与SYSTEM_PROCESSES结构体
- Ubuntu下安装clang和libc++
- Elasticsearch5 install head plugin detail