关于read的例子和条件测试

时间:2023-03-09 06:19:53
关于read的例子和条件测试

1.关于read比较两个的大小

#!/bin/sh
read -t -p "please input two num:" a b
if [ $a -gt $b ]; then
echo "yes $a > $b"
elif [ $a -eq $b ];then
echo "yes $b == $a"
else
echo "yes $a < $b" fi

2.测试语句

  • 条件测试语法

语法:test <测试表达式>

[<测试表达式>]   经常用

[[<测试表达式>]]

例子:判断file文件是否存 在,存在输出1,不存在输出0

test -f file && echo 1 || echo 0

[ -f file  ] && echo 1 || echo 0

[ -f file -a -d folder ] && echo 1 || echo 0

[[ -f file ]] && echo 1 || echo 0

[[ -f file && -d folder ]] && echo 1 || echo 0

注意:[] 里面不能用&& 用-a 代替

  • 文件测试操作符

-f   文件存在且为普通文件则为真

-d  文件存在且为目录文件则为真

-s  文件存在且不为空,则为真

-e 文件存在则为真

-r 文件存在且为可读,则为真

-x 文件存在且为执行文件,则为真

-w  文件存在且为可写文件,则为真

-L 文件存在且为链接文件,则为真

f1 -nt f2 f1 文件比f2文件新,则为真

f1 -ot f2 f1 文件比f2文件旧,则为真

  • 字符串测试操作符

-z "string"   若字符串的长度为0则为真

-n "string" 若字符串的长度不为0则为真

"string1"="string" 若string1等于string2则为真

"string1"!="string2" 若string1不等于string2则为真

  • 整数二元比较操作符

[]            [[]]或(())

-eq         ==

-ne          !=

-gt           >

-ge          >=

-lt            <

-le           <=