Maison  >  Article  >  Opération et maintenance  >  Trier de manière exhaustive les fonctions et l'utilisation des différentes parenthèses dans le shell sous Linux

Trier de manière exhaustive les fonctions et l'utilisation des différentes parenthèses dans le shell sous Linux

齐天大圣
齐天大圣original
2020-09-18 16:53:293697parcourir

Quand j'apprenais la programmation shell, j'étais dérouté par l'utilisation de diverses parenthèses. Avec une familiarité et une accumulation progressives, j'ai finalement maîtrisé l'utilisation de tous les supports. Maintenant, je voudrais partager avec vous ce que j’ai résumé.

Remarque : Le prérequis pour lire ce document est que vous ayez déjà les bases de la programmation bash et shell.

Parenthèses simples ()

Mais il existe deux fonctions courantes des parenthèses : la substitution de commande et l'initialisation de tableau

Substitution de commande

Lorsque la structure $() est rencontrée, le shell exécute la commande entre parenthèses et renvoie le résultat

# tmp=$(date)
# echo $tmp
Fri Sep 18 10:22:30 CST 2020

Initialiser le tableau

# 初始化数组
lnmp=(linux nginx mysql php)

Double parenthèses (())

Rappelez-vous que les doubles parenthèses ont une La caractéristique est que les mots entre parenthèses doivent être conformes à la syntaxe du langage C et qu'il n'est pas nécessaire d'ajouter le symbole $ lors de l'utilisation de noms de variables.

Les doubles parenthèses sont utilisées plus souvent. Elles peuvent être utilisées pour les calculs de nombres entiers (les décimales ne sont pas prises en charge). Par exemple : $((3+2))

# echo $((1+3))
4
# n1=3
# echo $((n1+7))
10

Tant qu'il est conforme à l'expansion des opérations de la grammaire du langage C, il peut être écrit entre parenthèses

# echo $((3+4>5 ? 1 :0)) 
1
# echo $((3+4>9 ? 1 :0)) 
0

pour réaffecter le À l'heure actuelle, il ne peut pas être ajouté en dehors des parenthèses. Le signe $

# i=1;((i++));echo $i;
2
# i=1;((i=100));echo $i;
100

les doubles crochets sont également souvent utilisés dans les boucles

for ((i=0;i<5;i++));do echo -n $i;done

les crochets simples[. ]

les crochets simples sont les plus utilisés. Ils sont couramment utilisés dans les jugements logiques. De plus, ils peuvent être utilisés comme indice d'un tableau et pour exprimer une plage dans des expressions régulières.

est utilisé pour le jugement conditionnel dans les scripts shell :

if [ 1 > 2 ] then
    ……
fi

peut également être utilisé comme indice d'un tableau. Marqueurs :

# echo ${lnmp[1]}
nginx

sont utilisés dans les expressions régulières pour représenter un. range

[0-9]  表示数子0-9都行

les parenthèses double face

sont les mêmes que les parenthèses simples sont également utilisées dans les jugements conditionnels, mais elles sont plus nombreuses. général que les crochets simples. Voici un exemple :

[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]
改成双括号
[[ a > b && a > 0 ]]

Attelle bouclée simple {}

Extension d'accolade bouclée. (globbing) développera le nom du fichier entre accolades. Entre accolades, aucun espace n’est autorisé à moins que l’espace ne soit cité ou échappé.

Par exemple, saisir la commande rm -f {1,2}.txt supprimera les fichiers 1.txt et 2.txt.

Le rôle de .. entre accolades simples

Les deux points ici représentent une plage. Par exemple, les accolades

echo {1..10}  #将打印1,2,3,4,5,6,7,8,9,10

sont également couramment utilisées dans les scripts shell pour les blocs de code.

En plus de la première fois, des accolades simples peuvent également être utilisées pour la substitution et la suppression du contenu variable et pour tester le contenu variable. Un exemple courant est donné. Nous déterminons souvent si une variable existe et, si elle n'existe pas, lui attribuons une nouvelle valeur.

val=${n1:-test}

Le code ci-dessus signifie que si la variable n1 n'existe pas ou est vide, la valeur de la variable val est définie sur test, sinon la valeur val est la valeur de la variable n1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn