今天开始学习shell编程,通过看书,练习了几个基本的小例子,下面总结一些知识点分享给大家
if 语句包括 字符串测试,文件测试,数字测试
基本的语法为
if test command
then
********
else
********
fi
或
if [ command ]
then
********
else
********
fi
test的用法等价于[ ]
例如:if test "hello" = "HELLO" 与 if [ "hello" = "HELLO" ] 等价
注意:[ 与 "hello" 与 = 与 "hello" 与 ] 之间存在 空格
1, 下面举上一个字符串测试的小例子
#字符串比较
#!/bin/bash
if [ "Hello" = "HELLO" ]
then
echo "Hello" == "HELLOHELLO"
else
echo "Hello" != "HELLO"
fi
if [ "HELL0" = "HELL0" ]
then
echo "HELL0" == "HELLO"
else
echo "HELL0" != "HELLO"
fi
-z 代表字符串为空
-n 代表字符串大于0
# shell_if_file 文件测试
#!/bin/bash
#判断是否有可执行权限
if [ -x ./file_test ]
then
echo "is -x"
else
echo "isn't -x"
fi
#判断是否为普通文件
if [ -f ./file_test ]
then
echo "is general"
else
echo "isn't general"
fi
其中:
-x 是判断是否有可执行权限,
-f 是判断是否为普通文件
3, 下面为数字测试的小例子, -eq代表相等, -ne代表不等, -lt 代表小于, -le 代表小于等于, -gt 代表大于, -ge 代表大于等于
# shell_if_number 数字比较
#!/bin/bash
echo "please input number1:"
read number1
echo "please input number2"
read number2
#判断相等
if test "$number1" -eq "$number2"
then
echo "number1 == number2"
else
echo "number1 != number2"
fi
echo "please input number1:"
read number1
echo "please input number2"
read number2
#判断不等
if test "$number1" -ne "$number2"
then
echo "number1 != number2"
else
echo "number1 == number2"
fi
echo "please input number1:"
read number1
echo "please input number2"
read number2
#小于
if test "$number1" -lt "$number2"
then
echo "number1 < number2"
else
echo "number1 isn't < number2"
fi
echo "please input number1:"
read number1
echo "please input number2"
read number2
#小于等于
if test "$number1" -le "$number2"
then
echo "number1 <= number2"
else
echo "number1 isn't <= number2"
fi
echo "please input number1:"
read number1
echo "please input number2"
read number2
#大于
if test "$number1" -gt "$number2"
then
echo "number1 > number2"
else
echo "number1 isn't > number2"
fi
echo "please input number1:"
read number1
echo "please input number2"
read number2
#大于等于
if test "$number1" -ge "$number2"
then
echo "number1 >= number2"
else
echo "number1 isn't >= number2"
fi