#!/bin/bash
#shell test命令
#Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
# -eq 等于则为真
# -ne 不等于则为真
# -gt 大于则为真
# -ge 大于等于则为真
# -lt 小于则为真
# -le 小于等于则为真
num1=100
num2=200
if test $[num1] -eq $[num2]
then
echo "num1 == num2";
else
echo "num1 != num2";
fi
#上面这种写法是否可行呢?
if test $num1 -eq $num2
then
echo "num1 == num2";
else
echo "num1 !=num2";
fi
#经过测试发现也是可行的
# 代码中的 [] 执行基本的算数运算,如:
result=$[num1+num2]
echo "$result";
# 在运算符篇,计算两个参数相加需要expr表达式
echo "expr表达式计算相加:`expr $num1 + $num2 `" ;
# 试一试 使用 [] 执行算术运算符,发现也是可行
echo "$[num1-num2]";
echo $[num1*num2];
echo $[num1%num2];
echo "============字符串测试=================";
# = 等于则为真
# != 不相等则为真
# -z 字符串 字符串的长度为零则为真
# -n 字符串 字符串的长度不为零则为真
a="java";
b="c++";
if test $a = $b
then
echo "a=b";
else
echo "a!=b";
fi
if test -z $a
then
echo "长度为0";
else
echo "长度不为0";
fi
echo "============文件测试=================";
# -e 文件名 如果文件存在则为真
# -r 文件名 如果文件存在且可读则为真
# -w 文件名 如果文件存在且可写则为真
# -x 文件名 如果文件存在且可执行则为真
# -s 文件名 如果文件存在且至少有一个字符则为真
# -d 文件名 如果文件存在且为目录则为真
# -f 文件名 如果文件存在且为普通文件则为真
# -c 文件名 如果文件存在且为字符型特殊文件则为真
# -b 文件名 如果文件存在且为块特殊文件则为真
file="C:\Users\EDZ\Desktop\shell\demo.txt";
if test -e $file
then
echo "文件存在";
fi
# Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。例如:
if test -e $file -o -e "C:\A.TXT"
then
echo "存在一个文件";
else
echo "两个文件必须都存在";
fi
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.