常用的判断条件有很多种,通常使用 if
语句来处理这些条件。以下是一些常见的判断条件及其示例:
文件和目录判断
文件是否存在
if [ -e filename ]; then
echo "文件存在"
fi
目录是否存在
if [ -d dirname ]; then
echo "目录存在"
fi
字符串判断
字符串是否为空
if [ -z "$str" ]; then
echo "字符串为空"
fi
字符串是否不为空
if [ -n "$str" ]; then
echo "字符串不为空"
fi
字符串是否不相等
if [ "$str1" != "$str2" ]; then
echo "字符串不相等"
fi
数值判断
数值是否相等
if [ "$num1" -eq "$num2" ]; then
echo "数值相等"
fi
数值是否不相等
if [ "$num1" -ne "$num2" ]; then
echo "数值不相等"
fi
数值是否大于
if [ "$num1" -gt "$num2" ]; then
echo "num1 大于 num2"
fi
数值是否小于
if [ "$num1" -lt "$num2" ]; then
echo "num1 小于 num2"
fi
数值是否大于等于
if [ "$num1" -ge "$num2" ]; then
echo "num1 大于等于 num2"
fi
数值是否小于等于
if [ "$num1" -le "$num2" ]; then
echo "num1 小于等于 num2"
fi
多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
if
判断
(
1
)单分支
if [ 条件判断式 ];then
程序
fi
(
2
)多分支
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi
注意事项:
①
[
条件判断式
]
,中括号和条件判断式之间必须有空格
②
if
后要有空格
case
语句
case $变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
for
在 shell 脚本中,for
循环用于遍历一个列表(如数组、文件名、命令输出等)并对每个元素执行一系列命令。
下面是 for
循环的基本语法和一些常见的使用示例:
for 变量 in 值 1 值 2 值 3…
do
程序
done
例如·遍历文件中的每一行
#!/bin/bash
file="file.txt"
for line in $(cat $file)
do
echo "行内容: $line"
done
遍历目录中的文件
#!/bin/bash
directory="/path/to/directory"
for file in $directory/*
do
if [ -f "$file" ]; then
echo "文件: $file"
fi
done
while
在 shell 脚本中,
while
循环用于在条件为真时重复执行一段代码。它适用于当你需要根据某个条件持续执行操作,直到该条件不再满足为止。以下是
while
循环的基本语法和一些常见的使用示例
基本语法
while [ 条件判断式 ]
do
程序
done
简单的计数循环
#!/bin/bash
counter=1
while [ $counter -le 5 ]
do
echo "计数器: $counter"
((counter++))
done