Fonctionnement de test conditionnel
Test de fichier
- [Fichier ou répertoire opérateur]
Opérateurs de test couramment utilisés
- -d: teste s'il s'agit d'un répertoire (Directory)
- -e: teste si le répertoire ou le fichier existe (Exist)
- f: tester s'il s'agit d'un fichier (File)
- -r: Teste si l'utilisateur actuel a l'autorisation de lire (Lire)
- -w: teste si l'utilisateur actuel a l'autorisation d'écrire (écriture)
- -x: teste si l'utilisateur actuel a l'autorisation d'exécuter (eXcute)
Remarque: l'utilisateur actuel fait ici référence à l'utilisateur exécutant la commande.
Exemple:
[ -d /media/cdrom ] && echo $?|| echo $? ###当等式成立输出“0”否则输出“1”
Remarques:
- "0": l'équation tient
- "1": l'équation ne tient pas
- "&&": logique et, la signification de "et"
Comparaison des valeurs entières
- [Entier 1 Opérateur Entier 2]
Opérateurs de test couramment utilisés
- -eq: égal à (Equal)
- -ne: pas égal
- -gt: supérieur à
- -lt: Inférieur à (Inférieur à)
- -le: inférieur ou égal à (inférieur ou égal)
- -ge: supérieur ou égal
Comparaison de chaînes
- Format 1: [Chaîne 1 = Chaîne 2]
[Chaîne 1! = Chaîne 2] - Format 2: [-z chaîne]
Opérateurs de test couramment utilisés
- =: Le contenu de la chaîne est le même
- ! =: Le contenu de la chaîne est différent,! Le signe signifie le contraire
- -z: le contenu de la chaîne est vide
Test logique
- Format 1: [Expression 1] Opérateur [Expression 2]…
- Format 2: Commande 1 Commande opérateur 2…
Opérateurs de test couramment utilisés
- -a ou &&: et logique, signifiant "et"
- -o ou ||: ou logique, signifiant "ou"
- ! : Non logique
La structure de l'instruction if
Structure à branche unique
if 条件测试操作
then 命令序列
fi
Exemple:
if [ ! -d $MOUNT_DIR ]
then
mkdir -p $MOUNT_DIR
fi
Structure à double branche
if 条件测试操作
then 命令序列1
else 命令序列2
fi
Exemple:
ping -c 3 -i 0.2 -W 3 $1 &>/dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is up."
else
echo "Host $1 is down."
fi
Structure multi-branches
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then命令序列2
else
命令序列3
fi
Exemple
read -p "请输入你的分数(0-100):" A
if [ $A -ge 85 ] && [ $A -le 100 ]
then
echo "$A 分,优秀,继续保持!!"
elif [ $A -ge 70 ] && [ $A -le 84 ]
then
echo "$A 分,合格,仍需加油!“
elif [ $A -ge 0 ] && [ $A -le 69 ]
then
echo "$A 分,不合格,需要加强啦!"
else
echo "$A 分,再乱输,嘶啦嘶啦滴!!!"
fi
structure de l'instruction de cas
cas structure multi-branches
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
......
*)
默认命令序列
esac
Exemple:
read -p ”请输入一个字符,并按Enter键确认:“KEY
case ”$KEY“ in
[a-z]|[A-Z])
echo "你输入的是字母"
;;
[0-9])
echo "你输入的是数字"
;;
*)
echo "你输入的是空格、功能键或其他控制字符"
esac
Pour résumer:
Syntaxe de test conditionnel
- Test de fichier, comparaison de valeurs entières, comparaison de chaînes, test logique
Syntaxe de l'instruction conditionnelle if
- Branche simple, double succursale, succursale multiple
Syntaxe de l'instruction multi-branches case