shell判断的几种方式
在Shell中有多种方法可以进行条件判断
if语句
使用if语句来根据不同的条件执行相应的操作。示例如下所示:
#!/bin/bash
read -p "请输入一个数字: " num
if [ $num -gt 0 ]; then
echo "$num大于零"
elif [ $num -lt 0 ]; then
echo "$num小于零"
else
echo "$num等于零"
fi
-eq
#相等
-ne
#不等
-gt
#大于
-lt
#小于
-ge
#大于等于
-le
#小于等于
case语句
case语句通常用于对变量值与模式进行比较并执行相应的命令。示例如下所示:
#!/bin/bash
fruit="apple"
case $fruit in
apple)
echo "这是一个苹果"
;;
banana)
echo "这是一个香蕉"
;;
orange)
echo "这是一个橙子"
;;
*)
echo "未知水果"
esac
test命令
test命令也被称为[ ]或者[[ ]],用于测试表达式的真假。示例如下所示:
#!/bin/bash
file="/path/to/file.txt"
if test -e $file; then
echo "文件存在"
else
echo "文件不存在"
fi
-e
#判断文件是否存在(任何类型文件)
-f
#判断文件是否存在并且是一个普通文件
-d
#判断文件是否存在并且是一个目录
[[ ]]运算符
[[ ]]运算符提供了更加直观、简单的条件判断功能。示例如下所示:
#!/bin/bash
name="John Doe"
age=25
if [[ $name == John* && $age > 18 ]]; then
echo "名字以'John'开头且年龄大于18岁"
fi
-a
和&&
逻辑与 (全真为真,有假则为假)
-o
和||
逻辑或 (全假才假,有真必为真)
a && b
a和b同时为true 才返回 true,否则返回false
a || b
a或b任意一个为true 就返回true,否则返回false