在shell中经常会用到条件语句,常用的条件语句有if、while、case等
if判断
实例如下:
str1="1"
# 使用引号,防止变量为空值时语句错误
if [ "${str1}" == "1" ];then
echo "str1: 1"
elif [ "${str1}" == "2" ];then
echo "str1: 2"
else
echo "str1: ${str1}"
fi
注:
在if判断中可使用&&进行多个同时成立的判断,如:
if [ "${str1}" != "1" ] && [ "${str1}" != "2" ]
在if判断中可使用||进行多个同时成立的判断,如:
if [ "${str1}" != "1" ] || [ "${str1}" != "2" ]
注:
if [ str1 == str2 ] 当两个串有相同内容、长度时为真
if [ str1 != str2 ] 当串str1和str2不等时为真
if [ -n str1 ] 当串的长度大于0时为真(串非空)
if [ -z str1 ] 当串的长度为0时为真(空串)
if [ str1 ] 当串str1为非空时为真
-eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
while循环
实例如下:文章来源:https://www.toymoban.com/news/detail-721268.html
function test1(){
local i=0
while [ "${i}" -lt 10 ];do
let i++
echo "${i}"
done
}
注:while在满足条件的情况下回循环执行语句,直到条件不成立
注:在while中,可使用break跳出循环,或使用continue结束当前循环,进行下次循环
case多条件
实例如下:文章来源地址https://www.toymoban.com/news/detail-721268.html
case $1 in
start) start;;
stop) stop;;
*) helps ;;
esac
注:case条件常用于读取简单的shell传参,如:bash server.sh start
可通过读取传入的命令行参数$1 ,实现不同的方法
注:命令行参数如下
$0 表示程序名。
$1 至 $9则是位置参数。
$# 表示参数的个数。
$* 将所有参数当做一个整体来引用
$@ 把每个参数作为一个字符串返回,可以使用for循环来遍历
$? 最近一个执行的命令的退出状态。0表示执行成功
$_ 上一个命令的最后一个参数。使用快捷键 ESC+. 也是这个效果
位置参数: 位置参数不止9个,更多的参数也是一样支持的。只是要使用${10}这样的形式引用。
$1 和 ${1}的效果是一样的。不用花括号的话,$10 会被认为是 $1 和一个字符 0。
到了这里,关于shell中的条件判断的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!