Maison  >  Article  >  Opération et maintenance  >  Résumé des caractères spéciaux couramment utilisés dans bash

Résumé des caractères spéciaux couramment utilisés dans bash

巴扎黑
巴扎黑original
2017-08-17 10:31:381712parcourir

#

Symbole de commentaire (Hashmark)

1 Au début de la ligne du fichier shell, en tant que marque d'interpréteur d'appel shell, #!/bin/bash;

2. Utilisé comme commentaire dans le fichier de configuration. Dans une ligne, le contenu après # ne sera pas exécuté

est utilisé comme séparateur pour plusieurs commandes (. Séparateur de commandes [point-virgule]).

Lorsque plusieurs commandes doivent être placées sur la même ligne, elles peuvent être séparées par des points-virgules.

;;

Terminator [double point-virgule]).

est utilisé comme terminateur de chaque option lors de l'utilisation de l'option case.

.

commande point.

1. Exécutez le fichier du répertoire actuel

            #!/bin/bash

      .pythontab-file

2. Dans le cadre du nom du fichier, dans le fichier Le début du nom indique que le fichier est un fichier caché

3. En tant que nom de répertoire, un point représente le répertoire actuel et deux points représentent le répertoire supérieur (le répertoire parent du répertoire actuel). annuaire). Notez que plus de deux points n'apparaissent que si vous entourez le caractère point lui-même de guillemets (simple/double

4 Dans les expressions régulières, le point représente n'importe quel caractère) ;

"

Guillemets doubles.

Citation partielle. Le contenu entouré de guillemets doubles permet une expansion variable et l'existence de caractères d'échappement.

'

guillemet simple (guillemet complet [guillemet simple]).

Tous les caractères entourés de guillemets simples sont traités comme des caractères eux-mêmes,

virgule (opérateur virgule [virgule]).

1. Utilisé pour connecter une série d'expressions mathématiques. Cette série d'expressions mathématiques est évaluée, mais seul le dernier résultat de l'évaluation est renvoyé. Par exemple :

barre oblique inverse, barre oblique inverse (escape [barre oblique inverse] 1. Placée avant les symboles spéciaux, la fonction d'échappement des symboles spéciaux ne représente que le symbole spécial lui-même). , qui est couramment utilisé dans les chaînes;

2. Placé à la fin d'une ligne d'instructions pour représenter le retour chariot suivant Invalide (en fait, Enter est échappé), et la saisie des nouvelles lignes suivantes est toujours considéré comme faisant partie de la commande actuelle.

/

slash, slash (Séparateur de chemin de nom de fichier [barre oblique]

1. il n'y a qu'une seule barre oblique dans le chemin pour représenter le répertoire racine, et le chemin commençant par la barre oblique représente le chemin partant du répertoire racine

En tant qu'opérateur, représente le symbole de division ; =4/2

`

backquotes, backquotes (Substitution de commande[backquotes] ). `dirname '/tmp/x.log'`. Le résultat renvoyé par dirname sera attribué à a. Remarque, ici Mitchell utilise spécifiquement des guillemets simples et des guillemets simples, faites attention à la différence

:

commande null [deux-points], quelle est cette commande ? Aucune des deux n'est effectuée, mais il y a une valeur de retour, et la valeur de retour est 0 (c'est-à-dire : vrai) La fonction de cette commande est très merveilleuse

1. Les conditions pour faire une boucle infinie ;

2 Utilisé comme espace réservé dans la branche if (c'est-à-dire lorsqu'une certaine branche ne fait rien

3. séparateur où des opérations binaires sont requises, telles que : ${username= `whoami`}

4. Attribuez une valeur à une variable de chaîne lors de la substitution de paramètre et tronquez la longueur d'un fichier à 0 lors de l'opération de redirection. (>) (:>> Lorsqu'il est utilisé comme ceci, si la cible existe, ne faites rien), cela ne peut être utilisé que dans des fichiers ordinaires, pas dans des tuyaux, des liens symboliques et d'autres fichiers spéciaux

5. Vous pouvez même l'utiliser pour commenter (le contenu après # ne sera pas vérifié, mais le contenu après : sera vérifié. S'il y a une erreur de syntaxe dans l'instruction, une erreur sera signalée

6. Vous pouvez également l'utiliser comme séparateur de domaine, comme dans la variable d'environnement $PATH, Ou dans passwd, il y a deux points comme séparateur de domaine

7. un nom de fonction, mais cela changera la signification originale des deux points (si vous l'utilisez accidentellement comme nom de fonction, vous pouvez utiliser unset -f: pour annuler la définition de la fonction).

!

Point d'exclamation (inverser (ou nier) [bang], [point d'exclamation]).

Inverser un résultat de test ou un statut de sortie.

1. Indique une logique inverse, comme ce qui suit !=, ce qui signifie différent ;

2 Indique une négation, telle que : ls a[!0-9] #Indique ce qui suit ; a Ce n'est pas un fichier suivi d'un numéro ;

3. Dans différents environnements, le point d'exclamation peut également apparaître dans les références de variables indirectes

4. utilisé pour les commandes historiques Pour appeler le mécanisme, vous pouvez essayer !$,!# ou !-3 pour voir, mais sachez que cette fonctionnalité ne peut pas être utilisée dans les fichiers de script (elle est désactivée).

*

astérisque (opérateur générique/arithmétique[astérisque]).

1. En tant que caractère générique correspondant aux extensions de nom de fichier, il peut automatiquement correspondre à chaque fichier d'un répertoire donné

2. Il peut être utilisé comme qualificatif de caractère dans les expressions régulières ; précédent Les règles de correspondance correspondent un nombre illimité de fois ;

3. Représente la multiplication dans les opérations arithmétiques.

**

Double astérisque. Dans les opérations arithmétiques, cela signifie une opération d'exponentiation.

?

Point d'interrogation (opérateur de test/caractère générique[Point d'interrogation]).

1. Représente les tests conditionnels ;

2. Représente l'opérateur ternaire de style C ((condition?true-result:false-result)) entre doubles parenthèses ; . Utilisé dans les expressions de substitution de paramètres pour tester si une variable a un jeu de valeurs ;

4. En tant que caractère générique, utilisé pour correspondre aux fonctionnalités d'extension de nom de fichier, utilisé pour correspondre à un seul caractère ; 5. Dans une expression régulière, cela signifie faire correspondre la règle précédente 0 ou 1 fois.

$

Signe dollar (Substitution variable[Signe dollar]).

1. En tant que leader d'une variable, il est utilisé comme remplacement de variable, c'est-à-dire pour référencer le contenu d'une variable, comme : echo $PATH; expressions régulières, elle est définie comme la fin de la ligne ( Fin hors ligne).

${}

Substitution variable.

est utilisé pour représenter des variables dans des chaînes.

$'...'

Le contenu cité est développé et le contenu échappé entre les guillemets simples est exécuté (les guillemets simples sont à l'origine cités tels quels). ou Plusieurs valeurs octales et hexadécimales échappées [] étendues en caractères ASCII ou Unicode.

$*

$@

Paramètres de position.

Ceci est utilisé lors de la transmission de paramètres lors de l'utilisation de fichiers de script. Les deux peuvent renvoyer tous les paramètres du fichier de script appelant, mais $* renvoie tous les paramètres dans leur ensemble (chaîne), tandis que $@ renvoie chaque paramètre sous forme d'unité sous forme de liste de paramètres. Notez que vous devez mettre $*, $@ entre guillemets lorsque vous les utilisez. Ces deux variables sont affectées par $IFS. Si elles sont utilisées dans des applications réelles, certains détails doivent être pris en compte.

$#

représente le nombre de paramètres passés au script.

$?

Lorsque cette valeur de variable est utilisée, elle renvoie la valeur du code d'état de sortie de la dernière commande, fonction ou script. S'il n'y a pas d'erreur, elle est 0, si c'est le cas. est non-0 , cela signifie qu'il y a eu une erreur lors de la dernière exécution avant celle-ci.

$$

Variable ID de processus, cette variable enregistre la valeur de l'ID de processus du script en cours d'exécution.

()

Parenthèses (parenthèses).

1, Groupe de commande. Une commande entourée d'un ensemble de parenthèses est un groupe de commandes et les commandes du groupe de commandes sont exécutées dans un sous-shell. Parce qu'il s'exécute dans un sous-shell, il n'y a aucun moyen d'obtenir la valeur de la variable entre parenthèses en dehors des parenthèses, mais à l'inverse, la valeur à l'extérieur peut être obtenue au sein du groupe de commandes. C'est un peu comme la relation entre les variables locales. et les variables globales. Lors de l'implémentation, si vous rencontrez le besoin de cd dans un sous-répertoire et de revenir au répertoire actuel une fois l'opération terminée, vous pouvez envisager d'utiliser le sous-shell pour le gérer

2. tableaux.

{x,y,z,...}

Expansion du corset.

Vous pouvez utiliser cette extension pour développer la liste des paramètres dans la commande. La commande correspondra et se développera selon le modèle séparé par des crochets dans la liste. Une chose à noter est qu'il ne peut pas y avoir d'espaces dans cette extension d'accolades. Si les espaces sont effectivement nécessaires, ils doivent être échappés ou mis entre guillemets. Exemple : echo {a,b,c}-{ d," e",' f'}

{a..z}

Cette accolade a été ajoutée dans la version 3 étendue de Bash expansion, vous pouvez utiliser {A..Z} pour représenter une liste de tous les caractères de A-Z. Mitchell a testé cette méthode d'expansion, et elle semble s'appliquer uniquement à A-Z, a-z et au nombre {minimum..max}. .

{}

Blocs de code (accolades).

Il s'agit d'une fonction anonyme, mais contrairement à une fonction, les variables du bloc de code sont toujours accessibles après le bloc de code. Remarque : Il doit y avoir des espaces et des instructions séparés à l'intérieur des accolades. De plus, dans xargs -i, il peut également être utilisé comme espace réservé au texte pour marquer l'emplacement du texte de sortie.

{} ;

Ce {} représente le nom du chemin. Celui-ci n'est pas intégré au shell. D'après ce que j'ai vu maintenant, il semble qu'il ne soit utilisé que dans la recherche. commande. Faites attention au point-virgule à la fin. Il s'agit de la séquence de commandes qui termine l'option -exec dans la commande find. Lors de son utilisation réelle, elle doit être échappée pour éviter d'être mal comprise par le shell.

[]

parenthèses.

1. Test de représentation, Shell testera l'expression dans []. Il convient de noter que [] fait partie du test intégré de Shell, plutôt que d'utiliser la commande externe /usr/bin/test Link. ;

2. Dans le contexte d'un tableau, il représente un élément du tableau. Remplissez la position de l'élément du tableau entre crochets pour obtenir le contenu de la position correspondante, par exemple :

1. Array[ 1]=xxx

2. echo${Array[1]};

3. Indique la plage du jeu de caractères. les caractères pouvant correspondre à cette position.

[[]]

doubles parenthèses.

Cette structure est aussi un test, testant l'expression (mot-clé Shell) dans [[]]. C'est mieux que les crochets simples pour éviter les erreurs logiques dans les scripts. Par exemple, les opérateurs &&,||,<,> peuvent réussir le test dans un [[]], mais pas dans []. Il n'y a pas d'expansion de nom de fichier ni de fractionnement de mots dans [[]], mais l'expansion des paramètres et la substitution de commandes peuvent être utilisées. Les caractères génériques et les délimiteurs de nom de fichier comme les espaces ne sont pas utilisés. Notez que si octal, hexadécimal, etc. apparaissent ici, le shell effectuera automatiquement une comparaison de conversion.

$[...]

Le mot expression représente une expansion entière.

Exécutez une expression entière entre crochets. Exemple :

1. a=3

2. b=7

3. echo$[$a+$b]

4. [$a*$b]

5. ##Renvoie 10 et 21

(())

doubles parenthèses.

représente une expansion entière.

Dans la structure à double parenthèse, toutes les expressions peuvent être comme le langage C, telles que : a++, b--, etc.

Dans la structure à double parenthèse, toutes les variables n'ont pas besoin d'être préfixées par le symbole "$".

Les doubles crochets peuvent effectuer des opérations logiques et quatre opérations arithmétiques

La structure à double crochet s'étend, tandis que, si les opérations de test conditionnel

Prend en charge plusieurs opérations d'expression, chaque expression utilise ", " pour séparer

> >

<

<>

Redirection.

scriptname >filename redirige la sortie de scriptname vers le fichier filename Si le fichier nom de fichier existe, le fichier d'origine sera écrasé;

commande &>filename redirige la sortie standard (stdout). de la commande et erreur standard (stderr) vers le fichier nom de fichier ;

commande >&2 Rediriger la sortie standard (stdout) de la commande vers l'erreur standard (stderr); >filename Ajoutez la sortie de scriptname (identique à >) au fichier nom de fichier, ou créez le fichier s'il n'existe pas. Un > indique que le fichier sera écrasé s'il existe, et créé s'il n'existe pas. Deux >> indique qu'il sera créé s'il n'existe pas, ajoutez

. [i]<>nom de fichier pour ouvrir le nom de fichier. Le fichier est utilisé pour la lecture ou l'écriture, et i est attribué au fichier comme descripteur de fichier (descripteur de fichier). Si le fichier n'existe pas, il sera créé.

<<

Double moins que les marques (ici-document[double moins que les marques]).

Ceci est également appelé Here-document et est utilisé pour rediriger le contenu suivant vers le stdin de la commande de gauche. <

<<<

Trois signes inférieurs à (ici-chaînes). Here-string est similaire à Here-document, la syntaxe here-strings : command [args] <<<["]$word["]; $word sera développé et utilisé comme stdin de la commande.

<...>

Limite de mot.

Il s'agit d'un délimiteur spécial utilisé dans les expressions régulières pour marquer les limites des mots. Par exemple : le correspondra à là, un autre, eux, etc. Si vous souhaitez uniquement faire correspondre le, vous pouvez utiliser ce symbole de limite de mot,

|

Tuyau. Les tuyaux sont un concept qui existe à la fois sous Linux et Unix. C'est un concept très basique et important. Sa fonction est d'utiliser la sortie (stdout) produite par la commande avant le tube (à gauche) comme entrée (stdin) de la commande après le tube (à droite). Par exemple : ls | wc l, vous pouvez utiliser des tuyaux pour connecter les commandes entre elles. Remarque : La sortie standard de chaque processus dans un canal sera utilisée comme entrée standard de la commande suivante. La sortie standard pendant la période ne peut pas traverser le canal et être utilisée comme entrée standard de la commande suivante, par exemple : cat filename. | ls -al trier. Pensez au résultat de ceci ? De plus, le tube s'exécute en tant que processus enfant, il ne peut donc pas entraîner de modification des variables.

>|

forcer la redirection.

Cela forcera l'écrasement d'un fichier existant.

&

Exécuter le travail en arrière-plan[esperluette]).

Si la commande est suivie d'une esperluette, la commande s'exécutera en arrière-plan.

&&

||

opérateur logique.

Dans la structure de test, ces deux opérateurs peuvent être utilisés pour relier deux valeurs logiques. || renvoie 0 (vrai) lorsque l'une des conditions de test est vraie, et fausse si toutes sont fausses ; && renvoie vrai (0) lorsque les deux conditions de test sont vraies, et fausse le cas échéant.

-

Signe moins, trait d'union (Trait d'union/moins/tiret).

1. En option, le préfixe [option, préfixe] est utilisé.

2. Source ou destination pour la redirection stdin ou stdout [tiret]. Lorsque tar n'a pas de patch pour le programme bunzip2, nous pouvons faire ceci : bunzip2 linux-2.6.13.tar.bz2 | Utilisez les données précédemment décompressées comme entrée standard de tar (un - est utilisé ici)

Remarque : lors de l'implémentation, si le nom du fichier commence par [-], ajoutez-le comme opération directionnelle Lors de l'écho d'une variable , une erreur peut se produire. À ce stade, un chemin de préfixe approprié doit être ajouté au fichier pour éviter cette situation. De même, lors de l'écho d'une variable, si la variable commence par [-], cela peut également se produire. soyez prudent, vous pouvez utiliser des guillemets doubles pour citer des scalaires :

var="-n"

echo$var

##Essayez de voir quel est le résultat ?

De plus, cette méthode de représentation n'est pas intégrée à Bash. Pour obtenir cet effet, vous devez voir si le logiciel que vous utilisez prend en charge cette opération

Représente donc la précédente ; , si vous cd vers un autre répertoire et souhaitez remettre le chemin précédent, vous pouvez utiliser cd - pour atteindre l'objectif. En fait, le [-] ici utilise la variable d'environnement $OLDPWD Remarque : [-] ici est différent de. le point précédent ;

4. Le signe moins ou signe négatif est utilisé dans les opérations arithmétiques.

=

Égal.

1. Opération d'affectation, assignation d'une valeur à une variable, y a-t-il un espace des deux côtés du signe égal

2 Apparaît comme opérateur de comparaison dans un test de comparaison ? que s'il est entre crochets Pour apparaître à titre de comparaison, il doit y avoir des espaces des deux côtés du signe égal.

+

Plus.

1. Opérateur arithmétique, indiquant l'addition ;

2. Dans une expression régulière, cela signifie que la règle de correspondance précédente correspond au moins une fois ; marquez dans une commande ou un filtre, utilisez + dans certaines commandes ou commandes intégrées pour activer certaines options, utilisez - pour désactiver

4. Dans la substitution de paramètre (parametersubstitution), le préfixe + signifie Remplacer la valeur (quand ; la variable est vide, utilisez la valeur après +)

%

signe pour cent (modulo[signe pour cent]).

1. Dans les opérations arithmétiques, il s'agit de l'opérateur de module, qui est le reste après la division de deux nombres

2. Dans la substitution de paramètres, il peut être utilisé comme correspondance de modèle ; Exemple :

                                                                                                                                                                                                                    >          ##Commencez la recherche à partir de la droite (pensez à quel symbole se trouve à partir de la gauche ?)

                  ##Tout contenu compris entre b et 9 (inclus) L'élément correspondant le plus court

##Ce dernier consiste à trouver le plus grand élément correspondant (correspondance gourmande ?)

~

tilde (Répertoire personnel[tilde]).

C'est la même chose que la variable interne $HOME. Par défaut, il indique le répertoire personnel de l'utilisateur actuel (répertoire personnel). Cela a le même effet que ~/. Si le tilde est suivi du nom de l'utilisateur, il indique le répertoire personnel de l'utilisateur.

^

caret.

1. Dans les expressions régulières, en tant qu'identifiant de position de début de ligne d'une ligne

2. Dans la substitution de paramètre (Parametersubstitution), cette utilisation a deux manières. Un caret (${. var^}), ou deux (${var^^}), signifie respectivement que la première lettre est en majuscule et que toutes les majuscules signifient (version Bash >=4).

Espace blanc

Espace blanc.

L'espace blanc fait non seulement référence aux espaces (espaces), mais comprend également les tabulations (tabulations), les lignes vides (lignes vierges) ou une combinaison de ceux-ci. Il peut être utilisé comme délimiteur de fonction pour séparer les commandes ou les variables. Une ligne vide n'affectera pas le comportement du script, elle peut donc être utilisée pour planifier le code du script afin d'augmenter la lisibilité. utilisé pour cibler certaines commandes. Les paramètres d'entrée sont divisés et la valeur par défaut est l'espace. S'il y a des espaces dans une chaîne ou une variable, vous pouvez utiliser des guillemets pour éviter d'éventuelles erreurs.

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