-d:目录 | -s:文件长度大于0、非空 | -f:正规文件 | |||
-w:可写权限 | -L:符号链接 | -u:文件可有suid位设置 | |||
-r:可读权限 | -x:可执行权限 |
| |||
-a 逻辑与,两真则真,否则为假。 | -o 逻辑或,一真为真,否则为假 | ! 逻辑否,条件为假,结果为真 | |||
=:两个字符串相等 | !=两个字符串不想等 | -z:空字符串 | -n:非空字符串 | ||
-eq/-ne:数值相等/不相等 | -gt/-lt:第一大于/小于第二 | -le/-ge:第一小于/大于等于第二 |
测试文件状态:test 条件或者[空格条件空格](0表示成功,其他为失败)
例子:测试文件a.txt是否可读:[ -r a.txt ]/test –r a.txt \n(换行)echo $? \n 0(0是结果)
测试时使用逻辑操作符,测试两个文件
例:test-r 1.rar -a -w date.txt/[ -r 1.rar -a -w date.txt ] \n echo $? \n 0(0是结果)
read 赋值变量,echo查看变量,变量=“字符串”
字符串测试: 字符串是否为空:test –z $a/[ -z $a ] \n echo$? \n 0
测试数值:两个数是否相等:test "$a" -eq "123"/[ "$a" -eq"123" ] \n echo $? \n 0(0是结果)
也可以这样直接比较:test"100" -le "123"/[ "100" -le "123" ] \n echo $? \n 1(1是结果)
与逻辑运算符结合:test"100" -le "123" -a "788" -ge "600"/test"100" -le "123" -a "788" -ge "600"
expr:用法[expr 表达式]
四则运算expr [参数 条件参数](expr 10+10 /expr 30\*3)
计算字符串长度:expr length "abced sw daa" 12
抓取字符串:expr substr "abced sw daa" 1 5 abced
抓取第一个字符串出现的位置:expr index "abced sw daa" d 5