Sous-coquilles Linux pour les débutants avec des exemples
- 1752
- 495
- Noa Faure
L'utilisation de sous-coquilles dans Bash vous offre la capacité de générer des informations sensibles au contexte à partir de votre commande BASH. Par exemple, si vous souhaitez modifier une chaîne de texte juste à l'intérieur d'un écho déclaration, alors cela peut être fait facilement avec des sous-coquilles.
Dans ce tutoriel, vous apprendrez:
- Comment utiliser l'emploi de l'utilisation des sous-coquilles en bash
- Comment utiliser des sous-coquilles pour obtenir des informations sensibles au contexte
- Exemples d'utilisation de bash de bash
Sous-coquilles Linux pour les débutants avec des exemples Exigences et conventions logicielles utilisées
| Catégorie | Exigences, conventions ou version logicielle utilisée |
|---|---|
| Système | Indépendant de la distribution Linux |
| Logiciel | Ligne de commande bash, système basé sur Linux |
| Autre | Toute utilité qui n'est pas incluse dans le shell bash par défaut peut être installée en utilisant Sudo Apt-Get Install Utility-Name (ou Installation de miam pour les systèmes basés sur Redhat) |
| Conventions | # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié |
Exemple 1: deux syntaxes différentes
Bash permet deux syntaxes de sous-coquilles différentes, à savoir $ () et des déclarations entourées de back-tick. Regardons quelques exemples faciles à démarrer:
$ echo '$ (echo' a ')' $ (echo a) $ echo "$ (echo 'a')" a $ echo "a $ (echo 'b') c" abc $ echo "a'echo 'b "C" ABC
Dans la première commande, par exemple, nous avons utilisé ' Guillemets simples. Cela a abouti à notre commande de sous-shell, à l'intérieur des citations simples, à être interprétée comme un texte littéral au lieu d'une commande. C'est un bash standard: ' indique le littéral, " indique que la chaîne sera analysée pour les sous-coquilles et les variables.
Dans la deuxième commande, nous échangeons le ' pour " et ainsi la chaîne est analysée pour les commandes et variables réelles. Le résultat est qu'une sous-coquille est lancée, grâce à notre syntaxe de sous-coquille ($ ()), et la commande à l'intérieur de la sous-coquille (écho 'a') est exécuté littéralement, et donc un un est produit, qui est alors inséré au niveau global / supérieur écho. La commande à ce stade peut être lue comme écho "a" Et donc la sortie est un.
Dans la troisième commande, nous étendons cela pour indiquer à la façon dont les sous-coquilles fonctionnent dans le contexte. Nous faisons écho à la lettre b à l'intérieur de la sous-coquille, et cela est joint à gauche et à droite par les lettres un et c donner la sortie globale à être abc D'une manière similaire à la deuxième commande.
Dans la quatrième et dernière commande, nous illustons la syntaxe de sous-coque alternative $ (). Il est important de savoir que $ () est la syntaxe préférée, et que dans certains cas éloignés, la syntaxe basée sur le back-tick peut produire des erreurs d'analyse $ () ne fait pas. Je vous encourage donc fortement à toujours utiliser le $ () Syntaxe pour les sous-coquilles, et c'est aussi ce que nous utiliserons dans les exemples suivants.
Exemple 2: un peu plus complexe
$ touch a $ echo "- $ (ls [a-z])" -a $ echo "- = - || $ (ls [a-z] | xargs ls -l) || - = -" - = - || -rw -rw-r-- 1 Roel roel 0 sept 5 09:26 a || - =-
Ici, nous créons d'abord un fichier vide en utilisant le toucher un commande. Par la suite, nous utilisons écho Pour sortir quelque chose que notre sous-coque $ (ls [a-z]) générera. Bien sûr, nous pouvons exécuter le LS directement et céder plus ou moins le même résultat, mais notez comment nous ajoutons - à la sortie en tant que préfixe.
Dans la commande finale, nous insérons certains caractères à l'avant et à l'extrémité du écho commande qui rend la sortie un peu plus agréable. Nous utilisons une sous-coquille pour trouver d'abord le un fichier que nous avons créé plus tôt (LS [A-Z]) puis - toujours à l'intérieur de la sous-coquille - passez les résultats de cette commande (qui ne serait que un Littéralement - je.e. le fichier que nous avons créé dans la première commande) vers le ls -l en utilisant le tuyau (|) et le xargs commande. Pour plus d'informations sur les xargs, veuillez consulter nos articles Xargs pour les débutants avec des exemples et des xargs multiples avec des exemples.
Exemple 3: Double Quotes à l'intérieur des sous-coquilles et des sous-sous-vaches!
echo "$ (echo" $ (echo "il fonctionne") "| SED'T | IT | Il sûrement | ')" Cela fonctionne sûrement
Cool, non? Ici, nous voyons que les citations doubles peuvent être utilisées à l'intérieur de la sous-coquille sans générer d'erreurs d'analyse. Nous voyons également comment une sous-coquille peut être imbriquée dans une autre sous-coquille. Pouvez-vous analyser la syntaxe? Le moyen le plus simple est de commencer «au milieu ou au noyau de toutes les sous-coquilles» qui est dans ce cas écho "ça marche".
Cette commande sortira Ça marche À la suite de l'appel de sous-coquille $ (écho "ça marche"). Image Ça marche À la place de la sous-coquille, je.e.
echo "$ (echo" il fonctionne "| SED 'S | it | Il sûrement |')" Cela fonctionne sûrement
Cela semble déjà plus simple. Ensuite, il est utile de savoir que le sed la commande fera un substitut (grâce au s commande juste avant le | Séparateur de commande) du texte il pour c'est sûrement. Vous pouvez lire le sed commander comme remplacer __it__ par __it sûrement__. La sortie de la sous-coquille sera doncça marche sûrement ', je.e.
écho "cela fonctionne sûrement", il fonctionne sûrement
Conclusion
Dans cet article, nous avons vu que les sous-coquilles travailler sûrement (jeu de mots prévu), et qu'ils peuvent être utilisés dans une grande variété de circonstances, en raison de leur capacité à être insérée en ligne et dans le contexte de la commande globale. Les sous-coquilles sont très puissantes et une fois que vous commencerez à les utiliser, eh bien, il n'y aura probablement pas d'arrêt. Très bientôt, vous écrirez quelque chose comme:
$ Var = "Au revoir"; echo "Merci $ (echo" $ var "| SED 'S | ^ | et |')" | sed 'S | k | k vous |'
Celui-ci est pour vous d'essayer de jouer avec! Merci et au revoir
Tutoriels Linux connexes:
- Comment utiliser des sous-coquilles bash à l'intérieur des instructions IF
- Sous-sheells Linux avancés avec des exemples
- Choses à installer sur Ubuntu 20.04
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Une introduction à l'automatisation Linux, des outils et des techniques
- Gestion de scripts et de processus de bash multithread au…
- Masterring Bash Script Loops
- Commandes Linux de base
- Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- « Tutoriel de débogage GDB pour les débutants
- Comment régler Crontab pour exécuter toutes les 5 minutes »