Étapes d'analyse détaillées de l'énoncé de jugement de l'état de Shell

Déclaration Shell

L'environnement Shell juge si l'exécution réussit en fonction de la valeur de l'état de retour ($?) Une fois la commande exécutée. Lorsque la valeur de retour est 0 (true true), cela signifie une réussite et lorsque la valeur de retour est différente de zéro ( false false), cela signifie un échec ou une exception.

Une déclaration conditionnelle

(1) commande de test

格式一:test 条件表达式
格式二:[ 条件表达式 ]

(2) Test de fichiers

格式:[ 操作符 文件或目录 ]
常用的操作符:
-e:测试目录或文件是否存在(Exist)。
-d:测试是否为目录(Directory)。
-f:测试是否为文件(File)。
-r:测试当前用户是否有权限读取(Read)。
-w:测试当前用户是否有权限写入(Write)。
-x:测试是否设置有可执行(Excute)权限。

Insérez la description de l'image ici

(3) Comparaison des valeurs entières

格式:[ 整数变量1 操作符 整数变量2 ]
常用的操作符:
-eq:等于					
-ne:不等于					
-gt:大于				
-lt:小于					
-le:小于等于
-ge:大于等于

Insérez la description de l'image ici

(4) Comparaison de chaînes

格式1:
[  字符串1  =  字符串2 ] 或 [  字符串1  ==  字符串2 ] 
[  字符串1  !=  字符串2 ]

格式2:
[  -z  字符串 ]		#检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[  -n  字符串 ]		#检查是否有字符串存在

Insérez la description de l'image ici

(5) Test logique

格式1:[  表达式1  ]  操作符  [  表达式2  ]  / [[ 表达式1 操作符 表达式2 ]]
格式2:命令1  操作符  命令2

常用的操作符:
-a或&& :逻辑与,“而且”的意思,前后条件需都成立
-o或|| :逻辑或,“或者”的意思,只需前后条件中一个成立
! :逻辑否

Insérez la description de l'image ici

Deux, si déclaration

(1) Succursale unique si déclaration

Insérez la description de l'image ici

if 条件测试操作
then
命令序列
fi

Insérez la description de l'image ici

(2) Double branche si déclaration

Insérez la description de l'image ici

if 条件测试操作
then
命令序列 1
else
命令序列 2
fi

Exemple:

#!/bin/bash

read -p "输入性别" a
if [ $a = "男"  ]
then
        echo "$a 组"
else
        echo "女 组"
fi

Insérez la description de l'image ici

(3) Déclaration multi-succursale if

Insérez la description de l'image ici

if 条件测试操作 1
then
命令序列 1
elif 条件测试操作 2
then
命令序列 2
else
命令序列 3
fi

Exemple:

#!/bin/bash
read -p "请输入您的分数(0-100): " z
if [ $z -ge 85 ] && [ $z -le 100 ]
then
        echo "$z 分,优秀!"
elif [ $z -ge 70 ] && [ $z -le 84 ]
then
        echo "$z 分,合格!"
else
        echo "$z 分,不合格!"
fi

Insérez la description de l'image ici

Trois, déclaration de cas

case 变量值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
* )
默认命令序列
esac

Exemple:

#!/bin/bash
read -p "请输入您的分数(0-100): " w
[[ $w -ge 85 && $w -le 100 ]] && a="yx"
[[ $w -ge 70 && $w -lt 85 ]] && a="hg"
[[ $w -ge 0 && $w -lt 70 ]] && a="bhg"
case $a in
yx)
        echo " 优秀!"
;;
hg)
        echo "合格!"
;;
bhg)
        echo "不合格!"
;;
*)
        echo "输入有误!"
esac

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51468875/article/details/111314738
conseillé
Classement