Script shell ------------ instruction conditionnelle de programmation (if, case)

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

Insérez la description de l'image ici

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

Insérez la description de l'image ici

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

Insérez la description de l'image ici

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

Insérez la description de l'image ici

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

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48190875/article/details/108185607
conseillé
Classement